aws-cdk-lib 2.198.0__py3-none-any.whl → 2.199.0__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of aws-cdk-lib might be problematic. Click here for more details.
- aws_cdk/_jsii/__init__.py +1 -1
- aws_cdk/_jsii/{aws-cdk-lib@2.198.0.jsii.tgz → aws-cdk-lib@2.199.0.jsii.tgz} +0 -0
- aws_cdk/aws_appconfig/__init__.py +296 -48
- aws_cdk/aws_aps/__init__.py +343 -0
- aws_cdk/aws_bedrock/__init__.py +387 -4
- aws_cdk/aws_ec2/__init__.py +19 -8
- aws_cdk/aws_ecs_patterns/__init__.py +49 -3
- aws_cdk/aws_eks/__init__.py +40 -9
- aws_cdk/aws_events_targets/__init__.py +78 -1
- aws_cdk/aws_rds/__init__.py +6 -6
- aws_cdk/aws_ses/__init__.py +249 -0
- aws_cdk/aws_stepfunctions_tasks/__init__.py +1502 -2
- aws_cdk/aws_vpclattice/__init__.py +219 -209
- {aws_cdk_lib-2.198.0.dist-info → aws_cdk_lib-2.199.0.dist-info}/METADATA +1 -1
- {aws_cdk_lib-2.198.0.dist-info → aws_cdk_lib-2.199.0.dist-info}/RECORD +19 -19
- {aws_cdk_lib-2.198.0.dist-info → aws_cdk_lib-2.199.0.dist-info}/LICENSE +0 -0
- {aws_cdk_lib-2.198.0.dist-info → aws_cdk_lib-2.199.0.dist-info}/NOTICE +0 -0
- {aws_cdk_lib-2.198.0.dist-info → aws_cdk_lib-2.199.0.dist-info}/WHEEL +0 -0
- {aws_cdk_lib-2.198.0.dist-info → aws_cdk_lib-2.199.0.dist-info}/top_level.txt +0 -0
aws_cdk/aws_ec2/__init__.py
CHANGED
|
@@ -644,6 +644,14 @@ stack2 = Stack2(app, "Stack2",
|
|
|
644
644
|
)
|
|
645
645
|
```
|
|
646
646
|
|
|
647
|
+
> Note: If you encounter an error like "Delete canceled. Cannot delete export ..."
|
|
648
|
+
> when using a cross-stack reference to a VPC, it's likely due to CloudFormation
|
|
649
|
+
> export/import constraints. In such cases, it's safer to use Vpc.fromLookup()
|
|
650
|
+
> in the consuming stack instead of directly referencing the VPC object, more details
|
|
651
|
+
> is provided in [Importing an existing VPC](#importing-an-existing-vpc). This
|
|
652
|
+
> avoids creating CloudFormation exports and gives more flexibility, especially
|
|
653
|
+
> when stacks need to be deleted or updated independently.
|
|
654
|
+
|
|
647
655
|
### Importing an existing VPC
|
|
648
656
|
|
|
649
657
|
If your VPC is created outside your CDK app, you can use `Vpc.fromLookup()`.
|
|
@@ -90525,15 +90533,18 @@ class SecurityGroup(
|
|
|
90525
90533
|
|
|
90526
90534
|
Example::
|
|
90527
90535
|
|
|
90528
|
-
|
|
90529
|
-
|
|
90536
|
+
vpc = ec2.Vpc(self, "Vpc", max_azs=1)
|
|
90537
|
+
cluster = ecs.Cluster(self, "EcsCluster", vpc=vpc)
|
|
90538
|
+
security_group = ec2.SecurityGroup(self, "SG", vpc=vpc)
|
|
90530
90539
|
|
|
90531
|
-
|
|
90532
|
-
|
|
90533
|
-
|
|
90534
|
-
|
|
90535
|
-
|
|
90536
|
-
|
|
90540
|
+
scheduled_fargate_task = ecs_patterns.ScheduledFargateTask(self, "ScheduledFargateTask",
|
|
90541
|
+
cluster=cluster,
|
|
90542
|
+
scheduled_fargate_task_image_options=ecsPatterns.ScheduledFargateTaskImageOptions(
|
|
90543
|
+
image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample"),
|
|
90544
|
+
memory_limit_mi_b=512
|
|
90545
|
+
),
|
|
90546
|
+
schedule=appscaling.Schedule.expression("rate(1 minute)"),
|
|
90547
|
+
security_groups=[security_group]
|
|
90537
90548
|
)
|
|
90538
90549
|
'''
|
|
90539
90550
|
|
|
@@ -249,7 +249,9 @@ load_balanced_fargate_service = ecs_patterns.NetworkMultipleTargetGroupsFargateS
|
|
|
249
249
|
container_port=90,
|
|
250
250
|
listener="listener2"
|
|
251
251
|
)
|
|
252
|
-
]
|
|
252
|
+
],
|
|
253
|
+
min_healthy_percent=100,
|
|
254
|
+
max_healthy_percent=200
|
|
253
255
|
)
|
|
254
256
|
```
|
|
255
257
|
|
|
@@ -12688,7 +12690,9 @@ class NetworkMultipleTargetGroupsFargateService(
|
|
|
12688
12690
|
container_port=90,
|
|
12689
12691
|
listener="listener2"
|
|
12690
12692
|
)
|
|
12691
|
-
]
|
|
12693
|
+
],
|
|
12694
|
+
min_healthy_percent=100,
|
|
12695
|
+
max_healthy_percent=200
|
|
12692
12696
|
)
|
|
12693
12697
|
'''
|
|
12694
12698
|
|
|
@@ -12698,6 +12702,8 @@ class NetworkMultipleTargetGroupsFargateService(
|
|
|
12698
12702
|
id: builtins.str,
|
|
12699
12703
|
*,
|
|
12700
12704
|
assign_public_ip: typing.Optional[builtins.bool] = None,
|
|
12705
|
+
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
12706
|
+
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
12701
12707
|
cloud_map_options: typing.Optional[typing.Union[_CloudMapOptions_444ee9f2, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
12702
12708
|
cluster: typing.Optional[_ICluster_16cddd09] = None,
|
|
12703
12709
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
@@ -12722,6 +12728,8 @@ class NetworkMultipleTargetGroupsFargateService(
|
|
|
12722
12728
|
:param scope: -
|
|
12723
12729
|
:param id: -
|
|
12724
12730
|
:param assign_public_ip: Determines whether the service will be assigned a public IP address. Default: false
|
|
12731
|
+
:param max_healthy_percent: The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment. Default: - 200%
|
|
12732
|
+
:param min_healthy_percent: The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment. Default: - 50%
|
|
12725
12733
|
:param cloud_map_options: The options for configuring an Amazon ECS service to use service discovery. Default: - AWS Cloud Map service discovery is not enabled.
|
|
12726
12734
|
:param cluster: The name of the cluster that hosts the service. If a cluster is specified, the vpc construct should be omitted. Alternatively, you can omit both cluster and vpc. Default: - create a new cluster; if both cluster and vpc are omitted, a new VPC will be created for you.
|
|
12727
12735
|
:param desired_count: The desired number of instantiations of the task definition to keep running on the service. The minimum value is 1 Default: - The default is 1 for all new services and uses the existing service's desired count when updating an existing service.
|
|
@@ -12747,6 +12755,8 @@ class NetworkMultipleTargetGroupsFargateService(
|
|
|
12747
12755
|
check_type(argname="argument id", value=id, expected_type=type_hints["id"])
|
|
12748
12756
|
props = NetworkMultipleTargetGroupsFargateServiceProps(
|
|
12749
12757
|
assign_public_ip=assign_public_ip,
|
|
12758
|
+
max_healthy_percent=max_healthy_percent,
|
|
12759
|
+
min_healthy_percent=min_healthy_percent,
|
|
12750
12760
|
cloud_map_options=cloud_map_options,
|
|
12751
12761
|
cluster=cluster,
|
|
12752
12762
|
desired_count=desired_count,
|
|
@@ -12830,6 +12840,8 @@ class NetworkMultipleTargetGroupsFargateService(
|
|
|
12830
12840
|
"runtime_platform": "runtimePlatform",
|
|
12831
12841
|
"task_definition": "taskDefinition",
|
|
12832
12842
|
"assign_public_ip": "assignPublicIp",
|
|
12843
|
+
"max_healthy_percent": "maxHealthyPercent",
|
|
12844
|
+
"min_healthy_percent": "minHealthyPercent",
|
|
12833
12845
|
},
|
|
12834
12846
|
)
|
|
12835
12847
|
class NetworkMultipleTargetGroupsFargateServiceProps(
|
|
@@ -12858,6 +12870,8 @@ class NetworkMultipleTargetGroupsFargateServiceProps(
|
|
|
12858
12870
|
runtime_platform: typing.Optional[typing.Union[_RuntimePlatform_5ed98a9c, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
12859
12871
|
task_definition: typing.Optional[_FargateTaskDefinition_83754b60] = None,
|
|
12860
12872
|
assign_public_ip: typing.Optional[builtins.bool] = None,
|
|
12873
|
+
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
12874
|
+
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
12861
12875
|
) -> None:
|
|
12862
12876
|
'''The properties for the NetworkMultipleTargetGroupsFargateService service.
|
|
12863
12877
|
|
|
@@ -12880,6 +12894,8 @@ class NetworkMultipleTargetGroupsFargateServiceProps(
|
|
|
12880
12894
|
:param runtime_platform: The runtime platform of the task definition. Default: - If the property is undefined, ``operatingSystemFamily`` is LINUX and ``cpuArchitecture`` is X86_64
|
|
12881
12895
|
:param task_definition: The task definition to use for tasks in the service. TaskDefinition or TaskImageOptions must be specified, but not both. [disable-awslint:ref-via-interface] Default: - none
|
|
12882
12896
|
:param assign_public_ip: Determines whether the service will be assigned a public IP address. Default: false
|
|
12897
|
+
:param max_healthy_percent: The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment. Default: - 200%
|
|
12898
|
+
:param min_healthy_percent: The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment. Default: - 50%
|
|
12883
12899
|
|
|
12884
12900
|
:exampleMetadata: infused
|
|
12885
12901
|
|
|
@@ -12915,7 +12931,9 @@ class NetworkMultipleTargetGroupsFargateServiceProps(
|
|
|
12915
12931
|
container_port=90,
|
|
12916
12932
|
listener="listener2"
|
|
12917
12933
|
)
|
|
12918
|
-
]
|
|
12934
|
+
],
|
|
12935
|
+
min_healthy_percent=100,
|
|
12936
|
+
max_healthy_percent=200
|
|
12919
12937
|
)
|
|
12920
12938
|
'''
|
|
12921
12939
|
if isinstance(cloud_map_options, dict):
|
|
@@ -12945,6 +12963,8 @@ class NetworkMultipleTargetGroupsFargateServiceProps(
|
|
|
12945
12963
|
check_type(argname="argument runtime_platform", value=runtime_platform, expected_type=type_hints["runtime_platform"])
|
|
12946
12964
|
check_type(argname="argument task_definition", value=task_definition, expected_type=type_hints["task_definition"])
|
|
12947
12965
|
check_type(argname="argument assign_public_ip", value=assign_public_ip, expected_type=type_hints["assign_public_ip"])
|
|
12966
|
+
check_type(argname="argument max_healthy_percent", value=max_healthy_percent, expected_type=type_hints["max_healthy_percent"])
|
|
12967
|
+
check_type(argname="argument min_healthy_percent", value=min_healthy_percent, expected_type=type_hints["min_healthy_percent"])
|
|
12948
12968
|
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
12949
12969
|
if cloud_map_options is not None:
|
|
12950
12970
|
self._values["cloud_map_options"] = cloud_map_options
|
|
@@ -12984,6 +13004,10 @@ class NetworkMultipleTargetGroupsFargateServiceProps(
|
|
|
12984
13004
|
self._values["task_definition"] = task_definition
|
|
12985
13005
|
if assign_public_ip is not None:
|
|
12986
13006
|
self._values["assign_public_ip"] = assign_public_ip
|
|
13007
|
+
if max_healthy_percent is not None:
|
|
13008
|
+
self._values["max_healthy_percent"] = max_healthy_percent
|
|
13009
|
+
if min_healthy_percent is not None:
|
|
13010
|
+
self._values["min_healthy_percent"] = min_healthy_percent
|
|
12987
13011
|
|
|
12988
13012
|
@builtins.property
|
|
12989
13013
|
def cloud_map_options(self) -> typing.Optional[_CloudMapOptions_444ee9f2]:
|
|
@@ -13219,6 +13243,24 @@ class NetworkMultipleTargetGroupsFargateServiceProps(
|
|
|
13219
13243
|
result = self._values.get("assign_public_ip")
|
|
13220
13244
|
return typing.cast(typing.Optional[builtins.bool], result)
|
|
13221
13245
|
|
|
13246
|
+
@builtins.property
|
|
13247
|
+
def max_healthy_percent(self) -> typing.Optional[jsii.Number]:
|
|
13248
|
+
'''The maximum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that can run in a service during a deployment.
|
|
13249
|
+
|
|
13250
|
+
:default: - 200%
|
|
13251
|
+
'''
|
|
13252
|
+
result = self._values.get("max_healthy_percent")
|
|
13253
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
13254
|
+
|
|
13255
|
+
@builtins.property
|
|
13256
|
+
def min_healthy_percent(self) -> typing.Optional[jsii.Number]:
|
|
13257
|
+
'''The minimum number of tasks, specified as a percentage of the Amazon ECS service's DesiredCount value, that must continue to run and remain healthy during a deployment.
|
|
13258
|
+
|
|
13259
|
+
:default: - 50%
|
|
13260
|
+
'''
|
|
13261
|
+
result = self._values.get("min_healthy_percent")
|
|
13262
|
+
return typing.cast(typing.Optional[jsii.Number], result)
|
|
13263
|
+
|
|
13222
13264
|
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
13223
13265
|
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
13224
13266
|
|
|
@@ -17595,6 +17637,8 @@ def _typecheckingstub__d0896ef010a141982cad4e6363ddf5474e1d63a5c38dc712f84a1d13e
|
|
|
17595
17637
|
id: builtins.str,
|
|
17596
17638
|
*,
|
|
17597
17639
|
assign_public_ip: typing.Optional[builtins.bool] = None,
|
|
17640
|
+
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
17641
|
+
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
17598
17642
|
cloud_map_options: typing.Optional[typing.Union[_CloudMapOptions_444ee9f2, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17599
17643
|
cluster: typing.Optional[_ICluster_16cddd09] = None,
|
|
17600
17644
|
desired_count: typing.Optional[jsii.Number] = None,
|
|
@@ -17638,6 +17682,8 @@ def _typecheckingstub__052b2be34bb887cde358099c21efe7f3e968827a5a4e4c975e35f96da
|
|
|
17638
17682
|
runtime_platform: typing.Optional[typing.Union[_RuntimePlatform_5ed98a9c, typing.Dict[builtins.str, typing.Any]]] = None,
|
|
17639
17683
|
task_definition: typing.Optional[_FargateTaskDefinition_83754b60] = None,
|
|
17640
17684
|
assign_public_ip: typing.Optional[builtins.bool] = None,
|
|
17685
|
+
max_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
17686
|
+
min_healthy_percent: typing.Optional[jsii.Number] = None,
|
|
17641
17687
|
) -> None:
|
|
17642
17688
|
"""Type checking stubs"""
|
|
17643
17689
|
pass
|
aws_cdk/aws_eks/__init__.py
CHANGED
|
@@ -1976,10 +1976,13 @@ load_balancer_address = cluster.get_service_load_balancer_address("my-service")
|
|
|
1976
1976
|
|
|
1977
1977
|
eks.Addon(self, "Addon",
|
|
1978
1978
|
cluster=cluster,
|
|
1979
|
-
addon_name="
|
|
1980
|
-
addon_version="v1.
|
|
1979
|
+
addon_name="coredns",
|
|
1980
|
+
addon_version="v1.11.4-eksbuild.2",
|
|
1981
1981
|
# whether to preserve the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
|
|
1982
|
-
preserve_on_delete=False
|
|
1982
|
+
preserve_on_delete=False,
|
|
1983
|
+
configuration_values={
|
|
1984
|
+
"replica_count": 2
|
|
1985
|
+
}
|
|
1983
1986
|
)
|
|
1984
1987
|
```
|
|
1985
1988
|
|
|
@@ -2808,6 +2811,7 @@ class AddonAttributes:
|
|
|
2808
2811
|
"addon_name": "addonName",
|
|
2809
2812
|
"cluster": "cluster",
|
|
2810
2813
|
"addon_version": "addonVersion",
|
|
2814
|
+
"configuration_values": "configurationValues",
|
|
2811
2815
|
"preserve_on_delete": "preserveOnDelete",
|
|
2812
2816
|
},
|
|
2813
2817
|
)
|
|
@@ -2818,6 +2822,7 @@ class AddonProps:
|
|
|
2818
2822
|
addon_name: builtins.str,
|
|
2819
2823
|
cluster: "ICluster",
|
|
2820
2824
|
addon_version: typing.Optional[builtins.str] = None,
|
|
2825
|
+
configuration_values: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
2821
2826
|
preserve_on_delete: typing.Optional[builtins.bool] = None,
|
|
2822
2827
|
) -> None:
|
|
2823
2828
|
'''Properties for creating an Amazon EKS Add-On.
|
|
@@ -2825,6 +2830,7 @@ class AddonProps:
|
|
|
2825
2830
|
:param addon_name: Name of the Add-On.
|
|
2826
2831
|
:param cluster: The EKS cluster the Add-On is associated with.
|
|
2827
2832
|
:param addon_version: Version of the Add-On. You can check all available versions with describe-addon-versions. For example, this lists all available versions for the ``eks-pod-identity-agent`` addon: $ aws eks describe-addon-versions --addon-name eks-pod-identity-agent --query 'addons[*].addonVersions[*].addonVersion' Default: the latest version.
|
|
2833
|
+
:param configuration_values: The configuration values for the Add-on. Default: - Use default configuration.
|
|
2828
2834
|
:param preserve_on_delete: Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on. If an IAM account is associated with the add-on, it isn't removed. Default: true
|
|
2829
2835
|
|
|
2830
2836
|
:exampleMetadata: infused
|
|
@@ -2836,10 +2842,13 @@ class AddonProps:
|
|
|
2836
2842
|
|
|
2837
2843
|
eks.Addon(self, "Addon",
|
|
2838
2844
|
cluster=cluster,
|
|
2839
|
-
addon_name="
|
|
2840
|
-
addon_version="v1.
|
|
2845
|
+
addon_name="coredns",
|
|
2846
|
+
addon_version="v1.11.4-eksbuild.2",
|
|
2841
2847
|
# whether to preserve the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
|
|
2842
|
-
preserve_on_delete=False
|
|
2848
|
+
preserve_on_delete=False,
|
|
2849
|
+
configuration_values={
|
|
2850
|
+
"replica_count": 2
|
|
2851
|
+
}
|
|
2843
2852
|
)
|
|
2844
2853
|
'''
|
|
2845
2854
|
if __debug__:
|
|
@@ -2847,6 +2856,7 @@ class AddonProps:
|
|
|
2847
2856
|
check_type(argname="argument addon_name", value=addon_name, expected_type=type_hints["addon_name"])
|
|
2848
2857
|
check_type(argname="argument cluster", value=cluster, expected_type=type_hints["cluster"])
|
|
2849
2858
|
check_type(argname="argument addon_version", value=addon_version, expected_type=type_hints["addon_version"])
|
|
2859
|
+
check_type(argname="argument configuration_values", value=configuration_values, expected_type=type_hints["configuration_values"])
|
|
2850
2860
|
check_type(argname="argument preserve_on_delete", value=preserve_on_delete, expected_type=type_hints["preserve_on_delete"])
|
|
2851
2861
|
self._values: typing.Dict[builtins.str, typing.Any] = {
|
|
2852
2862
|
"addon_name": addon_name,
|
|
@@ -2854,6 +2864,8 @@ class AddonProps:
|
|
|
2854
2864
|
}
|
|
2855
2865
|
if addon_version is not None:
|
|
2856
2866
|
self._values["addon_version"] = addon_version
|
|
2867
|
+
if configuration_values is not None:
|
|
2868
|
+
self._values["configuration_values"] = configuration_values
|
|
2857
2869
|
if preserve_on_delete is not None:
|
|
2858
2870
|
self._values["preserve_on_delete"] = preserve_on_delete
|
|
2859
2871
|
|
|
@@ -2885,6 +2897,17 @@ class AddonProps:
|
|
|
2885
2897
|
result = self._values.get("addon_version")
|
|
2886
2898
|
return typing.cast(typing.Optional[builtins.str], result)
|
|
2887
2899
|
|
|
2900
|
+
@builtins.property
|
|
2901
|
+
def configuration_values(
|
|
2902
|
+
self,
|
|
2903
|
+
) -> typing.Optional[typing.Mapping[builtins.str, typing.Any]]:
|
|
2904
|
+
'''The configuration values for the Add-on.
|
|
2905
|
+
|
|
2906
|
+
:default: - Use default configuration.
|
|
2907
|
+
'''
|
|
2908
|
+
result = self._values.get("configuration_values")
|
|
2909
|
+
return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Any]], result)
|
|
2910
|
+
|
|
2888
2911
|
@builtins.property
|
|
2889
2912
|
def preserve_on_delete(self) -> typing.Optional[builtins.bool]:
|
|
2890
2913
|
'''Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
|
|
@@ -18415,10 +18438,13 @@ class Addon(
|
|
|
18415
18438
|
|
|
18416
18439
|
eks.Addon(self, "Addon",
|
|
18417
18440
|
cluster=cluster,
|
|
18418
|
-
addon_name="
|
|
18419
|
-
addon_version="v1.
|
|
18441
|
+
addon_name="coredns",
|
|
18442
|
+
addon_version="v1.11.4-eksbuild.2",
|
|
18420
18443
|
# whether to preserve the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on.
|
|
18421
|
-
preserve_on_delete=False
|
|
18444
|
+
preserve_on_delete=False,
|
|
18445
|
+
configuration_values={
|
|
18446
|
+
"replica_count": 2
|
|
18447
|
+
}
|
|
18422
18448
|
)
|
|
18423
18449
|
'''
|
|
18424
18450
|
|
|
@@ -18430,6 +18456,7 @@ class Addon(
|
|
|
18430
18456
|
addon_name: builtins.str,
|
|
18431
18457
|
cluster: ICluster,
|
|
18432
18458
|
addon_version: typing.Optional[builtins.str] = None,
|
|
18459
|
+
configuration_values: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
18433
18460
|
preserve_on_delete: typing.Optional[builtins.bool] = None,
|
|
18434
18461
|
) -> None:
|
|
18435
18462
|
'''Creates a new Amazon EKS Add-On.
|
|
@@ -18439,6 +18466,7 @@ class Addon(
|
|
|
18439
18466
|
:param addon_name: Name of the Add-On.
|
|
18440
18467
|
:param cluster: The EKS cluster the Add-On is associated with.
|
|
18441
18468
|
:param addon_version: Version of the Add-On. You can check all available versions with describe-addon-versions. For example, this lists all available versions for the ``eks-pod-identity-agent`` addon: $ aws eks describe-addon-versions --addon-name eks-pod-identity-agent --query 'addons[*].addonVersions[*].addonVersion' Default: the latest version.
|
|
18469
|
+
:param configuration_values: The configuration values for the Add-on. Default: - Use default configuration.
|
|
18442
18470
|
:param preserve_on_delete: Specifying this option preserves the add-on software on your cluster but Amazon EKS stops managing any settings for the add-on. If an IAM account is associated with the add-on, it isn't removed. Default: true
|
|
18443
18471
|
'''
|
|
18444
18472
|
if __debug__:
|
|
@@ -18449,6 +18477,7 @@ class Addon(
|
|
|
18449
18477
|
addon_name=addon_name,
|
|
18450
18478
|
cluster=cluster,
|
|
18451
18479
|
addon_version=addon_version,
|
|
18480
|
+
configuration_values=configuration_values,
|
|
18452
18481
|
preserve_on_delete=preserve_on_delete,
|
|
18453
18482
|
)
|
|
18454
18483
|
|
|
@@ -21808,6 +21837,7 @@ def _typecheckingstub__febc9f6cb4243d885b1b1838be38d633e7c5fc6534eaaf731f00a2465
|
|
|
21808
21837
|
addon_name: builtins.str,
|
|
21809
21838
|
cluster: ICluster,
|
|
21810
21839
|
addon_version: typing.Optional[builtins.str] = None,
|
|
21840
|
+
configuration_values: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
21811
21841
|
preserve_on_delete: typing.Optional[builtins.bool] = None,
|
|
21812
21842
|
) -> None:
|
|
21813
21843
|
"""Type checking stubs"""
|
|
@@ -23585,6 +23615,7 @@ def _typecheckingstub__a8342124e215d4789acf852df764143c4809251dbcaa86f6b4a11860e
|
|
|
23585
23615
|
addon_name: builtins.str,
|
|
23586
23616
|
cluster: ICluster,
|
|
23587
23617
|
addon_version: typing.Optional[builtins.str] = None,
|
|
23618
|
+
configuration_values: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
|
|
23588
23619
|
preserve_on_delete: typing.Optional[builtins.bool] = None,
|
|
23589
23620
|
) -> None:
|
|
23590
23621
|
"""Type checking stubs"""
|
|
@@ -27,6 +27,7 @@ Currently supported are:
|
|
|
27
27
|
* [Assign public IP addresses to tasks](#assign-public-ip-addresses-to-tasks)
|
|
28
28
|
* [Enable Amazon ECS Exec for ECS Task](#enable-amazon-ecs-exec-for-ecs-task)
|
|
29
29
|
* [Run a Redshift query](#schedule-a-redshift-query-serverless-or-cluster)
|
|
30
|
+
* [Publish to an SNS topic](#publish-to-an-sns-topic)
|
|
30
31
|
|
|
31
32
|
See the README of the `aws-cdk-lib/aws-events` library for more information on
|
|
32
33
|
EventBridge.
|
|
@@ -624,6 +625,40 @@ rule.add_target(targets.RedshiftQuery(workgroup.attr_workgroup_workgroup_arn,
|
|
|
624
625
|
sql=["SELECT * FROM foo", "SELECT * FROM baz"]
|
|
625
626
|
))
|
|
626
627
|
```
|
|
628
|
+
|
|
629
|
+
## Publish to an SNS Topic
|
|
630
|
+
|
|
631
|
+
Use the `SnsTopic` target to publish to an SNS Topic.
|
|
632
|
+
|
|
633
|
+
The code snippet below creates the scheduled event rule that publishes to an SNS Topic using a resource policy.
|
|
634
|
+
|
|
635
|
+
```python
|
|
636
|
+
import aws_cdk.aws_sns as sns
|
|
637
|
+
|
|
638
|
+
# topic: sns.ITopic
|
|
639
|
+
|
|
640
|
+
|
|
641
|
+
rule = events.Rule(self, "Rule",
|
|
642
|
+
schedule=events.Schedule.rate(cdk.Duration.hours(1))
|
|
643
|
+
)
|
|
644
|
+
|
|
645
|
+
rule.add_target(targets.SnsTopic(topic))
|
|
646
|
+
```
|
|
647
|
+
|
|
648
|
+
Alternatively, a role can be attached to the target when the rule is triggered.
|
|
649
|
+
|
|
650
|
+
```python
|
|
651
|
+
import aws_cdk.aws_sns as sns
|
|
652
|
+
|
|
653
|
+
# topic: sns.ITopic
|
|
654
|
+
|
|
655
|
+
|
|
656
|
+
rule = events.Rule(self, "Rule",
|
|
657
|
+
schedule=events.Schedule.rate(cdk.Duration.hours(1))
|
|
658
|
+
)
|
|
659
|
+
|
|
660
|
+
rule.add_target(targets.SnsTopic(topic, authorize_using_role=True))
|
|
661
|
+
```
|
|
627
662
|
'''
|
|
628
663
|
from pkgutil import extend_path
|
|
629
664
|
__path__ = extend_path(__path__, __name__)
|
|
@@ -3302,14 +3337,18 @@ class SnsTopic(
|
|
|
3302
3337
|
self,
|
|
3303
3338
|
topic: _ITopic_9eca4852,
|
|
3304
3339
|
*,
|
|
3340
|
+
authorize_using_role: typing.Optional[builtins.bool] = None,
|
|
3305
3341
|
message: typing.Optional[_RuleTargetInput_6beca786] = None,
|
|
3342
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
3306
3343
|
dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
|
|
3307
3344
|
max_event_age: typing.Optional[_Duration_4839e8c3] = None,
|
|
3308
3345
|
retry_attempts: typing.Optional[jsii.Number] = None,
|
|
3309
3346
|
) -> None:
|
|
3310
3347
|
'''
|
|
3311
3348
|
:param topic: -
|
|
3349
|
+
:param authorize_using_role: Specifies whether an IAM role should be used to publish to the topic. Default: - true if ``role`` is provided, false otherwise
|
|
3312
3350
|
:param message: The message to send to the topic. Default: the entire EventBridge event
|
|
3351
|
+
:param role: The IAM role to be used to publish to the topic. Default: - a new role will be created if ``authorizeUsingRole`` is true
|
|
3313
3352
|
:param dead_letter_queue: The SQS queue to be used as deadLetterQueue. Check out the `considerations for using a dead-letter queue <https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations>`_. The events not successfully delivered are automatically retried for a specified period of time, depending on the retry policy of the target. If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. Default: - no dead-letter queue
|
|
3314
3353
|
:param max_event_age: The maximum age of a request that Lambda sends to a function for processing. Minimum value of 60. Maximum value of 86400. Default: Duration.hours(24)
|
|
3315
3354
|
:param retry_attempts: The maximum number of times to retry when the function returns an error. Minimum value of 0. Maximum value of 185. Default: 185
|
|
@@ -3318,7 +3357,9 @@ class SnsTopic(
|
|
|
3318
3357
|
type_hints = typing.get_type_hints(_typecheckingstub__b58aa74b2a717b90ef291556746b786df8882b8158b4b3255bf88691dbd8fd07)
|
|
3319
3358
|
check_type(argname="argument topic", value=topic, expected_type=type_hints["topic"])
|
|
3320
3359
|
props = SnsTopicProps(
|
|
3360
|
+
authorize_using_role=authorize_using_role,
|
|
3321
3361
|
message=message,
|
|
3362
|
+
role=role,
|
|
3322
3363
|
dead_letter_queue=dead_letter_queue,
|
|
3323
3364
|
max_event_age=max_event_age,
|
|
3324
3365
|
retry_attempts=retry_attempts,
|
|
@@ -5722,7 +5763,9 @@ class SfnStateMachineProps(TargetBaseProps):
|
|
|
5722
5763
|
"dead_letter_queue": "deadLetterQueue",
|
|
5723
5764
|
"max_event_age": "maxEventAge",
|
|
5724
5765
|
"retry_attempts": "retryAttempts",
|
|
5766
|
+
"authorize_using_role": "authorizeUsingRole",
|
|
5725
5767
|
"message": "message",
|
|
5768
|
+
"role": "role",
|
|
5726
5769
|
},
|
|
5727
5770
|
)
|
|
5728
5771
|
class SnsTopicProps(TargetBaseProps):
|
|
@@ -5732,14 +5775,18 @@ class SnsTopicProps(TargetBaseProps):
|
|
|
5732
5775
|
dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
|
|
5733
5776
|
max_event_age: typing.Optional[_Duration_4839e8c3] = None,
|
|
5734
5777
|
retry_attempts: typing.Optional[jsii.Number] = None,
|
|
5778
|
+
authorize_using_role: typing.Optional[builtins.bool] = None,
|
|
5735
5779
|
message: typing.Optional[_RuleTargetInput_6beca786] = None,
|
|
5780
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
5736
5781
|
) -> None:
|
|
5737
5782
|
'''Customize the SNS Topic Event Target.
|
|
5738
5783
|
|
|
5739
5784
|
:param dead_letter_queue: The SQS queue to be used as deadLetterQueue. Check out the `considerations for using a dead-letter queue <https://docs.aws.amazon.com/eventbridge/latest/userguide/rule-dlq.html#dlq-considerations>`_. The events not successfully delivered are automatically retried for a specified period of time, depending on the retry policy of the target. If an event is not delivered before all retry attempts are exhausted, it will be sent to the dead letter queue. Default: - no dead-letter queue
|
|
5740
5785
|
:param max_event_age: The maximum age of a request that Lambda sends to a function for processing. Minimum value of 60. Maximum value of 86400. Default: Duration.hours(24)
|
|
5741
5786
|
:param retry_attempts: The maximum number of times to retry when the function returns an error. Minimum value of 0. Maximum value of 185. Default: 185
|
|
5787
|
+
:param authorize_using_role: Specifies whether an IAM role should be used to publish to the topic. Default: - true if ``role`` is provided, false otherwise
|
|
5742
5788
|
:param message: The message to send to the topic. Default: the entire EventBridge event
|
|
5789
|
+
:param role: The IAM role to be used to publish to the topic. Default: - a new role will be created if ``authorizeUsingRole`` is true
|
|
5743
5790
|
|
|
5744
5791
|
:exampleMetadata: infused
|
|
5745
5792
|
|
|
@@ -5750,7 +5797,9 @@ class SnsTopicProps(TargetBaseProps):
|
|
|
5750
5797
|
|
|
5751
5798
|
|
|
5752
5799
|
on_commit_rule.add_target(targets.SnsTopic(topic,
|
|
5753
|
-
message=events.RuleTargetInput.
|
|
5800
|
+
message=events.RuleTargetInput.from_object({
|
|
5801
|
+
"DataType": f"custom_{events.EventField.fromPath('$.detail-type')}"
|
|
5802
|
+
})
|
|
5754
5803
|
))
|
|
5755
5804
|
'''
|
|
5756
5805
|
if __debug__:
|
|
@@ -5758,7 +5807,9 @@ class SnsTopicProps(TargetBaseProps):
|
|
|
5758
5807
|
check_type(argname="argument dead_letter_queue", value=dead_letter_queue, expected_type=type_hints["dead_letter_queue"])
|
|
5759
5808
|
check_type(argname="argument max_event_age", value=max_event_age, expected_type=type_hints["max_event_age"])
|
|
5760
5809
|
check_type(argname="argument retry_attempts", value=retry_attempts, expected_type=type_hints["retry_attempts"])
|
|
5810
|
+
check_type(argname="argument authorize_using_role", value=authorize_using_role, expected_type=type_hints["authorize_using_role"])
|
|
5761
5811
|
check_type(argname="argument message", value=message, expected_type=type_hints["message"])
|
|
5812
|
+
check_type(argname="argument role", value=role, expected_type=type_hints["role"])
|
|
5762
5813
|
self._values: typing.Dict[builtins.str, typing.Any] = {}
|
|
5763
5814
|
if dead_letter_queue is not None:
|
|
5764
5815
|
self._values["dead_letter_queue"] = dead_letter_queue
|
|
@@ -5766,8 +5817,12 @@ class SnsTopicProps(TargetBaseProps):
|
|
|
5766
5817
|
self._values["max_event_age"] = max_event_age
|
|
5767
5818
|
if retry_attempts is not None:
|
|
5768
5819
|
self._values["retry_attempts"] = retry_attempts
|
|
5820
|
+
if authorize_using_role is not None:
|
|
5821
|
+
self._values["authorize_using_role"] = authorize_using_role
|
|
5769
5822
|
if message is not None:
|
|
5770
5823
|
self._values["message"] = message
|
|
5824
|
+
if role is not None:
|
|
5825
|
+
self._values["role"] = role
|
|
5771
5826
|
|
|
5772
5827
|
@builtins.property
|
|
5773
5828
|
def dead_letter_queue(self) -> typing.Optional[_IQueue_7ed6f679]:
|
|
@@ -5806,6 +5861,15 @@ class SnsTopicProps(TargetBaseProps):
|
|
|
5806
5861
|
result = self._values.get("retry_attempts")
|
|
5807
5862
|
return typing.cast(typing.Optional[jsii.Number], result)
|
|
5808
5863
|
|
|
5864
|
+
@builtins.property
|
|
5865
|
+
def authorize_using_role(self) -> typing.Optional[builtins.bool]:
|
|
5866
|
+
'''Specifies whether an IAM role should be used to publish to the topic.
|
|
5867
|
+
|
|
5868
|
+
:default: - true if ``role`` is provided, false otherwise
|
|
5869
|
+
'''
|
|
5870
|
+
result = self._values.get("authorize_using_role")
|
|
5871
|
+
return typing.cast(typing.Optional[builtins.bool], result)
|
|
5872
|
+
|
|
5809
5873
|
@builtins.property
|
|
5810
5874
|
def message(self) -> typing.Optional[_RuleTargetInput_6beca786]:
|
|
5811
5875
|
'''The message to send to the topic.
|
|
@@ -5815,6 +5879,15 @@ class SnsTopicProps(TargetBaseProps):
|
|
|
5815
5879
|
result = self._values.get("message")
|
|
5816
5880
|
return typing.cast(typing.Optional[_RuleTargetInput_6beca786], result)
|
|
5817
5881
|
|
|
5882
|
+
@builtins.property
|
|
5883
|
+
def role(self) -> typing.Optional[_IRole_235f5d8e]:
|
|
5884
|
+
'''The IAM role to be used to publish to the topic.
|
|
5885
|
+
|
|
5886
|
+
:default: - a new role will be created if ``authorizeUsingRole`` is true
|
|
5887
|
+
'''
|
|
5888
|
+
result = self._values.get("role")
|
|
5889
|
+
return typing.cast(typing.Optional[_IRole_235f5d8e], result)
|
|
5890
|
+
|
|
5818
5891
|
def __eq__(self, rhs: typing.Any) -> builtins.bool:
|
|
5819
5892
|
return isinstance(rhs, self.__class__) and rhs._values == self._values
|
|
5820
5893
|
|
|
@@ -6428,7 +6501,9 @@ def _typecheckingstub__0e0733fbe09a8310edfc7237ca759e925b3db6d25ad43627fcf4f165c
|
|
|
6428
6501
|
def _typecheckingstub__b58aa74b2a717b90ef291556746b786df8882b8158b4b3255bf88691dbd8fd07(
|
|
6429
6502
|
topic: _ITopic_9eca4852,
|
|
6430
6503
|
*,
|
|
6504
|
+
authorize_using_role: typing.Optional[builtins.bool] = None,
|
|
6431
6505
|
message: typing.Optional[_RuleTargetInput_6beca786] = None,
|
|
6506
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
6432
6507
|
dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
|
|
6433
6508
|
max_event_age: typing.Optional[_Duration_4839e8c3] = None,
|
|
6434
6509
|
retry_attempts: typing.Optional[jsii.Number] = None,
|
|
@@ -6641,7 +6716,9 @@ def _typecheckingstub__29b5b095e8884167f8f78e4ccfc6cd844ecb24d73c2e229d24c0a7a18
|
|
|
6641
6716
|
dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
|
|
6642
6717
|
max_event_age: typing.Optional[_Duration_4839e8c3] = None,
|
|
6643
6718
|
retry_attempts: typing.Optional[jsii.Number] = None,
|
|
6719
|
+
authorize_using_role: typing.Optional[builtins.bool] = None,
|
|
6644
6720
|
message: typing.Optional[_RuleTargetInput_6beca786] = None,
|
|
6721
|
+
role: typing.Optional[_IRole_235f5d8e] = None,
|
|
6645
6722
|
) -> None:
|
|
6646
6723
|
"""Type checking stubs"""
|
|
6647
6724
|
pass
|
aws_cdk/aws_rds/__init__.py
CHANGED
|
@@ -21423,7 +21423,7 @@ class DatabaseClusterFromSnapshotProps:
|
|
|
21423
21423
|
:param snapshot_credentials: Master user credentials. Note - It is not possible to change the master username for a snapshot; however, it is possible to provide (or generate) a new password. Default: - The existing username and password from the snapshot will be used.
|
|
21424
21424
|
:param storage_encrypted: Whether to enable storage encryption. Default: - true if storageEncryptionKey is provided, false otherwise
|
|
21425
21425
|
: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
|
|
21426
|
-
:param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.
|
|
21426
|
+
:param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA
|
|
21427
21427
|
:param subnet_group: Existing subnet group for the cluster. Default: - a new subnet group will be created.
|
|
21428
21428
|
:param vpc: What subnets to run the RDS instances in. Must be at least 2 subnets in two different AZs.
|
|
21429
21429
|
:param vpc_subnets: Where to place the instances within the VPC. Default: - the Vpc default strategy if not specified.
|
|
@@ -22198,7 +22198,7 @@ class DatabaseClusterFromSnapshotProps:
|
|
|
22198
22198
|
def storage_type(self) -> typing.Optional[DBClusterStorageType]:
|
|
22199
22199
|
'''The storage type to be associated with the DB cluster.
|
|
22200
22200
|
|
|
22201
|
-
:default: - DBClusterStorageType.
|
|
22201
|
+
:default: - DBClusterStorageType.AURORA
|
|
22202
22202
|
'''
|
|
22203
22203
|
result = self._values.get("storage_type")
|
|
22204
22204
|
return typing.cast(typing.Optional[DBClusterStorageType], result)
|
|
@@ -22418,7 +22418,7 @@ class DatabaseClusterProps:
|
|
|
22418
22418
|
: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. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5. Default: 0.5
|
|
22419
22419
|
:param storage_encrypted: Whether to enable storage encryption. Default: - true if storageEncryptionKey is provided, false otherwise
|
|
22420
22420
|
: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
|
|
22421
|
-
:param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.
|
|
22421
|
+
:param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA
|
|
22422
22422
|
:param subnet_group: Existing subnet group for the cluster. Default: - a new subnet group will be created.
|
|
22423
22423
|
:param vpc: What subnets to run the RDS instances in. Must be at least 2 subnets in two different AZs.
|
|
22424
22424
|
:param vpc_subnets: Where to place the instances within the VPC. Default: - the Vpc default strategy if not specified.
|
|
@@ -23176,7 +23176,7 @@ class DatabaseClusterProps:
|
|
|
23176
23176
|
def storage_type(self) -> typing.Optional[DBClusterStorageType]:
|
|
23177
23177
|
'''The storage type to be associated with the DB cluster.
|
|
23178
23178
|
|
|
23179
|
-
:default: - DBClusterStorageType.
|
|
23179
|
+
:default: - DBClusterStorageType.AURORA
|
|
23180
23180
|
'''
|
|
23181
23181
|
result = self._values.get("storage_type")
|
|
23182
23182
|
return typing.cast(typing.Optional[DBClusterStorageType], result)
|
|
@@ -42728,7 +42728,7 @@ class DatabaseClusterFromSnapshot(
|
|
|
42728
42728
|
:param snapshot_credentials: Master user credentials. Note - It is not possible to change the master username for a snapshot; however, it is possible to provide (or generate) a new password. Default: - The existing username and password from the snapshot will be used.
|
|
42729
42729
|
:param storage_encrypted: Whether to enable storage encryption. Default: - true if storageEncryptionKey is provided, false otherwise
|
|
42730
42730
|
: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
|
|
42731
|
-
:param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.
|
|
42731
|
+
:param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA
|
|
42732
42732
|
:param subnet_group: Existing subnet group for the cluster. Default: - a new subnet group will be created.
|
|
42733
42733
|
:param vpc: What subnets to run the RDS instances in. Must be at least 2 subnets in two different AZs.
|
|
42734
42734
|
:param vpc_subnets: Where to place the instances within the VPC. Default: - the Vpc default strategy if not specified.
|
|
@@ -46936,7 +46936,7 @@ class DatabaseCluster(
|
|
|
46936
46936
|
: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. For Aurora versions that support the Aurora Serverless v2 auto-pause feature, the smallest value that you can use is 0. For versions that don't support Aurora Serverless v2 auto-pause, the smallest value that you can use is 0.5. Default: 0.5
|
|
46937
46937
|
:param storage_encrypted: Whether to enable storage encryption. Default: - true if storageEncryptionKey is provided, false otherwise
|
|
46938
46938
|
: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
|
|
46939
|
-
:param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.
|
|
46939
|
+
:param storage_type: The storage type to be associated with the DB cluster. Default: - DBClusterStorageType.AURORA
|
|
46940
46940
|
:param subnet_group: Existing subnet group for the cluster. Default: - a new subnet group will be created.
|
|
46941
46941
|
:param vpc: What subnets to run the RDS instances in. Must be at least 2 subnets in two different AZs.
|
|
46942
46942
|
:param vpc_subnets: Where to place the instances within the VPC. Default: - the Vpc default strategy if not specified.
|