aws-cdk-lib 2.160.0__py3-none-any.whl → 2.161.0__py3-none-any.whl

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.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (51) hide show
  1. aws_cdk/__init__.py +21 -14
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.160.0.jsii.tgz → aws-cdk-lib@2.161.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigatewayv2/__init__.py +13 -14
  5. aws_cdk/aws_autoscaling/__init__.py +2 -2
  6. aws_cdk/aws_b2bi/__init__.py +2283 -672
  7. aws_cdk/aws_batch/__init__.py +9 -5
  8. aws_cdk/aws_bedrock/__init__.py +52 -20
  9. aws_cdk/aws_cloudformation/__init__.py +9 -9
  10. aws_cdk/aws_cloudtrail/__init__.py +97 -183
  11. aws_cdk/aws_cloudwatch/__init__.py +38 -42
  12. aws_cdk/aws_datasync/__init__.py +1 -1
  13. aws_cdk/aws_ec2/__init__.py +114 -8
  14. aws_cdk/aws_ecs/__init__.py +513 -2
  15. aws_cdk/aws_eks/__init__.py +118 -2
  16. aws_cdk/aws_elasticloadbalancingv2/__init__.py +5 -3
  17. aws_cdk/aws_glue/__init__.py +386 -0
  18. aws_cdk/aws_iotfleetwise/__init__.py +49 -49
  19. aws_cdk/aws_iottwinmaker/__init__.py +4 -4
  20. aws_cdk/aws_iotwireless/__init__.py +2 -1
  21. aws_cdk/aws_kinesisfirehose/__init__.py +52 -76
  22. aws_cdk/aws_lambda/__init__.py +383 -244
  23. aws_cdk/aws_logs/__init__.py +431 -3
  24. aws_cdk/aws_mediaconnect/__init__.py +6 -4
  25. aws_cdk/aws_medialive/__init__.py +36 -0
  26. aws_cdk/aws_organizations/__init__.py +4 -3
  27. aws_cdk/aws_pipes/__init__.py +2 -2
  28. aws_cdk/aws_quicksight/__init__.py +1086 -6
  29. aws_cdk/aws_rds/__init__.py +158 -3
  30. aws_cdk/aws_route53resolver/__init__.py +3 -17
  31. aws_cdk/aws_s3/__init__.py +20 -11
  32. aws_cdk/aws_s3_deployment/__init__.py +45 -0
  33. aws_cdk/aws_s3express/__init__.py +314 -4
  34. aws_cdk/aws_sagemaker/__init__.py +44 -4
  35. aws_cdk/aws_secretsmanager/__init__.py +14 -7
  36. aws_cdk/aws_securityhub/__init__.py +16 -14
  37. aws_cdk/aws_ses/__init__.py +52 -18
  38. aws_cdk/aws_sqs/__init__.py +16 -14
  39. aws_cdk/aws_ssm/__init__.py +6 -2
  40. aws_cdk/aws_synthetics/__init__.py +46 -0
  41. aws_cdk/aws_waf/__init__.py +33 -22
  42. aws_cdk/aws_wafregional/__init__.py +36 -24
  43. aws_cdk/aws_workspacesweb/__init__.py +54 -3
  44. aws_cdk/cloudformation_include/__init__.py +28 -0
  45. aws_cdk/cx_api/__init__.py +50 -0
  46. {aws_cdk_lib-2.160.0.dist-info → aws_cdk_lib-2.161.0.dist-info}/METADATA +1 -1
  47. {aws_cdk_lib-2.160.0.dist-info → aws_cdk_lib-2.161.0.dist-info}/RECORD +51 -51
  48. {aws_cdk_lib-2.160.0.dist-info → aws_cdk_lib-2.161.0.dist-info}/LICENSE +0 -0
  49. {aws_cdk_lib-2.160.0.dist-info → aws_cdk_lib-2.161.0.dist-info}/NOTICE +0 -0
  50. {aws_cdk_lib-2.160.0.dist-info → aws_cdk_lib-2.161.0.dist-info}/WHEEL +0 -0
  51. {aws_cdk_lib-2.160.0.dist-info → aws_cdk_lib-2.161.0.dist-info}/top_level.txt +0 -0
@@ -478,6 +478,27 @@ cdk.CfnOutput(self, "ObjectKey",
478
478
  )
479
479
  ```
480
480
 
481
+ ## Controlling the Output of Source Object Keys
482
+
483
+ By default, the keys of the source objects copied to the destination bucket are returned in the Data property of the custom resource. However, you can disable this behavior by setting the outputObjectKeys property to false. This is particularly useful when the number of objects is too large and might exceed the size limit of the responseData property.
484
+
485
+ ```python
486
+ import aws_cdk as cdk
487
+
488
+ # destination_bucket: s3.Bucket
489
+
490
+
491
+ my_bucket_deployment = s3deploy.BucketDeployment(self, "DeployMeWithoutExtractingFilesOnDestination",
492
+ sources=[s3deploy.Source.asset(path.join(__dirname, "my-website"))],
493
+ destination_bucket=destination_bucket,
494
+ output_object_keys=False
495
+ )
496
+
497
+ cdk.CfnOutput(self, "ObjectKey",
498
+ value=cdk.Fn.select(0, my_bucket_deployment.object_keys)
499
+ )
500
+ ```
501
+
481
502
  ## Notes
482
503
 
483
504
  * This library uses an AWS CloudFormation custom resource which is about 10MiB in
@@ -619,6 +640,7 @@ class BucketDeployment(
619
640
  log_retention: typing.Optional[_RetentionDays_070f99f0] = None,
620
641
  memory_limit: typing.Optional[jsii.Number] = None,
621
642
  metadata: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
643
+ output_object_keys: typing.Optional[builtins.bool] = None,
622
644
  prune: typing.Optional[builtins.bool] = None,
623
645
  retain_on_delete: typing.Optional[builtins.bool] = None,
624
646
  role: typing.Optional[_IRole_235f5d8e] = None,
@@ -655,6 +677,7 @@ class BucketDeployment(
655
677
  :param log_retention: The number of days that the lambda function's log events are kept in CloudWatch Logs. This is a legacy API and we strongly recommend you migrate to ``logGroup`` if you can. ``logGroup`` allows you to create a fully customizable log group and instruct the Lambda function to send logs to it. Default: logs.RetentionDays.INFINITE
656
678
  :param memory_limit: The amount of memory (in MiB) to allocate to the AWS Lambda function which replicates the files from the CDK bucket to the destination bucket. If you are deploying large files, you will need to increase this number accordingly. Default: 128
657
679
  :param metadata: User-defined object metadata to be set on all objects in the deployment. Default: - No user metadata is set
680
+ :param output_object_keys: If set to false, the custom resource will not send back the SourceObjectKeys. This is useful when you are facing the error ``Response object is too long`` See https://github.com/aws/aws-cdk/issues/28579 Default: true
658
681
  :param prune: If this is set to false, files in the destination bucket that do not exist in the asset, will NOT be deleted during deployment (create/update). Default: true
659
682
  :param retain_on_delete: If this is set to "false", the destination files will be deleted when the resource is deleted or the destination is updated. NOTICE: Configuring this to "false" might have operational implications. Please visit to the package documentation referred below to make sure you fully understand those implications. Default: true - when resource is deleted/updated, files are retained
660
683
  :param role: Execution role associated with this function. Default: - A role is automatically created
@@ -693,6 +716,7 @@ class BucketDeployment(
693
716
  log_retention=log_retention,
694
717
  memory_limit=memory_limit,
695
718
  metadata=metadata,
719
+ output_object_keys=output_object_keys,
696
720
  prune=prune,
697
721
  retain_on_delete=retain_on_delete,
698
722
  role=role,
@@ -793,6 +817,7 @@ class BucketDeployment(
793
817
  "log_retention": "logRetention",
794
818
  "memory_limit": "memoryLimit",
795
819
  "metadata": "metadata",
820
+ "output_object_keys": "outputObjectKeys",
796
821
  "prune": "prune",
797
822
  "retain_on_delete": "retainOnDelete",
798
823
  "role": "role",
@@ -831,6 +856,7 @@ class BucketDeploymentProps:
831
856
  log_retention: typing.Optional[_RetentionDays_070f99f0] = None,
832
857
  memory_limit: typing.Optional[jsii.Number] = None,
833
858
  metadata: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
859
+ output_object_keys: typing.Optional[builtins.bool] = None,
834
860
  prune: typing.Optional[builtins.bool] = None,
835
861
  retain_on_delete: typing.Optional[builtins.bool] = None,
836
862
  role: typing.Optional[_IRole_235f5d8e] = None,
@@ -866,6 +892,7 @@ class BucketDeploymentProps:
866
892
  :param log_retention: The number of days that the lambda function's log events are kept in CloudWatch Logs. This is a legacy API and we strongly recommend you migrate to ``logGroup`` if you can. ``logGroup`` allows you to create a fully customizable log group and instruct the Lambda function to send logs to it. Default: logs.RetentionDays.INFINITE
867
893
  :param memory_limit: The amount of memory (in MiB) to allocate to the AWS Lambda function which replicates the files from the CDK bucket to the destination bucket. If you are deploying large files, you will need to increase this number accordingly. Default: 128
868
894
  :param metadata: User-defined object metadata to be set on all objects in the deployment. Default: - No user metadata is set
895
+ :param output_object_keys: If set to false, the custom resource will not send back the SourceObjectKeys. This is useful when you are facing the error ``Response object is too long`` See https://github.com/aws/aws-cdk/issues/28579 Default: true
869
896
  :param prune: If this is set to false, files in the destination bucket that do not exist in the asset, will NOT be deleted during deployment (create/update). Default: true
870
897
  :param retain_on_delete: If this is set to "false", the destination files will be deleted when the resource is deleted or the destination is updated. NOTICE: Configuring this to "false" might have operational implications. Please visit to the package documentation referred below to make sure you fully understand those implications. Default: true - when resource is deleted/updated, files are retained
871
898
  :param role: Execution role associated with this function. Default: - A role is automatically created
@@ -922,6 +949,7 @@ class BucketDeploymentProps:
922
949
  check_type(argname="argument log_retention", value=log_retention, expected_type=type_hints["log_retention"])
923
950
  check_type(argname="argument memory_limit", value=memory_limit, expected_type=type_hints["memory_limit"])
924
951
  check_type(argname="argument metadata", value=metadata, expected_type=type_hints["metadata"])
952
+ check_type(argname="argument output_object_keys", value=output_object_keys, expected_type=type_hints["output_object_keys"])
925
953
  check_type(argname="argument prune", value=prune, expected_type=type_hints["prune"])
926
954
  check_type(argname="argument retain_on_delete", value=retain_on_delete, expected_type=type_hints["retain_on_delete"])
927
955
  check_type(argname="argument role", value=role, expected_type=type_hints["role"])
@@ -974,6 +1002,8 @@ class BucketDeploymentProps:
974
1002
  self._values["memory_limit"] = memory_limit
975
1003
  if metadata is not None:
976
1004
  self._values["metadata"] = metadata
1005
+ if output_object_keys is not None:
1006
+ self._values["output_object_keys"] = output_object_keys
977
1007
  if prune is not None:
978
1008
  self._values["prune"] = prune
979
1009
  if retain_on_delete is not None:
@@ -1220,6 +1250,19 @@ class BucketDeploymentProps:
1220
1250
  result = self._values.get("metadata")
1221
1251
  return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
1222
1252
 
1253
+ @builtins.property
1254
+ def output_object_keys(self) -> typing.Optional[builtins.bool]:
1255
+ '''If set to false, the custom resource will not send back the SourceObjectKeys.
1256
+
1257
+ This is useful when you are facing the error ``Response object is too long``
1258
+
1259
+ See https://github.com/aws/aws-cdk/issues/28579
1260
+
1261
+ :default: true
1262
+ '''
1263
+ result = self._values.get("output_object_keys")
1264
+ return typing.cast(typing.Optional[builtins.bool], result)
1265
+
1223
1266
  @builtins.property
1224
1267
  def prune(self) -> typing.Optional[builtins.bool]:
1225
1268
  '''If this is set to false, files in the destination bucket that do not exist in the asset, will NOT be deleted during deployment (create/update).
@@ -2253,6 +2296,7 @@ def _typecheckingstub__2544491e92aa50a255b927ef16b9cde2961eae48803afca3b5d1105bf
2253
2296
  log_retention: typing.Optional[_RetentionDays_070f99f0] = None,
2254
2297
  memory_limit: typing.Optional[jsii.Number] = None,
2255
2298
  metadata: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2299
+ output_object_keys: typing.Optional[builtins.bool] = None,
2256
2300
  prune: typing.Optional[builtins.bool] = None,
2257
2301
  retain_on_delete: typing.Optional[builtins.bool] = None,
2258
2302
  role: typing.Optional[_IRole_235f5d8e] = None,
@@ -2297,6 +2341,7 @@ def _typecheckingstub__cbabf07e8b4adfb2b2058c075c4f35512ebc580f80a6db9bf13e90589
2297
2341
  log_retention: typing.Optional[_RetentionDays_070f99f0] = None,
2298
2342
  memory_limit: typing.Optional[jsii.Number] = None,
2299
2343
  metadata: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
2344
+ output_object_keys: typing.Optional[builtins.bool] = None,
2300
2345
  prune: typing.Optional[builtins.bool] = None,
2301
2346
  retain_on_delete: typing.Optional[builtins.bool] = None,
2302
2347
  role: typing.Optional[_IRole_235f5d8e] = None,
@@ -71,6 +71,7 @@ import constructs as _constructs_77d1e7e8
71
71
  from .. import (
72
72
  CfnResource as _CfnResource_9df397a6,
73
73
  IInspectable as _IInspectable_c2943556,
74
+ IResolvable as _IResolvable_da3f097b,
74
75
  TreeInspector as _TreeInspector_488e0dd5,
75
76
  )
76
77
 
@@ -307,11 +308,19 @@ class CfnDirectoryBucket(
307
308
  - s3express:ListAllMyDirectoryBuckets
308
309
  - Read
309
310
  - s3express:ListAllMyDirectoryBuckets
311
+ - ec2:DescribeAvailabilityZones
310
312
  - Delete
311
313
  - s3express:DeleteBucket
312
314
  - s3express:ListAllMyDirectoryBuckets
313
315
  - List
314
316
  - s3express:ListAllMyDirectoryBuckets
317
+ - PutBucketEncryption
318
+ - s3express:PutEncryptionConfiguration
319
+ - To set a directory bucket default encryption with SSE-KMS, you must also have the kms:GenerateDataKey and kms:Decrypt permissions in IAM identity-based policies and AWS KMS key policies for the target AWS KMS key.
320
+ - GetBucketEncryption
321
+ - s3express:GetBucketEncryption
322
+ - DeleteBucketEncryption
323
+ - s3express:PutEncryptionConfiguration
315
324
 
316
325
  The following operations are related to ``AWS::S3Express::DirectoryBucket`` :
317
326
 
@@ -334,6 +343,14 @@ class CfnDirectoryBucket(
334
343
  location_name="locationName",
335
344
 
336
345
  # the properties below are optional
346
+ bucket_encryption=s3express.CfnDirectoryBucket.BucketEncryptionProperty(
347
+ server_side_encryption_configuration=[s3express.CfnDirectoryBucket.ServerSideEncryptionRuleProperty(
348
+ bucket_key_enabled=False,
349
+ server_side_encryption_by_default=s3express.CfnDirectoryBucket.ServerSideEncryptionByDefaultProperty(
350
+ sse_algorithm="sseAlgorithm"
351
+ )
352
+ )]
353
+ ),
337
354
  bucket_name="bucketName"
338
355
  )
339
356
  '''
@@ -345,6 +362,7 @@ class CfnDirectoryBucket(
345
362
  *,
346
363
  data_redundancy: builtins.str,
347
364
  location_name: builtins.str,
365
+ bucket_encryption: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDirectoryBucket.BucketEncryptionProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
348
366
  bucket_name: typing.Optional[builtins.str] = None,
349
367
  ) -> None:
350
368
  '''
@@ -352,7 +370,8 @@ class CfnDirectoryBucket(
352
370
  :param id: Construct identifier for this resource (unique in its scope).
353
371
  :param data_redundancy: The number of Availability Zone that's used for redundancy for the bucket.
354
372
  :param location_name: The name of the location where the bucket will be created. For directory buckets, the name of the location is the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is ``usw2-az1`` .
355
- :param bucket_name: A name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format ``*bucket_base_name* -- *az_id* --x-s3`` (for example, ``*DOC-EXAMPLE-BUCKET* -- *usw2-az1* --x-s3`` ). If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. For information about bucket naming restrictions, see `Directory bucket naming rules <https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html>`_ in the *Amazon S3 User Guide* . .. epigraph:: If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name.
373
+ :param bucket_encryption: Specifies default encryption for a bucket using server-side encryption with Amazon S3 managed keys (SSE-S3) or AWS KMS keys (SSE-KMS). For information about default encryption for directory buckets, see `Setting and monitoring default encryption for directory buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html>`_ in the *Amazon S3 User Guide* .
374
+ :param bucket_name: A name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format ``*bucket_base_name* -- *az_id* --x-s3`` (for example, ``*bucket_base_name* -- *usw2-az1* --x-s3`` ). If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. For information about bucket naming restrictions, see `Directory bucket naming rules <https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html>`_ in the *Amazon S3 User Guide* . .. epigraph:: If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name.
356
375
  '''
357
376
  if __debug__:
358
377
  type_hints = typing.get_type_hints(_typecheckingstub__ea5a1e5897b0467fb93393ad6ea2dbcd3916f27713079e8bef3badf71ce2bb20)
@@ -361,6 +380,7 @@ class CfnDirectoryBucket(
361
380
  props = CfnDirectoryBucketProps(
362
381
  data_redundancy=data_redundancy,
363
382
  location_name=location_name,
383
+ bucket_encryption=bucket_encryption,
364
384
  bucket_name=bucket_name,
365
385
  )
366
386
 
@@ -401,12 +421,26 @@ class CfnDirectoryBucket(
401
421
  def attr_arn(self) -> builtins.str:
402
422
  '''Returns the Amazon Resource Name (ARN) of the specified bucket.
403
423
 
404
- Example: ``arn:aws:s3express: *us-west-2* : *account_id* :bucket/ *DOC-EXAMPLE-BUCKET* -- *usw2-az1* --x-s3``
424
+ Example: ``arn:aws:s3express: *us-west-2* : *account_id* :bucket/ *bucket_base_name* -- *usw2-az1* --x-s3``
405
425
 
406
426
  :cloudformationAttribute: Arn
407
427
  '''
408
428
  return typing.cast(builtins.str, jsii.get(self, "attrArn"))
409
429
 
430
+ @builtins.property
431
+ @jsii.member(jsii_name="attrAvailabilityZoneName")
432
+ def attr_availability_zone_name(self) -> builtins.str:
433
+ '''Returns the code for the Availability Zone where the directory bucket was created.
434
+
435
+ Example: *us-east-1f*
436
+ .. epigraph::
437
+
438
+ An Availability Zone code might not represent the same physical location for different AWS accounts. For more information, see `Availability Zones and Regions <https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-Endpoints.html>`_ in the *Amazon S3 User Guide* .
439
+
440
+ :cloudformationAttribute: AvailabilityZoneName
441
+ '''
442
+ return typing.cast(builtins.str, jsii.get(self, "attrAvailabilityZoneName"))
443
+
410
444
  @builtins.property
411
445
  @jsii.member(jsii_name="cfnProperties")
412
446
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
@@ -438,6 +472,24 @@ class CfnDirectoryBucket(
438
472
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
439
473
  jsii.set(self, "locationName", value) # pyright: ignore[reportArgumentType]
440
474
 
475
+ @builtins.property
476
+ @jsii.member(jsii_name="bucketEncryption")
477
+ def bucket_encryption(
478
+ self,
479
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.BucketEncryptionProperty"]]:
480
+ '''Specifies default encryption for a bucket using server-side encryption with Amazon S3 managed keys (SSE-S3) or AWS KMS keys (SSE-KMS).'''
481
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.BucketEncryptionProperty"]], jsii.get(self, "bucketEncryption"))
482
+
483
+ @bucket_encryption.setter
484
+ def bucket_encryption(
485
+ self,
486
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.BucketEncryptionProperty"]],
487
+ ) -> None:
488
+ if __debug__:
489
+ type_hints = typing.get_type_hints(_typecheckingstub__ec12f12e4471077fcc9afe2e16208df6b915dc349584d6784410dc28aeaa9ac3)
490
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
491
+ jsii.set(self, "bucketEncryption", value) # pyright: ignore[reportArgumentType]
492
+
441
493
  @builtins.property
442
494
  @jsii.member(jsii_name="bucketName")
443
495
  def bucket_name(self) -> typing.Optional[builtins.str]:
@@ -451,6 +503,207 @@ class CfnDirectoryBucket(
451
503
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
452
504
  jsii.set(self, "bucketName", value) # pyright: ignore[reportArgumentType]
453
505
 
506
+ @jsii.data_type(
507
+ jsii_type="aws-cdk-lib.aws_s3express.CfnDirectoryBucket.BucketEncryptionProperty",
508
+ jsii_struct_bases=[],
509
+ name_mapping={
510
+ "server_side_encryption_configuration": "serverSideEncryptionConfiguration",
511
+ },
512
+ )
513
+ class BucketEncryptionProperty:
514
+ def __init__(
515
+ self,
516
+ *,
517
+ server_side_encryption_configuration: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDirectoryBucket.ServerSideEncryptionRuleProperty", typing.Dict[builtins.str, typing.Any]]]]],
518
+ ) -> None:
519
+ '''Specifies default encryption for a bucket using server-side encryption with Amazon S3 managed keys (SSE-S3) or AWS KMS keys (SSE-KMS).
520
+
521
+ :param server_side_encryption_configuration: Specifies the default server-side-encryption configuration.
522
+
523
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-bucketencryption.html
524
+ :exampleMetadata: fixture=_generated
525
+
526
+ Example::
527
+
528
+ # The code below shows an example of how to instantiate this type.
529
+ # The values are placeholders you should change.
530
+ from aws_cdk import aws_s3express as s3express
531
+
532
+ bucket_encryption_property = s3express.CfnDirectoryBucket.BucketEncryptionProperty(
533
+ server_side_encryption_configuration=[s3express.CfnDirectoryBucket.ServerSideEncryptionRuleProperty(
534
+ bucket_key_enabled=False,
535
+ server_side_encryption_by_default=s3express.CfnDirectoryBucket.ServerSideEncryptionByDefaultProperty(
536
+ sse_algorithm="sseAlgorithm"
537
+ )
538
+ )]
539
+ )
540
+ '''
541
+ if __debug__:
542
+ type_hints = typing.get_type_hints(_typecheckingstub__2bda13f500a0910d95ef795cf250698cc9bc399a6809500b0318dd2399fa0dfc)
543
+ check_type(argname="argument server_side_encryption_configuration", value=server_side_encryption_configuration, expected_type=type_hints["server_side_encryption_configuration"])
544
+ self._values: typing.Dict[builtins.str, typing.Any] = {
545
+ "server_side_encryption_configuration": server_side_encryption_configuration,
546
+ }
547
+
548
+ @builtins.property
549
+ def server_side_encryption_configuration(
550
+ self,
551
+ ) -> typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.ServerSideEncryptionRuleProperty"]]]:
552
+ '''Specifies the default server-side-encryption configuration.
553
+
554
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-bucketencryption.html#cfn-s3express-directorybucket-bucketencryption-serversideencryptionconfiguration
555
+ '''
556
+ result = self._values.get("server_side_encryption_configuration")
557
+ assert result is not None, "Required property 'server_side_encryption_configuration' is missing"
558
+ return typing.cast(typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.ServerSideEncryptionRuleProperty"]]], result)
559
+
560
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
561
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
562
+
563
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
564
+ return not (rhs == self)
565
+
566
+ def __repr__(self) -> str:
567
+ return "BucketEncryptionProperty(%s)" % ", ".join(
568
+ k + "=" + repr(v) for k, v in self._values.items()
569
+ )
570
+
571
+ @jsii.data_type(
572
+ jsii_type="aws-cdk-lib.aws_s3express.CfnDirectoryBucket.ServerSideEncryptionByDefaultProperty",
573
+ jsii_struct_bases=[],
574
+ name_mapping={"sse_algorithm": "sseAlgorithm"},
575
+ )
576
+ class ServerSideEncryptionByDefaultProperty:
577
+ def __init__(self, *, sse_algorithm: builtins.str) -> None:
578
+ '''Specifies the default server-side encryption to apply to new objects in the bucket.
579
+
580
+ If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.
581
+
582
+ :param sse_algorithm:
583
+
584
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-serversideencryptionbydefault.html
585
+ :exampleMetadata: fixture=_generated
586
+
587
+ Example::
588
+
589
+ # The code below shows an example of how to instantiate this type.
590
+ # The values are placeholders you should change.
591
+ from aws_cdk import aws_s3express as s3express
592
+
593
+ server_side_encryption_by_default_property = s3express.CfnDirectoryBucket.ServerSideEncryptionByDefaultProperty(
594
+ sse_algorithm="sseAlgorithm"
595
+ )
596
+ '''
597
+ if __debug__:
598
+ type_hints = typing.get_type_hints(_typecheckingstub__5104b7dd2a8f7d075aebe34991fe63f5722d4515b7d5df7eadca88aa065daee9)
599
+ check_type(argname="argument sse_algorithm", value=sse_algorithm, expected_type=type_hints["sse_algorithm"])
600
+ self._values: typing.Dict[builtins.str, typing.Any] = {
601
+ "sse_algorithm": sse_algorithm,
602
+ }
603
+
604
+ @builtins.property
605
+ def sse_algorithm(self) -> builtins.str:
606
+ '''
607
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-serversideencryptionbydefault.html#cfn-s3express-directorybucket-serversideencryptionbydefault-ssealgorithm
608
+ '''
609
+ result = self._values.get("sse_algorithm")
610
+ assert result is not None, "Required property 'sse_algorithm' is missing"
611
+ return typing.cast(builtins.str, result)
612
+
613
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
614
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
615
+
616
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
617
+ return not (rhs == self)
618
+
619
+ def __repr__(self) -> str:
620
+ return "ServerSideEncryptionByDefaultProperty(%s)" % ", ".join(
621
+ k + "=" + repr(v) for k, v in self._values.items()
622
+ )
623
+
624
+ @jsii.data_type(
625
+ jsii_type="aws-cdk-lib.aws_s3express.CfnDirectoryBucket.ServerSideEncryptionRuleProperty",
626
+ jsii_struct_bases=[],
627
+ name_mapping={
628
+ "bucket_key_enabled": "bucketKeyEnabled",
629
+ "server_side_encryption_by_default": "serverSideEncryptionByDefault",
630
+ },
631
+ )
632
+ class ServerSideEncryptionRuleProperty:
633
+ def __init__(
634
+ self,
635
+ *,
636
+ bucket_key_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
637
+ server_side_encryption_by_default: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDirectoryBucket.ServerSideEncryptionByDefaultProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
638
+ ) -> None:
639
+ '''Specifies the default server-side encryption configuration.
640
+
641
+ :param bucket_key_enabled: Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket. Existing objects are not affected. Amazon S3 Express One Zone uses an S3 Bucket Key with SSE-KMS and S3 Bucket Key cannot be disabled. It's only allowed to set the BucketKeyEnabled element to true.
642
+ :param server_side_encryption_by_default: Specifies the default server-side encryption to apply to new objects in the bucket. If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.
643
+
644
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-serversideencryptionrule.html
645
+ :exampleMetadata: fixture=_generated
646
+
647
+ Example::
648
+
649
+ # The code below shows an example of how to instantiate this type.
650
+ # The values are placeholders you should change.
651
+ from aws_cdk import aws_s3express as s3express
652
+
653
+ server_side_encryption_rule_property = s3express.CfnDirectoryBucket.ServerSideEncryptionRuleProperty(
654
+ bucket_key_enabled=False,
655
+ server_side_encryption_by_default=s3express.CfnDirectoryBucket.ServerSideEncryptionByDefaultProperty(
656
+ sse_algorithm="sseAlgorithm"
657
+ )
658
+ )
659
+ '''
660
+ if __debug__:
661
+ type_hints = typing.get_type_hints(_typecheckingstub__cb4bc307ba12040c7d9910685d8ea50fd2f9f3f34fdecd3ca61c34ccd69e3dbf)
662
+ check_type(argname="argument bucket_key_enabled", value=bucket_key_enabled, expected_type=type_hints["bucket_key_enabled"])
663
+ check_type(argname="argument server_side_encryption_by_default", value=server_side_encryption_by_default, expected_type=type_hints["server_side_encryption_by_default"])
664
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
665
+ if bucket_key_enabled is not None:
666
+ self._values["bucket_key_enabled"] = bucket_key_enabled
667
+ if server_side_encryption_by_default is not None:
668
+ self._values["server_side_encryption_by_default"] = server_side_encryption_by_default
669
+
670
+ @builtins.property
671
+ def bucket_key_enabled(
672
+ self,
673
+ ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
674
+ '''Specifies whether Amazon S3 should use an S3 Bucket Key with server-side encryption using KMS (SSE-KMS) for new objects in the bucket.
675
+
676
+ Existing objects are not affected. Amazon S3 Express One Zone uses an S3 Bucket Key with SSE-KMS and S3 Bucket Key cannot be disabled. It's only allowed to set the BucketKeyEnabled element to true.
677
+
678
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-serversideencryptionrule.html#cfn-s3express-directorybucket-serversideencryptionrule-bucketkeyenabled
679
+ '''
680
+ result = self._values.get("bucket_key_enabled")
681
+ return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], result)
682
+
683
+ @builtins.property
684
+ def server_side_encryption_by_default(
685
+ self,
686
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.ServerSideEncryptionByDefaultProperty"]]:
687
+ '''Specifies the default server-side encryption to apply to new objects in the bucket.
688
+
689
+ If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied.
690
+
691
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3express-directorybucket-serversideencryptionrule.html#cfn-s3express-directorybucket-serversideencryptionrule-serversideencryptionbydefault
692
+ '''
693
+ result = self._values.get("server_side_encryption_by_default")
694
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDirectoryBucket.ServerSideEncryptionByDefaultProperty"]], result)
695
+
696
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
697
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
698
+
699
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
700
+ return not (rhs == self)
701
+
702
+ def __repr__(self) -> str:
703
+ return "ServerSideEncryptionRuleProperty(%s)" % ", ".join(
704
+ k + "=" + repr(v) for k, v in self._values.items()
705
+ )
706
+
454
707
 
455
708
  @jsii.data_type(
456
709
  jsii_type="aws-cdk-lib.aws_s3express.CfnDirectoryBucketProps",
@@ -458,6 +711,7 @@ class CfnDirectoryBucket(
458
711
  name_mapping={
459
712
  "data_redundancy": "dataRedundancy",
460
713
  "location_name": "locationName",
714
+ "bucket_encryption": "bucketEncryption",
461
715
  "bucket_name": "bucketName",
462
716
  },
463
717
  )
@@ -467,13 +721,15 @@ class CfnDirectoryBucketProps:
467
721
  *,
468
722
  data_redundancy: builtins.str,
469
723
  location_name: builtins.str,
724
+ bucket_encryption: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.BucketEncryptionProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
470
725
  bucket_name: typing.Optional[builtins.str] = None,
471
726
  ) -> None:
472
727
  '''Properties for defining a ``CfnDirectoryBucket``.
473
728
 
474
729
  :param data_redundancy: The number of Availability Zone that's used for redundancy for the bucket.
475
730
  :param location_name: The name of the location where the bucket will be created. For directory buckets, the name of the location is the AZ ID of the Availability Zone where the bucket will be created. An example AZ ID value is ``usw2-az1`` .
476
- :param bucket_name: A name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format ``*bucket_base_name* -- *az_id* --x-s3`` (for example, ``*DOC-EXAMPLE-BUCKET* -- *usw2-az1* --x-s3`` ). If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. For information about bucket naming restrictions, see `Directory bucket naming rules <https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html>`_ in the *Amazon S3 User Guide* . .. epigraph:: If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name.
731
+ :param bucket_encryption: Specifies default encryption for a bucket using server-side encryption with Amazon S3 managed keys (SSE-S3) or AWS KMS keys (SSE-KMS). For information about default encryption for directory buckets, see `Setting and monitoring default encryption for directory buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html>`_ in the *Amazon S3 User Guide* .
732
+ :param bucket_name: A name for the bucket. The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format ``*bucket_base_name* -- *az_id* --x-s3`` (for example, ``*bucket_base_name* -- *usw2-az1* --x-s3`` ). If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. For information about bucket naming restrictions, see `Directory bucket naming rules <https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html>`_ in the *Amazon S3 User Guide* . .. epigraph:: If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name.
477
733
 
478
734
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-directorybucket.html
479
735
  :exampleMetadata: fixture=_generated
@@ -489,6 +745,14 @@ class CfnDirectoryBucketProps:
489
745
  location_name="locationName",
490
746
 
491
747
  # the properties below are optional
748
+ bucket_encryption=s3express.CfnDirectoryBucket.BucketEncryptionProperty(
749
+ server_side_encryption_configuration=[s3express.CfnDirectoryBucket.ServerSideEncryptionRuleProperty(
750
+ bucket_key_enabled=False,
751
+ server_side_encryption_by_default=s3express.CfnDirectoryBucket.ServerSideEncryptionByDefaultProperty(
752
+ sse_algorithm="sseAlgorithm"
753
+ )
754
+ )]
755
+ ),
492
756
  bucket_name="bucketName"
493
757
  )
494
758
  '''
@@ -496,11 +760,14 @@ class CfnDirectoryBucketProps:
496
760
  type_hints = typing.get_type_hints(_typecheckingstub__997b2abc28c849393aef2f13f43682b271277998e07114f1b224078949985e6e)
497
761
  check_type(argname="argument data_redundancy", value=data_redundancy, expected_type=type_hints["data_redundancy"])
498
762
  check_type(argname="argument location_name", value=location_name, expected_type=type_hints["location_name"])
763
+ check_type(argname="argument bucket_encryption", value=bucket_encryption, expected_type=type_hints["bucket_encryption"])
499
764
  check_type(argname="argument bucket_name", value=bucket_name, expected_type=type_hints["bucket_name"])
500
765
  self._values: typing.Dict[builtins.str, typing.Any] = {
501
766
  "data_redundancy": data_redundancy,
502
767
  "location_name": location_name,
503
768
  }
769
+ if bucket_encryption is not None:
770
+ self._values["bucket_encryption"] = bucket_encryption
504
771
  if bucket_name is not None:
505
772
  self._values["bucket_name"] = bucket_name
506
773
 
@@ -526,11 +793,24 @@ class CfnDirectoryBucketProps:
526
793
  assert result is not None, "Required property 'location_name' is missing"
527
794
  return typing.cast(builtins.str, result)
528
795
 
796
+ @builtins.property
797
+ def bucket_encryption(
798
+ self,
799
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDirectoryBucket.BucketEncryptionProperty]]:
800
+ '''Specifies default encryption for a bucket using server-side encryption with Amazon S3 managed keys (SSE-S3) or AWS KMS keys (SSE-KMS).
801
+
802
+ For information about default encryption for directory buckets, see `Setting and monitoring default encryption for directory buckets <https://docs.aws.amazon.com/AmazonS3/latest/userguide/s3-express-bucket-encryption.html>`_ in the *Amazon S3 User Guide* .
803
+
804
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-s3express-directorybucket.html#cfn-s3express-directorybucket-bucketencryption
805
+ '''
806
+ result = self._values.get("bucket_encryption")
807
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDirectoryBucket.BucketEncryptionProperty]], result)
808
+
529
809
  @builtins.property
530
810
  def bucket_name(self) -> typing.Optional[builtins.str]:
531
811
  '''A name for the bucket.
532
812
 
533
- The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format ``*bucket_base_name* -- *az_id* --x-s3`` (for example, ``*DOC-EXAMPLE-BUCKET* -- *usw2-az1* --x-s3`` ). If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. For information about bucket naming restrictions, see `Directory bucket naming rules <https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html>`_ in the *Amazon S3 User Guide* .
813
+ The bucket name must contain only lowercase letters, numbers, and hyphens (-). A directory bucket name must be unique in the chosen Availability Zone. The bucket name must also follow the format ``*bucket_base_name* -- *az_id* --x-s3`` (for example, ``*bucket_base_name* -- *usw2-az1* --x-s3`` ). If you don't specify a name, AWS CloudFormation generates a unique ID and uses that ID for the bucket name. For information about bucket naming restrictions, see `Directory bucket naming rules <https://docs.aws.amazon.com/AmazonS3/latest/userguide/directory-bucket-naming-rules.html>`_ in the *Amazon S3 User Guide* .
534
814
  .. epigraph::
535
815
 
536
816
  If you specify a name, you can't perform updates that require replacement of this resource. You can perform updates that require no or some interruption. If you need to replace the resource, specify a new name.
@@ -609,6 +889,7 @@ def _typecheckingstub__ea5a1e5897b0467fb93393ad6ea2dbcd3916f27713079e8bef3badf71
609
889
  *,
610
890
  data_redundancy: builtins.str,
611
891
  location_name: builtins.str,
892
+ bucket_encryption: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.BucketEncryptionProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
612
893
  bucket_name: typing.Optional[builtins.str] = None,
613
894
  ) -> None:
614
895
  """Type checking stubs"""
@@ -638,16 +919,45 @@ def _typecheckingstub__352b4b43cbbf4d81310eac7a66fd236d34a92a5af6e8099d48e6ec1e7
638
919
  """Type checking stubs"""
639
920
  pass
640
921
 
922
+ def _typecheckingstub__ec12f12e4471077fcc9afe2e16208df6b915dc349584d6784410dc28aeaa9ac3(
923
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnDirectoryBucket.BucketEncryptionProperty]],
924
+ ) -> None:
925
+ """Type checking stubs"""
926
+ pass
927
+
641
928
  def _typecheckingstub__678dc679eb1daf10bbced208f7ef85b8fe01f1ae8ea62c5354ac80b289edc1ed(
642
929
  value: typing.Optional[builtins.str],
643
930
  ) -> None:
644
931
  """Type checking stubs"""
645
932
  pass
646
933
 
934
+ def _typecheckingstub__2bda13f500a0910d95ef795cf250698cc9bc399a6809500b0318dd2399fa0dfc(
935
+ *,
936
+ server_side_encryption_configuration: typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.ServerSideEncryptionRuleProperty, typing.Dict[builtins.str, typing.Any]]]]],
937
+ ) -> None:
938
+ """Type checking stubs"""
939
+ pass
940
+
941
+ def _typecheckingstub__5104b7dd2a8f7d075aebe34991fe63f5722d4515b7d5df7eadca88aa065daee9(
942
+ *,
943
+ sse_algorithm: builtins.str,
944
+ ) -> None:
945
+ """Type checking stubs"""
946
+ pass
947
+
948
+ def _typecheckingstub__cb4bc307ba12040c7d9910685d8ea50fd2f9f3f34fdecd3ca61c34ccd69e3dbf(
949
+ *,
950
+ bucket_key_enabled: typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]] = None,
951
+ server_side_encryption_by_default: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.ServerSideEncryptionByDefaultProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
952
+ ) -> None:
953
+ """Type checking stubs"""
954
+ pass
955
+
647
956
  def _typecheckingstub__997b2abc28c849393aef2f13f43682b271277998e07114f1b224078949985e6e(
648
957
  *,
649
958
  data_redundancy: builtins.str,
650
959
  location_name: builtins.str,
960
+ bucket_encryption: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDirectoryBucket.BucketEncryptionProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
651
961
  bucket_name: typing.Optional[builtins.str] = None,
652
962
  ) -> None:
653
963
  """Type checking stubs"""