aws-sdk-kinesisvideoarchivedmedia 1.1.0 → 1.2.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
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 94844d8f11bcddb68a3dfa0b9284275ee0793cc7
|
4
|
+
data.tar.gz: 53f46ecb5f44556da15c49a17a2a14011dfcbff0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb78af1d98d4018ab6bcd53a298467323763d444f30c6ee1e30ecc34ead1b72a9cdf15dc73bdddd21e983267fc4f029111cea6a0274c7e07b35c385790f21a9d
|
7
|
+
data.tar.gz: c31a95a2fdc968864f687c4b28343f210506770f50d62bbcc7a330725e53f1be2b9d443f53f03544daa1aea4417fefa6a1f93da5157b7bb9ef4a5e236e6d8394
|
@@ -156,14 +156,308 @@ module Aws::KinesisVideoArchivedMedia
|
|
156
156
|
|
157
157
|
# @!group API Operations
|
158
158
|
|
159
|
-
#
|
160
|
-
# the
|
161
|
-
#
|
162
|
-
#
|
163
|
-
#
|
159
|
+
# Retrieves an HTTP Live Streaming (HLS) URL for the stream. You can
|
160
|
+
# then open the URL in a browser or media player to view the stream
|
161
|
+
# contents.
|
162
|
+
#
|
163
|
+
# You must specify either the `StreamName` or the `StreamARN`.
|
164
|
+
#
|
165
|
+
# An Amazon Kinesis video stream has the following requirements for
|
166
|
+
# providing data through HLS:
|
167
|
+
#
|
168
|
+
# * The media type must be `video/h264`.
|
169
|
+
#
|
170
|
+
# * Data retention must be greater than 0.
|
171
|
+
#
|
172
|
+
# * The fragments must contain codec private data in the AVC (Advanced
|
173
|
+
# Video Coding) for H.264 format ([MPEG-4 specification ISO/IEC
|
174
|
+
# 14496-15][1]). For information about adapting stream data to a given
|
175
|
+
# format, see [NAL Adaptation Flags][2].
|
176
|
+
#
|
177
|
+
# Kinesis Video Streams HLS sessions contain fragments in the fragmented
|
178
|
+
# MPEG-4 form (also called fMP4 or CMAF), rather than the MPEG-2 form
|
179
|
+
# (also called TS chunks, which the HLS specification also supports).
|
180
|
+
# For more information about HLS fragment types, see the [HLS
|
181
|
+
# specification][3].
|
182
|
+
#
|
183
|
+
# The following procedure shows how to use HLS with Kinesis Video
|
184
|
+
# Streams:
|
185
|
+
#
|
186
|
+
# 1. Get an endpoint using [GetDataEndpoint][4], specifying
|
187
|
+
# `GET_HLS_STREAMING_SESSION_URL` for the `APIName` parameter.
|
188
|
+
#
|
189
|
+
# 2. Retrieve the HLS URL using `GetHLSStreamingSessionURL`. Kinesis
|
190
|
+
# Video Streams creates an HLS streaming session to be used for
|
191
|
+
# accessing content in a stream using the HLS protocol.
|
192
|
+
# `GetHLSStreamingSessionURL` returns an authenticated URL (that
|
193
|
+
# includes an encrypted session token) for the session's HLS
|
194
|
+
# *master playlist* (the root resource needed for streaming with
|
195
|
+
# HLS).
|
196
|
+
#
|
197
|
+
# <note markdown="1"> Don't share or store this token where an unauthorized entity
|
198
|
+
# could access it. The token provides access to the content of the
|
199
|
+
# stream. Safeguard the token with the same measures that you would
|
200
|
+
# use with your AWS credentials.
|
201
|
+
#
|
202
|
+
# </note>
|
203
|
+
#
|
204
|
+
# The media that is made available through the playlist consists
|
205
|
+
# only of the requested stream, time range, and format. No other
|
206
|
+
# media data (such as frames outside the requested window or
|
207
|
+
# alternate bit rates) is made available.
|
208
|
+
#
|
209
|
+
# 3. Provide the URL (containing the encrypted session token) for the
|
210
|
+
# HLS master playlist to a media player that supports the HLS
|
211
|
+
# protocol. Kinesis Video Streams makes the HLS media playlist,
|
212
|
+
# initialization fragment, and media fragments available through the
|
213
|
+
# master playlist URL. The initialization fragment contains the
|
214
|
+
# codec private data for the stream, and other data needed to set up
|
215
|
+
# the video decoder and renderer. The media fragments contain
|
216
|
+
# H.264-encoded video frames and time stamps.
|
217
|
+
#
|
218
|
+
# 4. The media player receives the authenticated URL and requests
|
219
|
+
# stream metadata and media data normally. When the media player
|
220
|
+
# requests data, it calls the following actions:
|
221
|
+
#
|
222
|
+
# * **GetHLSMasterPlaylist:** Retrieves an HLS master playlist,
|
223
|
+
# which contains a URL for the `GetHLSMediaPlaylist` action, and
|
224
|
+
# additional metadata for the media player, including estimated
|
225
|
+
# bit rate and resolution.
|
226
|
+
#
|
227
|
+
# * **GetHLSMediaPlaylist:** Retrieves an HLS media playlist, which
|
228
|
+
# contains a URL to access the MP4 initialization fragment with
|
229
|
+
# the `GetMP4InitFragment` action, and URLs to access the MP4
|
230
|
+
# media fragments with the `GetMP4MediaFragment` actions. The HLS
|
231
|
+
# media playlist also contains metadata about the stream that the
|
232
|
+
# player needs to play it, such as whether the `PlaybackMode` is
|
233
|
+
# `LIVE` or `ON_DEMAND`. The HLS media playlist is typically
|
234
|
+
# static for sessions with a `PlaybackType` of `ON_DEMAND`. The
|
235
|
+
# HLS media playlist is continually updated with new fragments for
|
236
|
+
# sessions with a `PlaybackType` of `LIVE`.
|
237
|
+
#
|
238
|
+
# * **GetMP4InitFragment:** Retrieves the MP4 initialization
|
239
|
+
# fragment. The media player typically loads the initialization
|
240
|
+
# fragment before loading any media fragments. This fragment
|
241
|
+
# contains the "`fytp`" and "`moov`" MP4 atoms, and the child
|
242
|
+
# atoms that are needed to initialize the media player decoder.
|
243
|
+
#
|
244
|
+
# The initialization fragment does not correspond to a fragment in
|
245
|
+
# a Kinesis video stream. It contains only the codec private data
|
246
|
+
# for the stream, which the media player needs to decode video
|
247
|
+
# frames.
|
248
|
+
#
|
249
|
+
# * **GetMP4MediaFragment:** Retrieves MP4 media fragments. These
|
250
|
+
# fragments contain the "`moof`" and "`mdat`" MP4 atoms and
|
251
|
+
# their child atoms, containing the encoded fragment's video
|
252
|
+
# frames and their time stamps.
|
253
|
+
#
|
254
|
+
# <note markdown="1"> After the first media fragment is made available in a streaming
|
255
|
+
# session, any fragments that don't contain the same codec
|
256
|
+
# private data are excluded in the HLS media playlist. Therefore,
|
257
|
+
# the codec private data does not change between fragments in a
|
258
|
+
# session.
|
259
|
+
#
|
260
|
+
# </note>
|
261
|
+
#
|
262
|
+
# Data retrieved with this action is billable. See
|
263
|
+
# [Pricing](aws.amazon.comkinesis/video-streams/pricing/) for
|
264
|
+
# details.
|
265
|
+
#
|
266
|
+
# <note markdown="1"> The following restrictions apply to HLS sessions:
|
267
|
+
#
|
268
|
+
# * A streaming session URL should not be shared between players. The
|
269
|
+
# service might throttle a session if multiple media players are
|
270
|
+
# sharing it. For connection limits, see [Kinesis Video Streams
|
271
|
+
# Limits][5].
|
272
|
+
#
|
273
|
+
# * A Kinesis video stream can have a maximum of five active HLS
|
274
|
+
# streaming sessions. If a new session is created when the maximum
|
275
|
+
# number of sessions is already active, the oldest (earliest created)
|
276
|
+
# session is closed. The number of active `GetMedia` connections on a
|
277
|
+
# Kinesis video stream does not count against this limit, and the
|
278
|
+
# number of active HLS sessions does not count against the active
|
279
|
+
# `GetMedia` connection limit.
|
164
280
|
#
|
165
281
|
# </note>
|
166
282
|
#
|
283
|
+
# You can monitor the amount of data that the media player consumes by
|
284
|
+
# monitoring the `GetMP4MediaFragment.OutgoingBytes` Amazon CloudWatch
|
285
|
+
# metric. For information about using CloudWatch to monitor Kinesis
|
286
|
+
# Video Streams, see [Monitoring Kinesis Video Streams][6]. For pricing
|
287
|
+
# information, see [Amazon Kinesis Video Streams Pricing][7] and [AWS
|
288
|
+
# Pricing][8]. Charges for both HLS sessions and outgoing AWS data
|
289
|
+
# apply.
|
290
|
+
#
|
291
|
+
# For more information about HLS, see [HTTP Live Streaming][9] on the
|
292
|
+
# [Apple Developer site][10].
|
293
|
+
#
|
294
|
+
#
|
295
|
+
#
|
296
|
+
# [1]: https://www.iso.org/standard/55980.html
|
297
|
+
# [2]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/latest/dg/producer-reference-nal.html
|
298
|
+
# [3]: https://tools.ietf.org/html/draft-pantos-http-live-streaming-23
|
299
|
+
# [4]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_GetDataEndpoint.html
|
300
|
+
# [5]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/limits.html
|
301
|
+
# [6]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/monitoring.html
|
302
|
+
# [7]: https://aws.amazon.com/kinesis/video-streams/pricing/
|
303
|
+
# [8]: https://aws.amazon.com/pricing/
|
304
|
+
# [9]: https://developer.apple.com/streaming/
|
305
|
+
# [10]: https://developer.apple.com
|
306
|
+
#
|
307
|
+
# @option params [String] :stream_name
|
308
|
+
# The name of the stream for which to retrieve the HLS master playlist
|
309
|
+
# URL.
|
310
|
+
#
|
311
|
+
# You must specify either the `StreamName` or the `StreamARN`.
|
312
|
+
#
|
313
|
+
# @option params [String] :stream_arn
|
314
|
+
# The Amazon Resource Name (ARN) of the stream for which to retrieve the
|
315
|
+
# HLS master playlist URL.
|
316
|
+
#
|
317
|
+
# You must specify either the `StreamName` or the `StreamARN`.
|
318
|
+
#
|
319
|
+
# @option params [String] :playback_mode
|
320
|
+
# Whether to retrieve live or archived, on-demand data.
|
321
|
+
#
|
322
|
+
# Features of the two types of session include the following:
|
323
|
+
#
|
324
|
+
# * <b> <code>LIVE</code> </b>\: For sessions of this type, the HLS
|
325
|
+
# media playlist is continually updated with the latest fragments as
|
326
|
+
# they become available. We recommend that the media player retrieve a
|
327
|
+
# new playlist on a one-second interval. When this type of session is
|
328
|
+
# played in a media player, the user interface typically displays a
|
329
|
+
# "live" notification, with no scrubber control for choosing the
|
330
|
+
# position in the playback window to display.
|
331
|
+
#
|
332
|
+
# <note markdown="1"> In `LIVE` mode, the newest available fragments are included in an
|
333
|
+
# HLS media playlist, even if there is a gap between fragments (that
|
334
|
+
# is, if a fragment is missing). A gap like this might cause a media
|
335
|
+
# player to halt or cause a jump in playback. In this mode, fragments
|
336
|
+
# are not added to the HLS media playlist if they are older than the
|
337
|
+
# newest fragment in the playlist. If the missing fragment becomes
|
338
|
+
# available after a subsequent fragment is added to the playlist, the
|
339
|
+
# older fragment is not added, and the gap is not filled.
|
340
|
+
#
|
341
|
+
# </note>
|
342
|
+
#
|
343
|
+
# * <b> <code>ON_DEMAND</code> </b>\: For sessions of this type, the HLS
|
344
|
+
# media playlist contains all the fragments for the session, up to the
|
345
|
+
# number that is specified in `MaxMediaPlaylistFragmentResults`. The
|
346
|
+
# playlist must be retrieved only once for each session. When this
|
347
|
+
# type of session is played in a media player, the user interface
|
348
|
+
# typically displays a scrubber control for choosing the position in
|
349
|
+
# the playback window to display.
|
350
|
+
#
|
351
|
+
# In both playback modes, if `FragmentSelectorType` is
|
352
|
+
# `PRODUCER_TIMESTAMP`, and if there are multiple fragments with the
|
353
|
+
# same start time stamp, the fragment that has the larger fragment
|
354
|
+
# number (that is, the newer fragment) is included in the HLS media
|
355
|
+
# playlist. The other fragments are not included. Fragments that have
|
356
|
+
# different time stamps but have overlapping durations are still
|
357
|
+
# included in the HLS media playlist. This can lead to unexpected
|
358
|
+
# behavior in the media player.
|
359
|
+
#
|
360
|
+
# The default is `LIVE`.
|
361
|
+
#
|
362
|
+
# @option params [Types::HLSFragmentSelector] :hls_fragment_selector
|
363
|
+
# The time range of the requested fragment, and the source of the time
|
364
|
+
# stamps.
|
365
|
+
#
|
366
|
+
# This parameter is required if `PlaybackMode` is `ON_DEMAND`. This
|
367
|
+
# parameter is optional if `PlaybackMode` is `LIVE`. If `PlaybackMode`
|
368
|
+
# is `LIVE`, the `FragmentSelectorType` can be set, but the
|
369
|
+
# `TimestampRange` should not be set. If `PlaybackMode` is `ON_DEMAND`,
|
370
|
+
# both `FragmentSelectorType` and `TimestampRange` must be set.
|
371
|
+
#
|
372
|
+
# @option params [String] :discontinuity_mode
|
373
|
+
# Specifies when flags marking discontinuities between fragments will be
|
374
|
+
# added to the media playlists. The default is `ALWAYS` when
|
375
|
+
# HLSFragmentSelector is `SERVER_TIMESTAMP`, and `NEVER` when it is
|
376
|
+
# `PRODUCER_TIMESTAMP`.
|
377
|
+
#
|
378
|
+
# Media players typically build a timeline of media content to play,
|
379
|
+
# based on the time stamps of each fragment. This means that if there is
|
380
|
+
# any overlap between fragments (as is typical if HLSFragmentSelector is
|
381
|
+
# `SERVER_TIMESTAMP`), the media player timeline has small gaps between
|
382
|
+
# fragments in some places, and overwrites frames in other places. When
|
383
|
+
# there are discontinuity flags between fragments, the media player is
|
384
|
+
# expected to reset the timeline, resulting in the fragment being played
|
385
|
+
# immediately after the previous fragment. We recommend that you always
|
386
|
+
# have discontinuity flags between fragments if the fragment time stamps
|
387
|
+
# are not accurate or if fragments might be missing. You should not
|
388
|
+
# place discontinuity flags between fragments for the player timeline to
|
389
|
+
# accurately map to the producer time stamps.
|
390
|
+
#
|
391
|
+
# @option params [Integer] :expires
|
392
|
+
# The time in seconds until the requested session expires. This value
|
393
|
+
# can be between 300 (5 minutes) and 43200 (12 hours).
|
394
|
+
#
|
395
|
+
# When a session expires, no new calls to `GetHLSMasterPlaylist`,
|
396
|
+
# `GetHLSMediaPlaylist`, `GetMP4InitFragment`, or `GetMP4MediaFragment`
|
397
|
+
# can be made for that session.
|
398
|
+
#
|
399
|
+
# The default is 300 (5 minutes).
|
400
|
+
#
|
401
|
+
# @option params [Integer] :max_media_playlist_fragment_results
|
402
|
+
# The maximum number of fragments that are returned in the HLS media
|
403
|
+
# playlists.
|
404
|
+
#
|
405
|
+
# When the `PlaybackMode` is `LIVE`, the most recent fragments are
|
406
|
+
# returned up to this value. When the `PlaybackMode` is `ON_DEMAND`, the
|
407
|
+
# oldest fragments are returned, up to this maximum number.
|
408
|
+
#
|
409
|
+
# When there are a higher number of fragments available in a live HLS
|
410
|
+
# media playlist, video players often buffer content before starting
|
411
|
+
# playback. Increasing the buffer size increases the playback latency,
|
412
|
+
# but it decreases the likelihood that rebuffering will occur during
|
413
|
+
# playback. We recommend that a live HLS media playlist have a minimum
|
414
|
+
# of 3 fragments and a maximum of 10 fragments.
|
415
|
+
#
|
416
|
+
# The default is 5 fragments if `PlaybackMode` is `LIVE`, and 1,000 if
|
417
|
+
# `PlaybackMode` is `ON_DEMAND`.
|
418
|
+
#
|
419
|
+
# The maximum value of 1,000 fragments corresponds to more than 16
|
420
|
+
# minutes of video on streams with 1-second fragments, and more than 2
|
421
|
+
# 1/2 hours of video on streams with 10-second fragments.
|
422
|
+
#
|
423
|
+
# @return [Types::GetHLSStreamingSessionURLOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
|
424
|
+
#
|
425
|
+
# * {Types::GetHLSStreamingSessionURLOutput#hls_streaming_session_url #hls_streaming_session_url} => String
|
426
|
+
#
|
427
|
+
# @example Request syntax with placeholder values
|
428
|
+
#
|
429
|
+
# resp = client.get_hls_streaming_session_url({
|
430
|
+
# stream_name: "StreamName",
|
431
|
+
# stream_arn: "ResourceARN",
|
432
|
+
# playback_mode: "LIVE", # accepts LIVE, ON_DEMAND
|
433
|
+
# hls_fragment_selector: {
|
434
|
+
# fragment_selector_type: "PRODUCER_TIMESTAMP", # accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
|
435
|
+
# timestamp_range: {
|
436
|
+
# start_timestamp: Time.now,
|
437
|
+
# end_timestamp: Time.now,
|
438
|
+
# },
|
439
|
+
# },
|
440
|
+
# discontinuity_mode: "ALWAYS", # accepts ALWAYS, NEVER
|
441
|
+
# expires: 1,
|
442
|
+
# max_media_playlist_fragment_results: 1,
|
443
|
+
# })
|
444
|
+
#
|
445
|
+
# @example Response structure
|
446
|
+
#
|
447
|
+
# resp.hls_streaming_session_url #=> String
|
448
|
+
#
|
449
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/GetHLSStreamingSessionURL AWS API Documentation
|
450
|
+
#
|
451
|
+
# @overload get_hls_streaming_session_url(params = {})
|
452
|
+
# @param [Hash] params ({})
|
453
|
+
def get_hls_streaming_session_url(params = {}, options = {})
|
454
|
+
req = build_request(:get_hls_streaming_session_url, params)
|
455
|
+
req.send_request(options)
|
456
|
+
end
|
457
|
+
|
458
|
+
# Gets media for a list of fragments (specified by fragment number) from
|
459
|
+
# the archived data in an Amazon Kinesis video stream.
|
460
|
+
#
|
167
461
|
# The following limits apply when using the `GetMediaForFragmentList`
|
168
462
|
# API:
|
169
463
|
#
|
@@ -279,7 +573,7 @@ module Aws::KinesisVideoArchivedMedia
|
|
279
573
|
params: params,
|
280
574
|
config: config)
|
281
575
|
context[:gem_name] = 'aws-sdk-kinesisvideoarchivedmedia'
|
282
|
-
context[:gem_version] = '1.
|
576
|
+
context[:gem_version] = '1.2.0'
|
283
577
|
Seahorse::Client::Request.new(handlers, context)
|
284
578
|
end
|
285
579
|
|
@@ -13,27 +13,41 @@ module Aws::KinesisVideoArchivedMedia
|
|
13
13
|
|
14
14
|
ClientLimitExceededException = Shapes::StructureShape.new(name: 'ClientLimitExceededException')
|
15
15
|
ContentType = Shapes::StringShape.new(name: 'ContentType')
|
16
|
+
DiscontinuityMode = Shapes::StringShape.new(name: 'DiscontinuityMode')
|
16
17
|
ErrorMessage = Shapes::StringShape.new(name: 'ErrorMessage')
|
18
|
+
Expires = Shapes::IntegerShape.new(name: 'Expires')
|
17
19
|
Fragment = Shapes::StructureShape.new(name: 'Fragment')
|
18
20
|
FragmentList = Shapes::ListShape.new(name: 'FragmentList')
|
19
21
|
FragmentNumberList = Shapes::ListShape.new(name: 'FragmentNumberList')
|
20
22
|
FragmentNumberString = Shapes::StringShape.new(name: 'FragmentNumberString')
|
21
23
|
FragmentSelector = Shapes::StructureShape.new(name: 'FragmentSelector')
|
22
24
|
FragmentSelectorType = Shapes::StringShape.new(name: 'FragmentSelectorType')
|
25
|
+
GetHLSStreamingSessionURLInput = Shapes::StructureShape.new(name: 'GetHLSStreamingSessionURLInput')
|
26
|
+
GetHLSStreamingSessionURLOutput = Shapes::StructureShape.new(name: 'GetHLSStreamingSessionURLOutput')
|
23
27
|
GetMediaForFragmentListInput = Shapes::StructureShape.new(name: 'GetMediaForFragmentListInput')
|
24
28
|
GetMediaForFragmentListOutput = Shapes::StructureShape.new(name: 'GetMediaForFragmentListOutput')
|
29
|
+
HLSFragmentSelector = Shapes::StructureShape.new(name: 'HLSFragmentSelector')
|
30
|
+
HLSFragmentSelectorType = Shapes::StringShape.new(name: 'HLSFragmentSelectorType')
|
31
|
+
HLSStreamingSessionURL = Shapes::StringShape.new(name: 'HLSStreamingSessionURL')
|
32
|
+
HLSTimestampRange = Shapes::StructureShape.new(name: 'HLSTimestampRange')
|
25
33
|
InvalidArgumentException = Shapes::StructureShape.new(name: 'InvalidArgumentException')
|
34
|
+
InvalidCodecPrivateDataException = Shapes::StructureShape.new(name: 'InvalidCodecPrivateDataException')
|
26
35
|
ListFragmentsInput = Shapes::StructureShape.new(name: 'ListFragmentsInput')
|
27
36
|
ListFragmentsOutput = Shapes::StructureShape.new(name: 'ListFragmentsOutput')
|
28
37
|
Long = Shapes::IntegerShape.new(name: 'Long')
|
38
|
+
MissingCodecPrivateDataException = Shapes::StructureShape.new(name: 'MissingCodecPrivateDataException')
|
39
|
+
NoDataRetentionException = Shapes::StructureShape.new(name: 'NoDataRetentionException')
|
29
40
|
NotAuthorizedException = Shapes::StructureShape.new(name: 'NotAuthorizedException')
|
30
41
|
PageLimit = Shapes::IntegerShape.new(name: 'PageLimit')
|
31
42
|
Payload = Shapes::BlobShape.new(name: 'Payload')
|
43
|
+
PlaybackMode = Shapes::StringShape.new(name: 'PlaybackMode')
|
44
|
+
ResourceARN = Shapes::StringShape.new(name: 'ResourceARN')
|
32
45
|
ResourceNotFoundException = Shapes::StructureShape.new(name: 'ResourceNotFoundException')
|
33
46
|
StreamName = Shapes::StringShape.new(name: 'StreamName')
|
34
47
|
String = Shapes::StringShape.new(name: 'String')
|
35
48
|
Timestamp = Shapes::TimestampShape.new(name: 'Timestamp')
|
36
49
|
TimestampRange = Shapes::StructureShape.new(name: 'TimestampRange')
|
50
|
+
UnsupportedStreamMediaTypeException = Shapes::StructureShape.new(name: 'UnsupportedStreamMediaTypeException')
|
37
51
|
|
38
52
|
Fragment.add_member(:fragment_number, Shapes::ShapeRef.new(shape: String, location_name: "FragmentNumber"))
|
39
53
|
Fragment.add_member(:fragment_size_in_bytes, Shapes::ShapeRef.new(shape: Long, location_name: "FragmentSizeInBytes"))
|
@@ -50,6 +64,18 @@ module Aws::KinesisVideoArchivedMedia
|
|
50
64
|
FragmentSelector.add_member(:timestamp_range, Shapes::ShapeRef.new(shape: TimestampRange, required: true, location_name: "TimestampRange"))
|
51
65
|
FragmentSelector.struct_class = Types::FragmentSelector
|
52
66
|
|
67
|
+
GetHLSStreamingSessionURLInput.add_member(:stream_name, Shapes::ShapeRef.new(shape: StreamName, location_name: "StreamName"))
|
68
|
+
GetHLSStreamingSessionURLInput.add_member(:stream_arn, Shapes::ShapeRef.new(shape: ResourceARN, location_name: "StreamARN"))
|
69
|
+
GetHLSStreamingSessionURLInput.add_member(:playback_mode, Shapes::ShapeRef.new(shape: PlaybackMode, location_name: "PlaybackMode"))
|
70
|
+
GetHLSStreamingSessionURLInput.add_member(:hls_fragment_selector, Shapes::ShapeRef.new(shape: HLSFragmentSelector, location_name: "HLSFragmentSelector"))
|
71
|
+
GetHLSStreamingSessionURLInput.add_member(:discontinuity_mode, Shapes::ShapeRef.new(shape: DiscontinuityMode, location_name: "DiscontinuityMode"))
|
72
|
+
GetHLSStreamingSessionURLInput.add_member(:expires, Shapes::ShapeRef.new(shape: Expires, location_name: "Expires"))
|
73
|
+
GetHLSStreamingSessionURLInput.add_member(:max_media_playlist_fragment_results, Shapes::ShapeRef.new(shape: PageLimit, location_name: "MaxMediaPlaylistFragmentResults"))
|
74
|
+
GetHLSStreamingSessionURLInput.struct_class = Types::GetHLSStreamingSessionURLInput
|
75
|
+
|
76
|
+
GetHLSStreamingSessionURLOutput.add_member(:hls_streaming_session_url, Shapes::ShapeRef.new(shape: HLSStreamingSessionURL, location_name: "HLSStreamingSessionURL"))
|
77
|
+
GetHLSStreamingSessionURLOutput.struct_class = Types::GetHLSStreamingSessionURLOutput
|
78
|
+
|
53
79
|
GetMediaForFragmentListInput.add_member(:stream_name, Shapes::ShapeRef.new(shape: StreamName, required: true, location_name: "StreamName"))
|
54
80
|
GetMediaForFragmentListInput.add_member(:fragments, Shapes::ShapeRef.new(shape: FragmentNumberList, required: true, location_name: "Fragments"))
|
55
81
|
GetMediaForFragmentListInput.struct_class = Types::GetMediaForFragmentListInput
|
@@ -60,6 +86,14 @@ module Aws::KinesisVideoArchivedMedia
|
|
60
86
|
GetMediaForFragmentListOutput[:payload] = :payload
|
61
87
|
GetMediaForFragmentListOutput[:payload_member] = GetMediaForFragmentListOutput.member(:payload)
|
62
88
|
|
89
|
+
HLSFragmentSelector.add_member(:fragment_selector_type, Shapes::ShapeRef.new(shape: HLSFragmentSelectorType, location_name: "FragmentSelectorType"))
|
90
|
+
HLSFragmentSelector.add_member(:timestamp_range, Shapes::ShapeRef.new(shape: HLSTimestampRange, location_name: "TimestampRange"))
|
91
|
+
HLSFragmentSelector.struct_class = Types::HLSFragmentSelector
|
92
|
+
|
93
|
+
HLSTimestampRange.add_member(:start_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "StartTimestamp"))
|
94
|
+
HLSTimestampRange.add_member(:end_timestamp, Shapes::ShapeRef.new(shape: Timestamp, location_name: "EndTimestamp"))
|
95
|
+
HLSTimestampRange.struct_class = Types::HLSTimestampRange
|
96
|
+
|
63
97
|
ListFragmentsInput.add_member(:stream_name, Shapes::ShapeRef.new(shape: StreamName, required: true, location_name: "StreamName"))
|
64
98
|
ListFragmentsInput.add_member(:max_results, Shapes::ShapeRef.new(shape: PageLimit, location_name: "MaxResults"))
|
65
99
|
ListFragmentsInput.add_member(:next_token, Shapes::ShapeRef.new(shape: String, location_name: "NextToken"))
|
@@ -87,6 +121,22 @@ module Aws::KinesisVideoArchivedMedia
|
|
87
121
|
"signatureVersion" => "v4",
|
88
122
|
}
|
89
123
|
|
124
|
+
api.add_operation(:get_hls_streaming_session_url, Seahorse::Model::Operation.new.tap do |o|
|
125
|
+
o.name = "GetHLSStreamingSessionURL"
|
126
|
+
o.http_method = "POST"
|
127
|
+
o.http_request_uri = "/getHLSStreamingSessionURL"
|
128
|
+
o.input = Shapes::ShapeRef.new(shape: GetHLSStreamingSessionURLInput)
|
129
|
+
o.output = Shapes::ShapeRef.new(shape: GetHLSStreamingSessionURLOutput)
|
130
|
+
o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
|
131
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidArgumentException)
|
132
|
+
o.errors << Shapes::ShapeRef.new(shape: ClientLimitExceededException)
|
133
|
+
o.errors << Shapes::ShapeRef.new(shape: NotAuthorizedException)
|
134
|
+
o.errors << Shapes::ShapeRef.new(shape: UnsupportedStreamMediaTypeException)
|
135
|
+
o.errors << Shapes::ShapeRef.new(shape: NoDataRetentionException)
|
136
|
+
o.errors << Shapes::ShapeRef.new(shape: MissingCodecPrivateDataException)
|
137
|
+
o.errors << Shapes::ShapeRef.new(shape: InvalidCodecPrivateDataException)
|
138
|
+
end)
|
139
|
+
|
90
140
|
api.add_operation(:get_media_for_fragment_list, Seahorse::Model::Operation.new.tap do |o|
|
91
141
|
o.name = "GetMediaForFragmentList"
|
92
142
|
o.http_method = "POST"
|
@@ -73,6 +73,177 @@ module Aws::KinesisVideoArchivedMedia
|
|
73
73
|
include Aws::Structure
|
74
74
|
end
|
75
75
|
|
76
|
+
# @note When making an API call, you may pass GetHLSStreamingSessionURLInput
|
77
|
+
# data as a hash:
|
78
|
+
#
|
79
|
+
# {
|
80
|
+
# stream_name: "StreamName",
|
81
|
+
# stream_arn: "ResourceARN",
|
82
|
+
# playback_mode: "LIVE", # accepts LIVE, ON_DEMAND
|
83
|
+
# hls_fragment_selector: {
|
84
|
+
# fragment_selector_type: "PRODUCER_TIMESTAMP", # accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
|
85
|
+
# timestamp_range: {
|
86
|
+
# start_timestamp: Time.now,
|
87
|
+
# end_timestamp: Time.now,
|
88
|
+
# },
|
89
|
+
# },
|
90
|
+
# discontinuity_mode: "ALWAYS", # accepts ALWAYS, NEVER
|
91
|
+
# expires: 1,
|
92
|
+
# max_media_playlist_fragment_results: 1,
|
93
|
+
# }
|
94
|
+
#
|
95
|
+
# @!attribute [rw] stream_name
|
96
|
+
# The name of the stream for which to retrieve the HLS master playlist
|
97
|
+
# URL.
|
98
|
+
#
|
99
|
+
# You must specify either the `StreamName` or the `StreamARN`.
|
100
|
+
# @return [String]
|
101
|
+
#
|
102
|
+
# @!attribute [rw] stream_arn
|
103
|
+
# The Amazon Resource Name (ARN) of the stream for which to retrieve
|
104
|
+
# the HLS master playlist URL.
|
105
|
+
#
|
106
|
+
# You must specify either the `StreamName` or the `StreamARN`.
|
107
|
+
# @return [String]
|
108
|
+
#
|
109
|
+
# @!attribute [rw] playback_mode
|
110
|
+
# Whether to retrieve live or archived, on-demand data.
|
111
|
+
#
|
112
|
+
# Features of the two types of session include the following:
|
113
|
+
#
|
114
|
+
# * <b> <code>LIVE</code> </b>\: For sessions of this type, the HLS
|
115
|
+
# media playlist is continually updated with the latest fragments as
|
116
|
+
# they become available. We recommend that the media player retrieve
|
117
|
+
# a new playlist on a one-second interval. When this type of session
|
118
|
+
# is played in a media player, the user interface typically displays
|
119
|
+
# a "live" notification, with no scrubber control for choosing the
|
120
|
+
# position in the playback window to display.
|
121
|
+
#
|
122
|
+
# <note markdown="1"> In `LIVE` mode, the newest available fragments are included in an
|
123
|
+
# HLS media playlist, even if there is a gap between fragments (that
|
124
|
+
# is, if a fragment is missing). A gap like this might cause a media
|
125
|
+
# player to halt or cause a jump in playback. In this mode,
|
126
|
+
# fragments are not added to the HLS media playlist if they are
|
127
|
+
# older than the newest fragment in the playlist. If the missing
|
128
|
+
# fragment becomes available after a subsequent fragment is added to
|
129
|
+
# the playlist, the older fragment is not added, and the gap is not
|
130
|
+
# filled.
|
131
|
+
#
|
132
|
+
# </note>
|
133
|
+
#
|
134
|
+
# * <b> <code>ON_DEMAND</code> </b>\: For sessions of this type, the
|
135
|
+
# HLS media playlist contains all the fragments for the session, up
|
136
|
+
# to the number that is specified in
|
137
|
+
# `MaxMediaPlaylistFragmentResults`. The playlist must be retrieved
|
138
|
+
# only once for each session. When this type of session is played in
|
139
|
+
# a media player, the user interface typically displays a scrubber
|
140
|
+
# control for choosing the position in the playback window to
|
141
|
+
# display.
|
142
|
+
#
|
143
|
+
# In both playback modes, if `FragmentSelectorType` is
|
144
|
+
# `PRODUCER_TIMESTAMP`, and if there are multiple fragments with the
|
145
|
+
# same start time stamp, the fragment that has the larger fragment
|
146
|
+
# number (that is, the newer fragment) is included in the HLS media
|
147
|
+
# playlist. The other fragments are not included. Fragments that have
|
148
|
+
# different time stamps but have overlapping durations are still
|
149
|
+
# included in the HLS media playlist. This can lead to unexpected
|
150
|
+
# behavior in the media player.
|
151
|
+
#
|
152
|
+
# The default is `LIVE`.
|
153
|
+
# @return [String]
|
154
|
+
#
|
155
|
+
# @!attribute [rw] hls_fragment_selector
|
156
|
+
# The time range of the requested fragment, and the source of the time
|
157
|
+
# stamps.
|
158
|
+
#
|
159
|
+
# This parameter is required if `PlaybackMode` is `ON_DEMAND`. This
|
160
|
+
# parameter is optional if `PlaybackMode` is `LIVE`. If `PlaybackMode`
|
161
|
+
# is `LIVE`, the `FragmentSelectorType` can be set, but the
|
162
|
+
# `TimestampRange` should not be set. If `PlaybackMode` is
|
163
|
+
# `ON_DEMAND`, both `FragmentSelectorType` and `TimestampRange` must
|
164
|
+
# be set.
|
165
|
+
# @return [Types::HLSFragmentSelector]
|
166
|
+
#
|
167
|
+
# @!attribute [rw] discontinuity_mode
|
168
|
+
# Specifies when flags marking discontinuities between fragments will
|
169
|
+
# be added to the media playlists. The default is `ALWAYS` when
|
170
|
+
# HLSFragmentSelector is `SERVER_TIMESTAMP`, and `NEVER` when it is
|
171
|
+
# `PRODUCER_TIMESTAMP`.
|
172
|
+
#
|
173
|
+
# Media players typically build a timeline of media content to play,
|
174
|
+
# based on the time stamps of each fragment. This means that if there
|
175
|
+
# is any overlap between fragments (as is typical if
|
176
|
+
# HLSFragmentSelector is `SERVER_TIMESTAMP`), the media player
|
177
|
+
# timeline has small gaps between fragments in some places, and
|
178
|
+
# overwrites frames in other places. When there are discontinuity
|
179
|
+
# flags between fragments, the media player is expected to reset the
|
180
|
+
# timeline, resulting in the fragment being played immediately after
|
181
|
+
# the previous fragment. We recommend that you always have
|
182
|
+
# discontinuity flags between fragments if the fragment time stamps
|
183
|
+
# are not accurate or if fragments might be missing. You should not
|
184
|
+
# place discontinuity flags between fragments for the player timeline
|
185
|
+
# to accurately map to the producer time stamps.
|
186
|
+
# @return [String]
|
187
|
+
#
|
188
|
+
# @!attribute [rw] expires
|
189
|
+
# The time in seconds until the requested session expires. This value
|
190
|
+
# can be between 300 (5 minutes) and 43200 (12 hours).
|
191
|
+
#
|
192
|
+
# When a session expires, no new calls to `GetHLSMasterPlaylist`,
|
193
|
+
# `GetHLSMediaPlaylist`, `GetMP4InitFragment`, or
|
194
|
+
# `GetMP4MediaFragment` can be made for that session.
|
195
|
+
#
|
196
|
+
# The default is 300 (5 minutes).
|
197
|
+
# @return [Integer]
|
198
|
+
#
|
199
|
+
# @!attribute [rw] max_media_playlist_fragment_results
|
200
|
+
# The maximum number of fragments that are returned in the HLS media
|
201
|
+
# playlists.
|
202
|
+
#
|
203
|
+
# When the `PlaybackMode` is `LIVE`, the most recent fragments are
|
204
|
+
# returned up to this value. When the `PlaybackMode` is `ON_DEMAND`,
|
205
|
+
# the oldest fragments are returned, up to this maximum number.
|
206
|
+
#
|
207
|
+
# When there are a higher number of fragments available in a live HLS
|
208
|
+
# media playlist, video players often buffer content before starting
|
209
|
+
# playback. Increasing the buffer size increases the playback latency,
|
210
|
+
# but it decreases the likelihood that rebuffering will occur during
|
211
|
+
# playback. We recommend that a live HLS media playlist have a minimum
|
212
|
+
# of 3 fragments and a maximum of 10 fragments.
|
213
|
+
#
|
214
|
+
# The default is 5 fragments if `PlaybackMode` is `LIVE`, and 1,000 if
|
215
|
+
# `PlaybackMode` is `ON_DEMAND`.
|
216
|
+
#
|
217
|
+
# The maximum value of 1,000 fragments corresponds to more than 16
|
218
|
+
# minutes of video on streams with 1-second fragments, and more than 2
|
219
|
+
# 1/2 hours of video on streams with 10-second fragments.
|
220
|
+
# @return [Integer]
|
221
|
+
#
|
222
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/GetHLSStreamingSessionURLInput AWS API Documentation
|
223
|
+
#
|
224
|
+
class GetHLSStreamingSessionURLInput < Struct.new(
|
225
|
+
:stream_name,
|
226
|
+
:stream_arn,
|
227
|
+
:playback_mode,
|
228
|
+
:hls_fragment_selector,
|
229
|
+
:discontinuity_mode,
|
230
|
+
:expires,
|
231
|
+
:max_media_playlist_fragment_results)
|
232
|
+
include Aws::Structure
|
233
|
+
end
|
234
|
+
|
235
|
+
# @!attribute [rw] hls_streaming_session_url
|
236
|
+
# The URL (containing the session token) that a media player can use
|
237
|
+
# to retrieve the HLS master playlist.
|
238
|
+
# @return [String]
|
239
|
+
#
|
240
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/GetHLSStreamingSessionURLOutput AWS API Documentation
|
241
|
+
#
|
242
|
+
class GetHLSStreamingSessionURLOutput < Struct.new(
|
243
|
+
:hls_streaming_session_url)
|
244
|
+
include Aws::Structure
|
245
|
+
end
|
246
|
+
|
76
247
|
# @note When making an API call, you may pass GetMediaForFragmentListInput
|
77
248
|
# data as a hash:
|
78
249
|
#
|
@@ -105,11 +276,9 @@ module Aws::KinesisVideoArchivedMedia
|
|
105
276
|
# @!attribute [rw] payload
|
106
277
|
# The payload that Kinesis Video Streams returns is a sequence of
|
107
278
|
# chunks from the specified stream. For information about the chunks,
|
108
|
-
# see
|
109
|
-
#
|
110
|
-
#
|
111
|
-
# `GetMediaForFragmentList` call also include the following additional
|
112
|
-
# Matroska (MKV) tags:
|
279
|
+
# see [PutMedia][1]. The chunks that Kinesis Video Streams returns in
|
280
|
+
# the `GetMediaForFragmentList` call also include the following
|
281
|
+
# additional Matroska (MKV) tags:
|
113
282
|
#
|
114
283
|
# * AWS\_KINESISVIDEO\_FRAGMENT\_NUMBER - Fragment number returned in
|
115
284
|
# the chunk.
|
@@ -130,6 +299,10 @@ module Aws::KinesisVideoArchivedMedia
|
|
130
299
|
#
|
131
300
|
# * AWS\_KINESISVIDEO\_EXCEPTION\_MESSAGE - A text description of the
|
132
301
|
# exception
|
302
|
+
#
|
303
|
+
#
|
304
|
+
#
|
305
|
+
# [1]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/API_dataplane_PutMedia.html
|
133
306
|
# @return [IO]
|
134
307
|
#
|
135
308
|
# @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/GetMediaForFragmentListOutput AWS API Documentation
|
@@ -140,6 +313,126 @@ module Aws::KinesisVideoArchivedMedia
|
|
140
313
|
include Aws::Structure
|
141
314
|
end
|
142
315
|
|
316
|
+
# Contains the range of time stamps for the requested media, and the
|
317
|
+
# source of the time stamps.
|
318
|
+
#
|
319
|
+
# @note When making an API call, you may pass HLSFragmentSelector
|
320
|
+
# data as a hash:
|
321
|
+
#
|
322
|
+
# {
|
323
|
+
# fragment_selector_type: "PRODUCER_TIMESTAMP", # accepts PRODUCER_TIMESTAMP, SERVER_TIMESTAMP
|
324
|
+
# timestamp_range: {
|
325
|
+
# start_timestamp: Time.now,
|
326
|
+
# end_timestamp: Time.now,
|
327
|
+
# },
|
328
|
+
# }
|
329
|
+
#
|
330
|
+
# @!attribute [rw] fragment_selector_type
|
331
|
+
# The source of the time stamps for the requested media.
|
332
|
+
#
|
333
|
+
# When `FragmentSelectorType` is set to `PRODUCER_TIMESTAMP` and
|
334
|
+
# GetHLSStreamingSessionURLInput$PlaybackMode is `ON_DEMAND`, the
|
335
|
+
# first fragment ingested with a producer time stamp within the
|
336
|
+
# specified FragmentSelector$TimestampRange is included in the media
|
337
|
+
# playlist. In addition, the fragments with producer time stamps
|
338
|
+
# within the `TimestampRange` ingested immediately following the first
|
339
|
+
# fragment (up to the
|
340
|
+
# GetHLSStreamingSessionURLInput$MaxMediaPlaylistFragmentResults
|
341
|
+
# value) are included.
|
342
|
+
#
|
343
|
+
# Fragments that have duplicate producer time stamps are deduplicated.
|
344
|
+
# This means that if producers are producing a stream of fragments
|
345
|
+
# with producer time stamps that are approximately equal to the true
|
346
|
+
# clock time, the HLS media playlists will contain all of the
|
347
|
+
# fragments within the requested time stamp range. If some fragments
|
348
|
+
# are ingested within the same time range and very different points in
|
349
|
+
# time, only the oldest ingested collection of fragments are returned.
|
350
|
+
#
|
351
|
+
# When `FragmentSelectorType` is set to `PRODUCER_TIMESTAMP` and
|
352
|
+
# GetHLSStreamingSessionURLInput$PlaybackMode is `LIVE`, the producer
|
353
|
+
# time stamps are used in the MP4 fragments and for deduplication. But
|
354
|
+
# the most recently ingested fragments based on server time stamps are
|
355
|
+
# included in the HLS media playlist. This means that even if
|
356
|
+
# fragments ingested in the past have producer time stamps with values
|
357
|
+
# now, they are not included in the HLS media playlist.
|
358
|
+
#
|
359
|
+
# The default is `SERVER_TIMESTAMP`.
|
360
|
+
# @return [String]
|
361
|
+
#
|
362
|
+
# @!attribute [rw] timestamp_range
|
363
|
+
# The start and end of the time stamp range for the requested media.
|
364
|
+
#
|
365
|
+
# This value should not be present if `PlaybackType` is `LIVE`.
|
366
|
+
# @return [Types::HLSTimestampRange]
|
367
|
+
#
|
368
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/HLSFragmentSelector AWS API Documentation
|
369
|
+
#
|
370
|
+
class HLSFragmentSelector < Struct.new(
|
371
|
+
:fragment_selector_type,
|
372
|
+
:timestamp_range)
|
373
|
+
include Aws::Structure
|
374
|
+
end
|
375
|
+
|
376
|
+
# The start and end of the time stamp range for the requested media.
|
377
|
+
#
|
378
|
+
# This value should not be present if `PlaybackType` is `LIVE`.
|
379
|
+
#
|
380
|
+
# <note markdown="1"> The values in the `HLSTimestampRange` are inclusive. Fragments that
|
381
|
+
# begin before the start time but continue past it, or fragments that
|
382
|
+
# begin before the end time but continue past it, are included in the
|
383
|
+
# session.
|
384
|
+
#
|
385
|
+
# </note>
|
386
|
+
#
|
387
|
+
# @note When making an API call, you may pass HLSTimestampRange
|
388
|
+
# data as a hash:
|
389
|
+
#
|
390
|
+
# {
|
391
|
+
# start_timestamp: Time.now,
|
392
|
+
# end_timestamp: Time.now,
|
393
|
+
# }
|
394
|
+
#
|
395
|
+
# @!attribute [rw] start_timestamp
|
396
|
+
# The start of the time stamp range for the requested media.
|
397
|
+
#
|
398
|
+
# If the `HLSTimestampRange` value is specified, the `StartTimestamp`
|
399
|
+
# value is required.
|
400
|
+
#
|
401
|
+
# <note markdown="1"> This value is inclusive. Fragments that start before the
|
402
|
+
# `StartTimestamp` and continue past it are included in the session.
|
403
|
+
# If `FragmentSelectorType` is `SERVER_TIMESTAMP`, the
|
404
|
+
# `StartTimestamp` must be later than the stream head.
|
405
|
+
#
|
406
|
+
# </note>
|
407
|
+
# @return [Time]
|
408
|
+
#
|
409
|
+
# @!attribute [rw] end_timestamp
|
410
|
+
# The end of the time stamp range for the requested media. This value
|
411
|
+
# must be within 3 hours of the specified `StartTimestamp`, and it
|
412
|
+
# must be later than the `StartTimestamp` value.
|
413
|
+
#
|
414
|
+
# If `FragmentSelectorType` for the request is `SERVER_TIMESTAMP`,
|
415
|
+
# this value must be in the past.
|
416
|
+
#
|
417
|
+
# If the `HLSTimestampRange` value is specified, the `EndTimestamp`
|
418
|
+
# value is required.
|
419
|
+
#
|
420
|
+
# <note markdown="1"> This value is inclusive. The `EndTimestamp` is compared to the
|
421
|
+
# (starting) time stamp of the fragment. Fragments that start before
|
422
|
+
# the `EndTimestamp` value and continue past it are included in the
|
423
|
+
# session.
|
424
|
+
#
|
425
|
+
# </note>
|
426
|
+
# @return [Time]
|
427
|
+
#
|
428
|
+
# @see http://docs.aws.amazon.com/goto/WebAPI/kinesis-video-archived-media-2017-09-30/HLSTimestampRange AWS API Documentation
|
429
|
+
#
|
430
|
+
class HLSTimestampRange < Struct.new(
|
431
|
+
:start_timestamp,
|
432
|
+
:end_timestamp)
|
433
|
+
include Aws::Structure
|
434
|
+
end
|
435
|
+
|
143
436
|
# @note When making an API call, you may pass ListFragmentsInput
|
144
437
|
# data as a hash:
|
145
438
|
#
|
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.
|
4
|
+
version: 1.2.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: 2018-
|
11
|
+
date: 2018-07-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: aws-sdk-core
|