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