import * as core from "@terrascript/core"; export interface ParameterArgs extends core.SchemaArgs { name: string | core.StringOut; values: core.Array | core.ArrayOut; } export class Parameter extends core.Schema { @core.attr(String) public name!: string | core.StringOut; @core.attr(String, { kind: "array" }) public values!: core.Array | core.ArrayOut; } export interface AutomationParametersArgs extends core.SchemaArgs { documentVersion?: string | core.StringOut; parameter?: core.Array | core.ArrayOut; } export class AutomationParameters extends core.Schema { @core.attr(String) public documentVersion?: string | core.StringOut; @core.attr(Parameter, { kind: "array" }) public parameter?: core.Array | core.ArrayOut; } export interface LambdaParametersArgs extends core.SchemaArgs { clientContext?: string | core.StringOut; payload?: string | core.StringOut; qualifier?: string | core.StringOut; } export class LambdaParameters extends core.Schema { @core.attr(String) public clientContext?: string | core.StringOut; @core.attr(String) public payload?: string | core.StringOut; @core.attr(String) public qualifier?: string | core.StringOut; } export interface NotificationConfigArgs extends core.SchemaArgs { notificationArn?: string | core.StringOut; notificationEvents?: core.Array | core.ArrayOut; notificationType?: string | core.StringOut; } export class NotificationConfig extends core.Schema { @core.attr(String) public notificationArn?: string | core.StringOut; @core.attr(String, { kind: "array" }) public notificationEvents?: | core.Array | core.ArrayOut; @core.attr(String) public notificationType?: string | core.StringOut; } export interface CloudwatchConfigArgs extends core.SchemaArgs { cloudwatchLogGroupName?: string | core.StringOut; cloudwatchOutputEnabled?: boolean | core.BooleanOut; } export class CloudwatchConfig extends core.Schema { @core.attr(String, { computed: true }) public cloudwatchLogGroupName?: string | core.StringOut; @core.attr(Boolean) public cloudwatchOutputEnabled?: boolean | core.BooleanOut; } export interface RunCommandParametersArgs extends core.SchemaArgs { cloudwatchConfig?: CloudwatchConfig; comment?: string | core.StringOut; documentHash?: string | core.StringOut; documentHashType?: string | core.StringOut; documentVersion?: string | core.StringOut; notificationConfig?: NotificationConfig; outputS3Bucket?: string | core.StringOut; outputS3KeyPrefix?: string | core.StringOut; parameter?: core.Array | core.ArrayOut; serviceRoleArn?: string | core.StringOut; timeoutSeconds?: number | core.NumberOut; } export class RunCommandParameters extends core.Schema { @core.attr(CloudwatchConfig) public cloudwatchConfig?: CloudwatchConfig; @core.attr(String) public comment?: string | core.StringOut; @core.attr(String) public documentHash?: string | core.StringOut; @core.attr(String) public documentHashType?: string | core.StringOut; @core.attr(String) public documentVersion?: string | core.StringOut; @core.attr(NotificationConfig) public notificationConfig?: NotificationConfig; @core.attr(String) public outputS3Bucket?: string | core.StringOut; @core.attr(String) public outputS3KeyPrefix?: string | core.StringOut; @core.attr(Parameter, { kind: "array" }) public parameter?: core.Array | core.ArrayOut; @core.attr(String) public serviceRoleArn?: string | core.StringOut; @core.attr(Number) public timeoutSeconds?: number | core.NumberOut; } export interface StepFunctionsParametersArgs extends core.SchemaArgs { input?: string | core.StringOut; name?: string | core.StringOut; } export class StepFunctionsParameters extends core.Schema { @core.attr(String) public input?: string | core.StringOut; @core.attr(String) public name?: string | core.StringOut; } export interface TaskInvocationParametersArgs extends core.SchemaArgs { automationParameters?: AutomationParameters; lambdaParameters?: LambdaParameters; runCommandParameters?: RunCommandParameters; stepFunctionsParameters?: StepFunctionsParameters; } export class TaskInvocationParameters extends core.Schema { @core.attr(AutomationParameters) public automationParameters?: AutomationParameters; @core.attr(LambdaParameters) public lambdaParameters?: LambdaParameters; @core.attr(RunCommandParameters) public runCommandParameters?: RunCommandParameters; @core.attr(StepFunctionsParameters) public stepFunctionsParameters?: StepFunctionsParameters; } export interface TargetsArgs extends core.SchemaArgs { key: string | core.StringOut; values: core.Array | core.ArrayOut; } export class Targets extends core.Schema { @core.attr(String) public key!: string | core.StringOut; @core.attr(String, { kind: "array" }) public values!: core.Array | core.ArrayOut; } export interface MaintenanceWindowTaskArgs extends core.ResourceArgs { /** * (Optional) Indicates whether tasks should continue to run after the cutoff time specified in the mai * ntenance windows is reached. Valid values are `CONTINUE_TASK` and `CANCEL_TASK`. */ cutoffBehavior?: string | core.StringOut; /** * (Optional) The description of the maintenance window task. */ description?: string | core.StringOut; /** * (Optional) The maximum number of targets this task can be run for in parallel. */ maxConcurrency?: string | core.StringOut; /** * (Optional) The maximum number of errors allowed before this task stops being scheduled. */ maxErrors?: string | core.StringOut; /** * (Optional) The name of the maintenance window task. */ name?: string | core.StringOut; /** * (Optional) The priority of the task in the Maintenance Window, the lower the number the higher the p * riority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same * priority scheduled in parallel. */ priority?: number | core.NumberOut; /** * (Optional) The role that should be assumed when executing the task. If a role is not provided, Syste * ms Manager uses your account's service-linked role. If no service-linked role for Systems Manager ex * ists in your account, it is created for you. */ serviceRoleArn?: string | core.StringOut; /** * (Optional) The targets (either instances or window target ids). Instances are specified using Key=In * stanceIds,Values=instanceid1,instanceid2. Window target ids are specified using Key=WindowTargetIds, * Values=window target id1, window target id2. */ targets?: core.Array | core.ArrayOut; /** * (Required) The ARN of the task to execute. */ taskArn: string | core.StringOut; /** * (Optional) Configuration block with parameters for task execution. */ taskInvocationParameters?: TaskInvocationParameters; /** * (Required) The type of task being registered. Valid values: `AUTOMATION`, `LAMBDA`, `RUN_COMMAND` or * STEP_FUNCTIONS`. */ taskType: string | core.StringOut; /** * (Required) The Id of the maintenance window to register the task with. */ windowId: string | core.StringOut; } export class MaintenanceWindowTask extends core.Resource { /** * The ARN of the maintenance window task. */ @core.attr(String, { computed: true }) public arn!: string | core.StringOut; /** * (Optional) Indicates whether tasks should continue to run after the cutoff time specified in the mai * ntenance windows is reached. Valid values are `CONTINUE_TASK` and `CANCEL_TASK`. */ @core.attr(String) public cutoffBehavior?: string | core.StringOut; /** * (Optional) The description of the maintenance window task. */ @core.attr(String) public description?: string | core.StringOut; /** * The ID of the maintenance window task. */ @core.attr(String, { computed: true }) public id!: string | core.StringOut; /** * (Optional) The maximum number of targets this task can be run for in parallel. */ @core.attr(String, { computed: true }) public maxConcurrency?: string | core.StringOut; /** * (Optional) The maximum number of errors allowed before this task stops being scheduled. */ @core.attr(String, { computed: true }) public maxErrors?: string | core.StringOut; /** * (Optional) The name of the maintenance window task. */ @core.attr(String) public name?: string | core.StringOut; /** * (Optional) The priority of the task in the Maintenance Window, the lower the number the higher the p * riority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same * priority scheduled in parallel. */ @core.attr(Number) public priority?: number | core.NumberOut; /** * (Optional) The role that should be assumed when executing the task. If a role is not provided, Syste * ms Manager uses your account's service-linked role. If no service-linked role for Systems Manager ex * ists in your account, it is created for you. */ @core.attr(String, { computed: true }) public serviceRoleArn?: string | core.StringOut; /** * (Optional) The targets (either instances or window target ids). Instances are specified using Key=In * stanceIds,Values=instanceid1,instanceid2. Window target ids are specified using Key=WindowTargetIds, * Values=window target id1, window target id2. */ @core.attr(Targets, { kind: "array" }) public targets?: core.Array | core.ArrayOut; /** * (Required) The ARN of the task to execute. */ @core.attr(String) public taskArn!: string | core.StringOut; /** * (Optional) Configuration block with parameters for task execution. */ @core.attr(TaskInvocationParameters) public taskInvocationParameters?: TaskInvocationParameters; /** * (Required) The type of task being registered. Valid values: `AUTOMATION`, `LAMBDA`, `RUN_COMMAND` or * STEP_FUNCTIONS`. */ @core.attr(String) public taskType!: string | core.StringOut; /** * (Required) The Id of the maintenance window to register the task with. */ @core.attr(String) public windowId!: string | core.StringOut; /** * The ID of the maintenance window task. */ @core.attr(String, { computed: true }) public windowTaskId!: string | core.StringOut; constructor(name: string, args?: MaintenanceWindowTaskArgs) { super(name, "aws_ssm_maintenance_window_task", args); } public override getNamespace(): string { return "aws_ssm"; } }