tm-cdk-constructs 0.0.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.
@@ -0,0 +1,2068 @@
1
+ '''
2
+ # CDK construct lib
3
+
4
+ Welcome to Toumoro's AWS Service Wrapper CDK Construct Library! This library is designed to make it easy and efficient to deploy and manage AWS services within your CDK projects. Whether you're provisioning infrastructure for a simple web application or orchestrating a complex cloud-native architecture, this library aims to streamline your development process by providing high-level constructs for common AWS services.
5
+
6
+ ## Features
7
+
8
+ * Simplified Service Provisioning: Easily create and configure AWS services using intuitive CDK constructs.
9
+ * Best Practices Built-In: Leverage pre-configured settings and defaults based on AWS best practices to ensure reliable and secure deployments.
10
+ * Modular and Extensible: Compose your infrastructure using modular constructs, allowing for flexibility and reusability across projects.
11
+
12
+ # Contributing to CDK Construct Toumoro
13
+
14
+ [Contributing](CONTRIBUTING.md)
15
+
16
+ # Examples
17
+
18
+ [Examples](examples/README.md)
19
+
20
+ # Documentation API
21
+
22
+ [API](API.md)
23
+
24
+ # Developpement Guide
25
+
26
+ [AWS CDK Design Guidelines](https://github.com/aws/aws-cdk/blob/main/docs/DESIGN_GUIDELINES.md)
27
+
28
+ ## Naming Conventions
29
+
30
+ 1. *Prefixes*:
31
+
32
+ * *Cfn* for CloudFormation resources.
33
+ * *Fn* for constructs generating CloudFormation functions.
34
+ * *As* for abstract classes.
35
+ * *I* for interfaces.
36
+ * *Vpc* for constructs related to Virtual Private Cloud.
37
+ * *Lambda* for constructs related to AWS Lambda.
38
+ * Example: CfnStack, FnSub, Aspects, IVpc, VpcNetwork, LambdaFunction.
39
+ 2. *Construct Names*:
40
+
41
+ * Use descriptive names that reflect the purpose of the construct.
42
+ * CamelCase for multi-word names.
43
+ * Avoid abbreviations unless they are widely understood.
44
+ * Example: VpcBasic, RdsAuroraMysqlServerLess.
45
+ 3. *Property Names*:
46
+
47
+ * Follow AWS resource naming conventions where applicable.
48
+ * Use camelCase for property names.
49
+ * Use clear and concise names that reflect the purpose of the property.
50
+ * Example: bucketName, vpcId, functionName.
51
+ 4. *Method Names*:
52
+
53
+ * Use verbs or verb phrases to describe actions performed by methods.
54
+ * Use camelCase.
55
+ * Example: addBucketPolicy, createVpc, invokeLambda.
56
+ 5. *Interface Names*:
57
+
58
+ * Interfaces begging uppercase I are reserverd to AWS CDK library.
59
+ * Start with an prefix TmI
60
+ * Use clear and descriptive names.
61
+ * Example: TmIInstance, TmISecurityGroup, TmIVpc.
62
+ 6. *Module Names*:
63
+
64
+ * Use lowercase with hyphens for separating words.
65
+ * Be descriptive but concise.
66
+ * Follow a hierarchy if necessary, e.g., aws-cdk.aws_s3 for S3-related constructs.
67
+ * Example: aws-cdk.aws_s3, aws-cdk.aws_ec2, aws-cdk.aws_lambda.
68
+ 7. *Variable Names*:
69
+
70
+ * Use descriptive names.
71
+ * CamelCase for multi-word names.
72
+ * Keep variable names concise but meaningful.
73
+ * Example: instanceCount, subnetIds, roleArn.
74
+ 8. *Enum and Constant Names*:
75
+
76
+ * Use uppercase for constants.
77
+ * CamelCase for multi-word names.
78
+ * Be descriptive about the purpose of the constant or enum.
79
+ * Example: MAX_RETRIES, HTTP_STATUS_CODES, VPC_CONFIG.
80
+ 9. *File Names*:
81
+
82
+ * Use lowercase with hyphens for separating words.
83
+ * Reflect the content of the file.
84
+ * Include version numbers if necessary.
85
+ * Example: s3-bucket-stack.ts, vpc-network.ts, lambda-function.ts.
86
+ 10. *Documentation Comments*:
87
+
88
+ * Use JSDoc or similar conventions to provide clear documentation for each construct, method, property, etc.
89
+ * Ensure that the documentation is up-to-date and accurately reflects the purpose and usage of the code.
90
+ '''
91
+ from pkgutil import extend_path
92
+ __path__ = extend_path(__path__, __name__)
93
+
94
+ import abc
95
+ import builtins
96
+ import datetime
97
+ import enum
98
+ import typing
99
+
100
+ import jsii
101
+ import publication
102
+ import typing_extensions
103
+
104
+ from typeguard import check_type
105
+
106
+ from ._jsii import *
107
+
108
+ import aws_cdk as _aws_cdk_ceddda9d
109
+ import aws_cdk.aws_ec2 as _aws_cdk_aws_ec2_ceddda9d
110
+ import aws_cdk.aws_iam as _aws_cdk_aws_iam_ceddda9d
111
+ import aws_cdk.aws_kms as _aws_cdk_aws_kms_ceddda9d
112
+ import aws_cdk.aws_logs as _aws_cdk_aws_logs_ceddda9d
113
+ import aws_cdk.aws_rds as _aws_cdk_aws_rds_ceddda9d
114
+ import aws_cdk.aws_s3 as _aws_cdk_aws_s3_ceddda9d
115
+ import aws_cdk.pipelines as _aws_cdk_pipelines_ceddda9d
116
+ import constructs as _constructs_77d1e7e8
117
+
118
+
119
+ class TmPipeline(
120
+ _constructs_77d1e7e8.Construct,
121
+ metaclass=jsii.JSIIMeta,
122
+ jsii_type="tm-cdk-constructs.TmPipeline",
123
+ ):
124
+ '''(experimental) A CDK construct that creates a CodePipeline.
125
+
126
+ :stability: experimental
127
+ '''
128
+
129
+ def __init__(
130
+ self,
131
+ scope: _constructs_77d1e7e8.Construct,
132
+ id: builtins.str,
133
+ *,
134
+ pipeline_name: builtins.str,
135
+ repo_branch: builtins.str,
136
+ repo_name: builtins.str,
137
+ primary_output_directory: typing.Optional[builtins.str] = None,
138
+ synth_command: typing.Optional[typing.Sequence[builtins.str]] = None,
139
+ ) -> None:
140
+ '''(experimental) Constructs a new instance of the PipelineCdk class.
141
+
142
+ :param scope: The parent construct.
143
+ :param id: The name of the construct.
144
+ :param pipeline_name: (experimental) The name of the pipeline.
145
+ :param repo_branch: (experimental) The branch of the repository to use.
146
+ :param repo_name: (experimental) The name of the repository.
147
+ :param primary_output_directory: (experimental) The primary output directory.
148
+ :param synth_command: (experimental) The command to run in the synth step.
149
+
150
+ :default: - No default properties.
151
+
152
+ :stability: experimental
153
+ '''
154
+ if __debug__:
155
+ type_hints = typing.get_type_hints(_typecheckingstub__1a993414424d3e58108b1515d1ae43df55fcea9a5bf26c77d45647cea67364f8)
156
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
157
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
158
+ props = TmPipelineProps(
159
+ pipeline_name=pipeline_name,
160
+ repo_branch=repo_branch,
161
+ repo_name=repo_name,
162
+ primary_output_directory=primary_output_directory,
163
+ synth_command=synth_command,
164
+ )
165
+
166
+ jsii.create(self.__class__, self, [scope, id, props])
167
+
168
+ @builtins.property
169
+ @jsii.member(jsii_name="pipeline")
170
+ def pipeline(self) -> _aws_cdk_pipelines_ceddda9d.CodePipeline:
171
+ '''(experimental) The CodePipeline created by the construct.
172
+
173
+ :stability: experimental
174
+ '''
175
+ return typing.cast(_aws_cdk_pipelines_ceddda9d.CodePipeline, jsii.get(self, "pipeline"))
176
+
177
+
178
+ @jsii.data_type(
179
+ jsii_type="tm-cdk-constructs.TmPipelineProps",
180
+ jsii_struct_bases=[],
181
+ name_mapping={
182
+ "pipeline_name": "pipelineName",
183
+ "repo_branch": "repoBranch",
184
+ "repo_name": "repoName",
185
+ "primary_output_directory": "primaryOutputDirectory",
186
+ "synth_command": "synthCommand",
187
+ },
188
+ )
189
+ class TmPipelineProps:
190
+ def __init__(
191
+ self,
192
+ *,
193
+ pipeline_name: builtins.str,
194
+ repo_branch: builtins.str,
195
+ repo_name: builtins.str,
196
+ primary_output_directory: typing.Optional[builtins.str] = None,
197
+ synth_command: typing.Optional[typing.Sequence[builtins.str]] = None,
198
+ ) -> None:
199
+ '''
200
+ :param pipeline_name: (experimental) The name of the pipeline.
201
+ :param repo_branch: (experimental) The branch of the repository to use.
202
+ :param repo_name: (experimental) The name of the repository.
203
+ :param primary_output_directory: (experimental) The primary output directory.
204
+ :param synth_command: (experimental) The command to run in the synth step.
205
+
206
+ :stability: experimental
207
+ '''
208
+ if __debug__:
209
+ type_hints = typing.get_type_hints(_typecheckingstub__c90f448d2c851abcb766597516c1d94417ef3eed41e3bc82a985a84bd6ff2854)
210
+ check_type(argname="argument pipeline_name", value=pipeline_name, expected_type=type_hints["pipeline_name"])
211
+ check_type(argname="argument repo_branch", value=repo_branch, expected_type=type_hints["repo_branch"])
212
+ check_type(argname="argument repo_name", value=repo_name, expected_type=type_hints["repo_name"])
213
+ check_type(argname="argument primary_output_directory", value=primary_output_directory, expected_type=type_hints["primary_output_directory"])
214
+ check_type(argname="argument synth_command", value=synth_command, expected_type=type_hints["synth_command"])
215
+ self._values: typing.Dict[builtins.str, typing.Any] = {
216
+ "pipeline_name": pipeline_name,
217
+ "repo_branch": repo_branch,
218
+ "repo_name": repo_name,
219
+ }
220
+ if primary_output_directory is not None:
221
+ self._values["primary_output_directory"] = primary_output_directory
222
+ if synth_command is not None:
223
+ self._values["synth_command"] = synth_command
224
+
225
+ @builtins.property
226
+ def pipeline_name(self) -> builtins.str:
227
+ '''(experimental) The name of the pipeline.
228
+
229
+ :stability: experimental
230
+ '''
231
+ result = self._values.get("pipeline_name")
232
+ assert result is not None, "Required property 'pipeline_name' is missing"
233
+ return typing.cast(builtins.str, result)
234
+
235
+ @builtins.property
236
+ def repo_branch(self) -> builtins.str:
237
+ '''(experimental) The branch of the repository to use.
238
+
239
+ :stability: experimental
240
+ '''
241
+ result = self._values.get("repo_branch")
242
+ assert result is not None, "Required property 'repo_branch' is missing"
243
+ return typing.cast(builtins.str, result)
244
+
245
+ @builtins.property
246
+ def repo_name(self) -> builtins.str:
247
+ '''(experimental) The name of the repository.
248
+
249
+ :stability: experimental
250
+ '''
251
+ result = self._values.get("repo_name")
252
+ assert result is not None, "Required property 'repo_name' is missing"
253
+ return typing.cast(builtins.str, result)
254
+
255
+ @builtins.property
256
+ def primary_output_directory(self) -> typing.Optional[builtins.str]:
257
+ '''(experimental) The primary output directory.
258
+
259
+ :stability: experimental
260
+ '''
261
+ result = self._values.get("primary_output_directory")
262
+ return typing.cast(typing.Optional[builtins.str], result)
263
+
264
+ @builtins.property
265
+ def synth_command(self) -> typing.Optional[typing.List[builtins.str]]:
266
+ '''(experimental) The command to run in the synth step.
267
+
268
+ :stability: experimental
269
+ '''
270
+ result = self._values.get("synth_command")
271
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
272
+
273
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
274
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
275
+
276
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
277
+ return not (rhs == self)
278
+
279
+ def __repr__(self) -> str:
280
+ return "TmPipelineProps(%s)" % ", ".join(
281
+ k + "=" + repr(v) for k, v in self._values.items()
282
+ )
283
+
284
+
285
+ class TmRdsAuroraMysqlServerless(
286
+ _aws_cdk_aws_rds_ceddda9d.DatabaseCluster,
287
+ metaclass=jsii.JSIIMeta,
288
+ jsii_type="tm-cdk-constructs.TmRdsAuroraMysqlServerless",
289
+ ):
290
+ '''
291
+ :stability: experimental
292
+ '''
293
+
294
+ def __init__(
295
+ self,
296
+ scope: _constructs_77d1e7e8.Construct,
297
+ id: builtins.str,
298
+ *,
299
+ enable_global: typing.Optional[builtins.bool] = None,
300
+ engine: _aws_cdk_aws_rds_ceddda9d.IClusterEngine,
301
+ backtrack_window: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
302
+ backup: typing.Optional[typing.Union[_aws_cdk_aws_rds_ceddda9d.BackupProps, typing.Dict[builtins.str, typing.Any]]] = None,
303
+ cloudwatch_logs_exports: typing.Optional[typing.Sequence[builtins.str]] = None,
304
+ cloudwatch_logs_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
305
+ cloudwatch_logs_retention_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
306
+ cluster_identifier: typing.Optional[builtins.str] = None,
307
+ copy_tags_to_snapshot: typing.Optional[builtins.bool] = None,
308
+ credentials: typing.Optional[_aws_cdk_aws_rds_ceddda9d.Credentials] = None,
309
+ default_database_name: typing.Optional[builtins.str] = None,
310
+ deletion_protection: typing.Optional[builtins.bool] = None,
311
+ domain: typing.Optional[builtins.str] = None,
312
+ domain_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
313
+ enable_data_api: typing.Optional[builtins.bool] = None,
314
+ iam_authentication: typing.Optional[builtins.bool] = None,
315
+ instance_identifier_base: typing.Optional[builtins.str] = None,
316
+ instance_props: typing.Optional[typing.Union[_aws_cdk_aws_rds_ceddda9d.InstanceProps, typing.Dict[builtins.str, typing.Any]]] = None,
317
+ instances: typing.Optional[jsii.Number] = None,
318
+ instance_update_behaviour: typing.Optional[_aws_cdk_aws_rds_ceddda9d.InstanceUpdateBehaviour] = None,
319
+ monitoring_interval: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
320
+ monitoring_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
321
+ network_type: typing.Optional[_aws_cdk_aws_rds_ceddda9d.NetworkType] = None,
322
+ parameter_group: typing.Optional[_aws_cdk_aws_rds_ceddda9d.IParameterGroup] = None,
323
+ parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
324
+ port: typing.Optional[jsii.Number] = None,
325
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
326
+ readers: typing.Optional[typing.Sequence[_aws_cdk_aws_rds_ceddda9d.IClusterInstance]] = None,
327
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
328
+ s3_export_buckets: typing.Optional[typing.Sequence[_aws_cdk_aws_s3_ceddda9d.IBucket]] = None,
329
+ s3_export_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
330
+ s3_import_buckets: typing.Optional[typing.Sequence[_aws_cdk_aws_s3_ceddda9d.IBucket]] = None,
331
+ s3_import_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
332
+ security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
333
+ serverless_v2_max_capacity: typing.Optional[jsii.Number] = None,
334
+ serverless_v2_min_capacity: typing.Optional[jsii.Number] = None,
335
+ storage_encrypted: typing.Optional[builtins.bool] = None,
336
+ storage_encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
337
+ storage_type: typing.Optional[_aws_cdk_aws_rds_ceddda9d.DBClusterStorageType] = None,
338
+ subnet_group: typing.Optional[_aws_cdk_aws_rds_ceddda9d.ISubnetGroup] = None,
339
+ vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
340
+ vpc_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
341
+ writer: typing.Optional[_aws_cdk_aws_rds_ceddda9d.IClusterInstance] = None,
342
+ ) -> None:
343
+ '''(experimental) Represents a class that creates an RDS Aurora MySQL Serverless database cluster.
344
+
345
+ :param scope: -
346
+ :param id: -
347
+ :param enable_global: (experimental) Enable the creation of a Global Cluster for the RDS cluster.
348
+ :param engine: What kind of database to start.
349
+ :param backtrack_window: The number of seconds to set a cluster's target backtrack window to. This feature is only supported by the Aurora MySQL database engine and cannot be enabled on existing clusters. Default: 0 seconds (no backtrack)
350
+ :param backup: Backup settings. Default: - Backup retention period for automated backups is 1 day. Backup preferred window is set to a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.
351
+ :param cloudwatch_logs_exports: The list of log types that need to be enabled for exporting to CloudWatch Logs. Default: - no log exports
352
+ :param cloudwatch_logs_retention: The number of days log events are kept in CloudWatch Logs. When updating this property, unsetting it doesn't remove the log retention policy. To remove the retention policy, set the value to ``Infinity``. Default: - logs never expire
353
+ :param cloudwatch_logs_retention_role: The IAM role for the Lambda function associated with the custom resource that sets the retention policy. Default: - a new role is created.
354
+ :param cluster_identifier: An optional identifier for the cluster. Default: - A name is automatically generated.
355
+ :param copy_tags_to_snapshot: Whether to copy tags to the snapshot when a snapshot is created. Default: - true
356
+ :param credentials: Credentials for the administrative user. Default: - A username of 'admin' (or 'postgres' for PostgreSQL) and SecretsManager-generated password
357
+ :param default_database_name: Name of a database which is automatically created inside the cluster. Default: - Database is not created in cluster.
358
+ :param deletion_protection: Indicates whether the DB cluster should have deletion protection enabled. Default: - true if ``removalPolicy`` is RETAIN, ``undefined`` otherwise, which will not enable deletion protection. To disable deletion protection after it has been enabled, you must explicitly set this value to ``false``.
359
+ :param domain: Directory ID for associating the DB cluster with a specific Active Directory. Necessary for enabling Kerberos authentication. If specified, the DB cluster joins the given Active Directory, enabling Kerberos authentication. If not specified, the DB cluster will not be associated with any Active Directory, and Kerberos authentication will not be enabled. Default: - DB cluster is not associated with an Active Directory; Kerberos authentication is not enabled.
360
+ :param domain_role: The IAM role to be used when making API calls to the Directory Service. The role needs the AWS-managed policy ``AmazonRDSDirectoryServiceAccess`` or equivalent. Default: - If ``DatabaseClusterBaseProps.domain`` is specified, a role with the ``AmazonRDSDirectoryServiceAccess`` policy is automatically created.
361
+ :param enable_data_api: Whether to enable the Data API for the cluster. Default: - false
362
+ :param iam_authentication: Whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. Default: false
363
+ :param instance_identifier_base: Base identifier for instances. Every replica is named by appending the replica number to this string, 1-based. Default: - clusterIdentifier is used with the word "Instance" appended. If clusterIdentifier is not provided, the identifier is automatically generated.
364
+ :param instance_props: (deprecated) Settings for the individual instances that are launched.
365
+ :param instances: (deprecated) How many replicas/instances to create. Has to be at least 1. Default: 2
366
+ :param instance_update_behaviour: The ordering of updates for instances. Default: InstanceUpdateBehaviour.BULK
367
+ :param monitoring_interval: The interval, in seconds, between points when Amazon RDS collects enhanced monitoring metrics for the DB instances. Default: no enhanced monitoring
368
+ :param monitoring_role: Role that will be used to manage DB instances monitoring. Default: - A role is automatically created for you
369
+ :param network_type: The network type of the DB instance. Default: - IPV4
370
+ :param parameter_group: Additional parameters to pass to the database engine. Default: - No parameter group.
371
+ :param parameters: The parameters in the DBClusterParameterGroup to create automatically. You can only specify parameterGroup or parameters but not both. You need to use a versioned engine to auto-generate a DBClusterParameterGroup. Default: - None
372
+ :param port: What port to listen on. Default: - The default for the engine is used.
373
+ :param preferred_maintenance_window: A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). Example: 'Sun:23:45-Mon:00:15' Default: - 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.
374
+ :param readers: A list of instances to create as cluster reader instances. Default: - no readers are created. The cluster will have a single writer/reader
375
+ :param removal_policy: The removal policy to apply when the cluster and its instances are removed from the stack or replaced during an update. Default: - RemovalPolicy.SNAPSHOT (remove the cluster and instances, but retain a snapshot of the data)
376
+ :param s3_export_buckets: S3 buckets that you want to load data into. This feature is only supported by the Aurora database engine. This property must not be used if ``s3ExportRole`` is used. For MySQL: Default: - None
377
+ :param s3_export_role: Role that will be associated with this DB cluster to enable S3 export. This feature is only supported by the Aurora database engine. This property must not be used if ``s3ExportBuckets`` is used. For MySQL: Default: - New role is created if ``s3ExportBuckets`` is set, no role is defined otherwise
378
+ :param s3_import_buckets: S3 buckets that you want to load data from. This feature is only supported by the Aurora database engine. This property must not be used if ``s3ImportRole`` is used. For MySQL: Default: - None
379
+ :param s3_import_role: Role that will be associated with this DB cluster to enable S3 import. This feature is only supported by the Aurora database engine. This property must not be used if ``s3ImportBuckets`` is used. For MySQL: Default: - New role is created if ``s3ImportBuckets`` is set, no role is defined otherwise
380
+ :param security_groups: Security group. Default: a new security group is created.
381
+ :param serverless_v2_max_capacity: The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128 (256GB). The maximum capacity must be higher than 0.5 ACUs. Default: 2
382
+ :param serverless_v2_min_capacity: The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5. Default: 0.5
383
+ :param storage_encrypted: Whether to enable storage encryption. Default: - true if storageEncryptionKey is provided, false otherwise
384
+ :param storage_encryption_key: The KMS key for storage encryption. If specified, ``storageEncrypted`` will be set to ``true``. Default: - if storageEncrypted is true then the default master key, no key otherwise
385
+ :param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA_IOPT1
386
+ :param subnet_group: Existing subnet group for the cluster. Default: - a new subnet group will be created.
387
+ :param vpc: What subnets to run the RDS instances in. Must be at least 2 subnets in two different AZs.
388
+ :param vpc_subnets: Where to place the instances within the VPC. Default: - the Vpc default strategy if not specified.
389
+ :param writer: The instance to use for the cluster writer. Default: required if instanceProps is not provided
390
+
391
+ :stability: experimental
392
+ '''
393
+ if __debug__:
394
+ type_hints = typing.get_type_hints(_typecheckingstub__cc939679af82c57cdfc24824fb9ec6ef0580d01390aa5c263b878d67d4912115)
395
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
396
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
397
+ props = TmRdsAuroraMysqlServerlessProps(
398
+ enable_global=enable_global,
399
+ engine=engine,
400
+ backtrack_window=backtrack_window,
401
+ backup=backup,
402
+ cloudwatch_logs_exports=cloudwatch_logs_exports,
403
+ cloudwatch_logs_retention=cloudwatch_logs_retention,
404
+ cloudwatch_logs_retention_role=cloudwatch_logs_retention_role,
405
+ cluster_identifier=cluster_identifier,
406
+ copy_tags_to_snapshot=copy_tags_to_snapshot,
407
+ credentials=credentials,
408
+ default_database_name=default_database_name,
409
+ deletion_protection=deletion_protection,
410
+ domain=domain,
411
+ domain_role=domain_role,
412
+ enable_data_api=enable_data_api,
413
+ iam_authentication=iam_authentication,
414
+ instance_identifier_base=instance_identifier_base,
415
+ instance_props=instance_props,
416
+ instances=instances,
417
+ instance_update_behaviour=instance_update_behaviour,
418
+ monitoring_interval=monitoring_interval,
419
+ monitoring_role=monitoring_role,
420
+ network_type=network_type,
421
+ parameter_group=parameter_group,
422
+ parameters=parameters,
423
+ port=port,
424
+ preferred_maintenance_window=preferred_maintenance_window,
425
+ readers=readers,
426
+ removal_policy=removal_policy,
427
+ s3_export_buckets=s3_export_buckets,
428
+ s3_export_role=s3_export_role,
429
+ s3_import_buckets=s3_import_buckets,
430
+ s3_import_role=s3_import_role,
431
+ security_groups=security_groups,
432
+ serverless_v2_max_capacity=serverless_v2_max_capacity,
433
+ serverless_v2_min_capacity=serverless_v2_min_capacity,
434
+ storage_encrypted=storage_encrypted,
435
+ storage_encryption_key=storage_encryption_key,
436
+ storage_type=storage_type,
437
+ subnet_group=subnet_group,
438
+ vpc=vpc,
439
+ vpc_subnets=vpc_subnets,
440
+ writer=writer,
441
+ )
442
+
443
+ jsii.create(self.__class__, self, [scope, id, props])
444
+
445
+
446
+ @jsii.data_type(
447
+ jsii_type="tm-cdk-constructs.TmRdsAuroraMysqlServerlessProps",
448
+ jsii_struct_bases=[_aws_cdk_aws_rds_ceddda9d.DatabaseClusterProps],
449
+ name_mapping={
450
+ "engine": "engine",
451
+ "backtrack_window": "backtrackWindow",
452
+ "backup": "backup",
453
+ "cloudwatch_logs_exports": "cloudwatchLogsExports",
454
+ "cloudwatch_logs_retention": "cloudwatchLogsRetention",
455
+ "cloudwatch_logs_retention_role": "cloudwatchLogsRetentionRole",
456
+ "cluster_identifier": "clusterIdentifier",
457
+ "copy_tags_to_snapshot": "copyTagsToSnapshot",
458
+ "credentials": "credentials",
459
+ "default_database_name": "defaultDatabaseName",
460
+ "deletion_protection": "deletionProtection",
461
+ "domain": "domain",
462
+ "domain_role": "domainRole",
463
+ "enable_data_api": "enableDataApi",
464
+ "iam_authentication": "iamAuthentication",
465
+ "instance_identifier_base": "instanceIdentifierBase",
466
+ "instance_props": "instanceProps",
467
+ "instances": "instances",
468
+ "instance_update_behaviour": "instanceUpdateBehaviour",
469
+ "monitoring_interval": "monitoringInterval",
470
+ "monitoring_role": "monitoringRole",
471
+ "network_type": "networkType",
472
+ "parameter_group": "parameterGroup",
473
+ "parameters": "parameters",
474
+ "port": "port",
475
+ "preferred_maintenance_window": "preferredMaintenanceWindow",
476
+ "readers": "readers",
477
+ "removal_policy": "removalPolicy",
478
+ "s3_export_buckets": "s3ExportBuckets",
479
+ "s3_export_role": "s3ExportRole",
480
+ "s3_import_buckets": "s3ImportBuckets",
481
+ "s3_import_role": "s3ImportRole",
482
+ "security_groups": "securityGroups",
483
+ "serverless_v2_max_capacity": "serverlessV2MaxCapacity",
484
+ "serverless_v2_min_capacity": "serverlessV2MinCapacity",
485
+ "storage_encrypted": "storageEncrypted",
486
+ "storage_encryption_key": "storageEncryptionKey",
487
+ "storage_type": "storageType",
488
+ "subnet_group": "subnetGroup",
489
+ "vpc": "vpc",
490
+ "vpc_subnets": "vpcSubnets",
491
+ "writer": "writer",
492
+ "enable_global": "enableGlobal",
493
+ },
494
+ )
495
+ class TmRdsAuroraMysqlServerlessProps(_aws_cdk_aws_rds_ceddda9d.DatabaseClusterProps):
496
+ def __init__(
497
+ self,
498
+ *,
499
+ engine: _aws_cdk_aws_rds_ceddda9d.IClusterEngine,
500
+ backtrack_window: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
501
+ backup: typing.Optional[typing.Union[_aws_cdk_aws_rds_ceddda9d.BackupProps, typing.Dict[builtins.str, typing.Any]]] = None,
502
+ cloudwatch_logs_exports: typing.Optional[typing.Sequence[builtins.str]] = None,
503
+ cloudwatch_logs_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
504
+ cloudwatch_logs_retention_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
505
+ cluster_identifier: typing.Optional[builtins.str] = None,
506
+ copy_tags_to_snapshot: typing.Optional[builtins.bool] = None,
507
+ credentials: typing.Optional[_aws_cdk_aws_rds_ceddda9d.Credentials] = None,
508
+ default_database_name: typing.Optional[builtins.str] = None,
509
+ deletion_protection: typing.Optional[builtins.bool] = None,
510
+ domain: typing.Optional[builtins.str] = None,
511
+ domain_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
512
+ enable_data_api: typing.Optional[builtins.bool] = None,
513
+ iam_authentication: typing.Optional[builtins.bool] = None,
514
+ instance_identifier_base: typing.Optional[builtins.str] = None,
515
+ instance_props: typing.Optional[typing.Union[_aws_cdk_aws_rds_ceddda9d.InstanceProps, typing.Dict[builtins.str, typing.Any]]] = None,
516
+ instances: typing.Optional[jsii.Number] = None,
517
+ instance_update_behaviour: typing.Optional[_aws_cdk_aws_rds_ceddda9d.InstanceUpdateBehaviour] = None,
518
+ monitoring_interval: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
519
+ monitoring_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
520
+ network_type: typing.Optional[_aws_cdk_aws_rds_ceddda9d.NetworkType] = None,
521
+ parameter_group: typing.Optional[_aws_cdk_aws_rds_ceddda9d.IParameterGroup] = None,
522
+ parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
523
+ port: typing.Optional[jsii.Number] = None,
524
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
525
+ readers: typing.Optional[typing.Sequence[_aws_cdk_aws_rds_ceddda9d.IClusterInstance]] = None,
526
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
527
+ s3_export_buckets: typing.Optional[typing.Sequence[_aws_cdk_aws_s3_ceddda9d.IBucket]] = None,
528
+ s3_export_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
529
+ s3_import_buckets: typing.Optional[typing.Sequence[_aws_cdk_aws_s3_ceddda9d.IBucket]] = None,
530
+ s3_import_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
531
+ security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
532
+ serverless_v2_max_capacity: typing.Optional[jsii.Number] = None,
533
+ serverless_v2_min_capacity: typing.Optional[jsii.Number] = None,
534
+ storage_encrypted: typing.Optional[builtins.bool] = None,
535
+ storage_encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
536
+ storage_type: typing.Optional[_aws_cdk_aws_rds_ceddda9d.DBClusterStorageType] = None,
537
+ subnet_group: typing.Optional[_aws_cdk_aws_rds_ceddda9d.ISubnetGroup] = None,
538
+ vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
539
+ vpc_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
540
+ writer: typing.Optional[_aws_cdk_aws_rds_ceddda9d.IClusterInstance] = None,
541
+ enable_global: typing.Optional[builtins.bool] = None,
542
+ ) -> None:
543
+ '''
544
+ :param engine: What kind of database to start.
545
+ :param backtrack_window: The number of seconds to set a cluster's target backtrack window to. This feature is only supported by the Aurora MySQL database engine and cannot be enabled on existing clusters. Default: 0 seconds (no backtrack)
546
+ :param backup: Backup settings. Default: - Backup retention period for automated backups is 1 day. Backup preferred window is set to a 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.
547
+ :param cloudwatch_logs_exports: The list of log types that need to be enabled for exporting to CloudWatch Logs. Default: - no log exports
548
+ :param cloudwatch_logs_retention: The number of days log events are kept in CloudWatch Logs. When updating this property, unsetting it doesn't remove the log retention policy. To remove the retention policy, set the value to ``Infinity``. Default: - logs never expire
549
+ :param cloudwatch_logs_retention_role: The IAM role for the Lambda function associated with the custom resource that sets the retention policy. Default: - a new role is created.
550
+ :param cluster_identifier: An optional identifier for the cluster. Default: - A name is automatically generated.
551
+ :param copy_tags_to_snapshot: Whether to copy tags to the snapshot when a snapshot is created. Default: - true
552
+ :param credentials: Credentials for the administrative user. Default: - A username of 'admin' (or 'postgres' for PostgreSQL) and SecretsManager-generated password
553
+ :param default_database_name: Name of a database which is automatically created inside the cluster. Default: - Database is not created in cluster.
554
+ :param deletion_protection: Indicates whether the DB cluster should have deletion protection enabled. Default: - true if ``removalPolicy`` is RETAIN, ``undefined`` otherwise, which will not enable deletion protection. To disable deletion protection after it has been enabled, you must explicitly set this value to ``false``.
555
+ :param domain: Directory ID for associating the DB cluster with a specific Active Directory. Necessary for enabling Kerberos authentication. If specified, the DB cluster joins the given Active Directory, enabling Kerberos authentication. If not specified, the DB cluster will not be associated with any Active Directory, and Kerberos authentication will not be enabled. Default: - DB cluster is not associated with an Active Directory; Kerberos authentication is not enabled.
556
+ :param domain_role: The IAM role to be used when making API calls to the Directory Service. The role needs the AWS-managed policy ``AmazonRDSDirectoryServiceAccess`` or equivalent. Default: - If ``DatabaseClusterBaseProps.domain`` is specified, a role with the ``AmazonRDSDirectoryServiceAccess`` policy is automatically created.
557
+ :param enable_data_api: Whether to enable the Data API for the cluster. Default: - false
558
+ :param iam_authentication: Whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts. Default: false
559
+ :param instance_identifier_base: Base identifier for instances. Every replica is named by appending the replica number to this string, 1-based. Default: - clusterIdentifier is used with the word "Instance" appended. If clusterIdentifier is not provided, the identifier is automatically generated.
560
+ :param instance_props: (deprecated) Settings for the individual instances that are launched.
561
+ :param instances: (deprecated) How many replicas/instances to create. Has to be at least 1. Default: 2
562
+ :param instance_update_behaviour: The ordering of updates for instances. Default: InstanceUpdateBehaviour.BULK
563
+ :param monitoring_interval: The interval, in seconds, between points when Amazon RDS collects enhanced monitoring metrics for the DB instances. Default: no enhanced monitoring
564
+ :param monitoring_role: Role that will be used to manage DB instances monitoring. Default: - A role is automatically created for you
565
+ :param network_type: The network type of the DB instance. Default: - IPV4
566
+ :param parameter_group: Additional parameters to pass to the database engine. Default: - No parameter group.
567
+ :param parameters: The parameters in the DBClusterParameterGroup to create automatically. You can only specify parameterGroup or parameters but not both. You need to use a versioned engine to auto-generate a DBClusterParameterGroup. Default: - None
568
+ :param port: What port to listen on. Default: - The default for the engine is used.
569
+ :param preferred_maintenance_window: A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). Example: 'Sun:23:45-Mon:00:15' Default: - 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.
570
+ :param readers: A list of instances to create as cluster reader instances. Default: - no readers are created. The cluster will have a single writer/reader
571
+ :param removal_policy: The removal policy to apply when the cluster and its instances are removed from the stack or replaced during an update. Default: - RemovalPolicy.SNAPSHOT (remove the cluster and instances, but retain a snapshot of the data)
572
+ :param s3_export_buckets: S3 buckets that you want to load data into. This feature is only supported by the Aurora database engine. This property must not be used if ``s3ExportRole`` is used. For MySQL: Default: - None
573
+ :param s3_export_role: Role that will be associated with this DB cluster to enable S3 export. This feature is only supported by the Aurora database engine. This property must not be used if ``s3ExportBuckets`` is used. For MySQL: Default: - New role is created if ``s3ExportBuckets`` is set, no role is defined otherwise
574
+ :param s3_import_buckets: S3 buckets that you want to load data from. This feature is only supported by the Aurora database engine. This property must not be used if ``s3ImportRole`` is used. For MySQL: Default: - None
575
+ :param s3_import_role: Role that will be associated with this DB cluster to enable S3 import. This feature is only supported by the Aurora database engine. This property must not be used if ``s3ImportBuckets`` is used. For MySQL: Default: - New role is created if ``s3ImportBuckets`` is set, no role is defined otherwise
576
+ :param security_groups: Security group. Default: a new security group is created.
577
+ :param serverless_v2_max_capacity: The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on. The largest value that you can use is 128 (256GB). The maximum capacity must be higher than 0.5 ACUs. Default: 2
578
+ :param serverless_v2_min_capacity: The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster. You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on. The smallest value that you can use is 0.5. Default: 0.5
579
+ :param storage_encrypted: Whether to enable storage encryption. Default: - true if storageEncryptionKey is provided, false otherwise
580
+ :param storage_encryption_key: The KMS key for storage encryption. If specified, ``storageEncrypted`` will be set to ``true``. Default: - if storageEncrypted is true then the default master key, no key otherwise
581
+ :param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA_IOPT1
582
+ :param subnet_group: Existing subnet group for the cluster. Default: - a new subnet group will be created.
583
+ :param vpc: What subnets to run the RDS instances in. Must be at least 2 subnets in two different AZs.
584
+ :param vpc_subnets: Where to place the instances within the VPC. Default: - the Vpc default strategy if not specified.
585
+ :param writer: The instance to use for the cluster writer. Default: required if instanceProps is not provided
586
+ :param enable_global: (experimental) Enable the creation of a Global Cluster for the RDS cluster.
587
+
588
+ :stability: experimental
589
+ '''
590
+ if isinstance(backup, dict):
591
+ backup = _aws_cdk_aws_rds_ceddda9d.BackupProps(**backup)
592
+ if isinstance(instance_props, dict):
593
+ instance_props = _aws_cdk_aws_rds_ceddda9d.InstanceProps(**instance_props)
594
+ if isinstance(vpc_subnets, dict):
595
+ vpc_subnets = _aws_cdk_aws_ec2_ceddda9d.SubnetSelection(**vpc_subnets)
596
+ if __debug__:
597
+ type_hints = typing.get_type_hints(_typecheckingstub__2eb6185862d0dbafb21639371b5cfdd31758e49cf957284e1d423cbd3bf7cc8a)
598
+ check_type(argname="argument engine", value=engine, expected_type=type_hints["engine"])
599
+ check_type(argname="argument backtrack_window", value=backtrack_window, expected_type=type_hints["backtrack_window"])
600
+ check_type(argname="argument backup", value=backup, expected_type=type_hints["backup"])
601
+ check_type(argname="argument cloudwatch_logs_exports", value=cloudwatch_logs_exports, expected_type=type_hints["cloudwatch_logs_exports"])
602
+ check_type(argname="argument cloudwatch_logs_retention", value=cloudwatch_logs_retention, expected_type=type_hints["cloudwatch_logs_retention"])
603
+ check_type(argname="argument cloudwatch_logs_retention_role", value=cloudwatch_logs_retention_role, expected_type=type_hints["cloudwatch_logs_retention_role"])
604
+ check_type(argname="argument cluster_identifier", value=cluster_identifier, expected_type=type_hints["cluster_identifier"])
605
+ check_type(argname="argument copy_tags_to_snapshot", value=copy_tags_to_snapshot, expected_type=type_hints["copy_tags_to_snapshot"])
606
+ check_type(argname="argument credentials", value=credentials, expected_type=type_hints["credentials"])
607
+ check_type(argname="argument default_database_name", value=default_database_name, expected_type=type_hints["default_database_name"])
608
+ check_type(argname="argument deletion_protection", value=deletion_protection, expected_type=type_hints["deletion_protection"])
609
+ check_type(argname="argument domain", value=domain, expected_type=type_hints["domain"])
610
+ check_type(argname="argument domain_role", value=domain_role, expected_type=type_hints["domain_role"])
611
+ check_type(argname="argument enable_data_api", value=enable_data_api, expected_type=type_hints["enable_data_api"])
612
+ check_type(argname="argument iam_authentication", value=iam_authentication, expected_type=type_hints["iam_authentication"])
613
+ check_type(argname="argument instance_identifier_base", value=instance_identifier_base, expected_type=type_hints["instance_identifier_base"])
614
+ check_type(argname="argument instance_props", value=instance_props, expected_type=type_hints["instance_props"])
615
+ check_type(argname="argument instances", value=instances, expected_type=type_hints["instances"])
616
+ check_type(argname="argument instance_update_behaviour", value=instance_update_behaviour, expected_type=type_hints["instance_update_behaviour"])
617
+ check_type(argname="argument monitoring_interval", value=monitoring_interval, expected_type=type_hints["monitoring_interval"])
618
+ check_type(argname="argument monitoring_role", value=monitoring_role, expected_type=type_hints["monitoring_role"])
619
+ check_type(argname="argument network_type", value=network_type, expected_type=type_hints["network_type"])
620
+ check_type(argname="argument parameter_group", value=parameter_group, expected_type=type_hints["parameter_group"])
621
+ check_type(argname="argument parameters", value=parameters, expected_type=type_hints["parameters"])
622
+ check_type(argname="argument port", value=port, expected_type=type_hints["port"])
623
+ check_type(argname="argument preferred_maintenance_window", value=preferred_maintenance_window, expected_type=type_hints["preferred_maintenance_window"])
624
+ check_type(argname="argument readers", value=readers, expected_type=type_hints["readers"])
625
+ check_type(argname="argument removal_policy", value=removal_policy, expected_type=type_hints["removal_policy"])
626
+ check_type(argname="argument s3_export_buckets", value=s3_export_buckets, expected_type=type_hints["s3_export_buckets"])
627
+ check_type(argname="argument s3_export_role", value=s3_export_role, expected_type=type_hints["s3_export_role"])
628
+ check_type(argname="argument s3_import_buckets", value=s3_import_buckets, expected_type=type_hints["s3_import_buckets"])
629
+ check_type(argname="argument s3_import_role", value=s3_import_role, expected_type=type_hints["s3_import_role"])
630
+ check_type(argname="argument security_groups", value=security_groups, expected_type=type_hints["security_groups"])
631
+ check_type(argname="argument serverless_v2_max_capacity", value=serverless_v2_max_capacity, expected_type=type_hints["serverless_v2_max_capacity"])
632
+ check_type(argname="argument serverless_v2_min_capacity", value=serverless_v2_min_capacity, expected_type=type_hints["serverless_v2_min_capacity"])
633
+ check_type(argname="argument storage_encrypted", value=storage_encrypted, expected_type=type_hints["storage_encrypted"])
634
+ check_type(argname="argument storage_encryption_key", value=storage_encryption_key, expected_type=type_hints["storage_encryption_key"])
635
+ check_type(argname="argument storage_type", value=storage_type, expected_type=type_hints["storage_type"])
636
+ check_type(argname="argument subnet_group", value=subnet_group, expected_type=type_hints["subnet_group"])
637
+ check_type(argname="argument vpc", value=vpc, expected_type=type_hints["vpc"])
638
+ check_type(argname="argument vpc_subnets", value=vpc_subnets, expected_type=type_hints["vpc_subnets"])
639
+ check_type(argname="argument writer", value=writer, expected_type=type_hints["writer"])
640
+ check_type(argname="argument enable_global", value=enable_global, expected_type=type_hints["enable_global"])
641
+ self._values: typing.Dict[builtins.str, typing.Any] = {
642
+ "engine": engine,
643
+ }
644
+ if backtrack_window is not None:
645
+ self._values["backtrack_window"] = backtrack_window
646
+ if backup is not None:
647
+ self._values["backup"] = backup
648
+ if cloudwatch_logs_exports is not None:
649
+ self._values["cloudwatch_logs_exports"] = cloudwatch_logs_exports
650
+ if cloudwatch_logs_retention is not None:
651
+ self._values["cloudwatch_logs_retention"] = cloudwatch_logs_retention
652
+ if cloudwatch_logs_retention_role is not None:
653
+ self._values["cloudwatch_logs_retention_role"] = cloudwatch_logs_retention_role
654
+ if cluster_identifier is not None:
655
+ self._values["cluster_identifier"] = cluster_identifier
656
+ if copy_tags_to_snapshot is not None:
657
+ self._values["copy_tags_to_snapshot"] = copy_tags_to_snapshot
658
+ if credentials is not None:
659
+ self._values["credentials"] = credentials
660
+ if default_database_name is not None:
661
+ self._values["default_database_name"] = default_database_name
662
+ if deletion_protection is not None:
663
+ self._values["deletion_protection"] = deletion_protection
664
+ if domain is not None:
665
+ self._values["domain"] = domain
666
+ if domain_role is not None:
667
+ self._values["domain_role"] = domain_role
668
+ if enable_data_api is not None:
669
+ self._values["enable_data_api"] = enable_data_api
670
+ if iam_authentication is not None:
671
+ self._values["iam_authentication"] = iam_authentication
672
+ if instance_identifier_base is not None:
673
+ self._values["instance_identifier_base"] = instance_identifier_base
674
+ if instance_props is not None:
675
+ self._values["instance_props"] = instance_props
676
+ if instances is not None:
677
+ self._values["instances"] = instances
678
+ if instance_update_behaviour is not None:
679
+ self._values["instance_update_behaviour"] = instance_update_behaviour
680
+ if monitoring_interval is not None:
681
+ self._values["monitoring_interval"] = monitoring_interval
682
+ if monitoring_role is not None:
683
+ self._values["monitoring_role"] = monitoring_role
684
+ if network_type is not None:
685
+ self._values["network_type"] = network_type
686
+ if parameter_group is not None:
687
+ self._values["parameter_group"] = parameter_group
688
+ if parameters is not None:
689
+ self._values["parameters"] = parameters
690
+ if port is not None:
691
+ self._values["port"] = port
692
+ if preferred_maintenance_window is not None:
693
+ self._values["preferred_maintenance_window"] = preferred_maintenance_window
694
+ if readers is not None:
695
+ self._values["readers"] = readers
696
+ if removal_policy is not None:
697
+ self._values["removal_policy"] = removal_policy
698
+ if s3_export_buckets is not None:
699
+ self._values["s3_export_buckets"] = s3_export_buckets
700
+ if s3_export_role is not None:
701
+ self._values["s3_export_role"] = s3_export_role
702
+ if s3_import_buckets is not None:
703
+ self._values["s3_import_buckets"] = s3_import_buckets
704
+ if s3_import_role is not None:
705
+ self._values["s3_import_role"] = s3_import_role
706
+ if security_groups is not None:
707
+ self._values["security_groups"] = security_groups
708
+ if serverless_v2_max_capacity is not None:
709
+ self._values["serverless_v2_max_capacity"] = serverless_v2_max_capacity
710
+ if serverless_v2_min_capacity is not None:
711
+ self._values["serverless_v2_min_capacity"] = serverless_v2_min_capacity
712
+ if storage_encrypted is not None:
713
+ self._values["storage_encrypted"] = storage_encrypted
714
+ if storage_encryption_key is not None:
715
+ self._values["storage_encryption_key"] = storage_encryption_key
716
+ if storage_type is not None:
717
+ self._values["storage_type"] = storage_type
718
+ if subnet_group is not None:
719
+ self._values["subnet_group"] = subnet_group
720
+ if vpc is not None:
721
+ self._values["vpc"] = vpc
722
+ if vpc_subnets is not None:
723
+ self._values["vpc_subnets"] = vpc_subnets
724
+ if writer is not None:
725
+ self._values["writer"] = writer
726
+ if enable_global is not None:
727
+ self._values["enable_global"] = enable_global
728
+
729
+ @builtins.property
730
+ def engine(self) -> _aws_cdk_aws_rds_ceddda9d.IClusterEngine:
731
+ '''What kind of database to start.'''
732
+ result = self._values.get("engine")
733
+ assert result is not None, "Required property 'engine' is missing"
734
+ return typing.cast(_aws_cdk_aws_rds_ceddda9d.IClusterEngine, result)
735
+
736
+ @builtins.property
737
+ def backtrack_window(self) -> typing.Optional[_aws_cdk_ceddda9d.Duration]:
738
+ '''The number of seconds to set a cluster's target backtrack window to.
739
+
740
+ This feature is only supported by the Aurora MySQL database engine and
741
+ cannot be enabled on existing clusters.
742
+
743
+ :default: 0 seconds (no backtrack)
744
+
745
+ :see: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraMySQL.Managing.Backtrack.html
746
+ '''
747
+ result = self._values.get("backtrack_window")
748
+ return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
749
+
750
+ @builtins.property
751
+ def backup(self) -> typing.Optional[_aws_cdk_aws_rds_ceddda9d.BackupProps]:
752
+ '''Backup settings.
753
+
754
+ :default:
755
+
756
+ - Backup retention period for automated backups is 1 day.
757
+ Backup preferred window is set to a 30-minute window selected at random from an
758
+ 8-hour block of time for each AWS Region, occurring on a random day of the week.
759
+
760
+ :see: https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_WorkingWithAutomatedBackups.html#USER_WorkingWithAutomatedBackups.BackupWindow
761
+ '''
762
+ result = self._values.get("backup")
763
+ return typing.cast(typing.Optional[_aws_cdk_aws_rds_ceddda9d.BackupProps], result)
764
+
765
+ @builtins.property
766
+ def cloudwatch_logs_exports(self) -> typing.Optional[typing.List[builtins.str]]:
767
+ '''The list of log types that need to be enabled for exporting to CloudWatch Logs.
768
+
769
+ :default: - no log exports
770
+ '''
771
+ result = self._values.get("cloudwatch_logs_exports")
772
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
773
+
774
+ @builtins.property
775
+ def cloudwatch_logs_retention(
776
+ self,
777
+ ) -> typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays]:
778
+ '''The number of days log events are kept in CloudWatch Logs.
779
+
780
+ When updating
781
+ this property, unsetting it doesn't remove the log retention policy. To
782
+ remove the retention policy, set the value to ``Infinity``.
783
+
784
+ :default: - logs never expire
785
+ '''
786
+ result = self._values.get("cloudwatch_logs_retention")
787
+ return typing.cast(typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays], result)
788
+
789
+ @builtins.property
790
+ def cloudwatch_logs_retention_role(
791
+ self,
792
+ ) -> typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole]:
793
+ '''The IAM role for the Lambda function associated with the custom resource that sets the retention policy.
794
+
795
+ :default: - a new role is created.
796
+ '''
797
+ result = self._values.get("cloudwatch_logs_retention_role")
798
+ return typing.cast(typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole], result)
799
+
800
+ @builtins.property
801
+ def cluster_identifier(self) -> typing.Optional[builtins.str]:
802
+ '''An optional identifier for the cluster.
803
+
804
+ :default: - A name is automatically generated.
805
+ '''
806
+ result = self._values.get("cluster_identifier")
807
+ return typing.cast(typing.Optional[builtins.str], result)
808
+
809
+ @builtins.property
810
+ def copy_tags_to_snapshot(self) -> typing.Optional[builtins.bool]:
811
+ '''Whether to copy tags to the snapshot when a snapshot is created.
812
+
813
+ :default: - true
814
+ '''
815
+ result = self._values.get("copy_tags_to_snapshot")
816
+ return typing.cast(typing.Optional[builtins.bool], result)
817
+
818
+ @builtins.property
819
+ def credentials(self) -> typing.Optional[_aws_cdk_aws_rds_ceddda9d.Credentials]:
820
+ '''Credentials for the administrative user.
821
+
822
+ :default: - A username of 'admin' (or 'postgres' for PostgreSQL) and SecretsManager-generated password
823
+ '''
824
+ result = self._values.get("credentials")
825
+ return typing.cast(typing.Optional[_aws_cdk_aws_rds_ceddda9d.Credentials], result)
826
+
827
+ @builtins.property
828
+ def default_database_name(self) -> typing.Optional[builtins.str]:
829
+ '''Name of a database which is automatically created inside the cluster.
830
+
831
+ :default: - Database is not created in cluster.
832
+ '''
833
+ result = self._values.get("default_database_name")
834
+ return typing.cast(typing.Optional[builtins.str], result)
835
+
836
+ @builtins.property
837
+ def deletion_protection(self) -> typing.Optional[builtins.bool]:
838
+ '''Indicates whether the DB cluster should have deletion protection enabled.
839
+
840
+ :default:
841
+
842
+ - true if ``removalPolicy`` is RETAIN, ``undefined`` otherwise, which will not enable deletion protection.
843
+ To disable deletion protection after it has been enabled, you must explicitly set this value to ``false``.
844
+ '''
845
+ result = self._values.get("deletion_protection")
846
+ return typing.cast(typing.Optional[builtins.bool], result)
847
+
848
+ @builtins.property
849
+ def domain(self) -> typing.Optional[builtins.str]:
850
+ '''Directory ID for associating the DB cluster with a specific Active Directory.
851
+
852
+ Necessary for enabling Kerberos authentication. If specified, the DB cluster joins the given Active Directory, enabling Kerberos authentication.
853
+ If not specified, the DB cluster will not be associated with any Active Directory, and Kerberos authentication will not be enabled.
854
+
855
+ :default: - DB cluster is not associated with an Active Directory; Kerberos authentication is not enabled.
856
+ '''
857
+ result = self._values.get("domain")
858
+ return typing.cast(typing.Optional[builtins.str], result)
859
+
860
+ @builtins.property
861
+ def domain_role(self) -> typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole]:
862
+ '''The IAM role to be used when making API calls to the Directory Service.
863
+
864
+ The role needs the AWS-managed policy
865
+ ``AmazonRDSDirectoryServiceAccess`` or equivalent.
866
+
867
+ :default: - If ``DatabaseClusterBaseProps.domain`` is specified, a role with the ``AmazonRDSDirectoryServiceAccess`` policy is automatically created.
868
+ '''
869
+ result = self._values.get("domain_role")
870
+ return typing.cast(typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole], result)
871
+
872
+ @builtins.property
873
+ def enable_data_api(self) -> typing.Optional[builtins.bool]:
874
+ '''Whether to enable the Data API for the cluster.
875
+
876
+ :default: - false
877
+ '''
878
+ result = self._values.get("enable_data_api")
879
+ return typing.cast(typing.Optional[builtins.bool], result)
880
+
881
+ @builtins.property
882
+ def iam_authentication(self) -> typing.Optional[builtins.bool]:
883
+ '''Whether to enable mapping of AWS Identity and Access Management (IAM) accounts to database accounts.
884
+
885
+ :default: false
886
+ '''
887
+ result = self._values.get("iam_authentication")
888
+ return typing.cast(typing.Optional[builtins.bool], result)
889
+
890
+ @builtins.property
891
+ def instance_identifier_base(self) -> typing.Optional[builtins.str]:
892
+ '''Base identifier for instances.
893
+
894
+ Every replica is named by appending the replica number to this string, 1-based.
895
+
896
+ :default:
897
+
898
+ - clusterIdentifier is used with the word "Instance" appended.
899
+ If clusterIdentifier is not provided, the identifier is automatically generated.
900
+ '''
901
+ result = self._values.get("instance_identifier_base")
902
+ return typing.cast(typing.Optional[builtins.str], result)
903
+
904
+ @builtins.property
905
+ def instance_props(
906
+ self,
907
+ ) -> typing.Optional[_aws_cdk_aws_rds_ceddda9d.InstanceProps]:
908
+ '''(deprecated) Settings for the individual instances that are launched.
909
+
910
+ :deprecated: - use writer and readers instead
911
+
912
+ :stability: deprecated
913
+ '''
914
+ result = self._values.get("instance_props")
915
+ return typing.cast(typing.Optional[_aws_cdk_aws_rds_ceddda9d.InstanceProps], result)
916
+
917
+ @builtins.property
918
+ def instances(self) -> typing.Optional[jsii.Number]:
919
+ '''(deprecated) How many replicas/instances to create.
920
+
921
+ Has to be at least 1.
922
+
923
+ :default: 2
924
+
925
+ :deprecated: - use writer and readers instead
926
+
927
+ :stability: deprecated
928
+ '''
929
+ result = self._values.get("instances")
930
+ return typing.cast(typing.Optional[jsii.Number], result)
931
+
932
+ @builtins.property
933
+ def instance_update_behaviour(
934
+ self,
935
+ ) -> typing.Optional[_aws_cdk_aws_rds_ceddda9d.InstanceUpdateBehaviour]:
936
+ '''The ordering of updates for instances.
937
+
938
+ :default: InstanceUpdateBehaviour.BULK
939
+ '''
940
+ result = self._values.get("instance_update_behaviour")
941
+ return typing.cast(typing.Optional[_aws_cdk_aws_rds_ceddda9d.InstanceUpdateBehaviour], result)
942
+
943
+ @builtins.property
944
+ def monitoring_interval(self) -> typing.Optional[_aws_cdk_ceddda9d.Duration]:
945
+ '''The interval, in seconds, between points when Amazon RDS collects enhanced monitoring metrics for the DB instances.
946
+
947
+ :default: no enhanced monitoring
948
+ '''
949
+ result = self._values.get("monitoring_interval")
950
+ return typing.cast(typing.Optional[_aws_cdk_ceddda9d.Duration], result)
951
+
952
+ @builtins.property
953
+ def monitoring_role(self) -> typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole]:
954
+ '''Role that will be used to manage DB instances monitoring.
955
+
956
+ :default: - A role is automatically created for you
957
+ '''
958
+ result = self._values.get("monitoring_role")
959
+ return typing.cast(typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole], result)
960
+
961
+ @builtins.property
962
+ def network_type(self) -> typing.Optional[_aws_cdk_aws_rds_ceddda9d.NetworkType]:
963
+ '''The network type of the DB instance.
964
+
965
+ :default: - IPV4
966
+ '''
967
+ result = self._values.get("network_type")
968
+ return typing.cast(typing.Optional[_aws_cdk_aws_rds_ceddda9d.NetworkType], result)
969
+
970
+ @builtins.property
971
+ def parameter_group(
972
+ self,
973
+ ) -> typing.Optional[_aws_cdk_aws_rds_ceddda9d.IParameterGroup]:
974
+ '''Additional parameters to pass to the database engine.
975
+
976
+ :default: - No parameter group.
977
+ '''
978
+ result = self._values.get("parameter_group")
979
+ return typing.cast(typing.Optional[_aws_cdk_aws_rds_ceddda9d.IParameterGroup], result)
980
+
981
+ @builtins.property
982
+ def parameters(self) -> typing.Optional[typing.Mapping[builtins.str, builtins.str]]:
983
+ '''The parameters in the DBClusterParameterGroup to create automatically.
984
+
985
+ You can only specify parameterGroup or parameters but not both.
986
+ You need to use a versioned engine to auto-generate a DBClusterParameterGroup.
987
+
988
+ :default: - None
989
+ '''
990
+ result = self._values.get("parameters")
991
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, builtins.str]], result)
992
+
993
+ @builtins.property
994
+ def port(self) -> typing.Optional[jsii.Number]:
995
+ '''What port to listen on.
996
+
997
+ :default: - The default for the engine is used.
998
+ '''
999
+ result = self._values.get("port")
1000
+ return typing.cast(typing.Optional[jsii.Number], result)
1001
+
1002
+ @builtins.property
1003
+ def preferred_maintenance_window(self) -> typing.Optional[builtins.str]:
1004
+ '''A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC).
1005
+
1006
+ Example: 'Sun:23:45-Mon:00:15'
1007
+
1008
+ :default:
1009
+
1010
+ - 30-minute window selected at random from an 8-hour block of time for
1011
+ each AWS Region, occurring on a random day of the week.
1012
+
1013
+ :see: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance
1014
+ '''
1015
+ result = self._values.get("preferred_maintenance_window")
1016
+ return typing.cast(typing.Optional[builtins.str], result)
1017
+
1018
+ @builtins.property
1019
+ def readers(
1020
+ self,
1021
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_rds_ceddda9d.IClusterInstance]]:
1022
+ '''A list of instances to create as cluster reader instances.
1023
+
1024
+ :default: - no readers are created. The cluster will have a single writer/reader
1025
+ '''
1026
+ result = self._values.get("readers")
1027
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_rds_ceddda9d.IClusterInstance]], result)
1028
+
1029
+ @builtins.property
1030
+ def removal_policy(self) -> typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy]:
1031
+ '''The removal policy to apply when the cluster and its instances are removed from the stack or replaced during an update.
1032
+
1033
+ :default: - RemovalPolicy.SNAPSHOT (remove the cluster and instances, but retain a snapshot of the data)
1034
+ '''
1035
+ result = self._values.get("removal_policy")
1036
+ return typing.cast(typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy], result)
1037
+
1038
+ @builtins.property
1039
+ def s3_export_buckets(
1040
+ self,
1041
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_s3_ceddda9d.IBucket]]:
1042
+ '''S3 buckets that you want to load data into. This feature is only supported by the Aurora database engine.
1043
+
1044
+ This property must not be used if ``s3ExportRole`` is used.
1045
+
1046
+ For MySQL:
1047
+
1048
+ :default: - None
1049
+
1050
+ :see: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-s3-export.html
1051
+ '''
1052
+ result = self._values.get("s3_export_buckets")
1053
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_s3_ceddda9d.IBucket]], result)
1054
+
1055
+ @builtins.property
1056
+ def s3_export_role(self) -> typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole]:
1057
+ '''Role that will be associated with this DB cluster to enable S3 export.
1058
+
1059
+ This feature is only supported by the Aurora database engine.
1060
+
1061
+ This property must not be used if ``s3ExportBuckets`` is used.
1062
+
1063
+ For MySQL:
1064
+
1065
+ :default: - New role is created if ``s3ExportBuckets`` is set, no role is defined otherwise
1066
+
1067
+ :see: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/postgresql-s3-export.html
1068
+ '''
1069
+ result = self._values.get("s3_export_role")
1070
+ return typing.cast(typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole], result)
1071
+
1072
+ @builtins.property
1073
+ def s3_import_buckets(
1074
+ self,
1075
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_s3_ceddda9d.IBucket]]:
1076
+ '''S3 buckets that you want to load data from. This feature is only supported by the Aurora database engine.
1077
+
1078
+ This property must not be used if ``s3ImportRole`` is used.
1079
+
1080
+ For MySQL:
1081
+
1082
+ :default: - None
1083
+
1084
+ :see: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Migrating.html
1085
+ '''
1086
+ result = self._values.get("s3_import_buckets")
1087
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_s3_ceddda9d.IBucket]], result)
1088
+
1089
+ @builtins.property
1090
+ def s3_import_role(self) -> typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole]:
1091
+ '''Role that will be associated with this DB cluster to enable S3 import.
1092
+
1093
+ This feature is only supported by the Aurora database engine.
1094
+
1095
+ This property must not be used if ``s3ImportBuckets`` is used.
1096
+
1097
+ For MySQL:
1098
+
1099
+ :default: - New role is created if ``s3ImportBuckets`` is set, no role is defined otherwise
1100
+
1101
+ :see: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/AuroraPostgreSQL.Migrating.html
1102
+ '''
1103
+ result = self._values.get("s3_import_role")
1104
+ return typing.cast(typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole], result)
1105
+
1106
+ @builtins.property
1107
+ def security_groups(
1108
+ self,
1109
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]]:
1110
+ '''Security group.
1111
+
1112
+ :default: a new security group is created.
1113
+ '''
1114
+ result = self._values.get("security_groups")
1115
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]], result)
1116
+
1117
+ @builtins.property
1118
+ def serverless_v2_max_capacity(self) -> typing.Optional[jsii.Number]:
1119
+ '''The maximum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster.
1120
+
1121
+ You can specify ACU values in half-step increments, such as 40, 40.5, 41, and so on.
1122
+ The largest value that you can use is 128 (256GB).
1123
+
1124
+ The maximum capacity must be higher than 0.5 ACUs.
1125
+
1126
+ :default: 2
1127
+
1128
+ :see: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.setting-capacity.html#aurora-serverless-v2.max_capacity_considerations
1129
+ '''
1130
+ result = self._values.get("serverless_v2_max_capacity")
1131
+ return typing.cast(typing.Optional[jsii.Number], result)
1132
+
1133
+ @builtins.property
1134
+ def serverless_v2_min_capacity(self) -> typing.Optional[jsii.Number]:
1135
+ '''The minimum number of Aurora capacity units (ACUs) for a DB instance in an Aurora Serverless v2 cluster.
1136
+
1137
+ You can specify ACU values in half-step increments, such as 8, 8.5, 9, and so on.
1138
+ The smallest value that you can use is 0.5.
1139
+
1140
+ :default: 0.5
1141
+
1142
+ :see: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/aurora-serverless-v2.setting-capacity.html#aurora-serverless-v2.max_capacity_considerations
1143
+ '''
1144
+ result = self._values.get("serverless_v2_min_capacity")
1145
+ return typing.cast(typing.Optional[jsii.Number], result)
1146
+
1147
+ @builtins.property
1148
+ def storage_encrypted(self) -> typing.Optional[builtins.bool]:
1149
+ '''Whether to enable storage encryption.
1150
+
1151
+ :default: - true if storageEncryptionKey is provided, false otherwise
1152
+ '''
1153
+ result = self._values.get("storage_encrypted")
1154
+ return typing.cast(typing.Optional[builtins.bool], result)
1155
+
1156
+ @builtins.property
1157
+ def storage_encryption_key(self) -> typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey]:
1158
+ '''The KMS key for storage encryption.
1159
+
1160
+ If specified, ``storageEncrypted`` will be set to ``true``.
1161
+
1162
+ :default: - if storageEncrypted is true then the default master key, no key otherwise
1163
+ '''
1164
+ result = self._values.get("storage_encryption_key")
1165
+ return typing.cast(typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey], result)
1166
+
1167
+ @builtins.property
1168
+ def storage_type(
1169
+ self,
1170
+ ) -> typing.Optional[_aws_cdk_aws_rds_ceddda9d.DBClusterStorageType]:
1171
+ '''The storage type to be associated with the DB cluster.
1172
+
1173
+ :default: - DBClusterStorageType.AURORA_IOPT1
1174
+ '''
1175
+ result = self._values.get("storage_type")
1176
+ return typing.cast(typing.Optional[_aws_cdk_aws_rds_ceddda9d.DBClusterStorageType], result)
1177
+
1178
+ @builtins.property
1179
+ def subnet_group(self) -> typing.Optional[_aws_cdk_aws_rds_ceddda9d.ISubnetGroup]:
1180
+ '''Existing subnet group for the cluster.
1181
+
1182
+ :default: - a new subnet group will be created.
1183
+ '''
1184
+ result = self._values.get("subnet_group")
1185
+ return typing.cast(typing.Optional[_aws_cdk_aws_rds_ceddda9d.ISubnetGroup], result)
1186
+
1187
+ @builtins.property
1188
+ def vpc(self) -> typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc]:
1189
+ '''What subnets to run the RDS instances in.
1190
+
1191
+ Must be at least 2 subnets in two different AZs.
1192
+ '''
1193
+ result = self._values.get("vpc")
1194
+ return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc], result)
1195
+
1196
+ @builtins.property
1197
+ def vpc_subnets(self) -> typing.Optional[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection]:
1198
+ '''Where to place the instances within the VPC.
1199
+
1200
+ :default: - the Vpc default strategy if not specified.
1201
+ '''
1202
+ result = self._values.get("vpc_subnets")
1203
+ return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection], result)
1204
+
1205
+ @builtins.property
1206
+ def writer(self) -> typing.Optional[_aws_cdk_aws_rds_ceddda9d.IClusterInstance]:
1207
+ '''The instance to use for the cluster writer.
1208
+
1209
+ :default: required if instanceProps is not provided
1210
+ '''
1211
+ result = self._values.get("writer")
1212
+ return typing.cast(typing.Optional[_aws_cdk_aws_rds_ceddda9d.IClusterInstance], result)
1213
+
1214
+ @builtins.property
1215
+ def enable_global(self) -> typing.Optional[builtins.bool]:
1216
+ '''(experimental) Enable the creation of a Global Cluster for the RDS cluster.
1217
+
1218
+ :stability: experimental
1219
+ '''
1220
+ result = self._values.get("enable_global")
1221
+ return typing.cast(typing.Optional[builtins.bool], result)
1222
+
1223
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1224
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1225
+
1226
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1227
+ return not (rhs == self)
1228
+
1229
+ def __repr__(self) -> str:
1230
+ return "TmRdsAuroraMysqlServerlessProps(%s)" % ", ".join(
1231
+ k + "=" + repr(v) for k, v in self._values.items()
1232
+ )
1233
+
1234
+
1235
+ class TmVpcBase(
1236
+ _aws_cdk_aws_ec2_ceddda9d.Vpc,
1237
+ metaclass=jsii.JSIIMeta,
1238
+ jsii_type="tm-cdk-constructs.TmVpcBase",
1239
+ ):
1240
+ '''(experimental) A VPC construct that creates a VPC with public and private subnets.
1241
+
1242
+ :stability: experimental
1243
+ '''
1244
+
1245
+ def __init__(
1246
+ self,
1247
+ scope: _constructs_77d1e7e8.Construct,
1248
+ id: builtins.str,
1249
+ *,
1250
+ range_cidr: builtins.str,
1251
+ enable_endpoints: typing.Optional[typing.Sequence[builtins.str]] = None,
1252
+ availability_zones: typing.Optional[typing.Sequence[builtins.str]] = None,
1253
+ cidr: typing.Optional[builtins.str] = None,
1254
+ create_internet_gateway: typing.Optional[builtins.bool] = None,
1255
+ default_instance_tenancy: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.DefaultInstanceTenancy] = None,
1256
+ enable_dns_hostnames: typing.Optional[builtins.bool] = None,
1257
+ enable_dns_support: typing.Optional[builtins.bool] = None,
1258
+ flow_logs: typing.Optional[typing.Mapping[builtins.str, typing.Union[_aws_cdk_aws_ec2_ceddda9d.FlowLogOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
1259
+ gateway_endpoints: typing.Optional[typing.Mapping[builtins.str, typing.Union[_aws_cdk_aws_ec2_ceddda9d.GatewayVpcEndpointOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
1260
+ ip_addresses: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IIpAddresses] = None,
1261
+ ip_protocol: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IpProtocol] = None,
1262
+ ipv6_addresses: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IIpv6Addresses] = None,
1263
+ max_azs: typing.Optional[jsii.Number] = None,
1264
+ nat_gateway_provider: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.NatProvider] = None,
1265
+ nat_gateways: typing.Optional[jsii.Number] = None,
1266
+ nat_gateway_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
1267
+ reserved_azs: typing.Optional[jsii.Number] = None,
1268
+ restrict_default_security_group: typing.Optional[builtins.bool] = None,
1269
+ subnet_configuration: typing.Optional[typing.Sequence[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetConfiguration, typing.Dict[builtins.str, typing.Any]]]] = None,
1270
+ vpc_name: typing.Optional[builtins.str] = None,
1271
+ vpn_connections: typing.Optional[typing.Mapping[builtins.str, typing.Union[_aws_cdk_aws_ec2_ceddda9d.VpnConnectionOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
1272
+ vpn_gateway: typing.Optional[builtins.bool] = None,
1273
+ vpn_gateway_asn: typing.Optional[jsii.Number] = None,
1274
+ vpn_route_propagation: typing.Optional[typing.Sequence[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]]] = None,
1275
+ ) -> None:
1276
+ '''(experimental) The VPC created by the construct.
1277
+
1278
+ :param scope: -
1279
+ :param id: -
1280
+ :param range_cidr: (experimental) The CIDR block for the VPC.
1281
+ :param enable_endpoints: (experimental) Indicates whether to enable the S3 endpoint for the VPC.
1282
+ :param availability_zones: Availability zones this VPC spans. Specify this option only if you do not specify ``maxAzs``. Default: - a subset of AZs of the stack
1283
+ :param cidr: (deprecated) The CIDR range to use for the VPC, e.g. '10.0.0.0/16'. Should be a minimum of /28 and maximum size of /16. The range will be split across all subnets per Availability Zone. Default: Vpc.DEFAULT_CIDR_RANGE
1284
+ :param create_internet_gateway: If set to false then disable the creation of the default internet gateway. Default: true
1285
+ :param default_instance_tenancy: The default tenancy of instances launched into the VPC. By setting this to dedicated tenancy, instances will be launched on hardware dedicated to a single AWS customer, unless specifically specified at instance launch time. Please note, not all instance types are usable with Dedicated tenancy. Default: DefaultInstanceTenancy.Default (shared) tenancy
1286
+ :param enable_dns_hostnames: Indicates whether the instances launched in the VPC get public DNS hostnames. If this attribute is true, instances in the VPC get public DNS hostnames, but only if the enableDnsSupport attribute is also set to true. Default: true
1287
+ :param enable_dns_support: Indicates whether the DNS resolution is supported for the VPC. If this attribute is false, the Amazon-provided DNS server in the VPC that resolves public DNS hostnames to IP addresses is not enabled. If this attribute is true, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC IPv4 network range plus two will succeed. Default: true
1288
+ :param flow_logs: Flow logs to add to this VPC. Default: - No flow logs.
1289
+ :param gateway_endpoints: Gateway endpoints to add to this VPC. Default: - None.
1290
+ :param ip_addresses: The Provider to use to allocate IPv4 Space to your VPC. Options include static allocation or from a pool. Note this is specific to IPv4 addresses. Default: ec2.IpAddresses.cidr
1291
+ :param ip_protocol: The protocol of the vpc. Options are IPv4 only or dual stack. Default: IpProtocol.IPV4_ONLY
1292
+ :param ipv6_addresses: The Provider to use to allocate IPv6 Space to your VPC. Options include amazon provided CIDR block. Note this is specific to IPv6 addresses. Default: Ipv6Addresses.amazonProvided
1293
+ :param max_azs: Define the maximum number of AZs to use in this region. If the region has more AZs than you want to use (for example, because of EIP limits), pick a lower number here. The AZs will be sorted and picked from the start of the list. If you pick a higher number than the number of AZs in the region, all AZs in the region will be selected. To use "all AZs" available to your account, use a high number (such as 99). Be aware that environment-agnostic stacks will be created with access to only 2 AZs, so to use more than 2 AZs, be sure to specify the account and region on your stack. Specify this option only if you do not specify ``availabilityZones``. Default: 3
1294
+ :param nat_gateway_provider: What type of NAT provider to use. Select between NAT gateways or NAT instances. NAT gateways may not be available in all AWS regions. Default: NatProvider.gateway()
1295
+ :param nat_gateways: The number of NAT Gateways/Instances to create. The type of NAT gateway or instance will be determined by the ``natGatewayProvider`` parameter. You can set this number lower than the number of Availability Zones in your VPC in order to save on NAT cost. Be aware you may be charged for cross-AZ data traffic instead. Default: - One NAT gateway/instance per Availability Zone
1296
+ :param nat_gateway_subnets: Configures the subnets which will have NAT Gateways/Instances. You can pick a specific group of subnets by specifying the group name; the picked subnets must be public subnets. Only necessary if you have more than one public subnet group. Default: - All public subnets.
1297
+ :param reserved_azs: Define the number of AZs to reserve. When specified, the IP space is reserved for the azs but no actual resources are provisioned. Default: 0
1298
+ :param restrict_default_security_group: If set to true then the default inbound & outbound rules will be removed from the default security group. Default: true if '@aws-cdk/aws-ec2:restrictDefaultSecurityGroup' is enabled, false otherwise
1299
+ :param subnet_configuration: Configure the subnets to build for each AZ. Each entry in this list configures a Subnet Group; each group will contain a subnet for each Availability Zone. For example, if you want 1 public subnet, 1 private subnet, and 1 isolated subnet in each AZ provide the following:: new ec2.Vpc(this, 'VPC', { subnetConfiguration: [ { cidrMask: 24, name: 'ingress', subnetType: ec2.SubnetType.PUBLIC, }, { cidrMask: 24, name: 'application', subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS, }, { cidrMask: 28, name: 'rds', subnetType: ec2.SubnetType.PRIVATE_ISOLATED, } ] }); Default: - The VPC CIDR will be evenly divided between 1 public and 1 private subnet per AZ.
1300
+ :param vpc_name: The VPC name. Since the VPC resource doesn't support providing a physical name, the value provided here will be recorded in the ``Name`` tag Default: this.node.path
1301
+ :param vpn_connections: VPN connections to this VPC. Default: - No connections.
1302
+ :param vpn_gateway: Indicates whether a VPN gateway should be created and attached to this VPC. Default: - true when vpnGatewayAsn or vpnConnections is specified
1303
+ :param vpn_gateway_asn: The private Autonomous System Number (ASN) for the VPN gateway. Default: - Amazon default ASN.
1304
+ :param vpn_route_propagation: Where to propagate VPN routes. Default: - On the route tables associated with private subnets. If no private subnets exists, isolated subnets are used. If no isolated subnets exists, public subnets are used.
1305
+
1306
+ :stability: experimental
1307
+ '''
1308
+ if __debug__:
1309
+ type_hints = typing.get_type_hints(_typecheckingstub__bbbf384773ee5d4094012bcdf005cac4c749df363829f0efba57bdfc122d59a1)
1310
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
1311
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
1312
+ props = TmVpcProps(
1313
+ range_cidr=range_cidr,
1314
+ enable_endpoints=enable_endpoints,
1315
+ availability_zones=availability_zones,
1316
+ cidr=cidr,
1317
+ create_internet_gateway=create_internet_gateway,
1318
+ default_instance_tenancy=default_instance_tenancy,
1319
+ enable_dns_hostnames=enable_dns_hostnames,
1320
+ enable_dns_support=enable_dns_support,
1321
+ flow_logs=flow_logs,
1322
+ gateway_endpoints=gateway_endpoints,
1323
+ ip_addresses=ip_addresses,
1324
+ ip_protocol=ip_protocol,
1325
+ ipv6_addresses=ipv6_addresses,
1326
+ max_azs=max_azs,
1327
+ nat_gateway_provider=nat_gateway_provider,
1328
+ nat_gateways=nat_gateways,
1329
+ nat_gateway_subnets=nat_gateway_subnets,
1330
+ reserved_azs=reserved_azs,
1331
+ restrict_default_security_group=restrict_default_security_group,
1332
+ subnet_configuration=subnet_configuration,
1333
+ vpc_name=vpc_name,
1334
+ vpn_connections=vpn_connections,
1335
+ vpn_gateway=vpn_gateway,
1336
+ vpn_gateway_asn=vpn_gateway_asn,
1337
+ vpn_route_propagation=vpn_route_propagation,
1338
+ )
1339
+
1340
+ jsii.create(self.__class__, self, [scope, id, props])
1341
+
1342
+
1343
+ @jsii.data_type(
1344
+ jsii_type="tm-cdk-constructs.TmVpcProps",
1345
+ jsii_struct_bases=[_aws_cdk_aws_ec2_ceddda9d.VpcProps],
1346
+ name_mapping={
1347
+ "availability_zones": "availabilityZones",
1348
+ "cidr": "cidr",
1349
+ "create_internet_gateway": "createInternetGateway",
1350
+ "default_instance_tenancy": "defaultInstanceTenancy",
1351
+ "enable_dns_hostnames": "enableDnsHostnames",
1352
+ "enable_dns_support": "enableDnsSupport",
1353
+ "flow_logs": "flowLogs",
1354
+ "gateway_endpoints": "gatewayEndpoints",
1355
+ "ip_addresses": "ipAddresses",
1356
+ "ip_protocol": "ipProtocol",
1357
+ "ipv6_addresses": "ipv6Addresses",
1358
+ "max_azs": "maxAzs",
1359
+ "nat_gateway_provider": "natGatewayProvider",
1360
+ "nat_gateways": "natGateways",
1361
+ "nat_gateway_subnets": "natGatewaySubnets",
1362
+ "reserved_azs": "reservedAzs",
1363
+ "restrict_default_security_group": "restrictDefaultSecurityGroup",
1364
+ "subnet_configuration": "subnetConfiguration",
1365
+ "vpc_name": "vpcName",
1366
+ "vpn_connections": "vpnConnections",
1367
+ "vpn_gateway": "vpnGateway",
1368
+ "vpn_gateway_asn": "vpnGatewayAsn",
1369
+ "vpn_route_propagation": "vpnRoutePropagation",
1370
+ "range_cidr": "rangeCidr",
1371
+ "enable_endpoints": "enableEndpoints",
1372
+ },
1373
+ )
1374
+ class TmVpcProps(_aws_cdk_aws_ec2_ceddda9d.VpcProps):
1375
+ def __init__(
1376
+ self,
1377
+ *,
1378
+ availability_zones: typing.Optional[typing.Sequence[builtins.str]] = None,
1379
+ cidr: typing.Optional[builtins.str] = None,
1380
+ create_internet_gateway: typing.Optional[builtins.bool] = None,
1381
+ default_instance_tenancy: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.DefaultInstanceTenancy] = None,
1382
+ enable_dns_hostnames: typing.Optional[builtins.bool] = None,
1383
+ enable_dns_support: typing.Optional[builtins.bool] = None,
1384
+ flow_logs: typing.Optional[typing.Mapping[builtins.str, typing.Union[_aws_cdk_aws_ec2_ceddda9d.FlowLogOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
1385
+ gateway_endpoints: typing.Optional[typing.Mapping[builtins.str, typing.Union[_aws_cdk_aws_ec2_ceddda9d.GatewayVpcEndpointOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
1386
+ ip_addresses: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IIpAddresses] = None,
1387
+ ip_protocol: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IpProtocol] = None,
1388
+ ipv6_addresses: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IIpv6Addresses] = None,
1389
+ max_azs: typing.Optional[jsii.Number] = None,
1390
+ nat_gateway_provider: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.NatProvider] = None,
1391
+ nat_gateways: typing.Optional[jsii.Number] = None,
1392
+ nat_gateway_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
1393
+ reserved_azs: typing.Optional[jsii.Number] = None,
1394
+ restrict_default_security_group: typing.Optional[builtins.bool] = None,
1395
+ subnet_configuration: typing.Optional[typing.Sequence[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetConfiguration, typing.Dict[builtins.str, typing.Any]]]] = None,
1396
+ vpc_name: typing.Optional[builtins.str] = None,
1397
+ vpn_connections: typing.Optional[typing.Mapping[builtins.str, typing.Union[_aws_cdk_aws_ec2_ceddda9d.VpnConnectionOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
1398
+ vpn_gateway: typing.Optional[builtins.bool] = None,
1399
+ vpn_gateway_asn: typing.Optional[jsii.Number] = None,
1400
+ vpn_route_propagation: typing.Optional[typing.Sequence[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]]] = None,
1401
+ range_cidr: builtins.str,
1402
+ enable_endpoints: typing.Optional[typing.Sequence[builtins.str]] = None,
1403
+ ) -> None:
1404
+ '''(experimental) Represents the configuration for a VPC.
1405
+
1406
+ :param availability_zones: Availability zones this VPC spans. Specify this option only if you do not specify ``maxAzs``. Default: - a subset of AZs of the stack
1407
+ :param cidr: (deprecated) The CIDR range to use for the VPC, e.g. '10.0.0.0/16'. Should be a minimum of /28 and maximum size of /16. The range will be split across all subnets per Availability Zone. Default: Vpc.DEFAULT_CIDR_RANGE
1408
+ :param create_internet_gateway: If set to false then disable the creation of the default internet gateway. Default: true
1409
+ :param default_instance_tenancy: The default tenancy of instances launched into the VPC. By setting this to dedicated tenancy, instances will be launched on hardware dedicated to a single AWS customer, unless specifically specified at instance launch time. Please note, not all instance types are usable with Dedicated tenancy. Default: DefaultInstanceTenancy.Default (shared) tenancy
1410
+ :param enable_dns_hostnames: Indicates whether the instances launched in the VPC get public DNS hostnames. If this attribute is true, instances in the VPC get public DNS hostnames, but only if the enableDnsSupport attribute is also set to true. Default: true
1411
+ :param enable_dns_support: Indicates whether the DNS resolution is supported for the VPC. If this attribute is false, the Amazon-provided DNS server in the VPC that resolves public DNS hostnames to IP addresses is not enabled. If this attribute is true, queries to the Amazon provided DNS server at the 169.254.169.253 IP address, or the reserved IP address at the base of the VPC IPv4 network range plus two will succeed. Default: true
1412
+ :param flow_logs: Flow logs to add to this VPC. Default: - No flow logs.
1413
+ :param gateway_endpoints: Gateway endpoints to add to this VPC. Default: - None.
1414
+ :param ip_addresses: The Provider to use to allocate IPv4 Space to your VPC. Options include static allocation or from a pool. Note this is specific to IPv4 addresses. Default: ec2.IpAddresses.cidr
1415
+ :param ip_protocol: The protocol of the vpc. Options are IPv4 only or dual stack. Default: IpProtocol.IPV4_ONLY
1416
+ :param ipv6_addresses: The Provider to use to allocate IPv6 Space to your VPC. Options include amazon provided CIDR block. Note this is specific to IPv6 addresses. Default: Ipv6Addresses.amazonProvided
1417
+ :param max_azs: Define the maximum number of AZs to use in this region. If the region has more AZs than you want to use (for example, because of EIP limits), pick a lower number here. The AZs will be sorted and picked from the start of the list. If you pick a higher number than the number of AZs in the region, all AZs in the region will be selected. To use "all AZs" available to your account, use a high number (such as 99). Be aware that environment-agnostic stacks will be created with access to only 2 AZs, so to use more than 2 AZs, be sure to specify the account and region on your stack. Specify this option only if you do not specify ``availabilityZones``. Default: 3
1418
+ :param nat_gateway_provider: What type of NAT provider to use. Select between NAT gateways or NAT instances. NAT gateways may not be available in all AWS regions. Default: NatProvider.gateway()
1419
+ :param nat_gateways: The number of NAT Gateways/Instances to create. The type of NAT gateway or instance will be determined by the ``natGatewayProvider`` parameter. You can set this number lower than the number of Availability Zones in your VPC in order to save on NAT cost. Be aware you may be charged for cross-AZ data traffic instead. Default: - One NAT gateway/instance per Availability Zone
1420
+ :param nat_gateway_subnets: Configures the subnets which will have NAT Gateways/Instances. You can pick a specific group of subnets by specifying the group name; the picked subnets must be public subnets. Only necessary if you have more than one public subnet group. Default: - All public subnets.
1421
+ :param reserved_azs: Define the number of AZs to reserve. When specified, the IP space is reserved for the azs but no actual resources are provisioned. Default: 0
1422
+ :param restrict_default_security_group: If set to true then the default inbound & outbound rules will be removed from the default security group. Default: true if '@aws-cdk/aws-ec2:restrictDefaultSecurityGroup' is enabled, false otherwise
1423
+ :param subnet_configuration: Configure the subnets to build for each AZ. Each entry in this list configures a Subnet Group; each group will contain a subnet for each Availability Zone. For example, if you want 1 public subnet, 1 private subnet, and 1 isolated subnet in each AZ provide the following:: new ec2.Vpc(this, 'VPC', { subnetConfiguration: [ { cidrMask: 24, name: 'ingress', subnetType: ec2.SubnetType.PUBLIC, }, { cidrMask: 24, name: 'application', subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS, }, { cidrMask: 28, name: 'rds', subnetType: ec2.SubnetType.PRIVATE_ISOLATED, } ] }); Default: - The VPC CIDR will be evenly divided between 1 public and 1 private subnet per AZ.
1424
+ :param vpc_name: The VPC name. Since the VPC resource doesn't support providing a physical name, the value provided here will be recorded in the ``Name`` tag Default: this.node.path
1425
+ :param vpn_connections: VPN connections to this VPC. Default: - No connections.
1426
+ :param vpn_gateway: Indicates whether a VPN gateway should be created and attached to this VPC. Default: - true when vpnGatewayAsn or vpnConnections is specified
1427
+ :param vpn_gateway_asn: The private Autonomous System Number (ASN) for the VPN gateway. Default: - Amazon default ASN.
1428
+ :param vpn_route_propagation: Where to propagate VPN routes. Default: - On the route tables associated with private subnets. If no private subnets exists, isolated subnets are used. If no isolated subnets exists, public subnets are used.
1429
+ :param range_cidr: (experimental) The CIDR block for the VPC.
1430
+ :param enable_endpoints: (experimental) Indicates whether to enable the S3 endpoint for the VPC.
1431
+
1432
+ :stability: experimental
1433
+ '''
1434
+ if isinstance(nat_gateway_subnets, dict):
1435
+ nat_gateway_subnets = _aws_cdk_aws_ec2_ceddda9d.SubnetSelection(**nat_gateway_subnets)
1436
+ if __debug__:
1437
+ type_hints = typing.get_type_hints(_typecheckingstub__6215cfcb5e410d0a1155ca30efab18d6b3cf0f425461591df31e65ec5978275e)
1438
+ check_type(argname="argument availability_zones", value=availability_zones, expected_type=type_hints["availability_zones"])
1439
+ check_type(argname="argument cidr", value=cidr, expected_type=type_hints["cidr"])
1440
+ check_type(argname="argument create_internet_gateway", value=create_internet_gateway, expected_type=type_hints["create_internet_gateway"])
1441
+ check_type(argname="argument default_instance_tenancy", value=default_instance_tenancy, expected_type=type_hints["default_instance_tenancy"])
1442
+ check_type(argname="argument enable_dns_hostnames", value=enable_dns_hostnames, expected_type=type_hints["enable_dns_hostnames"])
1443
+ check_type(argname="argument enable_dns_support", value=enable_dns_support, expected_type=type_hints["enable_dns_support"])
1444
+ check_type(argname="argument flow_logs", value=flow_logs, expected_type=type_hints["flow_logs"])
1445
+ check_type(argname="argument gateway_endpoints", value=gateway_endpoints, expected_type=type_hints["gateway_endpoints"])
1446
+ check_type(argname="argument ip_addresses", value=ip_addresses, expected_type=type_hints["ip_addresses"])
1447
+ check_type(argname="argument ip_protocol", value=ip_protocol, expected_type=type_hints["ip_protocol"])
1448
+ check_type(argname="argument ipv6_addresses", value=ipv6_addresses, expected_type=type_hints["ipv6_addresses"])
1449
+ check_type(argname="argument max_azs", value=max_azs, expected_type=type_hints["max_azs"])
1450
+ check_type(argname="argument nat_gateway_provider", value=nat_gateway_provider, expected_type=type_hints["nat_gateway_provider"])
1451
+ check_type(argname="argument nat_gateways", value=nat_gateways, expected_type=type_hints["nat_gateways"])
1452
+ check_type(argname="argument nat_gateway_subnets", value=nat_gateway_subnets, expected_type=type_hints["nat_gateway_subnets"])
1453
+ check_type(argname="argument reserved_azs", value=reserved_azs, expected_type=type_hints["reserved_azs"])
1454
+ check_type(argname="argument restrict_default_security_group", value=restrict_default_security_group, expected_type=type_hints["restrict_default_security_group"])
1455
+ check_type(argname="argument subnet_configuration", value=subnet_configuration, expected_type=type_hints["subnet_configuration"])
1456
+ check_type(argname="argument vpc_name", value=vpc_name, expected_type=type_hints["vpc_name"])
1457
+ check_type(argname="argument vpn_connections", value=vpn_connections, expected_type=type_hints["vpn_connections"])
1458
+ check_type(argname="argument vpn_gateway", value=vpn_gateway, expected_type=type_hints["vpn_gateway"])
1459
+ check_type(argname="argument vpn_gateway_asn", value=vpn_gateway_asn, expected_type=type_hints["vpn_gateway_asn"])
1460
+ check_type(argname="argument vpn_route_propagation", value=vpn_route_propagation, expected_type=type_hints["vpn_route_propagation"])
1461
+ check_type(argname="argument range_cidr", value=range_cidr, expected_type=type_hints["range_cidr"])
1462
+ check_type(argname="argument enable_endpoints", value=enable_endpoints, expected_type=type_hints["enable_endpoints"])
1463
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1464
+ "range_cidr": range_cidr,
1465
+ }
1466
+ if availability_zones is not None:
1467
+ self._values["availability_zones"] = availability_zones
1468
+ if cidr is not None:
1469
+ self._values["cidr"] = cidr
1470
+ if create_internet_gateway is not None:
1471
+ self._values["create_internet_gateway"] = create_internet_gateway
1472
+ if default_instance_tenancy is not None:
1473
+ self._values["default_instance_tenancy"] = default_instance_tenancy
1474
+ if enable_dns_hostnames is not None:
1475
+ self._values["enable_dns_hostnames"] = enable_dns_hostnames
1476
+ if enable_dns_support is not None:
1477
+ self._values["enable_dns_support"] = enable_dns_support
1478
+ if flow_logs is not None:
1479
+ self._values["flow_logs"] = flow_logs
1480
+ if gateway_endpoints is not None:
1481
+ self._values["gateway_endpoints"] = gateway_endpoints
1482
+ if ip_addresses is not None:
1483
+ self._values["ip_addresses"] = ip_addresses
1484
+ if ip_protocol is not None:
1485
+ self._values["ip_protocol"] = ip_protocol
1486
+ if ipv6_addresses is not None:
1487
+ self._values["ipv6_addresses"] = ipv6_addresses
1488
+ if max_azs is not None:
1489
+ self._values["max_azs"] = max_azs
1490
+ if nat_gateway_provider is not None:
1491
+ self._values["nat_gateway_provider"] = nat_gateway_provider
1492
+ if nat_gateways is not None:
1493
+ self._values["nat_gateways"] = nat_gateways
1494
+ if nat_gateway_subnets is not None:
1495
+ self._values["nat_gateway_subnets"] = nat_gateway_subnets
1496
+ if reserved_azs is not None:
1497
+ self._values["reserved_azs"] = reserved_azs
1498
+ if restrict_default_security_group is not None:
1499
+ self._values["restrict_default_security_group"] = restrict_default_security_group
1500
+ if subnet_configuration is not None:
1501
+ self._values["subnet_configuration"] = subnet_configuration
1502
+ if vpc_name is not None:
1503
+ self._values["vpc_name"] = vpc_name
1504
+ if vpn_connections is not None:
1505
+ self._values["vpn_connections"] = vpn_connections
1506
+ if vpn_gateway is not None:
1507
+ self._values["vpn_gateway"] = vpn_gateway
1508
+ if vpn_gateway_asn is not None:
1509
+ self._values["vpn_gateway_asn"] = vpn_gateway_asn
1510
+ if vpn_route_propagation is not None:
1511
+ self._values["vpn_route_propagation"] = vpn_route_propagation
1512
+ if enable_endpoints is not None:
1513
+ self._values["enable_endpoints"] = enable_endpoints
1514
+
1515
+ @builtins.property
1516
+ def availability_zones(self) -> typing.Optional[typing.List[builtins.str]]:
1517
+ '''Availability zones this VPC spans.
1518
+
1519
+ Specify this option only if you do not specify ``maxAzs``.
1520
+
1521
+ :default: - a subset of AZs of the stack
1522
+ '''
1523
+ result = self._values.get("availability_zones")
1524
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1525
+
1526
+ @builtins.property
1527
+ def cidr(self) -> typing.Optional[builtins.str]:
1528
+ '''(deprecated) The CIDR range to use for the VPC, e.g. '10.0.0.0/16'.
1529
+
1530
+ Should be a minimum of /28 and maximum size of /16. The range will be
1531
+ split across all subnets per Availability Zone.
1532
+
1533
+ :default: Vpc.DEFAULT_CIDR_RANGE
1534
+
1535
+ :deprecated: Use ipAddresses instead
1536
+
1537
+ :stability: deprecated
1538
+ '''
1539
+ result = self._values.get("cidr")
1540
+ return typing.cast(typing.Optional[builtins.str], result)
1541
+
1542
+ @builtins.property
1543
+ def create_internet_gateway(self) -> typing.Optional[builtins.bool]:
1544
+ '''If set to false then disable the creation of the default internet gateway.
1545
+
1546
+ :default: true
1547
+ '''
1548
+ result = self._values.get("create_internet_gateway")
1549
+ return typing.cast(typing.Optional[builtins.bool], result)
1550
+
1551
+ @builtins.property
1552
+ def default_instance_tenancy(
1553
+ self,
1554
+ ) -> typing.Optional[_aws_cdk_aws_ec2_ceddda9d.DefaultInstanceTenancy]:
1555
+ '''The default tenancy of instances launched into the VPC.
1556
+
1557
+ By setting this to dedicated tenancy, instances will be launched on
1558
+ hardware dedicated to a single AWS customer, unless specifically specified
1559
+ at instance launch time. Please note, not all instance types are usable
1560
+ with Dedicated tenancy.
1561
+
1562
+ :default: DefaultInstanceTenancy.Default (shared) tenancy
1563
+ '''
1564
+ result = self._values.get("default_instance_tenancy")
1565
+ return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.DefaultInstanceTenancy], result)
1566
+
1567
+ @builtins.property
1568
+ def enable_dns_hostnames(self) -> typing.Optional[builtins.bool]:
1569
+ '''Indicates whether the instances launched in the VPC get public DNS hostnames.
1570
+
1571
+ If this attribute is true, instances in the VPC get public DNS hostnames,
1572
+ but only if the enableDnsSupport attribute is also set to true.
1573
+
1574
+ :default: true
1575
+ '''
1576
+ result = self._values.get("enable_dns_hostnames")
1577
+ return typing.cast(typing.Optional[builtins.bool], result)
1578
+
1579
+ @builtins.property
1580
+ def enable_dns_support(self) -> typing.Optional[builtins.bool]:
1581
+ '''Indicates whether the DNS resolution is supported for the VPC.
1582
+
1583
+ If this attribute is false, the Amazon-provided DNS server in the VPC that
1584
+ resolves public DNS hostnames to IP addresses is not enabled. If this
1585
+ attribute is true, queries to the Amazon provided DNS server at the
1586
+ 169.254.169.253 IP address, or the reserved IP address at the base of the
1587
+ VPC IPv4 network range plus two will succeed.
1588
+
1589
+ :default: true
1590
+ '''
1591
+ result = self._values.get("enable_dns_support")
1592
+ return typing.cast(typing.Optional[builtins.bool], result)
1593
+
1594
+ @builtins.property
1595
+ def flow_logs(
1596
+ self,
1597
+ ) -> typing.Optional[typing.Mapping[builtins.str, _aws_cdk_aws_ec2_ceddda9d.FlowLogOptions]]:
1598
+ '''Flow logs to add to this VPC.
1599
+
1600
+ :default: - No flow logs.
1601
+ '''
1602
+ result = self._values.get("flow_logs")
1603
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, _aws_cdk_aws_ec2_ceddda9d.FlowLogOptions]], result)
1604
+
1605
+ @builtins.property
1606
+ def gateway_endpoints(
1607
+ self,
1608
+ ) -> typing.Optional[typing.Mapping[builtins.str, _aws_cdk_aws_ec2_ceddda9d.GatewayVpcEndpointOptions]]:
1609
+ '''Gateway endpoints to add to this VPC.
1610
+
1611
+ :default: - None.
1612
+ '''
1613
+ result = self._values.get("gateway_endpoints")
1614
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, _aws_cdk_aws_ec2_ceddda9d.GatewayVpcEndpointOptions]], result)
1615
+
1616
+ @builtins.property
1617
+ def ip_addresses(self) -> typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IIpAddresses]:
1618
+ '''The Provider to use to allocate IPv4 Space to your VPC.
1619
+
1620
+ Options include static allocation or from a pool.
1621
+
1622
+ Note this is specific to IPv4 addresses.
1623
+
1624
+ :default: ec2.IpAddresses.cidr
1625
+ '''
1626
+ result = self._values.get("ip_addresses")
1627
+ return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IIpAddresses], result)
1628
+
1629
+ @builtins.property
1630
+ def ip_protocol(self) -> typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IpProtocol]:
1631
+ '''The protocol of the vpc.
1632
+
1633
+ Options are IPv4 only or dual stack.
1634
+
1635
+ :default: IpProtocol.IPV4_ONLY
1636
+ '''
1637
+ result = self._values.get("ip_protocol")
1638
+ return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IpProtocol], result)
1639
+
1640
+ @builtins.property
1641
+ def ipv6_addresses(
1642
+ self,
1643
+ ) -> typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IIpv6Addresses]:
1644
+ '''The Provider to use to allocate IPv6 Space to your VPC.
1645
+
1646
+ Options include amazon provided CIDR block.
1647
+
1648
+ Note this is specific to IPv6 addresses.
1649
+
1650
+ :default: Ipv6Addresses.amazonProvided
1651
+ '''
1652
+ result = self._values.get("ipv6_addresses")
1653
+ return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IIpv6Addresses], result)
1654
+
1655
+ @builtins.property
1656
+ def max_azs(self) -> typing.Optional[jsii.Number]:
1657
+ '''Define the maximum number of AZs to use in this region.
1658
+
1659
+ If the region has more AZs than you want to use (for example, because of
1660
+ EIP limits), pick a lower number here. The AZs will be sorted and picked
1661
+ from the start of the list.
1662
+
1663
+ If you pick a higher number than the number of AZs in the region, all AZs
1664
+ in the region will be selected. To use "all AZs" available to your
1665
+ account, use a high number (such as 99).
1666
+
1667
+ Be aware that environment-agnostic stacks will be created with access to
1668
+ only 2 AZs, so to use more than 2 AZs, be sure to specify the account and
1669
+ region on your stack.
1670
+
1671
+ Specify this option only if you do not specify ``availabilityZones``.
1672
+
1673
+ :default: 3
1674
+ '''
1675
+ result = self._values.get("max_azs")
1676
+ return typing.cast(typing.Optional[jsii.Number], result)
1677
+
1678
+ @builtins.property
1679
+ def nat_gateway_provider(
1680
+ self,
1681
+ ) -> typing.Optional[_aws_cdk_aws_ec2_ceddda9d.NatProvider]:
1682
+ '''What type of NAT provider to use.
1683
+
1684
+ Select between NAT gateways or NAT instances. NAT gateways
1685
+ may not be available in all AWS regions.
1686
+
1687
+ :default: NatProvider.gateway()
1688
+ '''
1689
+ result = self._values.get("nat_gateway_provider")
1690
+ return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.NatProvider], result)
1691
+
1692
+ @builtins.property
1693
+ def nat_gateways(self) -> typing.Optional[jsii.Number]:
1694
+ '''The number of NAT Gateways/Instances to create.
1695
+
1696
+ The type of NAT gateway or instance will be determined by the
1697
+ ``natGatewayProvider`` parameter.
1698
+
1699
+ You can set this number lower than the number of Availability Zones in your
1700
+ VPC in order to save on NAT cost. Be aware you may be charged for
1701
+ cross-AZ data traffic instead.
1702
+
1703
+ :default: - One NAT gateway/instance per Availability Zone
1704
+ '''
1705
+ result = self._values.get("nat_gateways")
1706
+ return typing.cast(typing.Optional[jsii.Number], result)
1707
+
1708
+ @builtins.property
1709
+ def nat_gateway_subnets(
1710
+ self,
1711
+ ) -> typing.Optional[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection]:
1712
+ '''Configures the subnets which will have NAT Gateways/Instances.
1713
+
1714
+ You can pick a specific group of subnets by specifying the group name;
1715
+ the picked subnets must be public subnets.
1716
+
1717
+ Only necessary if you have more than one public subnet group.
1718
+
1719
+ :default: - All public subnets.
1720
+ '''
1721
+ result = self._values.get("nat_gateway_subnets")
1722
+ return typing.cast(typing.Optional[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection], result)
1723
+
1724
+ @builtins.property
1725
+ def reserved_azs(self) -> typing.Optional[jsii.Number]:
1726
+ '''Define the number of AZs to reserve.
1727
+
1728
+ When specified, the IP space is reserved for the azs but no actual
1729
+ resources are provisioned.
1730
+
1731
+ :default: 0
1732
+ '''
1733
+ result = self._values.get("reserved_azs")
1734
+ return typing.cast(typing.Optional[jsii.Number], result)
1735
+
1736
+ @builtins.property
1737
+ def restrict_default_security_group(self) -> typing.Optional[builtins.bool]:
1738
+ '''If set to true then the default inbound & outbound rules will be removed from the default security group.
1739
+
1740
+ :default: true if '@aws-cdk/aws-ec2:restrictDefaultSecurityGroup' is enabled, false otherwise
1741
+ '''
1742
+ result = self._values.get("restrict_default_security_group")
1743
+ return typing.cast(typing.Optional[builtins.bool], result)
1744
+
1745
+ @builtins.property
1746
+ def subnet_configuration(
1747
+ self,
1748
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_ec2_ceddda9d.SubnetConfiguration]]:
1749
+ '''Configure the subnets to build for each AZ.
1750
+
1751
+ Each entry in this list configures a Subnet Group; each group will contain a
1752
+ subnet for each Availability Zone.
1753
+
1754
+ For example, if you want 1 public subnet, 1 private subnet, and 1 isolated
1755
+ subnet in each AZ provide the following::
1756
+
1757
+ new ec2.Vpc(this, 'VPC', {
1758
+ subnetConfiguration: [
1759
+ {
1760
+ cidrMask: 24,
1761
+ name: 'ingress',
1762
+ subnetType: ec2.SubnetType.PUBLIC,
1763
+ },
1764
+ {
1765
+ cidrMask: 24,
1766
+ name: 'application',
1767
+ subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,
1768
+ },
1769
+ {
1770
+ cidrMask: 28,
1771
+ name: 'rds',
1772
+ subnetType: ec2.SubnetType.PRIVATE_ISOLATED,
1773
+ }
1774
+ ]
1775
+ });
1776
+
1777
+ :default:
1778
+
1779
+ - The VPC CIDR will be evenly divided between 1 public and 1
1780
+ private subnet per AZ.
1781
+ '''
1782
+ result = self._values.get("subnet_configuration")
1783
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_ec2_ceddda9d.SubnetConfiguration]], result)
1784
+
1785
+ @builtins.property
1786
+ def vpc_name(self) -> typing.Optional[builtins.str]:
1787
+ '''The VPC name.
1788
+
1789
+ Since the VPC resource doesn't support providing a physical name, the value provided here will be recorded in the ``Name`` tag
1790
+
1791
+ :default: this.node.path
1792
+ '''
1793
+ result = self._values.get("vpc_name")
1794
+ return typing.cast(typing.Optional[builtins.str], result)
1795
+
1796
+ @builtins.property
1797
+ def vpn_connections(
1798
+ self,
1799
+ ) -> typing.Optional[typing.Mapping[builtins.str, _aws_cdk_aws_ec2_ceddda9d.VpnConnectionOptions]]:
1800
+ '''VPN connections to this VPC.
1801
+
1802
+ :default: - No connections.
1803
+ '''
1804
+ result = self._values.get("vpn_connections")
1805
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, _aws_cdk_aws_ec2_ceddda9d.VpnConnectionOptions]], result)
1806
+
1807
+ @builtins.property
1808
+ def vpn_gateway(self) -> typing.Optional[builtins.bool]:
1809
+ '''Indicates whether a VPN gateway should be created and attached to this VPC.
1810
+
1811
+ :default: - true when vpnGatewayAsn or vpnConnections is specified
1812
+ '''
1813
+ result = self._values.get("vpn_gateway")
1814
+ return typing.cast(typing.Optional[builtins.bool], result)
1815
+
1816
+ @builtins.property
1817
+ def vpn_gateway_asn(self) -> typing.Optional[jsii.Number]:
1818
+ '''The private Autonomous System Number (ASN) for the VPN gateway.
1819
+
1820
+ :default: - Amazon default ASN.
1821
+ '''
1822
+ result = self._values.get("vpn_gateway_asn")
1823
+ return typing.cast(typing.Optional[jsii.Number], result)
1824
+
1825
+ @builtins.property
1826
+ def vpn_route_propagation(
1827
+ self,
1828
+ ) -> typing.Optional[typing.List[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection]]:
1829
+ '''Where to propagate VPN routes.
1830
+
1831
+ :default:
1832
+
1833
+ - On the route tables associated with private subnets. If no
1834
+ private subnets exists, isolated subnets are used. If no isolated subnets
1835
+ exists, public subnets are used.
1836
+ '''
1837
+ result = self._values.get("vpn_route_propagation")
1838
+ return typing.cast(typing.Optional[typing.List[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection]], result)
1839
+
1840
+ @builtins.property
1841
+ def range_cidr(self) -> builtins.str:
1842
+ '''(experimental) The CIDR block for the VPC.
1843
+
1844
+ :stability: experimental
1845
+ '''
1846
+ result = self._values.get("range_cidr")
1847
+ assert result is not None, "Required property 'range_cidr' is missing"
1848
+ return typing.cast(builtins.str, result)
1849
+
1850
+ @builtins.property
1851
+ def enable_endpoints(self) -> typing.Optional[typing.List[builtins.str]]:
1852
+ '''(experimental) Indicates whether to enable the S3 endpoint for the VPC.
1853
+
1854
+ :stability: experimental
1855
+ '''
1856
+ result = self._values.get("enable_endpoints")
1857
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1858
+
1859
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1860
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1861
+
1862
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1863
+ return not (rhs == self)
1864
+
1865
+ def __repr__(self) -> str:
1866
+ return "TmVpcProps(%s)" % ", ".join(
1867
+ k + "=" + repr(v) for k, v in self._values.items()
1868
+ )
1869
+
1870
+
1871
+ __all__ = [
1872
+ "TmPipeline",
1873
+ "TmPipelineProps",
1874
+ "TmRdsAuroraMysqlServerless",
1875
+ "TmRdsAuroraMysqlServerlessProps",
1876
+ "TmVpcBase",
1877
+ "TmVpcProps",
1878
+ ]
1879
+
1880
+ publication.publish()
1881
+
1882
+ def _typecheckingstub__1a993414424d3e58108b1515d1ae43df55fcea9a5bf26c77d45647cea67364f8(
1883
+ scope: _constructs_77d1e7e8.Construct,
1884
+ id: builtins.str,
1885
+ *,
1886
+ pipeline_name: builtins.str,
1887
+ repo_branch: builtins.str,
1888
+ repo_name: builtins.str,
1889
+ primary_output_directory: typing.Optional[builtins.str] = None,
1890
+ synth_command: typing.Optional[typing.Sequence[builtins.str]] = None,
1891
+ ) -> None:
1892
+ """Type checking stubs"""
1893
+ pass
1894
+
1895
+ def _typecheckingstub__c90f448d2c851abcb766597516c1d94417ef3eed41e3bc82a985a84bd6ff2854(
1896
+ *,
1897
+ pipeline_name: builtins.str,
1898
+ repo_branch: builtins.str,
1899
+ repo_name: builtins.str,
1900
+ primary_output_directory: typing.Optional[builtins.str] = None,
1901
+ synth_command: typing.Optional[typing.Sequence[builtins.str]] = None,
1902
+ ) -> None:
1903
+ """Type checking stubs"""
1904
+ pass
1905
+
1906
+ def _typecheckingstub__cc939679af82c57cdfc24824fb9ec6ef0580d01390aa5c263b878d67d4912115(
1907
+ scope: _constructs_77d1e7e8.Construct,
1908
+ id: builtins.str,
1909
+ *,
1910
+ enable_global: typing.Optional[builtins.bool] = None,
1911
+ engine: _aws_cdk_aws_rds_ceddda9d.IClusterEngine,
1912
+ backtrack_window: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
1913
+ backup: typing.Optional[typing.Union[_aws_cdk_aws_rds_ceddda9d.BackupProps, typing.Dict[builtins.str, typing.Any]]] = None,
1914
+ cloudwatch_logs_exports: typing.Optional[typing.Sequence[builtins.str]] = None,
1915
+ cloudwatch_logs_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
1916
+ cloudwatch_logs_retention_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
1917
+ cluster_identifier: typing.Optional[builtins.str] = None,
1918
+ copy_tags_to_snapshot: typing.Optional[builtins.bool] = None,
1919
+ credentials: typing.Optional[_aws_cdk_aws_rds_ceddda9d.Credentials] = None,
1920
+ default_database_name: typing.Optional[builtins.str] = None,
1921
+ deletion_protection: typing.Optional[builtins.bool] = None,
1922
+ domain: typing.Optional[builtins.str] = None,
1923
+ domain_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
1924
+ enable_data_api: typing.Optional[builtins.bool] = None,
1925
+ iam_authentication: typing.Optional[builtins.bool] = None,
1926
+ instance_identifier_base: typing.Optional[builtins.str] = None,
1927
+ instance_props: typing.Optional[typing.Union[_aws_cdk_aws_rds_ceddda9d.InstanceProps, typing.Dict[builtins.str, typing.Any]]] = None,
1928
+ instances: typing.Optional[jsii.Number] = None,
1929
+ instance_update_behaviour: typing.Optional[_aws_cdk_aws_rds_ceddda9d.InstanceUpdateBehaviour] = None,
1930
+ monitoring_interval: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
1931
+ monitoring_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
1932
+ network_type: typing.Optional[_aws_cdk_aws_rds_ceddda9d.NetworkType] = None,
1933
+ parameter_group: typing.Optional[_aws_cdk_aws_rds_ceddda9d.IParameterGroup] = None,
1934
+ parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1935
+ port: typing.Optional[jsii.Number] = None,
1936
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
1937
+ readers: typing.Optional[typing.Sequence[_aws_cdk_aws_rds_ceddda9d.IClusterInstance]] = None,
1938
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
1939
+ s3_export_buckets: typing.Optional[typing.Sequence[_aws_cdk_aws_s3_ceddda9d.IBucket]] = None,
1940
+ s3_export_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
1941
+ s3_import_buckets: typing.Optional[typing.Sequence[_aws_cdk_aws_s3_ceddda9d.IBucket]] = None,
1942
+ s3_import_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
1943
+ security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
1944
+ serverless_v2_max_capacity: typing.Optional[jsii.Number] = None,
1945
+ serverless_v2_min_capacity: typing.Optional[jsii.Number] = None,
1946
+ storage_encrypted: typing.Optional[builtins.bool] = None,
1947
+ storage_encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
1948
+ storage_type: typing.Optional[_aws_cdk_aws_rds_ceddda9d.DBClusterStorageType] = None,
1949
+ subnet_group: typing.Optional[_aws_cdk_aws_rds_ceddda9d.ISubnetGroup] = None,
1950
+ vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
1951
+ vpc_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
1952
+ writer: typing.Optional[_aws_cdk_aws_rds_ceddda9d.IClusterInstance] = None,
1953
+ ) -> None:
1954
+ """Type checking stubs"""
1955
+ pass
1956
+
1957
+ def _typecheckingstub__2eb6185862d0dbafb21639371b5cfdd31758e49cf957284e1d423cbd3bf7cc8a(
1958
+ *,
1959
+ engine: _aws_cdk_aws_rds_ceddda9d.IClusterEngine,
1960
+ backtrack_window: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
1961
+ backup: typing.Optional[typing.Union[_aws_cdk_aws_rds_ceddda9d.BackupProps, typing.Dict[builtins.str, typing.Any]]] = None,
1962
+ cloudwatch_logs_exports: typing.Optional[typing.Sequence[builtins.str]] = None,
1963
+ cloudwatch_logs_retention: typing.Optional[_aws_cdk_aws_logs_ceddda9d.RetentionDays] = None,
1964
+ cloudwatch_logs_retention_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
1965
+ cluster_identifier: typing.Optional[builtins.str] = None,
1966
+ copy_tags_to_snapshot: typing.Optional[builtins.bool] = None,
1967
+ credentials: typing.Optional[_aws_cdk_aws_rds_ceddda9d.Credentials] = None,
1968
+ default_database_name: typing.Optional[builtins.str] = None,
1969
+ deletion_protection: typing.Optional[builtins.bool] = None,
1970
+ domain: typing.Optional[builtins.str] = None,
1971
+ domain_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
1972
+ enable_data_api: typing.Optional[builtins.bool] = None,
1973
+ iam_authentication: typing.Optional[builtins.bool] = None,
1974
+ instance_identifier_base: typing.Optional[builtins.str] = None,
1975
+ instance_props: typing.Optional[typing.Union[_aws_cdk_aws_rds_ceddda9d.InstanceProps, typing.Dict[builtins.str, typing.Any]]] = None,
1976
+ instances: typing.Optional[jsii.Number] = None,
1977
+ instance_update_behaviour: typing.Optional[_aws_cdk_aws_rds_ceddda9d.InstanceUpdateBehaviour] = None,
1978
+ monitoring_interval: typing.Optional[_aws_cdk_ceddda9d.Duration] = None,
1979
+ monitoring_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
1980
+ network_type: typing.Optional[_aws_cdk_aws_rds_ceddda9d.NetworkType] = None,
1981
+ parameter_group: typing.Optional[_aws_cdk_aws_rds_ceddda9d.IParameterGroup] = None,
1982
+ parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
1983
+ port: typing.Optional[jsii.Number] = None,
1984
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
1985
+ readers: typing.Optional[typing.Sequence[_aws_cdk_aws_rds_ceddda9d.IClusterInstance]] = None,
1986
+ removal_policy: typing.Optional[_aws_cdk_ceddda9d.RemovalPolicy] = None,
1987
+ s3_export_buckets: typing.Optional[typing.Sequence[_aws_cdk_aws_s3_ceddda9d.IBucket]] = None,
1988
+ s3_export_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
1989
+ s3_import_buckets: typing.Optional[typing.Sequence[_aws_cdk_aws_s3_ceddda9d.IBucket]] = None,
1990
+ s3_import_role: typing.Optional[_aws_cdk_aws_iam_ceddda9d.IRole] = None,
1991
+ security_groups: typing.Optional[typing.Sequence[_aws_cdk_aws_ec2_ceddda9d.ISecurityGroup]] = None,
1992
+ serverless_v2_max_capacity: typing.Optional[jsii.Number] = None,
1993
+ serverless_v2_min_capacity: typing.Optional[jsii.Number] = None,
1994
+ storage_encrypted: typing.Optional[builtins.bool] = None,
1995
+ storage_encryption_key: typing.Optional[_aws_cdk_aws_kms_ceddda9d.IKey] = None,
1996
+ storage_type: typing.Optional[_aws_cdk_aws_rds_ceddda9d.DBClusterStorageType] = None,
1997
+ subnet_group: typing.Optional[_aws_cdk_aws_rds_ceddda9d.ISubnetGroup] = None,
1998
+ vpc: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IVpc] = None,
1999
+ vpc_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
2000
+ writer: typing.Optional[_aws_cdk_aws_rds_ceddda9d.IClusterInstance] = None,
2001
+ enable_global: typing.Optional[builtins.bool] = None,
2002
+ ) -> None:
2003
+ """Type checking stubs"""
2004
+ pass
2005
+
2006
+ def _typecheckingstub__bbbf384773ee5d4094012bcdf005cac4c749df363829f0efba57bdfc122d59a1(
2007
+ scope: _constructs_77d1e7e8.Construct,
2008
+ id: builtins.str,
2009
+ *,
2010
+ range_cidr: builtins.str,
2011
+ enable_endpoints: typing.Optional[typing.Sequence[builtins.str]] = None,
2012
+ availability_zones: typing.Optional[typing.Sequence[builtins.str]] = None,
2013
+ cidr: typing.Optional[builtins.str] = None,
2014
+ create_internet_gateway: typing.Optional[builtins.bool] = None,
2015
+ default_instance_tenancy: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.DefaultInstanceTenancy] = None,
2016
+ enable_dns_hostnames: typing.Optional[builtins.bool] = None,
2017
+ enable_dns_support: typing.Optional[builtins.bool] = None,
2018
+ flow_logs: typing.Optional[typing.Mapping[builtins.str, typing.Union[_aws_cdk_aws_ec2_ceddda9d.FlowLogOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
2019
+ gateway_endpoints: typing.Optional[typing.Mapping[builtins.str, typing.Union[_aws_cdk_aws_ec2_ceddda9d.GatewayVpcEndpointOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
2020
+ ip_addresses: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IIpAddresses] = None,
2021
+ ip_protocol: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IpProtocol] = None,
2022
+ ipv6_addresses: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IIpv6Addresses] = None,
2023
+ max_azs: typing.Optional[jsii.Number] = None,
2024
+ nat_gateway_provider: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.NatProvider] = None,
2025
+ nat_gateways: typing.Optional[jsii.Number] = None,
2026
+ nat_gateway_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
2027
+ reserved_azs: typing.Optional[jsii.Number] = None,
2028
+ restrict_default_security_group: typing.Optional[builtins.bool] = None,
2029
+ subnet_configuration: typing.Optional[typing.Sequence[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetConfiguration, typing.Dict[builtins.str, typing.Any]]]] = None,
2030
+ vpc_name: typing.Optional[builtins.str] = None,
2031
+ vpn_connections: typing.Optional[typing.Mapping[builtins.str, typing.Union[_aws_cdk_aws_ec2_ceddda9d.VpnConnectionOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
2032
+ vpn_gateway: typing.Optional[builtins.bool] = None,
2033
+ vpn_gateway_asn: typing.Optional[jsii.Number] = None,
2034
+ vpn_route_propagation: typing.Optional[typing.Sequence[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]]] = None,
2035
+ ) -> None:
2036
+ """Type checking stubs"""
2037
+ pass
2038
+
2039
+ def _typecheckingstub__6215cfcb5e410d0a1155ca30efab18d6b3cf0f425461591df31e65ec5978275e(
2040
+ *,
2041
+ availability_zones: typing.Optional[typing.Sequence[builtins.str]] = None,
2042
+ cidr: typing.Optional[builtins.str] = None,
2043
+ create_internet_gateway: typing.Optional[builtins.bool] = None,
2044
+ default_instance_tenancy: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.DefaultInstanceTenancy] = None,
2045
+ enable_dns_hostnames: typing.Optional[builtins.bool] = None,
2046
+ enable_dns_support: typing.Optional[builtins.bool] = None,
2047
+ flow_logs: typing.Optional[typing.Mapping[builtins.str, typing.Union[_aws_cdk_aws_ec2_ceddda9d.FlowLogOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
2048
+ gateway_endpoints: typing.Optional[typing.Mapping[builtins.str, typing.Union[_aws_cdk_aws_ec2_ceddda9d.GatewayVpcEndpointOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
2049
+ ip_addresses: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IIpAddresses] = None,
2050
+ ip_protocol: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IpProtocol] = None,
2051
+ ipv6_addresses: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.IIpv6Addresses] = None,
2052
+ max_azs: typing.Optional[jsii.Number] = None,
2053
+ nat_gateway_provider: typing.Optional[_aws_cdk_aws_ec2_ceddda9d.NatProvider] = None,
2054
+ nat_gateways: typing.Optional[jsii.Number] = None,
2055
+ nat_gateway_subnets: typing.Optional[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]] = None,
2056
+ reserved_azs: typing.Optional[jsii.Number] = None,
2057
+ restrict_default_security_group: typing.Optional[builtins.bool] = None,
2058
+ subnet_configuration: typing.Optional[typing.Sequence[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetConfiguration, typing.Dict[builtins.str, typing.Any]]]] = None,
2059
+ vpc_name: typing.Optional[builtins.str] = None,
2060
+ vpn_connections: typing.Optional[typing.Mapping[builtins.str, typing.Union[_aws_cdk_aws_ec2_ceddda9d.VpnConnectionOptions, typing.Dict[builtins.str, typing.Any]]]] = None,
2061
+ vpn_gateway: typing.Optional[builtins.bool] = None,
2062
+ vpn_gateway_asn: typing.Optional[jsii.Number] = None,
2063
+ vpn_route_propagation: typing.Optional[typing.Sequence[typing.Union[_aws_cdk_aws_ec2_ceddda9d.SubnetSelection, typing.Dict[builtins.str, typing.Any]]]] = None,
2064
+ range_cidr: builtins.str,
2065
+ enable_endpoints: typing.Optional[typing.Sequence[builtins.str]] = None,
2066
+ ) -> None:
2067
+ """Type checking stubs"""
2068
+ pass