aws-sdk-kinesisvideoarchivedmedia 1.17.0 → 1.22.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 95afbb9a6043fd08e4dd249c3b62bab68eb27617
4
- data.tar.gz: b2999bac55287f27f509a1deac6df995cc980a73
2
+ SHA256:
3
+ metadata.gz: 7d6559401da95647ab967bbbdcf32f7e31459e000c3cf20c5eb2f3629ff2cba4
4
+ data.tar.gz: 31753e75a41fe7fcced2ed28996adc4feedb831eeec1b2706bdc1a91ee2b1971
5
5
  SHA512:
6
- metadata.gz: c43d018a7da30b83dc66d7930bcee345b4e17ff9c36c1a4e5219d35407165bb6ab99b79021ce4d488d93058d5327b235e2426bc8c4cc70787a84ec0d1a941b03
7
- data.tar.gz: 6c214bafde60fb22e28bb775eeb9824b16fd890030f50fe9ef24cadaaecd885ea4a14df24063c605a95c015129b259fb3b2513b2ac6c19b9488787992ddc93cc
6
+ metadata.gz: 95cba84665c32b1471e2fb27d1af6bd6cd0cdd1a282649dedb52d1276cc79e5f9d0c72630c0f8b7c625bdb68f932b8d30da1bbe13cf4bf0b4c60b101c5acaa07
7
+ data.tar.gz: 30cc69c1c6616288830f7fed09e14a143ecb309d4b431e8abb267819dbb4e975647e2c6a14c11ee21b96eff13f122337d551ccb7faa6da5049ebe9e655597a66
@@ -24,17 +24,20 @@ require_relative 'aws-sdk-kinesisvideoarchivedmedia/customizations'
24
24
  # methods each accept a hash of request parameters and return a response
25
25
  # structure.
26
26
  #
27
+ # kinesis_video_archived_media = Aws::KinesisVideoArchivedMedia::Client.new
28
+ # resp = kinesis_video_archived_media.get_clip(params)
29
+ #
27
30
  # See {Client} for more information.
28
31
  #
29
32
  # # Errors
30
33
  #
31
- # Errors returned from Amazon Kinesis Video Streams Archived Media all
32
- # extend {Errors::ServiceError}.
34
+ # Errors returned from Amazon Kinesis Video Streams Archived Media are defined in the
35
+ # {Errors} module and all extend {Errors::ServiceError}.
33
36
  #
34
37
  # begin
35
38
  # # do stuff
36
39
  # rescue Aws::KinesisVideoArchivedMedia::Errors::ServiceError
37
- # # rescues all service API errors
40
+ # # rescues all Amazon Kinesis Video Streams Archived Media API errors
38
41
  # end
39
42
  #
40
43
  # See {Errors} for more information.
@@ -42,6 +45,6 @@ require_relative 'aws-sdk-kinesisvideoarchivedmedia/customizations'
42
45
  # @service
43
46
  module Aws::KinesisVideoArchivedMedia
44
47
 
45
- GEM_VERSION = '1.17.0'
48
+ GEM_VERSION = '1.22.0'
46
49
 
47
50
  end
@@ -30,6 +30,18 @@ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
30
30
  Aws::Plugins::GlobalConfiguration.add_identifier(:kinesisvideoarchivedmedia)
31
31
 
32
32
  module Aws::KinesisVideoArchivedMedia
33
+ # An API client for KinesisVideoArchivedMedia. To construct a client, you need to configure a `:region` and `:credentials`.
34
+ #
35
+ # client = Aws::KinesisVideoArchivedMedia::Client.new(
36
+ # region: region_name,
37
+ # credentials: credentials,
38
+ # # ...
39
+ # )
40
+ #
41
+ # For details on configuring region and credentials see
42
+ # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
43
+ #
44
+ # See {#initialize} for a full list of supported configuration options.
33
45
  class Client < Seahorse::Client::Base
34
46
 
35
47
  include Aws::ClientStubs
@@ -108,6 +120,12 @@ module Aws::KinesisVideoArchivedMedia
108
120
  # When set to `true`, a thread polling for endpoints will be running in
109
121
  # the background every 60 secs (default). Defaults to `false`.
110
122
  #
123
+ # @option options [Boolean] :adaptive_retry_wait_to_fill (true)
124
+ # Used only in `adaptive` retry mode. When true, the request will sleep
125
+ # until there is sufficent client side capacity to retry the request.
126
+ # When false, the request will raise a `RetryCapacityNotAvailableError` and will
127
+ # not retry instead of sleeping.
128
+ #
111
129
  # @option options [Boolean] :client_side_monitoring (false)
112
130
  # When `true`, client-side metrics will be collected for all API requests from
113
131
  # this client.
@@ -132,6 +150,10 @@ module Aws::KinesisVideoArchivedMedia
132
150
  # When `true`, an attempt is made to coerce request parameters into
133
151
  # the required types.
134
152
  #
153
+ # @option options [Boolean] :correct_clock_skew (true)
154
+ # Used only in `standard` and adaptive retry modes. Specifies whether to apply
155
+ # a clock skew correction and retry requests with skewed client clocks.
156
+ #
135
157
  # @option options [Boolean] :disable_host_prefix_injection (false)
136
158
  # Set to true to disable SDK automatically adding host prefix
137
159
  # to default service endpoint when available.
@@ -166,15 +188,29 @@ module Aws::KinesisVideoArchivedMedia
166
188
  # The Logger instance to send log messages to. If this option
167
189
  # is not set, logging will be disabled.
168
190
  #
191
+ # @option options [Integer] :max_attempts (3)
192
+ # An integer representing the maximum number attempts that will be made for
193
+ # a single request, including the initial attempt. For example,
194
+ # setting this value to 5 will result in a request being retried up to
195
+ # 4 times. Used in `standard` and `adaptive` retry modes.
196
+ #
169
197
  # @option options [String] :profile ("default")
170
198
  # Used when loading credentials from the shared credentials file
171
199
  # at HOME/.aws/credentials. When not specified, 'default' is used.
172
200
  #
201
+ # @option options [Proc] :retry_backoff
202
+ # A proc or lambda used for backoff. Defaults to 2**retries * retry_base_delay.
203
+ # This option is only used in the `legacy` retry mode.
204
+ #
173
205
  # @option options [Float] :retry_base_delay (0.3)
174
- # The base delay in seconds used by the default backoff function.
206
+ # The base delay in seconds used by the default backoff function. This option
207
+ # is only used in the `legacy` retry mode.
175
208
  #
176
209
  # @option options [Symbol] :retry_jitter (:none)
177
- # A delay randomiser function used by the default backoff function. Some predefined functions can be referenced by name - :none, :equal, :full, otherwise a Proc that takes and returns a number.
210
+ # A delay randomiser function used by the default backoff function.
211
+ # Some predefined functions can be referenced by name - :none, :equal, :full,
212
+ # otherwise a Proc that takes and returns a number. This option is only used
213
+ # in the `legacy` retry mode.
178
214
  #
179
215
  # @see https://www.awsarchitectureblog.com/2015/03/backoff.html
180
216
  #
@@ -182,11 +218,30 @@ module Aws::KinesisVideoArchivedMedia
182
218
  # The maximum number of times to retry failed requests. Only
183
219
  # ~ 500 level server errors and certain ~ 400 level client errors
184
220
  # are retried. Generally, these are throttling errors, data
185
- # checksum errors, networking errors, timeout errors and auth
186
- # errors from expired credentials.
221
+ # checksum errors, networking errors, timeout errors, auth errors,
222
+ # endpoint discovery, and errors from expired credentials.
223
+ # This option is only used in the `legacy` retry mode.
187
224
  #
188
225
  # @option options [Integer] :retry_max_delay (0)
189
- # The maximum number of seconds to delay between retries (0 for no limit) used by the default backoff function.
226
+ # The maximum number of seconds to delay between retries (0 for no limit)
227
+ # used by the default backoff function. This option is only used in the
228
+ # `legacy` retry mode.
229
+ #
230
+ # @option options [String] :retry_mode ("legacy")
231
+ # Specifies which retry algorithm to use. Values are:
232
+ #
233
+ # * `legacy` - The pre-existing retry behavior. This is default value if
234
+ # no retry mode is provided.
235
+ #
236
+ # * `standard` - A standardized set of retry rules across the AWS SDKs.
237
+ # This includes support for retry quotas, which limit the number of
238
+ # unsuccessful retries a client can make.
239
+ #
240
+ # * `adaptive` - An experimental retry mode that includes all the
241
+ # functionality of `standard` mode along with automatic client side
242
+ # throttling. This is a provisional mode that may change behavior
243
+ # in the future.
244
+ #
190
245
  #
191
246
  # @option options [String] :secret_access_key
192
247
  #
@@ -209,16 +264,15 @@ module Aws::KinesisVideoArchivedMedia
209
264
  # requests through. Formatted like 'http://proxy.com:123'.
210
265
  #
211
266
  # @option options [Float] :http_open_timeout (15) The number of
212
- # seconds to wait when opening a HTTP session before rasing a
267
+ # seconds to wait when opening a HTTP session before raising a
213
268
  # `Timeout::Error`.
214
269
  #
215
270
  # @option options [Integer] :http_read_timeout (60) The default
216
271
  # number of seconds to wait for response data. This value can
217
- # safely be set
218
- # per-request on the session yeidled by {#session_for}.
272
+ # safely be set per-request on the session.
219
273
  #
220
274
  # @option options [Float] :http_idle_timeout (5) The number of
221
- # seconds a connection is allowed to sit idble before it is
275
+ # seconds a connection is allowed to sit idle before it is
222
276
  # considered stale. Stale connections are closed and removed
223
277
  # from the pool before making a request.
224
278
  #
@@ -227,7 +281,7 @@ module Aws::KinesisVideoArchivedMedia
227
281
  # request body. This option has no effect unless the request has
228
282
  # "Expect" header set to "100-continue". Defaults to `nil` which
229
283
  # disables this behaviour. This value can safely be set per
230
- # request on the session yeidled by {#session_for}.
284
+ # request on the session.
231
285
  #
232
286
  # @option options [Boolean] :http_wire_trace (false) When `true`,
233
287
  # HTTP debug output will be sent to the `:logger`.
@@ -254,6 +308,83 @@ module Aws::KinesisVideoArchivedMedia
254
308
 
255
309
  # @!group API Operations
256
310
 
311
+ # Downloads an MP4 file (clip) containing the archived, on-demand media
312
+ # from the specified video stream over the specified time range.
313
+ #
314
+ # Both the StreamName and the StreamARN parameters are optional, but you
315
+ # must specify either the StreamName or the StreamARN when invoking this
316
+ # API operation.
317
+ #
318
+ # As a prerequsite to using GetCLip API, you must obtain an endpoint
319
+ # using `GetDataEndpoint`, specifying GET\_CLIP for` the APIName
320
+ # parameter. </p> An Amazon Kinesis video stream has the following
321
+ # requirements for providing data through MP4: The media must contain
322
+ # h.264 or h.265 encoded video and, optionally, AAC or G.711 encoded
323
+ # audio. Specifically, the codec ID of track 1 should be V_MPEG/ISO/AVC
324
+ # (for h.264) or V_MPEGH/ISO/HEVC (for H.265). Optionally, the codec ID
325
+ # of track 2 should be A_AAC (for AAC) or A_MS/ACM (for G.711). Data
326
+ # retention must be greater than 0. The video track of each fragment
327
+ # must contain codec private data in the Advanced Video Coding (AVC) for
328
+ # H.264 format and HEVC for H.265 format. For more information, see
329
+ # MPEG-4 specification ISO/IEC 14496-15. For information about adapting
330
+ # stream data to a given format, see NAL Adaptation Flags. The audio
331
+ # track (if present) of each fragment must contain codec private data in
332
+ # the AAC format (AAC specification ISO/IEC 13818-7) or the MS Wave
333
+ # format. You can monitor the amount of outgoing data by monitoring
334
+ # the GetClip.OutgoingBytes Amazon CloudWatch metric. For information
335
+ # about using CloudWatch to monitor Kinesis Video Streams, see
336
+ # Monitoring Kinesis Video Streams. For pricing information, see Amazon
337
+ # Kinesis Video Streams Pricing and AWS Pricing. Charges for outgoing
338
+ # AWS data apply.
339
+ # `
340
+ #
341
+ # @option params [String] :stream_name
342
+ # The name of the stream for which to retrieve the media clip.
343
+ #
344
+ # You must specify either the StreamName or the StreamARN.
345
+ #
346
+ # @option params [String] :stream_arn
347
+ # The Amazon Resource Name (ARN) of the stream for which to retrieve the
348
+ # media clip.
349
+ #
350
+ # You must specify either the StreamName or the StreamARN.
351
+ #
352
+ # @option params [required, Types::ClipFragmentSelector] :clip_fragment_selector
353
+ # The time range of the requested clip and the source of the timestamps.
354
+ #
355
+ # @return [Types::GetClipOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
356
+ #
357
+ # * {Types::GetClipOutput#content_type #content_type} => String
358
+ # * {Types::GetClipOutput#payload #payload} => IO
359
+ #
360
+ # @example Request syntax with placeholder values
361
+ #
362
+ # resp = client.get_clip({
363
+ # stream_name: "StreamName",
364
+ # stream_arn: "ResourceARN",
365
+ # clip_fragment_selector: { # required
366
+ # fragment_selector_type: "PRODUCER_TIMESTAMP", # required, accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
367
+ # timestamp_range: { # required
368
+ # start_timestamp: Time.now, # required
369
+ # end_timestamp: Time.now, # required
370
+ # },
371
+ # },
372
+ # })
373
+ #
374
+ # @example Response structure
375
+ #
376
+ # resp.content_type #=> String
377
+ # resp.payload #=> IO
378
+ #
379
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/GetClip AWS API Documentation
380
+ #
381
+ # @overload get_clip(params = {})
382
+ # @param [Hash] params ({})
383
+ def get_clip(params = {}, options = {}, &block)
384
+ req = build_request(:get_clip, params)
385
+ req.send_request(options, &block)
386
+ end
387
+
257
388
  # Retrieves an MPEG Dynamic Adaptive Streaming over HTTP (DASH) URL for
258
389
  # the stream. You can then open the URL in a media player to view the
259
390
  # stream contents.
@@ -266,9 +397,9 @@ module Aws::KinesisVideoArchivedMedia
266
397
  # providing data through MPEG-DASH:
267
398
  #
268
399
  # * The media must contain h.264 or h.265 encoded video and, optionally,
269
- # AAC or G.711 encoded audio. Specifically, the codec id of track 1
400
+ # AAC or G.711 encoded audio. Specifically, the codec ID of track 1
270
401
  # should be `V_MPEG/ISO/AVC` (for h.264) or V\_MPEGH/ISO/HEVC (for
271
- # H.265). Optionally, the codec id of track 2 should be `A_AAC` (for
402
+ # H.265). Optionally, the codec ID of track 2 should be `A_AAC` (for
272
403
  # AAC) or A\_MS/ACM (for G.711).
273
404
  #
274
405
  # * Data retention must be greater than 0.
@@ -311,7 +442,7 @@ module Aws::KinesisVideoArchivedMedia
311
442
  #
312
443
  # 3. Provide the URL (containing the encrypted session token) for the
313
444
  # MPEG-DASH manifest to a media player that supports the MPEG-DASH
314
- # protocol. Kinesis Video Streams makes the initialization fragment,
445
+ # protocol. Kinesis Video Streams makes the initialization fragment
315
446
  # and media fragments available through the manifest URL. The
316
447
  # initialization fragment contains the codec private data for the
317
448
  # stream, and other data needed to set up the video or audio decoder
@@ -522,7 +653,7 @@ module Aws::KinesisVideoArchivedMedia
522
653
  # The default value is `NEVER`.
523
654
  #
524
655
  # @option params [Types::DASHFragmentSelector] :dash_fragment_selector
525
- # The time range of the requested fragment, and the source of the
656
+ # The time range of the requested fragment and the source of the
526
657
  # timestamps.
527
658
  #
528
659
  # This parameter is required if `PlaybackMode` is `ON_DEMAND` or
@@ -613,9 +744,9 @@ module Aws::KinesisVideoArchivedMedia
613
744
  # providing data through HLS:
614
745
  #
615
746
  # * The media must contain h.264 or h.265 encoded video and, optionally,
616
- # AAC encoded audio. Specifically, the codec id of track 1 should be
747
+ # AAC encoded audio. Specifically, the codec ID of track 1 should be
617
748
  # `V_MPEG/ISO/AVC` (for h.264) or `V_MPEG/ISO/HEVC` (for h.265).
618
- # Optionally, the codec id of track 2 should be `A_AAC`.
749
+ # Optionally, the codec ID of track 2 should be `A_AAC`.
619
750
  #
620
751
  # * Data retention must be greater than 0.
621
752
  #
@@ -871,7 +1002,7 @@ module Aws::KinesisVideoArchivedMedia
871
1002
  # The default is `LIVE`.
872
1003
  #
873
1004
  # @option params [Types::HLSFragmentSelector] :hls_fragment_selector
874
- # The time range of the requested fragment, and the source of the
1005
+ # The time range of the requested fragment and the source of the
875
1006
  # timestamps.
876
1007
  #
877
1008
  # This parameter is required if `PlaybackMode` is `ON_DEMAND` or
@@ -896,23 +1027,40 @@ module Aws::KinesisVideoArchivedMedia
896
1027
  # The default is `FRAGMENTED_MP4`.
897
1028
  #
898
1029
  # @option params [String] :discontinuity_mode
899
- # Specifies when flags marking discontinuities between fragments will be
900
- # added to the media playlists. The default is `ALWAYS` when
901
- # HLSFragmentSelector is `SERVER_TIMESTAMP`, and `NEVER` when it is
902
- # `PRODUCER_TIMESTAMP`.
1030
+ # Specifies when flags marking discontinuities between fragments are
1031
+ # added to the media playlists.
903
1032
  #
904
1033
  # Media players typically build a timeline of media content to play,
905
1034
  # based on the timestamps of each fragment. This means that if there is
906
- # any overlap between fragments (as is typical if HLSFragmentSelector is
907
- # `SERVER_TIMESTAMP`), the media player timeline has small gaps between
908
- # fragments in some places, and overwrites frames in other places. When
909
- # there are discontinuity flags between fragments, the media player is
910
- # expected to reset the timeline, resulting in the fragment being played
911
- # immediately after the previous fragment. We recommend that you always
912
- # have discontinuity flags between fragments if the fragment timestamps
913
- # are not accurate or if fragments might be missing. You should not
914
- # place discontinuity flags between fragments for the player timeline to
915
- # accurately map to the producer timestamps.
1035
+ # any overlap or gap between fragments (as is typical if
1036
+ # HLSFragmentSelector is set to `SERVER_TIMESTAMP`), the media player
1037
+ # timeline will also have small gaps between fragments in some places,
1038
+ # and will overwrite frames in other places. Gaps in the media player
1039
+ # timeline can cause playback to stall and overlaps can cause playback
1040
+ # to be jittery. When there are discontinuity flags between fragments,
1041
+ # the media player is expected to reset the timeline, resulting in the
1042
+ # next fragment being played immediately after the previous fragment.
1043
+ #
1044
+ # The following modes are supported:
1045
+ #
1046
+ # * `ALWAYS`\: a discontinuity marker is placed between every fragment
1047
+ # in the HLS media playlist. It is recommended to use a value of
1048
+ # `ALWAYS` if the fragment timestamps are not accurate.
1049
+ #
1050
+ # * `NEVER`\: no discontinuity markers are placed anywhere. It is
1051
+ # recommended to use a value of `NEVER` to ensure the media player
1052
+ # timeline most accurately maps to the producer timestamps.
1053
+ #
1054
+ # * `ON_DISCONTIUNITY`\: a discontinuity marker is placed between
1055
+ # fragments that have a gap or overlap of more than 50 milliseconds.
1056
+ # For most playback scenarios, it is recommended to use a value of
1057
+ # `ON_DISCONTINUITY` so that the media player timeline is only reset
1058
+ # when there is a significant issue with the media timeline (e.g. a
1059
+ # missing fragment).
1060
+ #
1061
+ # The default is `ALWAYS` when HLSFragmentSelector is set to
1062
+ # `SERVER_TIMESTAMP`, and `NEVER` when it is set to
1063
+ # `PRODUCER_TIMESTAMP`.
916
1064
  #
917
1065
  # @option params [String] :display_fragment_timestamp
918
1066
  # Specifies when the fragment start timestamps should be included in the
@@ -980,7 +1128,7 @@ module Aws::KinesisVideoArchivedMedia
980
1128
  # },
981
1129
  # },
982
1130
  # container_format: "FRAGMENTED_MP4", # accepts FRAGMENTED_MP4, MPEG_TS
983
- # discontinuity_mode: "ALWAYS", # accepts ALWAYS, NEVER
1131
+ # discontinuity_mode: "ALWAYS", # accepts ALWAYS, NEVER, ON_DISCONTINUITY
984
1132
  # display_fragment_timestamp: "ALWAYS", # accepts ALWAYS, NEVER
985
1133
  # expires: 1,
986
1134
  # max_media_playlist_fragment_results: 1,
@@ -1140,12 +1288,14 @@ module Aws::KinesisVideoArchivedMedia
1140
1288
  # * {Types::ListFragmentsOutput#fragments #fragments} => Array&lt;Types::Fragment&gt;
1141
1289
  # * {Types::ListFragmentsOutput#next_token #next_token} => String
1142
1290
  #
1291
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1292
+ #
1143
1293
  # @example Request syntax with placeholder values
1144
1294
  #
1145
1295
  # resp = client.list_fragments({
1146
1296
  # stream_name: "StreamName", # required
1147
1297
  # max_results: 1,
1148
- # next_token: "String",
1298
+ # next_token: "NextToken",
1149
1299
  # fragment_selector: {
1150
1300
  # fragment_selector_type: "PRODUCER_TIMESTAMP", # required, accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
1151
1301
  # timestamp_range: { # required
@@ -1187,7 +1337,7 @@ module Aws::KinesisVideoArchivedMedia
1187
1337
  params: params,
1188
1338
  config: config)
1189
1339
  context[:gem_name] = 'aws-sdk-kinesisvideoarchivedmedia'
1190
- context[:gem_version] = '1.17.0'
1340
+ context[:gem_version] = '1.22.0'
1191
1341
  Seahorse::Client::Request.new(handlers, context)
1192
1342
  end
1193
1343
 
@@ -12,6 +12,9 @@ module Aws::KinesisVideoArchivedMedia
12
12
  include Seahorse::Model
13
13
 
14
14
  ClientLimitExceededException = Shapes::StructureShape.new(name: 'ClientLimitExceededException')
15
+ ClipFragmentSelector = Shapes::StructureShape.new(name: 'ClipFragmentSelector')
16
+ ClipFragmentSelectorType = Shapes::StringShape.new(name: 'ClipFragmentSelectorType')
17
+ ClipTimestampRange = Shapes::StructureShape.new(name: 'ClipTimestampRange')
15
18
  ContainerFormat = Shapes::StringShape.new(name: 'ContainerFormat')
16
19
  ContentType = Shapes::StringShape.new(name: 'ContentType')
17
20
  DASHDisplayFragmentNumber = Shapes::StringShape.new(name: 'DASHDisplayFragmentNumber')
@@ -29,6 +32,8 @@ module Aws::KinesisVideoArchivedMedia
29
32
  FragmentNumberString = Shapes::StringShape.new(name: 'FragmentNumberString')
30
33
  FragmentSelector = Shapes::StructureShape.new(name: 'FragmentSelector')
31
34
  FragmentSelectorType = Shapes::StringShape.new(name: 'FragmentSelectorType')
35
+ GetClipInput = Shapes::StructureShape.new(name: 'GetClipInput')
36
+ GetClipOutput = Shapes::StructureShape.new(name: 'GetClipOutput')
32
37
  GetDASHStreamingSessionURLInput = Shapes::StructureShape.new(name: 'GetDASHStreamingSessionURLInput')
33
38
  GetDASHStreamingSessionURLOutput = Shapes::StructureShape.new(name: 'GetDASHStreamingSessionURLOutput')
34
39
  GetHLSStreamingSessionURLInput = Shapes::StructureShape.new(name: 'GetHLSStreamingSessionURLInput')
@@ -44,10 +49,12 @@ module Aws::KinesisVideoArchivedMedia
44
49
  HLSTimestampRange = Shapes::StructureShape.new(name: 'HLSTimestampRange')
45
50
  InvalidArgumentException = Shapes::StructureShape.new(name: 'InvalidArgumentException')
46
51
  InvalidCodecPrivateDataException = Shapes::StructureShape.new(name: 'InvalidCodecPrivateDataException')
52
+ InvalidMediaFrameException = Shapes::StructureShape.new(name: 'InvalidMediaFrameException')
47
53
  ListFragmentsInput = Shapes::StructureShape.new(name: 'ListFragmentsInput')
48
54
  ListFragmentsOutput = Shapes::StructureShape.new(name: 'ListFragmentsOutput')
49
55
  Long = Shapes::IntegerShape.new(name: 'Long')
50
56
  MissingCodecPrivateDataException = Shapes::StructureShape.new(name: 'MissingCodecPrivateDataException')
57
+ NextToken = Shapes::StringShape.new(name: 'NextToken')
51
58
  NoDataRetentionException = Shapes::StructureShape.new(name: 'NoDataRetentionException')
52
59
  NotAuthorizedException = Shapes::StructureShape.new(name: 'NotAuthorizedException')
53
60
  PageLimit = Shapes::IntegerShape.new(name: 'PageLimit')
@@ -55,7 +62,6 @@ module Aws::KinesisVideoArchivedMedia
55
62
  ResourceARN = Shapes::StringShape.new(name: 'ResourceARN')
56
63
  ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
57
64
  StreamName = Shapes::StringShape.new(name: 'StreamName')
58
- String = Shapes::StringShape.new(name: 'String')
59
65
  Timestamp = Shapes::TimestampShape.new(name: 'Timestamp')
60
66
  TimestampRange = Shapes::StructureShape.new(name: 'TimestampRange')
61
67
  UnsupportedStreamMediaTypeException = Shapes::StructureShape.new(name: 'UnsupportedStreamMediaTypeException')
@@ -63,6 +69,14 @@ module Aws::KinesisVideoArchivedMedia
63
69
  ClientLimitExceededException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
64
70
  ClientLimitExceededException.struct_class = Types::ClientLimitExceededException
65
71
 
72
+ ClipFragmentSelector.add_member(:fragment_selector_type, Shapes::ShapeRef.new(shape: ClipFragmentSelectorType, required: true, location_name: "FragmentSelectorType"))
73
+ ClipFragmentSelector.add_member(:timestamp_range, Shapes::ShapeRef.new(shape: ClipTimestampRange, required: true, location_name: "TimestampRange"))
74
+ ClipFragmentSelector.struct_class = Types::ClipFragmentSelector
75
+
76
+ ClipTimestampRange.add_member(:start_timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "StartTimestamp"))
77
+ ClipTimestampRange.add_member(:end_timestamp, Shapes::ShapeRef.new(shape: Timestamp, required: true, location_name: "EndTimestamp"))
78
+ ClipTimestampRange.struct_class = Types::ClipTimestampRange
79
+
66
80
  DASHFragmentSelector.add_member(:fragment_selector_type, Shapes::ShapeRef.new(shape: DASHFragmentSelectorType, location_name: "FragmentSelectorType"))
67
81
  DASHFragmentSelector.add_member(:timestamp_range, Shapes::ShapeRef.new(shape: DASHTimestampRange, location_name: "TimestampRange"))
68
82
  DASHFragmentSelector.struct_class = Types::DASHFragmentSelector
@@ -71,7 +85,7 @@ module Aws::KinesisVideoArchivedMedia
71
85
  DASHTimestampRange.add_member(:end_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "EndTimestamp"))
72
86
  DASHTimestampRange.struct_class = Types::DASHTimestampRange
73
87
 
74
- Fragment.add_member(:fragment_number, Shapes::ShapeRef.new(shape: String, location_name: "FragmentNumber"))
88
+ Fragment.add_member(:fragment_number, Shapes::ShapeRef.new(shape: FragmentNumberString, location_name: "FragmentNumber"))
75
89
  Fragment.add_member(:fragment_size_in_bytes, Shapes::ShapeRef.new(shape: Long, location_name: "FragmentSizeInBytes"))
76
90
  Fragment.add_member(:producer_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "ProducerTimestamp"))
77
91
  Fragment.add_member(:server_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "ServerTimestamp"))
@@ -86,6 +100,17 @@ module Aws::KinesisVideoArchivedMedia
86
100
  FragmentSelector.add_member(:timestamp_range, Shapes::ShapeRef.new(shape: TimestampRange, required: true, location_name: "TimestampRange"))
87
101
  FragmentSelector.struct_class = Types::FragmentSelector
88
102
 
103
+ GetClipInput.add_member(:stream_name, Shapes::ShapeRef.new(shape: StreamName, location_name: "StreamName"))
104
+ GetClipInput.add_member(:stream_arn, Shapes::ShapeRef.new(shape: ResourceARN, location_name: "StreamARN"))
105
+ GetClipInput.add_member(:clip_fragment_selector, Shapes::ShapeRef.new(shape: ClipFragmentSelector, required: true, location_name: "ClipFragmentSelector"))
106
+ GetClipInput.struct_class = Types::GetClipInput
107
+
108
+ GetClipOutput.add_member(:content_type, Shapes::ShapeRef.new(shape: ContentType, location: "header", location_name: "Content-Type"))
109
+ GetClipOutput.add_member(:payload, Shapes::ShapeRef.new(shape: Payload, location_name: "Payload"))
110
+ GetClipOutput.struct_class = Types::GetClipOutput
111
+ GetClipOutput[:payload] = :payload
112
+ GetClipOutput[:payload_member] = GetClipOutput.member(:payload)
113
+
89
114
  GetDASHStreamingSessionURLInput.add_member(:stream_name, Shapes::ShapeRef.new(shape: StreamName, location_name: "StreamName"))
90
115
  GetDASHStreamingSessionURLInput.add_member(:stream_arn, Shapes::ShapeRef.new(shape: ResourceARN, location_name: "StreamARN"))
91
116
  GetDASHStreamingSessionURLInput.add_member(:playback_mode, Shapes::ShapeRef.new(shape: DASHPlaybackMode, location_name: "PlaybackMode"))
@@ -137,14 +162,17 @@ module Aws::KinesisVideoArchivedMedia
137
162
  InvalidCodecPrivateDataException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
138
163
  InvalidCodecPrivateDataException.struct_class = Types::InvalidCodecPrivateDataException
139
164
 
165
+ InvalidMediaFrameException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
166
+ InvalidMediaFrameException.struct_class = Types::InvalidMediaFrameException
167
+
140
168
  ListFragmentsInput.add_member(:stream_name, Shapes::ShapeRef.new(shape: StreamName, required: true, location_name: "StreamName"))
141
169
  ListFragmentsInput.add_member(:max_results, Shapes::ShapeRef.new(shape: PageLimit, location_name: "MaxResults"))
142
- ListFragmentsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
170
+ ListFragmentsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
143
171
  ListFragmentsInput.add_member(:fragment_selector, Shapes::ShapeRef.new(shape: FragmentSelector, location_name: "FragmentSelector"))
144
172
  ListFragmentsInput.struct_class = Types::ListFragmentsInput
145
173
 
146
174
  ListFragmentsOutput.add_member(:fragments, Shapes::ShapeRef.new(shape: FragmentList, location_name: "Fragments"))
147
- ListFragmentsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
175
+ ListFragmentsOutput.add_member(:next_token, Shapes::ShapeRef.new(shape: NextToken, location_name: "NextToken"))
148
176
  ListFragmentsOutput.struct_class = Types::ListFragmentsOutput
149
177
 
150
178
  MissingCodecPrivateDataException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "Message"))
@@ -183,6 +211,23 @@ module Aws::KinesisVideoArchivedMedia
183
211
  "uid" => "kinesis-video-archived-media-2017-09-30",
184
212
  }
185
213
 
214
+ api.add_operation(:get_clip, Seahorse::Model::Operation.new.tap do |o|
215
+ o.name = "GetClip"
216
+ o.http_method = "POST"
217
+ o.http_request_uri = "/getClip"
218
+ o.input = Shapes::ShapeRef.new(shape: GetClipInput)
219
+ o.output = Shapes::ShapeRef.new(shape: GetClipOutput)
220
+ o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
221
+ o.errors << Shapes::ShapeRef.new(shape: InvalidArgumentException)
222
+ o.errors << Shapes::ShapeRef.new(shape: ClientLimitExceededException)
223
+ o.errors << Shapes::ShapeRef.new(shape: NotAuthorizedException)
224
+ o.errors << Shapes::ShapeRef.new(shape: UnsupportedStreamMediaTypeException)
225
+ o.errors << Shapes::ShapeRef.new(shape: MissingCodecPrivateDataException)
226
+ o.errors << Shapes::ShapeRef.new(shape: InvalidCodecPrivateDataException)
227
+ o.errors << Shapes::ShapeRef.new(shape: InvalidMediaFrameException)
228
+ o.errors << Shapes::ShapeRef.new(shape: NoDataRetentionException)
229
+ end)
230
+
186
231
  api.add_operation(:get_dash_streaming_session_url, Seahorse::Model::Operation.new.tap do |o|
187
232
  o.name = "GetDASHStreamingSessionURL"
188
233
  o.http_method = "POST"
@@ -6,6 +6,37 @@
6
6
  # WARNING ABOUT GENERATED CODE
7
7
 
8
8
  module Aws::KinesisVideoArchivedMedia
9
+
10
+ # When KinesisVideoArchivedMedia returns an error response, the Ruby SDK constructs and raises an error.
11
+ # These errors all extend Aws::KinesisVideoArchivedMedia::Errors::ServiceError < {Aws::Errors::ServiceError}
12
+ #
13
+ # You can rescue all KinesisVideoArchivedMedia errors using ServiceError:
14
+ #
15
+ # begin
16
+ # # do stuff
17
+ # rescue Aws::KinesisVideoArchivedMedia::Errors::ServiceError
18
+ # # rescues all KinesisVideoArchivedMedia API errors
19
+ # end
20
+ #
21
+ #
22
+ # ## Request Context
23
+ # ServiceError objects have a {Aws::Errors::ServiceError#context #context} method that returns
24
+ # information about the request that generated the error.
25
+ # See {Seahorse::Client::RequestContext} for more information.
26
+ #
27
+ # ## Error Classes
28
+ # * {ClientLimitExceededException}
29
+ # * {InvalidArgumentException}
30
+ # * {InvalidCodecPrivateDataException}
31
+ # * {InvalidMediaFrameException}
32
+ # * {MissingCodecPrivateDataException}
33
+ # * {NoDataRetentionException}
34
+ # * {NotAuthorizedException}
35
+ # * {ResourceNotFoundException}
36
+ # * {UnsupportedStreamMediaTypeException}
37
+ #
38
+ # Additionally, error classes are dynamically generated for service errors based on the error code
39
+ # if they are not defined above.
9
40
  module Errors
10
41
 
11
42
  extend Aws::Errors::DynamicErrors
@@ -23,7 +54,6 @@ module Aws::KinesisVideoArchivedMedia
23
54
  def message
24
55
  @message || @data[:message]
25
56
  end
26
-
27
57
  end
28
58
 
29
59
  class InvalidArgumentException < ServiceError
@@ -39,7 +69,6 @@ module Aws::KinesisVideoArchivedMedia
39
69
  def message
40
70
  @message || @data[:message]
41
71
  end
42
-
43
72
  end
44
73
 
45
74
  class InvalidCodecPrivateDataException < ServiceError
@@ -55,7 +84,21 @@ module Aws::KinesisVideoArchivedMedia
55
84
  def message
56
85
  @message || @data[:message]
57
86
  end
87
+ end
88
+
89
+ class InvalidMediaFrameException < ServiceError
90
+
91
+ # @param [Seahorse::Client::RequestContext] context
92
+ # @param [String] message
93
+ # @param [Aws::KinesisVideoArchivedMedia::Types::InvalidMediaFrameException] data
94
+ def initialize(context, message, data = Aws::EmptyStructure.new)
95
+ super(context, message, data)
96
+ end
58
97
 
98
+ # @return [String]
99
+ def message
100
+ @message || @data[:message]
101
+ end
59
102
  end
60
103
 
61
104
  class MissingCodecPrivateDataException < ServiceError
@@ -71,7 +114,6 @@ module Aws::KinesisVideoArchivedMedia
71
114
  def message
72
115
  @message || @data[:message]
73
116
  end
74
-
75
117
  end
76
118
 
77
119
  class NoDataRetentionException < ServiceError
@@ -87,7 +129,6 @@ module Aws::KinesisVideoArchivedMedia
87
129
  def message
88
130
  @message || @data[:message]
89
131
  end
90
-
91
132
  end
92
133
 
93
134
  class NotAuthorizedException < ServiceError
@@ -103,7 +144,6 @@ module Aws::KinesisVideoArchivedMedia
103
144
  def message
104
145
  @message || @data[:message]
105
146
  end
106
-
107
147
  end
108
148
 
109
149
  class ResourceNotFoundException < ServiceError
@@ -119,7 +159,6 @@ module Aws::KinesisVideoArchivedMedia
119
159
  def message
120
160
  @message || @data[:message]
121
161
  end
122
-
123
162
  end
124
163
 
125
164
  class UnsupportedStreamMediaTypeException < ServiceError
@@ -135,7 +174,6 @@ module Aws::KinesisVideoArchivedMedia
135
174
  def message
136
175
  @message || @data[:message]
137
176
  end
138
-
139
177
  end
140
178
 
141
179
  end
@@ -6,6 +6,7 @@
6
6
  # WARNING ABOUT GENERATED CODE
7
7
 
8
8
  module Aws::KinesisVideoArchivedMedia
9
+
9
10
  class Resource
10
11
 
11
12
  # @param options ({})
@@ -21,6 +21,91 @@ module Aws::KinesisVideoArchivedMedia
21
21
  include Aws::Structure
22
22
  end
23
23
 
24
+ # Describes the timestamp range and timestamp origin of a range of
25
+ # fragments.
26
+ #
27
+ # Fragments that have duplicate producer timestamps are deduplicated.
28
+ # This means that if producers are producing a stream of fragments with
29
+ # producer timestamps that are approximately equal to the true clock
30
+ # time, the clip will contain all of the fragments within the requested
31
+ # timestamp range. If some fragments are ingested within the same time
32
+ # range and very different points in time, only the oldest ingested
33
+ # collection of fragments are returned.
34
+ #
35
+ # @note When making an API call, you may pass ClipFragmentSelector
36
+ # data as a hash:
37
+ #
38
+ # {
39
+ # fragment_selector_type: "PRODUCER_TIMESTAMP", # required, accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
40
+ # timestamp_range: { # required
41
+ # start_timestamp: Time.now, # required
42
+ # end_timestamp: Time.now, # required
43
+ # },
44
+ # }
45
+ #
46
+ # @!attribute [rw] fragment_selector_type
47
+ # The origin of the timestamps to use (Server or Producer).
48
+ # @return [String]
49
+ #
50
+ # @!attribute [rw] timestamp_range
51
+ # The range of timestamps to return.
52
+ # @return [Types::ClipTimestampRange]
53
+ #
54
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/ClipFragmentSelector AWS API Documentation
55
+ #
56
+ class ClipFragmentSelector < Struct.new(
57
+ :fragment_selector_type,
58
+ :timestamp_range)
59
+ include Aws::Structure
60
+ end
61
+
62
+ # The range of timestamps for which to return fragments.
63
+ #
64
+ # The values in the ClipTimestampRange are `inclusive`. Fragments that
65
+ # begin before the start time but continue past it, or fragments that
66
+ # begin before the end time but continue past it, are included in the
67
+ # session.
68
+ #
69
+ # @note When making an API call, you may pass ClipTimestampRange
70
+ # data as a hash:
71
+ #
72
+ # {
73
+ # start_timestamp: Time.now, # required
74
+ # end_timestamp: Time.now, # required
75
+ # }
76
+ #
77
+ # @!attribute [rw] start_timestamp
78
+ # The starting timestamp in the range of timestamps for which to
79
+ # return fragments.
80
+ #
81
+ # This value is inclusive. Fragments that start before the
82
+ # `StartTimestamp` and continue past it are included in the session.
83
+ # If `FragmentSelectorType` is `SERVER_TIMESTAMP`, the
84
+ # `StartTimestamp` must be later than the stream head.
85
+ # @return [Time]
86
+ #
87
+ # @!attribute [rw] end_timestamp
88
+ # The end of the timestamp range for the requested media.
89
+ #
90
+ # This value must be within 3 hours of the specified `StartTimestamp`,
91
+ # and it must be later than the `StartTimestamp` value. If
92
+ # `FragmentSelectorType` for the request is `SERVER_TIMESTAMP`, this
93
+ # value must be in the past.
94
+ #
95
+ # This value is inclusive. The `EndTimestamp` is compared to the
96
+ # (starting) timestamp of the fragment. Fragments that start before
97
+ # the `EndTimestamp` value and continue past it are included in the
98
+ # session.
99
+ # @return [Time]
100
+ #
101
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/ClipTimestampRange AWS API Documentation
102
+ #
103
+ class ClipTimestampRange < Struct.new(
104
+ :start_timestamp,
105
+ :end_timestamp)
106
+ include Aws::Structure
107
+ end
108
+
24
109
  # Contains the range of timestamps for the requested media, and the
25
110
  # source of the timestamps.
26
111
  #
@@ -226,6 +311,68 @@ module Aws::KinesisVideoArchivedMedia
226
311
  include Aws::Structure
227
312
  end
228
313
 
314
+ # @note When making an API call, you may pass GetClipInput
315
+ # data as a hash:
316
+ #
317
+ # {
318
+ # stream_name: "StreamName",
319
+ # stream_arn: "ResourceARN",
320
+ # clip_fragment_selector: { # required
321
+ # fragment_selector_type: "PRODUCER_TIMESTAMP", # required, accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
322
+ # timestamp_range: { # required
323
+ # start_timestamp: Time.now, # required
324
+ # end_timestamp: Time.now, # required
325
+ # },
326
+ # },
327
+ # }
328
+ #
329
+ # @!attribute [rw] stream_name
330
+ # The name of the stream for which to retrieve the media clip.
331
+ #
332
+ # You must specify either the StreamName or the StreamARN.
333
+ # @return [String]
334
+ #
335
+ # @!attribute [rw] stream_arn
336
+ # The Amazon Resource Name (ARN) of the stream for which to retrieve
337
+ # the media clip.
338
+ #
339
+ # You must specify either the StreamName or the StreamARN.
340
+ # @return [String]
341
+ #
342
+ # @!attribute [rw] clip_fragment_selector
343
+ # The time range of the requested clip and the source of the
344
+ # timestamps.
345
+ # @return [Types::ClipFragmentSelector]
346
+ #
347
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/GetClipInput AWS API Documentation
348
+ #
349
+ class GetClipInput < Struct.new(
350
+ :stream_name,
351
+ :stream_arn,
352
+ :clip_fragment_selector)
353
+ include Aws::Structure
354
+ end
355
+
356
+ # @!attribute [rw] content_type
357
+ # The content type of the media in the requested clip.
358
+ # @return [String]
359
+ #
360
+ # @!attribute [rw] payload
361
+ # Traditional MP4 file that contains the media clip from the specified
362
+ # video stream. The output will contain the first 100 MB or the first
363
+ # 200 fragments from the specified start timestamp. For more
364
+ # information, see [Kinesis Video Streams Limits](Kinesis Video
365
+ # Streams Limits).
366
+ # @return [IO]
367
+ #
368
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/GetClipOutput AWS API Documentation
369
+ #
370
+ class GetClipOutput < Struct.new(
371
+ :content_type,
372
+ :payload)
373
+ include Aws::Structure
374
+ end
375
+
229
376
  # @note When making an API call, you may pass GetDASHStreamingSessionURLInput
230
377
  # data as a hash:
231
378
  #
@@ -355,7 +502,7 @@ module Aws::KinesisVideoArchivedMedia
355
502
  # @return [String]
356
503
  #
357
504
  # @!attribute [rw] dash_fragment_selector
358
- # The time range of the requested fragment, and the source of the
505
+ # The time range of the requested fragment and the source of the
359
506
  # timestamps.
360
507
  #
361
508
  # This parameter is required if `PlaybackMode` is `ON_DEMAND` or
@@ -442,7 +589,7 @@ module Aws::KinesisVideoArchivedMedia
442
589
  # },
443
590
  # },
444
591
  # container_format: "FRAGMENTED_MP4", # accepts FRAGMENTED_MP4, MPEG_TS
445
- # discontinuity_mode: "ALWAYS", # accepts ALWAYS, NEVER
592
+ # discontinuity_mode: "ALWAYS", # accepts ALWAYS, NEVER, ON_DISCONTINUITY
446
593
  # display_fragment_timestamp: "ALWAYS", # accepts ALWAYS, NEVER
447
594
  # expires: 1,
448
595
  # max_media_playlist_fragment_results: 1,
@@ -523,7 +670,7 @@ module Aws::KinesisVideoArchivedMedia
523
670
  # @return [String]
524
671
  #
525
672
  # @!attribute [rw] hls_fragment_selector
526
- # The time range of the requested fragment, and the source of the
673
+ # The time range of the requested fragment and the source of the
527
674
  # timestamps.
528
675
  #
529
676
  # This parameter is required if `PlaybackMode` is `ON_DEMAND` or
@@ -550,24 +697,40 @@ module Aws::KinesisVideoArchivedMedia
550
697
  # @return [String]
551
698
  #
552
699
  # @!attribute [rw] discontinuity_mode
553
- # Specifies when flags marking discontinuities between fragments will
554
- # be added to the media playlists. The default is `ALWAYS` when
555
- # HLSFragmentSelector is `SERVER_TIMESTAMP`, and `NEVER` when it is
556
- # `PRODUCER_TIMESTAMP`.
700
+ # Specifies when flags marking discontinuities between fragments are
701
+ # added to the media playlists.
557
702
  #
558
703
  # Media players typically build a timeline of media content to play,
559
704
  # based on the timestamps of each fragment. This means that if there
560
- # is any overlap between fragments (as is typical if
561
- # HLSFragmentSelector is `SERVER_TIMESTAMP`), the media player
562
- # timeline has small gaps between fragments in some places, and
563
- # overwrites frames in other places. When there are discontinuity
564
- # flags between fragments, the media player is expected to reset the
565
- # timeline, resulting in the fragment being played immediately after
566
- # the previous fragment. We recommend that you always have
567
- # discontinuity flags between fragments if the fragment timestamps are
568
- # not accurate or if fragments might be missing. You should not place
569
- # discontinuity flags between fragments for the player timeline to
570
- # accurately map to the producer timestamps.
705
+ # is any overlap or gap between fragments (as is typical if
706
+ # HLSFragmentSelector is set to `SERVER_TIMESTAMP`), the media player
707
+ # timeline will also have small gaps between fragments in some places,
708
+ # and will overwrite frames in other places. Gaps in the media player
709
+ # timeline can cause playback to stall and overlaps can cause playback
710
+ # to be jittery. When there are discontinuity flags between fragments,
711
+ # the media player is expected to reset the timeline, resulting in the
712
+ # next fragment being played immediately after the previous fragment.
713
+ #
714
+ # The following modes are supported:
715
+ #
716
+ # * `ALWAYS`\: a discontinuity marker is placed between every fragment
717
+ # in the HLS media playlist. It is recommended to use a value of
718
+ # `ALWAYS` if the fragment timestamps are not accurate.
719
+ #
720
+ # * `NEVER`\: no discontinuity markers are placed anywhere. It is
721
+ # recommended to use a value of `NEVER` to ensure the media player
722
+ # timeline most accurately maps to the producer timestamps.
723
+ #
724
+ # * `ON_DISCONTIUNITY`\: a discontinuity marker is placed between
725
+ # fragments that have a gap or overlap of more than 50 milliseconds.
726
+ # For most playback scenarios, it is recommended to use a value of
727
+ # `ON_DISCONTINUITY` so that the media player timeline is only reset
728
+ # when there is a significant issue with the media timeline (e.g. a
729
+ # missing fragment).
730
+ #
731
+ # The default is `ALWAYS` when HLSFragmentSelector is set to
732
+ # `SERVER_TIMESTAMP`, and `NEVER` when it is set to
733
+ # `PRODUCER_TIMESTAMP`.
571
734
  # @return [String]
572
735
  #
573
736
  # @!attribute [rw] display_fragment_timestamp
@@ -865,13 +1028,26 @@ module Aws::KinesisVideoArchivedMedia
865
1028
  include Aws::Structure
866
1029
  end
867
1030
 
1031
+ # One or more frames in the requested clip could not be parsed based on
1032
+ # the specified codec.
1033
+ #
1034
+ # @!attribute [rw] message
1035
+ # @return [String]
1036
+ #
1037
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/InvalidMediaFrameException AWS API Documentation
1038
+ #
1039
+ class InvalidMediaFrameException < Struct.new(
1040
+ :message)
1041
+ include Aws::Structure
1042
+ end
1043
+
868
1044
  # @note When making an API call, you may pass ListFragmentsInput
869
1045
  # data as a hash:
870
1046
  #
871
1047
  # {
872
1048
  # stream_name: "StreamName", # required
873
1049
  # max_results: 1,
874
- # next_token: "String",
1050
+ # next_token: "NextToken",
875
1051
  # fragment_selector: {
876
1052
  # fragment_selector_type: "PRODUCER_TIMESTAMP", # required, accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
877
1053
  # timestamp_range: { # required
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-kinesisvideoarchivedmedia
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.17.0
4
+ version: 1.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-07-09 00:00:00.000000000 Z
11
+ date: 2020-04-28 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core
@@ -19,7 +19,7 @@ dependencies:
19
19
  version: '3'
20
20
  - - ">="
21
21
  - !ruby/object:Gem::Version
22
- version: 3.58.0
22
+ version: 3.71.0
23
23
  type: :runtime
24
24
  prerelease: false
25
25
  version_requirements: !ruby/object:Gem::Requirement
@@ -29,7 +29,7 @@ dependencies:
29
29
  version: '3'
30
30
  - - ">="
31
31
  - !ruby/object:Gem::Version
32
- version: 3.58.0
32
+ version: 3.71.0
33
33
  - !ruby/object:Gem::Dependency
34
34
  name: aws-sigv4
35
35
  requirement: !ruby/object:Gem::Requirement
@@ -81,7 +81,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
81
81
  version: '0'
82
82
  requirements: []
83
83
  rubyforge_project:
84
- rubygems_version: 2.5.2.3
84
+ rubygems_version: 2.7.6.2
85
85
  signing_key:
86
86
  specification_version: 4
87
87
  summary: AWS SDK for Ruby - Kinesis Video Archived Media