aws-cdk-lib 2.135.0__py3-none-any.whl → 2.136.1__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.

@@ -18900,35 +18900,29 @@ class Compatibility(enum.Enum):
18900
18900
  is_default=True
18901
18901
  )
18902
18902
 
18903
- cluster = ecs.Cluster(self, "Ec2Cluster", vpc=vpc)
18904
- cluster.add_capacity("DefaultAutoScalingGroup",
18905
- instance_type=ec2.InstanceType("t2.micro"),
18906
- vpc_subnets=ec2.SubnetSelection(subnet_type=ec2.SubnetType.PUBLIC)
18907
- )
18903
+ cluster = ecs.Cluster(self, "FargateCluster", vpc=vpc)
18908
18904
 
18909
18905
  task_definition = ecs.TaskDefinition(self, "TD",
18910
- compatibility=ecs.Compatibility.EC2
18906
+ memory_mi_b="512",
18907
+ cpu="256",
18908
+ compatibility=ecs.Compatibility.FARGATE
18911
18909
  )
18912
18910
 
18913
- task_definition.add_container("TheContainer",
18911
+ container_definition = task_definition.add_container("TheContainer",
18914
18912
  image=ecs.ContainerImage.from_registry("foo/bar"),
18915
18913
  memory_limit_mi_b=256
18916
18914
  )
18917
18915
 
18918
- run_task = tasks.EcsRunTask(self, "Run",
18916
+ run_task = tasks.EcsRunTask(self, "RunFargate",
18919
18917
  integration_pattern=sfn.IntegrationPattern.RUN_JOB,
18920
18918
  cluster=cluster,
18921
18919
  task_definition=task_definition,
18922
- launch_target=tasks.EcsEc2LaunchTarget(
18923
- placement_strategies=[
18924
- ecs.PlacementStrategy.spread_across_instances(),
18925
- ecs.PlacementStrategy.packed_by_cpu(),
18926
- ecs.PlacementStrategy.randomly()
18927
- ],
18928
- placement_constraints=[
18929
- ecs.PlacementConstraint.member_of("blieptuut")
18930
- ]
18931
- ),
18920
+ assign_public_ip=True,
18921
+ container_overrides=[tasks.ContainerOverride(
18922
+ container_definition=container_definition,
18923
+ environment=[tasks.TaskEnvironmentVariable(name="SOME_KEY", value=sfn.JsonPath.string_at("$.SomeKey"))]
18924
+ )],
18925
+ launch_target=tasks.EcsFargateLaunchTarget(),
18932
18926
  propagated_tag_source=ecs.PropagatedTagSource.TASK_DEFINITION
18933
18927
  )
18934
18928
  '''
@@ -35688,35 +35682,29 @@ class TaskDefinitionProps(CommonTaskDefinitionProps):
35688
35682
  is_default=True
35689
35683
  )
35690
35684
 
35691
- cluster = ecs.Cluster(self, "Ec2Cluster", vpc=vpc)
35692
- cluster.add_capacity("DefaultAutoScalingGroup",
35693
- instance_type=ec2.InstanceType("t2.micro"),
35694
- vpc_subnets=ec2.SubnetSelection(subnet_type=ec2.SubnetType.PUBLIC)
35695
- )
35685
+ cluster = ecs.Cluster(self, "FargateCluster", vpc=vpc)
35696
35686
 
35697
35687
  task_definition = ecs.TaskDefinition(self, "TD",
35698
- compatibility=ecs.Compatibility.EC2
35688
+ memory_mi_b="512",
35689
+ cpu="256",
35690
+ compatibility=ecs.Compatibility.FARGATE
35699
35691
  )
35700
35692
 
35701
- task_definition.add_container("TheContainer",
35693
+ container_definition = task_definition.add_container("TheContainer",
35702
35694
  image=ecs.ContainerImage.from_registry("foo/bar"),
35703
35695
  memory_limit_mi_b=256
35704
35696
  )
35705
35697
 
35706
- run_task = tasks.EcsRunTask(self, "Run",
35698
+ run_task = tasks.EcsRunTask(self, "RunFargate",
35707
35699
  integration_pattern=sfn.IntegrationPattern.RUN_JOB,
35708
35700
  cluster=cluster,
35709
35701
  task_definition=task_definition,
35710
- launch_target=tasks.EcsEc2LaunchTarget(
35711
- placement_strategies=[
35712
- ecs.PlacementStrategy.spread_across_instances(),
35713
- ecs.PlacementStrategy.packed_by_cpu(),
35714
- ecs.PlacementStrategy.randomly()
35715
- ],
35716
- placement_constraints=[
35717
- ecs.PlacementConstraint.member_of("blieptuut")
35718
- ]
35719
- ),
35702
+ assign_public_ip=True,
35703
+ container_overrides=[tasks.ContainerOverride(
35704
+ container_definition=container_definition,
35705
+ environment=[tasks.TaskEnvironmentVariable(name="SOME_KEY", value=sfn.JsonPath.string_at("$.SomeKey"))]
35706
+ )],
35707
+ launch_target=tasks.EcsFargateLaunchTarget(),
35720
35708
  propagated_tag_source=ecs.PropagatedTagSource.TASK_DEFINITION
35721
35709
  )
35722
35710
  '''
@@ -19436,7 +19436,7 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
19436
19436
  :param protocol: The protocol used for communication with the target. This is not applicable for Lambda targets. Default: - Determined from port if known
19437
19437
  :param protocol_version: The protocol version to use. Default: ApplicationProtocolVersion.HTTP1
19438
19438
  :param slow_start: The time period during which the load balancer sends a newly registered target a linearly increasing share of the traffic to the target group. The range is 30-900 seconds (15 minutes). Default: 0
19439
- :param stickiness_cookie_duration: The stickiness cookie expiration period. Setting this value enables load balancer stickiness. After this period, the cookie is considered stale. The minimum value is 1 second and the maximum value is 7 days (604800 seconds). Default: Duration.days(1)
19439
+ :param stickiness_cookie_duration: The stickiness cookie expiration period. Setting this value enables load balancer stickiness. After this period, the cookie is considered stale. The minimum value is 1 second and the maximum value is 7 days (604800 seconds). Default: - Stickiness is disabled
19440
19440
  :param stickiness_cookie_name: The name of an application-based stickiness cookie. Names that start with the following prefixes are not allowed: AWSALB, AWSALBAPP, and AWSALBTG; they're reserved for use by the load balancer. Note: ``stickinessCookieName`` parameter depends on the presence of ``stickinessCookieDuration`` parameter. If ``stickinessCookieDuration`` is not set, ``stickinessCookieName`` will be omitted. Default: - If ``stickinessCookieDuration`` is set, a load-balancer generated cookie is used. Otherwise, no stickiness is defined.
19441
19441
  :param targets: The targets to add to this target group. Can be ``Instance``, ``IPAddress``, or any self-registering load balancing target. If you use either ``Instance`` or ``IPAddress`` as targets, all target must be of the same type. Default: - No targets.
19442
19442
 
@@ -19625,7 +19625,7 @@ class ApplicationTargetGroupProps(BaseTargetGroupProps):
19625
19625
  After this period, the cookie is considered stale. The minimum value is
19626
19626
  1 second and the maximum value is 7 days (604800 seconds).
19627
19627
 
19628
- :default: Duration.days(1)
19628
+ :default: - Stickiness is disabled
19629
19629
  '''
19630
19630
  result = self._values.get("stickiness_cookie_duration")
19631
19631
  return typing.cast(typing.Optional[_Duration_4839e8c3], result)
@@ -22603,7 +22603,7 @@ class ApplicationTargetGroup(
22603
22603
  :param protocol: The protocol used for communication with the target. This is not applicable for Lambda targets. Default: - Determined from port if known
22604
22604
  :param protocol_version: The protocol version to use. Default: ApplicationProtocolVersion.HTTP1
22605
22605
  :param slow_start: The time period during which the load balancer sends a newly registered target a linearly increasing share of the traffic to the target group. The range is 30-900 seconds (15 minutes). Default: 0
22606
- :param stickiness_cookie_duration: The stickiness cookie expiration period. Setting this value enables load balancer stickiness. After this period, the cookie is considered stale. The minimum value is 1 second and the maximum value is 7 days (604800 seconds). Default: Duration.days(1)
22606
+ :param stickiness_cookie_duration: The stickiness cookie expiration period. Setting this value enables load balancer stickiness. After this period, the cookie is considered stale. The minimum value is 1 second and the maximum value is 7 days (604800 seconds). Default: - Stickiness is disabled
22607
22607
  :param stickiness_cookie_name: The name of an application-based stickiness cookie. Names that start with the following prefixes are not allowed: AWSALB, AWSALBAPP, and AWSALBTG; they're reserved for use by the load balancer. Note: ``stickinessCookieName`` parameter depends on the presence of ``stickinessCookieDuration`` parameter. If ``stickinessCookieDuration`` is not set, ``stickinessCookieName`` will be omitted. Default: - If ``stickinessCookieDuration`` is set, a load-balancer generated cookie is used. Otherwise, no stickiness is defined.
22608
22608
  :param targets: The targets to add to this target group. Can be ``Instance``, ``IPAddress``, or any self-registering load balancing target. If you use either ``Instance`` or ``IPAddress`` as targets, all target must be of the same type. Default: - No targets.
22609
22609
  :param deregistration_delay: The amount of time for Elastic Load Balancing to wait before deregistering a target. The range is 0-3600 seconds. Default: 300
@@ -397,6 +397,39 @@ iam.Role(self, "Role",
397
397
  )
398
398
  ```
399
399
 
400
+ ### Granting a principal permission to assume a role
401
+
402
+ A principal can be granted permission to assume a role using `grantAssumeRole`.
403
+
404
+ Note that this does not apply to service principals or account principals as they must be added to the role trust policy via `assumeRolePolicy`.
405
+
406
+ ```python
407
+ user = iam.User(self, "user")
408
+ role = iam.Role(self, "role",
409
+ assumed_by=iam.AccountPrincipal(self.account)
410
+ )
411
+
412
+ role.grant_assume_role(user)
413
+ ```
414
+
415
+ ### Granting service and account principals permission to assume a role
416
+
417
+ Service principals and account principals can be granted permission to assume a role using `assumeRolePolicy` which modifies the role trust policy.
418
+
419
+ ```python
420
+ role = iam.Role(self, "role",
421
+ assumed_by=iam.AccountPrincipal(self.account)
422
+ )
423
+
424
+ role.assume_role_policy.add_statements(iam.PolicyStatement(
425
+ actions=["sts:AssumeRole"],
426
+ principals=[
427
+ iam.AccountPrincipal("123456789"),
428
+ iam.ServicePrincipal("beep-boop.amazonaws.com")
429
+ ]
430
+ ))
431
+ ```
432
+
400
433
  ## Parsing JSON Policy Documents
401
434
 
402
435
  The `PolicyDocument.fromJson` and `PolicyStatement.fromJson` static methods can be used to parse JSON objects. For example:
@@ -10706,21 +10739,16 @@ class RoleProps:
10706
10739
 
10707
10740
  Example::
10708
10741
 
10709
- # Option 3: Create a new role that allows the account root principal to assume. Add this role in the `system:masters` and witch to this role from the AWS console.
10710
- # cluster: eks.Cluster
10711
-
10712
-
10713
- console_read_only_role = iam.Role(self, "ConsoleReadOnlyRole",
10714
- assumed_by=iam.ArnPrincipal("arn_for_trusted_principal")
10742
+ # definition: sfn.IChainable
10743
+ role = iam.Role(self, "Role",
10744
+ assumed_by=iam.ServicePrincipal("lambda.amazonaws.com")
10745
+ )
10746
+ state_machine = sfn.StateMachine(self, "StateMachine",
10747
+ definition_body=sfn.DefinitionBody.from_chainable(definition)
10715
10748
  )
10716
- console_read_only_role.add_to_policy(iam.PolicyStatement(
10717
- actions=["eks:AccessKubernetesApi", "eks:Describe*", "eks:List*"
10718
- ],
10719
- resources=[cluster.cluster_arn]
10720
- ))
10721
10749
 
10722
- # Add this role to system:masters RBAC group
10723
- cluster.aws_auth.add_masters_role(console_read_only_role)
10750
+ # Give role permission to get execution history of ALL executions for the state machine
10751
+ state_machine.grant_execution(role, "states:GetExecutionHistory")
10724
10752
  '''
10725
10753
  if __debug__:
10726
10754
  type_hints = typing.get_type_hints(_typecheckingstub__9c9223cb9fa6dff45ee4fd7013629ab18542c2499a83f542c5405968fad2287c)
@@ -1443,6 +1443,21 @@ rds.DatabaseCluster(self, "DatabaseCluster",
1443
1443
  preferred_maintenance_window="Sat:22:15-Sat:22:45"
1444
1444
  )
1445
1445
  ```
1446
+
1447
+ You can also set the preferred maintenance window via reader and writer props:
1448
+
1449
+ ```python
1450
+ # vpc: ec2.Vpc
1451
+
1452
+ rds.DatabaseCluster(self, "DatabaseCluster",
1453
+ engine=rds.DatabaseClusterEngine.AURORA,
1454
+ vpc=vpc,
1455
+ writer=rds.ClusterInstance.provisioned("WriterInstance",
1456
+ preferred_maintenance_window="Sat:22:15-Sat:22:45"
1457
+ ),
1458
+ preferred_maintenance_window="Sat:22:15-Sat:22:45"
1459
+ )
1460
+ ```
1446
1461
  '''
1447
1462
  from pkgutil import extend_path
1448
1463
  __path__ = extend_path(__path__, __name__)
@@ -17139,6 +17154,7 @@ class ClusterInstanceBindOptions:
17139
17154
  "parameters": "parameters",
17140
17155
  "performance_insight_encryption_key": "performanceInsightEncryptionKey",
17141
17156
  "performance_insight_retention": "performanceInsightRetention",
17157
+ "preferred_maintenance_window": "preferredMaintenanceWindow",
17142
17158
  "publicly_accessible": "publiclyAccessible",
17143
17159
  },
17144
17160
  )
@@ -17156,6 +17172,7 @@ class ClusterInstanceOptions:
17156
17172
  parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
17157
17173
  performance_insight_encryption_key: typing.Optional[_IKey_5f11635f] = None,
17158
17174
  performance_insight_retention: typing.Optional["PerformanceInsightRetention"] = None,
17175
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
17159
17176
  publicly_accessible: typing.Optional[builtins.bool] = None,
17160
17177
  ) -> None:
17161
17178
  '''Common options for creating a cluster instance.
@@ -17170,6 +17187,7 @@ class ClusterInstanceOptions:
17170
17187
  :param parameters: The parameters in the DBParameterGroup to create automatically. You can only specify parameterGroup or parameters but not both. You need to use a versioned engine to auto-generate a DBParameterGroup. Default: - None
17171
17188
  :param performance_insight_encryption_key: The AWS KMS key for encryption of Performance Insights data. Default: - default master key
17172
17189
  :param performance_insight_retention: The amount of time, in days, to retain Performance Insights data. Default: 7
17190
+ :param preferred_maintenance_window: A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). Example: 'Sun:23:45-Mon:00:15' Default: - 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.
17173
17191
  :param publicly_accessible: Indicates whether the DB instance is an internet-facing instance. If not specified, the cluster's vpcSubnets will be used to determine if the instance is internet-facing or not. Default: - ``true`` if the cluster's ``vpcSubnets`` is ``subnetType: SubnetType.PUBLIC``, ``false`` otherwise
17174
17192
 
17175
17193
  :exampleMetadata: fixture=_generated
@@ -17198,6 +17216,7 @@ class ClusterInstanceOptions:
17198
17216
  },
17199
17217
  performance_insight_encryption_key=key,
17200
17218
  performance_insight_retention=rds.PerformanceInsightRetention.DEFAULT,
17219
+ preferred_maintenance_window="preferredMaintenanceWindow",
17201
17220
  publicly_accessible=False
17202
17221
  )
17203
17222
  '''
@@ -17213,6 +17232,7 @@ class ClusterInstanceOptions:
17213
17232
  check_type(argname="argument parameters", value=parameters, expected_type=type_hints["parameters"])
17214
17233
  check_type(argname="argument performance_insight_encryption_key", value=performance_insight_encryption_key, expected_type=type_hints["performance_insight_encryption_key"])
17215
17234
  check_type(argname="argument performance_insight_retention", value=performance_insight_retention, expected_type=type_hints["performance_insight_retention"])
17235
+ check_type(argname="argument preferred_maintenance_window", value=preferred_maintenance_window, expected_type=type_hints["preferred_maintenance_window"])
17216
17236
  check_type(argname="argument publicly_accessible", value=publicly_accessible, expected_type=type_hints["publicly_accessible"])
17217
17237
  self._values: typing.Dict[builtins.str, typing.Any] = {}
17218
17238
  if allow_major_version_upgrade is not None:
@@ -17235,6 +17255,8 @@ class ClusterInstanceOptions:
17235
17255
  self._values["performance_insight_encryption_key"] = performance_insight_encryption_key
17236
17256
  if performance_insight_retention is not None:
17237
17257
  self._values["performance_insight_retention"] = performance_insight_retention
17258
+ if preferred_maintenance_window is not None:
17259
+ self._values["preferred_maintenance_window"] = preferred_maintenance_window
17238
17260
  if publicly_accessible is not None:
17239
17261
  self._values["publicly_accessible"] = publicly_accessible
17240
17262
 
@@ -17385,6 +17407,22 @@ class ClusterInstanceOptions:
17385
17407
  result = self._values.get("performance_insight_retention")
17386
17408
  return typing.cast(typing.Optional["PerformanceInsightRetention"], result)
17387
17409
 
17410
+ @builtins.property
17411
+ def preferred_maintenance_window(self) -> typing.Optional[builtins.str]:
17412
+ '''A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC).
17413
+
17414
+ Example: 'Sun:23:45-Mon:00:15'
17415
+
17416
+ :default:
17417
+
17418
+ - 30-minute window selected at random from an 8-hour block of time for
17419
+ each AWS Region, occurring on a random day of the week.
17420
+
17421
+ :see: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance
17422
+ '''
17423
+ result = self._values.get("preferred_maintenance_window")
17424
+ return typing.cast(typing.Optional[builtins.str], result)
17425
+
17388
17426
  @builtins.property
17389
17427
  def publicly_accessible(self) -> typing.Optional[builtins.bool]:
17390
17428
  '''Indicates whether the DB instance is an internet-facing instance.
@@ -17424,6 +17462,7 @@ class ClusterInstanceOptions:
17424
17462
  "parameters": "parameters",
17425
17463
  "performance_insight_encryption_key": "performanceInsightEncryptionKey",
17426
17464
  "performance_insight_retention": "performanceInsightRetention",
17465
+ "preferred_maintenance_window": "preferredMaintenanceWindow",
17427
17466
  "publicly_accessible": "publiclyAccessible",
17428
17467
  "instance_type": "instanceType",
17429
17468
  "promotion_tier": "promotionTier",
@@ -17443,6 +17482,7 @@ class ClusterInstanceProps(ClusterInstanceOptions):
17443
17482
  parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
17444
17483
  performance_insight_encryption_key: typing.Optional[_IKey_5f11635f] = None,
17445
17484
  performance_insight_retention: typing.Optional["PerformanceInsightRetention"] = None,
17485
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
17446
17486
  publicly_accessible: typing.Optional[builtins.bool] = None,
17447
17487
  instance_type: "ClusterInstanceType",
17448
17488
  promotion_tier: typing.Optional[jsii.Number] = None,
@@ -17459,6 +17499,7 @@ class ClusterInstanceProps(ClusterInstanceOptions):
17459
17499
  :param parameters: The parameters in the DBParameterGroup to create automatically. You can only specify parameterGroup or parameters but not both. You need to use a versioned engine to auto-generate a DBParameterGroup. Default: - None
17460
17500
  :param performance_insight_encryption_key: The AWS KMS key for encryption of Performance Insights data. Default: - default master key
17461
17501
  :param performance_insight_retention: The amount of time, in days, to retain Performance Insights data. Default: 7
17502
+ :param preferred_maintenance_window: A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). Example: 'Sun:23:45-Mon:00:15' Default: - 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.
17462
17503
  :param publicly_accessible: Indicates whether the DB instance is an internet-facing instance. If not specified, the cluster's vpcSubnets will be used to determine if the instance is internet-facing or not. Default: - ``true`` if the cluster's ``vpcSubnets`` is ``subnetType: SubnetType.PUBLIC``, ``false`` otherwise
17463
17504
  :param instance_type: The type of cluster instance to create. Can be either provisioned or serverless v2
17464
17505
  :param promotion_tier: The promotion tier of the cluster instance. This matters more for serverlessV2 instances. If a serverless instance is in tier 0-1 then it will scale with the writer. For provisioned instances this just determines the failover priority. If multiple instances have the same priority then one will be picked at random Default: 2
@@ -17493,6 +17534,7 @@ class ClusterInstanceProps(ClusterInstanceOptions):
17493
17534
  },
17494
17535
  performance_insight_encryption_key=key,
17495
17536
  performance_insight_retention=rds.PerformanceInsightRetention.DEFAULT,
17537
+ preferred_maintenance_window="preferredMaintenanceWindow",
17496
17538
  promotion_tier=123,
17497
17539
  publicly_accessible=False
17498
17540
  )
@@ -17509,6 +17551,7 @@ class ClusterInstanceProps(ClusterInstanceOptions):
17509
17551
  check_type(argname="argument parameters", value=parameters, expected_type=type_hints["parameters"])
17510
17552
  check_type(argname="argument performance_insight_encryption_key", value=performance_insight_encryption_key, expected_type=type_hints["performance_insight_encryption_key"])
17511
17553
  check_type(argname="argument performance_insight_retention", value=performance_insight_retention, expected_type=type_hints["performance_insight_retention"])
17554
+ check_type(argname="argument preferred_maintenance_window", value=preferred_maintenance_window, expected_type=type_hints["preferred_maintenance_window"])
17512
17555
  check_type(argname="argument publicly_accessible", value=publicly_accessible, expected_type=type_hints["publicly_accessible"])
17513
17556
  check_type(argname="argument instance_type", value=instance_type, expected_type=type_hints["instance_type"])
17514
17557
  check_type(argname="argument promotion_tier", value=promotion_tier, expected_type=type_hints["promotion_tier"])
@@ -17535,6 +17578,8 @@ class ClusterInstanceProps(ClusterInstanceOptions):
17535
17578
  self._values["performance_insight_encryption_key"] = performance_insight_encryption_key
17536
17579
  if performance_insight_retention is not None:
17537
17580
  self._values["performance_insight_retention"] = performance_insight_retention
17581
+ if preferred_maintenance_window is not None:
17582
+ self._values["preferred_maintenance_window"] = preferred_maintenance_window
17538
17583
  if publicly_accessible is not None:
17539
17584
  self._values["publicly_accessible"] = publicly_accessible
17540
17585
  if promotion_tier is not None:
@@ -17687,6 +17732,22 @@ class ClusterInstanceProps(ClusterInstanceOptions):
17687
17732
  result = self._values.get("performance_insight_retention")
17688
17733
  return typing.cast(typing.Optional["PerformanceInsightRetention"], result)
17689
17734
 
17735
+ @builtins.property
17736
+ def preferred_maintenance_window(self) -> typing.Optional[builtins.str]:
17737
+ '''A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC).
17738
+
17739
+ Example: 'Sun:23:45-Mon:00:15'
17740
+
17741
+ :default:
17742
+
17743
+ - 30-minute window selected at random from an 8-hour block of time for
17744
+ each AWS Region, occurring on a random day of the week.
17745
+
17746
+ :see: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance
17747
+ '''
17748
+ result = self._values.get("preferred_maintenance_window")
17749
+ return typing.cast(typing.Optional[builtins.str], result)
17750
+
17690
17751
  @builtins.property
17691
17752
  def publicly_accessible(self) -> typing.Optional[builtins.bool]:
17692
17753
  '''Indicates whether the DB instance is an internet-facing instance.
@@ -32949,6 +33010,7 @@ class ProcessorFeatures:
32949
33010
  "parameters": "parameters",
32950
33011
  "performance_insight_encryption_key": "performanceInsightEncryptionKey",
32951
33012
  "performance_insight_retention": "performanceInsightRetention",
33013
+ "preferred_maintenance_window": "preferredMaintenanceWindow",
32952
33014
  "publicly_accessible": "publiclyAccessible",
32953
33015
  "instance_type": "instanceType",
32954
33016
  "promotion_tier": "promotionTier",
@@ -32968,6 +33030,7 @@ class ProvisionedClusterInstanceProps(ClusterInstanceOptions):
32968
33030
  parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
32969
33031
  performance_insight_encryption_key: typing.Optional[_IKey_5f11635f] = None,
32970
33032
  performance_insight_retention: typing.Optional[PerformanceInsightRetention] = None,
33033
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
32971
33034
  publicly_accessible: typing.Optional[builtins.bool] = None,
32972
33035
  instance_type: typing.Optional[_InstanceType_f64915b9] = None,
32973
33036
  promotion_tier: typing.Optional[jsii.Number] = None,
@@ -32984,6 +33047,7 @@ class ProvisionedClusterInstanceProps(ClusterInstanceOptions):
32984
33047
  :param parameters: The parameters in the DBParameterGroup to create automatically. You can only specify parameterGroup or parameters but not both. You need to use a versioned engine to auto-generate a DBParameterGroup. Default: - None
32985
33048
  :param performance_insight_encryption_key: The AWS KMS key for encryption of Performance Insights data. Default: - default master key
32986
33049
  :param performance_insight_retention: The amount of time, in days, to retain Performance Insights data. Default: 7
33050
+ :param preferred_maintenance_window: A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). Example: 'Sun:23:45-Mon:00:15' Default: - 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.
32987
33051
  :param publicly_accessible: Indicates whether the DB instance is an internet-facing instance. If not specified, the cluster's vpcSubnets will be used to determine if the instance is internet-facing or not. Default: - ``true`` if the cluster's ``vpcSubnets`` is ``subnetType: SubnetType.PUBLIC``, ``false`` otherwise
32988
33052
  :param instance_type: The cluster instance type. Default: db.t3.medium
32989
33053
  :param promotion_tier: The promotion tier of the cluster instance. Can be between 0-15 For provisioned instances this just determines the failover priority. If multiple instances have the same priority then one will be picked at random Default: 2
@@ -33022,6 +33086,7 @@ class ProvisionedClusterInstanceProps(ClusterInstanceOptions):
33022
33086
  check_type(argname="argument parameters", value=parameters, expected_type=type_hints["parameters"])
33023
33087
  check_type(argname="argument performance_insight_encryption_key", value=performance_insight_encryption_key, expected_type=type_hints["performance_insight_encryption_key"])
33024
33088
  check_type(argname="argument performance_insight_retention", value=performance_insight_retention, expected_type=type_hints["performance_insight_retention"])
33089
+ check_type(argname="argument preferred_maintenance_window", value=preferred_maintenance_window, expected_type=type_hints["preferred_maintenance_window"])
33025
33090
  check_type(argname="argument publicly_accessible", value=publicly_accessible, expected_type=type_hints["publicly_accessible"])
33026
33091
  check_type(argname="argument instance_type", value=instance_type, expected_type=type_hints["instance_type"])
33027
33092
  check_type(argname="argument promotion_tier", value=promotion_tier, expected_type=type_hints["promotion_tier"])
@@ -33046,6 +33111,8 @@ class ProvisionedClusterInstanceProps(ClusterInstanceOptions):
33046
33111
  self._values["performance_insight_encryption_key"] = performance_insight_encryption_key
33047
33112
  if performance_insight_retention is not None:
33048
33113
  self._values["performance_insight_retention"] = performance_insight_retention
33114
+ if preferred_maintenance_window is not None:
33115
+ self._values["preferred_maintenance_window"] = preferred_maintenance_window
33049
33116
  if publicly_accessible is not None:
33050
33117
  self._values["publicly_accessible"] = publicly_accessible
33051
33118
  if instance_type is not None:
@@ -33200,6 +33267,22 @@ class ProvisionedClusterInstanceProps(ClusterInstanceOptions):
33200
33267
  result = self._values.get("performance_insight_retention")
33201
33268
  return typing.cast(typing.Optional[PerformanceInsightRetention], result)
33202
33269
 
33270
+ @builtins.property
33271
+ def preferred_maintenance_window(self) -> typing.Optional[builtins.str]:
33272
+ '''A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC).
33273
+
33274
+ Example: 'Sun:23:45-Mon:00:15'
33275
+
33276
+ :default:
33277
+
33278
+ - 30-minute window selected at random from an 8-hour block of time for
33279
+ each AWS Region, occurring on a random day of the week.
33280
+
33281
+ :see: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance
33282
+ '''
33283
+ result = self._values.get("preferred_maintenance_window")
33284
+ return typing.cast(typing.Optional[builtins.str], result)
33285
+
33203
33286
  @builtins.property
33204
33287
  def publicly_accessible(self) -> typing.Optional[builtins.bool]:
33205
33288
  '''Indicates whether the DB instance is an internet-facing instance.
@@ -35156,6 +35239,7 @@ class ServerlessScalingOptions:
35156
35239
  "parameters": "parameters",
35157
35240
  "performance_insight_encryption_key": "performanceInsightEncryptionKey",
35158
35241
  "performance_insight_retention": "performanceInsightRetention",
35242
+ "preferred_maintenance_window": "preferredMaintenanceWindow",
35159
35243
  "publicly_accessible": "publiclyAccessible",
35160
35244
  "scale_with_writer": "scaleWithWriter",
35161
35245
  },
@@ -35174,6 +35258,7 @@ class ServerlessV2ClusterInstanceProps(ClusterInstanceOptions):
35174
35258
  parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
35175
35259
  performance_insight_encryption_key: typing.Optional[_IKey_5f11635f] = None,
35176
35260
  performance_insight_retention: typing.Optional[PerformanceInsightRetention] = None,
35261
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
35177
35262
  publicly_accessible: typing.Optional[builtins.bool] = None,
35178
35263
  scale_with_writer: typing.Optional[builtins.bool] = None,
35179
35264
  ) -> None:
@@ -35189,6 +35274,7 @@ class ServerlessV2ClusterInstanceProps(ClusterInstanceOptions):
35189
35274
  :param parameters: The parameters in the DBParameterGroup to create automatically. You can only specify parameterGroup or parameters but not both. You need to use a versioned engine to auto-generate a DBParameterGroup. Default: - None
35190
35275
  :param performance_insight_encryption_key: The AWS KMS key for encryption of Performance Insights data. Default: - default master key
35191
35276
  :param performance_insight_retention: The amount of time, in days, to retain Performance Insights data. Default: 7
35277
+ :param preferred_maintenance_window: A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). Example: 'Sun:23:45-Mon:00:15' Default: - 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.
35192
35278
  :param publicly_accessible: Indicates whether the DB instance is an internet-facing instance. If not specified, the cluster's vpcSubnets will be used to determine if the instance is internet-facing or not. Default: - ``true`` if the cluster's ``vpcSubnets`` is ``subnetType: SubnetType.PUBLIC``, ``false`` otherwise
35193
35279
  :param scale_with_writer: Only applicable to reader instances. If this is true then the instance will be placed in promotion tier 1, otherwise it will be placed in promotion tier 2. For serverless v2 instances this means: - true: The serverless v2 reader will scale to match the writer instance (provisioned or serverless) - false: The serverless v2 reader will scale with the read workfload on the instance Default: false
35194
35280
 
@@ -35223,6 +35309,7 @@ class ServerlessV2ClusterInstanceProps(ClusterInstanceOptions):
35223
35309
  check_type(argname="argument parameters", value=parameters, expected_type=type_hints["parameters"])
35224
35310
  check_type(argname="argument performance_insight_encryption_key", value=performance_insight_encryption_key, expected_type=type_hints["performance_insight_encryption_key"])
35225
35311
  check_type(argname="argument performance_insight_retention", value=performance_insight_retention, expected_type=type_hints["performance_insight_retention"])
35312
+ check_type(argname="argument preferred_maintenance_window", value=preferred_maintenance_window, expected_type=type_hints["preferred_maintenance_window"])
35226
35313
  check_type(argname="argument publicly_accessible", value=publicly_accessible, expected_type=type_hints["publicly_accessible"])
35227
35314
  check_type(argname="argument scale_with_writer", value=scale_with_writer, expected_type=type_hints["scale_with_writer"])
35228
35315
  self._values: typing.Dict[builtins.str, typing.Any] = {}
@@ -35246,6 +35333,8 @@ class ServerlessV2ClusterInstanceProps(ClusterInstanceOptions):
35246
35333
  self._values["performance_insight_encryption_key"] = performance_insight_encryption_key
35247
35334
  if performance_insight_retention is not None:
35248
35335
  self._values["performance_insight_retention"] = performance_insight_retention
35336
+ if preferred_maintenance_window is not None:
35337
+ self._values["preferred_maintenance_window"] = preferred_maintenance_window
35249
35338
  if publicly_accessible is not None:
35250
35339
  self._values["publicly_accessible"] = publicly_accessible
35251
35340
  if scale_with_writer is not None:
@@ -35398,6 +35487,22 @@ class ServerlessV2ClusterInstanceProps(ClusterInstanceOptions):
35398
35487
  result = self._values.get("performance_insight_retention")
35399
35488
  return typing.cast(typing.Optional[PerformanceInsightRetention], result)
35400
35489
 
35490
+ @builtins.property
35491
+ def preferred_maintenance_window(self) -> typing.Optional[builtins.str]:
35492
+ '''A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC).
35493
+
35494
+ Example: 'Sun:23:45-Mon:00:15'
35495
+
35496
+ :default:
35497
+
35498
+ - 30-minute window selected at random from an 8-hour block of time for
35499
+ each AWS Region, occurring on a random day of the week.
35500
+
35501
+ :see: https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_UpgradeDBInstance.Maintenance.html#Concepts.DBMaintenance
35502
+ '''
35503
+ result = self._values.get("preferred_maintenance_window")
35504
+ return typing.cast(typing.Optional[builtins.str], result)
35505
+
35401
35506
  @builtins.property
35402
35507
  def publicly_accessible(self) -> typing.Optional[builtins.bool]:
35403
35508
  '''Indicates whether the DB instance is an internet-facing instance.
@@ -37123,6 +37228,7 @@ class ClusterInstance(
37123
37228
  parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
37124
37229
  performance_insight_encryption_key: typing.Optional[_IKey_5f11635f] = None,
37125
37230
  performance_insight_retention: typing.Optional[PerformanceInsightRetention] = None,
37231
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
37126
37232
  publicly_accessible: typing.Optional[builtins.bool] = None,
37127
37233
  ) -> IClusterInstance:
37128
37234
  '''Add a provisioned instance to the cluster.
@@ -37140,6 +37246,7 @@ class ClusterInstance(
37140
37246
  :param parameters: The parameters in the DBParameterGroup to create automatically. You can only specify parameterGroup or parameters but not both. You need to use a versioned engine to auto-generate a DBParameterGroup. Default: - None
37141
37247
  :param performance_insight_encryption_key: The AWS KMS key for encryption of Performance Insights data. Default: - default master key
37142
37248
  :param performance_insight_retention: The amount of time, in days, to retain Performance Insights data. Default: 7
37249
+ :param preferred_maintenance_window: A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). Example: 'Sun:23:45-Mon:00:15' Default: - 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.
37143
37250
  :param publicly_accessible: Indicates whether the DB instance is an internet-facing instance. If not specified, the cluster's vpcSubnets will be used to determine if the instance is internet-facing or not. Default: - ``true`` if the cluster's ``vpcSubnets`` is ``subnetType: SubnetType.PUBLIC``, ``false`` otherwise
37144
37251
 
37145
37252
  Example::
@@ -37164,6 +37271,7 @@ class ClusterInstance(
37164
37271
  parameters=parameters,
37165
37272
  performance_insight_encryption_key=performance_insight_encryption_key,
37166
37273
  performance_insight_retention=performance_insight_retention,
37274
+ preferred_maintenance_window=preferred_maintenance_window,
37167
37275
  publicly_accessible=publicly_accessible,
37168
37276
  )
37169
37277
 
@@ -37186,6 +37294,7 @@ class ClusterInstance(
37186
37294
  parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
37187
37295
  performance_insight_encryption_key: typing.Optional[_IKey_5f11635f] = None,
37188
37296
  performance_insight_retention: typing.Optional[PerformanceInsightRetention] = None,
37297
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
37189
37298
  publicly_accessible: typing.Optional[builtins.bool] = None,
37190
37299
  ) -> IClusterInstance:
37191
37300
  '''Add a serverless v2 instance to the cluster.
@@ -37202,6 +37311,7 @@ class ClusterInstance(
37202
37311
  :param parameters: The parameters in the DBParameterGroup to create automatically. You can only specify parameterGroup or parameters but not both. You need to use a versioned engine to auto-generate a DBParameterGroup. Default: - None
37203
37312
  :param performance_insight_encryption_key: The AWS KMS key for encryption of Performance Insights data. Default: - default master key
37204
37313
  :param performance_insight_retention: The amount of time, in days, to retain Performance Insights data. Default: 7
37314
+ :param preferred_maintenance_window: A preferred maintenance window day/time range. Should be specified as a range ddd:hh24:mi-ddd:hh24:mi (24H Clock UTC). Example: 'Sun:23:45-Mon:00:15' Default: - 30-minute window selected at random from an 8-hour block of time for each AWS Region, occurring on a random day of the week.
37205
37315
  :param publicly_accessible: Indicates whether the DB instance is an internet-facing instance. If not specified, the cluster's vpcSubnets will be used to determine if the instance is internet-facing or not. Default: - ``true`` if the cluster's ``vpcSubnets`` is ``subnetType: SubnetType.PUBLIC``, ``false`` otherwise
37206
37316
 
37207
37317
  Example::
@@ -37225,6 +37335,7 @@ class ClusterInstance(
37225
37335
  parameters=parameters,
37226
37336
  performance_insight_encryption_key=performance_insight_encryption_key,
37227
37337
  performance_insight_retention=performance_insight_retention,
37338
+ preferred_maintenance_window=preferred_maintenance_window,
37228
37339
  publicly_accessible=publicly_accessible,
37229
37340
  )
37230
37341
 
@@ -45589,6 +45700,7 @@ def _typecheckingstub__8cdde1ea7f85160803079277e8fcc0af34768579c1b17b771033b3c63
45589
45700
  parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
45590
45701
  performance_insight_encryption_key: typing.Optional[_IKey_5f11635f] = None,
45591
45702
  performance_insight_retention: typing.Optional[PerformanceInsightRetention] = None,
45703
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
45592
45704
  publicly_accessible: typing.Optional[builtins.bool] = None,
45593
45705
  ) -> None:
45594
45706
  """Type checking stubs"""
@@ -45606,6 +45718,7 @@ def _typecheckingstub__431d59239caf38b9912bfae3130d40eeb8bdb18e013240bac43c98015
45606
45718
  parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
45607
45719
  performance_insight_encryption_key: typing.Optional[_IKey_5f11635f] = None,
45608
45720
  performance_insight_retention: typing.Optional[PerformanceInsightRetention] = None,
45721
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
45609
45722
  publicly_accessible: typing.Optional[builtins.bool] = None,
45610
45723
  instance_type: ClusterInstanceType,
45611
45724
  promotion_tier: typing.Optional[jsii.Number] = None,
@@ -46469,6 +46582,7 @@ def _typecheckingstub__0d5c78a39da629a585066921d3ee78da795285acdbebe6935198fc929
46469
46582
  parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
46470
46583
  performance_insight_encryption_key: typing.Optional[_IKey_5f11635f] = None,
46471
46584
  performance_insight_retention: typing.Optional[PerformanceInsightRetention] = None,
46585
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
46472
46586
  publicly_accessible: typing.Optional[builtins.bool] = None,
46473
46587
  instance_type: typing.Optional[_InstanceType_f64915b9] = None,
46474
46588
  promotion_tier: typing.Optional[jsii.Number] = None,
@@ -46707,6 +46821,7 @@ def _typecheckingstub__c8fd71a155386e8ce12e74b8c5684dfdd43d26e347ef8bbb979e8a2c3
46707
46821
  parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
46708
46822
  performance_insight_encryption_key: typing.Optional[_IKey_5f11635f] = None,
46709
46823
  performance_insight_retention: typing.Optional[PerformanceInsightRetention] = None,
46824
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
46710
46825
  publicly_accessible: typing.Optional[builtins.bool] = None,
46711
46826
  scale_with_writer: typing.Optional[builtins.bool] = None,
46712
46827
  ) -> None:
@@ -46842,6 +46957,7 @@ def _typecheckingstub__d0d2cd14a2c7ed00bfb6fd9860c31cd0b1af1bff8343258b1b4a8d847
46842
46957
  parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
46843
46958
  performance_insight_encryption_key: typing.Optional[_IKey_5f11635f] = None,
46844
46959
  performance_insight_retention: typing.Optional[PerformanceInsightRetention] = None,
46960
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
46845
46961
  publicly_accessible: typing.Optional[builtins.bool] = None,
46846
46962
  ) -> None:
46847
46963
  """Type checking stubs"""
@@ -46861,6 +46977,7 @@ def _typecheckingstub__95714f22d2724c29931e2710712a92b10932588d2061fa1ceed93097e
46861
46977
  parameters: typing.Optional[typing.Mapping[builtins.str, builtins.str]] = None,
46862
46978
  performance_insight_encryption_key: typing.Optional[_IKey_5f11635f] = None,
46863
46979
  performance_insight_retention: typing.Optional[PerformanceInsightRetention] = None,
46980
+ preferred_maintenance_window: typing.Optional[builtins.str] = None,
46864
46981
  publicly_accessible: typing.Optional[builtins.bool] = None,
46865
46982
  ) -> None:
46866
46983
  """Type checking stubs"""