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.
- tm-cdk-constructs/__init__.py +2068 -0
- tm-cdk-constructs/_jsii/__init__.py +28 -0
- tm-cdk-constructs/_jsii/tm-cdk-constructs@0.0.0.jsii.tgz +0 -0
- tm-cdk-constructs/py.typed +1 -0
- tm_cdk_constructs-0.0.0.dist-info/LICENSE +674 -0
- tm_cdk_constructs-0.0.0.dist-info/METADATA +117 -0
- tm_cdk_constructs-0.0.0.dist-info/RECORD +9 -0
- tm_cdk_constructs-0.0.0.dist-info/WHEEL +5 -0
- tm_cdk_constructs-0.0.0.dist-info/top_level.txt +1 -0
|
@@ -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
|