aws-cdk-lib 2.117.0__py3-none-any.whl → 2.119.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 (57) hide show
  1. aws_cdk/__init__.py +138 -25
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.117.0.jsii.tgz → aws-cdk-lib@2.119.0.jsii.tgz} +0 -0
  4. aws_cdk/amzn_sdc/__init__.py +496 -0
  5. aws_cdk/aws_appsync/__init__.py +94 -22
  6. aws_cdk/aws_autoscaling/__init__.py +139 -74
  7. aws_cdk/aws_certificatemanager/__init__.py +164 -3
  8. aws_cdk/aws_cloud9/__init__.py +3 -3
  9. aws_cdk/aws_cloudfront/__init__.py +853 -38
  10. aws_cdk/aws_cloudtrail/__init__.py +54 -34
  11. aws_cdk/aws_cloudwatch_actions/__init__.py +105 -0
  12. aws_cdk/aws_codebuild/__init__.py +46 -5
  13. aws_cdk/aws_codecommit/__init__.py +9 -3
  14. aws_cdk/aws_codepipeline_actions/__init__.py +54 -0
  15. aws_cdk/aws_codetest/__init__.py +788 -0
  16. aws_cdk/aws_cognito/__init__.py +104 -0
  17. aws_cdk/aws_connect/__init__.py +626 -78
  18. aws_cdk/aws_docdb/__init__.py +442 -0
  19. aws_cdk/aws_dynamodb/__init__.py +14 -0
  20. aws_cdk/aws_ec2/__init__.py +372 -44
  21. aws_cdk/aws_ecs/__init__.py +192 -35
  22. aws_cdk/aws_emrserverless/__init__.py +20 -13
  23. aws_cdk/aws_events/__init__.py +90 -1
  24. aws_cdk/aws_fis/__init__.py +12 -32
  25. aws_cdk/aws_globalaccelerator/__init__.py +19 -0
  26. aws_cdk/aws_glue/__init__.py +329 -0
  27. aws_cdk/aws_iam/__init__.py +50 -24
  28. aws_cdk/aws_iot/__init__.py +112 -0
  29. aws_cdk/aws_iotsitewise/__init__.py +4 -4
  30. aws_cdk/aws_kendra/__init__.py +10 -5
  31. aws_cdk/aws_kinesisfirehose/__init__.py +111 -0
  32. aws_cdk/aws_lambda/__init__.py +180 -407
  33. aws_cdk/aws_location/__init__.py +1132 -17
  34. aws_cdk/aws_mediatailor/__init__.py +120 -17
  35. aws_cdk/aws_networkfirewall/__init__.py +2 -2
  36. aws_cdk/aws_networkmanager/__init__.py +1 -1
  37. aws_cdk/aws_omics/__init__.py +4 -4
  38. aws_cdk/aws_opensearchservice/__init__.py +58 -0
  39. aws_cdk/aws_pinpoint/__init__.py +14 -6
  40. aws_cdk/aws_pipes/__init__.py +7 -2
  41. aws_cdk/aws_rds/__init__.py +247 -16
  42. aws_cdk/aws_redshift/__init__.py +103 -0
  43. aws_cdk/aws_route53/__init__.py +68 -20
  44. aws_cdk/aws_s3/__init__.py +2 -4
  45. aws_cdk/aws_s3objectlambda/__init__.py +2 -2
  46. aws_cdk/aws_servicecatalogappregistry/__init__.py +3 -3
  47. aws_cdk/aws_signer/__init__.py +27 -4
  48. aws_cdk/aws_ssm/__init__.py +76 -13
  49. aws_cdk/aws_stepfunctions/__init__.py +110 -5
  50. aws_cdk/aws_stepfunctions_tasks/__init__.py +84 -29
  51. aws_cdk/pipelines/__init__.py +136 -37
  52. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/LICENSE +1 -1
  53. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/METADATA +98 -12
  54. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/NOTICE +1 -1
  55. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/RECORD +57 -55
  56. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/WHEEL +0 -0
  57. {aws_cdk_lib-2.117.0.dist-info → aws_cdk_lib-2.119.0.dist-info}/top_level.txt +0 -0
@@ -3209,6 +3209,275 @@ class CfnCrawlerProps:
3209
3209
  )
3210
3210
 
3211
3211
 
3212
+ @jsii.implements(_IInspectable_c2943556)
3213
+ class CfnCustomEntityType(
3214
+ _CfnResource_9df397a6,
3215
+ metaclass=jsii.JSIIMeta,
3216
+ jsii_type="aws-cdk-lib.aws_glue.CfnCustomEntityType",
3217
+ ):
3218
+ '''Creates a custom pattern that is used to detect sensitive data across the columns and rows of your structured data.
3219
+
3220
+ Each custom pattern you create specifies a regular expression and an optional list of context words. If no context words are passed only a regular expression is checked.
3221
+
3222
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-customentitytype.html
3223
+ :cloudformationResource: AWS::Glue::CustomEntityType
3224
+ :exampleMetadata: fixture=_generated
3225
+
3226
+ Example::
3227
+
3228
+ # The code below shows an example of how to instantiate this type.
3229
+ # The values are placeholders you should change.
3230
+ from aws_cdk import aws_glue as glue
3231
+
3232
+ # tags: Any
3233
+
3234
+ cfn_custom_entity_type = glue.CfnCustomEntityType(self, "MyCfnCustomEntityType",
3235
+ context_words=["contextWords"],
3236
+ name="name",
3237
+ regex_string="regexString",
3238
+ tags=tags
3239
+ )
3240
+ '''
3241
+
3242
+ def __init__(
3243
+ self,
3244
+ scope: _constructs_77d1e7e8.Construct,
3245
+ id: builtins.str,
3246
+ *,
3247
+ context_words: typing.Optional[typing.Sequence[builtins.str]] = None,
3248
+ name: typing.Optional[builtins.str] = None,
3249
+ regex_string: typing.Optional[builtins.str] = None,
3250
+ tags: typing.Any = None,
3251
+ ) -> None:
3252
+ '''
3253
+ :param scope: Scope in which this resource is defined.
3254
+ :param id: Construct identifier for this resource (unique in its scope).
3255
+ :param context_words: A list of context words. If none of these context words are found within the vicinity of the regular expression the data will not be detected as sensitive data. If no context words are passed only a regular expression is checked.
3256
+ :param name: A name for the custom pattern that allows it to be retrieved or deleted later. This name must be unique per AWS account.
3257
+ :param regex_string: A regular expression string that is used for detecting sensitive data in a custom pattern.
3258
+ :param tags:
3259
+ '''
3260
+ if __debug__:
3261
+ type_hints = typing.get_type_hints(_typecheckingstub__513b5382e12edfa036d553799dc23a98aa5ab82a6014b0bf9734336e4df0b878)
3262
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
3263
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
3264
+ props = CfnCustomEntityTypeProps(
3265
+ context_words=context_words,
3266
+ name=name,
3267
+ regex_string=regex_string,
3268
+ tags=tags,
3269
+ )
3270
+
3271
+ jsii.create(self.__class__, self, [scope, id, props])
3272
+
3273
+ @jsii.member(jsii_name="inspect")
3274
+ def inspect(self, inspector: _TreeInspector_488e0dd5) -> None:
3275
+ '''Examines the CloudFormation resource and discloses attributes.
3276
+
3277
+ :param inspector: tree inspector to collect and process attributes.
3278
+ '''
3279
+ if __debug__:
3280
+ type_hints = typing.get_type_hints(_typecheckingstub__f1161ed4cb74764a76ad0a2a8d9218348384b8c59f0f79872699c83d6a9671c3)
3281
+ check_type(argname="argument inspector", value=inspector, expected_type=type_hints["inspector"])
3282
+ return typing.cast(None, jsii.invoke(self, "inspect", [inspector]))
3283
+
3284
+ @jsii.member(jsii_name="renderProperties")
3285
+ def _render_properties(
3286
+ self,
3287
+ props: typing.Mapping[builtins.str, typing.Any],
3288
+ ) -> typing.Mapping[builtins.str, typing.Any]:
3289
+ '''
3290
+ :param props: -
3291
+ '''
3292
+ if __debug__:
3293
+ type_hints = typing.get_type_hints(_typecheckingstub__5a44dbad5acfb5d1ab1a4900296aa7aa8dd3f89c6979168443c7cc1d42463a11)
3294
+ check_type(argname="argument props", value=props, expected_type=type_hints["props"])
3295
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.invoke(self, "renderProperties", [props]))
3296
+
3297
+ @jsii.python.classproperty
3298
+ @jsii.member(jsii_name="CFN_RESOURCE_TYPE_NAME")
3299
+ def CFN_RESOURCE_TYPE_NAME(cls) -> builtins.str:
3300
+ '''The CloudFormation resource type name for this resource class.'''
3301
+ return typing.cast(builtins.str, jsii.sget(cls, "CFN_RESOURCE_TYPE_NAME"))
3302
+
3303
+ @builtins.property
3304
+ @jsii.member(jsii_name="attrId")
3305
+ def attr_id(self) -> builtins.str:
3306
+ '''
3307
+ :cloudformationAttribute: Id
3308
+ '''
3309
+ return typing.cast(builtins.str, jsii.get(self, "attrId"))
3310
+
3311
+ @builtins.property
3312
+ @jsii.member(jsii_name="cfnProperties")
3313
+ def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
3314
+ return typing.cast(typing.Mapping[builtins.str, typing.Any], jsii.get(self, "cfnProperties"))
3315
+
3316
+ @builtins.property
3317
+ @jsii.member(jsii_name="contextWords")
3318
+ def context_words(self) -> typing.Optional[typing.List[builtins.str]]:
3319
+ '''A list of context words.'''
3320
+ return typing.cast(typing.Optional[typing.List[builtins.str]], jsii.get(self, "contextWords"))
3321
+
3322
+ @context_words.setter
3323
+ def context_words(self, value: typing.Optional[typing.List[builtins.str]]) -> None:
3324
+ if __debug__:
3325
+ type_hints = typing.get_type_hints(_typecheckingstub__d9a1b7db0046368ee993569d7df3e7fd0804b6e98a87f04e557ae064873f7978)
3326
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3327
+ jsii.set(self, "contextWords", value)
3328
+
3329
+ @builtins.property
3330
+ @jsii.member(jsii_name="name")
3331
+ def name(self) -> typing.Optional[builtins.str]:
3332
+ '''A name for the custom pattern that allows it to be retrieved or deleted later.'''
3333
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "name"))
3334
+
3335
+ @name.setter
3336
+ def name(self, value: typing.Optional[builtins.str]) -> None:
3337
+ if __debug__:
3338
+ type_hints = typing.get_type_hints(_typecheckingstub__d11901df483ca1c3600c4415a97269b90d2adfe324a4327071f30bddc8fc6369)
3339
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3340
+ jsii.set(self, "name", value)
3341
+
3342
+ @builtins.property
3343
+ @jsii.member(jsii_name="regexString")
3344
+ def regex_string(self) -> typing.Optional[builtins.str]:
3345
+ '''A regular expression string that is used for detecting sensitive data in a custom pattern.'''
3346
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "regexString"))
3347
+
3348
+ @regex_string.setter
3349
+ def regex_string(self, value: typing.Optional[builtins.str]) -> None:
3350
+ if __debug__:
3351
+ type_hints = typing.get_type_hints(_typecheckingstub__258029d677ed510f6e111f28b88a3fd5ca710364677c254b86f15149c3939f01)
3352
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3353
+ jsii.set(self, "regexString", value)
3354
+
3355
+ @builtins.property
3356
+ @jsii.member(jsii_name="tags")
3357
+ def tags(self) -> typing.Any:
3358
+ return typing.cast(typing.Any, jsii.get(self, "tags"))
3359
+
3360
+ @tags.setter
3361
+ def tags(self, value: typing.Any) -> None:
3362
+ if __debug__:
3363
+ type_hints = typing.get_type_hints(_typecheckingstub__004ded3c6afee7c54be15b960f2dfa901eda8ff5ffd11f03dc0ad21cd665d3e9)
3364
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
3365
+ jsii.set(self, "tags", value)
3366
+
3367
+
3368
+ @jsii.data_type(
3369
+ jsii_type="aws-cdk-lib.aws_glue.CfnCustomEntityTypeProps",
3370
+ jsii_struct_bases=[],
3371
+ name_mapping={
3372
+ "context_words": "contextWords",
3373
+ "name": "name",
3374
+ "regex_string": "regexString",
3375
+ "tags": "tags",
3376
+ },
3377
+ )
3378
+ class CfnCustomEntityTypeProps:
3379
+ def __init__(
3380
+ self,
3381
+ *,
3382
+ context_words: typing.Optional[typing.Sequence[builtins.str]] = None,
3383
+ name: typing.Optional[builtins.str] = None,
3384
+ regex_string: typing.Optional[builtins.str] = None,
3385
+ tags: typing.Any = None,
3386
+ ) -> None:
3387
+ '''Properties for defining a ``CfnCustomEntityType``.
3388
+
3389
+ :param context_words: A list of context words. If none of these context words are found within the vicinity of the regular expression the data will not be detected as sensitive data. If no context words are passed only a regular expression is checked.
3390
+ :param name: A name for the custom pattern that allows it to be retrieved or deleted later. This name must be unique per AWS account.
3391
+ :param regex_string: A regular expression string that is used for detecting sensitive data in a custom pattern.
3392
+ :param tags:
3393
+
3394
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-customentitytype.html
3395
+ :exampleMetadata: fixture=_generated
3396
+
3397
+ Example::
3398
+
3399
+ # The code below shows an example of how to instantiate this type.
3400
+ # The values are placeholders you should change.
3401
+ from aws_cdk import aws_glue as glue
3402
+
3403
+ # tags: Any
3404
+
3405
+ cfn_custom_entity_type_props = glue.CfnCustomEntityTypeProps(
3406
+ context_words=["contextWords"],
3407
+ name="name",
3408
+ regex_string="regexString",
3409
+ tags=tags
3410
+ )
3411
+ '''
3412
+ if __debug__:
3413
+ type_hints = typing.get_type_hints(_typecheckingstub__b89d4d1c0831361548b8a9b2f2dbfff2bf67857569a0c9b0cc33179f8c618967)
3414
+ check_type(argname="argument context_words", value=context_words, expected_type=type_hints["context_words"])
3415
+ check_type(argname="argument name", value=name, expected_type=type_hints["name"])
3416
+ check_type(argname="argument regex_string", value=regex_string, expected_type=type_hints["regex_string"])
3417
+ check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
3418
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
3419
+ if context_words is not None:
3420
+ self._values["context_words"] = context_words
3421
+ if name is not None:
3422
+ self._values["name"] = name
3423
+ if regex_string is not None:
3424
+ self._values["regex_string"] = regex_string
3425
+ if tags is not None:
3426
+ self._values["tags"] = tags
3427
+
3428
+ @builtins.property
3429
+ def context_words(self) -> typing.Optional[typing.List[builtins.str]]:
3430
+ '''A list of context words.
3431
+
3432
+ If none of these context words are found within the vicinity of the regular expression the data will not be detected as sensitive data.
3433
+
3434
+ If no context words are passed only a regular expression is checked.
3435
+
3436
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-customentitytype.html#cfn-glue-customentitytype-contextwords
3437
+ '''
3438
+ result = self._values.get("context_words")
3439
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
3440
+
3441
+ @builtins.property
3442
+ def name(self) -> typing.Optional[builtins.str]:
3443
+ '''A name for the custom pattern that allows it to be retrieved or deleted later.
3444
+
3445
+ This name must be unique per AWS account.
3446
+
3447
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-customentitytype.html#cfn-glue-customentitytype-name
3448
+ '''
3449
+ result = self._values.get("name")
3450
+ return typing.cast(typing.Optional[builtins.str], result)
3451
+
3452
+ @builtins.property
3453
+ def regex_string(self) -> typing.Optional[builtins.str]:
3454
+ '''A regular expression string that is used for detecting sensitive data in a custom pattern.
3455
+
3456
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-customentitytype.html#cfn-glue-customentitytype-regexstring
3457
+ '''
3458
+ result = self._values.get("regex_string")
3459
+ return typing.cast(typing.Optional[builtins.str], result)
3460
+
3461
+ @builtins.property
3462
+ def tags(self) -> typing.Any:
3463
+ '''
3464
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-glue-customentitytype.html#cfn-glue-customentitytype-tags
3465
+ '''
3466
+ result = self._values.get("tags")
3467
+ return typing.cast(typing.Any, result)
3468
+
3469
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3470
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3471
+
3472
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3473
+ return not (rhs == self)
3474
+
3475
+ def __repr__(self) -> str:
3476
+ return "CfnCustomEntityTypeProps(%s)" % ", ".join(
3477
+ k + "=" + repr(v) for k, v in self._values.items()
3478
+ )
3479
+
3480
+
3212
3481
  @jsii.implements(_IInspectable_c2943556)
3213
3482
  class CfnDataCatalogEncryptionSettings(
3214
3483
  _CfnResource_9df397a6,
@@ -14312,6 +14581,8 @@ __all__ = [
14312
14581
  "CfnConnectionProps",
14313
14582
  "CfnCrawler",
14314
14583
  "CfnCrawlerProps",
14584
+ "CfnCustomEntityType",
14585
+ "CfnCustomEntityTypeProps",
14315
14586
  "CfnDataCatalogEncryptionSettings",
14316
14587
  "CfnDataCatalogEncryptionSettingsProps",
14317
14588
  "CfnDataQualityRuleset",
@@ -14741,6 +15012,64 @@ def _typecheckingstub__51125dcaf0f55fdaefa50d6b9c05a6e431008538b8ab24abc0fbe126f
14741
15012
  """Type checking stubs"""
14742
15013
  pass
14743
15014
 
15015
+ def _typecheckingstub__513b5382e12edfa036d553799dc23a98aa5ab82a6014b0bf9734336e4df0b878(
15016
+ scope: _constructs_77d1e7e8.Construct,
15017
+ id: builtins.str,
15018
+ *,
15019
+ context_words: typing.Optional[typing.Sequence[builtins.str]] = None,
15020
+ name: typing.Optional[builtins.str] = None,
15021
+ regex_string: typing.Optional[builtins.str] = None,
15022
+ tags: typing.Any = None,
15023
+ ) -> None:
15024
+ """Type checking stubs"""
15025
+ pass
15026
+
15027
+ def _typecheckingstub__f1161ed4cb74764a76ad0a2a8d9218348384b8c59f0f79872699c83d6a9671c3(
15028
+ inspector: _TreeInspector_488e0dd5,
15029
+ ) -> None:
15030
+ """Type checking stubs"""
15031
+ pass
15032
+
15033
+ def _typecheckingstub__5a44dbad5acfb5d1ab1a4900296aa7aa8dd3f89c6979168443c7cc1d42463a11(
15034
+ props: typing.Mapping[builtins.str, typing.Any],
15035
+ ) -> None:
15036
+ """Type checking stubs"""
15037
+ pass
15038
+
15039
+ def _typecheckingstub__d9a1b7db0046368ee993569d7df3e7fd0804b6e98a87f04e557ae064873f7978(
15040
+ value: typing.Optional[typing.List[builtins.str]],
15041
+ ) -> None:
15042
+ """Type checking stubs"""
15043
+ pass
15044
+
15045
+ def _typecheckingstub__d11901df483ca1c3600c4415a97269b90d2adfe324a4327071f30bddc8fc6369(
15046
+ value: typing.Optional[builtins.str],
15047
+ ) -> None:
15048
+ """Type checking stubs"""
15049
+ pass
15050
+
15051
+ def _typecheckingstub__258029d677ed510f6e111f28b88a3fd5ca710364677c254b86f15149c3939f01(
15052
+ value: typing.Optional[builtins.str],
15053
+ ) -> None:
15054
+ """Type checking stubs"""
15055
+ pass
15056
+
15057
+ def _typecheckingstub__004ded3c6afee7c54be15b960f2dfa901eda8ff5ffd11f03dc0ad21cd665d3e9(
15058
+ value: typing.Any,
15059
+ ) -> None:
15060
+ """Type checking stubs"""
15061
+ pass
15062
+
15063
+ def _typecheckingstub__b89d4d1c0831361548b8a9b2f2dbfff2bf67857569a0c9b0cc33179f8c618967(
15064
+ *,
15065
+ context_words: typing.Optional[typing.Sequence[builtins.str]] = None,
15066
+ name: typing.Optional[builtins.str] = None,
15067
+ regex_string: typing.Optional[builtins.str] = None,
15068
+ tags: typing.Any = None,
15069
+ ) -> None:
15070
+ """Type checking stubs"""
15071
+ pass
15072
+
14744
15073
  def _typecheckingstub__282fa6292001a27626ebcdd16c3756f6c1f39e2fce0bffe2aa07015e603b0c74(
14745
15074
  scope: _constructs_77d1e7e8.Construct,
14746
15075
  id: builtins.str,
@@ -9869,27 +9869,34 @@ class PolicyStatement(
9869
9869
  ):
9870
9870
  '''Represents a statement in an IAM policy document.
9871
9871
 
9872
- :exampleMetadata: infused
9872
+ :exampleMetadata: lit=aws-ec2/test/integ.vpc-endpoint.lit.ts infused
9873
9873
 
9874
9874
  Example::
9875
9875
 
9876
- cross_account_role_arn = "arn:aws:iam::OTHERACCOUNT:role/CrossAccountRoleName" # arn of role deployed in separate account
9876
+ # Add gateway endpoints when creating the VPC
9877
+ vpc = ec2.Vpc(self, "MyVpc",
9878
+ gateway_endpoints={
9879
+ "S3": cdk.aws_ec2.GatewayVpcEndpointOptions(
9880
+ service=ec2.GatewayVpcEndpointAwsService.S3
9881
+ )
9882
+ }
9883
+ )
9884
+
9885
+ # Alternatively gateway endpoints can be added on the VPC
9886
+ dynamo_db_endpoint = vpc.add_gateway_endpoint("DynamoDbEndpoint",
9887
+ service=ec2.GatewayVpcEndpointAwsService.DYNAMODB
9888
+ )
9877
9889
 
9878
- call_region = "us-west-1" # sdk call to be made in specified region (optional)
9890
+ # This allows to customize the endpoint policy
9891
+ dynamo_db_endpoint.add_to_policy(
9892
+ iam.PolicyStatement( # Restrict to listing and describing tables
9893
+ principals=[iam.AnyPrincipal()],
9894
+ actions=["dynamodb:DescribeTable", "dynamodb:ListTables"],
9895
+ resources=["*"]))
9879
9896
 
9880
- cr.AwsCustomResource(self, "CrossAccount",
9881
- on_create=cr.AwsSdkCall(
9882
- assumed_role_arn=cross_account_role_arn,
9883
- region=call_region, # optional
9884
- service="sts",
9885
- action="GetCallerIdentity",
9886
- physical_resource_id=cr.PhysicalResourceId.of("id")
9887
- ),
9888
- policy=cr.AwsCustomResourcePolicy.from_statements([iam.PolicyStatement.from_json({
9889
- "Effect": "Allow",
9890
- "Action": "sts:AssumeRole",
9891
- "Resource": cross_account_role_arn
9892
- })])
9897
+ # Add an interface endpoint
9898
+ vpc.add_interface_endpoint("EcrDockerEndpoint",
9899
+ service=ec2.InterfaceVpcEndpointAwsService.ECR_DOCKER
9893
9900
  )
9894
9901
  '''
9895
9902
 
@@ -12726,6 +12733,20 @@ class PrincipalWithConditions(
12726
12733
  check_type(argname="argument conditions", value=conditions, expected_type=type_hints["conditions"])
12727
12734
  return typing.cast(None, jsii.invoke(self, "addConditions", [conditions]))
12728
12735
 
12736
+ @jsii.member(jsii_name="addToAssumeRolePolicy")
12737
+ def add_to_assume_role_policy(self, doc: PolicyDocument) -> None:
12738
+ '''Add the principal to the AssumeRolePolicyDocument.
12739
+
12740
+ Add the statements to the AssumeRolePolicyDocument necessary to give this principal
12741
+ permissions to assume the given role.
12742
+
12743
+ :param doc: -
12744
+ '''
12745
+ if __debug__:
12746
+ type_hints = typing.get_type_hints(_typecheckingstub__9f3b5797da3ed30fffb5a07fdbc780cf2bb80f8c955f12f28429742fe81076d9)
12747
+ check_type(argname="argument doc", value=doc, expected_type=type_hints["doc"])
12748
+ return typing.cast(None, jsii.invoke(self, "addToAssumeRolePolicy", [doc]))
12749
+
12729
12750
  @jsii.member(jsii_name="addToPolicy")
12730
12751
  def add_to_policy(self, statement: PolicyStatement) -> builtins.bool:
12731
12752
  '''Add to the policy of this principal.
@@ -12829,17 +12850,16 @@ class Role(
12829
12850
 
12830
12851
  Example::
12831
12852
 
12832
- lambda_role = iam.Role(self, "Role",
12833
- assumed_by=iam.ServicePrincipal("lambda.amazonaws.com"),
12834
- description="Example role..."
12853
+ # definition: sfn.IChainable
12854
+ role = iam.Role(self, "Role",
12855
+ assumed_by=iam.ServicePrincipal("lambda.amazonaws.com")
12835
12856
  )
12836
-
12837
- stream = kinesis.Stream(self, "MyEncryptedStream",
12838
- encryption=kinesis.StreamEncryption.KMS
12857
+ state_machine = sfn.StateMachine(self, "StateMachine",
12858
+ definition_body=sfn.DefinitionBody.from_chainable(definition)
12839
12859
  )
12840
12860
 
12841
- # give lambda permissions to read stream
12842
- stream.grant_read(lambda_role)
12861
+ # Give role permission to get execution history of ALL executions for the state machine
12862
+ state_machine.grant_execution(role, "states:GetExecutionHistory")
12843
12863
  '''
12844
12864
 
12845
12865
  def __init__(
@@ -16594,6 +16614,12 @@ def _typecheckingstub__06f98d5139c999f6bf39f7d3b6b83cf4b629160f211cfac70b66df210
16594
16614
  """Type checking stubs"""
16595
16615
  pass
16596
16616
 
16617
+ def _typecheckingstub__9f3b5797da3ed30fffb5a07fdbc780cf2bb80f8c955f12f28429742fe81076d9(
16618
+ doc: PolicyDocument,
16619
+ ) -> None:
16620
+ """Type checking stubs"""
16621
+ pass
16622
+
16597
16623
  def _typecheckingstub__de4963000e34b16a5638f4c44067171e566faa24c22a4a7cc74d90b52ec2976a(
16598
16624
  statement: PolicyStatement,
16599
16625
  ) -> None: