createScheduledAction method

Future<CreateScheduledActionResponse> createScheduledAction({
  1. required String namespaceName,
  2. required String roleArn,
  3. required Schedule schedule,
  4. required String scheduledActionName,
  5. required TargetAction targetAction,
  6. bool? enabled,
  7. DateTime? endTime,
  8. String? scheduledActionDescription,
  9. DateTime? startTime,
})

Creates a scheduled action. A scheduled action contains a schedule and an Amazon Redshift API action. For example, you can create a schedule of when to run the CreateSnapshot API operation.

May throw ConflictException. May throw InternalServerException. May throw ResourceNotFoundException. May throw ValidationException.

Parameter namespaceName : The name of the namespace for which to create a scheduled action.

Parameter roleArn : The ARN of the IAM role to assume to run the scheduled action. This IAM role must have permission to run the Amazon Redshift Serverless API operation in the scheduled action. This IAM role must allow the Amazon Redshift scheduler to schedule creating snapshots. (Principal scheduler.redshift.amazonaws.com) to assume permissions on your behalf. For more information about the IAM role to use with the Amazon Redshift scheduler, see Using Identity-Based Policies for Amazon Redshift in the Amazon Redshift Management Guide

Parameter schedule : The schedule for a one-time (at timestamp format) or recurring (cron format) scheduled action. Schedule invocations must be separated by at least one hour. Times are in UTC.

  • Format of at timestamp is yyyy-mm-ddThh:mm:ss. For example, 2016-03-04T17:27:00.
  • Format of cron expression is (Minutes Hours Day-of-month Month Day-of-week Year). For example, "(0 10 ? * MON *)". For more information, see Cron Expressions in the Amazon CloudWatch Events User Guide.

Parameter scheduledActionName : The name of the scheduled action.

Parameter enabled : Indicates whether the schedule is enabled. If false, the scheduled action does not trigger. For more information about state of the scheduled action, see ScheduledAction.

Parameter endTime : The end time in UTC when the schedule is no longer active. After this time, the scheduled action does not trigger.

Parameter scheduledActionDescription : The description of the scheduled action.

Parameter startTime : The start time in UTC when the schedule is active. Before this time, the scheduled action does not trigger.

Implementation

Future<CreateScheduledActionResponse> createScheduledAction({
  required String namespaceName,
  required String roleArn,
  required Schedule schedule,
  required String scheduledActionName,
  required TargetAction targetAction,
  bool? enabled,
  DateTime? endTime,
  String? scheduledActionDescription,
  DateTime? startTime,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'RedshiftServerless.CreateScheduledAction'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'namespaceName': namespaceName,
      'roleArn': roleArn,
      'schedule': schedule,
      'scheduledActionName': scheduledActionName,
      'targetAction': targetAction,
      if (enabled != null) 'enabled': enabled,
      if (endTime != null) 'endTime': unixTimestampToJson(endTime),
      if (scheduledActionDescription != null)
        'scheduledActionDescription': scheduledActionDescription,
      if (startTime != null) 'startTime': unixTimestampToJson(startTime),
    },
  );

  return CreateScheduledActionResponse.fromJson(jsonResponse.body);
}