/* * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). * You may not use this file except in compliance with the License. * A copy of the License is located at * * http://aws.amazon.com/apache2.0 * * or in the "license" file accompanying this file. This file is distributed * on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either * express or implied. See the License for the specific language governing * permissions and limitations under the License. */ /* * Do not modify this file. This file is generated from the kinesis-video-archived-media-2017-09-30.normal.json service model. */ using System; using System.Runtime.ExceptionServices; using System.Threading; using System.Threading.Tasks; using System.Collections.Generic; using System.Net; using Amazon.KinesisVideoArchivedMedia.Model; using Amazon.KinesisVideoArchivedMedia.Model.Internal.MarshallTransformations; using Amazon.KinesisVideoArchivedMedia.Internal; using Amazon.Runtime; using Amazon.Runtime.Internal; using Amazon.Runtime.Internal.Auth; using Amazon.Runtime.Internal.Transform; namespace Amazon.KinesisVideoArchivedMedia { /// /// Implementation for accessing KinesisVideoArchivedMedia /// /// /// public partial class AmazonKinesisVideoArchivedMediaClient : AmazonServiceClient, IAmazonKinesisVideoArchivedMedia { private static IServiceMetadata serviceMetadata = new AmazonKinesisVideoArchivedMediaMetadata(); private IKinesisVideoArchivedMediaPaginatorFactory _paginators; /// /// Paginators for the service /// public IKinesisVideoArchivedMediaPaginatorFactory Paginators { get { if (this._paginators == null) { this._paginators = new KinesisVideoArchivedMediaPaginatorFactory(this); } return this._paginators; } } #region Overrides /// /// Creates the signer for the service. /// protected override AbstractAWSSigner CreateSigner() { return new AWS4Signer(); } /// /// Customize the pipeline /// /// protected override void CustomizeRuntimePipeline(RuntimePipeline pipeline) { pipeline.RemoveHandler(); pipeline.AddHandlerAfter(new AmazonKinesisVideoArchivedMediaEndpointResolver()); } /// /// Capture metadata for the service. /// protected override IServiceMetadata ServiceMetadata { get { return serviceMetadata; } } #endregion #region Dispose /// /// Disposes the service client. /// protected override void Dispose(bool disposing) { base.Dispose(disposing); } #endregion #region GetClip /// /// Downloads an MP4 file (clip) containing the archived, on-demand media from the specified /// video stream over the specified time range. /// /// /// /// Both the StreamName and the StreamARN parameters are optional, but you must specify /// either the StreamName or the StreamARN when invoking this API operation. /// /// /// /// As a prerequisite to using GetCLip API, you must obtain an endpoint using GetDataEndpoint, /// specifying GET_CLIP for the APIName parameter. /// /// /// /// An Amazon Kinesis video stream has the following requirements for providing data through /// MP4: /// ///
  • /// /// 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. /// For information about adapting stream data to a given format, see NAL /// Adaptation Flags. /// ///
  • /// /// The audio track (if present) of each fragment must contain codec private data in the /// AAC format (AAC specification ISO/IEC /// 13818-7) or the MS /// Wave format. /// ///
/// /// You can monitor the amount of outgoing data by monitoring the GetClip.OutgoingBytes /// Amazon CloudWatch metric. For information about using CloudWatch to monitor Kinesis /// Video Streams, see Monitoring /// Kinesis Video Streams. For pricing information, see Amazon /// Kinesis Video Streams Pricing and AWS /// Pricing. Charges for outgoing AWS data apply. /// ///
/// Container for the necessary parameters to execute the GetClip service method. /// /// The response from the GetClip service method, as returned by KinesisVideoArchivedMedia. /// /// Kinesis Video Streams has throttled the request because you have exceeded a limit. /// Try making the call later. For information about limits, see Kinesis /// Video Streams Limits. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// /// /// The codec private data in at least one of the tracks of the video stream is not valid /// for this operation. /// /// /// One or more frames in the requested clip could not be parsed based on the specified /// codec. /// /// /// No codec private data was found in at least one of tracks of the video stream. /// /// /// A streaming session was requested for a stream that does not retain data (that is, /// has a DataRetentionInHours of 0). /// /// /// Status Code: 403, The caller is not authorized to perform an operation on the given /// stream, or the token has expired. /// /// /// GetMedia throws this error when Kinesis Video Streams can't find the /// stream that you specified. /// /// /// /// GetHLSStreamingSessionURL and GetDASHStreamingSessionURL /// throw this error if a session with a PlaybackMode of ON_DEMAND /// or LIVE_REPLAYis requested for a stream that has no fragments within /// the requested time range, or if a session with a PlaybackMode of LIVE /// is requested for a stream that has no fragments within the last 30 seconds. /// /// /// /// The type of the media (for example, h.264 or h.265 video or ACC or G.711 audio) could /// not be determined from the codec IDs of the tracks in the first fragment for a playback /// session. The codec ID for track 1 should be V_MPEG/ISO/AVC and, optionally, /// the codec ID for track 2 should be A_AAC. /// /// REST API Reference for GetClip Operation public virtual GetClipResponse GetClip(GetClipRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetClipRequestMarshaller.Instance; options.ResponseUnmarshaller = GetClipResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Downloads an MP4 file (clip) containing the archived, on-demand media from the specified /// video stream over the specified time range. /// /// /// /// Both the StreamName and the StreamARN parameters are optional, but you must specify /// either the StreamName or the StreamARN when invoking this API operation. /// /// /// /// As a prerequisite to using GetCLip API, you must obtain an endpoint using GetDataEndpoint, /// specifying GET_CLIP for the APIName parameter. /// /// /// /// An Amazon Kinesis video stream has the following requirements for providing data through /// MP4: /// ///
  • /// /// 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. /// For information about adapting stream data to a given format, see NAL /// Adaptation Flags. /// ///
  • /// /// The audio track (if present) of each fragment must contain codec private data in the /// AAC format (AAC specification ISO/IEC /// 13818-7) or the MS /// Wave format. /// ///
/// /// You can monitor the amount of outgoing data by monitoring the GetClip.OutgoingBytes /// Amazon CloudWatch metric. For information about using CloudWatch to monitor Kinesis /// Video Streams, see Monitoring /// Kinesis Video Streams. For pricing information, see Amazon /// Kinesis Video Streams Pricing and AWS /// Pricing. Charges for outgoing AWS data apply. /// ///
/// Container for the necessary parameters to execute the GetClip service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetClip service method, as returned by KinesisVideoArchivedMedia. /// /// Kinesis Video Streams has throttled the request because you have exceeded a limit. /// Try making the call later. For information about limits, see Kinesis /// Video Streams Limits. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// /// /// The codec private data in at least one of the tracks of the video stream is not valid /// for this operation. /// /// /// One or more frames in the requested clip could not be parsed based on the specified /// codec. /// /// /// No codec private data was found in at least one of tracks of the video stream. /// /// /// A streaming session was requested for a stream that does not retain data (that is, /// has a DataRetentionInHours of 0). /// /// /// Status Code: 403, The caller is not authorized to perform an operation on the given /// stream, or the token has expired. /// /// /// GetMedia throws this error when Kinesis Video Streams can't find the /// stream that you specified. /// /// /// /// GetHLSStreamingSessionURL and GetDASHStreamingSessionURL /// throw this error if a session with a PlaybackMode of ON_DEMAND /// or LIVE_REPLAYis requested for a stream that has no fragments within /// the requested time range, or if a session with a PlaybackMode of LIVE /// is requested for a stream that has no fragments within the last 30 seconds. /// /// /// /// The type of the media (for example, h.264 or h.265 video or ACC or G.711 audio) could /// not be determined from the codec IDs of the tracks in the first fragment for a playback /// session. The codec ID for track 1 should be V_MPEG/ISO/AVC and, optionally, /// the codec ID for track 2 should be A_AAC. /// /// REST API Reference for GetClip Operation public virtual Task GetClipAsync(GetClipRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = GetClipRequestMarshaller.Instance; options.ResponseUnmarshaller = GetClipResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region GetDASHStreamingSessionURL /// /// 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. /// For information about adapting stream data to a given format, see NAL /// Adaptation Flags. /// ///
  • /// /// The audio track (if present) of each fragment must contain codec private data in the /// AAC format (AAC specification ISO/IEC /// 13818-7) or the MS /// Wave format. /// ///
/// /// The following procedure shows how to use MPEG-DASH with Kinesis Video Streams: /// ///
  1. /// /// Get an endpoint using GetDataEndpoint, /// 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). /// /// /// /// Don't share or store this token where an unauthorized entity can access it. The token /// provides access to the content of the stream. Safeguard the token with the same measures /// that you use with your AWS credentials. /// /// /// /// 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. /// /// /// /// 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. /// /// /// /// Data retrieved with this action is billable. See Pricing /// for details. /// ///
/// /// For restrictions that apply to MPEG-DASH sessions, see Kinesis /// Video Streams Limits. /// /// /// /// 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. For pricing information, see Amazon /// Kinesis Video Streams Pricing and AWS /// Pricing. Charges for both HLS sessions and outgoing AWS data apply. /// /// /// /// For more information about HLS, see HTTP /// Live Streaming on the Apple Developer site. /// /// /// /// 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. /// ///
///
/// Container for the necessary parameters to execute the GetDASHStreamingSessionURL service method. /// /// The response from the GetDASHStreamingSessionURL service method, as returned by KinesisVideoArchivedMedia. /// /// Kinesis Video Streams has throttled the request because you have exceeded a limit. /// Try making the call later. For information about limits, see Kinesis /// Video Streams Limits. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// /// /// The codec private data in at least one of the tracks of the video stream is not valid /// for this operation. /// /// /// No codec private data was found in at least one of tracks of the video stream. /// /// /// A streaming session was requested for a stream that does not retain data (that is, /// has a DataRetentionInHours of 0). /// /// /// Status Code: 403, The caller is not authorized to perform an operation on the given /// stream, or the token has expired. /// /// /// GetMedia throws this error when Kinesis Video Streams can't find the /// stream that you specified. /// /// /// /// GetHLSStreamingSessionURL and GetDASHStreamingSessionURL /// throw this error if a session with a PlaybackMode of ON_DEMAND /// or LIVE_REPLAYis requested for a stream that has no fragments within /// the requested time range, or if a session with a PlaybackMode of LIVE /// is requested for a stream that has no fragments within the last 30 seconds. /// /// /// /// The type of the media (for example, h.264 or h.265 video or ACC or G.711 audio) could /// not be determined from the codec IDs of the tracks in the first fragment for a playback /// session. The codec ID for track 1 should be V_MPEG/ISO/AVC and, optionally, /// the codec ID for track 2 should be A_AAC. /// /// REST API Reference for GetDASHStreamingSessionURL Operation public virtual GetDASHStreamingSessionURLResponse GetDASHStreamingSessionURL(GetDASHStreamingSessionURLRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetDASHStreamingSessionURLRequestMarshaller.Instance; options.ResponseUnmarshaller = GetDASHStreamingSessionURLResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// 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. /// For information about adapting stream data to a given format, see NAL /// Adaptation Flags. /// ///
  • /// /// The audio track (if present) of each fragment must contain codec private data in the /// AAC format (AAC specification ISO/IEC /// 13818-7) or the MS /// Wave format. /// ///
/// /// The following procedure shows how to use MPEG-DASH with Kinesis Video Streams: /// ///
  1. /// /// Get an endpoint using GetDataEndpoint, /// 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). /// /// /// /// Don't share or store this token where an unauthorized entity can access it. The token /// provides access to the content of the stream. Safeguard the token with the same measures /// that you use with your AWS credentials. /// /// /// /// 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. /// /// /// /// 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. /// /// /// /// Data retrieved with this action is billable. See Pricing /// for details. /// ///
/// /// For restrictions that apply to MPEG-DASH sessions, see Kinesis /// Video Streams Limits. /// /// /// /// 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. For pricing information, see Amazon /// Kinesis Video Streams Pricing and AWS /// Pricing. Charges for both HLS sessions and outgoing AWS data apply. /// /// /// /// For more information about HLS, see HTTP /// Live Streaming on the Apple Developer site. /// /// /// /// 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. /// ///
///
/// Container for the necessary parameters to execute the GetDASHStreamingSessionURL service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetDASHStreamingSessionURL service method, as returned by KinesisVideoArchivedMedia. /// /// Kinesis Video Streams has throttled the request because you have exceeded a limit. /// Try making the call later. For information about limits, see Kinesis /// Video Streams Limits. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// /// /// The codec private data in at least one of the tracks of the video stream is not valid /// for this operation. /// /// /// No codec private data was found in at least one of tracks of the video stream. /// /// /// A streaming session was requested for a stream that does not retain data (that is, /// has a DataRetentionInHours of 0). /// /// /// Status Code: 403, The caller is not authorized to perform an operation on the given /// stream, or the token has expired. /// /// /// GetMedia throws this error when Kinesis Video Streams can't find the /// stream that you specified. /// /// /// /// GetHLSStreamingSessionURL and GetDASHStreamingSessionURL /// throw this error if a session with a PlaybackMode of ON_DEMAND /// or LIVE_REPLAYis requested for a stream that has no fragments within /// the requested time range, or if a session with a PlaybackMode of LIVE /// is requested for a stream that has no fragments within the last 30 seconds. /// /// /// /// The type of the media (for example, h.264 or h.265 video or ACC or G.711 audio) could /// not be determined from the codec IDs of the tracks in the first fragment for a playback /// session. The codec ID for track 1 should be V_MPEG/ISO/AVC and, optionally, /// the codec ID for track 2 should be A_AAC. /// /// REST API Reference for GetDASHStreamingSessionURL Operation public virtual Task GetDASHStreamingSessionURLAsync(GetDASHStreamingSessionURLRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = GetDASHStreamingSessionURLRequestMarshaller.Instance; options.ResponseUnmarshaller = GetDASHStreamingSessionURLResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region GetHLSStreamingSessionURL /// /// 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. /// /// /// /// 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 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 or HEVC for H.265 format (MPEG-4 /// specification ISO/IEC 14496-15). For information about adapting stream data to /// a given format, see NAL /// Adaptation Flags. /// ///
  • /// /// The audio track (if present) of each fragment must contain codec private data in the /// AAC format (AAC specification ISO/IEC /// 13818-7). /// ///
/// /// Kinesis Video Streams HLS sessions contain fragments in the fragmented 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. /// /// /// /// The following procedure shows how to use HLS with Kinesis Video Streams: /// ///
  1. /// /// Get an endpoint using GetDataEndpoint, /// specifying GET_HLS_STREAMING_SESSION_URL for the APIName /// parameter. /// ///
  2. /// /// Retrieve the HLS URL using GetHLSStreamingSessionURL. Kinesis Video Streams /// creates an HLS streaming session to be used for accessing content in a stream using /// the HLS protocol. GetHLSStreamingSessionURL returns an authenticated /// URL (that includes an encrypted session token) for the session's HLS master playlist /// (the root resource needed for streaming with HLS). /// /// /// /// 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. /// /// /// /// The media that is made available through the playlist 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 HLS master playlist /// to a media player that supports the HLS protocol. Kinesis Video Streams makes the /// HLS media playlist, initialization fragment, and media fragments available through /// the master playlist 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 H.264-encoded video frames or AAC-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: /// ///
    • /// /// GetHLSMasterPlaylist: Retrieves an HLS master playlist, which contains a URL /// for the GetHLSMediaPlaylist action for each track, and additional metadata /// for the media player, including estimated bitrate and resolution. /// ///
    • /// /// GetHLSMediaPlaylist: Retrieves an HLS media playlist, which contains a URL /// to access the MP4 initialization fragment with the GetMP4InitFragment /// action, and URLs to access the MP4 media fragments with the GetMP4MediaFragment /// actions. The HLS media playlist also contains metadata about the stream that the player /// needs to play it, such as whether the PlaybackMode is LIVE /// or ON_DEMAND. The HLS media playlist is typically static for sessions /// with a PlaybackType of ON_DEMAND. The HLS media playlist /// is continually updated with new fragments for sessions with a PlaybackType /// of LIVE. There is a distinct HLS media playlist for the video track and /// the audio track (if applicable) that contains MP4 media URLs for the specific track. /// /// ///
    • /// /// 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. /// /// /// /// 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. /// /// /// /// Data retrieved with this action is billable. See Pricing /// for details. /// ///
    • /// /// GetTSFragment: Retrieves MPEG TS fragments containing both initialization /// and media data for all tracks in the stream. /// /// /// /// If the ContainerFormat is MPEG_TS, this API is used instead /// of GetMP4InitFragment and GetMP4MediaFragment to retrieve /// stream media. /// /// /// /// Data retrieved with this action is billable. For more information, see Kinesis /// Video Streams pricing. /// ///
/// /// A streaming session URL must 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. /// /// /// /// 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. For pricing information, see Amazon /// Kinesis Video Streams Pricing and AWS /// Pricing. Charges for both HLS sessions and outgoing AWS data apply. /// /// /// /// For more information about HLS, see HTTP /// Live Streaming on the Apple Developer site. /// /// /// /// 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. /// ///
///
/// Container for the necessary parameters to execute the GetHLSStreamingSessionURL service method. /// /// The response from the GetHLSStreamingSessionURL service method, as returned by KinesisVideoArchivedMedia. /// /// Kinesis Video Streams has throttled the request because you have exceeded a limit. /// Try making the call later. For information about limits, see Kinesis /// Video Streams Limits. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// /// /// The codec private data in at least one of the tracks of the video stream is not valid /// for this operation. /// /// /// No codec private data was found in at least one of tracks of the video stream. /// /// /// A streaming session was requested for a stream that does not retain data (that is, /// has a DataRetentionInHours of 0). /// /// /// Status Code: 403, The caller is not authorized to perform an operation on the given /// stream, or the token has expired. /// /// /// GetMedia throws this error when Kinesis Video Streams can't find the /// stream that you specified. /// /// /// /// GetHLSStreamingSessionURL and GetDASHStreamingSessionURL /// throw this error if a session with a PlaybackMode of ON_DEMAND /// or LIVE_REPLAYis requested for a stream that has no fragments within /// the requested time range, or if a session with a PlaybackMode of LIVE /// is requested for a stream that has no fragments within the last 30 seconds. /// /// /// /// The type of the media (for example, h.264 or h.265 video or ACC or G.711 audio) could /// not be determined from the codec IDs of the tracks in the first fragment for a playback /// session. The codec ID for track 1 should be V_MPEG/ISO/AVC and, optionally, /// the codec ID for track 2 should be A_AAC. /// /// REST API Reference for GetHLSStreamingSessionURL Operation public virtual GetHLSStreamingSessionURLResponse GetHLSStreamingSessionURL(GetHLSStreamingSessionURLRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetHLSStreamingSessionURLRequestMarshaller.Instance; options.ResponseUnmarshaller = GetHLSStreamingSessionURLResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// 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. /// /// /// /// 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 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 or HEVC for H.265 format (MPEG-4 /// specification ISO/IEC 14496-15). For information about adapting stream data to /// a given format, see NAL /// Adaptation Flags. /// ///
  • /// /// The audio track (if present) of each fragment must contain codec private data in the /// AAC format (AAC specification ISO/IEC /// 13818-7). /// ///
/// /// Kinesis Video Streams HLS sessions contain fragments in the fragmented 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. /// /// /// /// The following procedure shows how to use HLS with Kinesis Video Streams: /// ///
  1. /// /// Get an endpoint using GetDataEndpoint, /// specifying GET_HLS_STREAMING_SESSION_URL for the APIName /// parameter. /// ///
  2. /// /// Retrieve the HLS URL using GetHLSStreamingSessionURL. Kinesis Video Streams /// creates an HLS streaming session to be used for accessing content in a stream using /// the HLS protocol. GetHLSStreamingSessionURL returns an authenticated /// URL (that includes an encrypted session token) for the session's HLS master playlist /// (the root resource needed for streaming with HLS). /// /// /// /// 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. /// /// /// /// The media that is made available through the playlist 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 HLS master playlist /// to a media player that supports the HLS protocol. Kinesis Video Streams makes the /// HLS media playlist, initialization fragment, and media fragments available through /// the master playlist 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 H.264-encoded video frames or AAC-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: /// ///
    • /// /// GetHLSMasterPlaylist: Retrieves an HLS master playlist, which contains a URL /// for the GetHLSMediaPlaylist action for each track, and additional metadata /// for the media player, including estimated bitrate and resolution. /// ///
    • /// /// GetHLSMediaPlaylist: Retrieves an HLS media playlist, which contains a URL /// to access the MP4 initialization fragment with the GetMP4InitFragment /// action, and URLs to access the MP4 media fragments with the GetMP4MediaFragment /// actions. The HLS media playlist also contains metadata about the stream that the player /// needs to play it, such as whether the PlaybackMode is LIVE /// or ON_DEMAND. The HLS media playlist is typically static for sessions /// with a PlaybackType of ON_DEMAND. The HLS media playlist /// is continually updated with new fragments for sessions with a PlaybackType /// of LIVE. There is a distinct HLS media playlist for the video track and /// the audio track (if applicable) that contains MP4 media URLs for the specific track. /// /// ///
    • /// /// 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. /// /// /// /// 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. /// /// /// /// Data retrieved with this action is billable. See Pricing /// for details. /// ///
    • /// /// GetTSFragment: Retrieves MPEG TS fragments containing both initialization /// and media data for all tracks in the stream. /// /// /// /// If the ContainerFormat is MPEG_TS, this API is used instead /// of GetMP4InitFragment and GetMP4MediaFragment to retrieve /// stream media. /// /// /// /// Data retrieved with this action is billable. For more information, see Kinesis /// Video Streams pricing. /// ///
/// /// A streaming session URL must 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. /// /// /// /// 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. For pricing information, see Amazon /// Kinesis Video Streams Pricing and AWS /// Pricing. Charges for both HLS sessions and outgoing AWS data apply. /// /// /// /// For more information about HLS, see HTTP /// Live Streaming on the Apple Developer site. /// /// /// /// 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. /// ///
///
/// Container for the necessary parameters to execute the GetHLSStreamingSessionURL service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetHLSStreamingSessionURL service method, as returned by KinesisVideoArchivedMedia. /// /// Kinesis Video Streams has throttled the request because you have exceeded a limit. /// Try making the call later. For information about limits, see Kinesis /// Video Streams Limits. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// /// /// The codec private data in at least one of the tracks of the video stream is not valid /// for this operation. /// /// /// No codec private data was found in at least one of tracks of the video stream. /// /// /// A streaming session was requested for a stream that does not retain data (that is, /// has a DataRetentionInHours of 0). /// /// /// Status Code: 403, The caller is not authorized to perform an operation on the given /// stream, or the token has expired. /// /// /// GetMedia throws this error when Kinesis Video Streams can't find the /// stream that you specified. /// /// /// /// GetHLSStreamingSessionURL and GetDASHStreamingSessionURL /// throw this error if a session with a PlaybackMode of ON_DEMAND /// or LIVE_REPLAYis requested for a stream that has no fragments within /// the requested time range, or if a session with a PlaybackMode of LIVE /// is requested for a stream that has no fragments within the last 30 seconds. /// /// /// /// The type of the media (for example, h.264 or h.265 video or ACC or G.711 audio) could /// not be determined from the codec IDs of the tracks in the first fragment for a playback /// session. The codec ID for track 1 should be V_MPEG/ISO/AVC and, optionally, /// the codec ID for track 2 should be A_AAC. /// /// REST API Reference for GetHLSStreamingSessionURL Operation public virtual Task GetHLSStreamingSessionURLAsync(GetHLSStreamingSessionURLRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = GetHLSStreamingSessionURLRequestMarshaller.Instance; options.ResponseUnmarshaller = GetHLSStreamingSessionURLResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region GetImages /// /// Retrieves a list of Images corresponding to each timestamp for a given time range, /// sampling interval, and image format configuration. /// /// Container for the necessary parameters to execute the GetImages service method. /// /// The response from the GetImages service method, as returned by KinesisVideoArchivedMedia. /// /// Kinesis Video Streams has throttled the request because you have exceeded a limit. /// Try making the call later. For information about limits, see Kinesis /// Video Streams Limits. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// /// /// Status Code: 403, The caller is not authorized to perform an operation on the given /// stream, or the token has expired. /// /// /// GetMedia throws this error when Kinesis Video Streams can't find the /// stream that you specified. /// /// /// /// GetHLSStreamingSessionURL and GetDASHStreamingSessionURL /// throw this error if a session with a PlaybackMode of ON_DEMAND /// or LIVE_REPLAYis requested for a stream that has no fragments within /// the requested time range, or if a session with a PlaybackMode of LIVE /// is requested for a stream that has no fragments within the last 30 seconds. /// /// /// REST API Reference for GetImages Operation public virtual GetImagesResponse GetImages(GetImagesRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetImagesRequestMarshaller.Instance; options.ResponseUnmarshaller = GetImagesResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Retrieves a list of Images corresponding to each timestamp for a given time range, /// sampling interval, and image format configuration. /// /// Container for the necessary parameters to execute the GetImages service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetImages service method, as returned by KinesisVideoArchivedMedia. /// /// Kinesis Video Streams has throttled the request because you have exceeded a limit. /// Try making the call later. For information about limits, see Kinesis /// Video Streams Limits. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// /// /// Status Code: 403, The caller is not authorized to perform an operation on the given /// stream, or the token has expired. /// /// /// GetMedia throws this error when Kinesis Video Streams can't find the /// stream that you specified. /// /// /// /// GetHLSStreamingSessionURL and GetDASHStreamingSessionURL /// throw this error if a session with a PlaybackMode of ON_DEMAND /// or LIVE_REPLAYis requested for a stream that has no fragments within /// the requested time range, or if a session with a PlaybackMode of LIVE /// is requested for a stream that has no fragments within the last 30 seconds. /// /// /// REST API Reference for GetImages Operation public virtual Task GetImagesAsync(GetImagesRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = GetImagesRequestMarshaller.Instance; options.ResponseUnmarshaller = GetImagesResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region GetMediaForFragmentList /// /// Gets media for a list of fragments (specified by fragment number) from the archived /// data in an Amazon Kinesis video stream. /// /// /// /// You must first call the GetDataEndpoint API to get an endpoint. Then /// send the GetMediaForFragmentList requests to this endpoint using the /// --endpoint-url parameter. /// /// /// /// /// For limits, see Kinesis /// Video Streams Limits. /// /// /// /// 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. /// ///
///
/// Container for the necessary parameters to execute the GetMediaForFragmentList service method. /// /// The response from the GetMediaForFragmentList service method, as returned by KinesisVideoArchivedMedia. /// /// Kinesis Video Streams has throttled the request because you have exceeded a limit. /// Try making the call later. For information about limits, see Kinesis /// Video Streams Limits. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// /// /// Status Code: 403, The caller is not authorized to perform an operation on the given /// stream, or the token has expired. /// /// /// GetMedia throws this error when Kinesis Video Streams can't find the /// stream that you specified. /// /// /// /// GetHLSStreamingSessionURL and GetDASHStreamingSessionURL /// throw this error if a session with a PlaybackMode of ON_DEMAND /// or LIVE_REPLAYis requested for a stream that has no fragments within /// the requested time range, or if a session with a PlaybackMode of LIVE /// is requested for a stream that has no fragments within the last 30 seconds. /// /// /// REST API Reference for GetMediaForFragmentList Operation public virtual GetMediaForFragmentListResponse GetMediaForFragmentList(GetMediaForFragmentListRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = GetMediaForFragmentListRequestMarshaller.Instance; options.ResponseUnmarshaller = GetMediaForFragmentListResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Gets media for a list of fragments (specified by fragment number) from the archived /// data in an Amazon Kinesis video stream. /// /// /// /// You must first call the GetDataEndpoint API to get an endpoint. Then /// send the GetMediaForFragmentList requests to this endpoint using the /// --endpoint-url parameter. /// /// /// /// /// For limits, see Kinesis /// Video Streams Limits. /// /// /// /// 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. /// ///
///
/// Container for the necessary parameters to execute the GetMediaForFragmentList service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the GetMediaForFragmentList service method, as returned by KinesisVideoArchivedMedia. /// /// Kinesis Video Streams has throttled the request because you have exceeded a limit. /// Try making the call later. For information about limits, see Kinesis /// Video Streams Limits. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// /// /// Status Code: 403, The caller is not authorized to perform an operation on the given /// stream, or the token has expired. /// /// /// GetMedia throws this error when Kinesis Video Streams can't find the /// stream that you specified. /// /// /// /// GetHLSStreamingSessionURL and GetDASHStreamingSessionURL /// throw this error if a session with a PlaybackMode of ON_DEMAND /// or LIVE_REPLAYis requested for a stream that has no fragments within /// the requested time range, or if a session with a PlaybackMode of LIVE /// is requested for a stream that has no fragments within the last 30 seconds. /// /// /// REST API Reference for GetMediaForFragmentList Operation public virtual Task GetMediaForFragmentListAsync(GetMediaForFragmentListRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = GetMediaForFragmentListRequestMarshaller.Instance; options.ResponseUnmarshaller = GetMediaForFragmentListResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion #region ListFragments /// /// Returns a list of Fragment objects from the specified stream and timestamp /// range within the archived data. /// /// /// /// Listing fragments is eventually consistent. This means that even if the producer receives /// an acknowledgment that a fragment is persisted, the result might not be returned immediately /// from a request to ListFragments. However, results are typically available /// in less than one second. /// /// /// /// You must first call the GetDataEndpoint API to get an endpoint. Then /// send the ListFragments requests to this endpoint using the --endpoint-url /// parameter. /// /// /// /// 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. /// ///
///
/// Container for the necessary parameters to execute the ListFragments service method. /// /// The response from the ListFragments service method, as returned by KinesisVideoArchivedMedia. /// /// Kinesis Video Streams has throttled the request because you have exceeded a limit. /// Try making the call later. For information about limits, see Kinesis /// Video Streams Limits. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// /// /// Status Code: 403, The caller is not authorized to perform an operation on the given /// stream, or the token has expired. /// /// /// GetMedia throws this error when Kinesis Video Streams can't find the /// stream that you specified. /// /// /// /// GetHLSStreamingSessionURL and GetDASHStreamingSessionURL /// throw this error if a session with a PlaybackMode of ON_DEMAND /// or LIVE_REPLAYis requested for a stream that has no fragments within /// the requested time range, or if a session with a PlaybackMode of LIVE /// is requested for a stream that has no fragments within the last 30 seconds. /// /// /// REST API Reference for ListFragments Operation public virtual ListFragmentsResponse ListFragments(ListFragmentsRequest request) { var options = new InvokeOptions(); options.RequestMarshaller = ListFragmentsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListFragmentsResponseUnmarshaller.Instance; return Invoke(request, options); } /// /// Returns a list of Fragment objects from the specified stream and timestamp /// range within the archived data. /// /// /// /// Listing fragments is eventually consistent. This means that even if the producer receives /// an acknowledgment that a fragment is persisted, the result might not be returned immediately /// from a request to ListFragments. However, results are typically available /// in less than one second. /// /// /// /// You must first call the GetDataEndpoint API to get an endpoint. Then /// send the ListFragments requests to this endpoint using the --endpoint-url /// parameter. /// /// /// /// 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. /// ///
///
/// Container for the necessary parameters to execute the ListFragments service method. /// /// A cancellation token that can be used by other objects or threads to receive notice of cancellation. /// /// /// The response from the ListFragments service method, as returned by KinesisVideoArchivedMedia. /// /// Kinesis Video Streams has throttled the request because you have exceeded a limit. /// Try making the call later. For information about limits, see Kinesis /// Video Streams Limits. /// /// /// A specified parameter exceeds its restrictions, is not supported, or can't be used. /// /// /// Status Code: 403, The caller is not authorized to perform an operation on the given /// stream, or the token has expired. /// /// /// GetMedia throws this error when Kinesis Video Streams can't find the /// stream that you specified. /// /// /// /// GetHLSStreamingSessionURL and GetDASHStreamingSessionURL /// throw this error if a session with a PlaybackMode of ON_DEMAND /// or LIVE_REPLAYis requested for a stream that has no fragments within /// the requested time range, or if a session with a PlaybackMode of LIVE /// is requested for a stream that has no fragments within the last 30 seconds. /// /// /// REST API Reference for ListFragments Operation public virtual Task ListFragmentsAsync(ListFragmentsRequest request, System.Threading.CancellationToken cancellationToken = default(CancellationToken)) { var options = new InvokeOptions(); options.RequestMarshaller = ListFragmentsRequestMarshaller.Instance; options.ResponseUnmarshaller = ListFragmentsResponseUnmarshaller.Instance; return InvokeAsync(request, options, cancellationToken); } #endregion } }