aws-cdk-lib 2.185.0__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 (49) 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.185.0.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_apigatewayv2/__init__.py +9 -0
  6. aws_cdk/aws_appconfig/__init__.py +3 -3
  7. aws_cdk/aws_applicationsignals/__init__.py +363 -3
  8. aws_cdk/aws_appsync/__init__.py +65 -3
  9. aws_cdk/aws_bedrock/__init__.py +385 -14
  10. aws_cdk/aws_cleanrooms/__init__.py +21 -9
  11. aws_cdk/aws_cloudformation/__init__.py +1 -5
  12. aws_cdk/aws_cloudfront/__init__.py +4 -1
  13. aws_cdk/aws_cloudfront_origins/__init__.py +4 -2
  14. aws_cdk/aws_codeartifact/__init__.py +20 -33
  15. aws_cdk/aws_codepipeline/__init__.py +1328 -120
  16. aws_cdk/aws_cognito/__init__.py +1 -1
  17. aws_cdk/aws_cognito_identitypool/__init__.py +2303 -0
  18. aws_cdk/aws_connect/__init__.py +3 -7
  19. aws_cdk/aws_controltower/__init__.py +18 -26
  20. aws_cdk/aws_datazone/__init__.py +3471 -2
  21. aws_cdk/aws_ec2/__init__.py +560 -25
  22. aws_cdk/aws_ecs/__init__.py +15 -20
  23. aws_cdk/aws_events/__init__.py +37 -14
  24. aws_cdk/aws_gamelift/__init__.py +5 -5
  25. aws_cdk/aws_iam/__init__.py +264 -0
  26. aws_cdk/aws_imagebuilder/__init__.py +3 -27
  27. aws_cdk/aws_kinesisfirehose/__init__.py +2 -3
  28. aws_cdk/aws_lambda/__init__.py +7 -1
  29. aws_cdk/aws_location/__init__.py +24 -7
  30. aws_cdk/aws_msk/__init__.py +8 -2
  31. aws_cdk/aws_networkfirewall/__init__.py +16 -12
  32. aws_cdk/aws_oam/__init__.py +8 -37
  33. aws_cdk/aws_quicksight/__init__.py +6 -69
  34. aws_cdk/aws_redshiftserverless/__init__.py +192 -15
  35. aws_cdk/aws_rum/__init__.py +315 -52
  36. aws_cdk/aws_scheduler/__init__.py +3944 -121
  37. aws_cdk/aws_scheduler_targets/__init__.py +4472 -0
  38. aws_cdk/aws_ssmquicksetup/__init__.py +5 -3
  39. aws_cdk/aws_stepfunctions/__init__.py +17 -15
  40. aws_cdk/aws_timestream/__init__.py +4 -4
  41. aws_cdk/aws_wafv2/__init__.py +345 -0
  42. aws_cdk/aws_workspacesthinclient/__init__.py +4 -4
  43. aws_cdk/cx_api/__init__.py +23 -0
  44. {aws_cdk_lib-2.185.0.dist-info → aws_cdk_lib-2.186.0.dist-info}/METADATA +1 -1
  45. {aws_cdk_lib-2.185.0.dist-info → aws_cdk_lib-2.186.0.dist-info}/RECORD +49 -47
  46. {aws_cdk_lib-2.185.0.dist-info → aws_cdk_lib-2.186.0.dist-info}/LICENSE +0 -0
  47. {aws_cdk_lib-2.185.0.dist-info → aws_cdk_lib-2.186.0.dist-info}/NOTICE +0 -0
  48. {aws_cdk_lib-2.185.0.dist-info → aws_cdk_lib-2.186.0.dist-info}/WHEEL +0 -0
  49. {aws_cdk_lib-2.185.0.dist-info → aws_cdk_lib-2.186.0.dist-info}/top_level.txt +0 -0
@@ -37170,33 +37170,28 @@ class TaskDefinition(
37170
37170
 
37171
37171
  Example::
37172
37172
 
37173
- # task_definition: ecs.TaskDefinition
37173
+ import aws_cdk.aws_cloudwatch as cw
37174
+
37174
37175
  # cluster: ecs.Cluster
37176
+ # task_definition: ecs.TaskDefinition
37175
37177
 
37176
37178
 
37177
- # Add a container to the task definition
37178
- specific_container = task_definition.add_container("Container",
37179
- image=ecs.ContainerImage.from_registry("/aws/aws-example-app"),
37180
- memory_limit_mi_b=2048
37179
+ service = ecs.FargateService(self, "Service",
37180
+ cluster=cluster,
37181
+ task_definition=task_definition
37181
37182
  )
37182
37183
 
37183
- # Add a port mapping
37184
- specific_container.add_port_mappings(
37185
- container_port=7600,
37186
- protocol=ecs.Protocol.TCP
37184
+ cpu_alarm_name = "MyCpuMetricAlarm"
37185
+ my_alarm = cw.Alarm(self, "CPUAlarm",
37186
+ alarm_name=cpu_alarm_name,
37187
+ metric=service.metric_cpu_utilization(),
37188
+ evaluation_periods=2,
37189
+ threshold=80
37187
37190
  )
37188
37191
 
37189
- ecs.Ec2Service(self, "Service",
37190
- cluster=cluster,
37191
- task_definition=task_definition,
37192
- min_healthy_percent=100,
37193
- cloud_map_options=ecs.CloudMapOptions(
37194
- # Create SRV records - useful for bridge networking
37195
- dns_record_type=cloudmap.DnsRecordType.SRV,
37196
- # Targets port TCP port 7600 `specificContainer`
37197
- container=specific_container,
37198
- container_port=7600
37199
- )
37192
+ # Using `myAlarm.alarmName` here will cause a circular dependency
37193
+ service.enable_deployment_alarms([cpu_alarm_name],
37194
+ behavior=ecs.AlarmBehavior.FAIL_ON_ALARM
37200
37195
  )
37201
37196
  '''
37202
37197
 
@@ -374,6 +374,7 @@ from ..aws_iam import (
374
374
  AddToResourcePolicyResult as _AddToResourcePolicyResult_1d0a53ad,
375
375
  Grant as _Grant_a7ae64f8,
376
376
  IGrantable as _IGrantable_71c4f5de,
377
+ IResourceWithPolicy as _IResourceWithPolicy_720d64fc,
377
378
  IRole as _IRole_235f5d8e,
378
379
  PolicyStatement as _PolicyStatement_0fe33853,
379
380
  )
@@ -9505,10 +9506,15 @@ class IEventBus(_IResource_c80c4260, typing_extensions.Protocol):
9505
9506
  ...
9506
9507
 
9507
9508
  @jsii.member(jsii_name="grantPutEventsTo")
9508
- def grant_put_events_to(self, grantee: _IGrantable_71c4f5de) -> _Grant_a7ae64f8:
9509
+ def grant_put_events_to(
9510
+ self,
9511
+ grantee: _IGrantable_71c4f5de,
9512
+ sid: typing.Optional[builtins.str] = None,
9513
+ ) -> _Grant_a7ae64f8:
9509
9514
  '''Grants an IAM Principal to send custom events to the eventBus so that they can be matched to rules.
9510
9515
 
9511
9516
  :param grantee: The principal (no-op if undefined).
9517
+ :param sid: The Statement ID used if we need to add a trust policy on the event bus.
9512
9518
  '''
9513
9519
  ...
9514
9520
 
@@ -9593,15 +9599,21 @@ class _IEventBusProxy(
9593
9599
  return typing.cast(Archive, jsii.invoke(self, "archive", [id, props]))
9594
9600
 
9595
9601
  @jsii.member(jsii_name="grantPutEventsTo")
9596
- def grant_put_events_to(self, grantee: _IGrantable_71c4f5de) -> _Grant_a7ae64f8:
9602
+ def grant_put_events_to(
9603
+ self,
9604
+ grantee: _IGrantable_71c4f5de,
9605
+ sid: typing.Optional[builtins.str] = None,
9606
+ ) -> _Grant_a7ae64f8:
9597
9607
  '''Grants an IAM Principal to send custom events to the eventBus so that they can be matched to rules.
9598
9608
 
9599
9609
  :param grantee: The principal (no-op if undefined).
9610
+ :param sid: The Statement ID used if we need to add a trust policy on the event bus.
9600
9611
  '''
9601
9612
  if __debug__:
9602
9613
  type_hints = typing.get_type_hints(_typecheckingstub__d2c68164c7bcf711cce4fa768eb0c26c773cd00ae54af79587f28c0ff626481f)
9603
9614
  check_type(argname="argument grantee", value=grantee, expected_type=type_hints["grantee"])
9604
- return typing.cast(_Grant_a7ae64f8, jsii.invoke(self, "grantPutEventsTo", [grantee]))
9615
+ check_type(argname="argument sid", value=sid, expected_type=type_hints["sid"])
9616
+ return typing.cast(_Grant_a7ae64f8, jsii.invoke(self, "grantPutEventsTo", [grantee, sid]))
9605
9617
 
9606
9618
  # Adding a "__jsii_proxy_class__(): typing.Type" function to the interface
9607
9619
  typing.cast(typing.Any, IEventBus).__jsii_proxy_class__ = lambda : _IEventBusProxy
@@ -11913,7 +11925,7 @@ class Connection(
11913
11925
  return typing.cast(builtins.str, jsii.get(self, "connectionSecretArn"))
11914
11926
 
11915
11927
 
11916
- @jsii.implements(IEventBus)
11928
+ @jsii.implements(IEventBus, _IResourceWithPolicy_720d64fc)
11917
11929
  class EventBus(
11918
11930
  _Resource_45bc6135,
11919
11931
  metaclass=jsii.JSIIMeta,
@@ -11926,15 +11938,18 @@ class EventBus(
11926
11938
 
11927
11939
  Example::
11928
11940
 
11929
- import aws_cdk.aws_events as events
11930
-
11931
- # my_configuration_set: ses.ConfigurationSet
11932
-
11933
-
11934
- bus = events.EventBus.from_event_bus_name(self, "EventBus", "default")
11941
+ bus = events.EventBus(self, "bus",
11942
+ event_bus_name="MyCustomEventBus",
11943
+ description="MyCustomEventBus"
11944
+ )
11935
11945
 
11936
- my_configuration_set.add_event_destination("ToEventBus",
11937
- destination=ses.EventDestination.event_bus(bus)
11946
+ bus.archive("MyArchive",
11947
+ archive_name="MyCustomEventBusArchive",
11948
+ description="MyCustomerEventBus Archive",
11949
+ event_pattern=events.EventPattern(
11950
+ account=[Stack.of(self).account]
11951
+ ),
11952
+ retention=Duration.days(365)
11938
11953
  )
11939
11954
  '''
11940
11955
 
@@ -12108,15 +12123,21 @@ class EventBus(
12108
12123
  return typing.cast(Archive, jsii.invoke(self, "archive", [id, props]))
12109
12124
 
12110
12125
  @jsii.member(jsii_name="grantPutEventsTo")
12111
- def grant_put_events_to(self, grantee: _IGrantable_71c4f5de) -> _Grant_a7ae64f8:
12126
+ def grant_put_events_to(
12127
+ self,
12128
+ grantee: _IGrantable_71c4f5de,
12129
+ sid: typing.Optional[builtins.str] = None,
12130
+ ) -> _Grant_a7ae64f8:
12112
12131
  '''Grants an IAM Principal to send custom events to the eventBus so that they can be matched to rules.
12113
12132
 
12114
12133
  :param grantee: -
12134
+ :param sid: -
12115
12135
  '''
12116
12136
  if __debug__:
12117
12137
  type_hints = typing.get_type_hints(_typecheckingstub__f55b55b311ab4cc3f0aabb9339086b97d1f1340dcc28209fe5e78777c8287a4f)
12118
12138
  check_type(argname="argument grantee", value=grantee, expected_type=type_hints["grantee"])
12119
- return typing.cast(_Grant_a7ae64f8, jsii.invoke(self, "grantPutEventsTo", [grantee]))
12139
+ check_type(argname="argument sid", value=sid, expected_type=type_hints["sid"])
12140
+ return typing.cast(_Grant_a7ae64f8, jsii.invoke(self, "grantPutEventsTo", [grantee, sid]))
12120
12141
 
12121
12142
  @builtins.property
12122
12143
  @jsii.member(jsii_name="eventBusArn")
@@ -13272,6 +13293,7 @@ def _typecheckingstub__1ed58495b96f0f8ed0dfb0c65e8400413d45c5c1f372215e535272012
13272
13293
 
13273
13294
  def _typecheckingstub__d2c68164c7bcf711cce4fa768eb0c26c773cd00ae54af79587f28c0ff626481f(
13274
13295
  grantee: _IGrantable_71c4f5de,
13296
+ sid: typing.Optional[builtins.str] = None,
13275
13297
  ) -> None:
13276
13298
  """Type checking stubs"""
13277
13299
  pass
@@ -13697,6 +13719,7 @@ def _typecheckingstub__7330918630167c372966fe4a86452f34a261c80460ae944bcce168d6b
13697
13719
 
13698
13720
  def _typecheckingstub__f55b55b311ab4cc3f0aabb9339086b97d1f1340dcc28209fe5e78777c8287a4f(
13699
13721
  grantee: _IGrantable_71c4f5de,
13722
+ sid: typing.Optional[builtins.str] = None,
13700
13723
  ) -> None:
13701
13724
  """Type checking stubs"""
13702
13725
  pass
@@ -7897,7 +7897,7 @@ class CfnGameSessionQueue(
7897
7897
  :param player_latency_policies: A set of policies that enforce a sliding cap on player latency when processing game sessions placement requests. Use multiple policies to gradually relax the cap over time if Amazon GameLift Servers can't make a placement. Policies are evaluated in order starting with the lowest maximum latency value.
7898
7898
  :param priority_configuration: Custom settings to use when prioritizing destinations and locations for game session placements. This configuration replaces the FleetIQ default prioritization process. Priority types that are not explicitly named will be automatically applied at the end of the prioritization process.
7899
7899
  :param tags: A list of labels to assign to the new game session queue resource. Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource management, access management and cost allocation. For more information, see `Tagging AWS Resources <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html>`_ in the *AWS General Reference* . Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than stated. See the AWS General Reference for actual tagging limits.
7900
- :param timeout_in_seconds: The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a ``TIMED_OUT`` status.
7900
+ :param timeout_in_seconds: The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a ``TIMED_OUT`` status. If you don't specify a request timeout, the queue uses a default value.
7901
7901
  '''
7902
7902
  if __debug__:
7903
7903
  type_hints = typing.get_type_hints(_typecheckingstub__2435e37790a5987d49478948c0c1ac36c9e463fa29441c46ba0aa4d567f2c585)
@@ -8390,7 +8390,7 @@ class CfnGameSessionQueue(
8390
8390
  Changing the priority order will affect how game sessions are placed.
8391
8391
 
8392
8392
  :param location_order: The prioritization order to use for fleet locations, when the ``PriorityOrder`` property includes ``LOCATION`` . Locations can include AWS Region codes (such as ``us-west-2`` ), local zones, and custom locations (for Anywhere fleets). Each location must be listed only once. For details, see `Amazon GameLift Servers service locations. <https://docs.aws.amazon.com/gamelift/latest/developerguide/gamelift-regions.html>`_
8393
- :param priority_order: A custom sequence to use when prioritizing where to place new game sessions. Each priority type is listed once. - ``LATENCY`` -- Amazon GameLift Servers prioritizes locations where the average player latency is lowest. Player latency data is provided in each game session placement request. - ``COST`` -- Amazon GameLift Servers prioritizes destinations with the lowest current hosting costs. Cost is evaluated based on the location, instance type, and fleet type (Spot or On-Demand) of each destination in the queue. - ``DESTINATION`` -- Amazon GameLift Servers prioritizes based on the list order of destinations in the queue configuration. - ``LOCATION`` -- Amazon GameLift Servers prioritizes based on the provided order of locations, as defined in ``LocationOrder`` .
8393
+ :param priority_order: A custom sequence to use when prioritizing where to place new game sessions. Each priority type is listed once. - ``LATENCY`` -- Amazon GameLift Servers prioritizes locations where the average player latency is lowest. Player latency data is provided in each game session placement request. - ``COST`` -- Amazon GameLift Servers prioritizes queue destinations with the lowest current hosting costs. Cost is evaluated based on the destination's location, instance type, and fleet type (Spot or On-Demand). - ``DESTINATION`` -- Amazon GameLift Servers prioritizes based on the list order of destinations in the queue configuration. - ``LOCATION`` -- Amazon GameLift Servers prioritizes based on the provided order of locations, as defined in ``LocationOrder`` .
8394
8394
 
8395
8395
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-gamelift-gamesessionqueue-priorityconfiguration.html
8396
8396
  :exampleMetadata: fixture=_generated
@@ -8432,7 +8432,7 @@ class CfnGameSessionQueue(
8432
8432
  '''A custom sequence to use when prioritizing where to place new game sessions. Each priority type is listed once.
8433
8433
 
8434
8434
  - ``LATENCY`` -- Amazon GameLift Servers prioritizes locations where the average player latency is lowest. Player latency data is provided in each game session placement request.
8435
- - ``COST`` -- Amazon GameLift Servers prioritizes destinations with the lowest current hosting costs. Cost is evaluated based on the location, instance type, and fleet type (Spot or On-Demand) of each destination in the queue.
8435
+ - ``COST`` -- Amazon GameLift Servers prioritizes queue destinations with the lowest current hosting costs. Cost is evaluated based on the destination's location, instance type, and fleet type (Spot or On-Demand).
8436
8436
  - ``DESTINATION`` -- Amazon GameLift Servers prioritizes based on the list order of destinations in the queue configuration.
8437
8437
  - ``LOCATION`` -- Amazon GameLift Servers prioritizes based on the provided order of locations, as defined in ``LocationOrder`` .
8438
8438
 
@@ -8492,7 +8492,7 @@ class CfnGameSessionQueueProps:
8492
8492
  :param player_latency_policies: A set of policies that enforce a sliding cap on player latency when processing game sessions placement requests. Use multiple policies to gradually relax the cap over time if Amazon GameLift Servers can't make a placement. Policies are evaluated in order starting with the lowest maximum latency value.
8493
8493
  :param priority_configuration: Custom settings to use when prioritizing destinations and locations for game session placements. This configuration replaces the FleetIQ default prioritization process. Priority types that are not explicitly named will be automatically applied at the end of the prioritization process.
8494
8494
  :param tags: A list of labels to assign to the new game session queue resource. Tags are developer-defined key-value pairs. Tagging AWS resources are useful for resource management, access management and cost allocation. For more information, see `Tagging AWS Resources <https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html>`_ in the *AWS General Reference* . Once the resource is created, you can use TagResource, UntagResource, and ListTagsForResource to add, remove, and view tags. The maximum tag limit may be lower than stated. See the AWS General Reference for actual tagging limits.
8495
- :param timeout_in_seconds: The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a ``TIMED_OUT`` status.
8495
+ :param timeout_in_seconds: The maximum time, in seconds, that a new game session placement request remains in the queue. When a request exceeds this time, the game session placement changes to a ``TIMED_OUT`` status. If you don't specify a request timeout, the queue uses a default value.
8496
8496
 
8497
8497
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html
8498
8498
  :exampleMetadata: fixture=_generated
@@ -8660,7 +8660,7 @@ class CfnGameSessionQueueProps:
8660
8660
  def timeout_in_seconds(self) -> typing.Optional[jsii.Number]:
8661
8661
  '''The maximum time, in seconds, that a new game session placement request remains in the queue.
8662
8662
 
8663
- When a request exceeds this time, the game session placement changes to a ``TIMED_OUT`` status.
8663
+ When a request exceeds this time, the game session placement changes to a ``TIMED_OUT`` status. If you don't specify a request timeout, the queue uses a default value.
8664
8664
 
8665
8665
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-gamelift-gamesessionqueue.html#cfn-gamelift-gamesessionqueue-timeoutinseconds
8666
8666
  '''
@@ -7378,6 +7378,87 @@ class Grant(metaclass=jsii.JSIIMeta, jsii_type="aws-cdk-lib.aws_iam.Grant"):
7378
7378
  detach_grant = volume.grant_detach_volume_by_resource_tag(instance.grant_principal, [instance])
7379
7379
  '''
7380
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
+
7381
7462
  @jsii.member(jsii_name="addToPrincipal")
7382
7463
  @builtins.classmethod
7383
7464
  def add_to_principal(
@@ -12043,6 +12124,175 @@ class AccessKey(
12043
12124
  return typing.cast(_SecretValue_3dd0ddae, jsii.get(self, "secretAccessKey"))
12044
12125
 
12045
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
+
12046
12296
  @jsii.interface(jsii_type="aws-cdk-lib.aws_iam.IAssumeRolePrincipal")
12047
12297
  class IAssumeRolePrincipal(IPrincipal, typing_extensions.Protocol):
12048
12298
  '''A type of principal that has more control over its own representation in AssumeRolePolicyDocuments.
@@ -15106,6 +15356,7 @@ __all__ = [
15106
15356
  "Grant",
15107
15357
  "GrantOnPrincipalAndResourceOptions",
15108
15358
  "GrantOnPrincipalOptions",
15359
+ "GrantPolicyWithResourceOptions",
15109
15360
  "GrantWithResourceOptions",
15110
15361
  "Group",
15111
15362
  "GroupProps",
@@ -16886,6 +17137,19 @@ def _typecheckingstub__604f514db426465dbc092293e7b2e46f5358ddb17770a96f51ef7e6a5
16886
17137
  """Type checking stubs"""
16887
17138
  pass
16888
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
+
16889
17153
  def _typecheckingstub__2773dd1c98b9bb45b356173892f3248a430e55c5ab0a22cb6e5df0bcdaa898a5(
16890
17154
  document: PolicyDocument,
16891
17155
  ) -> None:
@@ -1959,7 +1959,6 @@ class CfnDistributionConfiguration(
1959
1959
 
1960
1960
  # ami_distribution_configuration: Any
1961
1961
  # container_distribution_configuration: Any
1962
- # ssm_parameter_configurations: Any
1963
1962
 
1964
1963
  cfn_distribution_configuration = imagebuilder.CfnDistributionConfiguration(self, "MyCfnDistributionConfiguration",
1965
1964
  distributions=[imagebuilder.CfnDistributionConfiguration.DistributionProperty(
@@ -1986,8 +1985,7 @@ class CfnDistributionConfiguration(
1986
1985
  launch_template_id="launchTemplateId",
1987
1986
  set_default_version=False
1988
1987
  )],
1989
- license_configuration_arns=["licenseConfigurationArns"],
1990
- ssm_parameter_configurations=[ssm_parameter_configurations]
1988
+ license_configuration_arns=["licenseConfigurationArns"]
1991
1989
  )],
1992
1990
  name="name",
1993
1991
 
@@ -2402,7 +2400,6 @@ class CfnDistributionConfiguration(
2402
2400
  "fast_launch_configurations": "fastLaunchConfigurations",
2403
2401
  "launch_template_configurations": "launchTemplateConfigurations",
2404
2402
  "license_configuration_arns": "licenseConfigurationArns",
2405
- "ssm_parameter_configurations": "ssmParameterConfigurations",
2406
2403
  },
2407
2404
  )
2408
2405
  class DistributionProperty:
@@ -2415,7 +2412,6 @@ class CfnDistributionConfiguration(
2415
2412
  fast_launch_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistributionConfiguration.FastLaunchConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
2416
2413
  launch_template_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union["CfnDistributionConfiguration.LaunchTemplateConfigurationProperty", typing.Dict[builtins.str, typing.Any]]]]]] = None,
2417
2414
  license_configuration_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
2418
- ssm_parameter_configurations: typing.Optional[typing.Union[typing.Sequence[typing.Any], _IResolvable_da3f097b]] = None,
2419
2415
  ) -> None:
2420
2416
  '''The distribution configuration distribution defines the settings for a specific Region in the Distribution Configuration.
2421
2417
 
@@ -2430,7 +2426,6 @@ class CfnDistributionConfiguration(
2430
2426
  :param fast_launch_configurations: The Windows faster-launching configurations to use for AMI distribution.
2431
2427
  :param launch_template_configurations: A group of launchTemplateConfiguration settings that apply to image distribution for specified accounts.
2432
2428
  :param license_configuration_arns: The License Manager Configuration to associate with the AMI in the specified Region. For more information, see the `LicenseConfiguration API <https://docs.aws.amazon.com/license-manager/latest/APIReference/API_LicenseConfiguration.html>`_ .
2433
- :param ssm_parameter_configurations: The SSM parameter configurations to use for AMI distribution.
2434
2429
 
2435
2430
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html
2436
2431
  :exampleMetadata: fixture=_generated
@@ -2443,7 +2438,6 @@ class CfnDistributionConfiguration(
2443
2438
 
2444
2439
  # ami_distribution_configuration: Any
2445
2440
  # container_distribution_configuration: Any
2446
- # ssm_parameter_configurations: Any
2447
2441
 
2448
2442
  distribution_property = imagebuilder.CfnDistributionConfiguration.DistributionProperty(
2449
2443
  region="region",
@@ -2469,8 +2463,7 @@ class CfnDistributionConfiguration(
2469
2463
  launch_template_id="launchTemplateId",
2470
2464
  set_default_version=False
2471
2465
  )],
2472
- license_configuration_arns=["licenseConfigurationArns"],
2473
- ssm_parameter_configurations=[ssm_parameter_configurations]
2466
+ license_configuration_arns=["licenseConfigurationArns"]
2474
2467
  )
2475
2468
  '''
2476
2469
  if __debug__:
@@ -2481,7 +2474,6 @@ class CfnDistributionConfiguration(
2481
2474
  check_type(argname="argument fast_launch_configurations", value=fast_launch_configurations, expected_type=type_hints["fast_launch_configurations"])
2482
2475
  check_type(argname="argument launch_template_configurations", value=launch_template_configurations, expected_type=type_hints["launch_template_configurations"])
2483
2476
  check_type(argname="argument license_configuration_arns", value=license_configuration_arns, expected_type=type_hints["license_configuration_arns"])
2484
- check_type(argname="argument ssm_parameter_configurations", value=ssm_parameter_configurations, expected_type=type_hints["ssm_parameter_configurations"])
2485
2477
  self._values: typing.Dict[builtins.str, typing.Any] = {
2486
2478
  "region": region,
2487
2479
  }
@@ -2495,8 +2487,6 @@ class CfnDistributionConfiguration(
2495
2487
  self._values["launch_template_configurations"] = launch_template_configurations
2496
2488
  if license_configuration_arns is not None:
2497
2489
  self._values["license_configuration_arns"] = license_configuration_arns
2498
- if ssm_parameter_configurations is not None:
2499
- self._values["ssm_parameter_configurations"] = ssm_parameter_configurations
2500
2490
 
2501
2491
  @builtins.property
2502
2492
  def region(self) -> builtins.str:
@@ -2567,17 +2557,6 @@ class CfnDistributionConfiguration(
2567
2557
  result = self._values.get("license_configuration_arns")
2568
2558
  return typing.cast(typing.Optional[typing.List[builtins.str]], result)
2569
2559
 
2570
- @builtins.property
2571
- def ssm_parameter_configurations(
2572
- self,
2573
- ) -> typing.Optional[typing.Union[typing.List[typing.Any], _IResolvable_da3f097b]]:
2574
- '''The SSM parameter configurations to use for AMI distribution.
2575
-
2576
- :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-imagebuilder-distributionconfiguration-distribution.html#cfn-imagebuilder-distributionconfiguration-distribution-ssmparameterconfigurations
2577
- '''
2578
- result = self._values.get("ssm_parameter_configurations")
2579
- return typing.cast(typing.Optional[typing.Union[typing.List[typing.Any], _IResolvable_da3f097b]], result)
2580
-
2581
2560
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
2582
2561
  return isinstance(rhs, self.__class__) and rhs._values == self._values
2583
2562
 
@@ -3186,7 +3165,6 @@ class CfnDistributionConfigurationProps:
3186
3165
 
3187
3166
  # ami_distribution_configuration: Any
3188
3167
  # container_distribution_configuration: Any
3189
- # ssm_parameter_configurations: Any
3190
3168
 
3191
3169
  cfn_distribution_configuration_props = imagebuilder.CfnDistributionConfigurationProps(
3192
3170
  distributions=[imagebuilder.CfnDistributionConfiguration.DistributionProperty(
@@ -3213,8 +3191,7 @@ class CfnDistributionConfigurationProps:
3213
3191
  launch_template_id="launchTemplateId",
3214
3192
  set_default_version=False
3215
3193
  )],
3216
- license_configuration_arns=["licenseConfigurationArns"],
3217
- ssm_parameter_configurations=[ssm_parameter_configurations]
3194
+ license_configuration_arns=["licenseConfigurationArns"]
3218
3195
  )],
3219
3196
  name="name",
3220
3197
 
@@ -9894,7 +9871,6 @@ def _typecheckingstub__29d1f34d5faec16ba828ad2333ee9218a18df31808a5a350be9b29d04
9894
9871
  fast_launch_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionConfiguration.FastLaunchConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
9895
9872
  launch_template_configurations: typing.Optional[typing.Union[_IResolvable_da3f097b, typing.Sequence[typing.Union[_IResolvable_da3f097b, typing.Union[CfnDistributionConfiguration.LaunchTemplateConfigurationProperty, typing.Dict[builtins.str, typing.Any]]]]]] = None,
9896
9873
  license_configuration_arns: typing.Optional[typing.Sequence[builtins.str]] = None,
9897
- ssm_parameter_configurations: typing.Optional[typing.Union[typing.Sequence[typing.Any], _IResolvable_da3f097b]] = None,
9898
9874
  ) -> None:
9899
9875
  """Type checking stubs"""
9900
9876
  pass
@@ -7879,7 +7879,7 @@ class CfnDeliveryStream(
7879
7879
  :param key_passphrase: Passphrase to decrypt the private key when the key is encrypted. For information, see `Using Key Pair Authentication & Key Rotation <https://docs.aws.amazon.com/https://docs.snowflake.com/en/user-guide/data-load-snowpipe-streaming-configuration#using-key-pair-authentication-key-rotation>`_ .
7880
7880
  :param meta_data_column_name: Specify a column name in the table, where the metadata information has to be loaded. When you enable this field, you will see the following column in the snowflake table, which differs based on the source type. For Direct PUT as source ``{ "firehoseDeliveryStreamName" : "streamname", "IngestionTime" : "timestamp" }`` For Kinesis Data Stream as source ``"kinesisStreamName" : "streamname", "kinesisShardId" : "Id", "kinesisPartitionKey" : "key", "kinesisSequenceNumber" : "1234", "subsequenceNumber" : "2334", "IngestionTime" : "timestamp" }``
7881
7881
  :param private_key: The private key used to encrypt your Snowflake client. For information, see `Using Key Pair Authentication & Key Rotation <https://docs.aws.amazon.com/https://docs.snowflake.com/en/user-guide/data-load-snowpipe-streaming-configuration#using-key-pair-authentication-key-rotation>`_ .
7882
- :param processing_configuration: Specifies configuration for Snowflake.
7882
+ :param processing_configuration:
7883
7883
  :param retry_options: The time period where Firehose will retry sending data to the chosen HTTP endpoint.
7884
7884
  :param s3_backup_mode: Choose an S3 backup mode.
7885
7885
  :param secrets_manager_configuration: The configuration that defines how you access secrets for Snowflake.
@@ -8183,8 +8183,7 @@ class CfnDeliveryStream(
8183
8183
  def processing_configuration(
8184
8184
  self,
8185
8185
  ) -> typing.Optional[typing.Union[_IResolvable_da3f097b, "CfnDeliveryStream.ProcessingConfigurationProperty"]]:
8186
- '''Specifies configuration for Snowflake.
8187
-
8186
+ '''
8188
8187
  :see: http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-kinesisfirehose-deliverystream-snowflakedestinationconfiguration.html#cfn-kinesisfirehose-deliverystream-snowflakedestinationconfiguration-processingconfiguration
8189
8188
  '''
8190
8189
  result = self._values.get("processing_configuration")