lib/aws-sdk-kinesisvideoarchivedmedia/client.rb in aws-sdk-kinesisvideoarchivedmedia-1.16.0 vs lib/aws-sdk-kinesisvideoarchivedmedia/client.rb in aws-sdk-kinesisvideoarchivedmedia-1.17.0
- old
+ new
@@ -252,40 +252,389 @@
super
end
# @!group API Operations
+ # Retrieves an MPEG Dynamic Adaptive Streaming over HTTP (DASH) URL for
+ # the stream. You can then open the URL in a media player to view the
+ # stream contents.
+ #
+ # Both the `StreamName` and the `StreamARN` parameters are optional, but
+ # you must specify either the `StreamName` or the `StreamARN` when
+ # invoking this API operation.
+ #
+ # An Amazon Kinesis video stream has the following requirements for
+ # providing data through MPEG-DASH:
+ #
+ # * The media must contain h.264 or h.265 encoded video and, optionally,
+ # AAC or G.711 encoded audio. Specifically, the codec id of track 1
+ # should be `V_MPEG/ISO/AVC` (for h.264) or V\_MPEGH/ISO/HEVC (for
+ # H.265). Optionally, the codec id of track 2 should be `A_AAC` (for
+ # AAC) or A\_MS/ACM (for G.711).
+ #
+ # * Data retention must be greater than 0.
+ #
+ # * The video track of each fragment must contain codec private data in
+ # the Advanced Video Coding (AVC) for H.264 format and HEVC for H.265
+ # format. For more information, see [MPEG-4 specification ISO/IEC
+ # 14496-15][1]. For information about adapting stream data to a given
+ # format, see [NAL Adaptation Flags][2].
+ #
+ # * The audio track (if present) of each fragment must contain codec
+ # private data in the AAC format ([AAC specification ISO/IEC
+ # 13818-7][3]) or the [MS Wave format][4].
+ #
+ # The following procedure shows how to use MPEG-DASH with Kinesis Video
+ # Streams:
+ #
+ # 1. Get an endpoint using [GetDataEndpoint][5], specifying
+ # `GET_DASH_STREAMING_SESSION_URL` for the `APIName` parameter.
+ #
+ # 2. Retrieve the MPEG-DASH URL using `GetDASHStreamingSessionURL`.
+ # Kinesis Video Streams creates an MPEG-DASH streaming session to be
+ # used for accessing content in a stream using the MPEG-DASH
+ # protocol. `GetDASHStreamingSessionURL` returns an authenticated
+ # URL (that includes an encrypted session token) for the session's
+ # MPEG-DASH *manifest* (the root resource needed for streaming with
+ # MPEG-DASH).
+ #
+ # <note markdown="1"> Don't share or store this token where an unauthorized entity
+ # could access it. The token provides access to the content of the
+ # stream. Safeguard the token with the same measures that you would
+ # use with your AWS credentials.
+ #
+ # </note>
+ #
+ # The media that is made available through the manifest consists
+ # only of the requested stream, time range, and format. No other
+ # media data (such as frames outside the requested window or
+ # alternate bitrates) is made available.
+ #
+ # 3. Provide the URL (containing the encrypted session token) for the
+ # MPEG-DASH manifest to a media player that supports the MPEG-DASH
+ # protocol. Kinesis Video Streams makes the initialization fragment,
+ # and media fragments available through the manifest URL. The
+ # initialization fragment contains the codec private data for the
+ # stream, and other data needed to set up the video or audio decoder
+ # and renderer. The media fragments contain encoded video frames or
+ # encoded audio samples.
+ #
+ # 4. The media player receives the authenticated URL and requests
+ # stream metadata and media data normally. When the media player
+ # requests data, it calls the following actions:
+ #
+ # * **GetDASHManifest:** Retrieves an MPEG DASH manifest, which
+ # contains the metadata for the media that you want to playback.
+ #
+ # * **GetMP4InitFragment:** Retrieves the MP4 initialization
+ # fragment. The media player typically loads the initialization
+ # fragment before loading any media fragments. This fragment
+ # contains the "`fytp`" and "`moov`" MP4 atoms, and the child
+ # atoms that are needed to initialize the media player decoder.
+ #
+ # The initialization fragment does not correspond to a fragment in
+ # a Kinesis video stream. It contains only the codec private data
+ # for the stream and respective track, which the media player
+ # needs to decode the media frames.
+ #
+ # * **GetMP4MediaFragment:** Retrieves MP4 media fragments. These
+ # fragments contain the "`moof`" and "`mdat`" MP4 atoms and
+ # their child atoms, containing the encoded fragment's media
+ # frames and their timestamps.
+ #
+ # <note markdown="1"> After the first media fragment is made available in a streaming
+ # session, any fragments that don't contain the same codec
+ # private data cause an error to be returned when those different
+ # media fragments are loaded. Therefore, the codec private data
+ # should not change between fragments in a session. This also
+ # means that the session fails if the fragments in a stream change
+ # from having only video to having both audio and video.
+ #
+ # </note>
+ #
+ # Data retrieved with this action is billable. See [Pricing][6]
+ # for details.
+ #
+ # <note markdown="1"> The following restrictions apply to MPEG-DASH sessions:
+ #
+ # * A streaming session URL should not be shared between players. The
+ # service might throttle a session if multiple media players are
+ # sharing it. For connection limits, see [Kinesis Video Streams
+ # Limits][7].
+ #
+ # * A Kinesis video stream can have a maximum of ten active MPEG-DASH
+ # streaming sessions. If a new session is created when the maximum
+ # number of sessions is already active, the oldest (earliest created)
+ # session is closed. The number of active `GetMedia` connections on a
+ # Kinesis video stream does not count against this limit, and the
+ # number of active MPEG-DASH sessions does not count against the
+ # active `GetMedia` connection limit.
+ #
+ # <note markdown="1"> The maximum limits for active HLS and MPEG-DASH streaming sessions
+ # are independent of each other.
+ #
+ # </note>
+ #
+ # </note>
+ #
+ # You can monitor the amount of data that the media player consumes by
+ # monitoring the `GetMP4MediaFragment.OutgoingBytes` Amazon CloudWatch
+ # metric. For information about using CloudWatch to monitor Kinesis
+ # Video Streams, see [Monitoring Kinesis Video Streams][8]. For pricing
+ # information, see [Amazon Kinesis Video Streams Pricing][6] and [AWS
+ # Pricing][9]. Charges for both HLS sessions and outgoing AWS data
+ # apply.
+ #
+ # For more information about HLS, see [HTTP Live Streaming][10] on the
+ # [Apple Developer site][11].
+ #
+ # If an error is thrown after invoking a Kinesis Video Streams archived
+ # media API, in addition to the HTTP status code and the response body,
+ # it includes the following pieces of information:
+ #
+ # * `x-amz-ErrorType` HTTP header – contains a more specific error type
+ # in addition to what the HTTP status code provides.
+ #
+ # * `x-amz-RequestId` HTTP header – if you want to report an issue to
+ # AWS, the support team can better diagnose the problem if given the
+ # Request Id.
+ #
+ # Both the HTTP status code and the ErrorType header can be utilized to
+ # make programmatic decisions about whether errors are retry-able and
+ # under what conditions, as well as provide information on what actions
+ # the client programmer might need to take in order to successfully try
+ # again.
+ #
+ # For more information, see the **Errors** section at the bottom of
+ # this
+ # topic, as well as [Common Errors][12].
+ #
+ #
+ #
+ # [1]: https://www.iso.org/standard/55980.html
+ # [2]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-reference-nal.html
+ # [3]: https://www.iso.org/standard/43345.html
+ # [4]: http://www-mmsp.ece.mcgill.ca/Documents/AudioFormats/WAVE/WAVE.html
+ # [5]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_GetDataEndpoint.html
+ # [6]: https://aws.amazon.com/kinesis/video-streams/pricing/
+ # [7]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html
+ # [8]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/monitoring.html
+ # [9]: https://aws.amazon.com/pricing/
+ # [10]: https://developer.apple.com/streaming/
+ # [11]: https://developer.apple.com
+ # [12]: https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html
+ #
+ # @option params [String] :stream_name
+ # The name of the stream for which to retrieve the MPEG-DASH manifest
+ # URL.
+ #
+ # You must specify either the `StreamName` or the `StreamARN`.
+ #
+ # @option params [String] :stream_arn
+ # The Amazon Resource Name (ARN) of the stream for which to retrieve the
+ # MPEG-DASH manifest URL.
+ #
+ # You must specify either the `StreamName` or the `StreamARN`.
+ #
+ # @option params [String] :playback_mode
+ # Whether to retrieve live, live replay, or archived, on-demand data.
+ #
+ # Features of the three types of sessions include the following:
+ #
+ # * <b> <code>LIVE</code> </b>\: For sessions of this type, the
+ # MPEG-DASH manifest is continually updated with the latest fragments
+ # as they become available. We recommend that the media player
+ # retrieve a new manifest on a one-second interval. When this type of
+ # session is played in a media player, the user interface typically
+ # displays a "live" notification, with no scrubber control for
+ # choosing the position in the playback window to display.
+ #
+ # <note markdown="1"> In `LIVE` mode, the newest available fragments are included in an
+ # MPEG-DASH manifest, even if there is a gap between fragments (that
+ # is, if a fragment is missing). A gap like this might cause a media
+ # player to halt or cause a jump in playback. In this mode, fragments
+ # are not added to the MPEG-DASH manifest if they are older than the
+ # newest fragment in the playlist. If the missing fragment becomes
+ # available after a subsequent fragment is added to the manifest, the
+ # older fragment is not added, and the gap is not filled.
+ #
+ # </note>
+ #
+ # * <b> <code>LIVE_REPLAY</code> </b>\: For sessions of this type, the
+ # MPEG-DASH manifest is updated similarly to how it is updated for
+ # `LIVE` mode except that it starts by including fragments from a
+ # given start time. Instead of fragments being added as they are
+ # ingested, fragments are added as the duration of the next fragment
+ # elapses. For example, if the fragments in the session are two
+ # seconds long, then a new fragment is added to the manifest every two
+ # seconds. This mode is useful to be able to start playback from when
+ # an event is detected and continue live streaming media that has not
+ # yet been ingested as of the time of the session creation. This mode
+ # is also useful to stream previously archived media without being
+ # limited by the 1,000 fragment limit in the `ON_DEMAND` mode.
+ #
+ # * <b> <code>ON_DEMAND</code> </b>\: For sessions of this type, the
+ # MPEG-DASH manifest contains all the fragments for the session, up to
+ # the number that is specified in `MaxMediaPlaylistFragmentResults`.
+ # The manifest must be retrieved only once for each session. When this
+ # type of session is played in a media player, the user interface
+ # typically displays a scrubber control for choosing the position in
+ # the playback window to display.
+ #
+ # In all playback modes, if `FragmentSelectorType` is
+ # `PRODUCER_TIMESTAMP`, and if there are multiple fragments with the
+ # same start timestamp, the fragment that has the larger fragment number
+ # (that is, the newer fragment) is included in the MPEG-DASH manifest.
+ # The other fragments are not included. Fragments that have different
+ # timestamps but have overlapping durations are still included in the
+ # MPEG-DASH manifest. This can lead to unexpected behavior in the media
+ # player.
+ #
+ # The default is `LIVE`.
+ #
+ # @option params [String] :display_fragment_timestamp
+ # Per the MPEG-DASH specification, the wall-clock time of fragments in
+ # the manifest file can be derived using attributes in the manifest
+ # itself. However, typically, MPEG-DASH compatible media players do not
+ # properly handle gaps in the media timeline. Kinesis Video Streams
+ # adjusts the media timeline in the manifest file to enable playback of
+ # media with discontinuities. Therefore, the wall-clock time derived
+ # from the manifest file may be inaccurate. If DisplayFragmentTimestamp
+ # is set to `ALWAYS`, the accurate fragment timestamp is added to each S
+ # element in the manifest file with the attribute name “kvs:ts”. A
+ # custom MPEG-DASH media player is necessary to leverage this custom
+ # attribute.
+ #
+ # The default value is `NEVER`. When DASHFragmentSelector is
+ # `SERVER_TIMESTAMP`, the timestamps will be the server start
+ # timestamps. Similarly, when DASHFragmentSelector is
+ # `PRODUCER_TIMESTAMP`, the timestamps will be the producer start
+ # timestamps.
+ #
+ # @option params [String] :display_fragment_number
+ # Fragments are identified in the manifest file based on their sequence
+ # number in the session. If DisplayFragmentNumber is set to `ALWAYS`,
+ # the Kinesis Video Streams fragment number is added to each S element
+ # in the manifest file with the attribute name “kvs:fn”. These fragment
+ # numbers can be used for logging or for use with other APIs (e.g.
+ # `GetMedia` and `GetMediaForFragmentList`). A custom MPEG-DASH media
+ # player is necessary to leverage these this custom attribute.
+ #
+ # The default value is `NEVER`.
+ #
+ # @option params [Types::DASHFragmentSelector] :dash_fragment_selector
+ # The time range of the requested fragment, and the source of the
+ # timestamps.
+ #
+ # This parameter is required if `PlaybackMode` is `ON_DEMAND` or
+ # `LIVE_REPLAY`. This parameter is optional if PlaybackMode is` LIVE. If
+ # PlaybackMode is LIVE, the FragmentSelectorType can be set, but the
+ # TimestampRange should not be set. If PlaybackMode is ON_DEMAND or
+ # LIVE_REPLAY, both FragmentSelectorType and TimestampRange must be
+ # set.</p>
+ # `
+ #
+ # @option params [Integer] :expires
+ # The time in seconds until the requested session expires. This value
+ # can be between 300 (5 minutes) and 43200 (12 hours).
+ #
+ # When a session expires, no new calls to `GetDashManifest`,
+ # `GetMP4InitFragment`, or `GetMP4MediaFragment` can be made for that
+ # session.
+ #
+ # The default is 300 (5 minutes).
+ #
+ # @option params [Integer] :max_manifest_fragment_results
+ # The maximum number of fragments that are returned in the MPEG-DASH
+ # manifest.
+ #
+ # When the `PlaybackMode` is `LIVE`, the most recent fragments are
+ # returned up to this value. When the `PlaybackMode` is `ON_DEMAND`, the
+ # oldest fragments are returned, up to this maximum number.
+ #
+ # When there are a higher number of fragments available in a live
+ # MPEG-DASH manifest, video players often buffer content before starting
+ # playback. Increasing the buffer size increases the playback latency,
+ # but it decreases the likelihood that rebuffering will occur during
+ # playback. We recommend that a live MPEG-DASH manifest have a minimum
+ # of 3 fragments and a maximum of 10 fragments.
+ #
+ # The default is 5 fragments if `PlaybackMode` is `LIVE` or
+ # `LIVE_REPLAY`, and 1,000 if `PlaybackMode` is `ON_DEMAND`.
+ #
+ # The maximum value of 1,000 fragments corresponds to more than 16
+ # minutes of video on streams with 1-second fragments, and more than 2
+ # 1/2 hours of video on streams with 10-second fragments.
+ #
+ # @return [Types::GetDASHStreamingSessionURLOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
+ #
+ # * {Types::GetDASHStreamingSessionURLOutput#dash_streaming_session_url #dash_streaming_session_url} => String
+ #
+ # @example Request syntax with placeholder values
+ #
+ # resp = client.get_dash_streaming_session_url({
+ # stream_name: "StreamName",
+ # stream_arn: "ResourceARN",
+ # playback_mode: "LIVE", # accepts LIVE, LIVE_REPLAY, ON_DEMAND
+ # display_fragment_timestamp: "ALWAYS", # accepts ALWAYS, NEVER
+ # display_fragment_number: "ALWAYS", # accepts ALWAYS, NEVER
+ # dash_fragment_selector: {
+ # fragment_selector_type: "PRODUCER_TIMESTAMP", # accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
+ # timestamp_range: {
+ # start_timestamp: Time.now,
+ # end_timestamp: Time.now,
+ # },
+ # },
+ # expires: 1,
+ # max_manifest_fragment_results: 1,
+ # })
+ #
+ # @example Response structure
+ #
+ # resp.dash_streaming_session_url #=> String
+ #
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/GetDASHStreamingSessionURL AWS API Documentation
+ #
+ # @overload get_dash_streaming_session_url(params = {})
+ # @param [Hash] params ({})
+ def get_dash_streaming_session_url(params = {}, options = {})
+ req = build_request(:get_dash_streaming_session_url, params)
+ req.send_request(options)
+ end
+
# Retrieves an HTTP Live Streaming (HLS) URL for the stream. You can
# then open the URL in a browser or media player to view the stream
# contents.
#
- # You must specify either the `StreamName` or the `StreamARN`.
+ # Both the `StreamName` and the `StreamARN` parameters are optional, but
+ # you must specify either the `StreamName` or the `StreamARN` when
+ # invoking this API operation.
#
# An Amazon Kinesis video stream has the following requirements for
# providing data through HLS:
#
- # * The media must contain h.264 encoded video and, optionally, AAC
- # encoded audio. Specifically, the codec id of track 1 should be
- # `V_MPEG/ISO/AVC`. Optionally, the codec id of track 2 should be
- # `A_AAC`.
+ # * The media must contain h.264 or h.265 encoded video and, optionally,
+ # AAC encoded audio. Specifically, the codec id of track 1 should be
+ # `V_MPEG/ISO/AVC` (for h.264) or `V_MPEG/ISO/HEVC` (for h.265).
+ # Optionally, the codec id of track 2 should be `A_AAC`.
#
# * Data retention must be greater than 0.
#
# * The video track of each fragment must contain codec private data in
- # the Advanced Video Coding (AVC) for H.264 format ([MPEG-4
- # specification ISO/IEC 14496-15][1]). For information about adapting
- # stream data to a given format, see [NAL Adaptation Flags][2].
+ # the Advanced Video Coding (AVC) for H.264 format or HEVC for H.265
+ # format ([MPEG-4 specification ISO/IEC 14496-15][1]). For information
+ # about adapting stream data to a given format, see [NAL Adaptation
+ # Flags][2].
#
# * The audio track (if present) of each fragment must contain codec
# private data in the AAC format ([AAC specification ISO/IEC
# 13818-7][3]).
#
# Kinesis Video Streams HLS sessions contain fragments in the fragmented
- # MPEG-4 form (also called fMP4 or CMAF), rather than the MPEG-2 form
- # (also called TS chunks, which the HLS specification also supports).
- # For more information about HLS fragment types, see the [HLS
- # specification][4].
+ # MPEG-4 form (also called fMP4 or CMAF) or the MPEG-2 form (also called
+ # TS chunks, which the HLS specification also supports). For more
+ # information about HLS fragment types, see the [HLS specification][4].
#
# The following procedure shows how to use HLS with Kinesis Video
# Streams:
#
# 1. Get an endpoint using [GetDataEndpoint][5], specifying
@@ -388,18 +737,23 @@
# * A streaming session URL should not be shared between players. The
# service might throttle a session if multiple media players are
# sharing it. For connection limits, see [Kinesis Video Streams
# Limits][7].
#
- # * A Kinesis video stream can have a maximum of five active HLS
+ # * A Kinesis video stream can have a maximum of ten active HLS
# streaming sessions. If a new session is created when the maximum
# number of sessions is already active, the oldest (earliest created)
# session is closed. The number of active `GetMedia` connections on a
# Kinesis video stream does not count against this limit, and the
# number of active HLS sessions does not count against the active
# `GetMedia` connection limit.
#
+ # <note markdown="1"> The maximum limits for active HLS and MPEG-DASH streaming sessions
+ # are independent of each other.
+ #
+ # </note>
+ #
# </note>
#
# You can monitor the amount of data that the media player consumes by
# monitoring the `GetMP4MediaFragment.OutgoingBytes` Amazon CloudWatch
# metric. For information about using CloudWatch to monitor Kinesis
@@ -409,12 +763,33 @@
# apply.
#
# For more information about HLS, see [HTTP Live Streaming][10] on the
# [Apple Developer site][11].
#
+ # If an error is thrown after invoking a Kinesis Video Streams archived
+ # media API, in addition to the HTTP status code and the response body,
+ # it includes the following pieces of information:
#
+ # * `x-amz-ErrorType` HTTP header – contains a more specific error type
+ # in addition to what the HTTP status code provides.
#
+ # * `x-amz-RequestId` HTTP header – if you want to report an issue to
+ # AWS, the support team can better diagnose the problem if given the
+ # Request Id.
+ #
+ # Both the HTTP status code and the ErrorType header can be utilized to
+ # make programmatic decisions about whether errors are retry-able and
+ # under what conditions, as well as provide information on what actions
+ # the client programmer might need to take in order to successfully try
+ # again.
+ #
+ # For more information, see the **Errors** section at the bottom of
+ # this
+ # topic, as well as [Common Errors][12].
+ #
+ #
+ #
# [1]: https://www.iso.org/standard/55980.html
# [2]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/producer-reference-nal.html
# [3]: https://www.iso.org/standard/43345.html
# [4]: https://tools.ietf.org/html/draft-pantos-http-live-streaming-23
# [5]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_GetDataEndpoint.html
@@ -422,10 +797,11 @@
# [7]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html
# [8]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/monitoring.html
# [9]: https://aws.amazon.com/pricing/
# [10]: https://developer.apple.com/streaming/
# [11]: https://developer.apple.com
+ # [12]: https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html
#
# @option params [String] :stream_name
# The name of the stream for which to retrieve the HLS master playlist
# URL.
#
@@ -436,13 +812,13 @@
# HLS master playlist URL.
#
# You must specify either the `StreamName` or the `StreamARN`.
#
# @option params [String] :playback_mode
- # Whether to retrieve live or archived, on-demand data.
+ # Whether to retrieve live, live replay, or archived, on-demand data.
#
- # Features of the two types of session include the following:
+ # Features of the three types of sessions include the following:
#
# * <b> <code>LIVE</code> </b>\: For sessions of this type, the HLS
# media playlist is continually updated with the latest fragments as
# they become available. We recommend that the media player retrieve a
# new playlist on a one-second interval. When this type of session is
@@ -459,19 +835,33 @@
# available after a subsequent fragment is added to the playlist, the
# older fragment is not added, and the gap is not filled.
#
# </note>
#
+ # * <b> <code>LIVE_REPLAY</code> </b>\: For sessions of this type, the
+ # HLS media playlist is updated similarly to how it is updated for
+ # `LIVE` mode except that it starts by including fragments from a
+ # given start time. Instead of fragments being added as they are
+ # ingested, fragments are added as the duration of the next fragment
+ # elapses. For example, if the fragments in the session are two
+ # seconds long, then a new fragment is added to the media playlist
+ # every two seconds. This mode is useful to be able to start playback
+ # from when an event is detected and continue live streaming media
+ # that has not yet been ingested as of the time of the session
+ # creation. This mode is also useful to stream previously archived
+ # media without being limited by the 1,000 fragment limit in the
+ # `ON_DEMAND` mode.
+ #
# * <b> <code>ON_DEMAND</code> </b>\: For sessions of this type, the HLS
# media playlist contains all the fragments for the session, up to the
# number that is specified in `MaxMediaPlaylistFragmentResults`. The
# playlist must be retrieved only once for each session. When this
# type of session is played in a media player, the user interface
# typically displays a scrubber control for choosing the position in
# the playback window to display.
#
- # In both playback modes, if `FragmentSelectorType` is
+ # In all playback modes, if `FragmentSelectorType` is
# `PRODUCER_TIMESTAMP`, and if there are multiple fragments with the
# same start timestamp, the fragment that has the larger fragment number
# (that is, the newer fragment) is included in the HLS media playlist.
# The other fragments are not included. Fragments that have different
# timestamps but have overlapping durations are still included in the
@@ -482,15 +872,17 @@
#
# @option params [Types::HLSFragmentSelector] :hls_fragment_selector
# The time range of the requested fragment, and the source of the
# timestamps.
#
- # This parameter is required if `PlaybackMode` is `ON_DEMAND`. This
- # parameter is optional if `PlaybackMode` is `LIVE`. If `PlaybackMode`
- # is `LIVE`, the `FragmentSelectorType` can be set, but the
- # `TimestampRange` should not be set. If `PlaybackMode` is `ON_DEMAND`,
- # both `FragmentSelectorType` and `TimestampRange` must be set.
+ # This parameter is required if `PlaybackMode` is `ON_DEMAND` or
+ # `LIVE_REPLAY`. This parameter is optional if PlaybackMode is` LIVE. If
+ # PlaybackMode is LIVE, the FragmentSelectorType can be set, but the
+ # TimestampRange should not be set. If PlaybackMode is ON_DEMAND or
+ # LIVE_REPLAY, both FragmentSelectorType and TimestampRange must be
+ # set.</p>
+ # `
#
# @option params [String] :container_format
# Specifies which format should be used for packaging the media.
# Specifying the `FRAGMENTED_MP4` container format packages the media
# into MP4 fragments (fMP4 or CMAF). This is the recommended packaging
@@ -541,12 +933,12 @@
# @option params [Integer] :expires
# The time in seconds until the requested session expires. This value
# can be between 300 (5 minutes) and 43200 (12 hours).
#
# When a session expires, no new calls to `GetHLSMasterPlaylist`,
- # `GetHLSMediaPlaylist`, `GetMP4InitFragment`, or `GetMP4MediaFragment`
- # can be made for that session.
+ # `GetHLSMediaPlaylist`, `GetMP4InitFragment`, `GetMP4MediaFragment`, or
+ # `GetTSFragment` can be made for that session.
#
# The default is 300 (5 minutes).
#
# @option params [Integer] :max_media_playlist_fragment_results
# The maximum number of fragments that are returned in the HLS media
@@ -561,12 +953,12 @@
# playback. Increasing the buffer size increases the playback latency,
# but it decreases the likelihood that rebuffering will occur during
# playback. We recommend that a live HLS media playlist have a minimum
# of 3 fragments and a maximum of 10 fragments.
#
- # The default is 5 fragments if `PlaybackMode` is `LIVE`, and 1,000 if
- # `PlaybackMode` is `ON_DEMAND`.
+ # The default is 5 fragments if `PlaybackMode` is `LIVE` or
+ # `LIVE_REPLAY`, and 1,000 if `PlaybackMode` is `ON_DEMAND`.
#
# The maximum value of 1,000 fragments corresponds to more than 16
# minutes of video on streams with 1-second fragments, and more than 2
# 1/2 hours of video on streams with 10-second fragments.
#
@@ -577,11 +969,11 @@
# @example Request syntax with placeholder values
#
# resp = client.get_hls_streaming_session_url({
# stream_name: "StreamName",
# stream_arn: "ResourceARN",
- # playback_mode: "LIVE", # accepts LIVE, ON_DEMAND
+ # playback_mode: "LIVE", # accepts LIVE, LIVE_REPLAY, ON_DEMAND
# hls_fragment_selector: {
# fragment_selector_type: "PRODUCER_TIMESTAMP", # accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
# timestamp_range: {
# start_timestamp: Time.now,
# end_timestamp: Time.now,
@@ -624,13 +1016,35 @@
#
# * Kinesis Video Streams sends media data at a rate of up to 25
# megabytes per second (or 200 megabits per second) during a
# `GetMediaForFragmentList` session.
#
+ # If an error is thrown after invoking a Kinesis Video Streams archived
+ # media API, in addition to the HTTP status code and the response body,
+ # it includes the following pieces of information:
#
+ # * `x-amz-ErrorType` HTTP header – contains a more specific error type
+ # in addition to what the HTTP status code provides.
#
+ # * `x-amz-RequestId` HTTP header – if you want to report an issue to
+ # AWS, the support team can better diagnose the problem if given the
+ # Request Id.
+ #
+ # Both the HTTP status code and the ErrorType header can be utilized to
+ # make programmatic decisions about whether errors are retry-able and
+ # under what conditions, as well as provide information on what actions
+ # the client programmer might need to take in order to successfully try
+ # again.
+ #
+ # For more information, see the **Errors** section at the bottom of
+ # this
+ # topic, as well as [Common Errors][2].
+ #
+ #
+ #
# [1]: https://docs.aws.amazon.com/cli/latest/reference/
+ # [2]: https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html
#
# @option params [required, String] :stream_name
# The name of the stream from which to retrieve fragment media.
#
# @option params [required, Array<String>] :fragments
@@ -676,13 +1090,35 @@
# send the `ListFragments` requests to this endpoint using the
# [--endpoint-url parameter][1].
#
# </note>
#
+ # If an error is thrown after invoking a Kinesis Video Streams archived
+ # media API, in addition to the HTTP status code and the response body,
+ # it includes the following pieces of information:
#
+ # * `x-amz-ErrorType` HTTP header – contains a more specific error type
+ # in addition to what the HTTP status code provides.
#
+ # * `x-amz-RequestId` HTTP header – if you want to report an issue to
+ # AWS, the support team can better diagnose the problem if given the
+ # Request Id.
+ #
+ # Both the HTTP status code and the ErrorType header can be utilized to
+ # make programmatic decisions about whether errors are retry-able and
+ # under what conditions, as well as provide information on what actions
+ # the client programmer might need to take in order to successfully try
+ # again.
+ #
+ # For more information, see the **Errors** section at the bottom of
+ # this
+ # topic, as well as [Common Errors][2].
+ #
+ #
+ #
# [1]: https://docs.aws.amazon.com/cli/latest/reference/
+ # [2]: https://docs.aws.amazon.com/kinesisvideostreams/latest/dg/CommonErrors.html
#
# @option params [required, String] :stream_name
# The name of the stream from which to retrieve a fragment list.
#
# @option params [Integer] :max_results
@@ -749,10 +1185,10 @@
operation: config.api.operation(operation_name),
client: self,
params: params,
config: config)
context[:gem_name] = 'aws-sdk-kinesisvideoarchivedmedia'
- context[:gem_version] = '1.16.0'
+ context[:gem_version] = '1.17.0'
Seahorse::Client::Request.new(handlers, context)
end
# @api private
# @deprecated