aws-cdk-lib 2.133.0__py3-none-any.whl → 2.134.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 (56) hide show
  1. aws_cdk/__init__.py +9 -1
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.133.0.jsii.tgz → aws-cdk-lib@2.134.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_apigatewayv2/__init__.py +105 -3
  5. aws_cdk/aws_apigatewayv2_integrations/__init__.py +155 -3
  6. aws_cdk/aws_appconfig/__init__.py +186 -8
  7. aws_cdk/aws_appintegrations/__init__.py +551 -0
  8. aws_cdk/aws_appsync/__init__.py +71 -0
  9. aws_cdk/aws_autoscaling/__init__.py +6 -4
  10. aws_cdk/aws_backup/__init__.py +23 -12
  11. aws_cdk/aws_batch/__init__.py +423 -73
  12. aws_cdk/aws_bedrock/__init__.py +197 -2
  13. aws_cdk/aws_cloudformation/__init__.py +1 -1
  14. aws_cdk/aws_cloudfront/__init__.py +2 -2
  15. aws_cdk/aws_cloudtrail/__init__.py +44 -14
  16. aws_cdk/aws_cloudwatch/__init__.py +18 -0
  17. aws_cdk/aws_codeartifact/__init__.py +812 -2
  18. aws_cdk/aws_codebuild/__init__.py +21 -5
  19. aws_cdk/aws_codepipeline/__init__.py +24 -8
  20. aws_cdk/aws_cognito/__init__.py +41 -40
  21. aws_cdk/aws_connect/__init__.py +256 -0
  22. aws_cdk/aws_datasync/__init__.py +393 -13
  23. aws_cdk/aws_dlm/__init__.py +2 -2
  24. aws_cdk/aws_docdbelastic/__init__.py +117 -0
  25. aws_cdk/aws_dynamodb/__init__.py +416 -5
  26. aws_cdk/aws_ec2/__init__.py +493 -93
  27. aws_cdk/aws_ecs/__init__.py +6 -4
  28. aws_cdk/aws_eks/__init__.py +27 -25
  29. aws_cdk/aws_elasticloadbalancingv2/__init__.py +359 -60
  30. aws_cdk/aws_entityresolution/__init__.py +91 -64
  31. aws_cdk/aws_glue/__init__.py +137 -3
  32. aws_cdk/aws_iam/__init__.py +9 -10
  33. aws_cdk/aws_internetmonitor/__init__.py +85 -0
  34. aws_cdk/aws_iotsitewise/__init__.py +110 -50
  35. aws_cdk/aws_kafkaconnect/__init__.py +1237 -162
  36. aws_cdk/aws_kendra/__init__.py +34 -24
  37. aws_cdk/aws_kinesisanalytics/__init__.py +37 -37
  38. aws_cdk/aws_kinesisanalyticsv2/__init__.py +37 -37
  39. aws_cdk/aws_kinesisfirehose/__init__.py +6 -2
  40. aws_cdk/aws_msk/__init__.py +88 -0
  41. aws_cdk/aws_opensearchservice/__init__.py +19 -17
  42. aws_cdk/aws_pinpoint/__init__.py +42 -0
  43. aws_cdk/aws_rds/__init__.py +48 -14
  44. aws_cdk/aws_sagemaker/__init__.py +2 -2
  45. aws_cdk/aws_ssm/__init__.py +3 -3
  46. aws_cdk/aws_stepfunctions_tasks/__init__.py +23 -0
  47. aws_cdk/aws_synthetics/__init__.py +74 -14
  48. aws_cdk/aws_transfer/__init__.py +4 -3
  49. aws_cdk/aws_wafv2/__init__.py +96 -46
  50. aws_cdk/cx_api/__init__.py +17 -0
  51. {aws_cdk_lib-2.133.0.dist-info → aws_cdk_lib-2.134.0.dist-info}/METADATA +2 -2
  52. {aws_cdk_lib-2.133.0.dist-info → aws_cdk_lib-2.134.0.dist-info}/RECORD +56 -56
  53. {aws_cdk_lib-2.133.0.dist-info → aws_cdk_lib-2.134.0.dist-info}/LICENSE +0 -0
  54. {aws_cdk_lib-2.133.0.dist-info → aws_cdk_lib-2.134.0.dist-info}/NOTICE +0 -0
  55. {aws_cdk_lib-2.133.0.dist-info → aws_cdk_lib-2.134.0.dist-info}/WHEEL +0 -0
  56. {aws_cdk_lib-2.133.0.dist-info → aws_cdk_lib-2.134.0.dist-info}/top_level.txt +0 -0
@@ -1372,6 +1372,8 @@ class CfnGlobalTable(
1372
1372
  # The values are placeholders you should change.
1373
1373
  from aws_cdk import aws_dynamodb as dynamodb
1374
1374
 
1375
+ # policy_document: Any
1376
+
1375
1377
  cfn_global_table = dynamodb.CfnGlobalTable(self, "MyCfnGlobalTable",
1376
1378
  attribute_definitions=[dynamodb.CfnGlobalTable.AttributeDefinitionProperty(
1377
1379
  attribute_name="attributeName",
@@ -1442,6 +1444,14 @@ class CfnGlobalTable(
1442
1444
  ),
1443
1445
  read_capacity_units=123
1444
1446
  ),
1447
+ replica_stream_specification=dynamodb.CfnGlobalTable.ReplicaStreamSpecificationProperty(
1448
+ resource_policy=dynamodb.CfnGlobalTable.ResourcePolicyProperty(
1449
+ policy_document=policy_document
1450
+ )
1451
+ ),
1452
+ resource_policy=dynamodb.CfnGlobalTable.ResourcePolicyProperty(
1453
+ policy_document=policy_document
1454
+ ),
1445
1455
  sse_specification=dynamodb.CfnGlobalTable.ReplicaSSESpecificationProperty(
1446
1456
  kms_master_key_id="kmsMasterKeyId"
1447
1457
  ),
@@ -2942,6 +2952,8 @@ class CfnGlobalTable(
2942
2952
  "kinesis_stream_specification": "kinesisStreamSpecification",
2943
2953
  "point_in_time_recovery_specification": "pointInTimeRecoverySpecification",
2944
2954
  "read_provisioned_throughput_settings": "readProvisionedThroughputSettings",
2955
+ "replica_stream_specification": "replicaStreamSpecification",
2956
+ "resource_policy": "resourcePolicy",
2945
2957
  "sse_specification": "sseSpecification",
2946
2958
  "table_class": "tableClass",
2947
2959
  "tags": "tags",
@@ -2958,6 +2970,8 @@ class CfnGlobalTable(
2958
2970
  kinesis_stream_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnGlobalTable.KinesisStreamSpecificationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2959
2971
  point_in_time_recovery_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnGlobalTable.PointInTimeRecoverySpecificationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2960
2972
  read_provisioned_throughput_settings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnGlobalTable.ReadProvisionedThroughputSettingsProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2973
+ replica_stream_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnGlobalTable.ReplicaStreamSpecificationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2974
+ resource_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnGlobalTable.ResourcePolicyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2961
2975
  sse_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnGlobalTable.ReplicaSSESpecificationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
2962
2976
  table_class: typing.Optional[builtins.str] = None,
2963
2977
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -2971,6 +2985,8 @@ class CfnGlobalTable(
2971
2985
  :param kinesis_stream_specification: Defines the Kinesis Data Streams configuration for the specified replica.
2972
2986
  :param point_in_time_recovery_specification: The settings used to enable point in time recovery. When not specified, defaults to point in time recovery disabled for the replica.
2973
2987
  :param read_provisioned_throughput_settings: Defines read capacity settings for the replica table.
2988
+ :param replica_stream_specification: Represents the DynamoDB Streams configuration for a global table replica.
2989
+ :param resource_policy: A resource-based policy document that contains permissions to add to the specified replica of a DynamoDB global table. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ .
2974
2990
  :param sse_specification: Allows you to specify a customer-managed key for the replica. When using customer-managed keys for server-side encryption, this property must have a value in all replicas.
2975
2991
  :param table_class: The table class of the specified table. Valid values are ``STANDARD`` and ``STANDARD_INFREQUENT_ACCESS`` .
2976
2992
  :param tags: An array of key-value pairs to apply to this replica. For more information, see `Tag <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-resource-tags.html>`_ .
@@ -2984,6 +3000,8 @@ class CfnGlobalTable(
2984
3000
  # The values are placeholders you should change.
2985
3001
  from aws_cdk import aws_dynamodb as dynamodb
2986
3002
 
3003
+ # policy_document: Any
3004
+
2987
3005
  replica_specification_property = dynamodb.CfnGlobalTable.ReplicaSpecificationProperty(
2988
3006
  region="region",
2989
3007
 
@@ -3045,6 +3063,14 @@ class CfnGlobalTable(
3045
3063
  ),
3046
3064
  read_capacity_units=123
3047
3065
  ),
3066
+ replica_stream_specification=dynamodb.CfnGlobalTable.ReplicaStreamSpecificationProperty(
3067
+ resource_policy=dynamodb.CfnGlobalTable.ResourcePolicyProperty(
3068
+ policy_document=policy_document
3069
+ )
3070
+ ),
3071
+ resource_policy=dynamodb.CfnGlobalTable.ResourcePolicyProperty(
3072
+ policy_document=policy_document
3073
+ ),
3048
3074
  sse_specification=dynamodb.CfnGlobalTable.ReplicaSSESpecificationProperty(
3049
3075
  kms_master_key_id="kmsMasterKeyId"
3050
3076
  ),
@@ -3064,6 +3090,8 @@ class CfnGlobalTable(
3064
3090
  check_type(argname="argument kinesis_stream_specification", value=kinesis_stream_specification, expected_type=type_hints["kinesis_stream_specification"])
3065
3091
  check_type(argname="argument point_in_time_recovery_specification", value=point_in_time_recovery_specification, expected_type=type_hints["point_in_time_recovery_specification"])
3066
3092
  check_type(argname="argument read_provisioned_throughput_settings", value=read_provisioned_throughput_settings, expected_type=type_hints["read_provisioned_throughput_settings"])
3093
+ check_type(argname="argument replica_stream_specification", value=replica_stream_specification, expected_type=type_hints["replica_stream_specification"])
3094
+ check_type(argname="argument resource_policy", value=resource_policy, expected_type=type_hints["resource_policy"])
3067
3095
  check_type(argname="argument sse_specification", value=sse_specification, expected_type=type_hints["sse_specification"])
3068
3096
  check_type(argname="argument table_class", value=table_class, expected_type=type_hints["table_class"])
3069
3097
  check_type(argname="argument tags", value=tags, expected_type=type_hints["tags"])
@@ -3082,6 +3110,10 @@ class CfnGlobalTable(
3082
3110
  self._values["point_in_time_recovery_specification"] = point_in_time_recovery_specification
3083
3111
  if read_provisioned_throughput_settings is not None:
3084
3112
  self._values["read_provisioned_throughput_settings"] = read_provisioned_throughput_settings
3113
+ if replica_stream_specification is not None:
3114
+ self._values["replica_stream_specification"] = replica_stream_specification
3115
+ if resource_policy is not None:
3116
+ self._values["resource_policy"] = resource_policy
3085
3117
  if sse_specification is not None:
3086
3118
  self._values["sse_specification"] = sse_specification
3087
3119
  if table_class is not None:
@@ -3171,6 +3203,32 @@ class CfnGlobalTable(
3171
3203
  result = self._values.get("read_provisioned_throughput_settings")
3172
3204
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGlobalTable.ReadProvisionedThroughputSettingsProperty"]], result)
3173
3205
 
3206
+ @builtins.property
3207
+ def replica_stream_specification(
3208
+ self,
3209
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGlobalTable.ReplicaStreamSpecificationProperty"]]:
3210
+ '''Represents the DynamoDB Streams configuration for a global table replica.
3211
+
3212
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-replicastreamspecification
3213
+ '''
3214
+ result = self._values.get("replica_stream_specification")
3215
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGlobalTable.ReplicaStreamSpecificationProperty"]], result)
3216
+
3217
+ @builtins.property
3218
+ def resource_policy(
3219
+ self,
3220
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGlobalTable.ResourcePolicyProperty"]]:
3221
+ '''A resource-based policy document that contains permissions to add to the specified replica of a DynamoDB global table.
3222
+
3223
+ Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource.
3224
+
3225
+ In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ .
3226
+
3227
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicaspecification.html#cfn-dynamodb-globaltable-replicaspecification-resourcepolicy
3228
+ '''
3229
+ result = self._values.get("resource_policy")
3230
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnGlobalTable.ResourcePolicyProperty"]], result)
3231
+
3174
3232
  @builtins.property
3175
3233
  def sse_specification(
3176
3234
  self,
@@ -3217,6 +3275,149 @@ class CfnGlobalTable(
3217
3275
  k + "=" + repr(v) for k, v in self._values.items()
3218
3276
  )
3219
3277
 
3278
+ @jsii.data_type(
3279
+ jsii_type="aws-cdk-lib.aws_dynamodb.CfnGlobalTable.ReplicaStreamSpecificationProperty",
3280
+ jsii_struct_bases=[],
3281
+ name_mapping={"resource_policy": "resourcePolicy"},
3282
+ )
3283
+ class ReplicaStreamSpecificationProperty:
3284
+ def __init__(
3285
+ self,
3286
+ *,
3287
+ resource_policy: typing.Union[_IResolvable_da3f097b, typing.Union["CfnGlobalTable.ResourcePolicyProperty", typing.Dict[builtins.str, typing.Any]]],
3288
+ ) -> None:
3289
+ '''Represents the DynamoDB Streams configuration for a global table replica.
3290
+
3291
+ :param resource_policy: A resource-based policy document that contains the permissions for the specified stream of a DynamoDB global table replica. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ . You can update the ``ResourcePolicy`` property if you've specified more than one table using the `AWS ::DynamoDB::GlobalTable <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html>`_ resource.
3292
+
3293
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicastreamspecification.html
3294
+ :exampleMetadata: fixture=_generated
3295
+
3296
+ Example::
3297
+
3298
+ # The code below shows an example of how to instantiate this type.
3299
+ # The values are placeholders you should change.
3300
+ from aws_cdk import aws_dynamodb as dynamodb
3301
+
3302
+ # policy_document: Any
3303
+
3304
+ replica_stream_specification_property = dynamodb.CfnGlobalTable.ReplicaStreamSpecificationProperty(
3305
+ resource_policy=dynamodb.CfnGlobalTable.ResourcePolicyProperty(
3306
+ policy_document=policy_document
3307
+ )
3308
+ )
3309
+ '''
3310
+ if __debug__:
3311
+ type_hints = typing.get_type_hints(_typecheckingstub__00848a241dcb74d0918fbddda5f7ccf1c445a7b63583f8697e2d95d334aa1bed)
3312
+ check_type(argname="argument resource_policy", value=resource_policy, expected_type=type_hints["resource_policy"])
3313
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3314
+ "resource_policy": resource_policy,
3315
+ }
3316
+
3317
+ @builtins.property
3318
+ def resource_policy(
3319
+ self,
3320
+ ) -> typing.Union[_IResolvable_da3f097b, "CfnGlobalTable.ResourcePolicyProperty"]:
3321
+ '''A resource-based policy document that contains the permissions for the specified stream of a DynamoDB global table replica.
3322
+
3323
+ Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource.
3324
+
3325
+ In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ .
3326
+
3327
+ You can update the ``ResourcePolicy`` property if you've specified more than one table using the `AWS ::DynamoDB::GlobalTable <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html>`_ resource.
3328
+
3329
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-replicastreamspecification.html#cfn-dynamodb-globaltable-replicastreamspecification-resourcepolicy
3330
+ '''
3331
+ result = self._values.get("resource_policy")
3332
+ assert result is not None, "Required property 'resource_policy' is missing"
3333
+ return typing.cast(typing.Union[_IResolvable_da3f097b, "CfnGlobalTable.ResourcePolicyProperty"], result)
3334
+
3335
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3336
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3337
+
3338
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3339
+ return not (rhs == self)
3340
+
3341
+ def __repr__(self) -> str:
3342
+ return "ReplicaStreamSpecificationProperty(%s)" % ", ".join(
3343
+ k + "=" + repr(v) for k, v in self._values.items()
3344
+ )
3345
+
3346
+ @jsii.data_type(
3347
+ jsii_type="aws-cdk-lib.aws_dynamodb.CfnGlobalTable.ResourcePolicyProperty",
3348
+ jsii_struct_bases=[],
3349
+ name_mapping={"policy_document": "policyDocument"},
3350
+ )
3351
+ class ResourcePolicyProperty:
3352
+ def __init__(self, *, policy_document: typing.Any) -> None:
3353
+ '''Creates or updates a resource-based policy document that contains the permissions for DynamoDB resources, such as a table, its indexes, and stream.
3354
+
3355
+ Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource.
3356
+
3357
+ In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ .
3358
+
3359
+ While defining resource-based policies in your CloudFormation templates, the following considerations apply:
3360
+
3361
+ - The maximum size supported for a resource-based policy document in JSON format is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit.
3362
+ - Resource-based policies don't support `drift detection <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#>`_ . If you update a policy outside of the CloudFormation stack template, you'll need to update the CloudFormation stack with the changes.
3363
+ - Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CloudFormation template, the change won't be overwritten if there are no changes to the policy within the template.
3364
+
3365
+ For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DynamoDB won’t be synced with the policy in the template.
3366
+
3367
+ Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DynamoDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DynamoDB will be updated to match the one defined in the template.
3368
+
3369
+ - Within a resource-based policy, if the action for a DynamoDB service-linked role (SLR) to replicate data for a global table is denied, adding or deleting a replica will fail with an error.
3370
+ - The `AWS ::DynamoDB::GlobalTable <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-globaltable.html>`_ resource doesn't support creating a replica in the same stack update in Regions other than the Region where you deploy the stack update.
3371
+
3372
+ For a full list of all considerations, see `Resource-based policy considerations <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html>`_ .
3373
+
3374
+ :param policy_document: A resource-based policy document that contains permissions to add to the specified DynamoDB table, its indexes, and stream. In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ .
3375
+
3376
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-resourcepolicy.html
3377
+ :exampleMetadata: fixture=_generated
3378
+
3379
+ Example::
3380
+
3381
+ # The code below shows an example of how to instantiate this type.
3382
+ # The values are placeholders you should change.
3383
+ from aws_cdk import aws_dynamodb as dynamodb
3384
+
3385
+ # policy_document: Any
3386
+
3387
+ resource_policy_property = dynamodb.CfnGlobalTable.ResourcePolicyProperty(
3388
+ policy_document=policy_document
3389
+ )
3390
+ '''
3391
+ if __debug__:
3392
+ type_hints = typing.get_type_hints(_typecheckingstub__6007e745281a1817381b3cb8f148da677e9fde77893fbd60db054cb3b85f34db)
3393
+ check_type(argname="argument policy_document", value=policy_document, expected_type=type_hints["policy_document"])
3394
+ self._values: typing.Dict[builtins.str, typing.Any] = {
3395
+ "policy_document": policy_document,
3396
+ }
3397
+
3398
+ @builtins.property
3399
+ def policy_document(self) -> typing.Any:
3400
+ '''A resource-based policy document that contains permissions to add to the specified DynamoDB table, its indexes, and stream.
3401
+
3402
+ In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ .
3403
+
3404
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-globaltable-resourcepolicy.html#cfn-dynamodb-globaltable-resourcepolicy-policydocument
3405
+ '''
3406
+ result = self._values.get("policy_document")
3407
+ assert result is not None, "Required property 'policy_document' is missing"
3408
+ return typing.cast(typing.Any, result)
3409
+
3410
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
3411
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
3412
+
3413
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
3414
+ return not (rhs == self)
3415
+
3416
+ def __repr__(self) -> str:
3417
+ return "ResourcePolicyProperty(%s)" % ", ".join(
3418
+ k + "=" + repr(v) for k, v in self._values.items()
3419
+ )
3420
+
3220
3421
  @jsii.data_type(
3221
3422
  jsii_type="aws-cdk-lib.aws_dynamodb.CfnGlobalTable.SSESpecificationProperty",
3222
3423
  jsii_struct_bases=[],
@@ -3676,6 +3877,8 @@ class CfnGlobalTableProps:
3676
3877
  # The values are placeholders you should change.
3677
3878
  from aws_cdk import aws_dynamodb as dynamodb
3678
3879
 
3880
+ # policy_document: Any
3881
+
3679
3882
  cfn_global_table_props = dynamodb.CfnGlobalTableProps(
3680
3883
  attribute_definitions=[dynamodb.CfnGlobalTable.AttributeDefinitionProperty(
3681
3884
  attribute_name="attributeName",
@@ -3746,6 +3949,14 @@ class CfnGlobalTableProps:
3746
3949
  ),
3747
3950
  read_capacity_units=123
3748
3951
  ),
3952
+ replica_stream_specification=dynamodb.CfnGlobalTable.ReplicaStreamSpecificationProperty(
3953
+ resource_policy=dynamodb.CfnGlobalTable.ResourcePolicyProperty(
3954
+ policy_document=policy_document
3955
+ )
3956
+ ),
3957
+ resource_policy=dynamodb.CfnGlobalTable.ResourcePolicyProperty(
3958
+ policy_document=policy_document
3959
+ ),
3749
3960
  sse_specification=dynamodb.CfnGlobalTable.ReplicaSSESpecificationProperty(
3750
3961
  kms_master_key_id="kmsMasterKeyId"
3751
3962
  ),
@@ -4062,6 +4273,8 @@ class CfnTable(
4062
4273
  # The values are placeholders you should change.
4063
4274
  from aws_cdk import aws_dynamodb as dynamodb
4064
4275
 
4276
+ # policy_document: Any
4277
+
4065
4278
  cfn_table = dynamodb.CfnTable(self, "MyCfnTable",
4066
4279
  key_schema=[dynamodb.CfnTable.KeySchemaProperty(
4067
4280
  attribute_name="attributeName",
@@ -4141,6 +4354,9 @@ class CfnTable(
4141
4354
  read_capacity_units=123,
4142
4355
  write_capacity_units=123
4143
4356
  ),
4357
+ resource_policy=dynamodb.CfnTable.ResourcePolicyProperty(
4358
+ policy_document=policy_document
4359
+ ),
4144
4360
  sse_specification=dynamodb.CfnTable.SSESpecificationProperty(
4145
4361
  sse_enabled=False,
4146
4362
 
@@ -4149,7 +4365,12 @@ class CfnTable(
4149
4365
  sse_type="sseType"
4150
4366
  ),
4151
4367
  stream_specification=dynamodb.CfnTable.StreamSpecificationProperty(
4152
- stream_view_type="streamViewType"
4368
+ stream_view_type="streamViewType",
4369
+
4370
+ # the properties below are optional
4371
+ resource_policy=dynamodb.CfnTable.ResourcePolicyProperty(
4372
+ policy_document=policy_document
4373
+ )
4153
4374
  ),
4154
4375
  table_class="tableClass",
4155
4376
  table_name="tableName",
@@ -4182,6 +4403,7 @@ class CfnTable(
4182
4403
  local_secondary_indexes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnTable.LocalSecondaryIndexProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
4183
4404
  point_in_time_recovery_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnTable.PointInTimeRecoverySpecificationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4184
4405
  provisioned_throughput: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnTable.ProvisionedThroughputProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4406
+ resource_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnTable.ResourcePolicyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4185
4407
  sse_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnTable.SSESpecificationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4186
4408
  stream_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnTable.StreamSpecificationProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
4187
4409
  table_class: typing.Optional[builtins.str] = None,
@@ -4203,6 +4425,7 @@ class CfnTable(
4203
4425
  :param local_secondary_indexes: Local secondary indexes to be created on the table. You can create up to 5 local secondary indexes. Each index is scoped to a given hash key value. The size of each hash key can be up to 10 gigabytes.
4204
4426
  :param point_in_time_recovery_specification: The settings used to enable point in time recovery.
4205
4427
  :param provisioned_throughput: Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits`` . For more information about the contents of a provisioned throughput structure, see `Amazon DynamoDB Table ProvisionedThroughput <https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html>`_ . If you set ``BillingMode`` as ``PROVISIONED`` , you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST`` , you cannot specify this property.
4428
+ :param resource_policy: A resource-based policy document that contains permissions to add to the specified table. In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ . When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent* . For information about the considerations that you should keep in mind while attaching a resource-based policy, see `Resource-based policy considerations <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html>`_ .
4206
4429
  :param sse_specification: Specifies the settings to enable server-side encryption.
4207
4430
  :param stream_specification: The settings for the DynamoDB table stream, which capture changes to items stored in the table.
4208
4431
  :param table_class: The table class of the new table. Valid values are ``STANDARD`` and ``STANDARD_INFREQUENT_ACCESS`` .
@@ -4226,6 +4449,7 @@ class CfnTable(
4226
4449
  local_secondary_indexes=local_secondary_indexes,
4227
4450
  point_in_time_recovery_specification=point_in_time_recovery_specification,
4228
4451
  provisioned_throughput=provisioned_throughput,
4452
+ resource_policy=resource_policy,
4229
4453
  sse_specification=sse_specification,
4230
4454
  stream_specification=stream_specification,
4231
4455
  table_class=table_class,
@@ -4495,6 +4719,24 @@ class CfnTable(
4495
4719
  check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4496
4720
  jsii.set(self, "provisionedThroughput", value)
4497
4721
 
4722
+ @builtins.property
4723
+ @jsii.member(jsii_name="resourcePolicy")
4724
+ def resource_policy(
4725
+ self,
4726
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnTable.ResourcePolicyProperty"]]:
4727
+ '''A resource-based policy document that contains permissions to add to the specified table.'''
4728
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnTable.ResourcePolicyProperty"]], jsii.get(self, "resourcePolicy"))
4729
+
4730
+ @resource_policy.setter
4731
+ def resource_policy(
4732
+ self,
4733
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnTable.ResourcePolicyProperty"]],
4734
+ ) -> None:
4735
+ if __debug__:
4736
+ type_hints = typing.get_type_hints(_typecheckingstub__4166d9b0a925b24598927de15ecb1935d22d14f9a49469ba893db8d18421bf02)
4737
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
4738
+ jsii.set(self, "resourcePolicy", value)
4739
+
4498
4740
  @builtins.property
4499
4741
  @jsii.member(jsii_name="sseSpecification")
4500
4742
  def sse_specification(
@@ -5640,6 +5882,78 @@ class CfnTable(
5640
5882
  k + "=" + repr(v) for k, v in self._values.items()
5641
5883
  )
5642
5884
 
5885
+ @jsii.data_type(
5886
+ jsii_type="aws-cdk-lib.aws_dynamodb.CfnTable.ResourcePolicyProperty",
5887
+ jsii_struct_bases=[],
5888
+ name_mapping={"policy_document": "policyDocument"},
5889
+ )
5890
+ class ResourcePolicyProperty:
5891
+ def __init__(self, *, policy_document: typing.Any) -> None:
5892
+ '''Creates or updates a resource-based policy document that contains the permissions for DynamoDB resources, such as a table, its indexes, and stream.
5893
+
5894
+ Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource.
5895
+
5896
+ In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ .
5897
+
5898
+ While defining resource-based policies in your CloudFormation templates, the following considerations apply:
5899
+
5900
+ - The maximum size supported for a resource-based policy document in JSON format is 20 KB. DynamoDB counts whitespaces when calculating the size of a policy against this limit.
5901
+ - Resource-based policies don't support `drift detection <https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/using-cfn-stack-drift.html#>`_ . If you update a policy outside of the CloudFormation stack template, you'll need to update the CloudFormation stack with the changes.
5902
+ - Resource-based policies don't support out-of-band changes. If you add, update, or delete a policy outside of the CloudFormation template, the change won't be overwritten if there are no changes to the policy within the template.
5903
+
5904
+ For example, say that your template contains a resource-based policy, which you later update outside of the template. If you don't make any changes to the policy in the template, the updated policy in DynamoDB won’t be synced with the policy in the template.
5905
+
5906
+ Conversely, say that your template doesn’t contain a resource-based policy, but you add a policy outside of the template. This policy won’t be removed from DynamoDB as long as you don’t add it to the template. When you add a policy to the template and update the stack, the existing policy in DynamoDB will be updated to match the one defined in the template.
5907
+
5908
+ For a full list of all considerations, see `Resource-based policy considerations <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html>`_ .
5909
+
5910
+ :param policy_document: A resource-based policy document that contains permissions to add to the specified DynamoDB table, index, or both. In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ .
5911
+
5912
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-resourcepolicy.html
5913
+ :exampleMetadata: fixture=_generated
5914
+
5915
+ Example::
5916
+
5917
+ # The code below shows an example of how to instantiate this type.
5918
+ # The values are placeholders you should change.
5919
+ from aws_cdk import aws_dynamodb as dynamodb
5920
+
5921
+ # policy_document: Any
5922
+
5923
+ resource_policy_property = dynamodb.CfnTable.ResourcePolicyProperty(
5924
+ policy_document=policy_document
5925
+ )
5926
+ '''
5927
+ if __debug__:
5928
+ type_hints = typing.get_type_hints(_typecheckingstub__64c1cb1f4d183fca5b703f524bc57bfa5f9515fd97acd86171b92226b4e11ca3)
5929
+ check_type(argname="argument policy_document", value=policy_document, expected_type=type_hints["policy_document"])
5930
+ self._values: typing.Dict[builtins.str, typing.Any] = {
5931
+ "policy_document": policy_document,
5932
+ }
5933
+
5934
+ @builtins.property
5935
+ def policy_document(self) -> typing.Any:
5936
+ '''A resource-based policy document that contains permissions to add to the specified DynamoDB table, index, or both.
5937
+
5938
+ In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ .
5939
+
5940
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-resourcepolicy.html#cfn-dynamodb-table-resourcepolicy-policydocument
5941
+ '''
5942
+ result = self._values.get("policy_document")
5943
+ assert result is not None, "Required property 'policy_document' is missing"
5944
+ return typing.cast(typing.Any, result)
5945
+
5946
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
5947
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
5948
+
5949
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
5950
+ return not (rhs == self)
5951
+
5952
+ def __repr__(self) -> str:
5953
+ return "ResourcePolicyProperty(%s)" % ", ".join(
5954
+ k + "=" + repr(v) for k, v in self._values.items()
5955
+ )
5956
+
5643
5957
  @jsii.data_type(
5644
5958
  jsii_type="aws-cdk-lib.aws_dynamodb.CfnTable.S3BucketSourceProperty",
5645
5959
  jsii_struct_bases=[],
@@ -5835,13 +6149,22 @@ class CfnTable(
5835
6149
  @jsii.data_type(
5836
6150
  jsii_type="aws-cdk-lib.aws_dynamodb.CfnTable.StreamSpecificationProperty",
5837
6151
  jsii_struct_bases=[],
5838
- name_mapping={"stream_view_type": "streamViewType"},
6152
+ name_mapping={
6153
+ "stream_view_type": "streamViewType",
6154
+ "resource_policy": "resourcePolicy",
6155
+ },
5839
6156
  )
5840
6157
  class StreamSpecificationProperty:
5841
- def __init__(self, *, stream_view_type: builtins.str) -> None:
6158
+ def __init__(
6159
+ self,
6160
+ *,
6161
+ stream_view_type: builtins.str,
6162
+ resource_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union["CfnTable.ResourcePolicyProperty", typing.Dict[builtins.str, typing.Any]]]] = None,
6163
+ ) -> None:
5842
6164
  '''Represents the DynamoDB Streams configuration for a table in DynamoDB.
5843
6165
 
5844
6166
  :param stream_view_type: When an item in the table is modified, ``StreamViewType`` determines what information is written to the stream for this table. Valid values for ``StreamViewType`` are: - ``KEYS_ONLY`` - Only the key attributes of the modified item are written to the stream. - ``NEW_IMAGE`` - The entire item, as it appears after it was modified, is written to the stream. - ``OLD_IMAGE`` - The entire item, as it appeared before it was modified, is written to the stream. - ``NEW_AND_OLD_IMAGES`` - Both the new and the old item images of the item are written to the stream.
6167
+ :param resource_policy: Creates or updates a resource-based policy document that contains the permissions for DynamoDB resources, such as a table's streams. Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource. In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ .
5845
6168
 
5846
6169
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-streamspecification.html
5847
6170
  :exampleMetadata: fixture=_generated
@@ -5852,16 +6175,26 @@ class CfnTable(
5852
6175
  # The values are placeholders you should change.
5853
6176
  from aws_cdk import aws_dynamodb as dynamodb
5854
6177
 
6178
+ # policy_document: Any
6179
+
5855
6180
  stream_specification_property = dynamodb.CfnTable.StreamSpecificationProperty(
5856
- stream_view_type="streamViewType"
6181
+ stream_view_type="streamViewType",
6182
+
6183
+ # the properties below are optional
6184
+ resource_policy=dynamodb.CfnTable.ResourcePolicyProperty(
6185
+ policy_document=policy_document
6186
+ )
5857
6187
  )
5858
6188
  '''
5859
6189
  if __debug__:
5860
6190
  type_hints = typing.get_type_hints(_typecheckingstub__3099d6d2aee077548b7bec617449da8355169637f0983749d3191a63e00a1c72)
5861
6191
  check_type(argname="argument stream_view_type", value=stream_view_type, expected_type=type_hints["stream_view_type"])
6192
+ check_type(argname="argument resource_policy", value=resource_policy, expected_type=type_hints["resource_policy"])
5862
6193
  self._values: typing.Dict[builtins.str, typing.Any] = {
5863
6194
  "stream_view_type": stream_view_type,
5864
6195
  }
6196
+ if resource_policy is not None:
6197
+ self._values["resource_policy"] = resource_policy
5865
6198
 
5866
6199
  @builtins.property
5867
6200
  def stream_view_type(self) -> builtins.str:
@@ -5880,6 +6213,21 @@ class CfnTable(
5880
6213
  assert result is not None, "Required property 'stream_view_type' is missing"
5881
6214
  return typing.cast(builtins.str, result)
5882
6215
 
6216
+ @builtins.property
6217
+ def resource_policy(
6218
+ self,
6219
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnTable.ResourcePolicyProperty"]]:
6220
+ '''Creates or updates a resource-based policy document that contains the permissions for DynamoDB resources, such as a table's streams.
6221
+
6222
+ Resource-based policies let you define access permissions by specifying who has access to each resource, and the actions they are allowed to perform on each resource.
6223
+
6224
+ In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ .
6225
+
6226
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-dynamodb-table-streamspecification.html#cfn-dynamodb-table-streamspecification-resourcepolicy
6227
+ '''
6228
+ result = self._values.get("resource_policy")
6229
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnTable.ResourcePolicyProperty"]], result)
6230
+
5883
6231
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
5884
6232
  return isinstance(rhs, self.__class__) and rhs._values == self._values
5885
6233
 
@@ -5985,6 +6333,7 @@ class CfnTable(
5985
6333
  "local_secondary_indexes": "localSecondaryIndexes",
5986
6334
  "point_in_time_recovery_specification": "pointInTimeRecoverySpecification",
5987
6335
  "provisioned_throughput": "provisionedThroughput",
6336
+ "resource_policy": "resourcePolicy",
5988
6337
  "sse_specification": "sseSpecification",
5989
6338
  "stream_specification": "streamSpecification",
5990
6339
  "table_class": "tableClass",
@@ -6008,6 +6357,7 @@ class CfnTableProps:
6008
6357
  local_secondary_indexes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.LocalSecondaryIndexProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
6009
6358
  point_in_time_recovery_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.PointInTimeRecoverySpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6010
6359
  provisioned_throughput: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.ProvisionedThroughputProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6360
+ resource_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.ResourcePolicyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6011
6361
  sse_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.SSESpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6012
6362
  stream_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.StreamSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
6013
6363
  table_class: typing.Optional[builtins.str] = None,
@@ -6028,6 +6378,7 @@ class CfnTableProps:
6028
6378
  :param local_secondary_indexes: Local secondary indexes to be created on the table. You can create up to 5 local secondary indexes. Each index is scoped to a given hash key value. The size of each hash key can be up to 10 gigabytes.
6029
6379
  :param point_in_time_recovery_specification: The settings used to enable point in time recovery.
6030
6380
  :param provisioned_throughput: Throughput for the specified table, which consists of values for ``ReadCapacityUnits`` and ``WriteCapacityUnits`` . For more information about the contents of a provisioned throughput structure, see `Amazon DynamoDB Table ProvisionedThroughput <https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_ProvisionedThroughput.html>`_ . If you set ``BillingMode`` as ``PROVISIONED`` , you must specify this property. If you set ``BillingMode`` as ``PAY_PER_REQUEST`` , you cannot specify this property.
6381
+ :param resource_policy: A resource-based policy document that contains permissions to add to the specified table. In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ . When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent* . For information about the considerations that you should keep in mind while attaching a resource-based policy, see `Resource-based policy considerations <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html>`_ .
6031
6382
  :param sse_specification: Specifies the settings to enable server-side encryption.
6032
6383
  :param stream_specification: The settings for the DynamoDB table stream, which capture changes to items stored in the table.
6033
6384
  :param table_class: The table class of the new table. Valid values are ``STANDARD`` and ``STANDARD_INFREQUENT_ACCESS`` .
@@ -6044,6 +6395,8 @@ class CfnTableProps:
6044
6395
  # The values are placeholders you should change.
6045
6396
  from aws_cdk import aws_dynamodb as dynamodb
6046
6397
 
6398
+ # policy_document: Any
6399
+
6047
6400
  cfn_table_props = dynamodb.CfnTableProps(
6048
6401
  key_schema=[dynamodb.CfnTable.KeySchemaProperty(
6049
6402
  attribute_name="attributeName",
@@ -6123,6 +6476,9 @@ class CfnTableProps:
6123
6476
  read_capacity_units=123,
6124
6477
  write_capacity_units=123
6125
6478
  ),
6479
+ resource_policy=dynamodb.CfnTable.ResourcePolicyProperty(
6480
+ policy_document=policy_document
6481
+ ),
6126
6482
  sse_specification=dynamodb.CfnTable.SSESpecificationProperty(
6127
6483
  sse_enabled=False,
6128
6484
 
@@ -6131,7 +6487,12 @@ class CfnTableProps:
6131
6487
  sse_type="sseType"
6132
6488
  ),
6133
6489
  stream_specification=dynamodb.CfnTable.StreamSpecificationProperty(
6134
- stream_view_type="streamViewType"
6490
+ stream_view_type="streamViewType",
6491
+
6492
+ # the properties below are optional
6493
+ resource_policy=dynamodb.CfnTable.ResourcePolicyProperty(
6494
+ policy_document=policy_document
6495
+ )
6135
6496
  ),
6136
6497
  table_class="tableClass",
6137
6498
  table_name="tableName",
@@ -6160,6 +6521,7 @@ class CfnTableProps:
6160
6521
  check_type(argname="argument local_secondary_indexes", value=local_secondary_indexes, expected_type=type_hints["local_secondary_indexes"])
6161
6522
  check_type(argname="argument point_in_time_recovery_specification", value=point_in_time_recovery_specification, expected_type=type_hints["point_in_time_recovery_specification"])
6162
6523
  check_type(argname="argument provisioned_throughput", value=provisioned_throughput, expected_type=type_hints["provisioned_throughput"])
6524
+ check_type(argname="argument resource_policy", value=resource_policy, expected_type=type_hints["resource_policy"])
6163
6525
  check_type(argname="argument sse_specification", value=sse_specification, expected_type=type_hints["sse_specification"])
6164
6526
  check_type(argname="argument stream_specification", value=stream_specification, expected_type=type_hints["stream_specification"])
6165
6527
  check_type(argname="argument table_class", value=table_class, expected_type=type_hints["table_class"])
@@ -6189,6 +6551,8 @@ class CfnTableProps:
6189
6551
  self._values["point_in_time_recovery_specification"] = point_in_time_recovery_specification
6190
6552
  if provisioned_throughput is not None:
6191
6553
  self._values["provisioned_throughput"] = provisioned_throughput
6554
+ if resource_policy is not None:
6555
+ self._values["resource_policy"] = resource_policy
6192
6556
  if sse_specification is not None:
6193
6557
  self._values["sse_specification"] = sse_specification
6194
6558
  if stream_specification is not None:
@@ -6358,6 +6722,21 @@ class CfnTableProps:
6358
6722
  result = self._values.get("provisioned_throughput")
6359
6723
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnTable.ProvisionedThroughputProperty]], result)
6360
6724
 
6725
+ @builtins.property
6726
+ def resource_policy(
6727
+ self,
6728
+ ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, CfnTable.ResourcePolicyProperty]]:
6729
+ '''A resource-based policy document that contains permissions to add to the specified table.
6730
+
6731
+ In a CloudFormation template, you can provide the policy in JSON or YAML format because CloudFormation converts YAML to JSON before submitting it to DynamoDB . For more information about resource-based policies, see `Using resource-based policies for DynamoDB <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/access-control-resource-based.html>`_ and `Resource-based policy examples <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-examples.html>`_ .
6732
+
6733
+ When you attach a resource-based policy while creating a table, the policy creation is *strongly consistent* . For information about the considerations that you should keep in mind while attaching a resource-based policy, see `Resource-based policy considerations <https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/rbac-considerations.html>`_ .
6734
+
6735
+ :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-dynamodb-table.html#cfn-dynamodb-table-resourcepolicy
6736
+ '''
6737
+ result = self._values.get("resource_policy")
6738
+ return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, CfnTable.ResourcePolicyProperty]], result)
6739
+
6361
6740
  @builtins.property
6362
6741
  def sse_specification(
6363
6742
  self,
@@ -13821,6 +14200,8 @@ def _typecheckingstub__912e2bc047b1f65121a39316718e5632909682a5243ef8e21ead42e3e
13821
14200
  kinesis_stream_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGlobalTable.KinesisStreamSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
13822
14201
  point_in_time_recovery_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGlobalTable.PointInTimeRecoverySpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
13823
14202
  read_provisioned_throughput_settings: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGlobalTable.ReadProvisionedThroughputSettingsProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
14203
+ replica_stream_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGlobalTable.ReplicaStreamSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
14204
+ resource_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGlobalTable.ResourcePolicyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
13824
14205
  sse_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnGlobalTable.ReplicaSSESpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
13825
14206
  table_class: typing.Optional[builtins.str] = None,
13826
14207
  tags: typing.Optional[typing.Sequence[typing.Union[_CfnTag_f6864754, typing.Dict[builtins.str, typing.Any]]]] = None,
@@ -13828,6 +14209,20 @@ def _typecheckingstub__912e2bc047b1f65121a39316718e5632909682a5243ef8e21ead42e3e
13828
14209
  """Type checking stubs"""
13829
14210
  pass
13830
14211
 
14212
+ def _typecheckingstub__00848a241dcb74d0918fbddda5f7ccf1c445a7b63583f8697e2d95d334aa1bed(
14213
+ *,
14214
+ resource_policy: typing.Union[_IResolvable_da3f097b, typing.Union[CfnGlobalTable.ResourcePolicyProperty, typing.Dict[builtins.str, typing.Any]]],
14215
+ ) -> None:
14216
+ """Type checking stubs"""
14217
+ pass
14218
+
14219
+ def _typecheckingstub__6007e745281a1817381b3cb8f148da677e9fde77893fbd60db054cb3b85f34db(
14220
+ *,
14221
+ policy_document: typing.Any,
14222
+ ) -> None:
14223
+ """Type checking stubs"""
14224
+ pass
14225
+
13831
14226
  def _typecheckingstub__ea2cb67b1629904043fec37c484f260e58078624f7b496fe52fc2201d365e1c8(
13832
14227
  *,
13833
14228
  sse_enabled: typing.Union[builtins.bool, _IResolvable_da3f097b],
@@ -13900,6 +14295,7 @@ def _typecheckingstub__9c4a83992df200bfde2ccfe129994eeacab105432a2509473861feb73
13900
14295
  local_secondary_indexes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.LocalSecondaryIndexProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
13901
14296
  point_in_time_recovery_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.PointInTimeRecoverySpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
13902
14297
  provisioned_throughput: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.ProvisionedThroughputProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
14298
+ resource_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.ResourcePolicyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
13903
14299
  sse_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.SSESpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
13904
14300
  stream_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.StreamSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
13905
14301
  table_class: typing.Optional[builtins.str] = None,
@@ -13988,6 +14384,12 @@ def _typecheckingstub__6fa8ca064a9e23781245ca2f3d32d36a2324726abba76565a2e12ac5e
13988
14384
  """Type checking stubs"""
13989
14385
  pass
13990
14386
 
14387
+ def _typecheckingstub__4166d9b0a925b24598927de15ecb1935d22d14f9a49469ba893db8d18421bf02(
14388
+ value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnTable.ResourcePolicyProperty]],
14389
+ ) -> None:
14390
+ """Type checking stubs"""
14391
+ pass
14392
+
13991
14393
  def _typecheckingstub__bc5e50032964d91e0cf5ec36aba75b6ae325bfe6129ad9f55764353e645b28c6(
13992
14394
  value: typing.Optional[typing.Union[_IResolvable_da3f097b, CfnTable.SSESpecificationProperty]],
13993
14395
  ) -> None:
@@ -14123,6 +14525,13 @@ def _typecheckingstub__2c605785147b4a82f1aad9bc135fb470b73358c151d323493ae3f1cde
14123
14525
  """Type checking stubs"""
14124
14526
  pass
14125
14527
 
14528
+ def _typecheckingstub__64c1cb1f4d183fca5b703f524bc57bfa5f9515fd97acd86171b92226b4e11ca3(
14529
+ *,
14530
+ policy_document: typing.Any,
14531
+ ) -> None:
14532
+ """Type checking stubs"""
14533
+ pass
14534
+
14126
14535
  def _typecheckingstub__f675acfe91cced819ac46665a50bf155c45e71e78313e471666e0e9d708883e2(
14127
14536
  *,
14128
14537
  s3_bucket: builtins.str,
@@ -14144,6 +14553,7 @@ def _typecheckingstub__23b0abf52d7df3f9a3b741c39275e55783b349db0f08ac16d13c3d832
14144
14553
  def _typecheckingstub__3099d6d2aee077548b7bec617449da8355169637f0983749d3191a63e00a1c72(
14145
14554
  *,
14146
14555
  stream_view_type: builtins.str,
14556
+ resource_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.ResourcePolicyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
14147
14557
  ) -> None:
14148
14558
  """Type checking stubs"""
14149
14559
  pass
@@ -14169,6 +14579,7 @@ def _typecheckingstub__0b7f8e29621d526383ce725f2daafbe00b52cfe2381995edac86b72a6
14169
14579
  local_secondary_indexes: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.LocalSecondaryIndexProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
14170
14580
  point_in_time_recovery_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.PointInTimeRecoverySpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
14171
14581
  provisioned_throughput: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.ProvisionedThroughputProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
14582
+ resource_policy: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.ResourcePolicyProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
14172
14583
  sse_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.SSESpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
14173
14584
  stream_specification: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Union[CfnTable.StreamSpecificationProperty, typing.Dict[builtins.str, typing.Any]]]] = None,
14174
14585
  table_class: typing.Optional[builtins.str] = None,