aws-cdk-lib 2.184.1__py3-none-any.whl → 2.186.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 (75) hide show
  1. aws_cdk/__init__.py +102 -29
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.184.1.jsii.tgz → aws-cdk-lib@2.186.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_amazonmq/__init__.py +3 -2
  5. aws_cdk/aws_apigateway/__init__.py +1 -1
  6. aws_cdk/aws_apigatewayv2/__init__.py +9 -0
  7. aws_cdk/aws_appconfig/__init__.py +3 -3
  8. aws_cdk/aws_applicationsignals/__init__.py +495 -1
  9. aws_cdk/aws_appsync/__init__.py +65 -11
  10. aws_cdk/aws_athena/__init__.py +143 -0
  11. aws_cdk/aws_backup/__init__.py +4 -2
  12. aws_cdk/aws_batch/__init__.py +9 -0
  13. aws_cdk/aws_bedrock/__init__.py +645 -199
  14. aws_cdk/aws_cassandra/__init__.py +3 -5
  15. aws_cdk/aws_chatbot/__init__.py +41 -0
  16. aws_cdk/aws_cleanrooms/__init__.py +21 -9
  17. aws_cdk/aws_cloudformation/__init__.py +1 -5
  18. aws_cdk/aws_cloudfront/__init__.py +4 -1
  19. aws_cdk/aws_cloudfront_origins/__init__.py +4 -2
  20. aws_cdk/aws_codeartifact/__init__.py +20 -33
  21. aws_cdk/aws_codebuild/__init__.py +10 -3
  22. aws_cdk/aws_codepipeline/__init__.py +1328 -120
  23. aws_cdk/aws_cognito/__init__.py +1 -1
  24. aws_cdk/aws_cognito_identitypool/__init__.py +2303 -0
  25. aws_cdk/aws_config/__init__.py +1 -1
  26. aws_cdk/aws_connect/__init__.py +3 -7
  27. aws_cdk/aws_controltower/__init__.py +18 -26
  28. aws_cdk/aws_datasync/__init__.py +12 -14
  29. aws_cdk/aws_datazone/__init__.py +3471 -2
  30. aws_cdk/aws_ec2/__init__.py +701 -37
  31. aws_cdk/aws_ecr/__init__.py +84 -2
  32. aws_cdk/aws_ecs/__init__.py +20 -25
  33. aws_cdk/aws_eks/__init__.py +2 -0
  34. aws_cdk/aws_elasticloadbalancingv2/__init__.py +42 -5
  35. aws_cdk/aws_elasticsearch/__init__.py +1 -1
  36. aws_cdk/aws_events/__init__.py +37 -14
  37. aws_cdk/aws_events_targets/__init__.py +5 -5
  38. aws_cdk/aws_gamelift/__init__.py +165 -165
  39. aws_cdk/aws_gameliftstreams/__init__.py +199 -59
  40. aws_cdk/aws_iam/__init__.py +320 -25
  41. aws_cdk/aws_imagebuilder/__init__.py +15 -2
  42. aws_cdk/aws_iotfleetwise/__init__.py +15 -6
  43. aws_cdk/aws_kinesisfirehose/__init__.py +115 -113
  44. aws_cdk/aws_lambda/__init__.py +7 -1
  45. aws_cdk/aws_location/__init__.py +24 -7
  46. aws_cdk/aws_logs/__init__.py +21 -27
  47. aws_cdk/aws_msk/__init__.py +17 -50
  48. aws_cdk/aws_networkfirewall/__init__.py +16 -12
  49. aws_cdk/aws_oam/__init__.py +8 -37
  50. aws_cdk/aws_opensearchservice/__init__.py +1 -1
  51. aws_cdk/aws_pcs/__init__.py +33 -22
  52. aws_cdk/aws_quicksight/__init__.py +6 -69
  53. aws_cdk/aws_rds/__init__.py +8 -4
  54. aws_cdk/aws_redshiftserverless/__init__.py +192 -15
  55. aws_cdk/aws_rum/__init__.py +454 -43
  56. aws_cdk/aws_s3/__init__.py +4 -6
  57. aws_cdk/aws_s3_deployment/__init__.py +2 -0
  58. aws_cdk/aws_sagemaker/__init__.py +524 -0
  59. aws_cdk/aws_scheduler/__init__.py +3944 -121
  60. aws_cdk/aws_scheduler_targets/__init__.py +4472 -0
  61. aws_cdk/aws_ses/__init__.py +9 -9
  62. aws_cdk/aws_sns/__init__.py +12 -12
  63. aws_cdk/aws_ssmquicksetup/__init__.py +5 -3
  64. aws_cdk/aws_stepfunctions/__init__.py +17 -15
  65. aws_cdk/aws_timestream/__init__.py +4 -4
  66. aws_cdk/aws_wafv2/__init__.py +345 -0
  67. aws_cdk/aws_workspacesthinclient/__init__.py +4 -4
  68. aws_cdk/cx_api/__init__.py +53 -0
  69. aws_cdk/region_info/__init__.py +2 -2
  70. {aws_cdk_lib-2.184.1.dist-info → aws_cdk_lib-2.186.0.dist-info}/METADATA +1 -1
  71. {aws_cdk_lib-2.184.1.dist-info → aws_cdk_lib-2.186.0.dist-info}/RECORD +75 -73
  72. {aws_cdk_lib-2.184.1.dist-info → aws_cdk_lib-2.186.0.dist-info}/LICENSE +0 -0
  73. {aws_cdk_lib-2.184.1.dist-info → aws_cdk_lib-2.186.0.dist-info}/NOTICE +0 -0
  74. {aws_cdk_lib-2.184.1.dist-info → aws_cdk_lib-2.186.0.dist-info}/WHEEL +0 -0
  75. {aws_cdk_lib-2.184.1.dist-info → aws_cdk_lib-2.186.0.dist-info}/top_level.txt +0 -0
@@ -1342,7 +1342,8 @@ class CfnAccessKey(
1342
1342
  @builtins.property
1343
1343
  @jsii.member(jsii_name="attrId")
1344
1344
  def attr_id(self) -> builtins.str:
1345
- '''
1345
+ '''The ID for this access key.
1346
+
1346
1347
  :cloudformationAttribute: Id
1347
1348
  '''
1348
1349
  return typing.cast(builtins.str, jsii.get(self, "attrId"))
@@ -2492,7 +2493,8 @@ class CfnManagedPolicy(
2492
2493
  @builtins.property
2493
2494
  @jsii.member(jsii_name="attrAttachmentCount")
2494
2495
  def attr_attachment_count(self) -> jsii.Number:
2495
- '''
2496
+ '''The number of principal entities (users, groups, and roles) that the policy is attached to.
2497
+
2496
2498
  :cloudformationAttribute: AttachmentCount
2497
2499
  '''
2498
2500
  return typing.cast(jsii.Number, jsii.get(self, "attrAttachmentCount"))
@@ -2500,7 +2502,8 @@ class CfnManagedPolicy(
2500
2502
  @builtins.property
2501
2503
  @jsii.member(jsii_name="attrCreateDate")
2502
2504
  def attr_create_date(self) -> builtins.str:
2503
- '''
2505
+ '''The date and time, in `ISO 8601 date-time format <https://docs.aws.amazon.com/http://www.iso.org/iso/iso8601>`_ , when the policy was created.
2506
+
2504
2507
  :cloudformationAttribute: CreateDate
2505
2508
  '''
2506
2509
  return typing.cast(builtins.str, jsii.get(self, "attrCreateDate"))
@@ -2508,7 +2511,10 @@ class CfnManagedPolicy(
2508
2511
  @builtins.property
2509
2512
  @jsii.member(jsii_name="attrDefaultVersionId")
2510
2513
  def attr_default_version_id(self) -> builtins.str:
2511
- '''
2514
+ '''The identifier for the version of the policy that is set as the default (operative) version.
2515
+
2516
+ For more information about policy versions, see `Versioning for managed policies <https://docs.aws.amazon.com/IAM/latest/UserGuide/policies-managed-versions.html>`_ in the *IAM User Guide* .
2517
+
2512
2518
  :cloudformationAttribute: DefaultVersionId
2513
2519
  '''
2514
2520
  return typing.cast(builtins.str, jsii.get(self, "attrDefaultVersionId"))
@@ -2516,7 +2522,8 @@ class CfnManagedPolicy(
2516
2522
  @builtins.property
2517
2523
  @jsii.member(jsii_name="attrIsAttachable")
2518
2524
  def attr_is_attachable(self) -> _IResolvable_da3f097b:
2519
- '''
2525
+ '''Specifies whether the policy can be attached to an IAM user, group, or role.
2526
+
2520
2527
  :cloudformationAttribute: IsAttachable
2521
2528
  '''
2522
2529
  return typing.cast(_IResolvable_da3f097b, jsii.get(self, "attrIsAttachable"))
@@ -2524,7 +2531,10 @@ class CfnManagedPolicy(
2524
2531
  @builtins.property
2525
2532
  @jsii.member(jsii_name="attrPermissionsBoundaryUsageCount")
2526
2533
  def attr_permissions_boundary_usage_count(self) -> jsii.Number:
2527
- '''
2534
+ '''The number of entities (users and roles) for which the policy is used as the permissions boundary.
2535
+
2536
+ For more information about permissions boundaries, see `Permissions boundaries for IAM identities <https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_boundaries.html>`_ in the *IAM User Guide* .
2537
+
2528
2538
  :cloudformationAttribute: PermissionsBoundaryUsageCount
2529
2539
  '''
2530
2540
  return typing.cast(jsii.Number, jsii.get(self, "attrPermissionsBoundaryUsageCount"))
@@ -2532,7 +2542,10 @@ class CfnManagedPolicy(
2532
2542
  @builtins.property
2533
2543
  @jsii.member(jsii_name="attrPolicyArn")
2534
2544
  def attr_policy_arn(self) -> builtins.str:
2535
- '''
2545
+ '''The Amazon Resource Name (ARN) of the managed policy that you want information about.
2546
+
2547
+ For more information about ARNs, see `Amazon Resource Names (ARNs) <https://docs.aws.amazon.com/general/latest/gr/aws-arns-and-namespaces.html>`_ in the *AWS General Reference* .
2548
+
2536
2549
  :cloudformationAttribute: PolicyArn
2537
2550
  '''
2538
2551
  return typing.cast(builtins.str, jsii.get(self, "attrPolicyArn"))
@@ -2540,7 +2553,10 @@ class CfnManagedPolicy(
2540
2553
  @builtins.property
2541
2554
  @jsii.member(jsii_name="attrPolicyId")
2542
2555
  def attr_policy_id(self) -> builtins.str:
2543
- '''
2556
+ '''The stable and unique string identifying the policy.
2557
+
2558
+ For more information about IDs, see `IAM identifiers <https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html>`_ in the *IAM User Guide* .
2559
+
2544
2560
  :cloudformationAttribute: PolicyId
2545
2561
  '''
2546
2562
  return typing.cast(builtins.str, jsii.get(self, "attrPolicyId"))
@@ -2548,7 +2564,10 @@ class CfnManagedPolicy(
2548
2564
  @builtins.property
2549
2565
  @jsii.member(jsii_name="attrUpdateDate")
2550
2566
  def attr_update_date(self) -> builtins.str:
2551
- '''
2567
+ '''The date and time, in `ISO 8601 date-time format <https://docs.aws.amazon.com/http://www.iso.org/iso/iso8601>`_ , when the policy was last updated.
2568
+
2569
+ When a policy has only one version, this field contains the date and time when the policy was created. When a policy has more than one version, this field contains the date and time when the most recent policy version was created.
2570
+
2552
2571
  :cloudformationAttribute: UpdateDate
2553
2572
  '''
2554
2573
  return typing.cast(builtins.str, jsii.get(self, "attrUpdateDate"))
@@ -3274,7 +3293,10 @@ class CfnPolicy(
3274
3293
  @builtins.property
3275
3294
  @jsii.member(jsii_name="attrId")
3276
3295
  def attr_id(self) -> builtins.str:
3277
- '''
3296
+ '''The stable and unique string identifying the policy.
3297
+
3298
+ For more information about IDs, see `IAM identifiers <https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html>`_ in the *IAM User Guide* .
3299
+
3278
3300
  :cloudformationAttribute: Id
3279
3301
  '''
3280
3302
  return typing.cast(builtins.str, jsii.get(self, "attrId"))
@@ -4405,10 +4427,10 @@ class CfnSAMLProvider(
4405
4427
  '''
4406
4428
  :param scope: Scope in which this resource is defined.
4407
4429
  :param id: Construct identifier for this resource (unique in its scope).
4408
- :param add_private_key: The private key from your external identity provider.
4409
- :param assertion_encryption_mode: The encryption setting for the SAML provider.
4430
+ :param add_private_key: Specifies the new private key from your external identity provider. The private key must be a .pem file that uses AES-GCM or AES-CBC encryption algorithm to decrypt SAML assertions.
4431
+ :param assertion_encryption_mode: Specifies the encryption setting for the SAML provider.
4410
4432
  :param name: The name of the provider to create. This parameter allows (through its `regex pattern <https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex>`_ ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
4411
- :param private_key_list:
4433
+ :param private_key_list: The private key metadata for the SAML provider.
4412
4434
  :param remove_private_key: The Key ID of the private key to remove.
4413
4435
  :param saml_metadata_document: An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP. For more information, see `About SAML 2.0-based federation <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html>`_ in the *IAM User Guide*
4414
4436
  :param tags: A list of tags that you want to attach to the new IAM SAML provider. Each tag consists of a key name and an associated value. For more information about tagging, see `Tagging IAM resources <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html>`_ in the *IAM User Guide* . .. epigraph:: If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
@@ -4491,7 +4513,7 @@ class CfnSAMLProvider(
4491
4513
  @builtins.property
4492
4514
  @jsii.member(jsii_name="addPrivateKey")
4493
4515
  def add_private_key(self) -> typing.Optional[builtins.str]:
4494
- '''The private key from your external identity provider.'''
4516
+ '''Specifies the new private key from your external identity provider.'''
4495
4517
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "addPrivateKey"))
4496
4518
 
4497
4519
  @add_private_key.setter
@@ -4504,7 +4526,7 @@ class CfnSAMLProvider(
4504
4526
  @builtins.property
4505
4527
  @jsii.member(jsii_name="assertionEncryptionMode")
4506
4528
  def assertion_encryption_mode(self) -> typing.Optional[builtins.str]:
4507
- '''The encryption setting for the SAML provider.'''
4529
+ '''Specifies the encryption setting for the SAML provider.'''
4508
4530
  return typing.cast(typing.Optional[builtins.str], jsii.get(self, "assertionEncryptionMode"))
4509
4531
 
4510
4532
  @assertion_encryption_mode.setter
@@ -4532,6 +4554,7 @@ class CfnSAMLProvider(
4532
4554
  def private_key_list(
4533
4555
  self,
4534
4556
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnSAMLProvider.SAMLPrivateKeyProperty"]]]]:
4557
+ '''The private key metadata for the SAML provider.'''
4535
4558
  return typing.cast(typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, "CfnSAMLProvider.SAMLPrivateKeyProperty"]]]], jsii.get(self, "privateKeyList"))
4536
4559
 
4537
4560
  @private_key_list.setter
@@ -4590,10 +4613,12 @@ class CfnSAMLProvider(
4590
4613
  )
4591
4614
  class SAMLPrivateKeyProperty:
4592
4615
  def __init__(self, *, key_id: builtins.str, timestamp: builtins.str) -> None:
4593
- '''The private key metadata for the SAML provider.
4616
+ '''Contains the private keys for the SAML provider.
4617
+
4618
+ This data type is used as a response element in the `GetSAMLProvider <https://docs.aws.amazon.com/IAM/latest/APIReference/API_GetSAMLProvider.html>`_ operation.
4594
4619
 
4595
4620
  :param key_id: The unique identifier for the SAML private key.
4596
- :param timestamp: The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format, when the private key was uploaded.
4621
+ :param timestamp: The date and time, in `ISO 8601 date-time <https://docs.aws.amazon.com/http://www.iso.org/iso/iso8601>`_ format, when the private key was uploaded.
4597
4622
 
4598
4623
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-samlprovider-samlprivatekey.html
4599
4624
  :exampleMetadata: fixture=_generated
@@ -4630,7 +4655,7 @@ class CfnSAMLProvider(
4630
4655
 
4631
4656
  @builtins.property
4632
4657
  def timestamp(self) -> builtins.str:
4633
- '''The date and time, in <a href="http://www.iso.org/iso/iso8601">ISO 8601 date-time format, when the private key was uploaded.
4658
+ '''The date and time, in `ISO 8601 date-time <https://docs.aws.amazon.com/http://www.iso.org/iso/iso8601>`_ format, when the private key was uploaded.
4634
4659
 
4635
4660
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-samlprovider-samlprivatekey.html#cfn-iam-samlprovider-samlprivatekey-timestamp
4636
4661
  '''
@@ -4677,10 +4702,10 @@ class CfnSAMLProviderProps:
4677
4702
  ) -> None:
4678
4703
  '''Properties for defining a ``CfnSAMLProvider``.
4679
4704
 
4680
- :param add_private_key: The private key from your external identity provider.
4681
- :param assertion_encryption_mode: The encryption setting for the SAML provider.
4705
+ :param add_private_key: Specifies the new private key from your external identity provider. The private key must be a .pem file that uses AES-GCM or AES-CBC encryption algorithm to decrypt SAML assertions.
4706
+ :param assertion_encryption_mode: Specifies the encryption setting for the SAML provider.
4682
4707
  :param name: The name of the provider to create. This parameter allows (through its `regex pattern <https://docs.aws.amazon.com/http://wikipedia.org/wiki/regex>`_ ) a string of characters consisting of upper and lowercase alphanumeric characters with no spaces. You can also include any of the following characters: _+=,.@-
4683
- :param private_key_list:
4708
+ :param private_key_list: The private key metadata for the SAML provider.
4684
4709
  :param remove_private_key: The Key ID of the private key to remove.
4685
4710
  :param saml_metadata_document: An XML document generated by an identity provider (IdP) that supports SAML 2.0. The document includes the issuer's name, expiration information, and keys that can be used to validate the SAML authentication response (assertions) that are received from the IdP. You must generate the metadata document using the identity management software that is used as your organization's IdP. For more information, see `About SAML 2.0-based federation <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_providers_saml.html>`_ in the *IAM User Guide*
4686
4711
  :param tags: A list of tags that you want to attach to the new IAM SAML provider. Each tag consists of a key name and an associated value. For more information about tagging, see `Tagging IAM resources <https://docs.aws.amazon.com/IAM/latest/UserGuide/id_tags.html>`_ in the *IAM User Guide* . .. epigraph:: If any one of the tags is invalid or if you exceed the allowed maximum number of tags, then the entire request fails and the resource is not created.
@@ -4737,7 +4762,9 @@ class CfnSAMLProviderProps:
4737
4762
 
4738
4763
  @builtins.property
4739
4764
  def add_private_key(self) -> typing.Optional[builtins.str]:
4740
- '''The private key from your external identity provider.
4765
+ '''Specifies the new private key from your external identity provider.
4766
+
4767
+ The private key must be a .pem file that uses AES-GCM or AES-CBC encryption algorithm to decrypt SAML assertions.
4741
4768
 
4742
4769
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-addprivatekey
4743
4770
  '''
@@ -4746,7 +4773,7 @@ class CfnSAMLProviderProps:
4746
4773
 
4747
4774
  @builtins.property
4748
4775
  def assertion_encryption_mode(self) -> typing.Optional[builtins.str]:
4749
- '''The encryption setting for the SAML provider.
4776
+ '''Specifies the encryption setting for the SAML provider.
4750
4777
 
4751
4778
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-assertionencryptionmode
4752
4779
  '''
@@ -4768,7 +4795,8 @@ class CfnSAMLProviderProps:
4768
4795
  def private_key_list(
4769
4796
  self,
4770
4797
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, typing.List[typing.Union[_IResolvable_da3f097b, CfnSAMLProvider.SAMLPrivateKeyProperty]]]]:
4771
- '''
4798
+ '''The private key metadata for the SAML provider.
4799
+
4772
4800
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html#cfn-iam-samlprovider-privatekeylist
4773
4801
  '''
4774
4802
  result = self._values.get("private_key_list")
@@ -6388,7 +6416,10 @@ class CfnUserToGroupAddition(
6388
6416
  @builtins.property
6389
6417
  @jsii.member(jsii_name="attrId")
6390
6418
  def attr_id(self) -> builtins.str:
6391
- '''
6419
+ '''The stable and unique string identifying the group.
6420
+
6421
+ For more information about IDs, see `IAM identifiers <https://docs.aws.amazon.com/IAM/latest/UserGuide/Using_Identifiers.html>`_ in the *IAM User Guide* .
6422
+
6392
6423
  :cloudformationAttribute: Id
6393
6424
  '''
6394
6425
  return typing.cast(builtins.str, jsii.get(self, "attrId"))
@@ -7347,6 +7378,87 @@ class Grant(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_iam.Grant"):
7347
7378
  detach_grant = volume.grant_detach_volume_by_resource_tag(instance.grant_principal, [instance])
7348
7379
  '''
7349
7380
 
7381
+ @jsii.member(jsii_name="addStatementToResourcePolicy")
7382
+ @builtins.classmethod
7383
+ def add_statement_to_resource_policy(
7384
+ cls,
7385
+ *,
7386
+ statement: "PolicyStatement",
7387
+ resource: "IResourceWithPolicy",
7388
+ resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
7389
+ actions: typing.Sequence[builtins.str],
7390
+ grantee: "IGrantable",
7391
+ resource_arns: typing.Sequence[builtins.str],
7392
+ conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
7393
+ ) -> "Grant":
7394
+ '''Add a pre-constructed policy statement to the resource's policy.
7395
+
7396
+ This method provides direct, low-level control over the initial policy statement being added.
7397
+ It is useful when you need to:
7398
+
7399
+ - Add complex policy statements that can't be expressed through other grant methods
7400
+ - Specify the initial structure of the policy statement
7401
+ - Add statements with custom conditions or other advanced IAM features
7402
+
7403
+ Important differences from other grant methods:
7404
+
7405
+ - Only modifies the resource policy, never modifies any principal's policy
7406
+ - Takes a complete PolicyStatement rather than constructing one from parameters
7407
+ - Always attempts to add the statement, regardless of principal type or account
7408
+ - Does not attempt any automatic principal/resource policy selection logic
7409
+
7410
+ Note: The final form of the policy statement in the resource's policy may differ
7411
+ from the provided statement, depending on the resource's implementation of
7412
+ addToResourcePolicy.
7413
+
7414
+ :param statement: The policy statement to add to the resource's policy. This statement will be passed to the resource's addToResourcePolicy method. The actual handling of the statement depends on the specific IResourceWithPolicy implementation.
7415
+ :param resource: The resource with a resource policy. The statement will be added to the resource policy if it couldn't be added to the principal policy.
7416
+ :param resource_self_arns: When referring to the resource in a resource policy, use this as ARN. (Depending on the resource type, this needs to be '*' in a resource policy). Default: Same as regular resource ARNs
7417
+ :param actions: The actions to grant.
7418
+ :param grantee: The principal to grant to. Default: if principal is undefined, no work is done.
7419
+ :param resource_arns: The resource ARNs to grant to.
7420
+ :param conditions: Any conditions to attach to the grant. Default: - No conditions
7421
+
7422
+ :return: A Grant object representing the result of the operation
7423
+
7424
+ Example::
7425
+
7426
+ # grantee: iam.IGrantable
7427
+ # actions: List[str]
7428
+ # resource_arns: List[str]
7429
+ # bucket: s3.Bucket
7430
+
7431
+
7432
+ statement = iam.PolicyStatement(
7433
+ effect=iam.Effect.ALLOW,
7434
+ actions=actions,
7435
+ principals=[iam.ServicePrincipal("lambda.amazonaws.com")],
7436
+ conditions={
7437
+ "StringEquals": {
7438
+ "aws:SourceAccount": Stack.of(self).account
7439
+ }
7440
+ }
7441
+ )
7442
+ iam.Grant.add_statement_to_resource_policy(
7443
+ grantee=grantee,
7444
+ actions=actions,
7445
+ resource_arns=resource_arns,
7446
+ resource=bucket,
7447
+ statement=statement
7448
+ )
7449
+ '''
7450
+ options = GrantPolicyWithResourceOptions(
7451
+ statement=statement,
7452
+ resource=resource,
7453
+ resource_self_arns=resource_self_arns,
7454
+ actions=actions,
7455
+ grantee=grantee,
7456
+ resource_arns=resource_arns,
7457
+ conditions=conditions,
7458
+ )
7459
+
7460
+ return typing.cast("Grant", jsii.sinvoke(cls, "addStatementToResourcePolicy", [options]))
7461
+
7350
7462
  @jsii.member(jsii_name="addToPrincipal")
7351
7463
  @builtins.classmethod
7352
7464
  def add_to_principal(
@@ -12012,6 +12124,175 @@ class AccessKey(
12012
12124
  return typing.cast(_SecretValue_3dd0ddae, jsii.get(self, "secretAccessKey"))
12013
12125
 
12014
12126
 
12127
+ @jsii.data_type(
12128
+ jsii_type="aws-cdk-lib.aws_iam.GrantPolicyWithResourceOptions",
12129
+ jsii_struct_bases=[GrantWithResourceOptions],
12130
+ name_mapping={
12131
+ "actions": "actions",
12132
+ "grantee": "grantee",
12133
+ "resource_arns": "resourceArns",
12134
+ "conditions": "conditions",
12135
+ "resource": "resource",
12136
+ "resource_self_arns": "resourceSelfArns",
12137
+ "statement": "statement",
12138
+ },
12139
+ )
12140
+ class GrantPolicyWithResourceOptions(GrantWithResourceOptions):
12141
+ def __init__(
12142
+ self,
12143
+ *,
12144
+ actions: typing.Sequence[builtins.str],
12145
+ grantee: IGrantable,
12146
+ resource_arns: typing.Sequence[builtins.str],
12147
+ conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
12148
+ resource: IResourceWithPolicy,
12149
+ resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
12150
+ statement: PolicyStatement,
12151
+ ) -> None:
12152
+ '''Options for a grant operation that directly adds a policy statement to a resource.
12153
+
12154
+ This differs from GrantWithResourceOptions in that it requires a pre-constructed
12155
+ PolicyStatement rather than constructing one from individual permissions.
12156
+ Use this when you need fine-grained control over the initial policy statement's contents.
12157
+
12158
+ :param actions: The actions to grant.
12159
+ :param grantee: The principal to grant to. Default: if principal is undefined, no work is done.
12160
+ :param resource_arns: The resource ARNs to grant to.
12161
+ :param conditions: Any conditions to attach to the grant. Default: - No conditions
12162
+ :param resource: The resource with a resource policy. The statement will be added to the resource policy if it couldn't be added to the principal policy.
12163
+ :param resource_self_arns: When referring to the resource in a resource policy, use this as ARN. (Depending on the resource type, this needs to be '*' in a resource policy). Default: Same as regular resource ARNs
12164
+ :param statement: The policy statement to add to the resource's policy. This statement will be passed to the resource's addToResourcePolicy method. The actual handling of the statement depends on the specific IResourceWithPolicy implementation.
12165
+
12166
+ :exampleMetadata: infused
12167
+
12168
+ Example::
12169
+
12170
+ # grantee: iam.IGrantable
12171
+ # actions: List[str]
12172
+ # resource_arns: List[str]
12173
+ # bucket: s3.Bucket
12174
+
12175
+
12176
+ statement = iam.PolicyStatement(
12177
+ effect=iam.Effect.ALLOW,
12178
+ actions=actions,
12179
+ principals=[iam.ServicePrincipal("lambda.amazonaws.com")],
12180
+ conditions={
12181
+ "StringEquals": {
12182
+ "aws:SourceAccount": Stack.of(self).account
12183
+ }
12184
+ }
12185
+ )
12186
+ iam.Grant.add_statement_to_resource_policy(
12187
+ grantee=grantee,
12188
+ actions=actions,
12189
+ resource_arns=resource_arns,
12190
+ resource=bucket,
12191
+ statement=statement
12192
+ )
12193
+ '''
12194
+ if __debug__:
12195
+ type_hints = typing.get_type_hints(_typecheckingstub__0475ec23892b6dacf8e0426b204cca68a4091056bb08c20a72dbc06d2aedcf5e)
12196
+ check_type(argname="argument actions", value=actions, expected_type=type_hints["actions"])
12197
+ check_type(argname="argument grantee", value=grantee, expected_type=type_hints["grantee"])
12198
+ check_type(argname="argument resource_arns", value=resource_arns, expected_type=type_hints["resource_arns"])
12199
+ check_type(argname="argument conditions", value=conditions, expected_type=type_hints["conditions"])
12200
+ check_type(argname="argument resource", value=resource, expected_type=type_hints["resource"])
12201
+ check_type(argname="argument resource_self_arns", value=resource_self_arns, expected_type=type_hints["resource_self_arns"])
12202
+ check_type(argname="argument statement", value=statement, expected_type=type_hints["statement"])
12203
+ self._values: typing.Dict[builtins.str, typing.Any] = {
12204
+ "actions": actions,
12205
+ "grantee": grantee,
12206
+ "resource_arns": resource_arns,
12207
+ "resource": resource,
12208
+ "statement": statement,
12209
+ }
12210
+ if conditions is not None:
12211
+ self._values["conditions"] = conditions
12212
+ if resource_self_arns is not None:
12213
+ self._values["resource_self_arns"] = resource_self_arns
12214
+
12215
+ @builtins.property
12216
+ def actions(self) -> typing.List[builtins.str]:
12217
+ '''The actions to grant.'''
12218
+ result = self._values.get("actions")
12219
+ assert result is not None, "Required property 'actions' is missing"
12220
+ return typing.cast(typing.List[builtins.str], result)
12221
+
12222
+ @builtins.property
12223
+ def grantee(self) -> IGrantable:
12224
+ '''The principal to grant to.
12225
+
12226
+ :default: if principal is undefined, no work is done.
12227
+ '''
12228
+ result = self._values.get("grantee")
12229
+ assert result is not None, "Required property 'grantee' is missing"
12230
+ return typing.cast(IGrantable, result)
12231
+
12232
+ @builtins.property
12233
+ def resource_arns(self) -> typing.List[builtins.str]:
12234
+ '''The resource ARNs to grant to.'''
12235
+ result = self._values.get("resource_arns")
12236
+ assert result is not None, "Required property 'resource_arns' is missing"
12237
+ return typing.cast(typing.List[builtins.str], result)
12238
+
12239
+ @builtins.property
12240
+ def conditions(
12241
+ self,
12242
+ ) -> typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]]:
12243
+ '''Any conditions to attach to the grant.
12244
+
12245
+ :default: - No conditions
12246
+ '''
12247
+ result = self._values.get("conditions")
12248
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]], result)
12249
+
12250
+ @builtins.property
12251
+ def resource(self) -> IResourceWithPolicy:
12252
+ '''The resource with a resource policy.
12253
+
12254
+ The statement will be added to the resource policy if it couldn't be
12255
+ added to the principal policy.
12256
+ '''
12257
+ result = self._values.get("resource")
12258
+ assert result is not None, "Required property 'resource' is missing"
12259
+ return typing.cast(IResourceWithPolicy, result)
12260
+
12261
+ @builtins.property
12262
+ def resource_self_arns(self) -> typing.Optional[typing.List[builtins.str]]:
12263
+ '''When referring to the resource in a resource policy, use this as ARN.
12264
+
12265
+ (Depending on the resource type, this needs to be '*' in a resource policy).
12266
+
12267
+ :default: Same as regular resource ARNs
12268
+ '''
12269
+ result = self._values.get("resource_self_arns")
12270
+ return typing.cast(typing.Optional[typing.List[builtins.str]], result)
12271
+
12272
+ @builtins.property
12273
+ def statement(self) -> PolicyStatement:
12274
+ '''The policy statement to add to the resource's policy.
12275
+
12276
+ This statement will be passed to the resource's addToResourcePolicy method.
12277
+ The actual handling of the statement depends on the specific IResourceWithPolicy
12278
+ implementation.
12279
+ '''
12280
+ result = self._values.get("statement")
12281
+ assert result is not None, "Required property 'statement' is missing"
12282
+ return typing.cast(PolicyStatement, result)
12283
+
12284
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
12285
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
12286
+
12287
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
12288
+ return not (rhs == self)
12289
+
12290
+ def __repr__(self) -> str:
12291
+ return "GrantPolicyWithResourceOptions(%s)" % ", ".join(
12292
+ k + "=" + repr(v) for k, v in self._values.items()
12293
+ )
12294
+
12295
+
12015
12296
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IAssumeRolePrincipal")
12016
12297
  class IAssumeRolePrincipal(IPrincipal, typing_extensions.Protocol):
12017
12298
  '''A type of principal that has more control over its own representation in AssumeRolePolicyDocuments.
@@ -15075,6 +15356,7 @@ __all__ = [
15075
15356
  "Grant",
15076
15357
  "GrantOnPrincipalAndResourceOptions",
15077
15358
  "GrantOnPrincipalOptions",
15359
+ "GrantPolicyWithResourceOptions",
15078
15360
  "GrantWithResourceOptions",
15079
15361
  "Group",
15080
15362
  "GroupProps",
@@ -16855,6 +17137,19 @@ def _typecheckingstub__604f514db426465dbc092293e7b2e46f5358ddb17770a96f51ef7e6a5
16855
17137
  """Type checking stubs"""
16856
17138
  pass
16857
17139
 
17140
+ def _typecheckingstub__0475ec23892b6dacf8e0426b204cca68a4091056bb08c20a72dbc06d2aedcf5e(
17141
+ *,
17142
+ actions: typing.Sequence[builtins.str],
17143
+ grantee: IGrantable,
17144
+ resource_arns: typing.Sequence[builtins.str],
17145
+ conditions: typing.Optional[typing.Mapping[builtins.str, typing.Mapping[builtins.str, typing.Any]]] = None,
17146
+ resource: IResourceWithPolicy,
17147
+ resource_self_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
17148
+ statement: PolicyStatement,
17149
+ ) -> None:
17150
+ """Type checking stubs"""
17151
+ pass
17152
+
16858
17153
  def _typecheckingstub__2773dd1c98b9bb45b356173892f3248a430e55c5ab0a22cb6e5df0bcdaa898a5(
16859
17154
  document: PolicyDocument,
16860
17155
  ) -> None:
@@ -63,6 +63,7 @@ from .. import (
63
63
  IInspectable as _IInspectable_c2943556,
64
64
  IResolvable as _IResolvable_da3f097b,
65
65
  ITaggable as _ITaggable_36806126,
66
+ ITaggableV2 as _ITaggableV2_4e6798f8,
66
67
  TagManager as _TagManager_0a598cb3,
67
68
  TreeInspector as _TreeInspector_488e0dd5,
68
69
  )
@@ -7626,7 +7627,7 @@ class CfnInfrastructureConfigurationProps:
7626
7627
  )
7627
7628
 
7628
7629
 
7629
- @jsii.implements(_IInspectable_c2943556)
7630
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
7630
7631
  class CfnLifecyclePolicy(
7631
7632
  _CfnResource_9df397a6,
7632
7633
  metaclass=jsii.JSIIMeta,
@@ -7788,6 +7789,12 @@ class CfnLifecyclePolicy(
7788
7789
  '''
7789
7790
  return typing.cast(builtins.str, jsii.get(self, "attrArn"))
7790
7791
 
7792
+ @builtins.property
7793
+ @jsii.member(jsii_name="cdkTagManager")
7794
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
7795
+ '''Tag Manager which manages the tags for this resource.'''
7796
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
7797
+
7791
7798
  @builtins.property
7792
7799
  @jsii.member(jsii_name="cfnProperties")
7793
7800
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
@@ -8996,7 +9003,7 @@ class CfnLifecyclePolicyProps:
8996
9003
  )
8997
9004
 
8998
9005
 
8999
- @jsii.implements(_IInspectable_c2943556)
9006
+ @jsii.implements(_IInspectable_c2943556, _ITaggableV2_4e6798f8)
9000
9007
  class CfnWorkflow(
9001
9008
  _CfnResource_9df397a6,
9002
9009
  metaclass=jsii.JSIIMeta,
@@ -9116,6 +9123,12 @@ class CfnWorkflow(
9116
9123
  '''
9117
9124
  return typing.cast(builtins.str, jsii.get(self, "attrArn"))
9118
9125
 
9126
+ @builtins.property
9127
+ @jsii.member(jsii_name="cdkTagManager")
9128
+ def cdk_tag_manager(self) -> _TagManager_0a598cb3:
9129
+ '''Tag Manager which manages the tags for this resource.'''
9130
+ return typing.cast(_TagManager_0a598cb3, jsii.get(self, "cdkTagManager"))
9131
+
9119
9132
  @builtins.property
9120
9133
  @jsii.member(jsii_name="cfnProperties")
9121
9134
  def _cfn_properties(self) -> typing.Mapping[builtins.str, typing.Any]:
@@ -3356,7 +3356,7 @@ class CfnDecoderManifest(
3356
3356
  :param offset: The offset used to calculate the signal value. Combined with factor, the calculation is ``value = raw_value * factor + offset`` .
3357
3357
  :param start_bit: Indicates the beginning of the CAN message.
3358
3358
  :param name: The name of the signal.
3359
- :param signal_value_type:
3359
+ :param signal_value_type: The value type of the signal. The default value is ``INTEGER`` .
3360
3360
 
3361
3361
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-decodermanifest-cansignal.html
3362
3362
  :exampleMetadata: fixture=_generated
@@ -3489,7 +3489,10 @@ class CfnDecoderManifest(
3489
3489
 
3490
3490
  @builtins.property
3491
3491
  def signal_value_type(self) -> typing.Optional[builtins.str]:
3492
- '''
3492
+ '''The value type of the signal.
3493
+
3494
+ The default value is ``INTEGER`` .
3495
+
3493
3496
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-decodermanifest-cansignal.html#cfn-iotfleetwise-decodermanifest-cansignal-signalvaluetype
3494
3497
  '''
3495
3498
  result = self._values.get("signal_value_type")
@@ -4058,8 +4061,8 @@ class CfnDecoderManifest(
4058
4061
  :param start_byte: Indicates the beginning of the message.
4059
4062
  :param bit_mask_length: The number of bits to mask in a message.
4060
4063
  :param bit_right_shift: The number of positions to shift bits in the message.
4061
- :param is_signed:
4062
- :param signal_value_type:
4064
+ :param is_signed: Determines whether the message is signed ( ``true`` ) or not ( ``false`` ). If it's signed, the message can represent both positive and negative numbers. The ``isSigned`` parameter only applies to the ``INTEGER`` raw signal type, and it doesn't affect the ``FLOATING_POINT`` raw signal type. The default value is ``false`` .
4065
+ :param signal_value_type: The value type of the signal. The default value is ``INTEGER`` .
4063
4066
 
4064
4067
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-decodermanifest-obdsignal.html
4065
4068
  :exampleMetadata: fixture=_generated
@@ -4211,7 +4214,10 @@ class CfnDecoderManifest(
4211
4214
  def is_signed(
4212
4215
  self,
4213
4216
  ) -> typing.Optional[typing.Union[builtins.str, builtins.bool, _IResolvable_da3f097b]]:
4214
- '''
4217
+ '''Determines whether the message is signed ( ``true`` ) or not ( ``false`` ).
4218
+
4219
+ If it's signed, the message can represent both positive and negative numbers. The ``isSigned`` parameter only applies to the ``INTEGER`` raw signal type, and it doesn't affect the ``FLOATING_POINT`` raw signal type. The default value is ``false`` .
4220
+
4215
4221
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-decodermanifest-obdsignal.html#cfn-iotfleetwise-decodermanifest-obdsignal-issigned
4216
4222
  '''
4217
4223
  result = self._values.get("is_signed")
@@ -4219,7 +4225,10 @@ class CfnDecoderManifest(
4219
4225
 
4220
4226
  @builtins.property
4221
4227
  def signal_value_type(self) -> typing.Optional[builtins.str]:
4222
- '''
4228
+ '''The value type of the signal.
4229
+
4230
+ The default value is ``INTEGER`` .
4231
+
4223
4232
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iotfleetwise-decodermanifest-obdsignal.html#cfn-iotfleetwise-decodermanifest-obdsignal-signalvaluetype
4224
4233
  '''
4225
4234
  result = self._values.get("signal_value_type")