aws-cdk-lib 2.136.1__py3-none-any.whl → 2.138.0__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of aws-cdk-lib might be problematic. Click here for more details.

Files changed (61) hide show
  1. aws_cdk/__init__.py +8 -0
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.136.1.jsii.tgz → aws-cdk-lib@2.138.0.jsii.tgz} +0 -0
  4. aws_cdk/assertions/__init__.py +152 -5
  5. aws_cdk/aws_amplify/__init__.py +29 -113
  6. aws_cdk/aws_appconfig/__init__.py +26 -33
  7. aws_cdk/aws_apprunner/__init__.py +5 -2
  8. aws_cdk/aws_appsync/__init__.py +400 -13
  9. aws_cdk/aws_aps/__init__.py +64 -47
  10. aws_cdk/aws_b2bi/__init__.py +2 -6
  11. aws_cdk/aws_backup/__init__.py +27 -23
  12. aws_cdk/aws_batch/__init__.py +103 -0
  13. aws_cdk/aws_bcmdataexports/__init__.py +1114 -0
  14. aws_cdk/aws_chatbot/__init__.py +6 -4
  15. aws_cdk/aws_cleanrooms/__init__.py +526 -3
  16. aws_cdk/aws_cleanroomsml/__init__.py +960 -0
  17. aws_cdk/aws_cloudfront/__init__.py +196 -15
  18. aws_cdk/aws_cloudtrail/__init__.py +10 -10
  19. aws_cdk/aws_cloudwatch/__init__.py +124 -8
  20. aws_cdk/aws_codebuild/__init__.py +27 -22
  21. aws_cdk/aws_codeconnections/__init__.py +435 -0
  22. aws_cdk/aws_cognito/__init__.py +175 -79
  23. aws_cdk/aws_deadline/__init__.py +5394 -0
  24. aws_cdk/aws_ec2/__init__.py +379 -173
  25. aws_cdk/aws_ecr_assets/__init__.py +3 -4
  26. aws_cdk/aws_ecs/__init__.py +240 -1
  27. aws_cdk/aws_efs/__init__.py +2 -2
  28. aws_cdk/aws_elasticache/__init__.py +86 -32
  29. aws_cdk/aws_elasticloadbalancingv2/__init__.py +275 -5
  30. aws_cdk/aws_emr/__init__.py +2 -2
  31. aws_cdk/aws_entityresolution/__init__.py +1982 -773
  32. aws_cdk/aws_globalaccelerator/__init__.py +443 -0
  33. aws_cdk/aws_iam/__init__.py +24 -40
  34. aws_cdk/aws_internetmonitor/__init__.py +14 -6
  35. aws_cdk/aws_ivs/__init__.py +1273 -71
  36. aws_cdk/aws_kms/__init__.py +8 -13
  37. aws_cdk/aws_mediatailor/__init__.py +41 -0
  38. aws_cdk/aws_personalize/__init__.py +8 -6
  39. aws_cdk/aws_pinpoint/__init__.py +5 -3
  40. aws_cdk/aws_pipes/__init__.py +5 -1
  41. aws_cdk/aws_quicksight/__init__.py +12 -6
  42. aws_cdk/aws_rds/__init__.py +355 -85
  43. aws_cdk/aws_route53/__init__.py +591 -18
  44. aws_cdk/aws_s3_deployment/__init__.py +84 -7
  45. aws_cdk/aws_sagemaker/__init__.py +233 -2
  46. aws_cdk/aws_securityhub/__init__.py +4940 -102
  47. aws_cdk/aws_securitylake/__init__.py +1237 -55
  48. aws_cdk/aws_sns/__init__.py +183 -4
  49. aws_cdk/aws_ssmcontacts/__init__.py +11 -4
  50. aws_cdk/aws_stepfunctions/__init__.py +8 -16
  51. aws_cdk/aws_stepfunctions_tasks/__init__.py +676 -1
  52. aws_cdk/aws_transfer/__init__.py +4 -4
  53. aws_cdk/aws_verifiedpermissions/__init__.py +114 -37
  54. aws_cdk/aws_workspacesthinclient/__init__.py +8 -8
  55. aws_cdk/custom_resources/__init__.py +248 -26
  56. {aws_cdk_lib-2.136.1.dist-info → aws_cdk_lib-2.138.0.dist-info}/METADATA +3 -3
  57. {aws_cdk_lib-2.136.1.dist-info → aws_cdk_lib-2.138.0.dist-info}/RECORD +61 -57
  58. {aws_cdk_lib-2.136.1.dist-info → aws_cdk_lib-2.138.0.dist-info}/LICENSE +0 -0
  59. {aws_cdk_lib-2.136.1.dist-info → aws_cdk_lib-2.138.0.dist-info}/NOTICE +0 -0
  60. {aws_cdk_lib-2.136.1.dist-info → aws_cdk_lib-2.138.0.dist-info}/WHEEL +0 -0
  61. {aws_cdk_lib-2.136.1.dist-info → aws_cdk_lib-2.138.0.dist-info}/top_level.txt +0 -0
@@ -220,6 +220,7 @@ from .. import (
220
220
  IResolvable as _IResolvable_da3f097b,
221
221
  IResource as _IResource_c80c4260,
222
222
  ITaggable as _ITaggable_36806126,
223
+ ITaggableV2 as _ITaggableV2_4e6798f8,
223
224
  Resource as _Resource_45bc6135,
224
225
  TagManager as _TagManager_0a598cb3,
225
226
  TreeInspector as _TreeInspector_488e0dd5,
@@ -840,6 +841,380 @@ class CfnAcceleratorProps:
840
841
  )
841
842
 
842
843
 
844
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
845
+ class CfnCrossAccountAttachment(
846
+ _CfnResource_9df397a6,
847
+ metaclass=jsii.JSIIMeta,
848
+ jsii_type="aws-cdk-lib.aws_globalaccelerator.CfnCrossAccountAttachment",
849
+ ):
850
+ '''Create a cross-account attachment in AWS Global Accelerator .
851
+
852
+ You create a cross-account attachment to specify the *principals* who have permission to work with *resources* in accelerators in their own account. You specify, in the same attachment, the resources that are shared.
853
+
854
+ A principal can be an AWS account number or the Amazon Resource Name (ARN) for an accelerator. For account numbers that are listed as principals, to work with a resource listed in the attachment, you must sign in to an account specified as a principal. Then, you can work with resources that are listed, with any of your accelerators. If an accelerator ARN is listed in the cross-account attachment as a principal, anyone with permission to make updates to the accelerator can work with resources that are listed in the attachment.
855
+
856
+ Specify each principal and resource separately. To specify two CIDR address pools, list them individually under ``Resources`` , and so on. For a command line operation, for example, you might use a statement like the following:
857
+
858
+ ``"Resources": [{"Cidr": "169.254.60.0/24"},{"Cidr": "169.254.59.0/24"}]``
859
+
860
+ For more information, see `Working with cross-account attachments and resources in AWS Global Accelerator <https://docs.aws.amazon.com/global-accelerator/latest/dg/cross-account-resources.html>`_ in the *AWS Global Accelerator Developer Guide* .
861
+
862
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html
863
+ :cloudformationResource: AWS::GlobalAccelerator::CrossAccountAttachment
864
+ :exampleMetadata: fixture=_generated
865
+
866
+ Example::
867
+
868
+ # The code below shows an example of how to instantiate this type.
869
+ # The values are placeholders you should change.
870
+ from aws_cdk import aws_globalaccelerator as globalaccelerator
871
+
872
+ cfn_cross_account_attachment = globalaccelerator.CfnCrossAccountAttachment(self, "MyCfnCrossAccountAttachment",
873
+ name="name",
874
+
875
+ # the properties below are optional
876
+ principals=["principals"],
877
+ resources=[globalaccelerator.CfnCrossAccountAttachment.ResourceProperty(
878
+ endpoint_id="endpointId",
879
+
880
+ # the properties below are optional
881
+ region="region"
882
+ )],
883
+ tags=[CfnTag(
884
+ key="key",
885
+ value="value"
886
+ )]
887
+ )
888
+ '''
889
+
890
+ def __init__(
891
+ self,
892
+ scope: _constructs_77d1e7e8.Construct,
893
+ id: builtins.str,
894
+ *,
895
+ name: builtins.str,
896
+ principals: typing.Optional[typing.Sequence[builtins.str]] = None,
897
+ resources: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnCrossAccountAttachment.ResourceProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
898
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
899
+ ) -> None:
900
+ '''
901
+ :param scope: Scope in which this resource is defined.
902
+ :param id: Construct identifier for this resource (unique in its scope).
903
+ :param name: The Friendly identifier of the attachment.
904
+ :param principals: Principals to share the resources with.
905
+ :param resources: Resources shared using the attachment.
906
+ :param tags:
907
+ '''
908
+ if __debug__:
909
+ type_hints = typing.get_type_hints(_typecheckingstub__ba1ec3d469e5dcabcf7399e8e8e79a3f5365c953f4994522f2f99f4785e9351d)
910
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
911
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
912
+ props = CfnCrossAccountAttachmentProps(
913
+ name=name, principals=principals, resources=resources, tags=tags
914
+ )
915
+
916
+ jsii.create(self.__class__, self, [scope, id, props])
917
+
918
+ @jsii.member(jsii_name="inspect")
919
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
920
+ '''Examines the CloudFormation resource and discloses attributes.
921
+
922
+ :param inspector: tree inspector to collect and process attributes.
923
+ '''
924
+ if __debug__:
925
+ type_hints = typing.get_type_hints(_typecheckingstub__22786fe9cf42aaba90a851e34bed5295d6cb83ef62c09ae6bc29c753ad99c5ff)
926
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
927
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
928
+
929
+ @jsii.member(jsii_name="renderProperties")
930
+ def _render_properties(
931
+ self,
932
+ props: typing.Mapping[builtins.str, typing.Any],
933
+ ) -> typing.Mapping[builtins.str, typing.Any]:
934
+ '''
935
+ :param props: -
936
+ '''
937
+ if __debug__:
938
+ type_hints = typing.get_type_hints(_typecheckingstub__7cd632424889de088176e87245805d03f5bdd773dc61b13fb9b6b0ca8d5801b5)
939
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
940
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
941
+
942
+ @jsii.python.classproperty
943
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
944
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
945
+ '''The CloudFormation resource type name for this resource class.'''
946
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
947
+
948
+ @builtins.property
949
+ @jsii.member(jsii_name="attrAttachmentArn")
950
+ def attr_attachment_arn(self) -> builtins.str:
951
+ '''The Amazon Resource Name (ARN) of the attachment.
952
+
953
+ :cloudformationAttribute: AttachmentArn
954
+ '''
955
+ return typing.cast(builtins.str, jsii.get(self, "attrAttachmentArn"))
956
+
957
+ @builtins.property
958
+ @jsii.member(jsii_name="cdkTagManager")
959
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
960
+ '''Tag Manager which manages the tags for this resource.'''
961
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
962
+
963
+ @builtins.property
964
+ @jsii.member(jsii_name="cfnProperties")
965
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
966
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
967
+
968
+ @builtins.property
969
+ @jsii.member(jsii_name="name")
970
+ def name(self) -> builtins.str:
971
+ '''The Friendly identifier of the attachment.'''
972
+ return typing.cast(builtins.str, jsii.get(self, "name"))
973
+
974
+ @name.setter
975
+ def name(self, value: builtins.str) -> None:
976
+ if __debug__:
977
+ type_hints = typing.get_type_hints(_typecheckingstub__19782d3e7f6cd3af16e9e78c249289e2593a7ff1d4e1c7a86db71dc5f399fb46)
978
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
979
+ jsii.set(self, "name", value)
980
+
981
+ @builtins.property
982
+ @jsii.member(jsii_name="principals")
983
+ def principals(self) -> typing.Optional[typing.List[builtins.str]]:
984
+ '''Principals to share the resources with.'''
985
+ return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "principals"))
986
+
987
+ @principals.setter
988
+ def principals(self, value: typing.Optional[typing.List[builtins.str]]) -> None:
989
+ if __debug__:
990
+ type_hints = typing.get_type_hints(_typecheckingstub__08ec8314d2cbd2120a78129320bf34d1678991d2ed2d2b8df5bf723a99a7c254)
991
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
992
+ jsii.set(self, "principals", value)
993
+
994
+ @builtins.property
995
+ @jsii.member(jsii_name="resources")
996
+ def resources(
997
+ self,
998
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnCrossAccountAttachment.ResourceProperty"]]]]:
999
+ '''Resources shared using the attachment.'''
1000
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnCrossAccountAttachment.ResourceProperty"]]]], jsii.get(self, "resources"))
1001
+
1002
+ @resources.setter
1003
+ def resources(
1004
+ self,
1005
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnCrossAccountAttachment.ResourceProperty"]]]],
1006
+ ) -> None:
1007
+ if __debug__:
1008
+ type_hints = typing.get_type_hints(_typecheckingstub__4e879fec7df8ee76103a0479812b95ae371bbbe6b3312bbaebe1d912c7185fd3)
1009
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1010
+ jsii.set(self, "resources", value)
1011
+
1012
+ @builtins.property
1013
+ @jsii.member(jsii_name="tags")
1014
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1015
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], jsii.get(self, "tags"))
1016
+
1017
+ @tags.setter
1018
+ def tags(self, value: typing.Optional[typing.List[_CfnTag_f6864754]]) -> None:
1019
+ if __debug__:
1020
+ type_hints = typing.get_type_hints(_typecheckingstub__41d583733963eebabfa0286562bcae1a6871814ce66e72f32e495b730a151c15)
1021
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
1022
+ jsii.set(self, "tags", value)
1023
+
1024
+ @jsii.data_type(
1025
+ jsii_type="aws-cdk-lib.aws_globalaccelerator.CfnCrossAccountAttachment.ResourceProperty",
1026
+ jsii_struct_bases=[],
1027
+ name_mapping={"endpoint_id": "endpointId", "region": "region"},
1028
+ )
1029
+ class ResourceProperty:
1030
+ def __init__(
1031
+ self,
1032
+ *,
1033
+ endpoint_id: builtins.str,
1034
+ region: typing.Optional[builtins.str] = None,
1035
+ ) -> None:
1036
+ '''A resource is one of the following: the ARN for an AWS resource that is supported by AWS Global Accelerator to be added as an endpoint, or a CIDR range that specifies a bring your own IP (BYOIP) address pool.
1037
+
1038
+ :param endpoint_id: The endpoint ID for the endpoint that is specified as a AWS resource. An endpoint ID for the cross-account feature is the ARN of an AWS resource, such as a Network Load Balancer, that Global Accelerator supports as an endpoint for an accelerator.
1039
+ :param region: The AWS Region where a shared endpoint resource is located.
1040
+
1041
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-crossaccountattachment-resource.html
1042
+ :exampleMetadata: fixture=_generated
1043
+
1044
+ Example::
1045
+
1046
+ # The code below shows an example of how to instantiate this type.
1047
+ # The values are placeholders you should change.
1048
+ from aws_cdk import aws_globalaccelerator as globalaccelerator
1049
+
1050
+ resource_property = globalaccelerator.CfnCrossAccountAttachment.ResourceProperty(
1051
+ endpoint_id="endpointId",
1052
+
1053
+ # the properties below are optional
1054
+ region="region"
1055
+ )
1056
+ '''
1057
+ if __debug__:
1058
+ type_hints = typing.get_type_hints(_typecheckingstub__7bd30ea319625d12c404c84e89e35a95437c89cec1dad797148fd3a2c913ddb7)
1059
+ check_type(argname="argument endpoint_id", value=endpoint_id, expected_type=type_hints["endpoint_id"])
1060
+ check_type(argname="argument region", value=region, expected_type=type_hints["region"])
1061
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1062
+ "endpoint_id": endpoint_id,
1063
+ }
1064
+ if region is not None:
1065
+ self._values["region"] = region
1066
+
1067
+ @builtins.property
1068
+ def endpoint_id(self) -> builtins.str:
1069
+ '''The endpoint ID for the endpoint that is specified as a AWS resource.
1070
+
1071
+ An endpoint ID for the cross-account feature is the ARN of an AWS resource, such as a Network Load Balancer, that Global Accelerator supports as an endpoint for an accelerator.
1072
+
1073
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-crossaccountattachment-resource.html#cfn-globalaccelerator-crossaccountattachment-resource-endpointid
1074
+ '''
1075
+ result = self._values.get("endpoint_id")
1076
+ assert result is not None, "Required property 'endpoint_id' is missing"
1077
+ return typing.cast(builtins.str, result)
1078
+
1079
+ @builtins.property
1080
+ def region(self) -> typing.Optional[builtins.str]:
1081
+ '''The AWS Region where a shared endpoint resource is located.
1082
+
1083
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-globalaccelerator-crossaccountattachment-resource.html#cfn-globalaccelerator-crossaccountattachment-resource-region
1084
+ '''
1085
+ result = self._values.get("region")
1086
+ return typing.cast(typing.Optional[builtins.str], result)
1087
+
1088
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1089
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1090
+
1091
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1092
+ return not (rhs == self)
1093
+
1094
+ def __repr__(self) -> str:
1095
+ return "ResourceProperty(%s)" % ", ".join(
1096
+ k + "=" + repr(v) for k, v in self._values.items()
1097
+ )
1098
+
1099
+
1100
+ @jsii.data_type(
1101
+ jsii_type="aws-cdk-lib.aws_globalaccelerator.CfnCrossAccountAttachmentProps",
1102
+ jsii_struct_bases=[],
1103
+ name_mapping={
1104
+ "name": "name",
1105
+ "principals": "principals",
1106
+ "resources": "resources",
1107
+ "tags": "tags",
1108
+ },
1109
+ )
1110
+ class CfnCrossAccountAttachmentProps:
1111
+ def __init__(
1112
+ self,
1113
+ *,
1114
+ name: builtins.str,
1115
+ principals: typing.Optional[typing.Sequence[builtins.str]] = None,
1116
+ resources: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCrossAccountAttachment.ResourceProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
1117
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
1118
+ ) -> None:
1119
+ '''Properties for defining a ``CfnCrossAccountAttachment``.
1120
+
1121
+ :param name: The Friendly identifier of the attachment.
1122
+ :param principals: Principals to share the resources with.
1123
+ :param resources: Resources shared using the attachment.
1124
+ :param tags:
1125
+
1126
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html
1127
+ :exampleMetadata: fixture=_generated
1128
+
1129
+ Example::
1130
+
1131
+ # The code below shows an example of how to instantiate this type.
1132
+ # The values are placeholders you should change.
1133
+ from aws_cdk import aws_globalaccelerator as globalaccelerator
1134
+
1135
+ cfn_cross_account_attachment_props = globalaccelerator.CfnCrossAccountAttachmentProps(
1136
+ name="name",
1137
+
1138
+ # the properties below are optional
1139
+ principals=["principals"],
1140
+ resources=[globalaccelerator.CfnCrossAccountAttachment.ResourceProperty(
1141
+ endpoint_id="endpointId",
1142
+
1143
+ # the properties below are optional
1144
+ region="region"
1145
+ )],
1146
+ tags=[CfnTag(
1147
+ key="key",
1148
+ value="value"
1149
+ )]
1150
+ )
1151
+ '''
1152
+ if __debug__:
1153
+ type_hints = typing.get_type_hints(_typecheckingstub__8cf43e1c90e824b6fcd56b5cbed6fc8b38a0a663b52303ae4fd2eac734194141)
1154
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
1155
+ check_type(argname="argument principals", value=principals, expected_type=type_hints["principals"])
1156
+ check_type(argname="argument resources", value=resources, expected_type=type_hints["resources"])
1157
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
1158
+ self._values: typing.Dict[builtins.str, typing.Any] = {
1159
+ "name": name,
1160
+ }
1161
+ if principals is not None:
1162
+ self._values["principals"] = principals
1163
+ if resources is not None:
1164
+ self._values["resources"] = resources
1165
+ if tags is not None:
1166
+ self._values["tags"] = tags
1167
+
1168
+ @builtins.property
1169
+ def name(self) -> builtins.str:
1170
+ '''The Friendly identifier of the attachment.
1171
+
1172
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-name
1173
+ '''
1174
+ result = self._values.get("name")
1175
+ assert result is not None, "Required property 'name' is missing"
1176
+ return typing.cast(builtins.str, result)
1177
+
1178
+ @builtins.property
1179
+ def principals(self) -> typing.Optional[typing.List[builtins.str]]:
1180
+ '''Principals to share the resources with.
1181
+
1182
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-principals
1183
+ '''
1184
+ result = self._values.get("principals")
1185
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
1186
+
1187
+ @builtins.property
1188
+ def resources(
1189
+ self,
1190
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnCrossAccountAttachment.ResourceProperty]]]]:
1191
+ '''Resources shared using the attachment.
1192
+
1193
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-resources
1194
+ '''
1195
+ result = self._values.get("resources")
1196
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnCrossAccountAttachment.ResourceProperty]]]], result)
1197
+
1198
+ @builtins.property
1199
+ def tags(self) -> typing.Optional[typing.List[_CfnTag_f6864754]]:
1200
+ '''
1201
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-globalaccelerator-crossaccountattachment.html#cfn-globalaccelerator-crossaccountattachment-tags
1202
+ '''
1203
+ result = self._values.get("tags")
1204
+ return typing.cast(typing.Optional[typing.List[_CfnTag_f6864754]], result)
1205
+
1206
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
1207
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
1208
+
1209
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
1210
+ return not (rhs == self)
1211
+
1212
+ def __repr__(self) -> str:
1213
+ return "CfnCrossAccountAttachmentProps(%s)" % ", ".join(
1214
+ k + "=" + repr(v) for k, v in self._values.items()
1215
+ )
1216
+
1217
+
843
1218
  @jsii.implements(_IInspectable_c2943556)
844
1219
  class CfnEndpointGroup(
845
1220
  _CfnResource_9df397a6,
@@ -3756,6 +4131,8 @@ __all__ = [
3756
4131
  "AcceleratorProps",
3757
4132
  "CfnAccelerator",
3758
4133
  "CfnAcceleratorProps",
4134
+ "CfnCrossAccountAttachment",
4135
+ "CfnCrossAccountAttachmentProps",
3759
4136
  "CfnEndpointGroup",
3760
4137
  "CfnEndpointGroupProps",
3761
4138
  "CfnListener",
@@ -3869,6 +4246,72 @@ def _typecheckingstub__5a2b1dd32a23d6d5146bbceed209c5576192a998d13fcf3817f2dc4f8
3869
4246
  """Type checking stubs"""
3870
4247
  pass
3871
4248
 
4249
+ def _typecheckingstub__ba1ec3d469e5dcabcf7399e8e8e79a3f5365c953f4994522f2f99f4785e9351d(
4250
+ scope: _constructs_77d1e7e8.Construct,
4251
+ id: builtins.str,
4252
+ *,
4253
+ name: builtins.str,
4254
+ principals: typing.Optional[typing.Sequence[builtins.str]] = None,
4255
+ resources: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCrossAccountAttachment.ResourceProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4256
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4257
+ ) -> None:
4258
+ """Type checking stubs"""
4259
+ pass
4260
+
4261
+ def _typecheckingstub__22786fe9cf42aaba90a851e34bed5295d6cb83ef62c09ae6bc29c753ad99c5ff(
4262
+ inspector: _TreeInspector_488e0dd5,
4263
+ ) -> None:
4264
+ """Type checking stubs"""
4265
+ pass
4266
+
4267
+ def _typecheckingstub__7cd632424889de088176e87245805d03f5bdd773dc61b13fb9b6b0ca8d5801b5(
4268
+ props: typing.Mapping[builtins.str, typing.Any],
4269
+ ) -> None:
4270
+ """Type checking stubs"""
4271
+ pass
4272
+
4273
+ def _typecheckingstub__19782d3e7f6cd3af16e9e78c249289e2593a7ff1d4e1c7a86db71dc5f399fb46(
4274
+ value: builtins.str,
4275
+ ) -> None:
4276
+ """Type checking stubs"""
4277
+ pass
4278
+
4279
+ def _typecheckingstub__08ec8314d2cbd2120a78129320bf34d1678991d2ed2d2b8df5bf723a99a7c254(
4280
+ value: typing.Optional[typing.List[builtins.str]],
4281
+ ) -> None:
4282
+ """Type checking stubs"""
4283
+ pass
4284
+
4285
+ def _typecheckingstub__4e879fec7df8ee76103a0479812b95ae371bbbe6b3312bbaebe1d912c7185fd3(
4286
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnCrossAccountAttachment.ResourceProperty]]]],
4287
+ ) -> None:
4288
+ """Type checking stubs"""
4289
+ pass
4290
+
4291
+ def _typecheckingstub__41d583733963eebabfa0286562bcae1a6871814ce66e72f32e495b730a151c15(
4292
+ value: typing.Optional[typing.List[_CfnTag_f6864754]],
4293
+ ) -> None:
4294
+ """Type checking stubs"""
4295
+ pass
4296
+
4297
+ def _typecheckingstub__7bd30ea319625d12c404c84e89e35a95437c89cec1dad797148fd3a2c913ddb7(
4298
+ *,
4299
+ endpoint_id: builtins.str,
4300
+ region: typing.Optional[builtins.str] = None,
4301
+ ) -> None:
4302
+ """Type checking stubs"""
4303
+ pass
4304
+
4305
+ def _typecheckingstub__8cf43e1c90e824b6fcd56b5cbed6fc8b38a0a663b52303ae4fd2eac734194141(
4306
+ *,
4307
+ name: builtins.str,
4308
+ principals: typing.Optional[typing.Sequence[builtins.str]] = None,
4309
+ resources: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnCrossAccountAttachment.ResourceProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
4310
+ tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
4311
+ ) -> None:
4312
+ """Type checking stubs"""
4313
+ pass
4314
+
3872
4315
  def _typecheckingstub__d4abd958de92d302b6b9aa605f8d58d76fb06143d26797b6f9d857004005dd21(
3873
4316
  scope: _constructs_77d1e7e8.Construct,
3874
4317
  id: builtins.str,
@@ -2432,8 +2432,7 @@ class CfnManagedPolicy(
2432
2432
  @builtins.property
2433
2433
  @jsii.member(jsii_name="attrPolicyArn")
2434
2434
  def attr_policy_arn(self) -> builtins.str:
2435
- '''Amazon Resource Name (ARN) of the managed policy.
2436
-
2435
+ '''
2437
2436
  :cloudformationAttribute: PolicyArn
2438
2437
  '''
2439
2438
  return typing.cast(builtins.str, jsii.get(self, "attrPolicyArn"))
@@ -9907,24 +9906,20 @@ class PolicyStatement(
9907
9906
 
9908
9907
  Example::
9909
9908
 
9910
- cross_account_role_arn = "arn:aws:iam::OTHERACCOUNT:role/CrossAccountRoleName" # arn of role deployed in separate account
9909
+ # destination_bucket: s3.Bucket
9911
9910
 
9912
- call_region = "us-west-1" # sdk call to be made in specified region (optional)
9913
9911
 
9914
- cr.AwsCustomResource(self, "CrossAccount",
9915
- on_create=cr.AwsSdkCall(
9916
- assumed_role_arn=cross_account_role_arn,
9917
- region=call_region, # optional
9918
- service="sts",
9919
- action="GetCallerIdentity",
9920
- physical_resource_id=cr.PhysicalResourceId.of("id")
9921
- ),
9922
- policy=cr.AwsCustomResourcePolicy.from_statements([iam.PolicyStatement.from_json({
9923
- "Effect": "Allow",
9924
- "Action": "sts:AssumeRole",
9925
- "Resource": cross_account_role_arn
9926
- })])
9912
+ deployment = s3deploy.BucketDeployment(self, "DeployFiles",
9913
+ sources=[s3deploy.Source.asset(path.join(__dirname, "source-files"))],
9914
+ destination_bucket=destination_bucket
9927
9915
  )
9916
+
9917
+ deployment.handler_role.add_to_policy(
9918
+ iam.PolicyStatement(
9919
+ actions=["kms:Decrypt", "kms:DescribeKey"],
9920
+ effect=iam.Effect.ALLOW,
9921
+ resources=["<encryption key ARN>"]
9922
+ ))
9928
9923
  '''
9929
9924
 
9930
9925
  def __init__(
@@ -10468,35 +10463,24 @@ class PolicyStatementProps:
10468
10463
  :param resources: Resource ARNs to add to the statement. Default: - no resources
10469
10464
  :param sid: The Sid (statement ID) is an optional identifier that you provide for the policy statement. You can assign a Sid value to each statement in a statement array. In services that let you specify an ID element, such as SQS and SNS, the Sid value is just a sub-ID of the policy document's ID. In IAM, the Sid value must be unique within a JSON policy. Default: - no sid
10470
10465
 
10471
- :exampleMetadata: lit=aws-ec2/test/integ.vpc-endpoint.lit.ts infused
10466
+ :exampleMetadata: infused
10472
10467
 
10473
10468
  Example::
10474
10469
 
10475
- # Add gateway endpoints when creating the VPC
10476
- vpc = ec2.Vpc(self, "MyVpc",
10477
- gateway_endpoints={
10478
- "S3": cdk.aws_ec2.GatewayVpcEndpointOptions(
10479
- service=ec2.GatewayVpcEndpointAwsService.S3
10480
- )
10481
- }
10482
- )
10483
-
10484
- # Alternatively gateway endpoints can be added on the VPC
10485
- dynamo_db_endpoint = vpc.add_gateway_endpoint("DynamoDbEndpoint",
10486
- service=ec2.GatewayVpcEndpointAwsService.DYNAMODB
10487
- )
10470
+ # destination_bucket: s3.Bucket
10488
10471
 
10489
- # This allows to customize the endpoint policy
10490
- dynamo_db_endpoint.add_to_policy(
10491
- iam.PolicyStatement( # Restrict to listing and describing tables
10492
- principals=[iam.AnyPrincipal()],
10493
- actions=["dynamodb:DescribeTable", "dynamodb:ListTables"],
10494
- resources=["*"]))
10495
10472
 
10496
- # Add an interface endpoint
10497
- vpc.add_interface_endpoint("EcrDockerEndpoint",
10498
- service=ec2.InterfaceVpcEndpointAwsService.ECR_DOCKER
10473
+ deployment = s3deploy.BucketDeployment(self, "DeployFiles",
10474
+ sources=[s3deploy.Source.asset(path.join(__dirname, "source-files"))],
10475
+ destination_bucket=destination_bucket
10499
10476
  )
10477
+
10478
+ deployment.handler_role.add_to_policy(
10479
+ iam.PolicyStatement(
10480
+ actions=["kms:Decrypt", "kms:DescribeKey"],
10481
+ effect=iam.Effect.ALLOW,
10482
+ resources=["<encryption key ARN>"]
10483
+ ))
10500
10484
  '''
10501
10485
  if __debug__:
10502
10486
  type_hints = typing.get_type_hints(_typecheckingstub__b1307ab5f5dd84b7184f36603f7af026efb2798812c35c96dbe60552fff14c3b)
@@ -141,9 +141,9 @@ class CfnMonitor(
141
141
  :param id: Construct identifier for this resource (unique in its scope).
142
142
  :param monitor_name: The name of the monitor. A monitor name can contain only alphanumeric characters, dashes (-), periods (.), and underscores (_).
143
143
  :param health_events_config: A complex type with the configuration information that determines the threshold and other conditions for when Internet Monitor creates a health event for an overall performance or availability issue, across an application's geographies. Defines the percentages, for overall performance scores and availability scores for an application, that are the thresholds for when Amazon CloudWatch Internet Monitor creates a health event. You can override the defaults to set a custom threshold for overall performance or availability scores, or both. You can also set thresholds for local health scores,, where Internet Monitor creates a health event when scores cross a threshold for one or more city-networks, in addition to creating an event when an overall score crosses a threshold. If you don't set a health event threshold, the default value is 95%. For local thresholds, you also set a minimum percentage of overall traffic that is impacted by an issue before Internet Monitor creates an event. In addition, you can disable local thresholds, for performance scores, availability scores, or both. For more information, see `Change health event thresholds <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-IM-overview.html#IMUpdateThresholdFromOverview>`_ in the Internet Monitor section of the *CloudWatch User Guide* .
144
- :param include_linked_accounts:
144
+ :param include_linked_accounts: A boolean option that you can set to ``TRUE`` to include monitors for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet Monitor. You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. For more information, see `Internet Monitor cross-account observability <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html>`_ in the Amazon CloudWatch User Guide.
145
145
  :param internet_measurements_log_delivery: Publish internet measurements for a monitor for all city-networks (up to the 500,000 service limit) to another location, such as an Amazon S3 bucket. Measurements are also published to Amazon CloudWatch Logs for the first 500 (by traffic volume) city-networks (client locations and ASNs, typically internet service providers or ISPs).
146
- :param linked_account_id:
146
+ :param linked_account_id: The account ID for an account that you've set up cross-account sharing for in Internet Monitor. You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. For more information, see `Internet Monitor cross-account observability <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html>`_ in the Amazon CloudWatch User Guide.
147
147
  :param max_city_networks_to_monitor: The maximum number of city-networks to monitor for your resources. A city-network is the location (city) where clients access your application resources from and the network, such as an internet service provider, that clients access the resources through. For more information, see `Choosing a city-network maximum value <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/IMCityNetworksMaximum.html>`_ in *Using Amazon CloudWatch Internet Monitor* .
148
148
  :param resources: The resources that have been added for the monitor, listed by their Amazon Resource Names (ARNs). Use this option to add or remove resources when making an update. .. epigraph:: Be aware that if you include content in the ``Resources`` field when you update a monitor, the ``ResourcesToAdd`` and ``ResourcesToRemove`` fields must be empty.
149
149
  :param resources_to_add: The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs). Resources can be Amazon Virtual Private Cloud VPCs, Network Load Balancers (NLBs), Amazon CloudFront distributions, or Amazon WorkSpaces directories. You can add a combination of VPCs and CloudFront distributions, or you can add WorkSpaces directories, or you can add NLBs. You can't add NLBs or WorkSpaces directories together with any other resources. If you add only VPC resources, at least one VPC must have an Internet Gateway attached to it, to make sure that it has internet connectivity. .. epigraph:: You can specify this field for a monitor update only if the ``Resources`` field is empty.
@@ -297,6 +297,7 @@ class CfnMonitor(
297
297
  def include_linked_accounts(
298
298
  self,
299
299
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
300
+ '''A boolean option that you can set to ``TRUE`` to include monitors for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet Monitor.'''
300
301
  return typing.cast(typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]], jsii.get(self, "includeLinkedAccounts"))
301
302
 
302
303
  @include_linked_accounts.setter
@@ -330,6 +331,7 @@ class CfnMonitor(
330
331
  @builtins.property
331
332
  @jsii.member(jsii_name="linkedAccountId")
332
333
  def linked_account_id(self) -> typing.Optional[builtins.str]:
334
+ '''The account ID for an account that you've set up cross-account sharing for in Internet Monitor.'''
333
335
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "linkedAccountId"))
334
336
 
335
337
  @linked_account_id.setter
@@ -859,9 +861,9 @@ class CfnMonitorProps:
859
861
 
860
862
  :param monitor_name: The name of the monitor. A monitor name can contain only alphanumeric characters, dashes (-), periods (.), and underscores (_).
861
863
  :param health_events_config: A complex type with the configuration information that determines the threshold and other conditions for when Internet Monitor creates a health event for an overall performance or availability issue, across an application's geographies. Defines the percentages, for overall performance scores and availability scores for an application, that are the thresholds for when Amazon CloudWatch Internet Monitor creates a health event. You can override the defaults to set a custom threshold for overall performance or availability scores, or both. You can also set thresholds for local health scores,, where Internet Monitor creates a health event when scores cross a threshold for one or more city-networks, in addition to creating an event when an overall score crosses a threshold. If you don't set a health event threshold, the default value is 95%. For local thresholds, you also set a minimum percentage of overall traffic that is impacted by an issue before Internet Monitor creates an event. In addition, you can disable local thresholds, for performance scores, availability scores, or both. For more information, see `Change health event thresholds <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch-IM-overview.html#IMUpdateThresholdFromOverview>`_ in the Internet Monitor section of the *CloudWatch User Guide* .
862
- :param include_linked_accounts:
864
+ :param include_linked_accounts: A boolean option that you can set to ``TRUE`` to include monitors for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet Monitor. You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. For more information, see `Internet Monitor cross-account observability <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html>`_ in the Amazon CloudWatch User Guide.
863
865
  :param internet_measurements_log_delivery: Publish internet measurements for a monitor for all city-networks (up to the 500,000 service limit) to another location, such as an Amazon S3 bucket. Measurements are also published to Amazon CloudWatch Logs for the first 500 (by traffic volume) city-networks (client locations and ASNs, typically internet service providers or ISPs).
864
- :param linked_account_id:
866
+ :param linked_account_id: The account ID for an account that you've set up cross-account sharing for in Internet Monitor. You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. For more information, see `Internet Monitor cross-account observability <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html>`_ in the Amazon CloudWatch User Guide.
865
867
  :param max_city_networks_to_monitor: The maximum number of city-networks to monitor for your resources. A city-network is the location (city) where clients access your application resources from and the network, such as an internet service provider, that clients access the resources through. For more information, see `Choosing a city-network maximum value <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/IMCityNetworksMaximum.html>`_ in *Using Amazon CloudWatch Internet Monitor* .
866
868
  :param resources: The resources that have been added for the monitor, listed by their Amazon Resource Names (ARNs). Use this option to add or remove resources when making an update. .. epigraph:: Be aware that if you include content in the ``Resources`` field when you update a monitor, the ``ResourcesToAdd`` and ``ResourcesToRemove`` fields must be empty.
867
869
  :param resources_to_add: The resources to include in a monitor, which you provide as a set of Amazon Resource Names (ARNs). Resources can be Amazon Virtual Private Cloud VPCs, Network Load Balancers (NLBs), Amazon CloudFront distributions, or Amazon WorkSpaces directories. You can add a combination of VPCs and CloudFront distributions, or you can add WorkSpaces directories, or you can add NLBs. You can't add NLBs or WorkSpaces directories together with any other resources. If you add only VPC resources, at least one VPC must have an Internet Gateway attached to it, to make sure that it has internet connectivity. .. epigraph:: You can specify this field for a monitor update only if the ``Resources`` field is empty.
@@ -995,7 +997,10 @@ class CfnMonitorProps:
995
997
  def include_linked_accounts(
996
998
  self,
997
999
  ) -> typing.Optional[typing.Union[builtins.bool, _IResolvable_da3f097b]]:
998
- '''
1000
+ '''A boolean option that you can set to ``TRUE`` to include monitors for linked accounts in a list of monitors, when you've set up cross-account sharing in Internet Monitor.
1001
+
1002
+ You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. For more information, see `Internet Monitor cross-account observability <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html>`_ in the Amazon CloudWatch User Guide.
1003
+
999
1004
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html#cfn-internetmonitor-monitor-includelinkedaccounts
1000
1005
  '''
1001
1006
  result = self._values.get("include_linked_accounts")
@@ -1016,7 +1021,10 @@ class CfnMonitorProps:
1016
1021
 
1017
1022
  @builtins.property
1018
1023
  def linked_account_id(self) -> typing.Optional[builtins.str]:
1019
- '''
1024
+ '''The account ID for an account that you've set up cross-account sharing for in Internet Monitor.
1025
+
1026
+ You configure cross-account sharing by using Amazon CloudWatch Observability Access Manager. For more information, see `Internet Monitor cross-account observability <https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/cwim-cross-account.html>`_ in the Amazon CloudWatch User Guide.
1027
+
1020
1028
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-internetmonitor-monitor.html#cfn-internetmonitor-monitor-linkedaccountid
1021
1029
  '''
1022
1030
  result = self._values.get("linked_account_id")