aws-sdk-firehose 1.23.0 → 1.24.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
2
  SHA1:
3
- metadata.gz: b93c8ef6587ad17d0422c4b02a0a6892390444ad
4
- data.tar.gz: 57b5878899010b16d8b8fbff6b30e9b461d4e68c
3
+ metadata.gz: 1ce4d2633d82f381e0e50865cc188f7ad3ddb385
4
+ data.tar.gz: 99e97f5764c7efe3e2986af5b25f644432168a1e
5
5
  SHA512:
6
- metadata.gz: e8d831801e5ea5ede0bc3b4620b91db80664b90b1d35847b1a1d8c5284ccb2da328fbce5d12bea34ef17e4f9b410baa2af110d689c4f2f23fb37e1838d574e62
7
- data.tar.gz: e519f1e609b0a74c6cf74e6da8e5da222ea9e4f4b1be61d2af91d888db71023421deb833cc90cf7b82b60e5789771974027213bb07d7f003da424b759f4964f0
6
+ metadata.gz: c63ff9b66687b3fd6e9ecd9cd3c2ea8c29dcc73caec18ef89cf648c29c0e1cf7e6a7d5770c3e883aed7e3ac2188bd72db041e77301ab47e80d8b703c5d839682
7
+ data.tar.gz: 001f15af1a8aa9a1f848dc28602b25b5d8424c015de362b6cc5503a27ee7117886f44cc55fa21ee491be7b20026f9416dc8fe345062b323e1043e69620e571cd
@@ -42,6 +42,6 @@ require_relative 'aws-sdk-firehose/customizations'
42
42
  # @service
43
43
  module Aws::Firehose
44
44
 
45
- GEM_VERSION = '1.23.0'
45
+ GEM_VERSION = '1.24.0'
46
46
 
47
47
  end
@@ -271,9 +271,15 @@ module Aws::Firehose
271
271
  # This is an asynchronous operation that immediately returns. The
272
272
  # initial status of the delivery stream is `CREATING`. After the
273
273
  # delivery stream is created, its status is `ACTIVE` and it now accepts
274
- # data. Attempts to send data to a delivery stream that is not in the
275
- # `ACTIVE` state cause an exception. To check the state of a delivery
276
- # stream, use DescribeDeliveryStream.
274
+ # data. If the delivery stream creation fails, the status transitions to
275
+ # `CREATING_FAILED`. Attempts to send data to a delivery stream that is
276
+ # not in the `ACTIVE` state cause an exception. To check the state of a
277
+ # delivery stream, use DescribeDeliveryStream.
278
+ #
279
+ # If the status of a delivery stream is `CREATING_FAILED`, this status
280
+ # doesn't change, and you can't invoke `CreateDeliveryStream` again on
281
+ # it. However, you can invoke the DeleteDeliveryStream operation to
282
+ # delete it.
277
283
  #
278
284
  # A Kinesis Data Firehose delivery stream can be configured to receive
279
285
  # records directly from providers using PutRecord or PutRecordBatch, or
@@ -283,6 +289,12 @@ module Aws::Firehose
283
289
  # the Kinesis stream Amazon Resource Name (ARN) and role ARN in the
284
290
  # `KinesisStreamSourceConfiguration` parameter.
285
291
  #
292
+ # To create a delivery stream with server-side encryption (SSE) enabled,
293
+ # include DeliveryStreamEncryptionConfigurationInput in your request.
294
+ # This is optional. You can also invoke StartDeliveryStreamEncryption to
295
+ # turn on SSE for an existing delivery stream that doesn't have SSE
296
+ # enabled.
297
+ #
286
298
  # A delivery stream is configured with a single destination: Amazon S3,
287
299
  # Amazon ES, Amazon Redshift, or Splunk. You must specify only one of
288
300
  # the following destination configuration parameters:
@@ -354,6 +366,10 @@ module Aws::Firehose
354
366
  # stream Amazon Resource Name (ARN) and the role ARN for the source
355
367
  # stream.
356
368
  #
369
+ # @option params [Types::DeliveryStreamEncryptionConfigurationInput] :delivery_stream_encryption_configuration_input
370
+ # Used to specify the type and Amazon Resource Name (ARN) of the KMS key
371
+ # needed for Server-Side Encryption (SSE).
372
+ #
357
373
  # @option params [Types::S3DestinationConfiguration] :s3_destination_configuration
358
374
  # \[Deprecated\] The destination in Amazon S3. You can specify only one
359
375
  # destination.
@@ -398,6 +414,10 @@ module Aws::Firehose
398
414
  # kinesis_stream_arn: "KinesisStreamARN", # required
399
415
  # role_arn: "RoleARN", # required
400
416
  # },
417
+ # delivery_stream_encryption_configuration_input: {
418
+ # key_arn: "AWSKMSKeyARN",
419
+ # key_type: "AWS_OWNED_CMK", # required, accepts AWS_OWNED_CMK, CUSTOMER_MANAGED_CMK
420
+ # },
401
421
  # s3_destination_configuration: {
402
422
  # role_arn: "RoleARN", # required
403
423
  # bucket_arn: "BucketARN", # required
@@ -737,27 +757,45 @@ module Aws::Firehose
737
757
 
738
758
  # Deletes a delivery stream and its data.
739
759
  #
740
- # You can delete a delivery stream only if it is in `ACTIVE` or
741
- # `DELETING` state, and not in the `CREATING` state. While the deletion
742
- # request is in process, the delivery stream is in the `DELETING` state.
743
- #
744
760
  # To check the state of a delivery stream, use DescribeDeliveryStream.
745
- #
746
- # While the delivery stream is `DELETING` state, the service might
747
- # continue to accept the records, but it doesn't make any guarantees
761
+ # You can delete a delivery stream only if it is in one of the following
762
+ # states: `ACTIVE`, `DELETING`, `CREATING_FAILED`, or `DELETING_FAILED`.
763
+ # You can't delete a delivery stream that is in the `CREATING` state.
764
+ # While the deletion request is in process, the delivery stream is in
765
+ # the `DELETING` state.
766
+ #
767
+ # While the delivery stream is in the `DELETING` state, the service
768
+ # might continue to accept records, but it doesn't make any guarantees
748
769
  # with respect to delivering the data. Therefore, as a best practice,
749
- # you should first stop any applications that are sending records before
750
- # deleting a delivery stream.
770
+ # first stop any applications that are sending records before you delete
771
+ # a delivery stream.
751
772
  #
752
773
  # @option params [required, String] :delivery_stream_name
753
774
  # The name of the delivery stream.
754
775
  #
776
+ # @option params [Boolean] :allow_force_delete
777
+ # Set this to true if you want to delete the delivery stream even if
778
+ # Kinesis Data Firehose is unable to retire the grant for the CMK.
779
+ # Kinesis Data Firehose might be unable to retire the grant due to a
780
+ # customer error, such as when the CMK or the grant are in an invalid
781
+ # state. If you force deletion, you can then use the [RevokeGrant][1]
782
+ # operation to revoke the grant you gave to Kinesis Data Firehose. If a
783
+ # failure to retire the grant happens due to an AWS KMS issue, Kinesis
784
+ # Data Firehose keeps retrying the delete operation.
785
+ #
786
+ # The default value is false.
787
+ #
788
+ #
789
+ #
790
+ # [1]: https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html
791
+ #
755
792
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
756
793
  #
757
794
  # @example Request syntax with placeholder values
758
795
  #
759
796
  # resp = client.delete_delivery_stream({
760
797
  # delivery_stream_name: "DeliveryStreamName", # required
798
+ # allow_force_delete: false,
761
799
  # })
762
800
  #
763
801
  # @see http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DeleteDeliveryStream AWS API Documentation
@@ -769,10 +807,17 @@ module Aws::Firehose
769
807
  req.send_request(options)
770
808
  end
771
809
 
772
- # Describes the specified delivery stream and gets the status. For
773
- # example, after your delivery stream is created, call
774
- # `DescribeDeliveryStream` to see whether the delivery stream is
775
- # `ACTIVE` and therefore ready for data to be sent to it.
810
+ # Describes the specified delivery stream and its status. For example,
811
+ # after your delivery stream is created, call `DescribeDeliveryStream`
812
+ # to see whether the delivery stream is `ACTIVE` and therefore ready for
813
+ # data to be sent to it.
814
+ #
815
+ # If the status of a delivery stream is `CREATING_FAILED`, this status
816
+ # doesn't change, and you can't invoke CreateDeliveryStream again on
817
+ # it. However, you can invoke the DeleteDeliveryStream operation to
818
+ # delete it. If the status is `DELETING_FAILED`, you can force deletion
819
+ # by invoking DeleteDeliveryStream again but with
820
+ # DeleteDeliveryStreamInput$AllowForceDelete set to true.
776
821
  #
777
822
  # @option params [required, String] :delivery_stream_name
778
823
  # The name of the delivery stream.
@@ -802,8 +847,14 @@ module Aws::Firehose
802
847
  #
803
848
  # resp.delivery_stream_description.delivery_stream_name #=> String
804
849
  # resp.delivery_stream_description.delivery_stream_arn #=> String
805
- # resp.delivery_stream_description.delivery_stream_status #=> String, one of "CREATING", "DELETING", "ACTIVE"
806
- # resp.delivery_stream_description.delivery_stream_encryption_configuration.status #=> String, one of "ENABLED", "ENABLING", "DISABLED", "DISABLING"
850
+ # resp.delivery_stream_description.delivery_stream_status #=> String, one of "CREATING", "CREATING_FAILED", "DELETING", "DELETING_FAILED", "ACTIVE"
851
+ # resp.delivery_stream_description.failure_description.type #=> String, one of "RETIRE_KMS_GRANT_FAILED", "CREATE_KMS_GRANT_FAILED", "KMS_ACCESS_DENIED", "DISABLED_KMS_KEY", "INVALID_KMS_KEY", "KMS_KEY_NOT_FOUND", "KMS_OPT_IN_REQUIRED", "UNKNOWN_ERROR"
852
+ # resp.delivery_stream_description.failure_description.details #=> String
853
+ # resp.delivery_stream_description.delivery_stream_encryption_configuration.key_arn #=> String
854
+ # resp.delivery_stream_description.delivery_stream_encryption_configuration.key_type #=> String, one of "AWS_OWNED_CMK", "CUSTOMER_MANAGED_CMK"
855
+ # resp.delivery_stream_description.delivery_stream_encryption_configuration.status #=> String, one of "ENABLED", "ENABLING", "ENABLING_FAILED", "DISABLED", "DISABLING", "DISABLING_FAILED"
856
+ # resp.delivery_stream_description.delivery_stream_encryption_configuration.failure_description.type #=> String, one of "RETIRE_KMS_GRANT_FAILED", "CREATE_KMS_GRANT_FAILED", "KMS_ACCESS_DENIED", "DISABLED_KMS_KEY", "INVALID_KMS_KEY", "KMS_KEY_NOT_FOUND", "KMS_OPT_IN_REQUIRED", "UNKNOWN_ERROR"
857
+ # resp.delivery_stream_description.delivery_stream_encryption_configuration.failure_description.details #=> String
807
858
  # resp.delivery_stream_description.delivery_stream_type #=> String, one of "DirectPut", "KinesisStreamAsSource"
808
859
  # resp.delivery_stream_description.version_id #=> String
809
860
  # resp.delivery_stream_description.create_timestamp #=> Time
@@ -1302,19 +1353,38 @@ module Aws::Firehose
1302
1353
  # Enables server-side encryption (SSE) for the delivery stream.
1303
1354
  #
1304
1355
  # This operation is asynchronous. It returns immediately. When you
1305
- # invoke it, Kinesis Data Firehose first sets the status of the stream
1306
- # to `ENABLING`, and then to `ENABLED`. You can continue to read and
1307
- # write data to your stream while its status is `ENABLING`, but the data
1308
- # is not encrypted. It can take up to 5 seconds after the encryption
1309
- # status changes to `ENABLED` before all records written to the delivery
1310
- # stream are encrypted. To find out whether a record or a batch of
1311
- # records was encrypted, check the response elements
1312
- # PutRecordOutput$Encrypted and PutRecordBatchOutput$Encrypted,
1313
- # respectively.
1314
- #
1315
- # To check the encryption state of a delivery stream, use
1356
+ # invoke it, Kinesis Data Firehose first sets the encryption status of
1357
+ # the stream to `ENABLING`, and then to `ENABLED`. The encryption status
1358
+ # of a delivery stream is the `Status` property in
1359
+ # DeliveryStreamEncryptionConfiguration. If the operation fails, the
1360
+ # encryption status changes to `ENABLING_FAILED`. You can continue to
1361
+ # read and write data to your delivery stream while the encryption
1362
+ # status is `ENABLING`, but the data is not encrypted. It can take up to
1363
+ # 5 seconds after the encryption status changes to `ENABLED` before all
1364
+ # records written to the delivery stream are encrypted. To find out
1365
+ # whether a record or a batch of records was encrypted, check the
1366
+ # response elements PutRecordOutput$Encrypted and
1367
+ # PutRecordBatchOutput$Encrypted, respectively.
1368
+ #
1369
+ # To check the encryption status of a delivery stream, use
1316
1370
  # DescribeDeliveryStream.
1317
1371
  #
1372
+ # Even if encryption is currently enabled for a delivery stream, you can
1373
+ # still invoke this operation on it to change the ARN of the CMK or both
1374
+ # its type and ARN. In this case, Kinesis Data Firehose schedules the
1375
+ # grant it had on the old CMK for retirement and creates a grant that
1376
+ # enables it to use the new CMK to encrypt and decrypt data and to
1377
+ # manage the grant.
1378
+ #
1379
+ # If a delivery stream already has encryption enabled and then you
1380
+ # invoke this operation to change the ARN of the CMK or both its type
1381
+ # and ARN and you get `ENABLING_FAILED`, this only means that the
1382
+ # attempt to change the CMK failed. In this case, encryption remains
1383
+ # enabled with the old CMK.
1384
+ #
1385
+ # If the encryption status of your delivery stream is `ENABLING_FAILED`,
1386
+ # you can invoke this operation again.
1387
+ #
1318
1388
  # You can only enable SSE for a delivery stream that uses `DirectPut` as
1319
1389
  # its source.
1320
1390
  #
@@ -1329,12 +1399,20 @@ module Aws::Firehose
1329
1399
  # The name of the delivery stream for which you want to enable
1330
1400
  # server-side encryption (SSE).
1331
1401
  #
1402
+ # @option params [Types::DeliveryStreamEncryptionConfigurationInput] :delivery_stream_encryption_configuration_input
1403
+ # Used to specify the type and Amazon Resource Name (ARN) of the KMS key
1404
+ # needed for Server-Side Encryption (SSE).
1405
+ #
1332
1406
  # @return [Struct] Returns an empty {Seahorse::Client::Response response}.
1333
1407
  #
1334
1408
  # @example Request syntax with placeholder values
1335
1409
  #
1336
1410
  # resp = client.start_delivery_stream_encryption({
1337
1411
  # delivery_stream_name: "DeliveryStreamName", # required
1412
+ # delivery_stream_encryption_configuration_input: {
1413
+ # key_arn: "AWSKMSKeyARN",
1414
+ # key_type: "AWS_OWNED_CMK", # required, accepts AWS_OWNED_CMK, CUSTOMER_MANAGED_CMK
1415
+ # },
1338
1416
  # })
1339
1417
  #
1340
1418
  # @see http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/StartDeliveryStreamEncryption AWS API Documentation
@@ -1349,19 +1427,24 @@ module Aws::Firehose
1349
1427
  # Disables server-side encryption (SSE) for the delivery stream.
1350
1428
  #
1351
1429
  # This operation is asynchronous. It returns immediately. When you
1352
- # invoke it, Kinesis Data Firehose first sets the status of the stream
1353
- # to `DISABLING`, and then to `DISABLED`. You can continue to read and
1354
- # write data to your stream while its status is `DISABLING`. It can take
1355
- # up to 5 seconds after the encryption status changes to `DISABLED`
1356
- # before all records written to the delivery stream are no longer
1357
- # subject to encryption. To find out whether a record or a batch of
1358
- # records was encrypted, check the response elements
1430
+ # invoke it, Kinesis Data Firehose first sets the encryption status of
1431
+ # the stream to `DISABLING`, and then to `DISABLED`. You can continue to
1432
+ # read and write data to your stream while its status is `DISABLING`. It
1433
+ # can take up to 5 seconds after the encryption status changes to
1434
+ # `DISABLED` before all records written to the delivery stream are no
1435
+ # longer subject to encryption. To find out whether a record or a batch
1436
+ # of records was encrypted, check the response elements
1359
1437
  # PutRecordOutput$Encrypted and PutRecordBatchOutput$Encrypted,
1360
1438
  # respectively.
1361
1439
  #
1362
1440
  # To check the encryption state of a delivery stream, use
1363
1441
  # DescribeDeliveryStream.
1364
1442
  #
1443
+ # If SSE is enabled using a customer managed CMK and then you invoke
1444
+ # `StopDeliveryStreamEncryption`, Kinesis Data Firehose schedules the
1445
+ # related KMS grant for retirement and then retires it after it ensures
1446
+ # that it is finished delivering records to the destination.
1447
+ #
1365
1448
  # The `StartDeliveryStreamEncryption` and `StopDeliveryStreamEncryption`
1366
1449
  # operations have a combined limit of 25 calls per delivery stream per
1367
1450
  # 24 hours. For example, you reach the limit if you call
@@ -1884,7 +1967,7 @@ module Aws::Firehose
1884
1967
  params: params,
1885
1968
  config: config)
1886
1969
  context[:gem_name] = 'aws-sdk-firehose'
1887
- context[:gem_version] = '1.23.0'
1970
+ context[:gem_version] = '1.24.0'
1888
1971
  Seahorse::Client::Request.new(handlers, context)
1889
1972
  end
1890
1973
 
@@ -35,7 +35,9 @@ module Aws::Firehose
35
35
  DeliveryStreamARN = Shapes::StringShape.new(name: 'DeliveryStreamARN')
36
36
  DeliveryStreamDescription = Shapes::StructureShape.new(name: 'DeliveryStreamDescription')
37
37
  DeliveryStreamEncryptionConfiguration = Shapes::StructureShape.new(name: 'DeliveryStreamEncryptionConfiguration')
38
+ DeliveryStreamEncryptionConfigurationInput = Shapes::StructureShape.new(name: 'DeliveryStreamEncryptionConfigurationInput')
38
39
  DeliveryStreamEncryptionStatus = Shapes::StringShape.new(name: 'DeliveryStreamEncryptionStatus')
40
+ DeliveryStreamFailureType = Shapes::StringShape.new(name: 'DeliveryStreamFailureType')
39
41
  DeliveryStreamName = Shapes::StringShape.new(name: 'DeliveryStreamName')
40
42
  DeliveryStreamNameList = Shapes::ListShape.new(name: 'DeliveryStreamNameList')
41
43
  DeliveryStreamStatus = Shapes::StringShape.new(name: 'DeliveryStreamStatus')
@@ -69,6 +71,7 @@ module Aws::Firehose
69
71
  ExtendedS3DestinationConfiguration = Shapes::StructureShape.new(name: 'ExtendedS3DestinationConfiguration')
70
72
  ExtendedS3DestinationDescription = Shapes::StructureShape.new(name: 'ExtendedS3DestinationDescription')
71
73
  ExtendedS3DestinationUpdate = Shapes::StructureShape.new(name: 'ExtendedS3DestinationUpdate')
74
+ FailureDescription = Shapes::StructureShape.new(name: 'FailureDescription')
72
75
  HECAcknowledgmentTimeoutInSeconds = Shapes::IntegerShape.new(name: 'HECAcknowledgmentTimeoutInSeconds')
73
76
  HECEndpoint = Shapes::StringShape.new(name: 'HECEndpoint')
74
77
  HECEndpointType = Shapes::StringShape.new(name: 'HECEndpointType')
@@ -77,7 +80,9 @@ module Aws::Firehose
77
80
  InputFormatConfiguration = Shapes::StructureShape.new(name: 'InputFormatConfiguration')
78
81
  IntervalInSeconds = Shapes::IntegerShape.new(name: 'IntervalInSeconds')
79
82
  InvalidArgumentException = Shapes::StructureShape.new(name: 'InvalidArgumentException')
83
+ InvalidKMSResourceException = Shapes::StructureShape.new(name: 'InvalidKMSResourceException')
80
84
  KMSEncryptionConfig = Shapes::StructureShape.new(name: 'KMSEncryptionConfig')
85
+ KeyType = Shapes::StringShape.new(name: 'KeyType')
81
86
  KinesisStreamARN = Shapes::StringShape.new(name: 'KinesisStreamARN')
82
87
  KinesisStreamSourceConfiguration = Shapes::StructureShape.new(name: 'KinesisStreamSourceConfiguration')
83
88
  KinesisStreamSourceDescription = Shapes::StructureShape.new(name: 'KinesisStreamSourceDescription')
@@ -193,6 +198,7 @@ module Aws::Firehose
193
198
  CreateDeliveryStreamInput.add_member(:delivery_stream_name, Shapes::ShapeRef.new(shape: DeliveryStreamName, required: true, location_name: "DeliveryStreamName"))
194
199
  CreateDeliveryStreamInput.add_member(:delivery_stream_type, Shapes::ShapeRef.new(shape: DeliveryStreamType, location_name: "DeliveryStreamType"))
195
200
  CreateDeliveryStreamInput.add_member(:kinesis_stream_source_configuration, Shapes::ShapeRef.new(shape: KinesisStreamSourceConfiguration, location_name: "KinesisStreamSourceConfiguration"))
201
+ CreateDeliveryStreamInput.add_member(:delivery_stream_encryption_configuration_input, Shapes::ShapeRef.new(shape: DeliveryStreamEncryptionConfigurationInput, location_name: "DeliveryStreamEncryptionConfigurationInput"))
196
202
  CreateDeliveryStreamInput.add_member(:s3_destination_configuration, Shapes::ShapeRef.new(shape: S3DestinationConfiguration, deprecated: true, location_name: "S3DestinationConfiguration"))
197
203
  CreateDeliveryStreamInput.add_member(:extended_s3_destination_configuration, Shapes::ShapeRef.new(shape: ExtendedS3DestinationConfiguration, location_name: "ExtendedS3DestinationConfiguration"))
198
204
  CreateDeliveryStreamInput.add_member(:redshift_destination_configuration, Shapes::ShapeRef.new(shape: RedshiftDestinationConfiguration, location_name: "RedshiftDestinationConfiguration"))
@@ -211,6 +217,7 @@ module Aws::Firehose
211
217
  DataFormatConversionConfiguration.struct_class = Types::DataFormatConversionConfiguration
212
218
 
213
219
  DeleteDeliveryStreamInput.add_member(:delivery_stream_name, Shapes::ShapeRef.new(shape: DeliveryStreamName, required: true, location_name: "DeliveryStreamName"))
220
+ DeleteDeliveryStreamInput.add_member(:allow_force_delete, Shapes::ShapeRef.new(shape: BooleanObject, location_name: "AllowForceDelete"))
214
221
  DeleteDeliveryStreamInput.struct_class = Types::DeleteDeliveryStreamInput
215
222
 
216
223
  DeleteDeliveryStreamOutput.struct_class = Types::DeleteDeliveryStreamOutput
@@ -218,6 +225,7 @@ module Aws::Firehose
218
225
  DeliveryStreamDescription.add_member(:delivery_stream_name, Shapes::ShapeRef.new(shape: DeliveryStreamName, required: true, location_name: "DeliveryStreamName"))
219
226
  DeliveryStreamDescription.add_member(:delivery_stream_arn, Shapes::ShapeRef.new(shape: DeliveryStreamARN, required: true, location_name: "DeliveryStreamARN"))
220
227
  DeliveryStreamDescription.add_member(:delivery_stream_status, Shapes::ShapeRef.new(shape: DeliveryStreamStatus, required: true, location_name: "DeliveryStreamStatus"))
228
+ DeliveryStreamDescription.add_member(:failure_description, Shapes::ShapeRef.new(shape: FailureDescription, location_name: "FailureDescription"))
221
229
  DeliveryStreamDescription.add_member(:delivery_stream_encryption_configuration, Shapes::ShapeRef.new(shape: DeliveryStreamEncryptionConfiguration, location_name: "DeliveryStreamEncryptionConfiguration"))
222
230
  DeliveryStreamDescription.add_member(:delivery_stream_type, Shapes::ShapeRef.new(shape: DeliveryStreamType, required: true, location_name: "DeliveryStreamType"))
223
231
  DeliveryStreamDescription.add_member(:version_id, Shapes::ShapeRef.new(shape: DeliveryStreamVersionId, required: true, location_name: "VersionId"))
@@ -228,9 +236,16 @@ module Aws::Firehose
228
236
  DeliveryStreamDescription.add_member(:has_more_destinations, Shapes::ShapeRef.new(shape: BooleanObject, required: true, location_name: "HasMoreDestinations"))
229
237
  DeliveryStreamDescription.struct_class = Types::DeliveryStreamDescription
230
238
 
239
+ DeliveryStreamEncryptionConfiguration.add_member(:key_arn, Shapes::ShapeRef.new(shape: AWSKMSKeyARN, location_name: "KeyARN"))
240
+ DeliveryStreamEncryptionConfiguration.add_member(:key_type, Shapes::ShapeRef.new(shape: KeyType, location_name: "KeyType"))
231
241
  DeliveryStreamEncryptionConfiguration.add_member(:status, Shapes::ShapeRef.new(shape: DeliveryStreamEncryptionStatus, location_name: "Status"))
242
+ DeliveryStreamEncryptionConfiguration.add_member(:failure_description, Shapes::ShapeRef.new(shape: FailureDescription, location_name: "FailureDescription"))
232
243
  DeliveryStreamEncryptionConfiguration.struct_class = Types::DeliveryStreamEncryptionConfiguration
233
244
 
245
+ DeliveryStreamEncryptionConfigurationInput.add_member(:key_arn, Shapes::ShapeRef.new(shape: AWSKMSKeyARN, location_name: "KeyARN"))
246
+ DeliveryStreamEncryptionConfigurationInput.add_member(:key_type, Shapes::ShapeRef.new(shape: KeyType, required: true, location_name: "KeyType"))
247
+ DeliveryStreamEncryptionConfigurationInput.struct_class = Types::DeliveryStreamEncryptionConfigurationInput
248
+
234
249
  DeliveryStreamNameList.member = Shapes::ShapeRef.new(shape: DeliveryStreamName)
235
250
 
236
251
  DescribeDeliveryStreamInput.add_member(:delivery_stream_name, Shapes::ShapeRef.new(shape: DeliveryStreamName, required: true, location_name: "DeliveryStreamName"))
@@ -349,6 +364,10 @@ module Aws::Firehose
349
364
  ExtendedS3DestinationUpdate.add_member(:data_format_conversion_configuration, Shapes::ShapeRef.new(shape: DataFormatConversionConfiguration, location_name: "DataFormatConversionConfiguration"))
350
365
  ExtendedS3DestinationUpdate.struct_class = Types::ExtendedS3DestinationUpdate
351
366
 
367
+ FailureDescription.add_member(:type, Shapes::ShapeRef.new(shape: DeliveryStreamFailureType, required: true, location_name: "Type"))
368
+ FailureDescription.add_member(:details, Shapes::ShapeRef.new(shape: NonEmptyString, required: true, location_name: "Details"))
369
+ FailureDescription.struct_class = Types::FailureDescription
370
+
352
371
  HiveJsonSerDe.add_member(:timestamp_formats, Shapes::ShapeRef.new(shape: ListOfNonEmptyStrings, location_name: "TimestampFormats"))
353
372
  HiveJsonSerDe.struct_class = Types::HiveJsonSerDe
354
373
 
@@ -358,6 +377,10 @@ module Aws::Firehose
358
377
  InvalidArgumentException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
359
378
  InvalidArgumentException.struct_class = Types::InvalidArgumentException
360
379
 
380
+ InvalidKMSResourceException.add_member(:code, Shapes::ShapeRef.new(shape: ErrorCode, location_name: "code"))
381
+ InvalidKMSResourceException.add_member(:message, Shapes::ShapeRef.new(shape: ErrorMessage, location_name: "message"))
382
+ InvalidKMSResourceException.struct_class = Types::InvalidKMSResourceException
383
+
361
384
  KMSEncryptionConfig.add_member(:awskms_key_arn, Shapes::ShapeRef.new(shape: AWSKMSKeyARN, required: true, location_name: "AWSKMSKeyARN"))
362
385
  KMSEncryptionConfig.struct_class = Types::KMSEncryptionConfig
363
386
 
@@ -602,6 +625,7 @@ module Aws::Firehose
602
625
  SplunkRetryOptions.struct_class = Types::SplunkRetryOptions
603
626
 
604
627
  StartDeliveryStreamEncryptionInput.add_member(:delivery_stream_name, Shapes::ShapeRef.new(shape: DeliveryStreamName, required: true, location_name: "DeliveryStreamName"))
628
+ StartDeliveryStreamEncryptionInput.add_member(:delivery_stream_encryption_configuration_input, Shapes::ShapeRef.new(shape: DeliveryStreamEncryptionConfigurationInput, location_name: "DeliveryStreamEncryptionConfigurationInput"))
605
629
  StartDeliveryStreamEncryptionInput.struct_class = Types::StartDeliveryStreamEncryptionInput
606
630
 
607
631
  StartDeliveryStreamEncryptionOutput.struct_class = Types::StartDeliveryStreamEncryptionOutput
@@ -671,6 +695,7 @@ module Aws::Firehose
671
695
  o.errors << Shapes::ShapeRef.new(shape: InvalidArgumentException)
672
696
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
673
697
  o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
698
+ o.errors << Shapes::ShapeRef.new(shape: InvalidKMSResourceException)
674
699
  end)
675
700
 
676
701
  api.add_operation(:delete_delivery_stream, Seahorse::Model::Operation.new.tap do |o|
@@ -719,6 +744,7 @@ module Aws::Firehose
719
744
  o.output = Shapes::ShapeRef.new(shape: PutRecordOutput)
720
745
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
721
746
  o.errors << Shapes::ShapeRef.new(shape: InvalidArgumentException)
747
+ o.errors << Shapes::ShapeRef.new(shape: InvalidKMSResourceException)
722
748
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
723
749
  end)
724
750
 
@@ -730,6 +756,7 @@ module Aws::Firehose
730
756
  o.output = Shapes::ShapeRef.new(shape: PutRecordBatchOutput)
731
757
  o.errors << Shapes::ShapeRef.new(shape: ResourceNotFoundException)
732
758
  o.errors << Shapes::ShapeRef.new(shape: InvalidArgumentException)
759
+ o.errors << Shapes::ShapeRef.new(shape: InvalidKMSResourceException)
733
760
  o.errors << Shapes::ShapeRef.new(shape: ServiceUnavailableException)
734
761
  end)
735
762
 
@@ -743,6 +770,7 @@ module Aws::Firehose
743
770
  o.errors << Shapes::ShapeRef.new(shape: ResourceInUseException)
744
771
  o.errors << Shapes::ShapeRef.new(shape: InvalidArgumentException)
745
772
  o.errors << Shapes::ShapeRef.new(shape: LimitExceededException)
773
+ o.errors << Shapes::ShapeRef.new(shape: InvalidKMSResourceException)
746
774
  end)
747
775
 
748
776
  api.add_operation(:stop_delivery_stream_encryption, Seahorse::Model::Operation.new.tap do |o|
@@ -42,6 +42,27 @@ module Aws::Firehose
42
42
 
43
43
  end
44
44
 
45
+ class InvalidKMSResourceException < ServiceError
46
+
47
+ # @param [Seahorse::Client::RequestContext] context
48
+ # @param [String] message
49
+ # @param [Aws::Firehose::Types::InvalidKMSResourceException] data
50
+ def initialize(context, message, data = Aws::EmptyStructure.new)
51
+ super(context, message, data)
52
+ end
53
+
54
+ # @return [String]
55
+ def code
56
+ @code || @data[:code]
57
+ end
58
+
59
+ # @return [String]
60
+ def message
61
+ @message || @data[:message]
62
+ end
63
+
64
+ end
65
+
45
66
  class LimitExceededException < ServiceError
46
67
 
47
68
  # @param [Seahorse::Client::RequestContext] context
@@ -168,6 +168,10 @@ module Aws::Firehose
168
168
  # kinesis_stream_arn: "KinesisStreamARN", # required
169
169
  # role_arn: "RoleARN", # required
170
170
  # },
171
+ # delivery_stream_encryption_configuration_input: {
172
+ # key_arn: "AWSKMSKeyARN",
173
+ # key_type: "AWS_OWNED_CMK", # required, accepts AWS_OWNED_CMK, CUSTOMER_MANAGED_CMK
174
+ # },
171
175
  # s3_destination_configuration: {
172
176
  # role_arn: "RoleARN", # required
173
177
  # bucket_arn: "BucketARN", # required
@@ -517,6 +521,11 @@ module Aws::Firehose
517
521
  # source stream.
518
522
  # @return [Types::KinesisStreamSourceConfiguration]
519
523
  #
524
+ # @!attribute [rw] delivery_stream_encryption_configuration_input
525
+ # Used to specify the type and Amazon Resource Name (ARN) of the KMS
526
+ # key needed for Server-Side Encryption (SSE).
527
+ # @return [Types::DeliveryStreamEncryptionConfigurationInput]
528
+ #
520
529
  # @!attribute [rw] s3_destination_configuration
521
530
  # \[Deprecated\] The destination in Amazon S3. You can specify only
522
531
  # one destination.
@@ -561,6 +570,7 @@ module Aws::Firehose
561
570
  :delivery_stream_name,
562
571
  :delivery_stream_type,
563
572
  :kinesis_stream_source_configuration,
573
+ :delivery_stream_encryption_configuration_input,
564
574
  :s3_destination_configuration,
565
575
  :extended_s3_destination_configuration,
566
576
  :redshift_destination_configuration,
@@ -681,16 +691,35 @@ module Aws::Firehose
681
691
  #
682
692
  # {
683
693
  # delivery_stream_name: "DeliveryStreamName", # required
694
+ # allow_force_delete: false,
684
695
  # }
685
696
  #
686
697
  # @!attribute [rw] delivery_stream_name
687
698
  # The name of the delivery stream.
688
699
  # @return [String]
689
700
  #
701
+ # @!attribute [rw] allow_force_delete
702
+ # Set this to true if you want to delete the delivery stream even if
703
+ # Kinesis Data Firehose is unable to retire the grant for the CMK.
704
+ # Kinesis Data Firehose might be unable to retire the grant due to a
705
+ # customer error, such as when the CMK or the grant are in an invalid
706
+ # state. If you force deletion, you can then use the [RevokeGrant][1]
707
+ # operation to revoke the grant you gave to Kinesis Data Firehose. If
708
+ # a failure to retire the grant happens due to an AWS KMS issue,
709
+ # Kinesis Data Firehose keeps retrying the delete operation.
710
+ #
711
+ # The default value is false.
712
+ #
713
+ #
714
+ #
715
+ # [1]: https://docs.aws.amazon.com/kms/latest/APIReference/API_RevokeGrant.html
716
+ # @return [Boolean]
717
+ #
690
718
  # @see http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DeleteDeliveryStreamInput AWS API Documentation
691
719
  #
692
720
  class DeleteDeliveryStreamInput < Struct.new(
693
- :delivery_stream_name)
721
+ :delivery_stream_name,
722
+ :allow_force_delete)
694
723
  include Aws::Structure
695
724
  end
696
725
 
@@ -715,9 +744,19 @@ module Aws::Firehose
715
744
  # @return [String]
716
745
  #
717
746
  # @!attribute [rw] delivery_stream_status
718
- # The status of the delivery stream.
747
+ # The status of the delivery stream. If the status of a delivery
748
+ # stream is `CREATING_FAILED`, this status doesn't change, and you
749
+ # can't invoke `CreateDeliveryStream` again on it. However, you can
750
+ # invoke the DeleteDeliveryStream operation to delete it.
719
751
  # @return [String]
720
752
  #
753
+ # @!attribute [rw] failure_description
754
+ # Provides details in case one of the following operations fails due
755
+ # to an error related to KMS: CreateDeliveryStream,
756
+ # DeleteDeliveryStream, StartDeliveryStreamEncryption,
757
+ # StopDeliveryStreamEncryption.
758
+ # @return [Types::FailureDescription]
759
+ #
721
760
  # @!attribute [rw] delivery_stream_encryption_configuration
722
761
  # Indicates the server-side encryption (SSE) status for the delivery
723
762
  # stream.
@@ -767,6 +806,7 @@ module Aws::Firehose
767
806
  :delivery_stream_name,
768
807
  :delivery_stream_arn,
769
808
  :delivery_stream_status,
809
+ :failure_description,
770
810
  :delivery_stream_encryption_configuration,
771
811
  :delivery_stream_type,
772
812
  :version_id,
@@ -778,18 +818,99 @@ module Aws::Firehose
778
818
  include Aws::Structure
779
819
  end
780
820
 
781
- # Indicates the server-side encryption (SSE) status for the delivery
782
- # stream.
821
+ # Contains information about the server-side encryption (SSE) status for
822
+ # the delivery stream, the type customer master key (CMK) in use, if
823
+ # any, and the ARN of the CMK. You can get
824
+ # `DeliveryStreamEncryptionConfiguration` by invoking the
825
+ # DescribeDeliveryStream operation.
826
+ #
827
+ # @!attribute [rw] key_arn
828
+ # If `KeyType` is `CUSTOMER_MANAGED_CMK`, this field contains the ARN
829
+ # of the customer managed CMK. If `KeyType` is `AWS_OWNED_CMK`,
830
+ # `DeliveryStreamEncryptionConfiguration` doesn't contain a value for
831
+ # `KeyARN`.
832
+ # @return [String]
833
+ #
834
+ # @!attribute [rw] key_type
835
+ # Indicates the type of customer master key (CMK) that is used for
836
+ # encryption. The default setting is `AWS_OWNED_CMK`. For more
837
+ # information about CMKs, see [Customer Master Keys (CMKs)][1].
838
+ #
839
+ #
840
+ #
841
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys
842
+ # @return [String]
783
843
  #
784
844
  # @!attribute [rw] status
785
- # For a full description of the different values of this status, see
786
- # StartDeliveryStreamEncryption and StopDeliveryStreamEncryption.
845
+ # This is the server-side encryption (SSE) status for the delivery
846
+ # stream. For a full description of the different values of this
847
+ # status, see StartDeliveryStreamEncryption and
848
+ # StopDeliveryStreamEncryption. If this status is `ENABLING_FAILED` or
849
+ # `DISABLING_FAILED`, it is the status of the most recent attempt to
850
+ # enable or disable SSE, respectively.
787
851
  # @return [String]
788
852
  #
853
+ # @!attribute [rw] failure_description
854
+ # Provides details in case one of the following operations fails due
855
+ # to an error related to KMS: CreateDeliveryStream,
856
+ # DeleteDeliveryStream, StartDeliveryStreamEncryption,
857
+ # StopDeliveryStreamEncryption.
858
+ # @return [Types::FailureDescription]
859
+ #
789
860
  # @see http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DeliveryStreamEncryptionConfiguration AWS API Documentation
790
861
  #
791
862
  class DeliveryStreamEncryptionConfiguration < Struct.new(
792
- :status)
863
+ :key_arn,
864
+ :key_type,
865
+ :status,
866
+ :failure_description)
867
+ include Aws::Structure
868
+ end
869
+
870
+ # Used to specify the type and Amazon Resource Name (ARN) of the CMK
871
+ # needed for Server-Side Encryption (SSE).
872
+ #
873
+ # @note When making an API call, you may pass DeliveryStreamEncryptionConfigurationInput
874
+ # data as a hash:
875
+ #
876
+ # {
877
+ # key_arn: "AWSKMSKeyARN",
878
+ # key_type: "AWS_OWNED_CMK", # required, accepts AWS_OWNED_CMK, CUSTOMER_MANAGED_CMK
879
+ # }
880
+ #
881
+ # @!attribute [rw] key_arn
882
+ # If you set `KeyType` to `CUSTOMER_MANAGED_CMK`, you must specify the
883
+ # Amazon Resource Name (ARN) of the CMK. If you set `KeyType` to
884
+ # `AWS_OWNED_CMK`, Kinesis Data Firehose uses a service-account CMK.
885
+ # @return [String]
886
+ #
887
+ # @!attribute [rw] key_type
888
+ # Indicates the type of customer master key (CMK) to use for
889
+ # encryption. The default setting is `AWS_OWNED_CMK`. For more
890
+ # information about CMKs, see [Customer Master Keys (CMKs)][1]. When
891
+ # you invoke CreateDeliveryStream or StartDeliveryStreamEncryption
892
+ # with `KeyType` set to CUSTOMER\_MANAGED\_CMK, Kinesis Data Firehose
893
+ # invokes the Amazon KMS operation [CreateGrant][2] to create a grant
894
+ # that allows the Kinesis Data Firehose service to use the customer
895
+ # managed CMK to perform encryption and decryption. Kinesis Data
896
+ # Firehose manages that grant.
897
+ #
898
+ # When you invoke StartDeliveryStreamEncryption to change the CMK for
899
+ # a delivery stream that is already encrypted with a customer managed
900
+ # CMK, Kinesis Data Firehose schedules the grant it had on the old CMK
901
+ # for retirement.
902
+ #
903
+ #
904
+ #
905
+ # [1]: https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#master_keys
906
+ # [2]: https://docs.aws.amazon.com/kms/latest/APIReference/API_CreateGrant.html
907
+ # @return [String]
908
+ #
909
+ # @see http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/DeliveryStreamEncryptionConfigurationInput AWS API Documentation
910
+ #
911
+ class DeliveryStreamEncryptionConfigurationInput < Struct.new(
912
+ :key_arn,
913
+ :key_type)
793
914
  include Aws::Structure
794
915
  end
795
916
 
@@ -1953,6 +2074,26 @@ module Aws::Firehose
1953
2074
  include Aws::Structure
1954
2075
  end
1955
2076
 
2077
+ # Provides details in case one of the following operations fails due to
2078
+ # an error related to KMS: CreateDeliveryStream, DeleteDeliveryStream,
2079
+ # StartDeliveryStreamEncryption, StopDeliveryStreamEncryption.
2080
+ #
2081
+ # @!attribute [rw] type
2082
+ # The type of error that caused the failure.
2083
+ # @return [String]
2084
+ #
2085
+ # @!attribute [rw] details
2086
+ # A message providing details about the error that caused the failure.
2087
+ # @return [String]
2088
+ #
2089
+ # @see http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/FailureDescription AWS API Documentation
2090
+ #
2091
+ class FailureDescription < Struct.new(
2092
+ :type,
2093
+ :details)
2094
+ include Aws::Structure
2095
+ end
2096
+
1956
2097
  # The native Hive / HCatalog JsonSerDe. Used by Kinesis Data Firehose
1957
2098
  # for deserializing data, which means converting it from the JSON format
1958
2099
  # in preparation for serializing it to the Parquet or ORC format. This
@@ -2036,6 +2177,26 @@ module Aws::Firehose
2036
2177
  include Aws::Structure
2037
2178
  end
2038
2179
 
2180
+ # Kinesis Data Firehose throws this exception when an attempt to put
2181
+ # records or to start or stop delivery stream encryption fails. This
2182
+ # happens when the KMS service throws one of the following exception
2183
+ # types: `AccessDeniedException`, `InvalidStateException`,
2184
+ # `DisabledException`, or `NotFoundException`.
2185
+ #
2186
+ # @!attribute [rw] code
2187
+ # @return [String]
2188
+ #
2189
+ # @!attribute [rw] message
2190
+ # @return [String]
2191
+ #
2192
+ # @see http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/InvalidKMSResourceException AWS API Documentation
2193
+ #
2194
+ class InvalidKMSResourceException < Struct.new(
2195
+ :code,
2196
+ :message)
2197
+ include Aws::Structure
2198
+ end
2199
+
2039
2200
  # Describes an encryption key for a destination in Amazon S3.
2040
2201
  #
2041
2202
  # @note When making an API call, you may pass KMSEncryptionConfig
@@ -2504,7 +2665,7 @@ module Aws::Firehose
2504
2665
  # The compression code to use over data blocks. The possible values
2505
2666
  # are `UNCOMPRESSED`, `SNAPPY`, and `GZIP`, with the default being
2506
2667
  # `SNAPPY`. Use `SNAPPY` for higher decompression speed. Use `GZIP` if
2507
- # the compression ration is more important than speed.
2668
+ # the compression ratio is more important than speed.
2508
2669
  # @return [String]
2509
2670
  #
2510
2671
  # @!attribute [rw] enable_dictionary_compression
@@ -3989,6 +4150,10 @@ module Aws::Firehose
3989
4150
  #
3990
4151
  # {
3991
4152
  # delivery_stream_name: "DeliveryStreamName", # required
4153
+ # delivery_stream_encryption_configuration_input: {
4154
+ # key_arn: "AWSKMSKeyARN",
4155
+ # key_type: "AWS_OWNED_CMK", # required, accepts AWS_OWNED_CMK, CUSTOMER_MANAGED_CMK
4156
+ # },
3992
4157
  # }
3993
4158
  #
3994
4159
  # @!attribute [rw] delivery_stream_name
@@ -3996,10 +4161,16 @@ module Aws::Firehose
3996
4161
  # server-side encryption (SSE).
3997
4162
  # @return [String]
3998
4163
  #
4164
+ # @!attribute [rw] delivery_stream_encryption_configuration_input
4165
+ # Used to specify the type and Amazon Resource Name (ARN) of the KMS
4166
+ # key needed for Server-Side Encryption (SSE).
4167
+ # @return [Types::DeliveryStreamEncryptionConfigurationInput]
4168
+ #
3999
4169
  # @see http://docs.aws.amazon.com/goto/WebAPI/firehose-2015-08-04/StartDeliveryStreamEncryptionInput AWS API Documentation
4000
4170
  #
4001
4171
  class StartDeliveryStreamEncryptionInput < Struct.new(
4002
- :delivery_stream_name)
4172
+ :delivery_stream_name,
4173
+ :delivery_stream_encryption_configuration_input)
4003
4174
  include Aws::Structure
4004
4175
  end
4005
4176
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: aws-sdk-firehose
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.23.0
4
+ version: 1.24.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Amazon Web Services
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-10-23 00:00:00.000000000 Z
11
+ date: 2019-11-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: aws-sdk-core