aws-cdk-lib 2.138.0__py3-none-any.whl → 2.139.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 (37) hide show
  1. aws_cdk/_jsii/__init__.py +1 -1
  2. aws_cdk/_jsii/{aws-cdk-lib@2.138.0.jsii.tgz → aws-cdk-lib@2.139.0.jsii.tgz} +0 -0
  3. aws_cdk/aws_apigateway/__init__.py +29 -16
  4. aws_cdk/aws_appconfig/__init__.py +289 -44
  5. aws_cdk/aws_appintegrations/__init__.py +55 -6
  6. aws_cdk/aws_autoscaling/__init__.py +62 -60
  7. aws_cdk/aws_backup/__init__.py +34 -42
  8. aws_cdk/aws_batch/__init__.py +9 -3
  9. aws_cdk/aws_bedrock/__init__.py +4144 -0
  10. aws_cdk/aws_cloudwatch/__init__.py +120 -0
  11. aws_cdk/aws_datazone/__init__.py +22 -0
  12. aws_cdk/aws_dms/__init__.py +2 -4
  13. aws_cdk/aws_ec2/__init__.py +123 -84
  14. aws_cdk/aws_ecr/__init__.py +630 -0
  15. aws_cdk/aws_ecs/__init__.py +121 -19
  16. aws_cdk/aws_efs/__init__.py +592 -0
  17. aws_cdk/aws_elasticloadbalancingv2/__init__.py +23 -8
  18. aws_cdk/aws_events_targets/__init__.py +17 -4
  19. aws_cdk/aws_kms/__init__.py +44 -0
  20. aws_cdk/aws_lambda/__init__.py +9 -0
  21. aws_cdk/aws_oam/__init__.py +204 -0
  22. aws_cdk/aws_rds/__init__.py +15 -11
  23. aws_cdk/aws_redshiftserverless/__init__.py +157 -0
  24. aws_cdk/aws_securitylake/__init__.py +160 -105
  25. aws_cdk/aws_ses_actions/__init__.py +155 -0
  26. aws_cdk/aws_ssm/__init__.py +5 -2
  27. aws_cdk/aws_timestream/__init__.py +1045 -0
  28. aws_cdk/aws_transfer/__init__.py +15 -6
  29. aws_cdk/aws_wisdom/__init__.py +2 -2
  30. aws_cdk/custom_resources/__init__.py +440 -0
  31. aws_cdk/cx_api/__init__.py +17 -0
  32. {aws_cdk_lib-2.138.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/METADATA +1 -1
  33. {aws_cdk_lib-2.138.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/RECORD +37 -37
  34. {aws_cdk_lib-2.138.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/LICENSE +0 -0
  35. {aws_cdk_lib-2.138.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/NOTICE +0 -0
  36. {aws_cdk_lib-2.138.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/WHEEL +0 -0
  37. {aws_cdk_lib-2.138.0.dist-info → aws_cdk_lib-2.139.0.dist-info}/top_level.txt +0 -0
@@ -78,6 +78,42 @@ This is to prevent deployment failures due to cross-AZ configurations.
78
78
 
79
79
  ⚠️ When `oneZone` is enabled, `vpcSubnets` cannot be specified.
80
80
 
81
+ ### Replicating file systems
82
+
83
+ You can create a replica of your EFS file system in the AWS Region of your preference.
84
+
85
+ ```python
86
+ # vpc: ec2.Vpc
87
+
88
+
89
+ # auto generate a regional replication destination file system
90
+ efs.FileSystem(self, "RegionalReplicationFileSystem",
91
+ vpc=vpc,
92
+ replication_configuration=efs.ReplicationConfiguration.regional_file_system("us-west-2")
93
+ )
94
+
95
+ # auto generate a one zone replication destination file system
96
+ efs.FileSystem(self, "OneZoneReplicationFileSystem",
97
+ vpc=vpc,
98
+ replication_configuration=efs.ReplicationConfiguration.one_zone_file_system("us-east-1", "us-east-1a")
99
+ )
100
+
101
+ destination_file_system = efs.FileSystem(self, "DestinationFileSystem",
102
+ vpc=vpc,
103
+ # set as the read-only file system for use as a replication destination
104
+ replication_overwrite_protection=efs.ReplicationOverwriteProtection.DISABLED
105
+ )
106
+ # specify the replication destination file system
107
+ efs.FileSystem(self, "ReplicationFileSystem",
108
+ vpc=vpc,
109
+ replication_configuration=efs.ReplicationConfiguration.existing_file_system(destination_file_system)
110
+ )
111
+ ```
112
+
113
+ **Note**: EFS now supports only one replication destination and thus allows specifying just one `replicationConfiguration` for each file system.
114
+
115
+ > Visit [Replicating file systems](https://docs.aws.amazon.com/efs/latest/ug/efs-replication.html) for more details.
116
+
81
117
  ### IAM to control file system data access
82
118
 
83
119
  You can use both IAM identity policies and resource policies to control client access to Amazon EFS resources in a way that is scalable and optimized for cloud environments. Using IAM, you can permit clients to perform specific actions on a file system, including read-only, write, and root access.
@@ -2936,6 +2972,57 @@ class CfnMountTargetProps:
2936
2972
  )
2937
2973
 
2938
2974
 
2975
+ @jsii.data_type(
2976
+ jsii_type="aws-cdk-lib.aws_efs.ExistingFileSystemProps",
2977
+ jsii_struct_bases=[],
2978
+ name_mapping={"destination_file_system": "destinationFileSystem"},
2979
+ )
2980
+ class ExistingFileSystemProps:
2981
+ def __init__(self, *, destination_file_system: "IFileSystem") -> None:
2982
+ '''Properties for configuring ReplicationConfiguration to replicate to an existing file system.
2983
+
2984
+ :param destination_file_system: The existing destination file system for the replication.
2985
+
2986
+ :exampleMetadata: fixture=_generated
2987
+
2988
+ Example::
2989
+
2990
+ # The code below shows an example of how to instantiate this type.
2991
+ # The values are placeholders you should change.
2992
+ from aws_cdk import aws_efs as efs
2993
+
2994
+ # file_system: efs.FileSystem
2995
+
2996
+ existing_file_system_props = efs.ExistingFileSystemProps(
2997
+ destination_file_system=file_system
2998
+ )
2999
+ '''
3000
+ if __debug__:
3001
+ type_hints = typing.get_type_hints(_typecheckingstub__d9c62bc4cd9ae1dbb417e0cd90508616e99886736d2ff0779e0c163618a47ea4)
3002
+ check_type(argname="argument destination_file_system", value=destination_file_system, expected_type=type_hints["destination_file_system"])
3003
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3004
+ "destination_file_system": destination_file_system,
3005
+ }
3006
+
3007
+ @builtins.property
3008
+ def destination_file_system(self) -> "IFileSystem":
3009
+ '''The existing destination file system for the replication.'''
3010
+ result = self._values.get("destination_file_system")
3011
+ assert result is not None, "Required property 'destination_file_system' is missing"
3012
+ return typing.cast("IFileSystem", result)
3013
+
3014
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3015
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3016
+
3017
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3018
+ return not (rhs == self)
3019
+
3020
+ def __repr__(self) -> str:
3021
+ return "ExistingFileSystemProps(%s)" % ", ".join(
3022
+ k + "=" + repr(v) for k, v in self._values.items()
3023
+ )
3024
+
3025
+
2939
3026
  @jsii.data_type(
2940
3027
  jsii_type="aws-cdk-lib.aws_efs.FileSystemAttributes",
2941
3028
  jsii_struct_bases=[],
@@ -3040,6 +3127,7 @@ class FileSystemAttributes:
3040
3127
  "performance_mode": "performanceMode",
3041
3128
  "provisioned_throughput_per_second": "provisionedThroughputPerSecond",
3042
3129
  "removal_policy": "removalPolicy",
3130
+ "replication_configuration": "replicationConfiguration",
3043
3131
  "replication_overwrite_protection": "replicationOverwriteProtection",
3044
3132
  "security_group": "securityGroup",
3045
3133
  "throughput_mode": "throughputMode",
@@ -3064,6 +3152,7 @@ class FileSystemProps:
3064
3152
  performance_mode: typing.Optional["PerformanceMode"] = None,
3065
3153
  provisioned_throughput_per_second: typing.Optional[_Size_7b441c34] = None,
3066
3154
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
3155
+ replication_configuration: typing.Optional["ReplicationConfiguration"] = None,
3067
3156
  replication_overwrite_protection: typing.Optional["ReplicationOverwriteProtection"] = None,
3068
3157
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
3069
3158
  throughput_mode: typing.Optional["ThroughputMode"] = None,
@@ -3085,6 +3174,7 @@ class FileSystemProps:
3085
3174
  :param performance_mode: The performance mode that the file system will operate under. An Amazon EFS file system's performance mode can't be changed after the file system has been created. Updating this property will replace the file system. Default: PerformanceMode.GENERAL_PURPOSE
3086
3175
  :param provisioned_throughput_per_second: Provisioned throughput for the file system. This is a required property if the throughput mode is set to PROVISIONED. Must be at least 1MiB/s. Default: - none, errors out
3087
3176
  :param removal_policy: The removal policy to apply to the file system. Default: RemovalPolicy.RETAIN
3177
+ :param replication_configuration: Replication configuration for the file system. Default: - no replication
3088
3178
  :param replication_overwrite_protection: Whether to enable the filesystem's replication overwrite protection or not. Set false if you want to create a read-only filesystem for use as a replication destination. Default: ReplicationOverwriteProtection.ENABLED
3089
3179
  :param security_group: Security Group to assign to this file system. Default: - creates new security group which allows all outbound traffic
3090
3180
  :param throughput_mode: Enum to mention the throughput mode of the file system. Default: ThroughputMode.BURSTING
@@ -3125,6 +3215,7 @@ class FileSystemProps:
3125
3215
  check_type(argname="argument performance_mode", value=performance_mode, expected_type=type_hints["performance_mode"])
3126
3216
  check_type(argname="argument provisioned_throughput_per_second", value=provisioned_throughput_per_second, expected_type=type_hints["provisioned_throughput_per_second"])
3127
3217
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
3218
+ check_type(argname="argument replication_configuration", value=replication_configuration, expected_type=type_hints["replication_configuration"])
3128
3219
  check_type(argname="argument replication_overwrite_protection", value=replication_overwrite_protection, expected_type=type_hints["replication_overwrite_protection"])
3129
3220
  check_type(argname="argument security_group", value=security_group, expected_type=type_hints["security_group"])
3130
3221
  check_type(argname="argument throughput_mode", value=throughput_mode, expected_type=type_hints["throughput_mode"])
@@ -3157,6 +3248,8 @@ class FileSystemProps:
3157
3248
  self._values["provisioned_throughput_per_second"] = provisioned_throughput_per_second
3158
3249
  if removal_policy is not None:
3159
3250
  self._values["removal_policy"] = removal_policy
3251
+ if replication_configuration is not None:
3252
+ self._values["replication_configuration"] = replication_configuration
3160
3253
  if replication_overwrite_protection is not None:
3161
3254
  self._values["replication_overwrite_protection"] = replication_overwrite_protection
3162
3255
  if security_group is not None:
@@ -3304,6 +3397,15 @@ class FileSystemProps:
3304
3397
  result = self._values.get("removal_policy")
3305
3398
  return typing.cast(typing.Optional[_RemovalPolicy_9f93c814], result)
3306
3399
 
3400
+ @builtins.property
3401
+ def replication_configuration(self) -> typing.Optional["ReplicationConfiguration"]:
3402
+ '''Replication configuration for the file system.
3403
+
3404
+ :default: - no replication
3405
+ '''
3406
+ result = self._values.get("replication_configuration")
3407
+ return typing.cast(typing.Optional["ReplicationConfiguration"], result)
3408
+
3307
3409
  @builtins.property
3308
3410
  def replication_overwrite_protection(
3309
3411
  self,
@@ -3628,6 +3730,98 @@ class LifecyclePolicy(enum.Enum):
3628
3730
  '''After 365 days of not being accessed.'''
3629
3731
 
3630
3732
 
3733
+ @jsii.data_type(
3734
+ jsii_type="aws-cdk-lib.aws_efs.OneZoneFileSystemProps",
3735
+ jsii_struct_bases=[],
3736
+ name_mapping={
3737
+ "availability_zone": "availabilityZone",
3738
+ "region": "region",
3739
+ "kms_key": "kmsKey",
3740
+ },
3741
+ )
3742
+ class OneZoneFileSystemProps:
3743
+ def __init__(
3744
+ self,
3745
+ *,
3746
+ availability_zone: builtins.str,
3747
+ region: builtins.str,
3748
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
3749
+ ) -> None:
3750
+ '''Properties for configuring ReplicationConfiguration to replicate to a new One Zone file system.
3751
+
3752
+ :param availability_zone: The availability zone name of the destination file system. One zone file system is used as the destination file system when this property is set.
3753
+ :param region: The AWS Region in which the destination file system is located.
3754
+ :param kms_key: AWS KMS key used to protect the encrypted file system. Default: - use service-managed KMS key for Amazon EFS
3755
+
3756
+ :exampleMetadata: fixture=_generated
3757
+
3758
+ Example::
3759
+
3760
+ # The code below shows an example of how to instantiate this type.
3761
+ # The values are placeholders you should change.
3762
+ from aws_cdk import aws_efs as efs
3763
+ from aws_cdk import aws_kms as kms
3764
+
3765
+ # key: kms.Key
3766
+
3767
+ one_zone_file_system_props = efs.OneZoneFileSystemProps(
3768
+ availability_zone="availabilityZone",
3769
+ region="region",
3770
+
3771
+ # the properties below are optional
3772
+ kms_key=key
3773
+ )
3774
+ '''
3775
+ if __debug__:
3776
+ type_hints = typing.get_type_hints(_typecheckingstub__8f4abdfa3c790e98b7a050abfbb55c767e657780c0e1b97249634ff7b43f00cd)
3777
+ check_type(argname="argument availability_zone", value=availability_zone, expected_type=type_hints["availability_zone"])
3778
+ check_type(argname="argument region", value=region, expected_type=type_hints["region"])
3779
+ check_type(argname="argument kms_key", value=kms_key, expected_type=type_hints["kms_key"])
3780
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3781
+ "availability_zone": availability_zone,
3782
+ "region": region,
3783
+ }
3784
+ if kms_key is not None:
3785
+ self._values["kms_key"] = kms_key
3786
+
3787
+ @builtins.property
3788
+ def availability_zone(self) -> builtins.str:
3789
+ '''The availability zone name of the destination file system.
3790
+
3791
+ One zone file system is used as the destination file system when this property is set.
3792
+ '''
3793
+ result = self._values.get("availability_zone")
3794
+ assert result is not None, "Required property 'availability_zone' is missing"
3795
+ return typing.cast(builtins.str, result)
3796
+
3797
+ @builtins.property
3798
+ def region(self) -> builtins.str:
3799
+ '''The AWS Region in which the destination file system is located.'''
3800
+ result = self._values.get("region")
3801
+ assert result is not None, "Required property 'region' is missing"
3802
+ return typing.cast(builtins.str, result)
3803
+
3804
+ @builtins.property
3805
+ def kms_key(self) -> typing.Optional[_IKey_5f11635f]:
3806
+ '''AWS KMS key used to protect the encrypted file system.
3807
+
3808
+ :default: - use service-managed KMS key for Amazon EFS
3809
+ '''
3810
+ result = self._values.get("kms_key")
3811
+ return typing.cast(typing.Optional[_IKey_5f11635f], result)
3812
+
3813
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3814
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3815
+
3816
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3817
+ return not (rhs == self)
3818
+
3819
+ def __repr__(self) -> str:
3820
+ return "OneZoneFileSystemProps(%s)" % ", ".join(
3821
+ k + "=" + repr(v) for k, v in self._values.items()
3822
+ )
3823
+
3824
+
3631
3825
  @jsii.enum(jsii_type="aws-cdk-lib.aws_efs.OutOfInfrequentAccessPolicy")
3632
3826
  class OutOfInfrequentAccessPolicy(enum.Enum):
3633
3827
  '''EFS Out Of Infrequent Access Policy, if a file is accessed given times, it will move back to primary storage class.
@@ -3791,6 +3985,339 @@ class PosixUser:
3791
3985
  )
3792
3986
 
3793
3987
 
3988
+ @jsii.data_type(
3989
+ jsii_type="aws-cdk-lib.aws_efs.RegionalFileSystemProps",
3990
+ jsii_struct_bases=[],
3991
+ name_mapping={"kms_key": "kmsKey", "region": "region"},
3992
+ )
3993
+ class RegionalFileSystemProps:
3994
+ def __init__(
3995
+ self,
3996
+ *,
3997
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
3998
+ region: typing.Optional[builtins.str] = None,
3999
+ ) -> None:
4000
+ '''Properties for configuring ReplicationConfiguration to replicate to a new Regional file system.
4001
+
4002
+ :param kms_key: AWS KMS key used to protect the encrypted file system. Default: - use service-managed KMS key for Amazon EFS
4003
+ :param region: The AWS Region in which the destination file system is located. Default: - the region of the stack
4004
+
4005
+ :exampleMetadata: fixture=_generated
4006
+
4007
+ Example::
4008
+
4009
+ # The code below shows an example of how to instantiate this type.
4010
+ # The values are placeholders you should change.
4011
+ from aws_cdk import aws_efs as efs
4012
+ from aws_cdk import aws_kms as kms
4013
+
4014
+ # key: kms.Key
4015
+
4016
+ regional_file_system_props = efs.RegionalFileSystemProps(
4017
+ kms_key=key,
4018
+ region="region"
4019
+ )
4020
+ '''
4021
+ if __debug__:
4022
+ type_hints = typing.get_type_hints(_typecheckingstub__8e5f31a5d9e5ce51bef26c5cc20973bf80024b4c7fba6d891072ccaf06a41be5)
4023
+ check_type(argname="argument kms_key", value=kms_key, expected_type=type_hints["kms_key"])
4024
+ check_type(argname="argument region", value=region, expected_type=type_hints["region"])
4025
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
4026
+ if kms_key is not None:
4027
+ self._values["kms_key"] = kms_key
4028
+ if region is not None:
4029
+ self._values["region"] = region
4030
+
4031
+ @builtins.property
4032
+ def kms_key(self) -> typing.Optional[_IKey_5f11635f]:
4033
+ '''AWS KMS key used to protect the encrypted file system.
4034
+
4035
+ :default: - use service-managed KMS key for Amazon EFS
4036
+ '''
4037
+ result = self._values.get("kms_key")
4038
+ return typing.cast(typing.Optional[_IKey_5f11635f], result)
4039
+
4040
+ @builtins.property
4041
+ def region(self) -> typing.Optional[builtins.str]:
4042
+ '''The AWS Region in which the destination file system is located.
4043
+
4044
+ :default: - the region of the stack
4045
+ '''
4046
+ result = self._values.get("region")
4047
+ return typing.cast(typing.Optional[builtins.str], result)
4048
+
4049
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4050
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4051
+
4052
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4053
+ return not (rhs == self)
4054
+
4055
+ def __repr__(self) -> str:
4056
+ return "RegionalFileSystemProps(%s)" % ", ".join(
4057
+ k + "=" + repr(v) for k, v in self._values.items()
4058
+ )
4059
+
4060
+
4061
+ class ReplicationConfiguration(
4062
+ metaclass=jsii.JSIIAbstractClass,
4063
+ jsii_type="aws-cdk-lib.aws_efs.ReplicationConfiguration",
4064
+ ):
4065
+ '''EFS Replication Configuration.
4066
+
4067
+ :exampleMetadata: infused
4068
+
4069
+ Example::
4070
+
4071
+ # vpc: ec2.Vpc
4072
+
4073
+
4074
+ # auto generate a regional replication destination file system
4075
+ efs.FileSystem(self, "RegionalReplicationFileSystem",
4076
+ vpc=vpc,
4077
+ replication_configuration=efs.ReplicationConfiguration.regional_file_system("us-west-2")
4078
+ )
4079
+
4080
+ # auto generate a one zone replication destination file system
4081
+ efs.FileSystem(self, "OneZoneReplicationFileSystem",
4082
+ vpc=vpc,
4083
+ replication_configuration=efs.ReplicationConfiguration.one_zone_file_system("us-east-1", "us-east-1a")
4084
+ )
4085
+
4086
+ destination_file_system = efs.FileSystem(self, "DestinationFileSystem",
4087
+ vpc=vpc,
4088
+ # set as the read-only file system for use as a replication destination
4089
+ replication_overwrite_protection=efs.ReplicationOverwriteProtection.DISABLED
4090
+ )
4091
+ # specify the replication destination file system
4092
+ efs.FileSystem(self, "ReplicationFileSystem",
4093
+ vpc=vpc,
4094
+ replication_configuration=efs.ReplicationConfiguration.existing_file_system(destination_file_system)
4095
+ )
4096
+ '''
4097
+
4098
+ def __init__(
4099
+ self,
4100
+ *,
4101
+ availability_zone: typing.Optional[builtins.str] = None,
4102
+ destination_file_system: typing.Optional[IFileSystem] = None,
4103
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
4104
+ region: typing.Optional[builtins.str] = None,
4105
+ ) -> None:
4106
+ '''
4107
+ :param availability_zone: The availability zone name of the destination file system. One zone file system is used as the destination file system when this property is set. Default: - no availability zone is set
4108
+ :param destination_file_system: The existing destination file system for the replication. Default: - None
4109
+ :param kms_key: AWS KMS key used to protect the encrypted file system. Default: - use service-managed KMS key for Amazon EFS
4110
+ :param region: The AWS Region in which the destination file system is located. Default: - the region of the stack
4111
+ '''
4112
+ options = ReplicationConfigurationProps(
4113
+ availability_zone=availability_zone,
4114
+ destination_file_system=destination_file_system,
4115
+ kms_key=kms_key,
4116
+ region=region,
4117
+ )
4118
+
4119
+ jsii.create(self.__class__, self, [options])
4120
+
4121
+ @jsii.member(jsii_name="existingFileSystem")
4122
+ @builtins.classmethod
4123
+ def existing_file_system(
4124
+ cls,
4125
+ destination_file_system: IFileSystem,
4126
+ ) -> "ReplicationConfiguration":
4127
+ '''Specify the existing destination file system for the replication.
4128
+
4129
+ :param destination_file_system: The existing destination file system for the replication.
4130
+ '''
4131
+ if __debug__:
4132
+ type_hints = typing.get_type_hints(_typecheckingstub__34d3dea9ddf1aad07fb26f1da53ab80f3f9dd969fdc864369ca638a47d88e7a7)
4133
+ check_type(argname="argument destination_file_system", value=destination_file_system, expected_type=type_hints["destination_file_system"])
4134
+ return typing.cast("ReplicationConfiguration", jsii.sinvoke(cls, "existingFileSystem", [destination_file_system]))
4135
+
4136
+ @jsii.member(jsii_name="oneZoneFileSystem")
4137
+ @builtins.classmethod
4138
+ def one_zone_file_system(
4139
+ cls,
4140
+ region: builtins.str,
4141
+ availability_zone: builtins.str,
4142
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
4143
+ ) -> "ReplicationConfiguration":
4144
+ '''Create a new one zone destination file system for the replication.
4145
+
4146
+ :param region: The AWS Region in which the specified availability zone belongs to.
4147
+ :param availability_zone: The availability zone name of the destination file system.
4148
+ :param kms_key: AWS KMS key used to protect the encrypted file system. Default is service-managed KMS key for Amazon EFS.
4149
+ '''
4150
+ if __debug__:
4151
+ type_hints = typing.get_type_hints(_typecheckingstub__03feaa91d7d2a591c01e42c87922247340eaff3051d1d46798e1cee3dd075c33)
4152
+ check_type(argname="argument region", value=region, expected_type=type_hints["region"])
4153
+ check_type(argname="argument availability_zone", value=availability_zone, expected_type=type_hints["availability_zone"])
4154
+ check_type(argname="argument kms_key", value=kms_key, expected_type=type_hints["kms_key"])
4155
+ return typing.cast("ReplicationConfiguration", jsii.sinvoke(cls, "oneZoneFileSystem", [region, availability_zone, kms_key]))
4156
+
4157
+ @jsii.member(jsii_name="regionalFileSystem")
4158
+ @builtins.classmethod
4159
+ def regional_file_system(
4160
+ cls,
4161
+ region: typing.Optional[builtins.str] = None,
4162
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
4163
+ ) -> "ReplicationConfiguration":
4164
+ '''Create a new regional destination file system for the replication.
4165
+
4166
+ :param region: The AWS Region in which the destination file system is located. Default is the region of the stack.
4167
+ :param kms_key: AWS KMS key used to protect the encrypted file system. Default is service-managed KMS key for Amazon EFS.
4168
+ '''
4169
+ if __debug__:
4170
+ type_hints = typing.get_type_hints(_typecheckingstub__a8c205c27eb7c267e9a53c283b59ced307f90e800333dea1748fd1901d785236)
4171
+ check_type(argname="argument region", value=region, expected_type=type_hints["region"])
4172
+ check_type(argname="argument kms_key", value=kms_key, expected_type=type_hints["kms_key"])
4173
+ return typing.cast("ReplicationConfiguration", jsii.sinvoke(cls, "regionalFileSystem", [region, kms_key]))
4174
+
4175
+ @builtins.property
4176
+ @jsii.member(jsii_name="availabilityZone")
4177
+ def availability_zone(self) -> typing.Optional[builtins.str]:
4178
+ '''The availability zone name of the destination file system.
4179
+
4180
+ One zone file system is used as the destination file system when this property is set.
4181
+ '''
4182
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "availabilityZone"))
4183
+
4184
+ @builtins.property
4185
+ @jsii.member(jsii_name="destinationFileSystem")
4186
+ def destination_file_system(self) -> typing.Optional[IFileSystem]:
4187
+ '''The existing destination file system for the replication.'''
4188
+ return typing.cast(typing.Optional[IFileSystem], jsii.get(self, "destinationFileSystem"))
4189
+
4190
+ @builtins.property
4191
+ @jsii.member(jsii_name="kmsKey")
4192
+ def kms_key(self) -> typing.Optional[_IKey_5f11635f]:
4193
+ '''AWS KMS key used to protect the encrypted file system.'''
4194
+ return typing.cast(typing.Optional[_IKey_5f11635f], jsii.get(self, "kmsKey"))
4195
+
4196
+ @builtins.property
4197
+ @jsii.member(jsii_name="region")
4198
+ def region(self) -> typing.Optional[builtins.str]:
4199
+ '''The AWS Region in which the destination file system is located.'''
4200
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "region"))
4201
+
4202
+
4203
+ class _ReplicationConfigurationProxy(ReplicationConfiguration):
4204
+ pass
4205
+
4206
+ # Adding a "__jsii_proxy_class__(): typing.Type" function to the abstract class
4207
+ typing.cast(typing.Any, ReplicationConfiguration).__jsii_proxy_class__ = lambda : _ReplicationConfigurationProxy
4208
+
4209
+
4210
+ @jsii.data_type(
4211
+ jsii_type="aws-cdk-lib.aws_efs.ReplicationConfigurationProps",
4212
+ jsii_struct_bases=[],
4213
+ name_mapping={
4214
+ "availability_zone": "availabilityZone",
4215
+ "destination_file_system": "destinationFileSystem",
4216
+ "kms_key": "kmsKey",
4217
+ "region": "region",
4218
+ },
4219
+ )
4220
+ class ReplicationConfigurationProps:
4221
+ def __init__(
4222
+ self,
4223
+ *,
4224
+ availability_zone: typing.Optional[builtins.str] = None,
4225
+ destination_file_system: typing.Optional[IFileSystem] = None,
4226
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
4227
+ region: typing.Optional[builtins.str] = None,
4228
+ ) -> None:
4229
+ '''Properties for the ReplicationConfiguration.
4230
+
4231
+ :param availability_zone: The availability zone name of the destination file system. One zone file system is used as the destination file system when this property is set. Default: - no availability zone is set
4232
+ :param destination_file_system: The existing destination file system for the replication. Default: - None
4233
+ :param kms_key: AWS KMS key used to protect the encrypted file system. Default: - use service-managed KMS key for Amazon EFS
4234
+ :param region: The AWS Region in which the destination file system is located. Default: - the region of the stack
4235
+
4236
+ :exampleMetadata: fixture=_generated
4237
+
4238
+ Example::
4239
+
4240
+ # The code below shows an example of how to instantiate this type.
4241
+ # The values are placeholders you should change.
4242
+ from aws_cdk import aws_efs as efs
4243
+ from aws_cdk import aws_kms as kms
4244
+
4245
+ # file_system: efs.FileSystem
4246
+ # key: kms.Key
4247
+
4248
+ replication_configuration_props = efs.ReplicationConfigurationProps(
4249
+ availability_zone="availabilityZone",
4250
+ destination_file_system=file_system,
4251
+ kms_key=key,
4252
+ region="region"
4253
+ )
4254
+ '''
4255
+ if __debug__:
4256
+ type_hints = typing.get_type_hints(_typecheckingstub__f4e59d29e2aee34149bd4bb57cf8b214cfb2a70fe199b76106b163c20aaeaec9)
4257
+ check_type(argname="argument availability_zone", value=availability_zone, expected_type=type_hints["availability_zone"])
4258
+ check_type(argname="argument destination_file_system", value=destination_file_system, expected_type=type_hints["destination_file_system"])
4259
+ check_type(argname="argument kms_key", value=kms_key, expected_type=type_hints["kms_key"])
4260
+ check_type(argname="argument region", value=region, expected_type=type_hints["region"])
4261
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
4262
+ if availability_zone is not None:
4263
+ self._values["availability_zone"] = availability_zone
4264
+ if destination_file_system is not None:
4265
+ self._values["destination_file_system"] = destination_file_system
4266
+ if kms_key is not None:
4267
+ self._values["kms_key"] = kms_key
4268
+ if region is not None:
4269
+ self._values["region"] = region
4270
+
4271
+ @builtins.property
4272
+ def availability_zone(self) -> typing.Optional[builtins.str]:
4273
+ '''The availability zone name of the destination file system.
4274
+
4275
+ One zone file system is used as the destination file system when this property is set.
4276
+
4277
+ :default: - no availability zone is set
4278
+ '''
4279
+ result = self._values.get("availability_zone")
4280
+ return typing.cast(typing.Optional[builtins.str], result)
4281
+
4282
+ @builtins.property
4283
+ def destination_file_system(self) -> typing.Optional[IFileSystem]:
4284
+ '''The existing destination file system for the replication.
4285
+
4286
+ :default: - None
4287
+ '''
4288
+ result = self._values.get("destination_file_system")
4289
+ return typing.cast(typing.Optional[IFileSystem], result)
4290
+
4291
+ @builtins.property
4292
+ def kms_key(self) -> typing.Optional[_IKey_5f11635f]:
4293
+ '''AWS KMS key used to protect the encrypted file system.
4294
+
4295
+ :default: - use service-managed KMS key for Amazon EFS
4296
+ '''
4297
+ result = self._values.get("kms_key")
4298
+ return typing.cast(typing.Optional[_IKey_5f11635f], result)
4299
+
4300
+ @builtins.property
4301
+ def region(self) -> typing.Optional[builtins.str]:
4302
+ '''The AWS Region in which the destination file system is located.
4303
+
4304
+ :default: - the region of the stack
4305
+ '''
4306
+ result = self._values.get("region")
4307
+ return typing.cast(typing.Optional[builtins.str], result)
4308
+
4309
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
4310
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
4311
+
4312
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
4313
+ return not (rhs == self)
4314
+
4315
+ def __repr__(self) -> str:
4316
+ return "ReplicationConfigurationProps(%s)" % ", ".join(
4317
+ k + "=" + repr(v) for k, v in self._values.items()
4318
+ )
4319
+
4320
+
3794
4321
  @jsii.enum(jsii_type="aws-cdk-lib.aws_efs.ReplicationOverwriteProtection")
3795
4322
  class ReplicationOverwriteProtection(enum.Enum):
3796
4323
  '''The status of the file system's replication overwrite protection.
@@ -4010,6 +4537,7 @@ class FileSystem(
4010
4537
  performance_mode: typing.Optional[PerformanceMode] = None,
4011
4538
  provisioned_throughput_per_second: typing.Optional[_Size_7b441c34] = None,
4012
4539
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
4540
+ replication_configuration: typing.Optional[ReplicationConfiguration] = None,
4013
4541
  replication_overwrite_protection: typing.Optional[ReplicationOverwriteProtection] = None,
4014
4542
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
4015
4543
  throughput_mode: typing.Optional[ThroughputMode] = None,
@@ -4033,6 +4561,7 @@ class FileSystem(
4033
4561
  :param performance_mode: The performance mode that the file system will operate under. An Amazon EFS file system's performance mode can't be changed after the file system has been created. Updating this property will replace the file system. Default: PerformanceMode.GENERAL_PURPOSE
4034
4562
  :param provisioned_throughput_per_second: Provisioned throughput for the file system. This is a required property if the throughput mode is set to PROVISIONED. Must be at least 1MiB/s. Default: - none, errors out
4035
4563
  :param removal_policy: The removal policy to apply to the file system. Default: RemovalPolicy.RETAIN
4564
+ :param replication_configuration: Replication configuration for the file system. Default: - no replication
4036
4565
  :param replication_overwrite_protection: Whether to enable the filesystem's replication overwrite protection or not. Set false if you want to create a read-only filesystem for use as a replication destination. Default: ReplicationOverwriteProtection.ENABLED
4037
4566
  :param security_group: Security Group to assign to this file system. Default: - creates new security group which allows all outbound traffic
4038
4567
  :param throughput_mode: Enum to mention the throughput mode of the file system. Default: ThroughputMode.BURSTING
@@ -4057,6 +4586,7 @@ class FileSystem(
4057
4586
  performance_mode=performance_mode,
4058
4587
  provisioned_throughput_per_second=provisioned_throughput_per_second,
4059
4588
  removal_policy=removal_policy,
4589
+ replication_configuration=replication_configuration,
4060
4590
  replication_overwrite_protection=replication_overwrite_protection,
4061
4591
  security_group=security_group,
4062
4592
  throughput_mode=throughput_mode,
@@ -4239,15 +4769,20 @@ __all__ = [
4239
4769
  "CfnFileSystemProps",
4240
4770
  "CfnMountTarget",
4241
4771
  "CfnMountTargetProps",
4772
+ "ExistingFileSystemProps",
4242
4773
  "FileSystem",
4243
4774
  "FileSystemAttributes",
4244
4775
  "FileSystemProps",
4245
4776
  "IAccessPoint",
4246
4777
  "IFileSystem",
4247
4778
  "LifecyclePolicy",
4779
+ "OneZoneFileSystemProps",
4248
4780
  "OutOfInfrequentAccessPolicy",
4249
4781
  "PerformanceMode",
4250
4782
  "PosixUser",
4783
+ "RegionalFileSystemProps",
4784
+ "ReplicationConfiguration",
4785
+ "ReplicationConfigurationProps",
4251
4786
  "ReplicationOverwriteProtection",
4252
4787
  "ThroughputMode",
4253
4788
  ]
@@ -4627,6 +5162,13 @@ def _typecheckingstub__f2ad126af1a9797276c238562f8185eb06a56da00a9b12a35504f9d72
4627
5162
  """Type checking stubs"""
4628
5163
  pass
4629
5164
 
5165
+ def _typecheckingstub__d9c62bc4cd9ae1dbb417e0cd90508616e99886736d2ff0779e0c163618a47ea4(
5166
+ *,
5167
+ destination_file_system: IFileSystem,
5168
+ ) -> None:
5169
+ """Type checking stubs"""
5170
+ pass
5171
+
4630
5172
  def _typecheckingstub__a7f9028e19d4f85ea9a53bb13e46bb5ac917443add6e7ec5e117fdc6136100b7(
4631
5173
  *,
4632
5174
  security_group: _ISecurityGroup_acf8a799,
@@ -4651,6 +5193,7 @@ def _typecheckingstub__a11d59607a7c01a190b2b0587733658cfcb8eddfb252f3c48abdc988b
4651
5193
  performance_mode: typing.Optional[PerformanceMode] = None,
4652
5194
  provisioned_throughput_per_second: typing.Optional[_Size_7b441c34] = None,
4653
5195
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
5196
+ replication_configuration: typing.Optional[ReplicationConfiguration] = None,
4654
5197
  replication_overwrite_protection: typing.Optional[ReplicationOverwriteProtection] = None,
4655
5198
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
4656
5199
  throughput_mode: typing.Optional[ThroughputMode] = None,
@@ -4685,6 +5228,15 @@ def _typecheckingstub__4057ba12ffe92e9bfbd1c90bf8a78538a6b12163670d7d94114f46441
4685
5228
  """Type checking stubs"""
4686
5229
  pass
4687
5230
 
5231
+ def _typecheckingstub__8f4abdfa3c790e98b7a050abfbb55c767e657780c0e1b97249634ff7b43f00cd(
5232
+ *,
5233
+ availability_zone: builtins.str,
5234
+ region: builtins.str,
5235
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
5236
+ ) -> None:
5237
+ """Type checking stubs"""
5238
+ pass
5239
+
4688
5240
  def _typecheckingstub__c952f8c1704201f25c4d7df8b8a5c994569b8513be332681526a695abb83999b(
4689
5241
  *,
4690
5242
  gid: builtins.str,
@@ -4694,6 +5246,45 @@ def _typecheckingstub__c952f8c1704201f25c4d7df8b8a5c994569b8513be332681526a695ab
4694
5246
  """Type checking stubs"""
4695
5247
  pass
4696
5248
 
5249
+ def _typecheckingstub__8e5f31a5d9e5ce51bef26c5cc20973bf80024b4c7fba6d891072ccaf06a41be5(
5250
+ *,
5251
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
5252
+ region: typing.Optional[builtins.str] = None,
5253
+ ) -> None:
5254
+ """Type checking stubs"""
5255
+ pass
5256
+
5257
+ def _typecheckingstub__34d3dea9ddf1aad07fb26f1da53ab80f3f9dd969fdc864369ca638a47d88e7a7(
5258
+ destination_file_system: IFileSystem,
5259
+ ) -> None:
5260
+ """Type checking stubs"""
5261
+ pass
5262
+
5263
+ def _typecheckingstub__03feaa91d7d2a591c01e42c87922247340eaff3051d1d46798e1cee3dd075c33(
5264
+ region: builtins.str,
5265
+ availability_zone: builtins.str,
5266
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
5267
+ ) -> None:
5268
+ """Type checking stubs"""
5269
+ pass
5270
+
5271
+ def _typecheckingstub__a8c205c27eb7c267e9a53c283b59ced307f90e800333dea1748fd1901d785236(
5272
+ region: typing.Optional[builtins.str] = None,
5273
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
5274
+ ) -> None:
5275
+ """Type checking stubs"""
5276
+ pass
5277
+
5278
+ def _typecheckingstub__f4e59d29e2aee34149bd4bb57cf8b214cfb2a70fe199b76106b163c20aaeaec9(
5279
+ *,
5280
+ availability_zone: typing.Optional[builtins.str] = None,
5281
+ destination_file_system: typing.Optional[IFileSystem] = None,
5282
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
5283
+ region: typing.Optional[builtins.str] = None,
5284
+ ) -> None:
5285
+ """Type checking stubs"""
5286
+ pass
5287
+
4697
5288
  def _typecheckingstub__b4cd5acd3aac2348517085a4188b85a5e2329da4dc443644482b9153e1014bfa(
4698
5289
  scope: _constructs_77d1e7e8.Construct,
4699
5290
  id: builtins.str,
@@ -4742,6 +5333,7 @@ def _typecheckingstub__fe7547e76a3f3502ef6c67d1cc851b25d13fe1b4b980d3bccee8eae2f
4742
5333
  performance_mode: typing.Optional[PerformanceMode] = None,
4743
5334
  provisioned_throughput_per_second: typing.Optional[_Size_7b441c34] = None,
4744
5335
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
5336
+ replication_configuration: typing.Optional[ReplicationConfiguration] = None,
4745
5337
  replication_overwrite_protection: typing.Optional[ReplicationOverwriteProtection] = None,
4746
5338
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
4747
5339
  throughput_mode: typing.Optional[ThroughputMode] = None,