001/*
002 *   Copyright 2024 Vonage
003 *
004 *   Licensed under the Apache License, Version 2.0 (the "License");
005 *   you may not use this file except in compliance with the License.
006 *   You may obtain a copy of the License at
007 *
008 *        http://www.apache.org/licenses/LICENSE-2.0
009 *
010 *   Unless required by applicable law or agreed to in writing, software
011 *   distributed under the License is distributed on an "AS IS" BASIS,
012 *   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 *   See the License for the specific language governing permissions and
014 *   limitations under the License.
015 */
016package com.vonage.client.video;
017
018import com.fasterxml.jackson.annotation.JsonProperty;
019import com.vonage.client.JsonableBaseObject;
020import java.net.URI;
021import java.util.List;
022
023/**
024 * Container for details about the HLS and RTMP broadcasts.
025 */
026public class BroadcastUrls extends JsonableBaseObject {
027        @JsonProperty("hls") private URI hls;
028        @JsonProperty("rtmp") private List<Rtmp> rtmp;
029
030        /**
031         * If you specified an HLS endpoint, the object includes an HLS property, which is set to the URL for the
032         * HLS broadcast. Note this HLS broadcast URL points to an index file, an .M3U8-formatted playlist that contains
033         * a list of URLs to .ts media segment files (MPEG-2 transport stream files). While the URLs of both the playlist
034         * index file and media segment files are provided as soon as the HTTP response is returned, these URLs should not
035         * be accessed until 15-20 seconds later, after the initiation of the HLS broadcast, due to the delay between the
036         * HLS broadcast and the live streams in the Vonage video session. See <a
037         * href=https://developer.apple.com/library/ios/technotes/tn2288/_index.html>the Apple developer documentation</a>
038         * for more information about the playlist index file and media segment files for HLS.
039         *
040         * @return The HLS URL.
041         */
042        public URI getHls() {
043                return hls;
044        }
045
046        /**
047         * If you specified RTMP stream endpoints, this property will be non-null.
048         * This list includes information on each of the RTMP streams.
049         *
050         * @return Details of the RTMP streams.
051         */
052        @JsonProperty("rtmp")
053        public List<Rtmp> getRtmps() {
054                return rtmp;
055        }
056}