aws-cdk-lib 2.159.1__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 (58) hide show
  1. aws_cdk/__init__.py +281 -33
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.159.1.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_codepipeline_actions/__init__.py +4 -4
  13. aws_cdk/aws_cognito/__init__.py +18 -0
  14. aws_cdk/aws_datasync/__init__.py +1 -1
  15. aws_cdk/aws_dynamodb/__init__.py +4 -4
  16. aws_cdk/aws_ec2/__init__.py +138 -12
  17. aws_cdk/aws_ecs/__init__.py +517 -6
  18. aws_cdk/aws_eks/__init__.py +118 -2
  19. aws_cdk/aws_elasticloadbalancingv2/__init__.py +5 -3
  20. aws_cdk/aws_glue/__init__.py +386 -0
  21. aws_cdk/aws_iotfleetwise/__init__.py +49 -49
  22. aws_cdk/aws_iottwinmaker/__init__.py +4 -4
  23. aws_cdk/aws_iotwireless/__init__.py +2 -1
  24. aws_cdk/aws_kinesisfirehose/__init__.py +52 -76
  25. aws_cdk/aws_kms/__init__.py +4 -4
  26. aws_cdk/aws_lambda/__init__.py +385 -244
  27. aws_cdk/aws_logs/__init__.py +455 -24
  28. aws_cdk/aws_mediaconnect/__init__.py +6 -4
  29. aws_cdk/aws_medialive/__init__.py +36 -0
  30. aws_cdk/aws_organizations/__init__.py +4 -3
  31. aws_cdk/aws_pipes/__init__.py +2 -2
  32. aws_cdk/aws_quicksight/__init__.py +1086 -6
  33. aws_cdk/aws_rds/__init__.py +182 -3
  34. aws_cdk/aws_route53resolver/__init__.py +3 -17
  35. aws_cdk/aws_s3/__init__.py +24 -15
  36. aws_cdk/aws_s3_deployment/__init__.py +45 -0
  37. aws_cdk/aws_s3express/__init__.py +314 -4
  38. aws_cdk/aws_sagemaker/__init__.py +44 -4
  39. aws_cdk/aws_secretsmanager/__init__.py +14 -7
  40. aws_cdk/aws_securityhub/__init__.py +16 -14
  41. aws_cdk/aws_ses/__init__.py +52 -18
  42. aws_cdk/aws_sqs/__init__.py +16 -14
  43. aws_cdk/aws_ssm/__init__.py +6 -2
  44. aws_cdk/aws_stepfunctions/__init__.py +412 -32
  45. aws_cdk/aws_synthetics/__init__.py +46 -0
  46. aws_cdk/aws_waf/__init__.py +33 -22
  47. aws_cdk/aws_wafregional/__init__.py +36 -24
  48. aws_cdk/aws_workspacesweb/__init__.py +54 -3
  49. aws_cdk/cloud_assembly_schema/__init__.py +1304 -417
  50. aws_cdk/cloudformation_include/__init__.py +28 -0
  51. aws_cdk/cx_api/__init__.py +129 -0
  52. aws_cdk/pipelines/__init__.py +4 -4
  53. {aws_cdk_lib-2.159.1.dist-info → aws_cdk_lib-2.161.0.dist-info}/METADATA +4 -4
  54. {aws_cdk_lib-2.159.1.dist-info → aws_cdk_lib-2.161.0.dist-info}/RECORD +58 -58
  55. {aws_cdk_lib-2.159.1.dist-info → aws_cdk_lib-2.161.0.dist-info}/LICENSE +0 -0
  56. {aws_cdk_lib-2.159.1.dist-info → aws_cdk_lib-2.161.0.dist-info}/NOTICE +0 -0
  57. {aws_cdk_lib-2.159.1.dist-info → aws_cdk_lib-2.161.0.dist-info}/WHEEL +0 -0
  58. {aws_cdk_lib-2.159.1.dist-info → aws_cdk_lib-2.161.0.dist-info}/top_level.txt +0 -0
@@ -183,8 +183,8 @@ To use a bucket in a different stack in the same CDK application, pass the objec
183
183
  #
184
184
  class Producer(Stack):
185
185
 
186
- def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):
187
- super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)
186
+ def __init__(self, scope, id, *, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):
187
+ super().__init__(scope, id, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)
188
188
 
189
189
  bucket = s3.Bucket(self, "MyBucket",
190
190
  removal_policy=cdk.RemovalPolicy.DESTROY
@@ -195,8 +195,8 @@ class Producer(Stack):
195
195
  # Stack that consumes the bucket
196
196
  #
197
197
  class Consumer(Stack):
198
- def __init__(self, scope, id, *, userBucket, description=None, env=None, stackName=None, tags=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):
199
- super().__init__(scope, id, userBucket=userBucket, description=description, env=env, stackName=stackName, tags=tags, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)
198
+ def __init__(self, scope, id, *, userBucket, description=None, env=None, stackName=None, tags=None, notificationArns=None, synthesizer=None, terminationProtection=None, analyticsReporting=None, crossRegionReferences=None, permissionsBoundary=None, suppressTemplateIndentation=None):
199
+ super().__init__(scope, id, userBucket=userBucket, description=description, env=env, stackName=stackName, tags=tags, notificationArns=notificationArns, synthesizer=synthesizer, terminationProtection=terminationProtection, analyticsReporting=analyticsReporting, crossRegionReferences=crossRegionReferences, permissionsBoundary=permissionsBoundary, suppressTemplateIndentation=suppressTemplateIndentation)
200
200
 
201
201
  user = iam.User(self, "MyUser")
202
202
  user_bucket.grant_read_write(user)
@@ -9426,13 +9426,15 @@ class CfnBucket(
9426
9426
  ) -> None:
9427
9427
  '''Describes the default server-side encryption to apply to new objects in the bucket.
9428
9428
 
9429
- If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied. If you don't specify a customer managed key at configuration, Amazon S3 automatically creates an AWS KMS key in your AWS account the first time that you add an object encrypted with SSE-KMS to a bucket. By default, Amazon S3 uses this KMS key for SSE-KMS. For more information, see `PUT Bucket encryption <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html>`_ in the *Amazon S3 API Reference* .
9429
+ If a PUT Object request doesn't specify any server-side encryption, this default encryption will be applied. For more information, see `PutBucketEncryption <https://docs.aws.amazon.com/AmazonS3/latest/API/RESTBucketPUTencryption.html>`_ .
9430
9430
  .. epigraph::
9431
9431
 
9432
- If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then AWS KMS resolves the key within the requester’s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner.
9432
+ - *General purpose buckets* - If you don't specify a customer managed key at configuration, Amazon S3 automatically creates an AWS KMS key ( ``aws/s3`` ) in your AWS account the first time that you add an object encrypted with SSE-KMS to a bucket. By default, Amazon S3 uses this KMS key for SSE-KMS.
9433
+ - *Directory buckets* - Your SSE-KMS configuration can only support 1 `customer managed key <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk>`_ per directory bucket for the lifetime of the bucket. `AWS managed key <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#aws-managed-cmk>`_ ( ``aws/s3`` ) isn't supported.
9434
+ - *Directory buckets* - For directory buckets, there are only two supported options for server-side encryption: SSE-S3 and SSE-KMS.
9433
9435
 
9434
- :param sse_algorithm: Server-side encryption algorithm to use for the default encryption.
9435
- :param kms_master_key_id: AWS Key Management Service (KMS) customer AWS KMS key ID to use for the default encryption. This parameter is allowed if and only if ``SSEAlgorithm`` is set to ``aws:kms`` or ``aws:kms:dsse`` . You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key. - Key ID: ``1234abcd-12ab-34cd-56ef-1234567890ab`` - Key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`` - Key Alias: ``alias/alias-name`` If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log. If you are using encryption with cross-account or AWS service operations you must use a fully qualified KMS key ARN. For more information, see `Using encryption for cross-account operations <https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy>`_ . .. epigraph:: Amazon S3 only supports symmetric encryption KMS keys. For more information, see `Asymmetric keys in AWS KMS <https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html>`_ in the *AWS Key Management Service Developer Guide* .
9436
+ :param sse_algorithm: Server-side encryption algorithm to use for the default encryption. .. epigraph:: For directory buckets, there are only two supported values for server-side encryption: ``AES256`` and ``aws:kms`` .
9437
+ :param kms_master_key_id: AWS Key Management Service (KMS) customer managed key ID to use for the default encryption. .. epigraph:: - *General purpose buckets* - This parameter is allowed if and only if ``SSEAlgorithm`` is set to ``aws:kms`` or ``aws:kms:dsse`` . - *Directory buckets* - This parameter is allowed if and only if ``SSEAlgorithm`` is set to ``aws:kms`` . You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key. - Key ID: ``1234abcd-12ab-34cd-56ef-1234567890ab`` - Key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab`` - Key Alias: ``alias/alias-name`` If you are using encryption with cross-account or AWS service operations, you must use a fully qualified KMS key ARN. For more information, see `Using encryption for cross-account operations <https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy>`_ . .. epigraph:: - *General purpose buckets* - If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then AWS KMS resolves the key within the requester’s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner. Also, if you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log. - *Directory buckets* - When you specify an `AWS KMS customer managed key <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk>`_ for encryption in your directory bucket, only use the key ID or key ARN. The key alias format of the KMS key isn't supported. > Amazon S3 only supports symmetric encryption KMS keys. For more information, see `Asymmetric keys in AWS KMS <https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html>`_ in the *AWS Key Management Service Developer Guide* .
9436
9438
 
9437
9439
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html
9438
9440
  :exampleMetadata: fixture=_generated
@@ -9464,6 +9466,10 @@ class CfnBucket(
9464
9466
  def sse_algorithm(self) -> builtins.str:
9465
9467
  '''Server-side encryption algorithm to use for the default encryption.
9466
9468
 
9469
+ .. epigraph::
9470
+
9471
+ For directory buckets, there are only two supported values for server-side encryption: ``AES256`` and ``aws:kms`` .
9472
+
9467
9473
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html#cfn-s3-bucket-serversideencryptionbydefault-ssealgorithm
9468
9474
  '''
9469
9475
  result = self._values.get("sse_algorithm")
@@ -9472,9 +9478,12 @@ class CfnBucket(
9472
9478
 
9473
9479
  @builtins.property
9474
9480
  def kms_master_key_id(self) -> typing.Optional[builtins.str]:
9475
- '''AWS Key Management Service (KMS) customer AWS KMS key ID to use for the default encryption.
9481
+ '''AWS Key Management Service (KMS) customer managed key ID to use for the default encryption.
9476
9482
 
9477
- This parameter is allowed if and only if ``SSEAlgorithm`` is set to ``aws:kms`` or ``aws:kms:dsse`` .
9483
+ .. epigraph::
9484
+
9485
+ - *General purpose buckets* - This parameter is allowed if and only if ``SSEAlgorithm`` is set to ``aws:kms`` or ``aws:kms:dsse`` .
9486
+ - *Directory buckets* - This parameter is allowed if and only if ``SSEAlgorithm`` is set to ``aws:kms`` .
9478
9487
 
9479
9488
  You can specify the key ID, key alias, or the Amazon Resource Name (ARN) of the KMS key.
9480
9489
 
@@ -9482,12 +9491,11 @@ class CfnBucket(
9482
9491
  - Key ARN: ``arn:aws:kms:us-east-2:111122223333:key/1234abcd-12ab-34cd-56ef-1234567890ab``
9483
9492
  - Key Alias: ``alias/alias-name``
9484
9493
 
9485
- If you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log.
9486
-
9487
- If you are using encryption with cross-account or AWS service operations you must use a fully qualified KMS key ARN. For more information, see `Using encryption for cross-account operations <https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy>`_ .
9494
+ If you are using encryption with cross-account or AWS service operations, you must use a fully qualified KMS key ARN. For more information, see `Using encryption for cross-account operations <https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-encryption.html#bucket-encryption-update-bucket-policy>`_ .
9488
9495
  .. epigraph::
9489
9496
 
9490
- Amazon S3 only supports symmetric encryption KMS keys. For more information, see `Asymmetric keys in AWS KMS <https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html>`_ in the *AWS Key Management Service Developer Guide* .
9497
+ - *General purpose buckets* - If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then AWS KMS resolves the key within the requester’s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner. Also, if you use a key ID, you can run into a LogDestination undeliverable error when creating a VPC flow log.
9498
+ - *Directory buckets* - When you specify an `AWS KMS customer managed key <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk>`_ for encryption in your directory bucket, only use the key ID or key ARN. The key alias format of the KMS key isn't supported. > Amazon S3 only supports symmetric encryption KMS keys. For more information, see `Asymmetric keys in AWS KMS <https://docs.aws.amazon.com//kms/latest/developerguide/symmetric-asymmetric.html>`_ in the *AWS Key Management Service Developer Guide* .
9491
9499
 
9492
9500
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-bucket-serversideencryptionbydefault.html#cfn-s3-bucket-serversideencryptionbydefault-kmsmasterkeyid
9493
9501
  '''
@@ -9524,7 +9532,8 @@ class CfnBucket(
9524
9532
 
9525
9533
  .. epigraph::
9526
9534
 
9527
- If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then AWS KMS resolves the key within the requester’s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner.
9535
+ - *General purpose buckets* - If you're specifying a customer managed KMS key, we recommend using a fully qualified KMS key ARN. If you use a KMS key alias instead, then AWS KMS resolves the key within the requester’s account. This behavior can result in data that's encrypted with a KMS key that belongs to the requester, and not the bucket owner.
9536
+ - *Directory buckets* - When you specify an `AWS KMS customer managed key <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#customer-cmk>`_ for encryption in your directory bucket, only use the key ID or key ARN. The key alias format of the KMS key isn't supported.
9528
9537
 
9529
9538
  :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. Setting the ``BucketKeyEnabled`` element to ``true`` causes Amazon S3 to use an S3 Bucket Key. By default, S3 Bucket Key is not enabled. For more information, see `Amazon S3 Bucket Keys <https://docs.aws.amazon.com/AmazonS3/latest/dev/bucket-key.html>`_ in the *Amazon S3 User Guide* .
9530
9539
  :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.
@@ -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,