aws-sdk-kinesisvideoarchivedmedia 1.21.0 → 1.22.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 51296e836336e18d14c687350a8f1af34e0329ee
4
- data.tar.gz: 9bb0f67b8dbbc67ff7ba92e59e5c4fd2abe029a7
2
+ SHA256:
3
+ metadata.gz: 7d6559401da95647ab967bbbdcf32f7e31459e000c3cf20c5eb2f3629ff2cba4
4
+ data.tar.gz: 31753e75a41fe7fcced2ed28996adc4feedb831eeec1b2706bdc1a91ee2b1971
5
5
  SHA512:
6
- metadata.gz: fa8f27d4645bff4f529f5c28a9d5e66f35d07df60f34f5fde26436cdb22bf51b14605d4907ca8730c110d5464d54f051d2e49a4b4c5fe6500316383a28973e4c
7
- data.tar.gz: fa178a348af5ca9dbbefd766099b75ce43af55de742141df47e3995227ca3b875ecc42719e951fc5b0e6174cfade2fedf6a8b5a32a8acc5b4227d0626d567637
6
+ metadata.gz: 95cba84665c32b1471e2fb27d1af6bd6cd0cdd1a282649dedb52d1276cc79e5f9d0c72630c0f8b7c625bdb68f932b8d30da1bbe13cf4bf0b4c60b101c5acaa07
7
+ data.tar.gz: 30cc69c1c6616288830f7fed09e14a143ecb309d4b431e8abb267819dbb4e975647e2c6a14c11ee21b96eff13f122337d551ccb7faa6da5049ebe9e655597a66
@@ -25,7 +25,7 @@ require_relative 'aws-sdk-kinesisvideoarchivedmedia/customizations'
25
25
  # structure.
26
26
  #
27
27
  # kinesis_video_archived_media = Aws::KinesisVideoArchivedMedia::Client.new
28
- # resp = kinesis_video_archived_media.get_dash_streaming_session_url(params)
28
+ # resp = kinesis_video_archived_media.get_clip(params)
29
29
  #
30
30
  # See {Client} for more information.
31
31
  #
@@ -45,6 +45,6 @@ require_relative 'aws-sdk-kinesisvideoarchivedmedia/customizations'
45
45
  # @service
46
46
  module Aws::KinesisVideoArchivedMedia
47
47
 
48
- GEM_VERSION = '1.21.0'
48
+ GEM_VERSION = '1.22.0'
49
49
 
50
50
  end
@@ -32,11 +32,11 @@ Aws::Plugins::GlobalConfiguration.add_identifier(:kinesisvideoarchivedmedia)
32
32
  module Aws::KinesisVideoArchivedMedia
33
33
  # An API client for KinesisVideoArchivedMedia. To construct a client, you need to configure a `:region` and `:credentials`.
34
34
  #
35
- # client = Aws::KinesisVideoArchivedMedia::Client.new(
36
- # region: region_name,
37
- # credentials: credentials,
38
- # # ...
39
- # )
35
+ # client = Aws::KinesisVideoArchivedMedia::Client.new(
36
+ # region: region_name,
37
+ # credentials: credentials,
38
+ # # ...
39
+ # )
40
40
  #
41
41
  # For details on configuring region and credentials see
42
42
  # the [developer guide](/sdk-for-ruby/v3/developer-guide/setup-config.html).
@@ -229,15 +229,19 @@ module Aws::KinesisVideoArchivedMedia
229
229
  #
230
230
  # @option options [String] :retry_mode ("legacy")
231
231
  # Specifies which retry algorithm to use. Values are:
232
- # * `legacy` - The pre-existing retry behavior. This is default value if
233
- # no retry mode is provided.
234
- # * `standard` - A standardized set of retry rules across the AWS SDKs.
235
- # This includes support for retry quotas, which limit the number of
236
- # unsuccessful retries a client can make.
237
- # * `adaptive` - An experimental retry mode that includes all the
238
- # functionality of `standard` mode along with automatic client side
239
- # throttling. This is a provisional mode that may change behavior
240
- # in the future.
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
+ #
241
245
  #
242
246
  # @option options [String] :secret_access_key
243
247
  #
@@ -265,8 +269,7 @@ module Aws::KinesisVideoArchivedMedia
265
269
  #
266
270
  # @option options [Integer] :http_read_timeout (60) The default
267
271
  # number of seconds to wait for response data. This value can
268
- # safely be set
269
- # per-request on the session yielded by {#session_for}.
272
+ # safely be set per-request on the session.
270
273
  #
271
274
  # @option options [Float] :http_idle_timeout (5) The number of
272
275
  # seconds a connection is allowed to sit idle before it is
@@ -278,7 +281,7 @@ module Aws::KinesisVideoArchivedMedia
278
281
  # request body. This option has no effect unless the request has
279
282
  # "Expect" header set to "100-continue". Defaults to `nil` which
280
283
  # disables this behaviour. This value can safely be set per
281
- # request on the session yielded by {#session_for}.
284
+ # request on the session.
282
285
  #
283
286
  # @option options [Boolean] :http_wire_trace (false) When `true`,
284
287
  # HTTP debug output will be sent to the `:logger`.
@@ -305,6 +308,83 @@ module Aws::KinesisVideoArchivedMedia
305
308
 
306
309
  # @!group API Operations
307
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
+
308
388
  # Retrieves an MPEG Dynamic Adaptive Streaming over HTTP (DASH) URL for
309
389
  # the stream. You can then open the URL in a media player to view the
310
390
  # stream contents.
@@ -1208,12 +1288,14 @@ module Aws::KinesisVideoArchivedMedia
1208
1288
  # * {Types::ListFragmentsOutput#fragments #fragments} => Array&lt;Types::Fragment&gt;
1209
1289
  # * {Types::ListFragmentsOutput#next_token #next_token} => String
1210
1290
  #
1291
+ # The returned {Seahorse::Client::Response response} is a pageable response and is Enumerable. For details on usage see {Aws::PageableResponse PageableResponse}.
1292
+ #
1211
1293
  # @example Request syntax with placeholder values
1212
1294
  #
1213
1295
  # resp = client.list_fragments({
1214
1296
  # stream_name: "StreamName", # required
1215
1297
  # max_results: 1,
1216
- # next_token: "String",
1298
+ # next_token: "NextToken",
1217
1299
  # fragment_selector: {
1218
1300
  # fragment_selector_type: "PRODUCER_TIMESTAMP", # required, accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
1219
1301
  # timestamp_range: { # required
@@ -1255,7 +1337,7 @@ module Aws::KinesisVideoArchivedMedia
1255
1337
  params: params,
1256
1338
  config: config)
1257
1339
  context[:gem_name] = 'aws-sdk-kinesisvideoarchivedmedia'
1258
- context[:gem_version] = '1.21.0'
1340
+ context[:gem_version] = '1.22.0'
1259
1341
  Seahorse::Client::Request.new(handlers, context)
1260
1342
  end
1261
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"
@@ -28,6 +28,7 @@ module Aws::KinesisVideoArchivedMedia
28
28
  # * {ClientLimitExceededException}
29
29
  # * {InvalidArgumentException}
30
30
  # * {InvalidCodecPrivateDataException}
31
+ # * {InvalidMediaFrameException}
31
32
  # * {MissingCodecPrivateDataException}
32
33
  # * {NoDataRetentionException}
33
34
  # * {NotAuthorizedException}
@@ -85,6 +86,21 @@ module Aws::KinesisVideoArchivedMedia
85
86
  end
86
87
  end
87
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
97
+
98
+ # @return [String]
99
+ def message
100
+ @message || @data[:message]
101
+ end
102
+ end
103
+
88
104
  class MissingCodecPrivateDataException < ServiceError
89
105
 
90
106
  # @param [Seahorse::Client::RequestContext] context
@@ -6,13 +6,7 @@
6
6
  # WARNING ABOUT GENERATED CODE
7
7
 
8
8
  module Aws::KinesisVideoArchivedMedia
9
- # This class provides a resource oriented interface for KinesisVideoArchivedMedia.
10
- # To create a resource object:
11
- # resource = Aws::KinesisVideoArchivedMedia::Resource.new(region: 'us-west-2')
12
- # You can supply a client object with custom configuration that will be used for all resource operations.
13
- # If you do not pass +:client+, a default client will be constructed.
14
- # client = Aws::KinesisVideoArchivedMedia::Client.new(region: 'us-west-2')
15
- # resource = Aws::KinesisVideoArchivedMedia::Resource.new(client: client)
9
+
16
10
  class Resource
17
11
 
18
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
  #
@@ -881,13 +1028,26 @@ module Aws::KinesisVideoArchivedMedia
881
1028
  include Aws::Structure
882
1029
  end
883
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
+
884
1044
  # @note When making an API call, you may pass ListFragmentsInput
885
1045
  # data as a hash:
886
1046
  #
887
1047
  # {
888
1048
  # stream_name: "StreamName", # required
889
1049
  # max_results: 1,
890
- # next_token: "String",
1050
+ # next_token: "NextToken",
891
1051
  # fragment_selector: {
892
1052
  # fragment_selector_type: "PRODUCER_TIMESTAMP", # required, accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
893
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.21.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: 2020-03-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
@@ -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