aws-cdk-lib 2.162.1__py3-none-any.whl → 2.163.1__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 (59) hide show
  1. aws_cdk/__init__.py +5 -7
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.162.1.jsii.tgz → aws-cdk-lib@2.163.1.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigatewayv2/__init__.py +7 -7
  5. aws_cdk/aws_appflow/__init__.py +30 -16
  6. aws_cdk/aws_appsync/__init__.py +11 -21
  7. aws_cdk/aws_autoscaling/__init__.py +123 -0
  8. aws_cdk/aws_b2bi/__init__.py +83 -57
  9. aws_cdk/aws_cloudformation/__init__.py +5 -7
  10. aws_cdk/aws_codebuild/__init__.py +19 -40
  11. aws_cdk/aws_codepipeline/__init__.py +88 -7
  12. aws_cdk/aws_cognito/__init__.py +282 -168
  13. aws_cdk/aws_dms/__init__.py +1076 -117
  14. aws_cdk/aws_docdb/__init__.py +19 -13
  15. aws_cdk/aws_dynamodb/__init__.py +43 -22
  16. aws_cdk/aws_ec2/__init__.py +1213 -38
  17. aws_cdk/aws_ecs/__init__.py +187 -18
  18. aws_cdk/aws_ecs_patterns/__init__.py +189 -27
  19. aws_cdk/aws_efs/__init__.py +56 -37
  20. aws_cdk/aws_eks/__init__.py +6 -2
  21. aws_cdk/aws_elasticache/__init__.py +118 -118
  22. aws_cdk/aws_elasticloadbalancingv2/__init__.py +21 -1
  23. aws_cdk/aws_emr/__init__.py +124 -57
  24. aws_cdk/aws_events/__init__.py +40 -0
  25. aws_cdk/aws_fms/__init__.py +757 -8
  26. aws_cdk/aws_fsx/__init__.py +245 -10
  27. aws_cdk/aws_gamelift/__init__.py +121 -0
  28. aws_cdk/aws_glue/__init__.py +344 -61
  29. aws_cdk/aws_iam/__init__.py +44 -0
  30. aws_cdk/aws_identitystore/__init__.py +4 -2
  31. aws_cdk/aws_iot/__init__.py +40 -12
  32. aws_cdk/aws_kinesis/__init__.py +239 -0
  33. aws_cdk/aws_kms/__init__.py +92 -3
  34. aws_cdk/aws_lambda/__init__.py +2 -2
  35. aws_cdk/aws_mediapackagev2/__init__.py +26 -10
  36. aws_cdk/aws_memorydb/__init__.py +7 -7
  37. aws_cdk/aws_networkfirewall/__init__.py +89 -0
  38. aws_cdk/aws_qbusiness/__init__.py +51 -7
  39. aws_cdk/aws_quicksight/__init__.py +221 -87
  40. aws_cdk/aws_rds/__init__.py +376 -75
  41. aws_cdk/aws_redshift/__init__.py +493 -13
  42. aws_cdk/aws_route53profiles/__init__.py +4 -2
  43. aws_cdk/aws_route53resolver/__init__.py +26 -60
  44. aws_cdk/aws_s3/__init__.py +104 -4
  45. aws_cdk/aws_s3express/__init__.py +73 -13
  46. aws_cdk/aws_s3outposts/__init__.py +21 -12
  47. aws_cdk/aws_sagemaker/__init__.py +4 -44
  48. aws_cdk/aws_ssmquicksetup/__init__.py +2 -2
  49. aws_cdk/aws_stepfunctions/__init__.py +529 -156
  50. aws_cdk/aws_transfer/__init__.py +15 -4
  51. aws_cdk/aws_waf/__init__.py +11 -11
  52. aws_cdk/aws_wafregional/__init__.py +12 -12
  53. aws_cdk/aws_wisdom/__init__.py +710 -5
  54. {aws_cdk_lib-2.162.1.dist-info → aws_cdk_lib-2.163.1.dist-info}/METADATA +1 -1
  55. {aws_cdk_lib-2.162.1.dist-info → aws_cdk_lib-2.163.1.dist-info}/RECORD +59 -59
  56. {aws_cdk_lib-2.162.1.dist-info → aws_cdk_lib-2.163.1.dist-info}/LICENSE +0 -0
  57. {aws_cdk_lib-2.162.1.dist-info → aws_cdk_lib-2.163.1.dist-info}/NOTICE +0 -0
  58. {aws_cdk_lib-2.162.1.dist-info → aws_cdk_lib-2.163.1.dist-info}/WHEEL +0 -0
  59. {aws_cdk_lib-2.162.1.dist-info → aws_cdk_lib-2.163.1.dist-info}/top_level.txt +0 -0
@@ -53,6 +53,31 @@ file_system = fsx.LustreFileSystem(self, "FsxLustreFileSystem",
53
53
  )
54
54
  ```
55
55
 
56
+ ### File System Type Version
57
+
58
+ You can set [the Lustre version for the file system](https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-filesystemtypeversion). To do this, use the `fileSystemTypeVersion` property:
59
+
60
+ ```python
61
+ # vpc: ec2.Vpc
62
+
63
+
64
+ file_system = fsx.LustreFileSystem(self, "FsxLustreFileSystem",
65
+ lustre_configuration=fsx.LustreConfiguration(deployment_type=fsx.LustreDeploymentType.SCRATCH_2),
66
+ storage_capacity_gi_b=1200,
67
+ vpc=vpc,
68
+ vpc_subnet=vpc.private_subnets[0],
69
+ file_system_type_version=fsx.FileSystemTypeVersion.V_2_15
70
+ )
71
+ ```
72
+
73
+ **Note**: The `fileSystemTypeVersion` has a restrictions on the values that can be set based on the `deploymentType`.
74
+
75
+ * `V_2_10` is supported by the Scratch and `PERSISTENT_1` deployment types.
76
+ * `V_2_12` is supported by all Lustre deployment types.
77
+ * `V_2_15` is supported by all Lustre deployment types and is recommended for all new file systems.
78
+
79
+ **Note**: The default value of `fileSystemTypeVersion` is `V_2_10` except for `PERSISTENT_2` deployment type where the default value is `V_2_12`.
80
+
56
81
  ### Connecting
57
82
 
58
83
  To control who can access the file system, use the `.connections` attribute. FSx has a fixed default port, so you don't
@@ -209,6 +234,43 @@ lustre_configuration = {
209
234
  For more information, see [Working with backups
210
235
  ](https://docs.aws.amazon.com/fsx/latest/LustreGuide/using-backups-fsx.html).
211
236
 
237
+ ### Storage Type
238
+
239
+ By default, FSx for Lustre uses SSD storage. To use HDD storage, specify `storageType`:
240
+
241
+ ```python
242
+ # vpc: ec2.Vpc
243
+
244
+
245
+ file_system = fsx.LustreFileSystem(self, "FsxLustreFileSystem",
246
+ lustre_configuration=fsx.LustreConfiguration(deployment_type=fsx.LustreDeploymentType.PERSISTENT_1),
247
+ storage_capacity_gi_b=1200,
248
+ vpc=vpc,
249
+ vpc_subnet=vpc.private_subnets[0],
250
+ storage_type=fsx.StorageType.HDD
251
+ )
252
+ ```
253
+
254
+ **Note:** The HDD storage type is only supported for `PERSISTENT_1` deployment types.
255
+
256
+ To improve the performance of frequently accessed files by caching up to 20% of the total storage capacity of the file system, set `driveCacheType` to `READ`:
257
+
258
+ ```python
259
+ # vpc: ec2.Vpc
260
+
261
+
262
+ file_system = fsx.LustreFileSystem(self, "FsxLustreFileSystem",
263
+ lustre_configuration=fsx.LustreConfiguration(
264
+ deployment_type=fsx.LustreDeploymentType.PERSISTENT_1,
265
+ drive_cache_type=fsx.DriveCacheType.READ
266
+ ),
267
+ storage_capacity_gi_b=1200,
268
+ vpc=vpc,
269
+ vpc_subnet=vpc.private_subnets[0],
270
+ storage_type=fsx.StorageType.HDD
271
+ )
272
+ ```
273
+
212
274
  ## FSx for Windows File Server
213
275
 
214
276
  The L2 construct for the FSx for Windows File Server has not yet been implemented. To instantiate an FSx for Windows
@@ -6961,6 +7023,35 @@ class DailyAutomaticBackupStartTimeProps:
6961
7023
  )
6962
7024
 
6963
7025
 
7026
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_fsx.DriveCacheType")
7027
+ class DriveCacheType(enum.Enum):
7028
+ '''The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD storage devices.
7029
+
7030
+ :exampleMetadata: infused
7031
+
7032
+ Example::
7033
+
7034
+ # vpc: ec2.Vpc
7035
+
7036
+
7037
+ file_system = fsx.LustreFileSystem(self, "FsxLustreFileSystem",
7038
+ lustre_configuration=fsx.LustreConfiguration(
7039
+ deployment_type=fsx.LustreDeploymentType.PERSISTENT_1,
7040
+ drive_cache_type=fsx.DriveCacheType.READ
7041
+ ),
7042
+ storage_capacity_gi_b=1200,
7043
+ vpc=vpc,
7044
+ vpc_subnet=vpc.private_subnets[0],
7045
+ storage_type=fsx.StorageType.HDD
7046
+ )
7047
+ '''
7048
+
7049
+ NONE = "NONE"
7050
+ '''The Lustre file system is configured with no data cache.'''
7051
+ READ = "READ"
7052
+ '''The Lustre file system is configured with a read cache.'''
7053
+
7054
+
6964
7055
  @jsii.data_type(
6965
7056
  jsii_type="aws-cdk-lib.aws_fsx.FileSystemAttributes",
6966
7057
  jsii_struct_bases=[],
@@ -7068,6 +7159,7 @@ class FileSystemAttributes:
7068
7159
  "kms_key": "kmsKey",
7069
7160
  "removal_policy": "removalPolicy",
7070
7161
  "security_group": "securityGroup",
7162
+ "storage_type": "storageType",
7071
7163
  },
7072
7164
  )
7073
7165
  class FileSystemProps:
@@ -7080,15 +7172,17 @@ class FileSystemProps:
7080
7172
  kms_key: typing.Optional[_IKey_5f11635f] = None,
7081
7173
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
7082
7174
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
7175
+ storage_type: typing.Optional["StorageType"] = None,
7083
7176
  ) -> None:
7084
7177
  '''Properties for the FSx file system.
7085
7178
 
7086
- :param storage_capacity_gib: The storage capacity of the file system being created. For Windows file systems, valid values are 32 GiB to 65,536 GiB. For SCRATCH_1 deployment types, valid values are 1,200, 2,400, 3,600, then continuing in increments of 3,600 GiB. For SCRATCH_2 and PERSISTENT_1 types, valid values are 1,200, 2,400, then continuing in increments of 2,400 GiB.
7179
+ :param storage_capacity_gib: The storage capacity of the file system being created. For Windows file systems, valid values are 32 GiB to 65,536 GiB. For SCRATCH_1 deployment types, valid values are 1,200, 2,400, 3,600, then continuing in increments of 3,600 GiB. For SCRATCH_2, PERSISTENT_2 and PERSISTENT_1 deployment types using SSD storage type, the valid values are 1200 GiB, 2400 GiB, and increments of 2400 GiB. For PERSISTENT_1 HDD file systems, valid values are increments of 6000 GiB for 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file systems.
7087
7180
  :param vpc: The VPC to launch the file system in.
7088
7181
  :param backup_id: The ID of the backup. Specifies the backup to use if you're creating a file system from an existing backup. Default: - no backup will be used.
7089
7182
  :param kms_key: The KMS key used for encryption to protect your data at rest. Default: - the aws/fsx default KMS key for the AWS account being deployed into.
7090
7183
  :param removal_policy: Policy to apply when the file system is removed from the stack. Default: RemovalPolicy.RETAIN
7091
7184
  :param security_group: Security Group to assign to this file system. Default: - creates new security group which allows all outbound traffic.
7185
+ :param storage_type: The storage type for the file system that you're creating. Default: StorageType.SSD
7092
7186
 
7093
7187
  :see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html
7094
7188
  :exampleMetadata: fixture=_generated
@@ -7114,7 +7208,8 @@ class FileSystemProps:
7114
7208
  backup_id="backupId",
7115
7209
  kms_key=key,
7116
7210
  removal_policy=cdk.RemovalPolicy.DESTROY,
7117
- security_group=security_group
7211
+ security_group=security_group,
7212
+ storage_type=fsx.StorageType.SSD
7118
7213
  )
7119
7214
  '''
7120
7215
  if __debug__:
@@ -7125,6 +7220,7 @@ class FileSystemProps:
7125
7220
  check_type(argname="argument kms_key", value=kms_key, expected_type=type_hints["kms_key"])
7126
7221
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
7127
7222
  check_type(argname="argument security_group", value=security_group, expected_type=type_hints["security_group"])
7223
+ check_type(argname="argument storage_type", value=storage_type, expected_type=type_hints["storage_type"])
7128
7224
  self._values: typing.Dict[builtins.str, typing.Any] = {
7129
7225
  "storage_capacity_gib": storage_capacity_gib,
7130
7226
  "vpc": vpc,
@@ -7137,6 +7233,8 @@ class FileSystemProps:
7137
7233
  self._values["removal_policy"] = removal_policy
7138
7234
  if security_group is not None:
7139
7235
  self._values["security_group"] = security_group
7236
+ if storage_type is not None:
7237
+ self._values["storage_type"] = storage_type
7140
7238
 
7141
7239
  @builtins.property
7142
7240
  def storage_capacity_gib(self) -> jsii.Number:
@@ -7144,7 +7242,8 @@ class FileSystemProps:
7144
7242
 
7145
7243
  For Windows file systems, valid values are 32 GiB to 65,536 GiB.
7146
7244
  For SCRATCH_1 deployment types, valid values are 1,200, 2,400, 3,600, then continuing in increments of 3,600 GiB.
7147
- For SCRATCH_2 and PERSISTENT_1 types, valid values are 1,200, 2,400, then continuing in increments of 2,400 GiB.
7245
+ For SCRATCH_2, PERSISTENT_2 and PERSISTENT_1 deployment types using SSD storage type, the valid values are 1200 GiB, 2400 GiB, and increments of 2400 GiB.
7246
+ For PERSISTENT_1 HDD file systems, valid values are increments of 6000 GiB for 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file systems.
7148
7247
  '''
7149
7248
  result = self._values.get("storage_capacity_gib")
7150
7249
  assert result is not None, "Required property 'storage_capacity_gib' is missing"
@@ -7195,6 +7294,17 @@ class FileSystemProps:
7195
7294
  result = self._values.get("security_group")
7196
7295
  return typing.cast(typing.Optional[_ISecurityGroup_acf8a799], result)
7197
7296
 
7297
+ @builtins.property
7298
+ def storage_type(self) -> typing.Optional["StorageType"]:
7299
+ '''The storage type for the file system that you're creating.
7300
+
7301
+ :default: StorageType.SSD
7302
+
7303
+ :see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-storagetype
7304
+ '''
7305
+ result = self._values.get("storage_type")
7306
+ return typing.cast(typing.Optional["StorageType"], result)
7307
+
7198
7308
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
7199
7309
  return isinstance(rhs, self.__class__) and rhs._values == self._values
7200
7310
 
@@ -7207,6 +7317,34 @@ class FileSystemProps:
7207
7317
  )
7208
7318
 
7209
7319
 
7320
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_fsx.FileSystemTypeVersion")
7321
+ class FileSystemTypeVersion(enum.Enum):
7322
+ '''The Lustre version for the file system.
7323
+
7324
+ :exampleMetadata: infused
7325
+
7326
+ Example::
7327
+
7328
+ # vpc: ec2.Vpc
7329
+
7330
+
7331
+ file_system = fsx.LustreFileSystem(self, "FsxLustreFileSystem",
7332
+ lustre_configuration=fsx.LustreConfiguration(deployment_type=fsx.LustreDeploymentType.SCRATCH_2),
7333
+ storage_capacity_gi_b=1200,
7334
+ vpc=vpc,
7335
+ vpc_subnet=vpc.private_subnets[0],
7336
+ file_system_type_version=fsx.FileSystemTypeVersion.V_2_15
7337
+ )
7338
+ '''
7339
+
7340
+ V_2_10 = "V_2_10"
7341
+ '''Version 2.10.'''
7342
+ V_2_12 = "V_2_12"
7343
+ '''Version 2.12.'''
7344
+ V_2_15 = "V_2_15"
7345
+ '''Version 2.15.'''
7346
+
7347
+
7210
7348
  @jsii.interface(jsii_type="aws-cdk-lib.aws_fsx.IFileSystem")
7211
7349
  class IFileSystem(_IConnectable_10015a05, typing_extensions.Protocol):
7212
7350
  '''Interface to implement FSx File Systems.'''
@@ -7302,6 +7440,7 @@ class LustreAutoImportPolicy(enum.Enum):
7302
7440
  "copy_tags_to_backups": "copyTagsToBackups",
7303
7441
  "daily_automatic_backup_start_time": "dailyAutomaticBackupStartTime",
7304
7442
  "data_compression_type": "dataCompressionType",
7443
+ "drive_cache_type": "driveCacheType",
7305
7444
  "export_path": "exportPath",
7306
7445
  "imported_file_chunk_size_mib": "importedFileChunkSizeMiB",
7307
7446
  "import_path": "importPath",
@@ -7319,6 +7458,7 @@ class LustreConfiguration:
7319
7458
  copy_tags_to_backups: typing.Optional[builtins.bool] = None,
7320
7459
  daily_automatic_backup_start_time: typing.Optional[DailyAutomaticBackupStartTime] = None,
7321
7460
  data_compression_type: typing.Optional["LustreDataCompressionType"] = None,
7461
+ drive_cache_type: typing.Optional[DriveCacheType] = None,
7322
7462
  export_path: typing.Optional[builtins.str] = None,
7323
7463
  imported_file_chunk_size_mib: typing.Optional[jsii.Number] = None,
7324
7464
  import_path: typing.Optional[builtins.str] = None,
@@ -7333,10 +7473,11 @@ class LustreConfiguration:
7333
7473
  :param copy_tags_to_backups: A boolean flag indicating whether tags for the file system should be copied to backups. Default: - false
7334
7474
  :param daily_automatic_backup_start_time: Start time for 30-minute daily automatic backup window in Coordinated Universal Time (UTC). Default: - no backup window
7335
7475
  :param data_compression_type: Sets the data compression configuration for the file system. For more information, see `Lustre data compression <https://docs.aws.amazon.com/fsx/latest/LustreGuide/data-compression.html>`_ in the *Amazon FSx for Lustre User Guide* . Default: - no compression
7476
+ :param drive_cache_type: The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD storage devices. Default: - no drive cache
7336
7477
  :param export_path: The path in Amazon S3 where the root of your Amazon FSx file system is exported. The path must use the same Amazon S3 bucket as specified in ImportPath. If you only specify a bucket name, such as s3://import-bucket, you get a 1:1 mapping of file system objects to S3 bucket objects. This mapping means that the input data in S3 is overwritten on export. If you provide a custom prefix in the export path, such as s3://import-bucket/[custom-optional-prefix], Amazon FSx exports the contents of your file system to that export prefix in the Amazon S3 bucket. Default: s3://import-bucket/FSxLustre[creation-timestamp]
7337
7478
  :param imported_file_chunk_size_mib: For files imported from a data repository, this value determines the stripe count and maximum amount of data per file (in MiB) stored on a single physical disk. Allowed values are between 1 and 512,000. Default: 1024
7338
7479
  :param import_path: The path to the Amazon S3 bucket (including the optional prefix) that you're using as the data repository for your Amazon FSx for Lustre file system. Must be of the format "s3://{bucketName}/optional-prefix" and cannot exceed 900 characters. Default: - no bucket is imported
7339
- :param per_unit_storage_throughput: Required for the PERSISTENT_1 deployment type, describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB. Valid values are 50, 100, 200. Default: - no default, conditionally required for PERSISTENT_1 deployment type
7480
+ :param per_unit_storage_throughput: Provisions the amount of read and write throughput for each 1 tebibyte (TiB) of file system storage capacity, in MB/s/TiB. Required with PERSISTENT_1 and PERSISTENT_2 deployment types. Valid values: - For PERSISTENT_1 SSD storage: 50, 100, 200 MB/s/TiB. - For PERSISTENT_1 HDD storage: 12, 40 MB/s/TiB. - For PERSISTENT_2 SSD storage: 125, 250, 500, 1000 MB/s/TiB. Default: - no default, conditionally required for PERSISTENT_1 and PERSISTENT_2 deployment type
7340
7481
  :param weekly_maintenance_start_time: The preferred day and time to perform weekly maintenance. The first digit is the day of the week, starting at 1 for Monday, then the following are hours and minutes in the UTC time zone, 24 hour clock. For example: '2:20:30' is Tuesdays at 20:30. Default: - no preference
7341
7482
 
7342
7483
  :see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-fsx-filesystem-lustreconfiguration.html
@@ -7372,6 +7513,7 @@ class LustreConfiguration:
7372
7513
  check_type(argname="argument copy_tags_to_backups", value=copy_tags_to_backups, expected_type=type_hints["copy_tags_to_backups"])
7373
7514
  check_type(argname="argument daily_automatic_backup_start_time", value=daily_automatic_backup_start_time, expected_type=type_hints["daily_automatic_backup_start_time"])
7374
7515
  check_type(argname="argument data_compression_type", value=data_compression_type, expected_type=type_hints["data_compression_type"])
7516
+ check_type(argname="argument drive_cache_type", value=drive_cache_type, expected_type=type_hints["drive_cache_type"])
7375
7517
  check_type(argname="argument export_path", value=export_path, expected_type=type_hints["export_path"])
7376
7518
  check_type(argname="argument imported_file_chunk_size_mib", value=imported_file_chunk_size_mib, expected_type=type_hints["imported_file_chunk_size_mib"])
7377
7519
  check_type(argname="argument import_path", value=import_path, expected_type=type_hints["import_path"])
@@ -7390,6 +7532,8 @@ class LustreConfiguration:
7390
7532
  self._values["daily_automatic_backup_start_time"] = daily_automatic_backup_start_time
7391
7533
  if data_compression_type is not None:
7392
7534
  self._values["data_compression_type"] = data_compression_type
7535
+ if drive_cache_type is not None:
7536
+ self._values["drive_cache_type"] = drive_cache_type
7393
7537
  if export_path is not None:
7394
7538
  self._values["export_path"] = export_path
7395
7539
  if imported_file_chunk_size_mib is not None:
@@ -7473,6 +7617,15 @@ class LustreConfiguration:
7473
7617
  result = self._values.get("data_compression_type")
7474
7618
  return typing.cast(typing.Optional["LustreDataCompressionType"], result)
7475
7619
 
7620
+ @builtins.property
7621
+ def drive_cache_type(self) -> typing.Optional[DriveCacheType]:
7622
+ '''The type of drive cache used by PERSISTENT_1 file systems that are provisioned with HDD storage devices.
7623
+
7624
+ :default: - no drive cache
7625
+ '''
7626
+ result = self._values.get("drive_cache_type")
7627
+ return typing.cast(typing.Optional[DriveCacheType], result)
7628
+
7476
7629
  @builtins.property
7477
7630
  def export_path(self) -> typing.Optional[builtins.str]:
7478
7631
  '''The path in Amazon S3 where the root of your Amazon FSx file system is exported.
@@ -7514,11 +7667,17 @@ class LustreConfiguration:
7514
7667
 
7515
7668
  @builtins.property
7516
7669
  def per_unit_storage_throughput(self) -> typing.Optional[jsii.Number]:
7517
- '''Required for the PERSISTENT_1 deployment type, describes the amount of read and write throughput for each 1 tebibyte of storage, in MB/s/TiB.
7670
+ '''Provisions the amount of read and write throughput for each 1 tebibyte (TiB) of file system storage capacity, in MB/s/TiB.
7671
+
7672
+ Required with PERSISTENT_1 and PERSISTENT_2 deployment types.
7518
7673
 
7519
- Valid values are 50, 100, 200.
7674
+ Valid values:
7520
7675
 
7521
- :default: - no default, conditionally required for PERSISTENT_1 deployment type
7676
+ - For PERSISTENT_1 SSD storage: 50, 100, 200 MB/s/TiB.
7677
+ - For PERSISTENT_1 HDD storage: 12, 40 MB/s/TiB.
7678
+ - For PERSISTENT_2 SSD storage: 125, 250, 500, 1000 MB/s/TiB.
7679
+
7680
+ :default: - no default, conditionally required for PERSISTENT_1 and PERSISTENT_2 deployment type
7522
7681
  '''
7523
7682
  result = self._values.get("per_unit_storage_throughput")
7524
7683
  return typing.cast(typing.Optional[jsii.Number], result)
@@ -7633,8 +7792,10 @@ class LustreDeploymentType(enum.Enum):
7633
7792
  "kms_key": "kmsKey",
7634
7793
  "removal_policy": "removalPolicy",
7635
7794
  "security_group": "securityGroup",
7795
+ "storage_type": "storageType",
7636
7796
  "lustre_configuration": "lustreConfiguration",
7637
7797
  "vpc_subnet": "vpcSubnet",
7798
+ "file_system_type_version": "fileSystemTypeVersion",
7638
7799
  },
7639
7800
  )
7640
7801
  class LustreFileSystemProps(FileSystemProps):
@@ -7647,19 +7808,23 @@ class LustreFileSystemProps(FileSystemProps):
7647
7808
  kms_key: typing.Optional[_IKey_5f11635f] = None,
7648
7809
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
7649
7810
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
7811
+ storage_type: typing.Optional["StorageType"] = None,
7650
7812
  lustre_configuration: typing.Union[LustreConfiguration, typing.Dict[builtins.str, typing.Any]],
7651
7813
  vpc_subnet: _ISubnet_d57d1229,
7814
+ file_system_type_version: typing.Optional[FileSystemTypeVersion] = None,
7652
7815
  ) -> None:
7653
7816
  '''Properties specific to the Lustre version of the FSx file system.
7654
7817
 
7655
- :param storage_capacity_gib: The storage capacity of the file system being created. For Windows file systems, valid values are 32 GiB to 65,536 GiB. For SCRATCH_1 deployment types, valid values are 1,200, 2,400, 3,600, then continuing in increments of 3,600 GiB. For SCRATCH_2 and PERSISTENT_1 types, valid values are 1,200, 2,400, then continuing in increments of 2,400 GiB.
7818
+ :param storage_capacity_gib: The storage capacity of the file system being created. For Windows file systems, valid values are 32 GiB to 65,536 GiB. For SCRATCH_1 deployment types, valid values are 1,200, 2,400, 3,600, then continuing in increments of 3,600 GiB. For SCRATCH_2, PERSISTENT_2 and PERSISTENT_1 deployment types using SSD storage type, the valid values are 1200 GiB, 2400 GiB, and increments of 2400 GiB. For PERSISTENT_1 HDD file systems, valid values are increments of 6000 GiB for 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file systems.
7656
7819
  :param vpc: The VPC to launch the file system in.
7657
7820
  :param backup_id: The ID of the backup. Specifies the backup to use if you're creating a file system from an existing backup. Default: - no backup will be used.
7658
7821
  :param kms_key: The KMS key used for encryption to protect your data at rest. Default: - the aws/fsx default KMS key for the AWS account being deployed into.
7659
7822
  :param removal_policy: Policy to apply when the file system is removed from the stack. Default: RemovalPolicy.RETAIN
7660
7823
  :param security_group: Security Group to assign to this file system. Default: - creates new security group which allows all outbound traffic.
7824
+ :param storage_type: The storage type for the file system that you're creating. Default: StorageType.SSD
7661
7825
  :param lustre_configuration: Additional configuration for FSx specific to Lustre.
7662
7826
  :param vpc_subnet: The subnet that the file system will be accessible from.
7827
+ :param file_system_type_version: The Lustre version for the file system. Default: - V_2_10, except for PERSISTENT_2 deployment type, where it is V_2_12 without metadata configuration mode and V_2_15 with metadata configuration mode.
7663
7828
 
7664
7829
  :exampleMetadata: infused
7665
7830
 
@@ -7695,8 +7860,10 @@ class LustreFileSystemProps(FileSystemProps):
7695
7860
  check_type(argname="argument kms_key", value=kms_key, expected_type=type_hints["kms_key"])
7696
7861
  check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
7697
7862
  check_type(argname="argument security_group", value=security_group, expected_type=type_hints["security_group"])
7863
+ check_type(argname="argument storage_type", value=storage_type, expected_type=type_hints["storage_type"])
7698
7864
  check_type(argname="argument lustre_configuration", value=lustre_configuration, expected_type=type_hints["lustre_configuration"])
7699
7865
  check_type(argname="argument vpc_subnet", value=vpc_subnet, expected_type=type_hints["vpc_subnet"])
7866
+ check_type(argname="argument file_system_type_version", value=file_system_type_version, expected_type=type_hints["file_system_type_version"])
7700
7867
  self._values: typing.Dict[builtins.str, typing.Any] = {
7701
7868
  "storage_capacity_gib": storage_capacity_gib,
7702
7869
  "vpc": vpc,
@@ -7711,6 +7878,10 @@ class LustreFileSystemProps(FileSystemProps):
7711
7878
  self._values["removal_policy"] = removal_policy
7712
7879
  if security_group is not None:
7713
7880
  self._values["security_group"] = security_group
7881
+ if storage_type is not None:
7882
+ self._values["storage_type"] = storage_type
7883
+ if file_system_type_version is not None:
7884
+ self._values["file_system_type_version"] = file_system_type_version
7714
7885
 
7715
7886
  @builtins.property
7716
7887
  def storage_capacity_gib(self) -> jsii.Number:
@@ -7718,7 +7889,8 @@ class LustreFileSystemProps(FileSystemProps):
7718
7889
 
7719
7890
  For Windows file systems, valid values are 32 GiB to 65,536 GiB.
7720
7891
  For SCRATCH_1 deployment types, valid values are 1,200, 2,400, 3,600, then continuing in increments of 3,600 GiB.
7721
- For SCRATCH_2 and PERSISTENT_1 types, valid values are 1,200, 2,400, then continuing in increments of 2,400 GiB.
7892
+ For SCRATCH_2, PERSISTENT_2 and PERSISTENT_1 deployment types using SSD storage type, the valid values are 1200 GiB, 2400 GiB, and increments of 2400 GiB.
7893
+ For PERSISTENT_1 HDD file systems, valid values are increments of 6000 GiB for 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file systems.
7722
7894
  '''
7723
7895
  result = self._values.get("storage_capacity_gib")
7724
7896
  assert result is not None, "Required property 'storage_capacity_gib' is missing"
@@ -7769,6 +7941,17 @@ class LustreFileSystemProps(FileSystemProps):
7769
7941
  result = self._values.get("security_group")
7770
7942
  return typing.cast(typing.Optional[_ISecurityGroup_acf8a799], result)
7771
7943
 
7944
+ @builtins.property
7945
+ def storage_type(self) -> typing.Optional["StorageType"]:
7946
+ '''The storage type for the file system that you're creating.
7947
+
7948
+ :default: StorageType.SSD
7949
+
7950
+ :see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-storagetype
7951
+ '''
7952
+ result = self._values.get("storage_type")
7953
+ return typing.cast(typing.Optional["StorageType"], result)
7954
+
7772
7955
  @builtins.property
7773
7956
  def lustre_configuration(self) -> LustreConfiguration:
7774
7957
  '''Additional configuration for FSx specific to Lustre.'''
@@ -7783,6 +7966,17 @@ class LustreFileSystemProps(FileSystemProps):
7783
7966
  assert result is not None, "Required property 'vpc_subnet' is missing"
7784
7967
  return typing.cast(_ISubnet_d57d1229, result)
7785
7968
 
7969
+ @builtins.property
7970
+ def file_system_type_version(self) -> typing.Optional[FileSystemTypeVersion]:
7971
+ '''The Lustre version for the file system.
7972
+
7973
+ :default: - V_2_10, except for PERSISTENT_2 deployment type, where it is V_2_12 without metadata configuration mode and V_2_15 with metadata configuration mode.
7974
+
7975
+ :see: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-fsx-filesystem.html#cfn-fsx-filesystem-filesystemtypeversion
7976
+ '''
7977
+ result = self._values.get("file_system_type_version")
7978
+ return typing.cast(typing.Optional[FileSystemTypeVersion], result)
7979
+
7786
7980
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
7787
7981
  return isinstance(rhs, self.__class__) and rhs._values == self._values
7788
7982
 
@@ -7915,6 +8109,32 @@ class LustreMaintenanceTimeProps:
7915
8109
  )
7916
8110
 
7917
8111
 
8112
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_fsx.StorageType")
8113
+ class StorageType(enum.Enum):
8114
+ '''The storage type for the file system.
8115
+
8116
+ :exampleMetadata: infused
8117
+
8118
+ Example::
8119
+
8120
+ # vpc: ec2.Vpc
8121
+
8122
+
8123
+ file_system = fsx.LustreFileSystem(self, "FsxLustreFileSystem",
8124
+ lustre_configuration=fsx.LustreConfiguration(deployment_type=fsx.LustreDeploymentType.PERSISTENT_1),
8125
+ storage_capacity_gi_b=1200,
8126
+ vpc=vpc,
8127
+ vpc_subnet=vpc.private_subnets[0],
8128
+ storage_type=fsx.StorageType.HDD
8129
+ )
8130
+ '''
8131
+
8132
+ SSD = "SSD"
8133
+ '''Solid State Drive storage.'''
8134
+ HDD = "HDD"
8135
+ '''Hard Disk Drive storage.'''
8136
+
8137
+
7918
8138
  @jsii.enum(jsii_type="aws-cdk-lib.aws_fsx.Weekday")
7919
8139
  class Weekday(enum.Enum):
7920
8140
  '''Enum for representing all the days of the week.'''
@@ -8081,24 +8301,28 @@ class LustreFileSystem(
8081
8301
  *,
8082
8302
  lustre_configuration: typing.Union[LustreConfiguration, typing.Dict[builtins.str, typing.Any]],
8083
8303
  vpc_subnet: _ISubnet_d57d1229,
8304
+ file_system_type_version: typing.Optional[FileSystemTypeVersion] = None,
8084
8305
  storage_capacity_gib: jsii.Number,
8085
8306
  vpc: _IVpc_f30d5663,
8086
8307
  backup_id: typing.Optional[builtins.str] = None,
8087
8308
  kms_key: typing.Optional[_IKey_5f11635f] = None,
8088
8309
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
8089
8310
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
8311
+ storage_type: typing.Optional[StorageType] = None,
8090
8312
  ) -> None:
8091
8313
  '''
8092
8314
  :param scope: -
8093
8315
  :param id: -
8094
8316
  :param lustre_configuration: Additional configuration for FSx specific to Lustre.
8095
8317
  :param vpc_subnet: The subnet that the file system will be accessible from.
8096
- :param storage_capacity_gib: The storage capacity of the file system being created. For Windows file systems, valid values are 32 GiB to 65,536 GiB. For SCRATCH_1 deployment types, valid values are 1,200, 2,400, 3,600, then continuing in increments of 3,600 GiB. For SCRATCH_2 and PERSISTENT_1 types, valid values are 1,200, 2,400, then continuing in increments of 2,400 GiB.
8318
+ :param file_system_type_version: The Lustre version for the file system. Default: - V_2_10, except for PERSISTENT_2 deployment type, where it is V_2_12 without metadata configuration mode and V_2_15 with metadata configuration mode.
8319
+ :param storage_capacity_gib: The storage capacity of the file system being created. For Windows file systems, valid values are 32 GiB to 65,536 GiB. For SCRATCH_1 deployment types, valid values are 1,200, 2,400, 3,600, then continuing in increments of 3,600 GiB. For SCRATCH_2, PERSISTENT_2 and PERSISTENT_1 deployment types using SSD storage type, the valid values are 1200 GiB, 2400 GiB, and increments of 2400 GiB. For PERSISTENT_1 HDD file systems, valid values are increments of 6000 GiB for 12 MB/s/TiB file systems and increments of 1800 GiB for 40 MB/s/TiB file systems.
8097
8320
  :param vpc: The VPC to launch the file system in.
8098
8321
  :param backup_id: The ID of the backup. Specifies the backup to use if you're creating a file system from an existing backup. Default: - no backup will be used.
8099
8322
  :param kms_key: The KMS key used for encryption to protect your data at rest. Default: - the aws/fsx default KMS key for the AWS account being deployed into.
8100
8323
  :param removal_policy: Policy to apply when the file system is removed from the stack. Default: RemovalPolicy.RETAIN
8101
8324
  :param security_group: Security Group to assign to this file system. Default: - creates new security group which allows all outbound traffic.
8325
+ :param storage_type: The storage type for the file system that you're creating. Default: StorageType.SSD
8102
8326
  '''
8103
8327
  if __debug__:
8104
8328
  type_hints = typing.get_type_hints(_typecheckingstub__fb0a1c17b53cef80f7d054c1b0c4d50733434d66dd0658819e0a58df8a35eede)
@@ -8107,12 +8331,14 @@ class LustreFileSystem(
8107
8331
  props = LustreFileSystemProps(
8108
8332
  lustre_configuration=lustre_configuration,
8109
8333
  vpc_subnet=vpc_subnet,
8334
+ file_system_type_version=file_system_type_version,
8110
8335
  storage_capacity_gib=storage_capacity_gib,
8111
8336
  vpc=vpc,
8112
8337
  backup_id=backup_id,
8113
8338
  kms_key=kms_key,
8114
8339
  removal_policy=removal_policy,
8115
8340
  security_group=security_group,
8341
+ storage_type=storage_type,
8116
8342
  )
8117
8343
 
8118
8344
  jsii.create(self.__class__, self, [scope, id, props])
@@ -8189,9 +8415,11 @@ __all__ = [
8189
8415
  "CfnVolumeProps",
8190
8416
  "DailyAutomaticBackupStartTime",
8191
8417
  "DailyAutomaticBackupStartTimeProps",
8418
+ "DriveCacheType",
8192
8419
  "FileSystemAttributes",
8193
8420
  "FileSystemBase",
8194
8421
  "FileSystemProps",
8422
+ "FileSystemTypeVersion",
8195
8423
  "IFileSystem",
8196
8424
  "LustreAutoImportPolicy",
8197
8425
  "LustreConfiguration",
@@ -8201,6 +8429,7 @@ __all__ = [
8201
8429
  "LustreFileSystemProps",
8202
8430
  "LustreMaintenanceTime",
8203
8431
  "LustreMaintenanceTimeProps",
8432
+ "StorageType",
8204
8433
  "Weekday",
8205
8434
  ]
8206
8435
 
@@ -8951,6 +9180,7 @@ def _typecheckingstub__53f2e92923bf875c7e108f12d87a8f496daa12a3810536a41e896037f
8951
9180
  kms_key: typing.Optional[_IKey_5f11635f] = None,
8952
9181
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
8953
9182
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
9183
+ storage_type: typing.Optional[StorageType] = None,
8954
9184
  ) -> None:
8955
9185
  """Type checking stubs"""
8956
9186
  pass
@@ -8963,6 +9193,7 @@ def _typecheckingstub__567936f469e5b9500e7485b8f46c5424a41d75153adaae2a59be9e337
8963
9193
  copy_tags_to_backups: typing.Optional[builtins.bool] = None,
8964
9194
  daily_automatic_backup_start_time: typing.Optional[DailyAutomaticBackupStartTime] = None,
8965
9195
  data_compression_type: typing.Optional[LustreDataCompressionType] = None,
9196
+ drive_cache_type: typing.Optional[DriveCacheType] = None,
8966
9197
  export_path: typing.Optional[builtins.str] = None,
8967
9198
  imported_file_chunk_size_mib: typing.Optional[jsii.Number] = None,
8968
9199
  import_path: typing.Optional[builtins.str] = None,
@@ -8980,8 +9211,10 @@ def _typecheckingstub__4a492bedf6926d6b61f8888b09c8516deeb8bda6c3b965e000434ef73
8980
9211
  kms_key: typing.Optional[_IKey_5f11635f] = None,
8981
9212
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
8982
9213
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
9214
+ storage_type: typing.Optional[StorageType] = None,
8983
9215
  lustre_configuration: typing.Union[LustreConfiguration, typing.Dict[builtins.str, typing.Any]],
8984
9216
  vpc_subnet: _ISubnet_d57d1229,
9217
+ file_system_type_version: typing.Optional[FileSystemTypeVersion] = None,
8985
9218
  ) -> None:
8986
9219
  """Type checking stubs"""
8987
9220
  pass
@@ -9013,12 +9246,14 @@ def _typecheckingstub__fb0a1c17b53cef80f7d054c1b0c4d50733434d66dd0658819e0a58df8
9013
9246
  *,
9014
9247
  lustre_configuration: typing.Union[LustreConfiguration, typing.Dict[builtins.str, typing.Any]],
9015
9248
  vpc_subnet: _ISubnet_d57d1229,
9249
+ file_system_type_version: typing.Optional[FileSystemTypeVersion] = None,
9016
9250
  storage_capacity_gib: jsii.Number,
9017
9251
  vpc: _IVpc_f30d5663,
9018
9252
  backup_id: typing.Optional[builtins.str] = None,
9019
9253
  kms_key: typing.Optional[_IKey_5f11635f] = None,
9020
9254
  removal_policy: typing.Optional[_RemovalPolicy_9f93c814] = None,
9021
9255
  security_group: typing.Optional[_ISecurityGroup_acf8a799] = None,
9256
+ storage_type: typing.Optional[StorageType] = None,
9022
9257
  ) -> None:
9023
9258
  """Type checking stubs"""
9024
9259
  pass