aws-cdk-lib 2.182.0__py3-none-any.whl → 2.184.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 (49) hide show
  1. aws_cdk/__init__.py +459 -33
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.182.0.jsii.tgz → aws-cdk-lib@2.184.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_batch/__init__.py +15 -9
  5. aws_cdk/aws_bedrock/__init__.py +5804 -2325
  6. aws_cdk/aws_ce/__init__.py +141 -3
  7. aws_cdk/aws_cloudformation/__init__.py +26 -33
  8. aws_cdk/aws_cloudfront/experimental/__init__.py +2 -2
  9. aws_cdk/aws_cloudtrail/__init__.py +4 -4
  10. aws_cdk/aws_codebuild/__init__.py +4 -10
  11. aws_cdk/aws_cognito/__init__.py +3 -3
  12. aws_cdk/aws_dms/__init__.py +350 -0
  13. aws_cdk/aws_ec2/__init__.py +63 -5
  14. aws_cdk/aws_elasticache/__init__.py +3 -3
  15. aws_cdk/aws_emr/__init__.py +9 -3
  16. aws_cdk/aws_events/__init__.py +3 -1
  17. aws_cdk/aws_events_targets/__init__.py +31 -7
  18. aws_cdk/aws_gameliftstreams/__init__.py +1205 -0
  19. aws_cdk/aws_iam/__init__.py +290 -35
  20. aws_cdk/aws_inspector/__init__.py +13 -10
  21. aws_cdk/aws_iot/__init__.py +616 -22
  22. aws_cdk/aws_iotfleetwise/__init__.py +72 -10
  23. aws_cdk/aws_iotsitewise/__init__.py +12 -8
  24. aws_cdk/aws_kafkaconnect/__init__.py +4 -2
  25. aws_cdk/aws_kinesisfirehose/__init__.py +45 -51
  26. aws_cdk/aws_lambda/__init__.py +27 -18
  27. aws_cdk/aws_lambda_event_sources/__init__.py +14 -14
  28. aws_cdk/aws_logs/__init__.py +133 -0
  29. aws_cdk/aws_medialive/__init__.py +86 -86
  30. aws_cdk/aws_msk/__init__.py +236 -128
  31. aws_cdk/aws_neptunegraph/__init__.py +3 -3
  32. aws_cdk/aws_opensearchserverless/__init__.py +1031 -0
  33. aws_cdk/aws_quicksight/__init__.py +6511 -20331
  34. aws_cdk/aws_rds/__init__.py +264 -32
  35. aws_cdk/aws_redshift/__init__.py +8 -8
  36. aws_cdk/aws_sagemaker/__init__.py +12 -5
  37. aws_cdk/aws_securitylake/__init__.py +3 -0
  38. aws_cdk/aws_synthetics/__init__.py +2 -0
  39. aws_cdk/aws_transfer/__init__.py +241 -40
  40. aws_cdk/aws_wafv2/__init__.py +118 -30
  41. aws_cdk/aws_xray/__init__.py +195 -0
  42. aws_cdk/cloud_assembly_schema/__init__.py +2 -2
  43. aws_cdk/custom_resources/__init__.py +65 -8
  44. {aws_cdk_lib-2.182.0.dist-info → aws_cdk_lib-2.184.0.dist-info}/METADATA +5 -6
  45. {aws_cdk_lib-2.182.0.dist-info → aws_cdk_lib-2.184.0.dist-info}/RECORD +49 -48
  46. {aws_cdk_lib-2.182.0.dist-info → aws_cdk_lib-2.184.0.dist-info}/LICENSE +0 -0
  47. {aws_cdk_lib-2.182.0.dist-info → aws_cdk_lib-2.184.0.dist-info}/NOTICE +0 -0
  48. {aws_cdk_lib-2.182.0.dist-info → aws_cdk_lib-2.184.0.dist-info}/WHEEL +0 -0
  49. {aws_cdk_lib-2.182.0.dist-info → aws_cdk_lib-2.184.0.dist-info}/top_level.txt +0 -0
@@ -5122,7 +5122,7 @@ class CfnIntegration(
5122
5122
  metaclass=jsii.JSIIMeta,
5123
5123
  jsii_type="aws-cdk-lib.aws_redshift.CfnIntegration",
5124
5124
  ):
5125
- '''Describes a zero-ETL integration.
5125
+ '''Describes a zero-ETL or S3 integration.
5126
5126
 
5127
5127
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-integration.html
5128
5128
  :cloudformationResource: AWS::Redshift::Integration
@@ -5168,9 +5168,9 @@ class CfnIntegration(
5168
5168
  :param id: Construct identifier for this resource (unique in its scope).
5169
5169
  :param source_arn: The Amazon Resource Name (ARN) of the database used as the source for replication.
5170
5170
  :param target_arn: The Amazon Resource Name (ARN) of the Amazon Redshift data warehouse to use as the target for replication.
5171
- :param additional_encryption_context: The encryption context for the integration. For more information, see `Encryption context <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context>`_ in the *AWS Key Management Service Developer Guide* .
5171
+ :param additional_encryption_context: The encryption context for the integration. For more information, see `Encryption context <https://docs.aws.amazon.com/>`_ in the *AWS Key Management Service Developer Guide* .
5172
5172
  :param integration_name: The name of the integration.
5173
- :param kms_key_id: The AWS Key Management Service ( AWS KMS ) key identifier for the key used to encrypt the integration.
5173
+ :param kms_key_id: The AWS Key Management Service ( AWS KMS) key identifier for the key used to encrypt the integration.
5174
5174
  :param tags: The list of tags associated with the integration.
5175
5175
  '''
5176
5176
  if __debug__:
@@ -5307,7 +5307,7 @@ class CfnIntegration(
5307
5307
  @builtins.property
5308
5308
  @jsii.member(jsii_name="kmsKeyId")
5309
5309
  def kms_key_id(self) -> typing.Optional[builtins.str]:
5310
- '''The AWS Key Management Service ( AWS KMS ) key identifier for the key used to encrypt the integration.'''
5310
+ '''The AWS Key Management Service ( AWS KMS) key identifier for the key used to encrypt the integration.'''
5311
5311
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "kmsKeyId"))
5312
5312
 
5313
5313
  @kms_key_id.setter
@@ -5358,9 +5358,9 @@ class CfnIntegrationProps:
5358
5358
 
5359
5359
  :param source_arn: The Amazon Resource Name (ARN) of the database used as the source for replication.
5360
5360
  :param target_arn: The Amazon Resource Name (ARN) of the Amazon Redshift data warehouse to use as the target for replication.
5361
- :param additional_encryption_context: The encryption context for the integration. For more information, see `Encryption context <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context>`_ in the *AWS Key Management Service Developer Guide* .
5361
+ :param additional_encryption_context: The encryption context for the integration. For more information, see `Encryption context <https://docs.aws.amazon.com/>`_ in the *AWS Key Management Service Developer Guide* .
5362
5362
  :param integration_name: The name of the integration.
5363
- :param kms_key_id: The AWS Key Management Service ( AWS KMS ) key identifier for the key used to encrypt the integration.
5363
+ :param kms_key_id: The AWS Key Management Service ( AWS KMS) key identifier for the key used to encrypt the integration.
5364
5364
  :param tags: The list of tags associated with the integration.
5365
5365
 
5366
5366
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-integration.html
@@ -5435,7 +5435,7 @@ class CfnIntegrationProps:
5435
5435
  ) -> typing.Optional[typing.Union[typing.Mapping[builtins.str, builtins.str], _IResolvable_da3f097b]]:
5436
5436
  '''The encryption context for the integration.
5437
5437
 
5438
- For more information, see `Encryption context <https://docs.aws.amazon.com/kms/latest/developerguide/concepts.html#encrypt_context>`_ in the *AWS Key Management Service Developer Guide* .
5438
+ For more information, see `Encryption context <https://docs.aws.amazon.com/>`_ in the *AWS Key Management Service Developer Guide* .
5439
5439
 
5440
5440
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-integration.html#cfn-redshift-integration-additionalencryptioncontext
5441
5441
  '''
@@ -5453,7 +5453,7 @@ class CfnIntegrationProps:
5453
5453
 
5454
5454
  @builtins.property
5455
5455
  def kms_key_id(self) -> typing.Optional[builtins.str]:
5456
- '''The AWS Key Management Service ( AWS KMS ) key identifier for the key used to encrypt the integration.
5456
+ '''The AWS Key Management Service ( AWS KMS) key identifier for the key used to encrypt the integration.
5457
5457
 
5458
5458
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-redshift-integration.html#cfn-redshift-integration-kmskeyid
5459
5459
  '''
@@ -19913,8 +19913,11 @@ class CfnModel(
19913
19913
  )
19914
19914
  class HubAccessConfigProperty:
19915
19915
  def __init__(self, *, hub_content_arn: builtins.str) -> None:
19916
- '''
19917
- :param hub_content_arn:
19916
+ '''The configuration for a private hub model reference that points to a public SageMaker JumpStart model.
19917
+
19918
+ For more information about private hubs, see `Private curated hubs for foundation model access control in JumpStart <https://docs.aws.amazon.com/sagemaker/latest/dg/jumpstart-curated-hubs.html>`_ .
19919
+
19920
+ :param hub_content_arn: The ARN of your private model hub content. This should be a ``ModelReference`` resource type that points to a SageMaker JumpStart public hub model.
19918
19921
 
19919
19922
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-hubaccessconfig.html
19920
19923
  :exampleMetadata: fixture=_generated
@@ -19938,7 +19941,10 @@ class CfnModel(
19938
19941
 
19939
19942
  @builtins.property
19940
19943
  def hub_content_arn(self) -> builtins.str:
19941
- '''
19944
+ '''The ARN of your private model hub content.
19945
+
19946
+ This should be a ``ModelReference`` resource type that points to a SageMaker JumpStart public hub model.
19947
+
19942
19948
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-hubaccessconfig.html#cfn-sagemaker-model-hubaccessconfig-hubcontentarn
19943
19949
  '''
19944
19950
  result = self._values.get("hub_content_arn")
@@ -20378,7 +20384,7 @@ class CfnModel(
20378
20384
  :param compression_type:
20379
20385
  :param s3_data_type: If you choose ``S3Prefix`` , ``S3Uri`` identifies a key name prefix. SageMaker uses all objects that match the specified key name prefix for model training. If you choose ``ManifestFile`` , ``S3Uri`` identifies an object that is a manifest file containing a list of object keys that you want SageMaker to use for model training. If you choose ``AugmentedManifestFile`` , ``S3Uri`` identifies an object that is an augmented manifest file in JSON lines format. This file contains the data you want to use for model training. ``AugmentedManifestFile`` can only be used if the Channel's input mode is ``Pipe`` .
20380
20386
  :param s3_uri: Depending on the value specified for the ``S3DataType`` , identifies either a key name prefix or a manifest. For example: - A key name prefix might look like this: ``s3://bucketname/exampleprefix/`` - A manifest might look like this: ``s3://bucketname/example.manifest`` A manifest is an S3 object which is a JSON file consisting of an array of elements. The first element is a prefix which is followed by one or more suffixes. SageMaker appends the suffix elements to the prefix to get a full set of ``S3Uri`` . Note that the prefix must be a valid non-empty ``S3Uri`` that precludes users from specifying a manifest whose individual ``S3Uri`` is sourced from different S3 buckets. The following code example shows a valid manifest format: ``[ {"prefix": "s3://customer_bucket/some/prefix/"},`` ``"relative/path/to/custdata-1",`` ``"relative/path/custdata-2",`` ``...`` ``"relative/path/custdata-N"`` ``]`` This JSON is equivalent to the following ``S3Uri`` list: ``s3://customer_bucket/some/prefix/relative/path/to/custdata-1`` ``s3://customer_bucket/some/prefix/relative/path/custdata-2`` ``...`` ``s3://customer_bucket/some/prefix/relative/path/custdata-N`` The complete set of ``S3Uri`` in this manifest is the input data for the channel for this data source. The object that each ``S3Uri`` points to must be readable by the IAM role that SageMaker uses to perform tasks on your behalf. Your input bucket must be located in same AWS region as your training job.
20381
- :param hub_access_config:
20387
+ :param hub_access_config: The configuration for a private hub model reference that points to a SageMaker JumpStart public hub model.
20382
20388
  :param model_access_config:
20383
20389
 
20384
20390
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-s3datasource.html
@@ -20495,7 +20501,8 @@ class CfnModel(
20495
20501
  def hub_access_config(
20496
20502
  self,
20497
20503
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnModel.HubAccessConfigProperty"]]:
20498
- '''
20504
+ '''The configuration for a private hub model reference that points to a SageMaker JumpStart public hub model.
20505
+
20499
20506
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-sagemaker-model-s3datasource.html#cfn-sagemaker-model-s3datasource-hubaccessconfig
20500
20507
  '''
20501
20508
  result = self._values.get("hub_access_config")
@@ -355,6 +355,9 @@ class CfnDataLake(
355
355
  You can enable Security Lake in AWS Regions with customized settings before enabling log collection in Regions. To specify particular Regions, configure these Regions using the ``configurations`` parameter. If you have already enabled Security Lake in a Region when you call this command, the command will update the Region if you provide new configuration parameters. If you have not already enabled Security Lake in the Region when you call this API, it will set up the data lake in the Region with the specified configurations.
356
356
 
357
357
  When you enable Security Lake , it starts ingesting security data after the ``CreateAwsLogSource`` call. This includes ingesting security data from sources, storing data, and making data accessible to subscribers. Security Lake also enables all the existing settings and resources that it stores or maintains for your AWS account in the current Region, including security log and event data. For more information, see the `Amazon Security Lake User Guide <https://docs.aws.amazon.com//security-lake/latest/userguide/what-is-security-lake.html>`_ .
358
+ .. epigraph::
359
+
360
+ If you use this template to create multiple data lakes in different AWS Regions , and more than one of your data lakes include an `AWS::SecurityLake::AwsLogSource <https://docs.aws.amazon.com//AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-awslogsource.html>`_ resource, then you must deploy these data lakes sequentially. This is required because data lakes operate globally, and ``AwsLogSource`` resources must be deployed one at a time.
358
361
 
359
362
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-securitylake-datalake.html
360
363
  :cloudformationResource: AWS::SecurityLake::DataLake
@@ -1296,6 +1296,8 @@ class CfnCanary(
1296
1296
 
1297
1297
  Canaries are scripts that monitor your endpoints and APIs from the outside-in. Canaries help you check the availability and latency of your web services and troubleshoot anomalies by investigating load time data, screenshots of the UI, logs, and metrics. You can set up a canary to run continuously or just once.
1298
1298
 
1299
+ Canaries are automated scripts that run at specified intervals against an endpoint. They include Python or Node.js code to create a Lambda function. This code needs to be packaged in a certain way, depending on the language. For more information, see `Writing a canary script <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_WritingCanary.html>`_ .
1300
+
1299
1301
  To create canaries, you must have the ``CloudWatchSyntheticsFullAccess`` policy. If you are creating a new IAM role for the canary, you also need the the ``iam:CreateRole`` , ``iam:CreatePolicy`` and ``iam:AttachRolePolicy`` permissions. For more information, see `Necessary Roles and Permissions <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_Roles>`_ .
1300
1302
 
1301
1303
  Do not include secrets or proprietary information in your canary names. The canary name makes up part of the Amazon Resource Name (ARN) for the canary, and the ARN is included in outbound calls over the internet. For more information, see `Security Considerations for Synthetics Canaries <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/servicelens_canaries_security.html>`_ .
@@ -97,12 +97,19 @@ class CfnAgreement(
97
97
 
98
98
  cfn_agreement = transfer.CfnAgreement(self, "MyCfnAgreement",
99
99
  access_role="accessRole",
100
- base_directory="baseDirectory",
101
100
  local_profile_id="localProfileId",
102
101
  partner_profile_id="partnerProfileId",
103
102
  server_id="serverId",
104
103
 
105
104
  # the properties below are optional
105
+ base_directory="baseDirectory",
106
+ custom_directories=transfer.CfnAgreement.CustomDirectoriesProperty(
107
+ failed_files_directory="failedFilesDirectory",
108
+ mdn_files_directory="mdnFilesDirectory",
109
+ payload_files_directory="payloadFilesDirectory",
110
+ status_files_directory="statusFilesDirectory",
111
+ temporary_files_directory="temporaryFilesDirectory"
112
+ ),
106
113
  description="description",
107
114
  enforce_message_signing="enforceMessageSigning",
108
115
  preserve_filename="preserveFilename",
@@ -120,10 +127,11 @@ class CfnAgreement(
120
127
  id: builtins.str,
121
128
  *,
122
129
  access_role: builtins.str,
123
- base_directory: builtins.str,
124
130
  local_profile_id: builtins.str,
125
131
  partner_profile_id: builtins.str,
126
132
  server_id: builtins.str,
133
+ base_directory: typing.Optional[builtins.str] = None,
134
+ custom_directories: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnAgreement.CustomDirectoriesProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
127
135
  description: typing.Optional[builtins.str] = None,
128
136
  enforce_message_signing: typing.Optional[builtins.str] = None,
129
137
  preserve_filename: typing.Optional[builtins.str] = None,
@@ -134,10 +142,11 @@ class CfnAgreement(
134
142
  :param scope: Scope in which this resource is defined.
135
143
  :param id: Construct identifier for this resource (unique in its scope).
136
144
  :param access_role: Connectors are used to send files using either the AS2 or SFTP protocol. For the access role, provide the Amazon Resource Name (ARN) of the AWS Identity and Access Management role to use. *For AS2 connectors* With AS2, you can send files by calling ``StartFileTransfer`` and specifying the file paths in the request parameter, ``SendFilePaths`` . We use the file’s parent directory (for example, for ``--send-file-paths /bucket/dir/file.txt`` , parent directory is ``/bucket/dir/`` ) to temporarily store a processed AS2 message file, store the MDN when we receive them from the partner, and write a final JSON file containing relevant metadata of the transmission. So, the ``AccessRole`` needs to provide read and write access to the parent directory of the file location used in the ``StartFileTransfer`` request. Additionally, you need to provide read and write access to the parent directory of the files that you intend to send with ``StartFileTransfer`` . If you are using Basic authentication for your AS2 connector, the access role requires the ``secretsmanager:GetSecretValue`` permission for the secret. If the secret is encrypted using a customer-managed key instead of the AWS managed key in Secrets Manager, then the role also needs the ``kms:Decrypt`` permission for that key. *For SFTP connectors* Make sure that the access role provides read and write access to the parent directory of the file location that's used in the ``StartFileTransfer`` request. Additionally, make sure that the role provides ``secretsmanager:GetSecretValue`` permission to AWS Secrets Manager .
137
- :param base_directory: The landing directory (folder) for files that are transferred by using the AS2 protocol.
138
145
  :param local_profile_id: A unique identifier for the AS2 local profile.
139
146
  :param partner_profile_id: A unique identifier for the partner profile used in the agreement.
140
147
  :param server_id: A system-assigned unique identifier for a server instance. This identifier indicates the specific server that the agreement uses.
148
+ :param base_directory: The landing directory (folder) for files that are transferred by using the AS2 protocol.
149
+ :param custom_directories: A ``CustomDirectoriesType`` structure. This structure specifies custom directories for storing various AS2 message files. You can specify directories for the following types of files. - Failed files - MDN files - Payload files - Status files - Temporary files
141
150
  :param description: The name or short description that's used to identify the agreement.
142
151
  :param enforce_message_signing: Determines whether or not unsigned messages from your trading partners will be accepted. - ``ENABLED`` : Transfer Family rejects unsigned messages from your trading partner. - ``DISABLED`` (default value): Transfer Family accepts unsigned messages from your trading partner.
143
152
  :param preserve_filename: Determines whether or not Transfer Family appends a unique string of characters to the end of the AS2 message payload filename when saving it. - ``ENABLED`` : the filename provided by your trading parter is preserved when the file is saved. - ``DISABLED`` (default value): when Transfer Family saves the file, the filename is adjusted, as described in `File names and locations <https://docs.aws.amazon.com/transfer/latest/userguide/send-as2-messages.html#file-names-as2>`_ .
@@ -150,10 +159,11 @@ class CfnAgreement(
150
159
  check_type(argname="argument id", value=id, expected_type=type_hints["id"])
151
160
  props = CfnAgreementProps(
152
161
  access_role=access_role,
153
- base_directory=base_directory,
154
162
  local_profile_id=local_profile_id,
155
163
  partner_profile_id=partner_profile_id,
156
164
  server_id=server_id,
165
+ base_directory=base_directory,
166
+ custom_directories=custom_directories,
157
167
  description=description,
158
168
  enforce_message_signing=enforce_message_signing,
159
169
  preserve_filename=preserve_filename,
@@ -235,19 +245,6 @@ class CfnAgreement(
235
245
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
236
246
  jsii.set(self, "accessRole", value) # pyright: ignore[reportArgumentType]
237
247
 
238
- @builtins.property
239
- @jsii.member(jsii_name="baseDirectory")
240
- def base_directory(self) -> builtins.str:
241
- '''The landing directory (folder) for files that are transferred by using the AS2 protocol.'''
242
- return typing.cast(builtins.str, jsii.get(self, "baseDirectory"))
243
-
244
- @base_directory.setter
245
- def base_directory(self, value: builtins.str) -> None:
246
- if __debug__:
247
- type_hints = typing.get_type_hints(_typecheckingstub__e95a046a6530138645bcc3d9ea79bf173c25ac44d2324af6ecc4137b705bfc28)
248
- check_type(argname="argument value", value=value, expected_type=type_hints["value"])
249
- jsii.set(self, "baseDirectory", value) # pyright: ignore[reportArgumentType]
250
-
251
248
  @builtins.property
252
249
  @jsii.member(jsii_name="localProfileId")
253
250
  def local_profile_id(self) -> builtins.str:
@@ -287,6 +284,37 @@ class CfnAgreement(
287
284
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
288
285
  jsii.set(self, "serverId", value) # pyright: ignore[reportArgumentType]
289
286
 
287
+ @builtins.property
288
+ @jsii.member(jsii_name="baseDirectory")
289
+ def base_directory(self) -> typing.Optional[builtins.str]:
290
+ '''The landing directory (folder) for files that are transferred by using the AS2 protocol.'''
291
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "baseDirectory"))
292
+
293
+ @base_directory.setter
294
+ def base_directory(self, value: typing.Optional[builtins.str]) -> None:
295
+ if __debug__:
296
+ type_hints = typing.get_type_hints(_typecheckingstub__e95a046a6530138645bcc3d9ea79bf173c25ac44d2324af6ecc4137b705bfc28)
297
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
298
+ jsii.set(self, "baseDirectory", value) # pyright: ignore[reportArgumentType]
299
+
300
+ @builtins.property
301
+ @jsii.member(jsii_name="customDirectories")
302
+ def custom_directories(
303
+ self,
304
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAgreement.CustomDirectoriesProperty"]]:
305
+ '''A ``CustomDirectoriesType`` structure.'''
306
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAgreement.CustomDirectoriesProperty"]], jsii.get(self, "customDirectories"))
307
+
308
+ @custom_directories.setter
309
+ def custom_directories(
310
+ self,
311
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnAgreement.CustomDirectoriesProperty"]],
312
+ ) -> None:
313
+ if __debug__:
314
+ type_hints = typing.get_type_hints(_typecheckingstub__0dfcc069ad404f24e1d3d66293208f393508273f19347e58f547f45ba5f8a952)
315
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
316
+ jsii.set(self, "customDirectories", value) # pyright: ignore[reportArgumentType]
317
+
290
318
  @builtins.property
291
319
  @jsii.member(jsii_name="description")
292
320
  def description(self) -> typing.Optional[builtins.str]:
@@ -352,16 +380,139 @@ class CfnAgreement(
352
380
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
353
381
  jsii.set(self, "tagsRaw", value) # pyright: ignore[reportArgumentType]
354
382
 
383
+ @jsii.data_type(
384
+ jsii_type="aws-cdk-lib.aws_transfer.CfnAgreement.CustomDirectoriesProperty",
385
+ jsii_struct_bases=[],
386
+ name_mapping={
387
+ "failed_files_directory": "failedFilesDirectory",
388
+ "mdn_files_directory": "mdnFilesDirectory",
389
+ "payload_files_directory": "payloadFilesDirectory",
390
+ "status_files_directory": "statusFilesDirectory",
391
+ "temporary_files_directory": "temporaryFilesDirectory",
392
+ },
393
+ )
394
+ class CustomDirectoriesProperty:
395
+ def __init__(
396
+ self,
397
+ *,
398
+ failed_files_directory: builtins.str,
399
+ mdn_files_directory: builtins.str,
400
+ payload_files_directory: builtins.str,
401
+ status_files_directory: builtins.str,
402
+ temporary_files_directory: builtins.str,
403
+ ) -> None:
404
+ '''Specifies a separate directory for each type of file to store for an AS2 message.
405
+
406
+ :param failed_files_directory: Specifies a location to store the failed files for an AS2 message.
407
+ :param mdn_files_directory: Specifies a location to store the MDN file for an AS2 message.
408
+ :param payload_files_directory: Specifies a location to store the payload file for an AS2 message.
409
+ :param status_files_directory: Specifies a location to store the status file for an AS2 message.
410
+ :param temporary_files_directory: Specifies a location to store the temporary processing file for an AS2 message.
411
+
412
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-agreement-customdirectories.html
413
+ :exampleMetadata: fixture=_generated
414
+
415
+ Example::
416
+
417
+ # The code below shows an example of how to instantiate this type.
418
+ # The values are placeholders you should change.
419
+ from aws_cdk import aws_transfer as transfer
420
+
421
+ custom_directories_property = transfer.CfnAgreement.CustomDirectoriesProperty(
422
+ failed_files_directory="failedFilesDirectory",
423
+ mdn_files_directory="mdnFilesDirectory",
424
+ payload_files_directory="payloadFilesDirectory",
425
+ status_files_directory="statusFilesDirectory",
426
+ temporary_files_directory="temporaryFilesDirectory"
427
+ )
428
+ '''
429
+ if __debug__:
430
+ type_hints = typing.get_type_hints(_typecheckingstub__98a40a95fd9ad9ea9bb69f5fdf7379c4b40ddd5a529d08076025691033961aa4)
431
+ check_type(argname="argument failed_files_directory", value=failed_files_directory, expected_type=type_hints["failed_files_directory"])
432
+ check_type(argname="argument mdn_files_directory", value=mdn_files_directory, expected_type=type_hints["mdn_files_directory"])
433
+ check_type(argname="argument payload_files_directory", value=payload_files_directory, expected_type=type_hints["payload_files_directory"])
434
+ check_type(argname="argument status_files_directory", value=status_files_directory, expected_type=type_hints["status_files_directory"])
435
+ check_type(argname="argument temporary_files_directory", value=temporary_files_directory, expected_type=type_hints["temporary_files_directory"])
436
+ self._values: typing.Dict[builtins.str, typing.Any] = {
437
+ "failed_files_directory": failed_files_directory,
438
+ "mdn_files_directory": mdn_files_directory,
439
+ "payload_files_directory": payload_files_directory,
440
+ "status_files_directory": status_files_directory,
441
+ "temporary_files_directory": temporary_files_directory,
442
+ }
443
+
444
+ @builtins.property
445
+ def failed_files_directory(self) -> builtins.str:
446
+ '''Specifies a location to store the failed files for an AS2 message.
447
+
448
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-agreement-customdirectories.html#cfn-transfer-agreement-customdirectories-failedfilesdirectory
449
+ '''
450
+ result = self._values.get("failed_files_directory")
451
+ assert result is not None, "Required property 'failed_files_directory' is missing"
452
+ return typing.cast(builtins.str, result)
453
+
454
+ @builtins.property
455
+ def mdn_files_directory(self) -> builtins.str:
456
+ '''Specifies a location to store the MDN file for an AS2 message.
457
+
458
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-agreement-customdirectories.html#cfn-transfer-agreement-customdirectories-mdnfilesdirectory
459
+ '''
460
+ result = self._values.get("mdn_files_directory")
461
+ assert result is not None, "Required property 'mdn_files_directory' is missing"
462
+ return typing.cast(builtins.str, result)
463
+
464
+ @builtins.property
465
+ def payload_files_directory(self) -> builtins.str:
466
+ '''Specifies a location to store the payload file for an AS2 message.
467
+
468
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-agreement-customdirectories.html#cfn-transfer-agreement-customdirectories-payloadfilesdirectory
469
+ '''
470
+ result = self._values.get("payload_files_directory")
471
+ assert result is not None, "Required property 'payload_files_directory' is missing"
472
+ return typing.cast(builtins.str, result)
473
+
474
+ @builtins.property
475
+ def status_files_directory(self) -> builtins.str:
476
+ '''Specifies a location to store the status file for an AS2 message.
477
+
478
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-agreement-customdirectories.html#cfn-transfer-agreement-customdirectories-statusfilesdirectory
479
+ '''
480
+ result = self._values.get("status_files_directory")
481
+ assert result is not None, "Required property 'status_files_directory' is missing"
482
+ return typing.cast(builtins.str, result)
483
+
484
+ @builtins.property
485
+ def temporary_files_directory(self) -> builtins.str:
486
+ '''Specifies a location to store the temporary processing file for an AS2 message.
487
+
488
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-transfer-agreement-customdirectories.html#cfn-transfer-agreement-customdirectories-temporaryfilesdirectory
489
+ '''
490
+ result = self._values.get("temporary_files_directory")
491
+ assert result is not None, "Required property 'temporary_files_directory' is missing"
492
+ return typing.cast(builtins.str, result)
493
+
494
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
495
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
496
+
497
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
498
+ return not (rhs == self)
499
+
500
+ def __repr__(self) -> str:
501
+ return "CustomDirectoriesProperty(%s)" % ", ".join(
502
+ k + "=" + repr(v) for k, v in self._values.items()
503
+ )
504
+
355
505
 
356
506
  @jsii.data_type(
357
507
  jsii_type="aws-cdk-lib.aws_transfer.CfnAgreementProps",
358
508
  jsii_struct_bases=[],
359
509
  name_mapping={
360
510
  "access_role": "accessRole",
361
- "base_directory": "baseDirectory",
362
511
  "local_profile_id": "localProfileId",
363
512
  "partner_profile_id": "partnerProfileId",
364
513
  "server_id": "serverId",
514
+ "base_directory": "baseDirectory",
515
+ "custom_directories": "customDirectories",
365
516
  "description": "description",
366
517
  "enforce_message_signing": "enforceMessageSigning",
367
518
  "preserve_filename": "preserveFilename",
@@ -374,10 +525,11 @@ class CfnAgreementProps:
374
525
  self,
375
526
  *,
376
527
  access_role: builtins.str,
377
- base_directory: builtins.str,
378
528
  local_profile_id: builtins.str,
379
529
  partner_profile_id: builtins.str,
380
530
  server_id: builtins.str,
531
+ base_directory: typing.Optional[builtins.str] = None,
532
+ custom_directories: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAgreement.CustomDirectoriesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
381
533
  description: typing.Optional[builtins.str] = None,
382
534
  enforce_message_signing: typing.Optional[builtins.str] = None,
383
535
  preserve_filename: typing.Optional[builtins.str] = None,
@@ -387,10 +539,11 @@ class CfnAgreementProps:
387
539
  '''Properties for defining a ``CfnAgreement``.
388
540
 
389
541
  :param access_role: Connectors are used to send files using either the AS2 or SFTP protocol. For the access role, provide the Amazon Resource Name (ARN) of the AWS Identity and Access Management role to use. *For AS2 connectors* With AS2, you can send files by calling ``StartFileTransfer`` and specifying the file paths in the request parameter, ``SendFilePaths`` . We use the file’s parent directory (for example, for ``--send-file-paths /bucket/dir/file.txt`` , parent directory is ``/bucket/dir/`` ) to temporarily store a processed AS2 message file, store the MDN when we receive them from the partner, and write a final JSON file containing relevant metadata of the transmission. So, the ``AccessRole`` needs to provide read and write access to the parent directory of the file location used in the ``StartFileTransfer`` request. Additionally, you need to provide read and write access to the parent directory of the files that you intend to send with ``StartFileTransfer`` . If you are using Basic authentication for your AS2 connector, the access role requires the ``secretsmanager:GetSecretValue`` permission for the secret. If the secret is encrypted using a customer-managed key instead of the AWS managed key in Secrets Manager, then the role also needs the ``kms:Decrypt`` permission for that key. *For SFTP connectors* Make sure that the access role provides read and write access to the parent directory of the file location that's used in the ``StartFileTransfer`` request. Additionally, make sure that the role provides ``secretsmanager:GetSecretValue`` permission to AWS Secrets Manager .
390
- :param base_directory: The landing directory (folder) for files that are transferred by using the AS2 protocol.
391
542
  :param local_profile_id: A unique identifier for the AS2 local profile.
392
543
  :param partner_profile_id: A unique identifier for the partner profile used in the agreement.
393
544
  :param server_id: A system-assigned unique identifier for a server instance. This identifier indicates the specific server that the agreement uses.
545
+ :param base_directory: The landing directory (folder) for files that are transferred by using the AS2 protocol.
546
+ :param custom_directories: A ``CustomDirectoriesType`` structure. This structure specifies custom directories for storing various AS2 message files. You can specify directories for the following types of files. - Failed files - MDN files - Payload files - Status files - Temporary files
394
547
  :param description: The name or short description that's used to identify the agreement.
395
548
  :param enforce_message_signing: Determines whether or not unsigned messages from your trading partners will be accepted. - ``ENABLED`` : Transfer Family rejects unsigned messages from your trading partner. - ``DISABLED`` (default value): Transfer Family accepts unsigned messages from your trading partner.
396
549
  :param preserve_filename: Determines whether or not Transfer Family appends a unique string of characters to the end of the AS2 message payload filename when saving it. - ``ENABLED`` : the filename provided by your trading parter is preserved when the file is saved. - ``DISABLED`` (default value): when Transfer Family saves the file, the filename is adjusted, as described in `File names and locations <https://docs.aws.amazon.com/transfer/latest/userguide/send-as2-messages.html#file-names-as2>`_ .
@@ -408,12 +561,19 @@ class CfnAgreementProps:
408
561
 
409
562
  cfn_agreement_props = transfer.CfnAgreementProps(
410
563
  access_role="accessRole",
411
- base_directory="baseDirectory",
412
564
  local_profile_id="localProfileId",
413
565
  partner_profile_id="partnerProfileId",
414
566
  server_id="serverId",
415
567
 
416
568
  # the properties below are optional
569
+ base_directory="baseDirectory",
570
+ custom_directories=transfer.CfnAgreement.CustomDirectoriesProperty(
571
+ failed_files_directory="failedFilesDirectory",
572
+ mdn_files_directory="mdnFilesDirectory",
573
+ payload_files_directory="payloadFilesDirectory",
574
+ status_files_directory="statusFilesDirectory",
575
+ temporary_files_directory="temporaryFilesDirectory"
576
+ ),
417
577
  description="description",
418
578
  enforce_message_signing="enforceMessageSigning",
419
579
  preserve_filename="preserveFilename",
@@ -427,10 +587,11 @@ class CfnAgreementProps:
427
587
  if __debug__:
428
588
  type_hints = typing.get_type_hints(_typecheckingstub__c92e8cdff7d6f57ae5fd00ef4190544d79a76c01e88d32b21b88588eeb47ba2e)
429
589
  check_type(argname="argument access_role", value=access_role, expected_type=type_hints["access_role"])
430
- check_type(argname="argument base_directory", value=base_directory, expected_type=type_hints["base_directory"])
431
590
  check_type(argname="argument local_profile_id", value=local_profile_id, expected_type=type_hints["local_profile_id"])
432
591
  check_type(argname="argument partner_profile_id", value=partner_profile_id, expected_type=type_hints["partner_profile_id"])
433
592
  check_type(argname="argument server_id", value=server_id, expected_type=type_hints["server_id"])
593
+ check_type(argname="argument base_directory", value=base_directory, expected_type=type_hints["base_directory"])
594
+ check_type(argname="argument custom_directories", value=custom_directories, expected_type=type_hints["custom_directories"])
434
595
  check_type(argname="argument description", value=description, expected_type=type_hints["description"])
435
596
  check_type(argname="argument enforce_message_signing", value=enforce_message_signing, expected_type=type_hints["enforce_message_signing"])
436
597
  check_type(argname="argument preserve_filename", value=preserve_filename, expected_type=type_hints["preserve_filename"])
@@ -438,11 +599,14 @@ class CfnAgreementProps:
438
599
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
439
600
  self._values: typing.Dict[builtins.str, typing.Any] = {
440
601
  "access_role": access_role,
441
- "base_directory": base_directory,
442
602
  "local_profile_id": local_profile_id,
443
603
  "partner_profile_id": partner_profile_id,
444
604
  "server_id": server_id,
445
605
  }
606
+ if base_directory is not None:
607
+ self._values["base_directory"] = base_directory
608
+ if custom_directories is not None:
609
+ self._values["custom_directories"] = custom_directories
446
610
  if description is not None:
447
611
  self._values["description"] = description
448
612
  if enforce_message_signing is not None:
@@ -476,16 +640,6 @@ class CfnAgreementProps:
476
640
  assert result is not None, "Required property 'access_role' is missing"
477
641
  return typing.cast(builtins.str, result)
478
642
 
479
- @builtins.property
480
- def base_directory(self) -> builtins.str:
481
- '''The landing directory (folder) for files that are transferred by using the AS2 protocol.
482
-
483
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-agreement.html#cfn-transfer-agreement-basedirectory
484
- '''
485
- result = self._values.get("base_directory")
486
- assert result is not None, "Required property 'base_directory' is missing"
487
- return typing.cast(builtins.str, result)
488
-
489
643
  @builtins.property
490
644
  def local_profile_id(self) -> builtins.str:
491
645
  '''A unique identifier for the AS2 local profile.
@@ -518,6 +672,34 @@ class CfnAgreementProps:
518
672
  assert result is not None, "Required property 'server_id' is missing"
519
673
  return typing.cast(builtins.str, result)
520
674
 
675
+ @builtins.property
676
+ def base_directory(self) -> typing.Optional[builtins.str]:
677
+ '''The landing directory (folder) for files that are transferred by using the AS2 protocol.
678
+
679
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-agreement.html#cfn-transfer-agreement-basedirectory
680
+ '''
681
+ result = self._values.get("base_directory")
682
+ return typing.cast(typing.Optional[builtins.str], result)
683
+
684
+ @builtins.property
685
+ def custom_directories(
686
+ self,
687
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAgreement.CustomDirectoriesProperty]]:
688
+ '''A ``CustomDirectoriesType`` structure.
689
+
690
+ This structure specifies custom directories for storing various AS2 message files. You can specify directories for the following types of files.
691
+
692
+ - Failed files
693
+ - MDN files
694
+ - Payload files
695
+ - Status files
696
+ - Temporary files
697
+
698
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-transfer-agreement.html#cfn-transfer-agreement-customdirectories
699
+ '''
700
+ result = self._values.get("custom_directories")
701
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAgreement.CustomDirectoriesProperty]], result)
702
+
521
703
  @builtins.property
522
704
  def description(self) -> typing.Optional[builtins.str]:
523
705
  '''The name or short description that's used to identify the agreement.
@@ -6607,10 +6789,11 @@ def _typecheckingstub__f95ec07e6c4ee624e4f9374f7db0e66b46af64fa8c86e2e41aa290c72
6607
6789
  id: builtins.str,
6608
6790
  *,
6609
6791
  access_role: builtins.str,
6610
- base_directory: builtins.str,
6611
6792
  local_profile_id: builtins.str,
6612
6793
  partner_profile_id: builtins.str,
6613
6794
  server_id: builtins.str,
6795
+ base_directory: typing.Optional[builtins.str] = None,
6796
+ custom_directories: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAgreement.CustomDirectoriesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6614
6797
  description: typing.Optional[builtins.str] = None,
6615
6798
  enforce_message_signing: typing.Optional[builtins.str] = None,
6616
6799
  preserve_filename: typing.Optional[builtins.str] = None,
@@ -6638,26 +6821,32 @@ def _typecheckingstub__6846ae06100d907ce47940f1c737179b266cb64b8ba5e2c4167475979
6638
6821
  """Type checking stubs"""
6639
6822
  pass
6640
6823
 
6641
- def _typecheckingstub__e95a046a6530138645bcc3d9ea79bf173c25ac44d2324af6ecc4137b705bfc28(
6824
+ def _typecheckingstub__fb3167bad2c7efdb7b3e0dd7d0402156f8d6e14fae7c15dd40a5fccd0b81e057(
6642
6825
  value: builtins.str,
6643
6826
  ) -> None:
6644
6827
  """Type checking stubs"""
6645
6828
  pass
6646
6829
 
6647
- def _typecheckingstub__fb3167bad2c7efdb7b3e0dd7d0402156f8d6e14fae7c15dd40a5fccd0b81e057(
6830
+ def _typecheckingstub__bd438983791db4dad3b3d480a6bf25cacd9537198e1ed06c6a676fa3b408f77a(
6648
6831
  value: builtins.str,
6649
6832
  ) -> None:
6650
6833
  """Type checking stubs"""
6651
6834
  pass
6652
6835
 
6653
- def _typecheckingstub__bd438983791db4dad3b3d480a6bf25cacd9537198e1ed06c6a676fa3b408f77a(
6836
+ def _typecheckingstub__14dc2bb42fd7d8e680f89ab4bbef23a05ad685bb8ba0ece9fc2d04ff9c7d508a(
6654
6837
  value: builtins.str,
6655
6838
  ) -> None:
6656
6839
  """Type checking stubs"""
6657
6840
  pass
6658
6841
 
6659
- def _typecheckingstub__14dc2bb42fd7d8e680f89ab4bbef23a05ad685bb8ba0ece9fc2d04ff9c7d508a(
6660
- value: builtins.str,
6842
+ def _typecheckingstub__e95a046a6530138645bcc3d9ea79bf173c25ac44d2324af6ecc4137b705bfc28(
6843
+ value: typing.Optional[builtins.str],
6844
+ ) -> None:
6845
+ """Type checking stubs"""
6846
+ pass
6847
+
6848
+ def _typecheckingstub__0dfcc069ad404f24e1d3d66293208f393508273f19347e58f547f45ba5f8a952(
6849
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnAgreement.CustomDirectoriesProperty]],
6661
6850
  ) -> None:
6662
6851
  """Type checking stubs"""
6663
6852
  pass
@@ -6692,13 +6881,25 @@ def _typecheckingstub__dbeccb7f697f73180ad5ee02e1bc0a8b54212c0eb54c653977d2989de
6692
6881
  """Type checking stubs"""
6693
6882
  pass
6694
6883
 
6884
+ def _typecheckingstub__98a40a95fd9ad9ea9bb69f5fdf7379c4b40ddd5a529d08076025691033961aa4(
6885
+ *,
6886
+ failed_files_directory: builtins.str,
6887
+ mdn_files_directory: builtins.str,
6888
+ payload_files_directory: builtins.str,
6889
+ status_files_directory: builtins.str,
6890
+ temporary_files_directory: builtins.str,
6891
+ ) -> None:
6892
+ """Type checking stubs"""
6893
+ pass
6894
+
6695
6895
  def _typecheckingstub__c92e8cdff7d6f57ae5fd00ef4190544d79a76c01e88d32b21b88588eeb47ba2e(
6696
6896
  *,
6697
6897
  access_role: builtins.str,
6698
- base_directory: builtins.str,
6699
6898
  local_profile_id: builtins.str,
6700
6899
  partner_profile_id: builtins.str,
6701
6900
  server_id: builtins.str,
6901
+ base_directory: typing.Optional[builtins.str] = None,
6902
+ custom_directories: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnAgreement.CustomDirectoriesProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6702
6903
  description: typing.Optional[builtins.str] = None,
6703
6904
  enforce_message_signing: typing.Optional[builtins.str] = None,
6704
6905
  preserve_filename: typing.Optional[builtins.str] = None,