aws-sdk-kinesisvideo 1.0.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.
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: be3c2987544c6b9e2fcda16dba20df7f57a3c0af
4
+ data.tar.gz: 60a53f6593cd07d074e1efb9ddac693705c38826
5
+ SHA512:
6
+ metadata.gz: 25a2292d2fd7f6b3b6af9b7199cdb511bc85053cfed93b3371e5f19dc36429980d224e3b8a51e94c0fb505ffab27b25a7bfee5ced4a2031a0ac1871ec13ea88e
7
+ data.tar.gz: bc4fc7b9a0812ba1756c598854c239e045c35a028e6efac6a85256868acc9755979eb490a7d901ff7b3f1f56e5d8a8bcc3a509caf55e6439712801b3559480bc
@@ -0,0 +1,47 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'aws-sdk-core'
9
+ require 'aws-sigv4'
10
+
11
+ require_relative 'aws-sdk-kinesisvideo/types'
12
+ require_relative 'aws-sdk-kinesisvideo/client_api'
13
+ require_relative 'aws-sdk-kinesisvideo/client'
14
+ require_relative 'aws-sdk-kinesisvideo/errors'
15
+ require_relative 'aws-sdk-kinesisvideo/resource'
16
+ require_relative 'aws-sdk-kinesisvideo/customizations'
17
+
18
+ # This module provides support for Amazon Kinesis Video Streams. This module is available in the
19
+ # `aws-sdk-kinesisvideo` gem.
20
+ #
21
+ # # Client
22
+ #
23
+ # The {Client} class provides one method for each API operation. Operation
24
+ # methods each accept a hash of request parameters and return a response
25
+ # structure.
26
+ #
27
+ # See {Client} for more information.
28
+ #
29
+ # # Errors
30
+ #
31
+ # Errors returned from Amazon Kinesis Video Streams all
32
+ # extend {Errors::ServiceError}.
33
+ #
34
+ # begin
35
+ # # do stuff
36
+ # rescue Aws::KinesisVideo::Errors::ServiceError
37
+ # # rescues all service API errors
38
+ # end
39
+ #
40
+ # See {Errors} for more information.
41
+ #
42
+ # @service
43
+ module Aws::KinesisVideo
44
+
45
+ GEM_VERSION = '1.0.0'
46
+
47
+ end
@@ -0,0 +1,742 @@
1
+ # WARNING ABOUT GENERATED CODE
2
+ #
3
+ # This file is generated. See the contributing guide for more information:
4
+ # https://github.com/aws/aws-sdk-ruby/blob/master/CONTRIBUTING.md
5
+ #
6
+ # WARNING ABOUT GENERATED CODE
7
+
8
+ require 'seahorse/client/plugins/content_length.rb'
9
+ require 'aws-sdk-core/plugins/credentials_configuration.rb'
10
+ require 'aws-sdk-core/plugins/logging.rb'
11
+ require 'aws-sdk-core/plugins/param_converter.rb'
12
+ require 'aws-sdk-core/plugins/param_validator.rb'
13
+ require 'aws-sdk-core/plugins/user_agent.rb'
14
+ require 'aws-sdk-core/plugins/helpful_socket_errors.rb'
15
+ require 'aws-sdk-core/plugins/retry_errors.rb'
16
+ require 'aws-sdk-core/plugins/global_configuration.rb'
17
+ require 'aws-sdk-core/plugins/regional_endpoint.rb'
18
+ require 'aws-sdk-core/plugins/response_paging.rb'
19
+ require 'aws-sdk-core/plugins/stub_responses.rb'
20
+ require 'aws-sdk-core/plugins/idempotency_token.rb'
21
+ require 'aws-sdk-core/plugins/jsonvalue_converter.rb'
22
+ require 'aws-sdk-core/plugins/signature_v4.rb'
23
+ require 'aws-sdk-core/plugins/protocols/rest_json.rb'
24
+
25
+ Aws::Plugins::GlobalConfiguration.add_identifier(:kinesisvideo)
26
+
27
+ module Aws::KinesisVideo
28
+ class Client < Seahorse::Client::Base
29
+
30
+ include Aws::ClientStubs
31
+
32
+ @identifier = :kinesisvideo
33
+
34
+ set_api(ClientApi::API)
35
+
36
+ add_plugin(Seahorse::Client::Plugins::ContentLength)
37
+ add_plugin(Aws::Plugins::CredentialsConfiguration)
38
+ add_plugin(Aws::Plugins::Logging)
39
+ add_plugin(Aws::Plugins::ParamConverter)
40
+ add_plugin(Aws::Plugins::ParamValidator)
41
+ add_plugin(Aws::Plugins::UserAgent)
42
+ add_plugin(Aws::Plugins::HelpfulSocketErrors)
43
+ add_plugin(Aws::Plugins::RetryErrors)
44
+ add_plugin(Aws::Plugins::GlobalConfiguration)
45
+ add_plugin(Aws::Plugins::RegionalEndpoint)
46
+ add_plugin(Aws::Plugins::ResponsePaging)
47
+ add_plugin(Aws::Plugins::StubResponses)
48
+ add_plugin(Aws::Plugins::IdempotencyToken)
49
+ add_plugin(Aws::Plugins::JsonvalueConverter)
50
+ add_plugin(Aws::Plugins::SignatureV4)
51
+ add_plugin(Aws::Plugins::Protocols::RestJson)
52
+
53
+ # @option options [required, Aws::CredentialProvider] :credentials
54
+ # Your AWS credentials. This can be an instance of any one of the
55
+ # following classes:
56
+ #
57
+ # * `Aws::Credentials` - Used for configuring static, non-refreshing
58
+ # credentials.
59
+ #
60
+ # * `Aws::InstanceProfileCredentials` - Used for loading credentials
61
+ # from an EC2 IMDS on an EC2 instance.
62
+ #
63
+ # * `Aws::SharedCredentials` - Used for loading credentials from a
64
+ # shared file, such as `~/.aws/config`.
65
+ #
66
+ # * `Aws::AssumeRoleCredentials` - Used when you need to assume a role.
67
+ #
68
+ # When `:credentials` are not configured directly, the following
69
+ # locations will be searched for credentials:
70
+ #
71
+ # * `Aws.config[:credentials]`
72
+ # * The `:access_key_id`, `:secret_access_key`, and `:session_token` options.
73
+ # * ENV['AWS_ACCESS_KEY_ID'], ENV['AWS_SECRET_ACCESS_KEY']
74
+ # * `~/.aws/credentials`
75
+ # * `~/.aws/config`
76
+ # * EC2 IMDS instance profile - When used by default, the timeouts are
77
+ # very aggressive. Construct and pass an instance of
78
+ # `Aws::InstanceProfileCredentails` to enable retries and extended
79
+ # timeouts.
80
+ #
81
+ # @option options [required, String] :region
82
+ # The AWS region to connect to. The configured `:region` is
83
+ # used to determine the service `:endpoint`. When not passed,
84
+ # a default `:region` is search for in the following locations:
85
+ #
86
+ # * `Aws.config[:region]`
87
+ # * `ENV['AWS_REGION']`
88
+ # * `ENV['AMAZON_REGION']`
89
+ # * `ENV['AWS_DEFAULT_REGION']`
90
+ # * `~/.aws/credentials`
91
+ # * `~/.aws/config`
92
+ #
93
+ # @option options [String] :access_key_id
94
+ #
95
+ # @option options [Boolean] :convert_params (true)
96
+ # When `true`, an attempt is made to coerce request parameters into
97
+ # the required types.
98
+ #
99
+ # @option options [String] :endpoint
100
+ # The client endpoint is normally constructed from the `:region`
101
+ # option. You should only configure an `:endpoint` when connecting
102
+ # to test endpoints. This should be avalid HTTP(S) URI.
103
+ #
104
+ # @option options [Aws::Log::Formatter] :log_formatter (Aws::Log::Formatter.default)
105
+ # The log formatter.
106
+ #
107
+ # @option options [Symbol] :log_level (:info)
108
+ # The log level to send messages to the `:logger` at.
109
+ #
110
+ # @option options [Logger] :logger
111
+ # The Logger instance to send log messages to. If this option
112
+ # is not set, logging will be disabled.
113
+ #
114
+ # @option options [String] :profile ("default")
115
+ # Used when loading credentials from the shared credentials file
116
+ # at HOME/.aws/credentials. When not specified, 'default' is used.
117
+ #
118
+ # @option options [Integer] :retry_limit (3)
119
+ # The maximum number of times to retry failed requests. Only
120
+ # ~ 500 level server errors and certain ~ 400 level client errors
121
+ # are retried. Generally, these are throttling errors, data
122
+ # checksum errors, networking errors, timeout errors and auth
123
+ # errors from expired credentials.
124
+ #
125
+ # @option options [String] :secret_access_key
126
+ #
127
+ # @option options [String] :session_token
128
+ #
129
+ # @option options [Boolean] :stub_responses (false)
130
+ # Causes the client to return stubbed responses. By default
131
+ # fake responses are generated and returned. You can specify
132
+ # the response data to return or errors to raise by calling
133
+ # {ClientStubs#stub_responses}. See {ClientStubs} for more information.
134
+ #
135
+ # ** Please note ** When response stubbing is enabled, no HTTP
136
+ # requests are made, and retries are disabled.
137
+ #
138
+ # @option options [Boolean] :validate_params (true)
139
+ # When `true`, request parameters are validated before
140
+ # sending the request.
141
+ #
142
+ def initialize(*args)
143
+ super
144
+ end
145
+
146
+ # @!group API Operations
147
+
148
+ # Creates a new Kinesis video stream.
149
+ #
150
+ # When you create a new stream, Kinesis Video Streams assigns it a
151
+ # version number. When you change the stream's metadata, Kinesis Video
152
+ # Streams updates the version.
153
+ #
154
+ # `CreateStream` is an asynchronous operation.
155
+ #
156
+ # For information about how the service works, see [How it Works][1].
157
+ #
158
+ # You must have permissions for the `KinesisVideo:CreateStream` action.
159
+ #
160
+ #
161
+ #
162
+ # [1]: http://docs.aws.amazon.com/kinesisvideostreams/latest/dg/how-it-works.html
163
+ #
164
+ # @option params [String] :device_name
165
+ # The name of the device that is writing to the stream.
166
+ #
167
+ # <note markdown="1"> In the current implementation, Kinesis Video Streams does not use this
168
+ # name.
169
+ #
170
+ # </note>
171
+ #
172
+ # @option params [required, String] :stream_name
173
+ # A name for the stream that you are creating.
174
+ #
175
+ # The stream name is an identifier for the stream, and must be unique
176
+ # for each account and region.
177
+ #
178
+ # @option params [String] :media_type
179
+ # The media type of the stream. Consumers of the stream can use this
180
+ # information when processing the stream. For more information about
181
+ # media types, see [Media Types][1]. If you choose to specify the
182
+ # `MediaType`, see [Naming Requirements][2] for guidelines.
183
+ #
184
+ # To play video on the console, the media must be H.264 encoded, and you
185
+ # need to specify this video type in this parameter as `video/h264`.
186
+ #
187
+ # This parameter is optional; the default value is `null` (or empty in
188
+ # JSON).
189
+ #
190
+ #
191
+ #
192
+ # [1]: http://www.iana.org/assignments/media-types/media-types.xhtml
193
+ # [2]: https://tools.ietf.org/html/rfc6838#section-4.2
194
+ #
195
+ # @option params [String] :kms_key_id
196
+ # The ID of the AWS Key Management Service (AWS KMS) key that you want
197
+ # Kinesis Video Streams to use to encrypt stream data.
198
+ #
199
+ # If no key ID is specified, the default, Kinesis Video-managed key
200
+ # (`aws/kinesisvideo`) is used.
201
+ #
202
+ # For more information, see [DescribeKey][1].
203
+ #
204
+ #
205
+ #
206
+ # [1]: http://docs.aws.amazon.com/kms/latest/APIReference/API_DescribeKey.html#API_DescribeKey_RequestParameters
207
+ #
208
+ # @option params [Integer] :data_retention_in_hours
209
+ # The number of hours that you want to retain the data in the stream.
210
+ # Kinesis Video Streams retains the data in a data store that is
211
+ # associated with the stream.
212
+ #
213
+ # The default value is 0, indicating that the stream does not persist
214
+ # data.
215
+ #
216
+ # @return [Types::CreateStreamOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
217
+ #
218
+ # * {Types::CreateStreamOutput#stream_arn #stream_arn} => String
219
+ #
220
+ # @example Request syntax with placeholder values
221
+ #
222
+ # resp = client.create_stream({
223
+ # device_name: "DeviceName",
224
+ # stream_name: "StreamName", # required
225
+ # media_type: "MediaType",
226
+ # kms_key_id: "KmsKeyId",
227
+ # data_retention_in_hours: 1,
228
+ # })
229
+ #
230
+ # @example Response structure
231
+ #
232
+ # resp.stream_arn #=> String
233
+ #
234
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/CreateStream AWS API Documentation
235
+ #
236
+ # @overload create_stream(params = {})
237
+ # @param [Hash] params ({})
238
+ def create_stream(params = {}, options = {})
239
+ req = build_request(:create_stream, params)
240
+ req.send_request(options)
241
+ end
242
+
243
+ # Deletes a Kinesis video stream and the data contained in the stream.
244
+ #
245
+ # This method marks the stream for deletion, and makes the data in the
246
+ # stream inaccessible immediately.
247
+ #
248
+ #
249
+ #
250
+ # To ensure that you have the latest version of the stream before
251
+ # deleting it, you can specify the stream version. Kinesis Video Streams
252
+ # assigns a version to each stream. When you update a stream, Kinesis
253
+ # Video Streams assigns a new version number. To get the latest stream
254
+ # version, use the `DescribeStream` API.
255
+ #
256
+ # This operation requires permission for the `KinesisVideo:DeleteStream`
257
+ # action.
258
+ #
259
+ # @option params [required, String] :stream_arn
260
+ # The Amazon Resource Name (ARN) of the stream that you want to delete.
261
+ #
262
+ # @option params [String] :current_version
263
+ # Optional: The version of the stream that you want to delete.
264
+ #
265
+ # Specify the version as a safeguard to ensure that your are deleting
266
+ # the correct stream. To get the stream version, use the
267
+ # `DescribeStream` API.
268
+ #
269
+ # If not specified, only the `CreationTime` is checked before deleting
270
+ # the stream.
271
+ #
272
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
273
+ #
274
+ # @example Request syntax with placeholder values
275
+ #
276
+ # resp = client.delete_stream({
277
+ # stream_arn: "ResourceARN", # required
278
+ # current_version: "Version",
279
+ # })
280
+ #
281
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DeleteStream AWS API Documentation
282
+ #
283
+ # @overload delete_stream(params = {})
284
+ # @param [Hash] params ({})
285
+ def delete_stream(params = {}, options = {})
286
+ req = build_request(:delete_stream, params)
287
+ req.send_request(options)
288
+ end
289
+
290
+ # Returns the most current information about the specified stream. You
291
+ # must specify either the `StreamName` or the `StreamARN`.
292
+ #
293
+ # @option params [String] :stream_name
294
+ # The name of the stream.
295
+ #
296
+ # @option params [String] :stream_arn
297
+ # The Amazon Resource Name (ARN) of the stream.
298
+ #
299
+ # @return [Types::DescribeStreamOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
300
+ #
301
+ # * {Types::DescribeStreamOutput#stream_info #stream_info} => Types::StreamInfo
302
+ #
303
+ # @example Request syntax with placeholder values
304
+ #
305
+ # resp = client.describe_stream({
306
+ # stream_name: "StreamName",
307
+ # stream_arn: "ResourceARN",
308
+ # })
309
+ #
310
+ # @example Response structure
311
+ #
312
+ # resp.stream_info.device_name #=> String
313
+ # resp.stream_info.stream_name #=> String
314
+ # resp.stream_info.stream_arn #=> String
315
+ # resp.stream_info.media_type #=> String
316
+ # resp.stream_info.kms_key_id #=> String
317
+ # resp.stream_info.version #=> String
318
+ # resp.stream_info.status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING"
319
+ # resp.stream_info.creation_time #=> Time
320
+ # resp.stream_info.data_retention_in_hours #=> Integer
321
+ #
322
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/DescribeStream AWS API Documentation
323
+ #
324
+ # @overload describe_stream(params = {})
325
+ # @param [Hash] params ({})
326
+ def describe_stream(params = {}, options = {})
327
+ req = build_request(:describe_stream, params)
328
+ req.send_request(options)
329
+ end
330
+
331
+ # Gets an endpoint for a specified stream for either reading or writing.
332
+ # Use this endpoint in your application to read from the specified
333
+ # stream (using the `GetMedia` or `GetMediaForFragmentList` operations)
334
+ # or write to it (using the `PutMedia` operation).
335
+ #
336
+ # <note markdown="1"> The returned endpoint does not have the API name appended. The client
337
+ # needs to add the API name to the returned endpoint.
338
+ #
339
+ # </note>
340
+ #
341
+ # In the request, specify the stream either by `StreamName` or
342
+ # `StreamARN`.
343
+ #
344
+ # @option params [String] :stream_name
345
+ # The name of the stream that you want to get the endpoint for. You must
346
+ # specify either this parameter or a `StreamARN` in the request.
347
+ #
348
+ # @option params [String] :stream_arn
349
+ # The Amazon Resource Name (ARN) of the stream that you want to get the
350
+ # endpoint for. You must specify either this parameter or a `StreamName`
351
+ # in the request.
352
+ #
353
+ # @option params [required, String] :api_name
354
+ # The name of the API action for which to get an endpoint.
355
+ #
356
+ # @return [Types::GetDataEndpointOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
357
+ #
358
+ # * {Types::GetDataEndpointOutput#data_endpoint #data_endpoint} => String
359
+ #
360
+ # @example Request syntax with placeholder values
361
+ #
362
+ # resp = client.get_data_endpoint({
363
+ # stream_name: "StreamName",
364
+ # stream_arn: "ResourceARN",
365
+ # api_name: "PUT_MEDIA", # required, accepts PUT_MEDIA, GET_MEDIA, LIST_FRAGMENTS, GET_MEDIA_FOR_FRAGMENT_LIST
366
+ # })
367
+ #
368
+ # @example Response structure
369
+ #
370
+ # resp.data_endpoint #=> String
371
+ #
372
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/GetDataEndpoint AWS API Documentation
373
+ #
374
+ # @overload get_data_endpoint(params = {})
375
+ # @param [Hash] params ({})
376
+ def get_data_endpoint(params = {}, options = {})
377
+ req = build_request(:get_data_endpoint, params)
378
+ req.send_request(options)
379
+ end
380
+
381
+ # Returns an array of `StreamInfo` objects. Each object describes a
382
+ # stream. To retrieve only streams that satisfy a specific condition,
383
+ # you can specify a `StreamNameCondition`.
384
+ #
385
+ # @option params [Integer] :max_results
386
+ # The maximum number of streams to return in the response. The default
387
+ # is 10,000.
388
+ #
389
+ # @option params [String] :next_token
390
+ # If you specify this parameter, when the result of a `ListStreams`
391
+ # operation is truncated, the call returns the `NextToken` in the
392
+ # response. To get another batch of streams, provide this token in your
393
+ # next request.
394
+ #
395
+ # @option params [Types::StreamNameCondition] :stream_name_condition
396
+ # Optional: Returns only streams that satisfy a specific condition.
397
+ # Currently, you can specify only the prefix of a stream name as a
398
+ # condition.
399
+ #
400
+ # @return [Types::ListStreamsOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
401
+ #
402
+ # * {Types::ListStreamsOutput#stream_info_list #stream_info_list} => Array&lt;Types::StreamInfo&gt;
403
+ # * {Types::ListStreamsOutput#next_token #next_token} => String
404
+ #
405
+ # @example Request syntax with placeholder values
406
+ #
407
+ # resp = client.list_streams({
408
+ # max_results: 1,
409
+ # next_token: "NextToken",
410
+ # stream_name_condition: {
411
+ # comparison_operator: "BEGINS_WITH", # accepts BEGINS_WITH
412
+ # comparison_value: "StreamName",
413
+ # },
414
+ # })
415
+ #
416
+ # @example Response structure
417
+ #
418
+ # resp.stream_info_list #=> Array
419
+ # resp.stream_info_list[0].device_name #=> String
420
+ # resp.stream_info_list[0].stream_name #=> String
421
+ # resp.stream_info_list[0].stream_arn #=> String
422
+ # resp.stream_info_list[0].media_type #=> String
423
+ # resp.stream_info_list[0].kms_key_id #=> String
424
+ # resp.stream_info_list[0].version #=> String
425
+ # resp.stream_info_list[0].status #=> String, one of "CREATING", "ACTIVE", "UPDATING", "DELETING"
426
+ # resp.stream_info_list[0].creation_time #=> Time
427
+ # resp.stream_info_list[0].data_retention_in_hours #=> Integer
428
+ # resp.next_token #=> String
429
+ #
430
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListStreams AWS API Documentation
431
+ #
432
+ # @overload list_streams(params = {})
433
+ # @param [Hash] params ({})
434
+ def list_streams(params = {}, options = {})
435
+ req = build_request(:list_streams, params)
436
+ req.send_request(options)
437
+ end
438
+
439
+ # Returns a list of tags associated with the specified stream.
440
+ #
441
+ # In the request, you must specify either the `StreamName` or the
442
+ # `StreamARN`.
443
+ #
444
+ # @option params [String] :next_token
445
+ # If you specify this parameter and the result of a `ListTagsForStream`
446
+ # call is truncated, the response includes a token that you can use in
447
+ # the next request to fetch the next batch of tags.
448
+ #
449
+ # @option params [String] :stream_arn
450
+ # The Amazon Resource Name (ARN) of the stream that you want to list
451
+ # tags for.
452
+ #
453
+ # @option params [String] :stream_name
454
+ # The name of the stream that you want to list tags for.
455
+ #
456
+ # @return [Types::ListTagsForStreamOutput] Returns a {Seahorse::Client::Response response} object which responds to the following methods:
457
+ #
458
+ # * {Types::ListTagsForStreamOutput#next_token #next_token} => String
459
+ # * {Types::ListTagsForStreamOutput#tags #tags} => Hash&lt;String,String&gt;
460
+ #
461
+ # @example Request syntax with placeholder values
462
+ #
463
+ # resp = client.list_tags_for_stream({
464
+ # next_token: "NextToken",
465
+ # stream_arn: "ResourceARN",
466
+ # stream_name: "StreamName",
467
+ # })
468
+ #
469
+ # @example Response structure
470
+ #
471
+ # resp.next_token #=> String
472
+ # resp.tags #=> Hash
473
+ # resp.tags["TagKey"] #=> String
474
+ #
475
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/ListTagsForStream AWS API Documentation
476
+ #
477
+ # @overload list_tags_for_stream(params = {})
478
+ # @param [Hash] params ({})
479
+ def list_tags_for_stream(params = {}, options = {})
480
+ req = build_request(:list_tags_for_stream, params)
481
+ req.send_request(options)
482
+ end
483
+
484
+ # Adds one or more tags to a stream. A *tag* is a key-value pair (the
485
+ # value is optional) that you can define and assign to AWS resources. If
486
+ # you specify a tag that already exists, the tag value is replaced with
487
+ # the value that you specify in the request. For more information, see
488
+ # [Using Cost Allocation Tags][1] in the *AWS Billing and Cost
489
+ # Management User Guide*.
490
+ #
491
+ # You must provide either the `StreamName` or the `StreamARN`.
492
+ #
493
+ # This operation requires permission for the `KinesisVideo:TagStream`
494
+ # action.
495
+ #
496
+ # Kinesis video streams support up to 50 tags.
497
+ #
498
+ #
499
+ #
500
+ # [1]: http://docs.aws.amazon.com/awsaccountbilling/latest/aboutv2/cost-alloc-tags.html
501
+ #
502
+ # @option params [String] :stream_arn
503
+ # The Amazon Resource Name (ARN) of the resource that you want to add
504
+ # the tag or tags to.
505
+ #
506
+ # @option params [String] :stream_name
507
+ # The name of the stream that you want to add the tag or tags to.
508
+ #
509
+ # @option params [required, Hash<String,String>] :tags
510
+ # A list of tags to associate with the specified stream. Each tag is a
511
+ # key-value pair (the value is optional).
512
+ #
513
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
514
+ #
515
+ # @example Request syntax with placeholder values
516
+ #
517
+ # resp = client.tag_stream({
518
+ # stream_arn: "ResourceARN",
519
+ # stream_name: "StreamName",
520
+ # tags: { # required
521
+ # "TagKey" => "TagValue",
522
+ # },
523
+ # })
524
+ #
525
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/TagStream AWS API Documentation
526
+ #
527
+ # @overload tag_stream(params = {})
528
+ # @param [Hash] params ({})
529
+ def tag_stream(params = {}, options = {})
530
+ req = build_request(:tag_stream, params)
531
+ req.send_request(options)
532
+ end
533
+
534
+ # Removes one or more tags from a stream. In the request, specify only a
535
+ # tag key or keys; don't specify the value. If you specify a tag key
536
+ # that does not exist, it's ignored.
537
+ #
538
+ # In the request, you must provide the `StreamName` or `StreamARN`.
539
+ #
540
+ # @option params [String] :stream_arn
541
+ # The Amazon Resource Name (ARN) of the stream that you want to remove
542
+ # tags from.
543
+ #
544
+ # @option params [String] :stream_name
545
+ # The name of the stream that you want to remove tags from.
546
+ #
547
+ # @option params [required, Array<String>] :tag_key_list
548
+ # A list of the keys of the tags that you want to remove.
549
+ #
550
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
551
+ #
552
+ # @example Request syntax with placeholder values
553
+ #
554
+ # resp = client.untag_stream({
555
+ # stream_arn: "ResourceARN",
556
+ # stream_name: "StreamName",
557
+ # tag_key_list: ["TagKey"], # required
558
+ # })
559
+ #
560
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UntagStream AWS API Documentation
561
+ #
562
+ # @overload untag_stream(params = {})
563
+ # @param [Hash] params ({})
564
+ def untag_stream(params = {}, options = {})
565
+ req = build_request(:untag_stream, params)
566
+ req.send_request(options)
567
+ end
568
+
569
+ # Increases or decreases the stream's data retention period by the
570
+ # value that you specify. To indicate whether you want to increase or
571
+ # decrease the data retention period, specify the `Operation` parameter
572
+ # in the request body. In the request, you must specify either the
573
+ # `StreamName` or the `StreamARN`.
574
+ #
575
+ # <note markdown="1"> The retention period that you specify replaces the current value.
576
+ #
577
+ # </note>
578
+ #
579
+ # This operation requires permission for the
580
+ # `KinesisVideo:UpdateDataRetention` action.
581
+ #
582
+ # Changing the data retention period affects the data in the stream as
583
+ # follows:
584
+ #
585
+ # * If the data retention period is increased, existing data is retained
586
+ # for the new retention period. For example, if the data retention
587
+ # period is increased from one hour to seven hours, all existing data
588
+ # is retained for seven hours.
589
+ #
590
+ # * If the data retention period is decreased, existing data is retained
591
+ # for the new retention period. For example, if the data retention
592
+ # period is decreased from seven hours to one hour, all existing data
593
+ # is retained for one hour, and any data older than one hour is
594
+ # deleted immediately.
595
+ #
596
+ # @option params [String] :stream_name
597
+ # The name of the stream whose retention period you want to change.
598
+ #
599
+ # @option params [String] :stream_arn
600
+ # The Amazon Resource Name (ARN) of the stream whose retention period
601
+ # you want to change.
602
+ #
603
+ # @option params [required, String] :current_version
604
+ # The version of the stream whose retention period you want to change.
605
+ # To get the version, call either the `DescribeStream` or the
606
+ # `ListStreams` API.
607
+ #
608
+ # @option params [required, String] :operation
609
+ # Indicates whether you want to increase or decrease the retention
610
+ # period.
611
+ #
612
+ # @option params [required, Integer] :data_retention_change_in_hours
613
+ # The retention period, in hours. The value you specify replaces the
614
+ # current value.
615
+ #
616
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
617
+ #
618
+ # @example Request syntax with placeholder values
619
+ #
620
+ # resp = client.update_data_retention({
621
+ # stream_name: "StreamName",
622
+ # stream_arn: "ResourceARN",
623
+ # current_version: "Version", # required
624
+ # operation: "INCREASE_DATA_RETENTION", # required, accepts INCREASE_DATA_RETENTION, DECREASE_DATA_RETENTION
625
+ # data_retention_change_in_hours: 1, # required
626
+ # })
627
+ #
628
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UpdateDataRetention AWS API Documentation
629
+ #
630
+ # @overload update_data_retention(params = {})
631
+ # @param [Hash] params ({})
632
+ def update_data_retention(params = {}, options = {})
633
+ req = build_request(:update_data_retention, params)
634
+ req.send_request(options)
635
+ end
636
+
637
+ # Updates stream metadata, such as the device name and media type.
638
+ #
639
+ # You must provide the stream name or the Amazon Resource Name (ARN) of
640
+ # the stream.
641
+ #
642
+ # To make sure that you have the latest version of the stream before
643
+ # updating it, you can specify the stream version. Kinesis Video Streams
644
+ # assigns a version to each stream. When you update a stream, Kinesis
645
+ # Video Streams assigns a new version number. To get the latest stream
646
+ # version, use the `DescribeStream` API.
647
+ #
648
+ # `UpdateStream` is an asynchronous operation, and takes time to
649
+ # complete.
650
+ #
651
+ # @option params [String] :stream_name
652
+ # The name of the stream whose metadata you want to update.
653
+ #
654
+ # The stream name is an identifier for the stream, and must be unique
655
+ # for each account and region.
656
+ #
657
+ # @option params [String] :stream_arn
658
+ # The ARN of the stream whose metadata you want to update.
659
+ #
660
+ # @option params [required, String] :current_version
661
+ # The version of the stream whose metadata you want to update.
662
+ #
663
+ # @option params [String] :device_name
664
+ # The name of the device that is writing to the stream.
665
+ #
666
+ # <note markdown="1"> In the current implementation, Kinesis Video Streams does not use this
667
+ # name.
668
+ #
669
+ # </note>
670
+ #
671
+ # @option params [String] :media_type
672
+ # The stream's media type. Use `MediaType` to specify the type of
673
+ # content that the stream contains to the consumers of the stream. For
674
+ # more information about media types, see [Media Types][1]. If you
675
+ # choose to specify the `MediaType`, see [Naming Requirements][2].
676
+ #
677
+ # To play video on the console, you must specify the correct video type.
678
+ # For example, if the video in the stream is H.264, specify `video/h264`
679
+ # as the `MediaType`.
680
+ #
681
+ #
682
+ #
683
+ # [1]: http://www.iana.org/assignments/media-types/media-types.xhtml
684
+ # [2]: https://tools.sietf.org/html/rfc6838#section-4.2
685
+ #
686
+ # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
687
+ #
688
+ # @example Request syntax with placeholder values
689
+ #
690
+ # resp = client.update_stream({
691
+ # stream_name: "StreamName",
692
+ # stream_arn: "ResourceARN",
693
+ # current_version: "Version", # required
694
+ # device_name: "DeviceName",
695
+ # media_type: "MediaType",
696
+ # })
697
+ #
698
+ # @see http://docs.aws.amazon.com/goto/WebAPI/kinesisvideo-2017-09-30/UpdateStream AWS API Documentation
699
+ #
700
+ # @overload update_stream(params = {})
701
+ # @param [Hash] params ({})
702
+ def update_stream(params = {}, options = {})
703
+ req = build_request(:update_stream, params)
704
+ req.send_request(options)
705
+ end
706
+
707
+ # @!endgroup
708
+
709
+ # @param params ({})
710
+ # @api private
711
+ def build_request(operation_name, params = {})
712
+ handlers = @handlers.for(operation_name)
713
+ context = Seahorse::Client::RequestContext.new(
714
+ operation_name: operation_name,
715
+ operation: config.api.operation(operation_name),
716
+ client: self,
717
+ params: params,
718
+ config: config)
719
+ context[:gem_name] = 'aws-sdk-kinesisvideo'
720
+ context[:gem_version] = '1.0.0'
721
+ Seahorse::Client::Request.new(handlers, context)
722
+ end
723
+
724
+ # @api private
725
+ # @deprecated
726
+ def waiter_names
727
+ []
728
+ end
729
+
730
+ class << self
731
+
732
+ # @api private
733
+ attr_reader :identifier
734
+
735
+ # @api private
736
+ def errors_module
737
+ Errors
738
+ end
739
+
740
+ end
741
+ end
742
+ end