aws-cdk-lib 2.167.1__py3-none-any.whl → 2.168.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 (45) hide show
  1. aws_cdk/__init__.py +2081 -0
  2. aws_cdk/_jsii/__init__.py +1 -1
  3. aws_cdk/_jsii/{aws-cdk-lib@2.167.1.jsii.tgz → aws-cdk-lib@2.168.0.jsii.tgz} +0 -0
  4. aws_cdk/aws_applicationautoscaling/__init__.py +1691 -95
  5. aws_cdk/aws_applicationinsights/__init__.py +41 -0
  6. aws_cdk/aws_applicationsignals/__init__.py +117 -0
  7. aws_cdk/aws_autoscaling/__init__.py +441 -6
  8. aws_cdk/aws_batch/__init__.py +202 -5
  9. aws_cdk/aws_bedrock/__init__.py +12 -12
  10. aws_cdk/aws_cleanrooms/__init__.py +17 -8
  11. aws_cdk/aws_cloudformation/__init__.py +2571 -492
  12. aws_cdk/aws_cloudfront/__init__.py +231 -0
  13. aws_cdk/aws_cloudfront/experimental/__init__.py +5 -0
  14. aws_cdk/aws_cloudfront_origins/__init__.py +714 -132
  15. aws_cdk/aws_cloudtrail/__init__.py +52 -14
  16. aws_cdk/aws_codebuild/__init__.py +668 -2
  17. aws_cdk/aws_connectcampaignsv2/__init__.py +3376 -0
  18. aws_cdk/aws_dynamodb/__init__.py +332 -11
  19. aws_cdk/aws_ec2/__init__.py +13 -4
  20. aws_cdk/aws_ecs/__init__.py +213 -0
  21. aws_cdk/aws_elasticloadbalancingv2/__init__.py +160 -11
  22. aws_cdk/aws_fis/__init__.py +495 -0
  23. aws_cdk/aws_gamelift/__init__.py +3101 -1135
  24. aws_cdk/aws_kinesisfirehose/__init__.py +696 -5
  25. aws_cdk/aws_lambda/__init__.py +634 -259
  26. aws_cdk/aws_lambda_destinations/__init__.py +73 -0
  27. aws_cdk/aws_lambda_event_sources/__init__.py +102 -2
  28. aws_cdk/aws_location/__init__.py +18 -18
  29. aws_cdk/aws_mediastore/__init__.py +22 -10
  30. aws_cdk/aws_opensearchservice/__init__.py +6 -0
  31. aws_cdk/aws_quicksight/__init__.py +35 -19
  32. aws_cdk/aws_rds/__init__.py +51 -3
  33. aws_cdk/aws_securityhub/__init__.py +11 -14
  34. aws_cdk/aws_ses/__init__.py +58 -5
  35. aws_cdk/aws_stepfunctions_tasks/__init__.py +1601 -8
  36. aws_cdk/aws_transfer/__init__.py +0 -8
  37. aws_cdk/aws_vpclattice/__init__.py +39 -0
  38. aws_cdk/aws_wisdom/__init__.py +134 -85
  39. aws_cdk/cx_api/__init__.py +6 -6
  40. {aws_cdk_lib-2.167.1.dist-info → aws_cdk_lib-2.168.0.dist-info}/METADATA +1 -1
  41. {aws_cdk_lib-2.167.1.dist-info → aws_cdk_lib-2.168.0.dist-info}/RECORD +45 -44
  42. {aws_cdk_lib-2.167.1.dist-info → aws_cdk_lib-2.168.0.dist-info}/LICENSE +0 -0
  43. {aws_cdk_lib-2.167.1.dist-info → aws_cdk_lib-2.168.0.dist-info}/NOTICE +0 -0
  44. {aws_cdk_lib-2.167.1.dist-info → aws_cdk_lib-2.168.0.dist-info}/WHEEL +0 -0
  45. {aws_cdk_lib-2.167.1.dist-info → aws_cdk_lib-2.168.0.dist-info}/top_level.txt +0 -0
@@ -1292,6 +1292,62 @@ tasks.EventBridgePutEvents(self, "Send an event to EventBridge",
1292
1292
  )
1293
1293
  ```
1294
1294
 
1295
+ ## EventBridge Scheduler
1296
+
1297
+ You can call EventBridge Scheduler APIs from a `Task` state.
1298
+ Read more about calling Scheduler APIs [here](https://docs.aws.amazon.com/scheduler/latest/APIReference/API_Operations.html)
1299
+
1300
+ ### Create Scheduler
1301
+
1302
+ The [CreateSchedule](https://docs.aws.amazon.com/scheduler/latest/APIReference/API_CreateSchedule.html) API creates a new schedule.
1303
+
1304
+ Here is an example of how to create a schedule that puts an event to SQS queue every 5 minutes:
1305
+
1306
+ ```python
1307
+ import aws_cdk.aws_scheduler as scheduler
1308
+ import aws_cdk.aws_kms as kms
1309
+
1310
+ # key: kms.Key
1311
+ # schedule_group: scheduler.CfnScheduleGroup
1312
+ # target_queue: sqs.Queue
1313
+ # dead_letter_queue: sqs.Queue
1314
+
1315
+
1316
+ scheduler_role = iam.Role(self, "SchedulerRole",
1317
+ assumed_by=iam.ServicePrincipal("scheduler.amazonaws.com")
1318
+ )
1319
+ # To send the message to the queue
1320
+ # This policy changes depending on the type of target.
1321
+ scheduler_role.add_to_principal_policy(iam.PolicyStatement(
1322
+ actions=["sqs:SendMessage"],
1323
+ resources=[target_queue.queue_arn]
1324
+ ))
1325
+
1326
+ create_schedule_task1 = tasks.EventBridgeSchedulerCreateScheduleTask(self, "createSchedule",
1327
+ schedule_name="TestSchedule",
1328
+ action_after_completion=tasks.ActionAfterCompletion.NONE,
1329
+ client_token="testToken",
1330
+ description="TestDescription",
1331
+ start_date=Date(),
1332
+ end_date=Date(Date().get_time() + 1000 * 60 * 60),
1333
+ flexible_time_window=Duration.minutes(5),
1334
+ group_name=schedule_group.ref,
1335
+ kms_key=key,
1336
+ schedule=tasks.Schedule.rate(Duration.minutes(5)),
1337
+ timezone="UTC",
1338
+ enabled=True,
1339
+ target=tasks.EventBridgeSchedulerTarget(
1340
+ arn=target_queue.queue_arn,
1341
+ role=scheduler_role,
1342
+ retry_policy=tasks.RetryPolicy(
1343
+ maximum_retry_attempts=2,
1344
+ maximum_event_age=Duration.minutes(5)
1345
+ ),
1346
+ dead_letter_queue=dead_letter_queue
1347
+ )
1348
+ )
1349
+ ```
1350
+
1295
1351
  ## Glue
1296
1352
 
1297
1353
  Step Functions supports [AWS Glue](https://docs.aws.amazon.com/step-functions/latest/dg/connect-glue.html) through the service integration pattern.
@@ -2082,6 +2138,64 @@ class AcceleratorType(
2082
2138
  return typing.cast(builtins.str, jsii.invoke(self, "toString", []))
2083
2139
 
2084
2140
 
2141
+ @jsii.enum(jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.ActionAfterCompletion")
2142
+ class ActionAfterCompletion(enum.Enum):
2143
+ '''The action that EventBridge Scheduler applies to the schedule after the schedule completes invoking the target.
2144
+
2145
+ :exampleMetadata: infused
2146
+
2147
+ Example::
2148
+
2149
+ import aws_cdk.aws_scheduler as scheduler
2150
+ import aws_cdk.aws_kms as kms
2151
+
2152
+ # key: kms.Key
2153
+ # schedule_group: scheduler.CfnScheduleGroup
2154
+ # target_queue: sqs.Queue
2155
+ # dead_letter_queue: sqs.Queue
2156
+
2157
+
2158
+ scheduler_role = iam.Role(self, "SchedulerRole",
2159
+ assumed_by=iam.ServicePrincipal("scheduler.amazonaws.com")
2160
+ )
2161
+ # To send the message to the queue
2162
+ # This policy changes depending on the type of target.
2163
+ scheduler_role.add_to_principal_policy(iam.PolicyStatement(
2164
+ actions=["sqs:SendMessage"],
2165
+ resources=[target_queue.queue_arn]
2166
+ ))
2167
+
2168
+ create_schedule_task1 = tasks.EventBridgeSchedulerCreateScheduleTask(self, "createSchedule",
2169
+ schedule_name="TestSchedule",
2170
+ action_after_completion=tasks.ActionAfterCompletion.NONE,
2171
+ client_token="testToken",
2172
+ description="TestDescription",
2173
+ start_date=Date(),
2174
+ end_date=Date(Date().get_time() + 1000 * 60 * 60),
2175
+ flexible_time_window=Duration.minutes(5),
2176
+ group_name=schedule_group.ref,
2177
+ kms_key=key,
2178
+ schedule=tasks.Schedule.rate(Duration.minutes(5)),
2179
+ timezone="UTC",
2180
+ enabled=True,
2181
+ target=tasks.EventBridgeSchedulerTarget(
2182
+ arn=target_queue.queue_arn,
2183
+ role=scheduler_role,
2184
+ retry_policy=tasks.RetryPolicy(
2185
+ maximum_retry_attempts=2,
2186
+ maximum_event_age=Duration.minutes(5)
2187
+ ),
2188
+ dead_letter_queue=dead_letter_queue
2189
+ )
2190
+ )
2191
+ '''
2192
+
2193
+ NONE = "NONE"
2194
+ '''Takes no action.'''
2195
+ DELETE = "DELETE"
2196
+ '''Deletes the schedule.'''
2197
+
2198
+
2085
2199
  @jsii.enum(jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.ActionOnFailure")
2086
2200
  class ActionOnFailure(enum.Enum):
2087
2201
  '''The action to take when the cluster step fails.
@@ -9807,6 +9921,147 @@ class ContainerOverrides:
9807
9921
  )
9808
9922
 
9809
9923
 
9924
+ @jsii.data_type(
9925
+ jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.CronOptions",
9926
+ jsii_struct_bases=[],
9927
+ name_mapping={
9928
+ "day": "day",
9929
+ "hour": "hour",
9930
+ "minute": "minute",
9931
+ "month": "month",
9932
+ "week_day": "weekDay",
9933
+ "year": "year",
9934
+ },
9935
+ )
9936
+ class CronOptions:
9937
+ def __init__(
9938
+ self,
9939
+ *,
9940
+ day: typing.Optional[builtins.str] = None,
9941
+ hour: typing.Optional[builtins.str] = None,
9942
+ minute: typing.Optional[builtins.str] = None,
9943
+ month: typing.Optional[builtins.str] = None,
9944
+ week_day: typing.Optional[builtins.str] = None,
9945
+ year: typing.Optional[builtins.str] = None,
9946
+ ) -> None:
9947
+ '''Options to configure a cron expression.
9948
+
9949
+ All fields are strings so you can use complex expressions. Absence of
9950
+ a field implies '*' or '?', whichever one is appropriate.
9951
+
9952
+ :param day: The day of the month to run this rule at. Default: - Every day of the month
9953
+ :param hour: The hour to run this rule at. Default: - Every hour
9954
+ :param minute: The minute to run this rule at. Default: - Every minute
9955
+ :param month: The month to run this rule at. Default: - Every month
9956
+ :param week_day: The day of the week to run this rule at. Default: - Whichever day of the week that ``day`` falls on
9957
+ :param year: The year to run this rule at. Default: - Every year
9958
+
9959
+ :see: https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/CloudWatch_Synthetics_Canaries_cron.html
9960
+ :exampleMetadata: fixture=_generated
9961
+
9962
+ Example::
9963
+
9964
+ # The code below shows an example of how to instantiate this type.
9965
+ # The values are placeholders you should change.
9966
+ from aws_cdk import aws_stepfunctions_tasks as stepfunctions_tasks
9967
+
9968
+ cron_options = stepfunctions_tasks.CronOptions(
9969
+ day="day",
9970
+ hour="hour",
9971
+ minute="minute",
9972
+ month="month",
9973
+ week_day="weekDay",
9974
+ year="year"
9975
+ )
9976
+ '''
9977
+ if __debug__:
9978
+ type_hints = typing.get_type_hints(_typecheckingstub__3ded07e1f80001916cedf33047f0de79b459fade9caa718d154ce12553ccfd4b)
9979
+ check_type(argname="argument day", value=day, expected_type=type_hints["day"])
9980
+ check_type(argname="argument hour", value=hour, expected_type=type_hints["hour"])
9981
+ check_type(argname="argument minute", value=minute, expected_type=type_hints["minute"])
9982
+ check_type(argname="argument month", value=month, expected_type=type_hints["month"])
9983
+ check_type(argname="argument week_day", value=week_day, expected_type=type_hints["week_day"])
9984
+ check_type(argname="argument year", value=year, expected_type=type_hints["year"])
9985
+ self._values: typing.Dict[builtins.str, typing.Any] = {}
9986
+ if day is not None:
9987
+ self._values["day"] = day
9988
+ if hour is not None:
9989
+ self._values["hour"] = hour
9990
+ if minute is not None:
9991
+ self._values["minute"] = minute
9992
+ if month is not None:
9993
+ self._values["month"] = month
9994
+ if week_day is not None:
9995
+ self._values["week_day"] = week_day
9996
+ if year is not None:
9997
+ self._values["year"] = year
9998
+
9999
+ @builtins.property
10000
+ def day(self) -> typing.Optional[builtins.str]:
10001
+ '''The day of the month to run this rule at.
10002
+
10003
+ :default: - Every day of the month
10004
+ '''
10005
+ result = self._values.get("day")
10006
+ return typing.cast(typing.Optional[builtins.str], result)
10007
+
10008
+ @builtins.property
10009
+ def hour(self) -> typing.Optional[builtins.str]:
10010
+ '''The hour to run this rule at.
10011
+
10012
+ :default: - Every hour
10013
+ '''
10014
+ result = self._values.get("hour")
10015
+ return typing.cast(typing.Optional[builtins.str], result)
10016
+
10017
+ @builtins.property
10018
+ def minute(self) -> typing.Optional[builtins.str]:
10019
+ '''The minute to run this rule at.
10020
+
10021
+ :default: - Every minute
10022
+ '''
10023
+ result = self._values.get("minute")
10024
+ return typing.cast(typing.Optional[builtins.str], result)
10025
+
10026
+ @builtins.property
10027
+ def month(self) -> typing.Optional[builtins.str]:
10028
+ '''The month to run this rule at.
10029
+
10030
+ :default: - Every month
10031
+ '''
10032
+ result = self._values.get("month")
10033
+ return typing.cast(typing.Optional[builtins.str], result)
10034
+
10035
+ @builtins.property
10036
+ def week_day(self) -> typing.Optional[builtins.str]:
10037
+ '''The day of the week to run this rule at.
10038
+
10039
+ :default: - Whichever day of the week that ``day`` falls on
10040
+ '''
10041
+ result = self._values.get("week_day")
10042
+ return typing.cast(typing.Optional[builtins.str], result)
10043
+
10044
+ @builtins.property
10045
+ def year(self) -> typing.Optional[builtins.str]:
10046
+ '''The year to run this rule at.
10047
+
10048
+ :default: - Every year
10049
+ '''
10050
+ result = self._values.get("year")
10051
+ return typing.cast(typing.Optional[builtins.str], result)
10052
+
10053
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
10054
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
10055
+
10056
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
10057
+ return not (rhs == self)
10058
+
10059
+ def __repr__(self) -> str:
10060
+ return "CronOptions(%s)" % ", ".join(
10061
+ k + "=" + repr(v) for k, v in self._values.items()
10062
+ )
10063
+
10064
+
9810
10065
  @jsii.data_type(
9811
10066
  jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.DataSource",
9812
10067
  jsii_struct_bases=[],
@@ -23271,15 +23526,683 @@ class EventBridgePutEventsProps(_TaskStateBaseProps_3a62b6d0):
23271
23526
  return typing.cast(typing.Optional[_Duration_4839e8c3], result)
23272
23527
 
23273
23528
  @builtins.property
23274
- def entries(self) -> typing.List[EventBridgePutEventsEntry]:
23275
- '''The entries that will be sent.
23529
+ def entries(self) -> typing.List[EventBridgePutEventsEntry]:
23530
+ '''The entries that will be sent.
23531
+
23532
+ Minimum number of entries is 1 and maximum is 10,
23533
+ unless `PutEvents API limit <https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html#API_PutEvents_RequestSyntax>`_ has changed.
23534
+ '''
23535
+ result = self._values.get("entries")
23536
+ assert result is not None, "Required property 'entries' is missing"
23537
+ return typing.cast(typing.List[EventBridgePutEventsEntry], result)
23538
+
23539
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
23540
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
23541
+
23542
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
23543
+ return not (rhs == self)
23544
+
23545
+ def __repr__(self) -> str:
23546
+ return "EventBridgePutEventsProps(%s)" % ", ".join(
23547
+ k + "=" + repr(v) for k, v in self._values.items()
23548
+ )
23549
+
23550
+
23551
+ class EventBridgeSchedulerCreateScheduleTask(
23552
+ _TaskStateBase_b5c0a816,
23553
+ metaclass=jsii.JSIIMeta,
23554
+ jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.EventBridgeSchedulerCreateScheduleTask",
23555
+ ):
23556
+ '''Create a new AWS EventBridge Scheduler schedule.
23557
+
23558
+ :see: https://docs.aws.amazon.com/scheduler/latest/APIReference/API_CreateSchedule.html
23559
+ :exampleMetadata: infused
23560
+
23561
+ Example::
23562
+
23563
+ import aws_cdk.aws_scheduler as scheduler
23564
+ import aws_cdk.aws_kms as kms
23565
+
23566
+ # key: kms.Key
23567
+ # schedule_group: scheduler.CfnScheduleGroup
23568
+ # target_queue: sqs.Queue
23569
+ # dead_letter_queue: sqs.Queue
23570
+
23571
+
23572
+ scheduler_role = iam.Role(self, "SchedulerRole",
23573
+ assumed_by=iam.ServicePrincipal("scheduler.amazonaws.com")
23574
+ )
23575
+ # To send the message to the queue
23576
+ # This policy changes depending on the type of target.
23577
+ scheduler_role.add_to_principal_policy(iam.PolicyStatement(
23578
+ actions=["sqs:SendMessage"],
23579
+ resources=[target_queue.queue_arn]
23580
+ ))
23581
+
23582
+ create_schedule_task1 = tasks.EventBridgeSchedulerCreateScheduleTask(self, "createSchedule",
23583
+ schedule_name="TestSchedule",
23584
+ action_after_completion=tasks.ActionAfterCompletion.NONE,
23585
+ client_token="testToken",
23586
+ description="TestDescription",
23587
+ start_date=Date(),
23588
+ end_date=Date(Date().get_time() + 1000 * 60 * 60),
23589
+ flexible_time_window=Duration.minutes(5),
23590
+ group_name=schedule_group.ref,
23591
+ kms_key=key,
23592
+ schedule=tasks.Schedule.rate(Duration.minutes(5)),
23593
+ timezone="UTC",
23594
+ enabled=True,
23595
+ target=tasks.EventBridgeSchedulerTarget(
23596
+ arn=target_queue.queue_arn,
23597
+ role=scheduler_role,
23598
+ retry_policy=tasks.RetryPolicy(
23599
+ maximum_retry_attempts=2,
23600
+ maximum_event_age=Duration.minutes(5)
23601
+ ),
23602
+ dead_letter_queue=dead_letter_queue
23603
+ )
23604
+ )
23605
+ '''
23606
+
23607
+ def __init__(
23608
+ self,
23609
+ scope: _constructs_77d1e7e8.Construct,
23610
+ id: builtins.str,
23611
+ *,
23612
+ schedule: "Schedule",
23613
+ schedule_name: builtins.str,
23614
+ target: "EventBridgeSchedulerTarget",
23615
+ action_after_completion: typing.Optional[ActionAfterCompletion] = None,
23616
+ client_token: typing.Optional[builtins.str] = None,
23617
+ description: typing.Optional[builtins.str] = None,
23618
+ enabled: typing.Optional[builtins.bool] = None,
23619
+ end_date: typing.Optional[datetime.datetime] = None,
23620
+ flexible_time_window: typing.Optional[_Duration_4839e8c3] = None,
23621
+ group_name: typing.Optional[builtins.str] = None,
23622
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
23623
+ start_date: typing.Optional[datetime.datetime] = None,
23624
+ timezone: typing.Optional[builtins.str] = None,
23625
+ comment: typing.Optional[builtins.str] = None,
23626
+ credentials: typing.Optional[typing.Union[_Credentials_2cd64c6b, typing.Dict[builtins.str, typing.Any]]] = None,
23627
+ heartbeat: typing.Optional[_Duration_4839e8c3] = None,
23628
+ heartbeat_timeout: typing.Optional[_Timeout_d7c10551] = None,
23629
+ input_path: typing.Optional[builtins.str] = None,
23630
+ integration_pattern: typing.Optional[_IntegrationPattern_949291bc] = None,
23631
+ output_path: typing.Optional[builtins.str] = None,
23632
+ result_path: typing.Optional[builtins.str] = None,
23633
+ result_selector: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
23634
+ state_name: typing.Optional[builtins.str] = None,
23635
+ task_timeout: typing.Optional[_Timeout_d7c10551] = None,
23636
+ timeout: typing.Optional[_Duration_4839e8c3] = None,
23637
+ ) -> None:
23638
+ '''
23639
+ :param scope: -
23640
+ :param id: Descriptive identifier for this chainable.
23641
+ :param schedule: The schedule that defines when the schedule will trigger.
23642
+ :param schedule_name: Schedule name.
23643
+ :param target: The schedule's target.
23644
+ :param action_after_completion: Specifies the action that EventBridge Scheduler applies to the schedule after the schedule completes invoking the target. Default: ActionAfterCompletion.NONE
23645
+ :param client_token: Unique, case-sensitive identifier to ensure the idempotency of the request. Default: - Automatically generated
23646
+ :param description: The description for the schedule. Default: - No description
23647
+ :param enabled: Specifies whether the schedule is enabled or disabled. Default: true
23648
+ :param end_date: The date, in UTC, before which the schedule can invoke its target. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify. EventBridge Scheduler ignores EndDate for one-time schedules. Default: - No end date
23649
+ :param flexible_time_window: The maximum time window during which a schedule can be invoked. Minimum value is 1 minute. Maximum value is 1440 minutes (1 day). Default: - Flexible time window is not enabled.
23650
+ :param group_name: The name of the schedule group to associate with this schedule. Default: - The default schedule group is used.
23651
+ :param kms_key: The customer managed KMS key that EventBridge Scheduler will use to encrypt and decrypt payload. Default: - Use automatically generated KMS key
23652
+ :param start_date: The date, in UTC, after which the schedule can begin invoking its target. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify. EventBridge Scheduler ignores StartDate for one-time schedules. Default: - No start date
23653
+ :param timezone: The timezone in which the scheduling expression is evaluated. Default: - UTC
23654
+ :param comment: An optional description for this state. Default: - No comment
23655
+ :param credentials: Credentials for an IAM Role that the State Machine assumes for executing the task. This enables cross-account resource invocations. Default: - None (Task is executed using the State Machine's execution role)
23656
+ :param heartbeat: (deprecated) Timeout for the heartbeat. Default: - None
23657
+ :param heartbeat_timeout: Timeout for the heartbeat. [disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface Default: - None
23658
+ :param input_path: JSONPath expression to select part of the state to be the input to this state. May also be the special value JsonPath.DISCARD, which will cause the effective input to be the empty object {}. Default: - The entire task input (JSON path '$')
23659
+ :param integration_pattern: AWS Step Functions integrates with services directly in the Amazon States Language. You can control these AWS services using service integration patterns. Depending on the AWS Service, the Service Integration Pattern availability will vary. Default: - ``IntegrationPattern.REQUEST_RESPONSE`` for most tasks. ``IntegrationPattern.RUN_JOB`` for the following exceptions: ``BatchSubmitJob``, ``EmrAddStep``, ``EmrCreateCluster``, ``EmrTerminationCluster``, and ``EmrContainersStartJobRun``.
23660
+ :param output_path: JSONPath expression to select select a portion of the state output to pass to the next state. May also be the special value JsonPath.DISCARD, which will cause the effective output to be the empty object {}. Default: - The entire JSON node determined by the state input, the task result, and resultPath is passed to the next state (JSON path '$')
23661
+ :param result_path: JSONPath expression to indicate where to inject the state's output. May also be the special value JsonPath.DISCARD, which will cause the state's input to become its output. Default: - Replaces the entire input with the result (JSON path '$')
23662
+ :param result_selector: The JSON that will replace the state's raw result and become the effective result before ResultPath is applied. You can use ResultSelector to create a payload with values that are static or selected from the state's raw result. Default: - None
23663
+ :param state_name: Optional name for this state. Default: - The construct ID will be used as state name
23664
+ :param task_timeout: Timeout for the task. [disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface Default: - None
23665
+ :param timeout: (deprecated) Timeout for the task. Default: - None
23666
+ '''
23667
+ if __debug__:
23668
+ type_hints = typing.get_type_hints(_typecheckingstub__d4cb892d1936cdb9cedbfb77092003022fa30c87f9067911038653144e7000e1)
23669
+ check_type(argname="argument scope", value=scope, expected_type=type_hints["scope"])
23670
+ check_type(argname="argument id", value=id, expected_type=type_hints["id"])
23671
+ props = EventBridgeSchedulerCreateScheduleTaskProps(
23672
+ schedule=schedule,
23673
+ schedule_name=schedule_name,
23674
+ target=target,
23675
+ action_after_completion=action_after_completion,
23676
+ client_token=client_token,
23677
+ description=description,
23678
+ enabled=enabled,
23679
+ end_date=end_date,
23680
+ flexible_time_window=flexible_time_window,
23681
+ group_name=group_name,
23682
+ kms_key=kms_key,
23683
+ start_date=start_date,
23684
+ timezone=timezone,
23685
+ comment=comment,
23686
+ credentials=credentials,
23687
+ heartbeat=heartbeat,
23688
+ heartbeat_timeout=heartbeat_timeout,
23689
+ input_path=input_path,
23690
+ integration_pattern=integration_pattern,
23691
+ output_path=output_path,
23692
+ result_path=result_path,
23693
+ result_selector=result_selector,
23694
+ state_name=state_name,
23695
+ task_timeout=task_timeout,
23696
+ timeout=timeout,
23697
+ )
23698
+
23699
+ jsii.create(self.__class__, self, [scope, id, props])
23700
+
23701
+ @builtins.property
23702
+ @jsii.member(jsii_name="taskMetrics")
23703
+ def _task_metrics(self) -> typing.Optional[_TaskMetricsConfig_32ea9403]:
23704
+ return typing.cast(typing.Optional[_TaskMetricsConfig_32ea9403], jsii.get(self, "taskMetrics"))
23705
+
23706
+ @builtins.property
23707
+ @jsii.member(jsii_name="taskPolicies")
23708
+ def _task_policies(self) -> typing.Optional[typing.List[_PolicyStatement_0fe33853]]:
23709
+ return typing.cast(typing.Optional[typing.List[_PolicyStatement_0fe33853]], jsii.get(self, "taskPolicies"))
23710
+
23711
+
23712
+ @jsii.data_type(
23713
+ jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.EventBridgeSchedulerCreateScheduleTaskProps",
23714
+ jsii_struct_bases=[_TaskStateBaseProps_3a62b6d0],
23715
+ name_mapping={
23716
+ "comment": "comment",
23717
+ "credentials": "credentials",
23718
+ "heartbeat": "heartbeat",
23719
+ "heartbeat_timeout": "heartbeatTimeout",
23720
+ "input_path": "inputPath",
23721
+ "integration_pattern": "integrationPattern",
23722
+ "output_path": "outputPath",
23723
+ "result_path": "resultPath",
23724
+ "result_selector": "resultSelector",
23725
+ "state_name": "stateName",
23726
+ "task_timeout": "taskTimeout",
23727
+ "timeout": "timeout",
23728
+ "schedule": "schedule",
23729
+ "schedule_name": "scheduleName",
23730
+ "target": "target",
23731
+ "action_after_completion": "actionAfterCompletion",
23732
+ "client_token": "clientToken",
23733
+ "description": "description",
23734
+ "enabled": "enabled",
23735
+ "end_date": "endDate",
23736
+ "flexible_time_window": "flexibleTimeWindow",
23737
+ "group_name": "groupName",
23738
+ "kms_key": "kmsKey",
23739
+ "start_date": "startDate",
23740
+ "timezone": "timezone",
23741
+ },
23742
+ )
23743
+ class EventBridgeSchedulerCreateScheduleTaskProps(_TaskStateBaseProps_3a62b6d0):
23744
+ def __init__(
23745
+ self,
23746
+ *,
23747
+ comment: typing.Optional[builtins.str] = None,
23748
+ credentials: typing.Optional[typing.Union[_Credentials_2cd64c6b, typing.Dict[builtins.str, typing.Any]]] = None,
23749
+ heartbeat: typing.Optional[_Duration_4839e8c3] = None,
23750
+ heartbeat_timeout: typing.Optional[_Timeout_d7c10551] = None,
23751
+ input_path: typing.Optional[builtins.str] = None,
23752
+ integration_pattern: typing.Optional[_IntegrationPattern_949291bc] = None,
23753
+ output_path: typing.Optional[builtins.str] = None,
23754
+ result_path: typing.Optional[builtins.str] = None,
23755
+ result_selector: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
23756
+ state_name: typing.Optional[builtins.str] = None,
23757
+ task_timeout: typing.Optional[_Timeout_d7c10551] = None,
23758
+ timeout: typing.Optional[_Duration_4839e8c3] = None,
23759
+ schedule: "Schedule",
23760
+ schedule_name: builtins.str,
23761
+ target: "EventBridgeSchedulerTarget",
23762
+ action_after_completion: typing.Optional[ActionAfterCompletion] = None,
23763
+ client_token: typing.Optional[builtins.str] = None,
23764
+ description: typing.Optional[builtins.str] = None,
23765
+ enabled: typing.Optional[builtins.bool] = None,
23766
+ end_date: typing.Optional[datetime.datetime] = None,
23767
+ flexible_time_window: typing.Optional[_Duration_4839e8c3] = None,
23768
+ group_name: typing.Optional[builtins.str] = None,
23769
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
23770
+ start_date: typing.Optional[datetime.datetime] = None,
23771
+ timezone: typing.Optional[builtins.str] = None,
23772
+ ) -> None:
23773
+ '''Properties for creating an AWS EventBridge Scheduler schedule.
23774
+
23775
+ :param comment: An optional description for this state. Default: - No comment
23776
+ :param credentials: Credentials for an IAM Role that the State Machine assumes for executing the task. This enables cross-account resource invocations. Default: - None (Task is executed using the State Machine's execution role)
23777
+ :param heartbeat: (deprecated) Timeout for the heartbeat. Default: - None
23778
+ :param heartbeat_timeout: Timeout for the heartbeat. [disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface Default: - None
23779
+ :param input_path: JSONPath expression to select part of the state to be the input to this state. May also be the special value JsonPath.DISCARD, which will cause the effective input to be the empty object {}. Default: - The entire task input (JSON path '$')
23780
+ :param integration_pattern: AWS Step Functions integrates with services directly in the Amazon States Language. You can control these AWS services using service integration patterns. Depending on the AWS Service, the Service Integration Pattern availability will vary. Default: - ``IntegrationPattern.REQUEST_RESPONSE`` for most tasks. ``IntegrationPattern.RUN_JOB`` for the following exceptions: ``BatchSubmitJob``, ``EmrAddStep``, ``EmrCreateCluster``, ``EmrTerminationCluster``, and ``EmrContainersStartJobRun``.
23781
+ :param output_path: JSONPath expression to select select a portion of the state output to pass to the next state. May also be the special value JsonPath.DISCARD, which will cause the effective output to be the empty object {}. Default: - The entire JSON node determined by the state input, the task result, and resultPath is passed to the next state (JSON path '$')
23782
+ :param result_path: JSONPath expression to indicate where to inject the state's output. May also be the special value JsonPath.DISCARD, which will cause the state's input to become its output. Default: - Replaces the entire input with the result (JSON path '$')
23783
+ :param result_selector: The JSON that will replace the state's raw result and become the effective result before ResultPath is applied. You can use ResultSelector to create a payload with values that are static or selected from the state's raw result. Default: - None
23784
+ :param state_name: Optional name for this state. Default: - The construct ID will be used as state name
23785
+ :param task_timeout: Timeout for the task. [disable-awslint:duration-prop-type] is needed because all props interface in aws-stepfunctions-tasks extend this interface Default: - None
23786
+ :param timeout: (deprecated) Timeout for the task. Default: - None
23787
+ :param schedule: The schedule that defines when the schedule will trigger.
23788
+ :param schedule_name: Schedule name.
23789
+ :param target: The schedule's target.
23790
+ :param action_after_completion: Specifies the action that EventBridge Scheduler applies to the schedule after the schedule completes invoking the target. Default: ActionAfterCompletion.NONE
23791
+ :param client_token: Unique, case-sensitive identifier to ensure the idempotency of the request. Default: - Automatically generated
23792
+ :param description: The description for the schedule. Default: - No description
23793
+ :param enabled: Specifies whether the schedule is enabled or disabled. Default: true
23794
+ :param end_date: The date, in UTC, before which the schedule can invoke its target. Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify. EventBridge Scheduler ignores EndDate for one-time schedules. Default: - No end date
23795
+ :param flexible_time_window: The maximum time window during which a schedule can be invoked. Minimum value is 1 minute. Maximum value is 1440 minutes (1 day). Default: - Flexible time window is not enabled.
23796
+ :param group_name: The name of the schedule group to associate with this schedule. Default: - The default schedule group is used.
23797
+ :param kms_key: The customer managed KMS key that EventBridge Scheduler will use to encrypt and decrypt payload. Default: - Use automatically generated KMS key
23798
+ :param start_date: The date, in UTC, after which the schedule can begin invoking its target. Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify. EventBridge Scheduler ignores StartDate for one-time schedules. Default: - No start date
23799
+ :param timezone: The timezone in which the scheduling expression is evaluated. Default: - UTC
23800
+
23801
+ :exampleMetadata: infused
23802
+
23803
+ Example::
23804
+
23805
+ import aws_cdk.aws_scheduler as scheduler
23806
+ import aws_cdk.aws_kms as kms
23807
+
23808
+ # key: kms.Key
23809
+ # schedule_group: scheduler.CfnScheduleGroup
23810
+ # target_queue: sqs.Queue
23811
+ # dead_letter_queue: sqs.Queue
23812
+
23813
+
23814
+ scheduler_role = iam.Role(self, "SchedulerRole",
23815
+ assumed_by=iam.ServicePrincipal("scheduler.amazonaws.com")
23816
+ )
23817
+ # To send the message to the queue
23818
+ # This policy changes depending on the type of target.
23819
+ scheduler_role.add_to_principal_policy(iam.PolicyStatement(
23820
+ actions=["sqs:SendMessage"],
23821
+ resources=[target_queue.queue_arn]
23822
+ ))
23823
+
23824
+ create_schedule_task1 = tasks.EventBridgeSchedulerCreateScheduleTask(self, "createSchedule",
23825
+ schedule_name="TestSchedule",
23826
+ action_after_completion=tasks.ActionAfterCompletion.NONE,
23827
+ client_token="testToken",
23828
+ description="TestDescription",
23829
+ start_date=Date(),
23830
+ end_date=Date(Date().get_time() + 1000 * 60 * 60),
23831
+ flexible_time_window=Duration.minutes(5),
23832
+ group_name=schedule_group.ref,
23833
+ kms_key=key,
23834
+ schedule=tasks.Schedule.rate(Duration.minutes(5)),
23835
+ timezone="UTC",
23836
+ enabled=True,
23837
+ target=tasks.EventBridgeSchedulerTarget(
23838
+ arn=target_queue.queue_arn,
23839
+ role=scheduler_role,
23840
+ retry_policy=tasks.RetryPolicy(
23841
+ maximum_retry_attempts=2,
23842
+ maximum_event_age=Duration.minutes(5)
23843
+ ),
23844
+ dead_letter_queue=dead_letter_queue
23845
+ )
23846
+ )
23847
+ '''
23848
+ if isinstance(credentials, dict):
23849
+ credentials = _Credentials_2cd64c6b(**credentials)
23850
+ if __debug__:
23851
+ type_hints = typing.get_type_hints(_typecheckingstub__2ca0e1f6c70f9052670025ee76f1aee1aa07fd94e10b6fa83ff1c51c8304e804)
23852
+ check_type(argname="argument comment", value=comment, expected_type=type_hints["comment"])
23853
+ check_type(argname="argument credentials", value=credentials, expected_type=type_hints["credentials"])
23854
+ check_type(argname="argument heartbeat", value=heartbeat, expected_type=type_hints["heartbeat"])
23855
+ check_type(argname="argument heartbeat_timeout", value=heartbeat_timeout, expected_type=type_hints["heartbeat_timeout"])
23856
+ check_type(argname="argument input_path", value=input_path, expected_type=type_hints["input_path"])
23857
+ check_type(argname="argument integration_pattern", value=integration_pattern, expected_type=type_hints["integration_pattern"])
23858
+ check_type(argname="argument output_path", value=output_path, expected_type=type_hints["output_path"])
23859
+ check_type(argname="argument result_path", value=result_path, expected_type=type_hints["result_path"])
23860
+ check_type(argname="argument result_selector", value=result_selector, expected_type=type_hints["result_selector"])
23861
+ check_type(argname="argument state_name", value=state_name, expected_type=type_hints["state_name"])
23862
+ check_type(argname="argument task_timeout", value=task_timeout, expected_type=type_hints["task_timeout"])
23863
+ check_type(argname="argument timeout", value=timeout, expected_type=type_hints["timeout"])
23864
+ check_type(argname="argument schedule", value=schedule, expected_type=type_hints["schedule"])
23865
+ check_type(argname="argument schedule_name", value=schedule_name, expected_type=type_hints["schedule_name"])
23866
+ check_type(argname="argument target", value=target, expected_type=type_hints["target"])
23867
+ check_type(argname="argument action_after_completion", value=action_after_completion, expected_type=type_hints["action_after_completion"])
23868
+ check_type(argname="argument client_token", value=client_token, expected_type=type_hints["client_token"])
23869
+ check_type(argname="argument description", value=description, expected_type=type_hints["description"])
23870
+ check_type(argname="argument enabled", value=enabled, expected_type=type_hints["enabled"])
23871
+ check_type(argname="argument end_date", value=end_date, expected_type=type_hints["end_date"])
23872
+ check_type(argname="argument flexible_time_window", value=flexible_time_window, expected_type=type_hints["flexible_time_window"])
23873
+ check_type(argname="argument group_name", value=group_name, expected_type=type_hints["group_name"])
23874
+ check_type(argname="argument kms_key", value=kms_key, expected_type=type_hints["kms_key"])
23875
+ check_type(argname="argument start_date", value=start_date, expected_type=type_hints["start_date"])
23876
+ check_type(argname="argument timezone", value=timezone, expected_type=type_hints["timezone"])
23877
+ self._values: typing.Dict[builtins.str, typing.Any] = {
23878
+ "schedule": schedule,
23879
+ "schedule_name": schedule_name,
23880
+ "target": target,
23881
+ }
23882
+ if comment is not None:
23883
+ self._values["comment"] = comment
23884
+ if credentials is not None:
23885
+ self._values["credentials"] = credentials
23886
+ if heartbeat is not None:
23887
+ self._values["heartbeat"] = heartbeat
23888
+ if heartbeat_timeout is not None:
23889
+ self._values["heartbeat_timeout"] = heartbeat_timeout
23890
+ if input_path is not None:
23891
+ self._values["input_path"] = input_path
23892
+ if integration_pattern is not None:
23893
+ self._values["integration_pattern"] = integration_pattern
23894
+ if output_path is not None:
23895
+ self._values["output_path"] = output_path
23896
+ if result_path is not None:
23897
+ self._values["result_path"] = result_path
23898
+ if result_selector is not None:
23899
+ self._values["result_selector"] = result_selector
23900
+ if state_name is not None:
23901
+ self._values["state_name"] = state_name
23902
+ if task_timeout is not None:
23903
+ self._values["task_timeout"] = task_timeout
23904
+ if timeout is not None:
23905
+ self._values["timeout"] = timeout
23906
+ if action_after_completion is not None:
23907
+ self._values["action_after_completion"] = action_after_completion
23908
+ if client_token is not None:
23909
+ self._values["client_token"] = client_token
23910
+ if description is not None:
23911
+ self._values["description"] = description
23912
+ if enabled is not None:
23913
+ self._values["enabled"] = enabled
23914
+ if end_date is not None:
23915
+ self._values["end_date"] = end_date
23916
+ if flexible_time_window is not None:
23917
+ self._values["flexible_time_window"] = flexible_time_window
23918
+ if group_name is not None:
23919
+ self._values["group_name"] = group_name
23920
+ if kms_key is not None:
23921
+ self._values["kms_key"] = kms_key
23922
+ if start_date is not None:
23923
+ self._values["start_date"] = start_date
23924
+ if timezone is not None:
23925
+ self._values["timezone"] = timezone
23926
+
23927
+ @builtins.property
23928
+ def comment(self) -> typing.Optional[builtins.str]:
23929
+ '''An optional description for this state.
23930
+
23931
+ :default: - No comment
23932
+ '''
23933
+ result = self._values.get("comment")
23934
+ return typing.cast(typing.Optional[builtins.str], result)
23935
+
23936
+ @builtins.property
23937
+ def credentials(self) -> typing.Optional[_Credentials_2cd64c6b]:
23938
+ '''Credentials for an IAM Role that the State Machine assumes for executing the task.
23939
+
23940
+ This enables cross-account resource invocations.
23941
+
23942
+ :default: - None (Task is executed using the State Machine's execution role)
23943
+
23944
+ :see: https://docs.aws.amazon.com/step-functions/latest/dg/concepts-access-cross-acct-resources.html
23945
+ '''
23946
+ result = self._values.get("credentials")
23947
+ return typing.cast(typing.Optional[_Credentials_2cd64c6b], result)
23948
+
23949
+ @builtins.property
23950
+ def heartbeat(self) -> typing.Optional[_Duration_4839e8c3]:
23951
+ '''(deprecated) Timeout for the heartbeat.
23952
+
23953
+ :default: - None
23954
+
23955
+ :deprecated: use ``heartbeatTimeout``
23956
+
23957
+ :stability: deprecated
23958
+ '''
23959
+ result = self._values.get("heartbeat")
23960
+ return typing.cast(typing.Optional[_Duration_4839e8c3], result)
23961
+
23962
+ @builtins.property
23963
+ def heartbeat_timeout(self) -> typing.Optional[_Timeout_d7c10551]:
23964
+ '''Timeout for the heartbeat.
23965
+
23966
+ [disable-awslint:duration-prop-type] is needed because all props interface in
23967
+ aws-stepfunctions-tasks extend this interface
23968
+
23969
+ :default: - None
23970
+ '''
23971
+ result = self._values.get("heartbeat_timeout")
23972
+ return typing.cast(typing.Optional[_Timeout_d7c10551], result)
23973
+
23974
+ @builtins.property
23975
+ def input_path(self) -> typing.Optional[builtins.str]:
23976
+ '''JSONPath expression to select part of the state to be the input to this state.
23977
+
23978
+ May also be the special value JsonPath.DISCARD, which will cause the effective
23979
+ input to be the empty object {}.
23980
+
23981
+ :default: - The entire task input (JSON path '$')
23982
+ '''
23983
+ result = self._values.get("input_path")
23984
+ return typing.cast(typing.Optional[builtins.str], result)
23985
+
23986
+ @builtins.property
23987
+ def integration_pattern(self) -> typing.Optional[_IntegrationPattern_949291bc]:
23988
+ '''AWS Step Functions integrates with services directly in the Amazon States Language.
23989
+
23990
+ You can control these AWS services using service integration patterns.
23991
+
23992
+ Depending on the AWS Service, the Service Integration Pattern availability will vary.
23993
+
23994
+ :default:
23995
+
23996
+ - ``IntegrationPattern.REQUEST_RESPONSE`` for most tasks.
23997
+ ``IntegrationPattern.RUN_JOB`` for the following exceptions:
23998
+ ``BatchSubmitJob``, ``EmrAddStep``, ``EmrCreateCluster``, ``EmrTerminationCluster``, and ``EmrContainersStartJobRun``.
23999
+
24000
+ :see: https://docs.aws.amazon.com/step-functions/latest/dg/connect-supported-services.html
24001
+ '''
24002
+ result = self._values.get("integration_pattern")
24003
+ return typing.cast(typing.Optional[_IntegrationPattern_949291bc], result)
24004
+
24005
+ @builtins.property
24006
+ def output_path(self) -> typing.Optional[builtins.str]:
24007
+ '''JSONPath expression to select select a portion of the state output to pass to the next state.
24008
+
24009
+ May also be the special value JsonPath.DISCARD, which will cause the effective
24010
+ output to be the empty object {}.
24011
+
24012
+ :default:
24013
+
24014
+ - The entire JSON node determined by the state input, the task result,
24015
+ and resultPath is passed to the next state (JSON path '$')
24016
+ '''
24017
+ result = self._values.get("output_path")
24018
+ return typing.cast(typing.Optional[builtins.str], result)
24019
+
24020
+ @builtins.property
24021
+ def result_path(self) -> typing.Optional[builtins.str]:
24022
+ '''JSONPath expression to indicate where to inject the state's output.
24023
+
24024
+ May also be the special value JsonPath.DISCARD, which will cause the state's
24025
+ input to become its output.
24026
+
24027
+ :default: - Replaces the entire input with the result (JSON path '$')
24028
+ '''
24029
+ result = self._values.get("result_path")
24030
+ return typing.cast(typing.Optional[builtins.str], result)
24031
+
24032
+ @builtins.property
24033
+ def result_selector(
24034
+ self,
24035
+ ) -> typing.Optional[typing.Mapping[builtins.str, typing.Any]]:
24036
+ '''The JSON that will replace the state's raw result and become the effective result before ResultPath is applied.
24037
+
24038
+ You can use ResultSelector to create a payload with values that are static
24039
+ or selected from the state's raw result.
24040
+
24041
+ :default: - None
24042
+
24043
+ :see: https://docs.aws.amazon.com/step-functions/latest/dg/input-output-inputpath-params.html#input-output-resultselector
24044
+ '''
24045
+ result = self._values.get("result_selector")
24046
+ return typing.cast(typing.Optional[typing.Mapping[builtins.str, typing.Any]], result)
24047
+
24048
+ @builtins.property
24049
+ def state_name(self) -> typing.Optional[builtins.str]:
24050
+ '''Optional name for this state.
24051
+
24052
+ :default: - The construct ID will be used as state name
24053
+ '''
24054
+ result = self._values.get("state_name")
24055
+ return typing.cast(typing.Optional[builtins.str], result)
24056
+
24057
+ @builtins.property
24058
+ def task_timeout(self) -> typing.Optional[_Timeout_d7c10551]:
24059
+ '''Timeout for the task.
24060
+
24061
+ [disable-awslint:duration-prop-type] is needed because all props interface in
24062
+ aws-stepfunctions-tasks extend this interface
24063
+
24064
+ :default: - None
24065
+ '''
24066
+ result = self._values.get("task_timeout")
24067
+ return typing.cast(typing.Optional[_Timeout_d7c10551], result)
24068
+
24069
+ @builtins.property
24070
+ def timeout(self) -> typing.Optional[_Duration_4839e8c3]:
24071
+ '''(deprecated) Timeout for the task.
24072
+
24073
+ :default: - None
24074
+
24075
+ :deprecated: use ``taskTimeout``
24076
+
24077
+ :stability: deprecated
24078
+ '''
24079
+ result = self._values.get("timeout")
24080
+ return typing.cast(typing.Optional[_Duration_4839e8c3], result)
24081
+
24082
+ @builtins.property
24083
+ def schedule(self) -> "Schedule":
24084
+ '''The schedule that defines when the schedule will trigger.
23276
24085
 
23277
- Minimum number of entries is 1 and maximum is 10,
23278
- unless `PutEvents API limit <https://docs.aws.amazon.com/eventbridge/latest/APIReference/API_PutEvents.html#API_PutEvents_RequestSyntax>`_ has changed.
24086
+ :see: https://docs.aws.amazon.com/scheduler/latest/UserGuide/schedule-types.html
23279
24087
  '''
23280
- result = self._values.get("entries")
23281
- assert result is not None, "Required property 'entries' is missing"
23282
- return typing.cast(typing.List[EventBridgePutEventsEntry], result)
24088
+ result = self._values.get("schedule")
24089
+ assert result is not None, "Required property 'schedule' is missing"
24090
+ return typing.cast("Schedule", result)
24091
+
24092
+ @builtins.property
24093
+ def schedule_name(self) -> builtins.str:
24094
+ '''Schedule name.'''
24095
+ result = self._values.get("schedule_name")
24096
+ assert result is not None, "Required property 'schedule_name' is missing"
24097
+ return typing.cast(builtins.str, result)
24098
+
24099
+ @builtins.property
24100
+ def target(self) -> "EventBridgeSchedulerTarget":
24101
+ '''The schedule's target.'''
24102
+ result = self._values.get("target")
24103
+ assert result is not None, "Required property 'target' is missing"
24104
+ return typing.cast("EventBridgeSchedulerTarget", result)
24105
+
24106
+ @builtins.property
24107
+ def action_after_completion(self) -> typing.Optional[ActionAfterCompletion]:
24108
+ '''Specifies the action that EventBridge Scheduler applies to the schedule after the schedule completes invoking the target.
24109
+
24110
+ :default: ActionAfterCompletion.NONE
24111
+ '''
24112
+ result = self._values.get("action_after_completion")
24113
+ return typing.cast(typing.Optional[ActionAfterCompletion], result)
24114
+
24115
+ @builtins.property
24116
+ def client_token(self) -> typing.Optional[builtins.str]:
24117
+ '''Unique, case-sensitive identifier to ensure the idempotency of the request.
24118
+
24119
+ :default: - Automatically generated
24120
+ '''
24121
+ result = self._values.get("client_token")
24122
+ return typing.cast(typing.Optional[builtins.str], result)
24123
+
24124
+ @builtins.property
24125
+ def description(self) -> typing.Optional[builtins.str]:
24126
+ '''The description for the schedule.
24127
+
24128
+ :default: - No description
24129
+ '''
24130
+ result = self._values.get("description")
24131
+ return typing.cast(typing.Optional[builtins.str], result)
24132
+
24133
+ @builtins.property
24134
+ def enabled(self) -> typing.Optional[builtins.bool]:
24135
+ '''Specifies whether the schedule is enabled or disabled.
24136
+
24137
+ :default: true
24138
+ '''
24139
+ result = self._values.get("enabled")
24140
+ return typing.cast(typing.Optional[builtins.bool], result)
24141
+
24142
+ @builtins.property
24143
+ def end_date(self) -> typing.Optional[datetime.datetime]:
24144
+ '''The date, in UTC, before which the schedule can invoke its target.
24145
+
24146
+ Depending on the schedule's recurrence expression, invocations might stop on, or before, the EndDate you specify.
24147
+ EventBridge Scheduler ignores EndDate for one-time schedules.
24148
+
24149
+ :default: - No end date
24150
+ '''
24151
+ result = self._values.get("end_date")
24152
+ return typing.cast(typing.Optional[datetime.datetime], result)
24153
+
24154
+ @builtins.property
24155
+ def flexible_time_window(self) -> typing.Optional[_Duration_4839e8c3]:
24156
+ '''The maximum time window during which a schedule can be invoked.
24157
+
24158
+ Minimum value is 1 minute.
24159
+ Maximum value is 1440 minutes (1 day).
24160
+
24161
+ :default: - Flexible time window is not enabled.
24162
+ '''
24163
+ result = self._values.get("flexible_time_window")
24164
+ return typing.cast(typing.Optional[_Duration_4839e8c3], result)
24165
+
24166
+ @builtins.property
24167
+ def group_name(self) -> typing.Optional[builtins.str]:
24168
+ '''The name of the schedule group to associate with this schedule.
24169
+
24170
+ :default: - The default schedule group is used.
24171
+ '''
24172
+ result = self._values.get("group_name")
24173
+ return typing.cast(typing.Optional[builtins.str], result)
24174
+
24175
+ @builtins.property
24176
+ def kms_key(self) -> typing.Optional[_IKey_5f11635f]:
24177
+ '''The customer managed KMS key that EventBridge Scheduler will use to encrypt and decrypt payload.
24178
+
24179
+ :default: - Use automatically generated KMS key
24180
+
24181
+ :see: https://docs.aws.amazon.com/scheduler/latest/UserGuide/encryption-rest.html
24182
+ '''
24183
+ result = self._values.get("kms_key")
24184
+ return typing.cast(typing.Optional[_IKey_5f11635f], result)
24185
+
24186
+ @builtins.property
24187
+ def start_date(self) -> typing.Optional[datetime.datetime]:
24188
+ '''The date, in UTC, after which the schedule can begin invoking its target.
24189
+
24190
+ Depending on the schedule's recurrence expression, invocations might occur on, or after, the StartDate you specify.
24191
+ EventBridge Scheduler ignores StartDate for one-time schedules.
24192
+
24193
+ :default: - No start date
24194
+ '''
24195
+ result = self._values.get("start_date")
24196
+ return typing.cast(typing.Optional[datetime.datetime], result)
24197
+
24198
+ @builtins.property
24199
+ def timezone(self) -> typing.Optional[builtins.str]:
24200
+ '''The timezone in which the scheduling expression is evaluated.
24201
+
24202
+ :default: - UTC
24203
+ '''
24204
+ result = self._values.get("timezone")
24205
+ return typing.cast(typing.Optional[builtins.str], result)
23283
24206
 
23284
24207
  def __eq__(self, rhs: typing.Any) -> builtins.bool:
23285
24208
  return isinstance(rhs, self.__class__) and rhs._values == self._values
@@ -23288,7 +24211,311 @@ class EventBridgePutEventsProps(_TaskStateBaseProps_3a62b6d0):
23288
24211
  return not (rhs == self)
23289
24212
 
23290
24213
  def __repr__(self) -> str:
23291
- return "EventBridgePutEventsProps(%s)" % ", ".join(
24214
+ return "EventBridgeSchedulerCreateScheduleTaskProps(%s)" % ", ".join(
24215
+ k + "=" + repr(v) for k, v in self._values.items()
24216
+ )
24217
+
24218
+
24219
+ class EventBridgeSchedulerTarget(
24220
+ metaclass=jsii.JSIIMeta,
24221
+ jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.EventBridgeSchedulerTarget",
24222
+ ):
24223
+ '''The target that EventBridge Scheduler will invoke.
24224
+
24225
+ :exampleMetadata: infused
24226
+
24227
+ Example::
24228
+
24229
+ import aws_cdk.aws_scheduler as scheduler
24230
+ import aws_cdk.aws_kms as kms
24231
+
24232
+ # key: kms.Key
24233
+ # schedule_group: scheduler.CfnScheduleGroup
24234
+ # target_queue: sqs.Queue
24235
+ # dead_letter_queue: sqs.Queue
24236
+
24237
+
24238
+ scheduler_role = iam.Role(self, "SchedulerRole",
24239
+ assumed_by=iam.ServicePrincipal("scheduler.amazonaws.com")
24240
+ )
24241
+ # To send the message to the queue
24242
+ # This policy changes depending on the type of target.
24243
+ scheduler_role.add_to_principal_policy(iam.PolicyStatement(
24244
+ actions=["sqs:SendMessage"],
24245
+ resources=[target_queue.queue_arn]
24246
+ ))
24247
+
24248
+ create_schedule_task1 = tasks.EventBridgeSchedulerCreateScheduleTask(self, "createSchedule",
24249
+ schedule_name="TestSchedule",
24250
+ action_after_completion=tasks.ActionAfterCompletion.NONE,
24251
+ client_token="testToken",
24252
+ description="TestDescription",
24253
+ start_date=Date(),
24254
+ end_date=Date(Date().get_time() + 1000 * 60 * 60),
24255
+ flexible_time_window=Duration.minutes(5),
24256
+ group_name=schedule_group.ref,
24257
+ kms_key=key,
24258
+ schedule=tasks.Schedule.rate(Duration.minutes(5)),
24259
+ timezone="UTC",
24260
+ enabled=True,
24261
+ target=tasks.EventBridgeSchedulerTarget(
24262
+ arn=target_queue.queue_arn,
24263
+ role=scheduler_role,
24264
+ retry_policy=tasks.RetryPolicy(
24265
+ maximum_retry_attempts=2,
24266
+ maximum_event_age=Duration.minutes(5)
24267
+ ),
24268
+ dead_letter_queue=dead_letter_queue
24269
+ )
24270
+ )
24271
+ '''
24272
+
24273
+ def __init__(
24274
+ self,
24275
+ *,
24276
+ arn: builtins.str,
24277
+ role: _IRole_235f5d8e,
24278
+ dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
24279
+ input: typing.Optional[builtins.str] = None,
24280
+ retry_policy: typing.Optional[typing.Union["RetryPolicy", typing.Dict[builtins.str, typing.Any]]] = None,
24281
+ ) -> None:
24282
+ '''
24283
+ :param arn: The Amazon Resource Name (ARN) of the target.
24284
+ :param role: The IAM role that EventBridge Scheduler will use for this target when the schedule is invoked.
24285
+ :param dead_letter_queue: Dead letter queue for failed events. Default: - No dead letter queue
24286
+ :param input: The input to the target. Default: - EventBridge Scheduler delivers a default notification to the target
24287
+ :param retry_policy: The retry policy settings. Default: - Do not retry
24288
+ '''
24289
+ props = EventBridgeSchedulerTargetProps(
24290
+ arn=arn,
24291
+ role=role,
24292
+ dead_letter_queue=dead_letter_queue,
24293
+ input=input,
24294
+ retry_policy=retry_policy,
24295
+ )
24296
+
24297
+ jsii.create(self.__class__, self, [props])
24298
+
24299
+ @jsii.member(jsii_name="renderTargetObject")
24300
+ def render_target_object(self) -> typing.Any:
24301
+ '''return the target object for the EventBridge Scheduler.'''
24302
+ return typing.cast(typing.Any, jsii.invoke(self, "renderTargetObject", []))
24303
+
24304
+ @builtins.property
24305
+ @jsii.member(jsii_name="arn")
24306
+ def arn(self) -> builtins.str:
24307
+ '''The Amazon Resource Name (ARN) of the target.'''
24308
+ return typing.cast(builtins.str, jsii.get(self, "arn"))
24309
+
24310
+ @arn.setter
24311
+ def arn(self, value: builtins.str) -> None:
24312
+ if __debug__:
24313
+ type_hints = typing.get_type_hints(_typecheckingstub__08399721dc3339ea162c3eb58b966c2135f7b985764627b33d6165699f2fe7a9)
24314
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
24315
+ jsii.set(self, "arn", value) # pyright: ignore[reportArgumentType]
24316
+
24317
+ @builtins.property
24318
+ @jsii.member(jsii_name="role")
24319
+ def role(self) -> _IRole_235f5d8e:
24320
+ '''The IAM role that EventBridge Scheduler will use for this target when the schedule is invoked.'''
24321
+ return typing.cast(_IRole_235f5d8e, jsii.get(self, "role"))
24322
+
24323
+ @role.setter
24324
+ def role(self, value: _IRole_235f5d8e) -> None:
24325
+ if __debug__:
24326
+ type_hints = typing.get_type_hints(_typecheckingstub__279822f7cb0eddabb17ddd4de4d374b62ac9aec5de2b4f5127c638cfacf8183d)
24327
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
24328
+ jsii.set(self, "role", value) # pyright: ignore[reportArgumentType]
24329
+
24330
+ @builtins.property
24331
+ @jsii.member(jsii_name="deadLetterQueue")
24332
+ def dead_letter_queue(self) -> typing.Optional[_IQueue_7ed6f679]:
24333
+ '''Dead letter queue for failed events.'''
24334
+ return typing.cast(typing.Optional[_IQueue_7ed6f679], jsii.get(self, "deadLetterQueue"))
24335
+
24336
+ @dead_letter_queue.setter
24337
+ def dead_letter_queue(self, value: typing.Optional[_IQueue_7ed6f679]) -> None:
24338
+ if __debug__:
24339
+ type_hints = typing.get_type_hints(_typecheckingstub__2740fb9a1bb904a28e993d62d6f1a5fc12667d92b6515d4d2433e2b8e8903e3e)
24340
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
24341
+ jsii.set(self, "deadLetterQueue", value) # pyright: ignore[reportArgumentType]
24342
+
24343
+ @builtins.property
24344
+ @jsii.member(jsii_name="input")
24345
+ def input(self) -> typing.Optional[builtins.str]:
24346
+ '''The input to the target.'''
24347
+ return typing.cast(typing.Optional[builtins.str], jsii.get(self, "input"))
24348
+
24349
+ @input.setter
24350
+ def input(self, value: typing.Optional[builtins.str]) -> None:
24351
+ if __debug__:
24352
+ type_hints = typing.get_type_hints(_typecheckingstub__47114e604ac28a24d6cd14b23a4c054ce75fcb98cde7d3563faee1c1c77ae510)
24353
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
24354
+ jsii.set(self, "input", value) # pyright: ignore[reportArgumentType]
24355
+
24356
+ @builtins.property
24357
+ @jsii.member(jsii_name="retryPolicy")
24358
+ def retry_policy(self) -> typing.Optional["RetryPolicy"]:
24359
+ '''The retry policy settings.'''
24360
+ return typing.cast(typing.Optional["RetryPolicy"], jsii.get(self, "retryPolicy"))
24361
+
24362
+ @retry_policy.setter
24363
+ def retry_policy(self, value: typing.Optional["RetryPolicy"]) -> None:
24364
+ if __debug__:
24365
+ type_hints = typing.get_type_hints(_typecheckingstub__132145ba0a6d11089eaa41ce28ee78b1e93e936cf0e454686be50ef9ffcd6629)
24366
+ check_type(argname="argument value", value=value, expected_type=type_hints["value"])
24367
+ jsii.set(self, "retryPolicy", value) # pyright: ignore[reportArgumentType]
24368
+
24369
+
24370
+ @jsii.data_type(
24371
+ jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.EventBridgeSchedulerTargetProps",
24372
+ jsii_struct_bases=[],
24373
+ name_mapping={
24374
+ "arn": "arn",
24375
+ "role": "role",
24376
+ "dead_letter_queue": "deadLetterQueue",
24377
+ "input": "input",
24378
+ "retry_policy": "retryPolicy",
24379
+ },
24380
+ )
24381
+ class EventBridgeSchedulerTargetProps:
24382
+ def __init__(
24383
+ self,
24384
+ *,
24385
+ arn: builtins.str,
24386
+ role: _IRole_235f5d8e,
24387
+ dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
24388
+ input: typing.Optional[builtins.str] = None,
24389
+ retry_policy: typing.Optional[typing.Union["RetryPolicy", typing.Dict[builtins.str, typing.Any]]] = None,
24390
+ ) -> None:
24391
+ '''Properties for ``EventBridgeSchedulerTarget``.
24392
+
24393
+ :param arn: The Amazon Resource Name (ARN) of the target.
24394
+ :param role: The IAM role that EventBridge Scheduler will use for this target when the schedule is invoked.
24395
+ :param dead_letter_queue: Dead letter queue for failed events. Default: - No dead letter queue
24396
+ :param input: The input to the target. Default: - EventBridge Scheduler delivers a default notification to the target
24397
+ :param retry_policy: The retry policy settings. Default: - Do not retry
24398
+
24399
+ :see: https://docs.aws.amazon.com/scheduler/latest/APIReference/API_Target.html#API_Target_Contents
24400
+ :exampleMetadata: infused
24401
+
24402
+ Example::
24403
+
24404
+ import aws_cdk.aws_scheduler as scheduler
24405
+ import aws_cdk.aws_kms as kms
24406
+
24407
+ # key: kms.Key
24408
+ # schedule_group: scheduler.CfnScheduleGroup
24409
+ # target_queue: sqs.Queue
24410
+ # dead_letter_queue: sqs.Queue
24411
+
24412
+
24413
+ scheduler_role = iam.Role(self, "SchedulerRole",
24414
+ assumed_by=iam.ServicePrincipal("scheduler.amazonaws.com")
24415
+ )
24416
+ # To send the message to the queue
24417
+ # This policy changes depending on the type of target.
24418
+ scheduler_role.add_to_principal_policy(iam.PolicyStatement(
24419
+ actions=["sqs:SendMessage"],
24420
+ resources=[target_queue.queue_arn]
24421
+ ))
24422
+
24423
+ create_schedule_task1 = tasks.EventBridgeSchedulerCreateScheduleTask(self, "createSchedule",
24424
+ schedule_name="TestSchedule",
24425
+ action_after_completion=tasks.ActionAfterCompletion.NONE,
24426
+ client_token="testToken",
24427
+ description="TestDescription",
24428
+ start_date=Date(),
24429
+ end_date=Date(Date().get_time() + 1000 * 60 * 60),
24430
+ flexible_time_window=Duration.minutes(5),
24431
+ group_name=schedule_group.ref,
24432
+ kms_key=key,
24433
+ schedule=tasks.Schedule.rate(Duration.minutes(5)),
24434
+ timezone="UTC",
24435
+ enabled=True,
24436
+ target=tasks.EventBridgeSchedulerTarget(
24437
+ arn=target_queue.queue_arn,
24438
+ role=scheduler_role,
24439
+ retry_policy=tasks.RetryPolicy(
24440
+ maximum_retry_attempts=2,
24441
+ maximum_event_age=Duration.minutes(5)
24442
+ ),
24443
+ dead_letter_queue=dead_letter_queue
24444
+ )
24445
+ )
24446
+ '''
24447
+ if isinstance(retry_policy, dict):
24448
+ retry_policy = RetryPolicy(**retry_policy)
24449
+ if __debug__:
24450
+ type_hints = typing.get_type_hints(_typecheckingstub__83724652ee20223ac0a080d8bf422dd2f7054179bab61153de248e08ef4efb52)
24451
+ check_type(argname="argument arn", value=arn, expected_type=type_hints["arn"])
24452
+ check_type(argname="argument role", value=role, expected_type=type_hints["role"])
24453
+ check_type(argname="argument dead_letter_queue", value=dead_letter_queue, expected_type=type_hints["dead_letter_queue"])
24454
+ check_type(argname="argument input", value=input, expected_type=type_hints["input"])
24455
+ check_type(argname="argument retry_policy", value=retry_policy, expected_type=type_hints["retry_policy"])
24456
+ self._values: typing.Dict[builtins.str, typing.Any] = {
24457
+ "arn": arn,
24458
+ "role": role,
24459
+ }
24460
+ if dead_letter_queue is not None:
24461
+ self._values["dead_letter_queue"] = dead_letter_queue
24462
+ if input is not None:
24463
+ self._values["input"] = input
24464
+ if retry_policy is not None:
24465
+ self._values["retry_policy"] = retry_policy
24466
+
24467
+ @builtins.property
24468
+ def arn(self) -> builtins.str:
24469
+ '''The Amazon Resource Name (ARN) of the target.
24470
+
24471
+ :see: https://docs.aws.amazon.com/scheduler/latest/UserGuide/managing-targets.html
24472
+ '''
24473
+ result = self._values.get("arn")
24474
+ assert result is not None, "Required property 'arn' is missing"
24475
+ return typing.cast(builtins.str, result)
24476
+
24477
+ @builtins.property
24478
+ def role(self) -> _IRole_235f5d8e:
24479
+ '''The IAM role that EventBridge Scheduler will use for this target when the schedule is invoked.'''
24480
+ result = self._values.get("role")
24481
+ assert result is not None, "Required property 'role' is missing"
24482
+ return typing.cast(_IRole_235f5d8e, result)
24483
+
24484
+ @builtins.property
24485
+ def dead_letter_queue(self) -> typing.Optional[_IQueue_7ed6f679]:
24486
+ '''Dead letter queue for failed events.
24487
+
24488
+ :default: - No dead letter queue
24489
+ '''
24490
+ result = self._values.get("dead_letter_queue")
24491
+ return typing.cast(typing.Optional[_IQueue_7ed6f679], result)
24492
+
24493
+ @builtins.property
24494
+ def input(self) -> typing.Optional[builtins.str]:
24495
+ '''The input to the target.
24496
+
24497
+ :default: - EventBridge Scheduler delivers a default notification to the target
24498
+ '''
24499
+ result = self._values.get("input")
24500
+ return typing.cast(typing.Optional[builtins.str], result)
24501
+
24502
+ @builtins.property
24503
+ def retry_policy(self) -> typing.Optional["RetryPolicy"]:
24504
+ '''The retry policy settings.
24505
+
24506
+ :default: - Do not retry
24507
+ '''
24508
+ result = self._values.get("retry_policy")
24509
+ return typing.cast(typing.Optional["RetryPolicy"], result)
24510
+
24511
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
24512
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
24513
+
24514
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
24515
+ return not (rhs == self)
24516
+
24517
+ def __repr__(self) -> str:
24518
+ return "EventBridgeSchedulerTargetProps(%s)" % ", ".join(
23292
24519
  k + "=" + repr(v) for k, v in self._values.items()
23293
24520
  )
23294
24521
 
@@ -27690,6 +28917,108 @@ class ResultConfiguration:
27690
28917
  )
27691
28918
 
27692
28919
 
28920
+ @jsii.data_type(
28921
+ jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.RetryPolicy",
28922
+ jsii_struct_bases=[],
28923
+ name_mapping={
28924
+ "maximum_event_age": "maximumEventAge",
28925
+ "maximum_retry_attempts": "maximumRetryAttempts",
28926
+ },
28927
+ )
28928
+ class RetryPolicy:
28929
+ def __init__(
28930
+ self,
28931
+ *,
28932
+ maximum_event_age: _Duration_4839e8c3,
28933
+ maximum_retry_attempts: jsii.Number,
28934
+ ) -> None:
28935
+ '''The information about the retry policy settings.
28936
+
28937
+ :param maximum_event_age: The maximum amount of time to continue to make retry attempts.
28938
+ :param maximum_retry_attempts: The maximum number of retry attempts to make before the request fails.
28939
+
28940
+ :exampleMetadata: infused
28941
+
28942
+ Example::
28943
+
28944
+ import aws_cdk.aws_scheduler as scheduler
28945
+ import aws_cdk.aws_kms as kms
28946
+
28947
+ # key: kms.Key
28948
+ # schedule_group: scheduler.CfnScheduleGroup
28949
+ # target_queue: sqs.Queue
28950
+ # dead_letter_queue: sqs.Queue
28951
+
28952
+
28953
+ scheduler_role = iam.Role(self, "SchedulerRole",
28954
+ assumed_by=iam.ServicePrincipal("scheduler.amazonaws.com")
28955
+ )
28956
+ # To send the message to the queue
28957
+ # This policy changes depending on the type of target.
28958
+ scheduler_role.add_to_principal_policy(iam.PolicyStatement(
28959
+ actions=["sqs:SendMessage"],
28960
+ resources=[target_queue.queue_arn]
28961
+ ))
28962
+
28963
+ create_schedule_task1 = tasks.EventBridgeSchedulerCreateScheduleTask(self, "createSchedule",
28964
+ schedule_name="TestSchedule",
28965
+ action_after_completion=tasks.ActionAfterCompletion.NONE,
28966
+ client_token="testToken",
28967
+ description="TestDescription",
28968
+ start_date=Date(),
28969
+ end_date=Date(Date().get_time() + 1000 * 60 * 60),
28970
+ flexible_time_window=Duration.minutes(5),
28971
+ group_name=schedule_group.ref,
28972
+ kms_key=key,
28973
+ schedule=tasks.Schedule.rate(Duration.minutes(5)),
28974
+ timezone="UTC",
28975
+ enabled=True,
28976
+ target=tasks.EventBridgeSchedulerTarget(
28977
+ arn=target_queue.queue_arn,
28978
+ role=scheduler_role,
28979
+ retry_policy=tasks.RetryPolicy(
28980
+ maximum_retry_attempts=2,
28981
+ maximum_event_age=Duration.minutes(5)
28982
+ ),
28983
+ dead_letter_queue=dead_letter_queue
28984
+ )
28985
+ )
28986
+ '''
28987
+ if __debug__:
28988
+ type_hints = typing.get_type_hints(_typecheckingstub__98d7f08183c8521e775b42fe55de270346af99ef79758a7f11f3b7f46644a8ed)
28989
+ check_type(argname="argument maximum_event_age", value=maximum_event_age, expected_type=type_hints["maximum_event_age"])
28990
+ check_type(argname="argument maximum_retry_attempts", value=maximum_retry_attempts, expected_type=type_hints["maximum_retry_attempts"])
28991
+ self._values: typing.Dict[builtins.str, typing.Any] = {
28992
+ "maximum_event_age": maximum_event_age,
28993
+ "maximum_retry_attempts": maximum_retry_attempts,
28994
+ }
28995
+
28996
+ @builtins.property
28997
+ def maximum_event_age(self) -> _Duration_4839e8c3:
28998
+ '''The maximum amount of time to continue to make retry attempts.'''
28999
+ result = self._values.get("maximum_event_age")
29000
+ assert result is not None, "Required property 'maximum_event_age' is missing"
29001
+ return typing.cast(_Duration_4839e8c3, result)
29002
+
29003
+ @builtins.property
29004
+ def maximum_retry_attempts(self) -> jsii.Number:
29005
+ '''The maximum number of retry attempts to make before the request fails.'''
29006
+ result = self._values.get("maximum_retry_attempts")
29007
+ assert result is not None, "Required property 'maximum_retry_attempts' is missing"
29008
+ return typing.cast(jsii.Number, result)
29009
+
29010
+ def __eq__(self, rhs: typing.Any) -> builtins.bool:
29011
+ return isinstance(rhs, self.__class__) and rhs._values == self._values
29012
+
29013
+ def __ne__(self, rhs: typing.Any) -> builtins.bool:
29014
+ return not (rhs == self)
29015
+
29016
+ def __repr__(self) -> str:
29017
+ return "RetryPolicy(%s)" % ", ".join(
29018
+ k + "=" + repr(v) for k, v in self._values.items()
29019
+ )
29020
+
29021
+
27693
29022
  @jsii.enum(jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.S3DataDistributionType")
27694
29023
  class S3DataDistributionType(enum.Enum):
27695
29024
  '''S3 Data Distribution Type.'''
@@ -31141,6 +32470,125 @@ class SageMakerUpdateEndpointProps(_TaskStateBaseProps_3a62b6d0):
31141
32470
  )
31142
32471
 
31143
32472
 
32473
+ class Schedule(
32474
+ metaclass=jsii.JSIIMeta,
32475
+ jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.Schedule",
32476
+ ):
32477
+ '''Schedule for EventBridge Scheduler.
32478
+
32479
+ :exampleMetadata: infused
32480
+
32481
+ Example::
32482
+
32483
+ import aws_cdk.aws_scheduler as scheduler
32484
+ import aws_cdk.aws_kms as kms
32485
+
32486
+ # key: kms.Key
32487
+ # schedule_group: scheduler.CfnScheduleGroup
32488
+ # target_queue: sqs.Queue
32489
+ # dead_letter_queue: sqs.Queue
32490
+
32491
+
32492
+ scheduler_role = iam.Role(self, "SchedulerRole",
32493
+ assumed_by=iam.ServicePrincipal("scheduler.amazonaws.com")
32494
+ )
32495
+ # To send the message to the queue
32496
+ # This policy changes depending on the type of target.
32497
+ scheduler_role.add_to_principal_policy(iam.PolicyStatement(
32498
+ actions=["sqs:SendMessage"],
32499
+ resources=[target_queue.queue_arn]
32500
+ ))
32501
+
32502
+ create_schedule_task1 = tasks.EventBridgeSchedulerCreateScheduleTask(self, "createSchedule",
32503
+ schedule_name="TestSchedule",
32504
+ action_after_completion=tasks.ActionAfterCompletion.NONE,
32505
+ client_token="testToken",
32506
+ description="TestDescription",
32507
+ start_date=Date(),
32508
+ end_date=Date(Date().get_time() + 1000 * 60 * 60),
32509
+ flexible_time_window=Duration.minutes(5),
32510
+ group_name=schedule_group.ref,
32511
+ kms_key=key,
32512
+ schedule=tasks.Schedule.rate(Duration.minutes(5)),
32513
+ timezone="UTC",
32514
+ enabled=True,
32515
+ target=tasks.EventBridgeSchedulerTarget(
32516
+ arn=target_queue.queue_arn,
32517
+ role=scheduler_role,
32518
+ retry_policy=tasks.RetryPolicy(
32519
+ maximum_retry_attempts=2,
32520
+ maximum_event_age=Duration.minutes(5)
32521
+ ),
32522
+ dead_letter_queue=dead_letter_queue
32523
+ )
32524
+ )
32525
+ '''
32526
+
32527
+ @jsii.member(jsii_name="cron")
32528
+ @builtins.classmethod
32529
+ def cron(
32530
+ cls,
32531
+ *,
32532
+ day: typing.Optional[builtins.str] = None,
32533
+ hour: typing.Optional[builtins.str] = None,
32534
+ minute: typing.Optional[builtins.str] = None,
32535
+ month: typing.Optional[builtins.str] = None,
32536
+ week_day: typing.Optional[builtins.str] = None,
32537
+ year: typing.Optional[builtins.str] = None,
32538
+ ) -> "Schedule":
32539
+ '''Create a cron-based schedule from a set of cron fields.
32540
+
32541
+ :param day: The day of the month to run this rule at. Default: - Every day of the month
32542
+ :param hour: The hour to run this rule at. Default: - Every hour
32543
+ :param minute: The minute to run this rule at. Default: - Every minute
32544
+ :param month: The month to run this rule at. Default: - Every month
32545
+ :param week_day: The day of the week to run this rule at. Default: - Whichever day of the week that ``day`` falls on
32546
+ :param year: The year to run this rule at. Default: - Every year
32547
+ '''
32548
+ options = CronOptions(
32549
+ day=day,
32550
+ hour=hour,
32551
+ minute=minute,
32552
+ month=month,
32553
+ week_day=week_day,
32554
+ year=year,
32555
+ )
32556
+
32557
+ return typing.cast("Schedule", jsii.sinvoke(cls, "cron", [options]))
32558
+
32559
+ @jsii.member(jsii_name="oneTime")
32560
+ @builtins.classmethod
32561
+ def one_time(cls, time: datetime.datetime) -> "Schedule":
32562
+ '''Construct a one-time schedule from a Date.
32563
+
32564
+ :param time: -
32565
+ '''
32566
+ if __debug__:
32567
+ type_hints = typing.get_type_hints(_typecheckingstub__5d9c36e51b3ea0cf38a1d8aa35ba2b2f487b3e663a742ee4c205897aaac84602)
32568
+ check_type(argname="argument time", value=time, expected_type=type_hints["time"])
32569
+ return typing.cast("Schedule", jsii.sinvoke(cls, "oneTime", [time]))
32570
+
32571
+ @jsii.member(jsii_name="rate")
32572
+ @builtins.classmethod
32573
+ def rate(cls, duration: _Duration_4839e8c3) -> "Schedule":
32574
+ '''Construct a rate-based schedule from an interval.
32575
+
32576
+ The minimum interval is 1 minute.
32577
+
32578
+ :param duration: -
32579
+ '''
32580
+ if __debug__:
32581
+ type_hints = typing.get_type_hints(_typecheckingstub__ee7a5ee61b7c1e1eb0d0eb44a69b770e429c08e40f6e65c26a812408764e2260)
32582
+ check_type(argname="argument duration", value=duration, expected_type=type_hints["duration"])
32583
+ return typing.cast("Schedule", jsii.sinvoke(cls, "rate", [duration]))
32584
+
32585
+ @builtins.property
32586
+ @jsii.member(jsii_name="expressionString")
32587
+ def expression_string(self) -> builtins.str:
32588
+ '''The Schedule expression.'''
32589
+ return typing.cast(builtins.str, jsii.get(self, "expressionString"))
32590
+
32591
+
31144
32592
  @jsii.data_type(
31145
32593
  jsii_type="aws-cdk-lib.aws_stepfunctions_tasks.ShuffleConfig",
31146
32594
  jsii_struct_bases=[],
@@ -34364,6 +35812,7 @@ class EcsFargateLaunchTarget(
34364
35812
  __all__ = [
34365
35813
  "AcceleratorClass",
34366
35814
  "AcceleratorType",
35815
+ "ActionAfterCompletion",
34367
35816
  "ActionOnFailure",
34368
35817
  "AlgorithmSpecification",
34369
35818
  "ApplicationConfiguration",
@@ -34408,6 +35857,7 @@ __all__ = [
34408
35857
  "ContainerDefinitionOptions",
34409
35858
  "ContainerOverride",
34410
35859
  "ContainerOverrides",
35860
+ "CronOptions",
34411
35861
  "DataSource",
34412
35862
  "DockerImage",
34413
35863
  "DockerImageConfig",
@@ -34461,6 +35911,10 @@ __all__ = [
34461
35911
  "EventBridgePutEvents",
34462
35912
  "EventBridgePutEventsEntry",
34463
35913
  "EventBridgePutEventsProps",
35914
+ "EventBridgeSchedulerCreateScheduleTask",
35915
+ "EventBridgeSchedulerCreateScheduleTaskProps",
35916
+ "EventBridgeSchedulerTarget",
35917
+ "EventBridgeSchedulerTargetProps",
34464
35918
  "ExecutionClass",
34465
35919
  "GlueDataBrewStartJobRun",
34466
35920
  "GlueDataBrewStartJobRunProps",
@@ -34498,6 +35952,7 @@ __all__ = [
34498
35952
  "ReleaseLabel",
34499
35953
  "ResourceConfig",
34500
35954
  "ResultConfiguration",
35955
+ "RetryPolicy",
34501
35956
  "S3DataDistributionType",
34502
35957
  "S3DataSource",
34503
35958
  "S3DataType",
@@ -34516,6 +35971,7 @@ __all__ = [
34516
35971
  "SageMakerCreateTransformJobProps",
34517
35972
  "SageMakerUpdateEndpoint",
34518
35973
  "SageMakerUpdateEndpointProps",
35974
+ "Schedule",
34519
35975
  "ShuffleConfig",
34520
35976
  "SnsPublish",
34521
35977
  "SnsPublishProps",
@@ -35299,6 +36755,18 @@ def _typecheckingstub__01041943486aae0759ebb5eb0da770a79ece9051da7b1da79c5ca4956
35299
36755
  """Type checking stubs"""
35300
36756
  pass
35301
36757
 
36758
+ def _typecheckingstub__3ded07e1f80001916cedf33047f0de79b459fade9caa718d154ce12553ccfd4b(
36759
+ *,
36760
+ day: typing.Optional[builtins.str] = None,
36761
+ hour: typing.Optional[builtins.str] = None,
36762
+ minute: typing.Optional[builtins.str] = None,
36763
+ month: typing.Optional[builtins.str] = None,
36764
+ week_day: typing.Optional[builtins.str] = None,
36765
+ year: typing.Optional[builtins.str] = None,
36766
+ ) -> None:
36767
+ """Type checking stubs"""
36768
+ pass
36769
+
35302
36770
  def _typecheckingstub__ae608c3d9d2fb12a77379a82dd6b04cdafe048a3cd431a1c95d472c19c1cbcd4(
35303
36771
  *,
35304
36772
  s3_data_source: typing.Union[S3DataSource, typing.Dict[builtins.str, typing.Any]],
@@ -36677,6 +38145,111 @@ def _typecheckingstub__3d1533e2221776c3bad646394bc560a4c2723f94942ecd3f4dacdb6c7
36677
38145
  """Type checking stubs"""
36678
38146
  pass
36679
38147
 
38148
+ def _typecheckingstub__d4cb892d1936cdb9cedbfb77092003022fa30c87f9067911038653144e7000e1(
38149
+ scope: _constructs_77d1e7e8.Construct,
38150
+ id: builtins.str,
38151
+ *,
38152
+ schedule: Schedule,
38153
+ schedule_name: builtins.str,
38154
+ target: EventBridgeSchedulerTarget,
38155
+ action_after_completion: typing.Optional[ActionAfterCompletion] = None,
38156
+ client_token: typing.Optional[builtins.str] = None,
38157
+ description: typing.Optional[builtins.str] = None,
38158
+ enabled: typing.Optional[builtins.bool] = None,
38159
+ end_date: typing.Optional[datetime.datetime] = None,
38160
+ flexible_time_window: typing.Optional[_Duration_4839e8c3] = None,
38161
+ group_name: typing.Optional[builtins.str] = None,
38162
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
38163
+ start_date: typing.Optional[datetime.datetime] = None,
38164
+ timezone: typing.Optional[builtins.str] = None,
38165
+ comment: typing.Optional[builtins.str] = None,
38166
+ credentials: typing.Optional[typing.Union[_Credentials_2cd64c6b, typing.Dict[builtins.str, typing.Any]]] = None,
38167
+ heartbeat: typing.Optional[_Duration_4839e8c3] = None,
38168
+ heartbeat_timeout: typing.Optional[_Timeout_d7c10551] = None,
38169
+ input_path: typing.Optional[builtins.str] = None,
38170
+ integration_pattern: typing.Optional[_IntegrationPattern_949291bc] = None,
38171
+ output_path: typing.Optional[builtins.str] = None,
38172
+ result_path: typing.Optional[builtins.str] = None,
38173
+ result_selector: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
38174
+ state_name: typing.Optional[builtins.str] = None,
38175
+ task_timeout: typing.Optional[_Timeout_d7c10551] = None,
38176
+ timeout: typing.Optional[_Duration_4839e8c3] = None,
38177
+ ) -> None:
38178
+ """Type checking stubs"""
38179
+ pass
38180
+
38181
+ def _typecheckingstub__2ca0e1f6c70f9052670025ee76f1aee1aa07fd94e10b6fa83ff1c51c8304e804(
38182
+ *,
38183
+ comment: typing.Optional[builtins.str] = None,
38184
+ credentials: typing.Optional[typing.Union[_Credentials_2cd64c6b, typing.Dict[builtins.str, typing.Any]]] = None,
38185
+ heartbeat: typing.Optional[_Duration_4839e8c3] = None,
38186
+ heartbeat_timeout: typing.Optional[_Timeout_d7c10551] = None,
38187
+ input_path: typing.Optional[builtins.str] = None,
38188
+ integration_pattern: typing.Optional[_IntegrationPattern_949291bc] = None,
38189
+ output_path: typing.Optional[builtins.str] = None,
38190
+ result_path: typing.Optional[builtins.str] = None,
38191
+ result_selector: typing.Optional[typing.Mapping[builtins.str, typing.Any]] = None,
38192
+ state_name: typing.Optional[builtins.str] = None,
38193
+ task_timeout: typing.Optional[_Timeout_d7c10551] = None,
38194
+ timeout: typing.Optional[_Duration_4839e8c3] = None,
38195
+ schedule: Schedule,
38196
+ schedule_name: builtins.str,
38197
+ target: EventBridgeSchedulerTarget,
38198
+ action_after_completion: typing.Optional[ActionAfterCompletion] = None,
38199
+ client_token: typing.Optional[builtins.str] = None,
38200
+ description: typing.Optional[builtins.str] = None,
38201
+ enabled: typing.Optional[builtins.bool] = None,
38202
+ end_date: typing.Optional[datetime.datetime] = None,
38203
+ flexible_time_window: typing.Optional[_Duration_4839e8c3] = None,
38204
+ group_name: typing.Optional[builtins.str] = None,
38205
+ kms_key: typing.Optional[_IKey_5f11635f] = None,
38206
+ start_date: typing.Optional[datetime.datetime] = None,
38207
+ timezone: typing.Optional[builtins.str] = None,
38208
+ ) -> None:
38209
+ """Type checking stubs"""
38210
+ pass
38211
+
38212
+ def _typecheckingstub__08399721dc3339ea162c3eb58b966c2135f7b985764627b33d6165699f2fe7a9(
38213
+ value: builtins.str,
38214
+ ) -> None:
38215
+ """Type checking stubs"""
38216
+ pass
38217
+
38218
+ def _typecheckingstub__279822f7cb0eddabb17ddd4de4d374b62ac9aec5de2b4f5127c638cfacf8183d(
38219
+ value: _IRole_235f5d8e,
38220
+ ) -> None:
38221
+ """Type checking stubs"""
38222
+ pass
38223
+
38224
+ def _typecheckingstub__2740fb9a1bb904a28e993d62d6f1a5fc12667d92b6515d4d2433e2b8e8903e3e(
38225
+ value: typing.Optional[_IQueue_7ed6f679],
38226
+ ) -> None:
38227
+ """Type checking stubs"""
38228
+ pass
38229
+
38230
+ def _typecheckingstub__47114e604ac28a24d6cd14b23a4c054ce75fcb98cde7d3563faee1c1c77ae510(
38231
+ value: typing.Optional[builtins.str],
38232
+ ) -> None:
38233
+ """Type checking stubs"""
38234
+ pass
38235
+
38236
+ def _typecheckingstub__132145ba0a6d11089eaa41ce28ee78b1e93e936cf0e454686be50ef9ffcd6629(
38237
+ value: typing.Optional[RetryPolicy],
38238
+ ) -> None:
38239
+ """Type checking stubs"""
38240
+ pass
38241
+
38242
+ def _typecheckingstub__83724652ee20223ac0a080d8bf422dd2f7054179bab61153de248e08ef4efb52(
38243
+ *,
38244
+ arn: builtins.str,
38245
+ role: _IRole_235f5d8e,
38246
+ dead_letter_queue: typing.Optional[_IQueue_7ed6f679] = None,
38247
+ input: typing.Optional[builtins.str] = None,
38248
+ retry_policy: typing.Optional[typing.Union[RetryPolicy, typing.Dict[builtins.str, typing.Any]]] = None,
38249
+ ) -> None:
38250
+ """Type checking stubs"""
38251
+ pass
38252
+
36680
38253
  def _typecheckingstub__cb07757b4483ab674eb60feab8180666aaf3693f5b2c5fc2b5f17e759f97ba8d(
36681
38254
  scope: _constructs_77d1e7e8.Construct,
36682
38255
  id: builtins.str,
@@ -37091,6 +38664,14 @@ def _typecheckingstub__33c555cfffa7974fe2e6e47bc31ab2d676beaae1a0049f46abb78a457
37091
38664
  """Type checking stubs"""
37092
38665
  pass
37093
38666
 
38667
+ def _typecheckingstub__98d7f08183c8521e775b42fe55de270346af99ef79758a7f11f3b7f46644a8ed(
38668
+ *,
38669
+ maximum_event_age: _Duration_4839e8c3,
38670
+ maximum_retry_attempts: jsii.Number,
38671
+ ) -> None:
38672
+ """Type checking stubs"""
38673
+ pass
38674
+
37094
38675
  def _typecheckingstub__b838b12481cb765d7b3deab25659b461e3b016333b3e6eee25210622bbfb9c08(
37095
38676
  *,
37096
38677
  s3_location: S3Location,
@@ -37460,6 +39041,18 @@ def _typecheckingstub__d96c2c0df56e3dc1707e4ba9fa8a1542b52a2238b392b5de5c6a4cfd8
37460
39041
  """Type checking stubs"""
37461
39042
  pass
37462
39043
 
39044
+ def _typecheckingstub__5d9c36e51b3ea0cf38a1d8aa35ba2b2f487b3e663a742ee4c205897aaac84602(
39045
+ time: datetime.datetime,
39046
+ ) -> None:
39047
+ """Type checking stubs"""
39048
+ pass
39049
+
39050
+ def _typecheckingstub__ee7a5ee61b7c1e1eb0d0eb44a69b770e429c08e40f6e65c26a812408764e2260(
39051
+ duration: _Duration_4839e8c3,
39052
+ ) -> None:
39053
+ """Type checking stubs"""
39054
+ pass
39055
+
37463
39056
  def _typecheckingstub__faecfc8e3e10593c0b9f5870adc72dfc618190f143d051af9133af1842024ed2(
37464
39057
  *,
37465
39058
  seed: jsii.Number,