import * as core from "@terrascript/core"; export interface ResumeClusterArgs extends core.SchemaArgs { clusterIdentifier: string | core.StringOut; } export class ResumeCluster extends core.Schema { @core.attr(String) public clusterIdentifier!: string | core.StringOut; } export interface PauseClusterArgs extends core.SchemaArgs { clusterIdentifier: string | core.StringOut; } export class PauseCluster extends core.Schema { @core.attr(String) public clusterIdentifier!: string | core.StringOut; } export interface ResizeClusterArgs extends core.SchemaArgs { classic?: boolean | core.BooleanOut; clusterIdentifier: string | core.StringOut; clusterType?: string | core.StringOut; nodeType?: string | core.StringOut; numberOfNodes?: number | core.NumberOut; } export class ResizeCluster extends core.Schema { @core.attr(Boolean) public classic?: boolean | core.BooleanOut; @core.attr(String) public clusterIdentifier!: string | core.StringOut; @core.attr(String) public clusterType?: string | core.StringOut; @core.attr(String) public nodeType?: string | core.StringOut; @core.attr(Number) public numberOfNodes?: number | core.NumberOut; } export interface TargetActionArgs extends core.SchemaArgs { pauseCluster?: PauseCluster; resizeCluster?: ResizeCluster; resumeCluster?: ResumeCluster; } export class TargetAction extends core.Schema { @core.attr(PauseCluster) public pauseCluster?: PauseCluster; @core.attr(ResizeCluster) public resizeCluster?: ResizeCluster; @core.attr(ResumeCluster) public resumeCluster?: ResumeCluster; } export interface ScheduledActionArgs extends core.ResourceArgs { /** * (Optional) The description of the scheduled action. */ description?: string | core.StringOut; /** * (Optional) Whether to enable the scheduled action. Default is `true` . */ enable?: boolean | core.BooleanOut; /** * (Optional) The end time in UTC when the schedule is active, in UTC RFC3339 format(for example, YYYY- * MM-DDTHH:MM:SSZ). */ endTime?: string | core.StringOut; /** * (Required) The IAM role to assume to run the scheduled action. */ iamRole: string | core.StringOut; /** * (Required) The scheduled action name. */ name: string | core.StringOut; /** * (Required) The schedule of action. The schedule is defined format of "at expression" or "cron expres * sion", for example `at(2016-03-04T17:27:00)` or `cron(0 10 ? * MON *)`. See [Scheduled Action](https * ://docs.aws.amazon.com/redshift/latest/APIReference/API_ScheduledAction.html) for more information. */ schedule: string | core.StringOut; /** * (Optional) The start time in UTC when the schedule is active, in UTC RFC3339 format(for example, YYY * Y-MM-DDTHH:MM:SSZ). */ startTime?: string | core.StringOut; /** * (Required) Target action. Documented below. */ targetAction: TargetAction; } export class ScheduledAction extends core.Resource { /** * (Optional) The description of the scheduled action. */ @core.attr(String) public description?: string | core.StringOut; /** * (Optional) Whether to enable the scheduled action. Default is `true` . */ @core.attr(Boolean) public enable?: boolean | core.BooleanOut; /** * (Optional) The end time in UTC when the schedule is active, in UTC RFC3339 format(for example, YYYY- * MM-DDTHH:MM:SSZ). */ @core.attr(String) public endTime?: string | core.StringOut; /** * (Required) The IAM role to assume to run the scheduled action. */ @core.attr(String) public iamRole!: string | core.StringOut; /** * The Redshift Scheduled Action name. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Required) The scheduled action name. */ @core.attr(String) public name!: string | core.StringOut; /** * (Required) The schedule of action. The schedule is defined format of "at expression" or "cron expres * sion", for example `at(2016-03-04T17:27:00)` or `cron(0 10 ? * MON *)`. See [Scheduled Action](https * ://docs.aws.amazon.com/redshift/latest/APIReference/API_ScheduledAction.html) for more information. */ @core.attr(String) public schedule!: string | core.StringOut; /** * (Optional) The start time in UTC when the schedule is active, in UTC RFC3339 format(for example, YYY * Y-MM-DDTHH:MM:SSZ). */ @core.attr(String) public startTime?: string | core.StringOut; /** * (Required) Target action. Documented below. */ @core.attr(TargetAction) public targetAction!: TargetAction; constructor(name: string, args?: ScheduledActionArgs) { super(name, "aws_redshift_scheduled_action", args); } public override getNamespace(): string { return "aws_redshift"; } }