github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ssm/maintenanceWindowTask.go (about)

     1  // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT.
     2  // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! ***
     3  
     4  package ssm
     5  
     6  import (
     7  	"context"
     8  	"reflect"
     9  
    10  	"errors"
    11  	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal"
    12  	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    13  )
    14  
    15  // Provides an SSM Maintenance Window Task resource
    16  //
    17  // ## Example Usage
    18  //
    19  // ### Automation Tasks
    20  //
    21  // <!--Start PulumiCodeChooser -->
    22  // ```go
    23  // package main
    24  //
    25  // import (
    26  //
    27  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
    28  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    29  //
    30  // )
    31  //
    32  //	func main() {
    33  //		pulumi.Run(func(ctx *pulumi.Context) error {
    34  //			_, err := ssm.NewMaintenanceWindowTask(ctx, "example", &ssm.MaintenanceWindowTaskArgs{
    35  //				MaxConcurrency: pulumi.String("2"),
    36  //				MaxErrors:      pulumi.String("1"),
    37  //				Priority:       pulumi.Int(1),
    38  //				TaskArn:        pulumi.String("AWS-RestartEC2Instance"),
    39  //				TaskType:       pulumi.String("AUTOMATION"),
    40  //				WindowId:       pulumi.Any(exampleAwsSsmMaintenanceWindow.Id),
    41  //				Targets: ssm.MaintenanceWindowTaskTargetArray{
    42  //					&ssm.MaintenanceWindowTaskTargetArgs{
    43  //						Key: pulumi.String("InstanceIds"),
    44  //						Values: pulumi.StringArray{
    45  //							exampleAwsInstance.Id,
    46  //						},
    47  //					},
    48  //				},
    49  //				TaskInvocationParameters: &ssm.MaintenanceWindowTaskTaskInvocationParametersArgs{
    50  //					AutomationParameters: &ssm.MaintenanceWindowTaskTaskInvocationParametersAutomationParametersArgs{
    51  //						DocumentVersion: pulumi.String("$LATEST"),
    52  //						Parameters: ssm.MaintenanceWindowTaskTaskInvocationParametersAutomationParametersParameterArray{
    53  //							&ssm.MaintenanceWindowTaskTaskInvocationParametersAutomationParametersParameterArgs{
    54  //								Name: pulumi.String("InstanceId"),
    55  //								Values: pulumi.StringArray{
    56  //									exampleAwsInstance.Id,
    57  //								},
    58  //							},
    59  //						},
    60  //					},
    61  //				},
    62  //			})
    63  //			if err != nil {
    64  //				return err
    65  //			}
    66  //			return nil
    67  //		})
    68  //	}
    69  //
    70  // ```
    71  // <!--End PulumiCodeChooser -->
    72  //
    73  // ### Lambda Tasks
    74  //
    75  // <!--Start PulumiCodeChooser -->
    76  // ```go
    77  // package main
    78  //
    79  // import (
    80  //
    81  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
    82  //	"github.com/pulumi/pulumi-std/sdk/go/std"
    83  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    84  //
    85  // )
    86  //
    87  //	func main() {
    88  //		pulumi.Run(func(ctx *pulumi.Context) error {
    89  //			invokeBase64encode, err := std.Base64encode(ctx, &std.Base64encodeArgs{
    90  //				Input: "{\"key1\":\"value1\"}",
    91  //			}, nil)
    92  //			if err != nil {
    93  //				return err
    94  //			}
    95  //			_, err = ssm.NewMaintenanceWindowTask(ctx, "example", &ssm.MaintenanceWindowTaskArgs{
    96  //				MaxConcurrency: pulumi.String("2"),
    97  //				MaxErrors:      pulumi.String("1"),
    98  //				Priority:       pulumi.Int(1),
    99  //				TaskArn:        pulumi.Any(exampleAwsLambdaFunction.Arn),
   100  //				TaskType:       pulumi.String("LAMBDA"),
   101  //				WindowId:       pulumi.Any(exampleAwsSsmMaintenanceWindow.Id),
   102  //				Targets: ssm.MaintenanceWindowTaskTargetArray{
   103  //					&ssm.MaintenanceWindowTaskTargetArgs{
   104  //						Key: pulumi.String("InstanceIds"),
   105  //						Values: pulumi.StringArray{
   106  //							exampleAwsInstance.Id,
   107  //						},
   108  //					},
   109  //				},
   110  //				TaskInvocationParameters: &ssm.MaintenanceWindowTaskTaskInvocationParametersArgs{
   111  //					LambdaParameters: &ssm.MaintenanceWindowTaskTaskInvocationParametersLambdaParametersArgs{
   112  //						ClientContext: invokeBase64encode.Result,
   113  //						Payload:       pulumi.String("{\"key1\":\"value1\"}"),
   114  //					},
   115  //				},
   116  //			})
   117  //			if err != nil {
   118  //				return err
   119  //			}
   120  //			return nil
   121  //		})
   122  //	}
   123  //
   124  // ```
   125  // <!--End PulumiCodeChooser -->
   126  //
   127  // ### Run Command Tasks
   128  //
   129  // <!--Start PulumiCodeChooser -->
   130  // ```go
   131  // package main
   132  //
   133  // import (
   134  //
   135  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
   136  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   137  //
   138  // )
   139  //
   140  //	func main() {
   141  //		pulumi.Run(func(ctx *pulumi.Context) error {
   142  //			_, err := ssm.NewMaintenanceWindowTask(ctx, "example", &ssm.MaintenanceWindowTaskArgs{
   143  //				MaxConcurrency: pulumi.String("2"),
   144  //				MaxErrors:      pulumi.String("1"),
   145  //				Priority:       pulumi.Int(1),
   146  //				TaskArn:        pulumi.String("AWS-RunShellScript"),
   147  //				TaskType:       pulumi.String("RUN_COMMAND"),
   148  //				WindowId:       pulumi.Any(exampleAwsSsmMaintenanceWindow.Id),
   149  //				Targets: ssm.MaintenanceWindowTaskTargetArray{
   150  //					&ssm.MaintenanceWindowTaskTargetArgs{
   151  //						Key: pulumi.String("InstanceIds"),
   152  //						Values: pulumi.StringArray{
   153  //							exampleAwsInstance.Id,
   154  //						},
   155  //					},
   156  //				},
   157  //				TaskInvocationParameters: &ssm.MaintenanceWindowTaskTaskInvocationParametersArgs{
   158  //					RunCommandParameters: &ssm.MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersArgs{
   159  //						OutputS3Bucket:    pulumi.Any(exampleAwsS3Bucket.Id),
   160  //						OutputS3KeyPrefix: pulumi.String("output"),
   161  //						ServiceRoleArn:    pulumi.Any(exampleAwsIamRole.Arn),
   162  //						TimeoutSeconds:    pulumi.Int(600),
   163  //						NotificationConfig: &ssm.MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersNotificationConfigArgs{
   164  //							NotificationArn: pulumi.Any(exampleAwsSnsTopic.Arn),
   165  //							NotificationEvents: pulumi.StringArray{
   166  //								pulumi.String("All"),
   167  //							},
   168  //							NotificationType: pulumi.String("Command"),
   169  //						},
   170  //						Parameters: ssm.MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersParameterArray{
   171  //							&ssm.MaintenanceWindowTaskTaskInvocationParametersRunCommandParametersParameterArgs{
   172  //								Name: pulumi.String("commands"),
   173  //								Values: pulumi.StringArray{
   174  //									pulumi.String("date"),
   175  //								},
   176  //							},
   177  //						},
   178  //					},
   179  //				},
   180  //			})
   181  //			if err != nil {
   182  //				return err
   183  //			}
   184  //			return nil
   185  //		})
   186  //	}
   187  //
   188  // ```
   189  // <!--End PulumiCodeChooser -->
   190  //
   191  // ### Step Function Tasks
   192  //
   193  // <!--Start PulumiCodeChooser -->
   194  // ```go
   195  // package main
   196  //
   197  // import (
   198  //
   199  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
   200  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
   201  //
   202  // )
   203  //
   204  //	func main() {
   205  //		pulumi.Run(func(ctx *pulumi.Context) error {
   206  //			_, err := ssm.NewMaintenanceWindowTask(ctx, "example", &ssm.MaintenanceWindowTaskArgs{
   207  //				MaxConcurrency: pulumi.String("2"),
   208  //				MaxErrors:      pulumi.String("1"),
   209  //				Priority:       pulumi.Int(1),
   210  //				TaskArn:        pulumi.Any(exampleAwsSfnActivity.Id),
   211  //				TaskType:       pulumi.String("STEP_FUNCTIONS"),
   212  //				WindowId:       pulumi.Any(exampleAwsSsmMaintenanceWindow.Id),
   213  //				Targets: ssm.MaintenanceWindowTaskTargetArray{
   214  //					&ssm.MaintenanceWindowTaskTargetArgs{
   215  //						Key: pulumi.String("InstanceIds"),
   216  //						Values: pulumi.StringArray{
   217  //							exampleAwsInstance.Id,
   218  //						},
   219  //					},
   220  //				},
   221  //				TaskInvocationParameters: &ssm.MaintenanceWindowTaskTaskInvocationParametersArgs{
   222  //					StepFunctionsParameters: &ssm.MaintenanceWindowTaskTaskInvocationParametersStepFunctionsParametersArgs{
   223  //						Input: pulumi.String("{\"key1\":\"value1\"}"),
   224  //						Name:  pulumi.String("example"),
   225  //					},
   226  //				},
   227  //			})
   228  //			if err != nil {
   229  //				return err
   230  //			}
   231  //			return nil
   232  //		})
   233  //	}
   234  //
   235  // ```
   236  // <!--End PulumiCodeChooser -->
   237  //
   238  // ## Import
   239  //
   240  // Using `pulumi import`, import AWS Maintenance Window Task using the `window_id` and `window_task_id` separated by `/`. For example:
   241  //
   242  // ```sh
   243  // $ pulumi import aws:ssm/maintenanceWindowTask:MaintenanceWindowTask task <window_id>/<window_task_id>
   244  // ```
   245  type MaintenanceWindowTask struct {
   246  	pulumi.CustomResourceState
   247  
   248  	// The ARN of the maintenance window task.
   249  	Arn pulumi.StringOutput `pulumi:"arn"`
   250  	// Indicates whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached. Valid values are `CONTINUE_TASK` and `CANCEL_TASK`.
   251  	CutoffBehavior pulumi.StringPtrOutput `pulumi:"cutoffBehavior"`
   252  	// The description of the maintenance window task.
   253  	Description pulumi.StringPtrOutput `pulumi:"description"`
   254  	// The maximum number of targets this task can be run for in parallel.
   255  	MaxConcurrency pulumi.StringOutput `pulumi:"maxConcurrency"`
   256  	// The maximum number of errors allowed before this task stops being scheduled.
   257  	MaxErrors pulumi.StringOutput `pulumi:"maxErrors"`
   258  	// The name of the maintenance window task.
   259  	Name pulumi.StringOutput `pulumi:"name"`
   260  	// The priority of the task in the Maintenance Window, the lower the number the higher the priority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same priority scheduled in parallel.
   261  	Priority pulumi.IntPtrOutput `pulumi:"priority"`
   262  	// The role that should be assumed when executing the task. If a role is not provided, Systems Manager uses your account's service-linked role. If no service-linked role for Systems Manager exists in your account, it is created for you.
   263  	ServiceRoleArn pulumi.StringOutput `pulumi:"serviceRoleArn"`
   264  	// The targets (either instances or window target ids). Instances are specified using Key=InstanceIds,Values=instanceid1,instanceid2. Window target ids are specified using Key=WindowTargetIds,Values=window target id1, window target id2.
   265  	Targets MaintenanceWindowTaskTargetArrayOutput `pulumi:"targets"`
   266  	// The ARN of the task to execute.
   267  	TaskArn pulumi.StringOutput `pulumi:"taskArn"`
   268  	// Configuration block with parameters for task execution.
   269  	TaskInvocationParameters MaintenanceWindowTaskTaskInvocationParametersPtrOutput `pulumi:"taskInvocationParameters"`
   270  	// The type of task being registered. Valid values: `AUTOMATION`, `LAMBDA`, `RUN_COMMAND` or `STEP_FUNCTIONS`.
   271  	TaskType pulumi.StringOutput `pulumi:"taskType"`
   272  	// The Id of the maintenance window to register the task with.
   273  	WindowId pulumi.StringOutput `pulumi:"windowId"`
   274  	// The ID of the maintenance window task.
   275  	WindowTaskId pulumi.StringOutput `pulumi:"windowTaskId"`
   276  }
   277  
   278  // NewMaintenanceWindowTask registers a new resource with the given unique name, arguments, and options.
   279  func NewMaintenanceWindowTask(ctx *pulumi.Context,
   280  	name string, args *MaintenanceWindowTaskArgs, opts ...pulumi.ResourceOption) (*MaintenanceWindowTask, error) {
   281  	if args == nil {
   282  		return nil, errors.New("missing one or more required arguments")
   283  	}
   284  
   285  	if args.TaskArn == nil {
   286  		return nil, errors.New("invalid value for required argument 'TaskArn'")
   287  	}
   288  	if args.TaskType == nil {
   289  		return nil, errors.New("invalid value for required argument 'TaskType'")
   290  	}
   291  	if args.WindowId == nil {
   292  		return nil, errors.New("invalid value for required argument 'WindowId'")
   293  	}
   294  	opts = internal.PkgResourceDefaultOpts(opts)
   295  	var resource MaintenanceWindowTask
   296  	err := ctx.RegisterResource("aws:ssm/maintenanceWindowTask:MaintenanceWindowTask", name, args, &resource, opts...)
   297  	if err != nil {
   298  		return nil, err
   299  	}
   300  	return &resource, nil
   301  }
   302  
   303  // GetMaintenanceWindowTask gets an existing MaintenanceWindowTask resource's state with the given name, ID, and optional
   304  // state properties that are used to uniquely qualify the lookup (nil if not required).
   305  func GetMaintenanceWindowTask(ctx *pulumi.Context,
   306  	name string, id pulumi.IDInput, state *MaintenanceWindowTaskState, opts ...pulumi.ResourceOption) (*MaintenanceWindowTask, error) {
   307  	var resource MaintenanceWindowTask
   308  	err := ctx.ReadResource("aws:ssm/maintenanceWindowTask:MaintenanceWindowTask", name, id, state, &resource, opts...)
   309  	if err != nil {
   310  		return nil, err
   311  	}
   312  	return &resource, nil
   313  }
   314  
   315  // Input properties used for looking up and filtering MaintenanceWindowTask resources.
   316  type maintenanceWindowTaskState struct {
   317  	// The ARN of the maintenance window task.
   318  	Arn *string `pulumi:"arn"`
   319  	// Indicates whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached. Valid values are `CONTINUE_TASK` and `CANCEL_TASK`.
   320  	CutoffBehavior *string `pulumi:"cutoffBehavior"`
   321  	// The description of the maintenance window task.
   322  	Description *string `pulumi:"description"`
   323  	// The maximum number of targets this task can be run for in parallel.
   324  	MaxConcurrency *string `pulumi:"maxConcurrency"`
   325  	// The maximum number of errors allowed before this task stops being scheduled.
   326  	MaxErrors *string `pulumi:"maxErrors"`
   327  	// The name of the maintenance window task.
   328  	Name *string `pulumi:"name"`
   329  	// The priority of the task in the Maintenance Window, the lower the number the higher the priority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same priority scheduled in parallel.
   330  	Priority *int `pulumi:"priority"`
   331  	// The role that should be assumed when executing the task. If a role is not provided, Systems Manager uses your account's service-linked role. If no service-linked role for Systems Manager exists in your account, it is created for you.
   332  	ServiceRoleArn *string `pulumi:"serviceRoleArn"`
   333  	// The targets (either instances or window target ids). Instances are specified using Key=InstanceIds,Values=instanceid1,instanceid2. Window target ids are specified using Key=WindowTargetIds,Values=window target id1, window target id2.
   334  	Targets []MaintenanceWindowTaskTarget `pulumi:"targets"`
   335  	// The ARN of the task to execute.
   336  	TaskArn *string `pulumi:"taskArn"`
   337  	// Configuration block with parameters for task execution.
   338  	TaskInvocationParameters *MaintenanceWindowTaskTaskInvocationParameters `pulumi:"taskInvocationParameters"`
   339  	// The type of task being registered. Valid values: `AUTOMATION`, `LAMBDA`, `RUN_COMMAND` or `STEP_FUNCTIONS`.
   340  	TaskType *string `pulumi:"taskType"`
   341  	// The Id of the maintenance window to register the task with.
   342  	WindowId *string `pulumi:"windowId"`
   343  	// The ID of the maintenance window task.
   344  	WindowTaskId *string `pulumi:"windowTaskId"`
   345  }
   346  
   347  type MaintenanceWindowTaskState struct {
   348  	// The ARN of the maintenance window task.
   349  	Arn pulumi.StringPtrInput
   350  	// Indicates whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached. Valid values are `CONTINUE_TASK` and `CANCEL_TASK`.
   351  	CutoffBehavior pulumi.StringPtrInput
   352  	// The description of the maintenance window task.
   353  	Description pulumi.StringPtrInput
   354  	// The maximum number of targets this task can be run for in parallel.
   355  	MaxConcurrency pulumi.StringPtrInput
   356  	// The maximum number of errors allowed before this task stops being scheduled.
   357  	MaxErrors pulumi.StringPtrInput
   358  	// The name of the maintenance window task.
   359  	Name pulumi.StringPtrInput
   360  	// The priority of the task in the Maintenance Window, the lower the number the higher the priority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same priority scheduled in parallel.
   361  	Priority pulumi.IntPtrInput
   362  	// The role that should be assumed when executing the task. If a role is not provided, Systems Manager uses your account's service-linked role. If no service-linked role for Systems Manager exists in your account, it is created for you.
   363  	ServiceRoleArn pulumi.StringPtrInput
   364  	// The targets (either instances or window target ids). Instances are specified using Key=InstanceIds,Values=instanceid1,instanceid2. Window target ids are specified using Key=WindowTargetIds,Values=window target id1, window target id2.
   365  	Targets MaintenanceWindowTaskTargetArrayInput
   366  	// The ARN of the task to execute.
   367  	TaskArn pulumi.StringPtrInput
   368  	// Configuration block with parameters for task execution.
   369  	TaskInvocationParameters MaintenanceWindowTaskTaskInvocationParametersPtrInput
   370  	// The type of task being registered. Valid values: `AUTOMATION`, `LAMBDA`, `RUN_COMMAND` or `STEP_FUNCTIONS`.
   371  	TaskType pulumi.StringPtrInput
   372  	// The Id of the maintenance window to register the task with.
   373  	WindowId pulumi.StringPtrInput
   374  	// The ID of the maintenance window task.
   375  	WindowTaskId pulumi.StringPtrInput
   376  }
   377  
   378  func (MaintenanceWindowTaskState) ElementType() reflect.Type {
   379  	return reflect.TypeOf((*maintenanceWindowTaskState)(nil)).Elem()
   380  }
   381  
   382  type maintenanceWindowTaskArgs struct {
   383  	// Indicates whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached. Valid values are `CONTINUE_TASK` and `CANCEL_TASK`.
   384  	CutoffBehavior *string `pulumi:"cutoffBehavior"`
   385  	// The description of the maintenance window task.
   386  	Description *string `pulumi:"description"`
   387  	// The maximum number of targets this task can be run for in parallel.
   388  	MaxConcurrency *string `pulumi:"maxConcurrency"`
   389  	// The maximum number of errors allowed before this task stops being scheduled.
   390  	MaxErrors *string `pulumi:"maxErrors"`
   391  	// The name of the maintenance window task.
   392  	Name *string `pulumi:"name"`
   393  	// The priority of the task in the Maintenance Window, the lower the number the higher the priority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same priority scheduled in parallel.
   394  	Priority *int `pulumi:"priority"`
   395  	// The role that should be assumed when executing the task. If a role is not provided, Systems Manager uses your account's service-linked role. If no service-linked role for Systems Manager exists in your account, it is created for you.
   396  	ServiceRoleArn *string `pulumi:"serviceRoleArn"`
   397  	// The targets (either instances or window target ids). Instances are specified using Key=InstanceIds,Values=instanceid1,instanceid2. Window target ids are specified using Key=WindowTargetIds,Values=window target id1, window target id2.
   398  	Targets []MaintenanceWindowTaskTarget `pulumi:"targets"`
   399  	// The ARN of the task to execute.
   400  	TaskArn string `pulumi:"taskArn"`
   401  	// Configuration block with parameters for task execution.
   402  	TaskInvocationParameters *MaintenanceWindowTaskTaskInvocationParameters `pulumi:"taskInvocationParameters"`
   403  	// The type of task being registered. Valid values: `AUTOMATION`, `LAMBDA`, `RUN_COMMAND` or `STEP_FUNCTIONS`.
   404  	TaskType string `pulumi:"taskType"`
   405  	// The Id of the maintenance window to register the task with.
   406  	WindowId string `pulumi:"windowId"`
   407  }
   408  
   409  // The set of arguments for constructing a MaintenanceWindowTask resource.
   410  type MaintenanceWindowTaskArgs struct {
   411  	// Indicates whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached. Valid values are `CONTINUE_TASK` and `CANCEL_TASK`.
   412  	CutoffBehavior pulumi.StringPtrInput
   413  	// The description of the maintenance window task.
   414  	Description pulumi.StringPtrInput
   415  	// The maximum number of targets this task can be run for in parallel.
   416  	MaxConcurrency pulumi.StringPtrInput
   417  	// The maximum number of errors allowed before this task stops being scheduled.
   418  	MaxErrors pulumi.StringPtrInput
   419  	// The name of the maintenance window task.
   420  	Name pulumi.StringPtrInput
   421  	// The priority of the task in the Maintenance Window, the lower the number the higher the priority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same priority scheduled in parallel.
   422  	Priority pulumi.IntPtrInput
   423  	// The role that should be assumed when executing the task. If a role is not provided, Systems Manager uses your account's service-linked role. If no service-linked role for Systems Manager exists in your account, it is created for you.
   424  	ServiceRoleArn pulumi.StringPtrInput
   425  	// The targets (either instances or window target ids). Instances are specified using Key=InstanceIds,Values=instanceid1,instanceid2. Window target ids are specified using Key=WindowTargetIds,Values=window target id1, window target id2.
   426  	Targets MaintenanceWindowTaskTargetArrayInput
   427  	// The ARN of the task to execute.
   428  	TaskArn pulumi.StringInput
   429  	// Configuration block with parameters for task execution.
   430  	TaskInvocationParameters MaintenanceWindowTaskTaskInvocationParametersPtrInput
   431  	// The type of task being registered. Valid values: `AUTOMATION`, `LAMBDA`, `RUN_COMMAND` or `STEP_FUNCTIONS`.
   432  	TaskType pulumi.StringInput
   433  	// The Id of the maintenance window to register the task with.
   434  	WindowId pulumi.StringInput
   435  }
   436  
   437  func (MaintenanceWindowTaskArgs) ElementType() reflect.Type {
   438  	return reflect.TypeOf((*maintenanceWindowTaskArgs)(nil)).Elem()
   439  }
   440  
   441  type MaintenanceWindowTaskInput interface {
   442  	pulumi.Input
   443  
   444  	ToMaintenanceWindowTaskOutput() MaintenanceWindowTaskOutput
   445  	ToMaintenanceWindowTaskOutputWithContext(ctx context.Context) MaintenanceWindowTaskOutput
   446  }
   447  
   448  func (*MaintenanceWindowTask) ElementType() reflect.Type {
   449  	return reflect.TypeOf((**MaintenanceWindowTask)(nil)).Elem()
   450  }
   451  
   452  func (i *MaintenanceWindowTask) ToMaintenanceWindowTaskOutput() MaintenanceWindowTaskOutput {
   453  	return i.ToMaintenanceWindowTaskOutputWithContext(context.Background())
   454  }
   455  
   456  func (i *MaintenanceWindowTask) ToMaintenanceWindowTaskOutputWithContext(ctx context.Context) MaintenanceWindowTaskOutput {
   457  	return pulumi.ToOutputWithContext(ctx, i).(MaintenanceWindowTaskOutput)
   458  }
   459  
   460  // MaintenanceWindowTaskArrayInput is an input type that accepts MaintenanceWindowTaskArray and MaintenanceWindowTaskArrayOutput values.
   461  // You can construct a concrete instance of `MaintenanceWindowTaskArrayInput` via:
   462  //
   463  //	MaintenanceWindowTaskArray{ MaintenanceWindowTaskArgs{...} }
   464  type MaintenanceWindowTaskArrayInput interface {
   465  	pulumi.Input
   466  
   467  	ToMaintenanceWindowTaskArrayOutput() MaintenanceWindowTaskArrayOutput
   468  	ToMaintenanceWindowTaskArrayOutputWithContext(context.Context) MaintenanceWindowTaskArrayOutput
   469  }
   470  
   471  type MaintenanceWindowTaskArray []MaintenanceWindowTaskInput
   472  
   473  func (MaintenanceWindowTaskArray) ElementType() reflect.Type {
   474  	return reflect.TypeOf((*[]*MaintenanceWindowTask)(nil)).Elem()
   475  }
   476  
   477  func (i MaintenanceWindowTaskArray) ToMaintenanceWindowTaskArrayOutput() MaintenanceWindowTaskArrayOutput {
   478  	return i.ToMaintenanceWindowTaskArrayOutputWithContext(context.Background())
   479  }
   480  
   481  func (i MaintenanceWindowTaskArray) ToMaintenanceWindowTaskArrayOutputWithContext(ctx context.Context) MaintenanceWindowTaskArrayOutput {
   482  	return pulumi.ToOutputWithContext(ctx, i).(MaintenanceWindowTaskArrayOutput)
   483  }
   484  
   485  // MaintenanceWindowTaskMapInput is an input type that accepts MaintenanceWindowTaskMap and MaintenanceWindowTaskMapOutput values.
   486  // You can construct a concrete instance of `MaintenanceWindowTaskMapInput` via:
   487  //
   488  //	MaintenanceWindowTaskMap{ "key": MaintenanceWindowTaskArgs{...} }
   489  type MaintenanceWindowTaskMapInput interface {
   490  	pulumi.Input
   491  
   492  	ToMaintenanceWindowTaskMapOutput() MaintenanceWindowTaskMapOutput
   493  	ToMaintenanceWindowTaskMapOutputWithContext(context.Context) MaintenanceWindowTaskMapOutput
   494  }
   495  
   496  type MaintenanceWindowTaskMap map[string]MaintenanceWindowTaskInput
   497  
   498  func (MaintenanceWindowTaskMap) ElementType() reflect.Type {
   499  	return reflect.TypeOf((*map[string]*MaintenanceWindowTask)(nil)).Elem()
   500  }
   501  
   502  func (i MaintenanceWindowTaskMap) ToMaintenanceWindowTaskMapOutput() MaintenanceWindowTaskMapOutput {
   503  	return i.ToMaintenanceWindowTaskMapOutputWithContext(context.Background())
   504  }
   505  
   506  func (i MaintenanceWindowTaskMap) ToMaintenanceWindowTaskMapOutputWithContext(ctx context.Context) MaintenanceWindowTaskMapOutput {
   507  	return pulumi.ToOutputWithContext(ctx, i).(MaintenanceWindowTaskMapOutput)
   508  }
   509  
   510  type MaintenanceWindowTaskOutput struct{ *pulumi.OutputState }
   511  
   512  func (MaintenanceWindowTaskOutput) ElementType() reflect.Type {
   513  	return reflect.TypeOf((**MaintenanceWindowTask)(nil)).Elem()
   514  }
   515  
   516  func (o MaintenanceWindowTaskOutput) ToMaintenanceWindowTaskOutput() MaintenanceWindowTaskOutput {
   517  	return o
   518  }
   519  
   520  func (o MaintenanceWindowTaskOutput) ToMaintenanceWindowTaskOutputWithContext(ctx context.Context) MaintenanceWindowTaskOutput {
   521  	return o
   522  }
   523  
   524  // The ARN of the maintenance window task.
   525  func (o MaintenanceWindowTaskOutput) Arn() pulumi.StringOutput {
   526  	return o.ApplyT(func(v *MaintenanceWindowTask) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput)
   527  }
   528  
   529  // Indicates whether tasks should continue to run after the cutoff time specified in the maintenance windows is reached. Valid values are `CONTINUE_TASK` and `CANCEL_TASK`.
   530  func (o MaintenanceWindowTaskOutput) CutoffBehavior() pulumi.StringPtrOutput {
   531  	return o.ApplyT(func(v *MaintenanceWindowTask) pulumi.StringPtrOutput { return v.CutoffBehavior }).(pulumi.StringPtrOutput)
   532  }
   533  
   534  // The description of the maintenance window task.
   535  func (o MaintenanceWindowTaskOutput) Description() pulumi.StringPtrOutput {
   536  	return o.ApplyT(func(v *MaintenanceWindowTask) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   537  }
   538  
   539  // The maximum number of targets this task can be run for in parallel.
   540  func (o MaintenanceWindowTaskOutput) MaxConcurrency() pulumi.StringOutput {
   541  	return o.ApplyT(func(v *MaintenanceWindowTask) pulumi.StringOutput { return v.MaxConcurrency }).(pulumi.StringOutput)
   542  }
   543  
   544  // The maximum number of errors allowed before this task stops being scheduled.
   545  func (o MaintenanceWindowTaskOutput) MaxErrors() pulumi.StringOutput {
   546  	return o.ApplyT(func(v *MaintenanceWindowTask) pulumi.StringOutput { return v.MaxErrors }).(pulumi.StringOutput)
   547  }
   548  
   549  // The name of the maintenance window task.
   550  func (o MaintenanceWindowTaskOutput) Name() pulumi.StringOutput {
   551  	return o.ApplyT(func(v *MaintenanceWindowTask) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   552  }
   553  
   554  // The priority of the task in the Maintenance Window, the lower the number the higher the priority. Tasks in a Maintenance Window are scheduled in priority order with tasks that have the same priority scheduled in parallel.
   555  func (o MaintenanceWindowTaskOutput) Priority() pulumi.IntPtrOutput {
   556  	return o.ApplyT(func(v *MaintenanceWindowTask) pulumi.IntPtrOutput { return v.Priority }).(pulumi.IntPtrOutput)
   557  }
   558  
   559  // The role that should be assumed when executing the task. If a role is not provided, Systems Manager uses your account's service-linked role. If no service-linked role for Systems Manager exists in your account, it is created for you.
   560  func (o MaintenanceWindowTaskOutput) ServiceRoleArn() pulumi.StringOutput {
   561  	return o.ApplyT(func(v *MaintenanceWindowTask) pulumi.StringOutput { return v.ServiceRoleArn }).(pulumi.StringOutput)
   562  }
   563  
   564  // The targets (either instances or window target ids). Instances are specified using Key=InstanceIds,Values=instanceid1,instanceid2. Window target ids are specified using Key=WindowTargetIds,Values=window target id1, window target id2.
   565  func (o MaintenanceWindowTaskOutput) Targets() MaintenanceWindowTaskTargetArrayOutput {
   566  	return o.ApplyT(func(v *MaintenanceWindowTask) MaintenanceWindowTaskTargetArrayOutput { return v.Targets }).(MaintenanceWindowTaskTargetArrayOutput)
   567  }
   568  
   569  // The ARN of the task to execute.
   570  func (o MaintenanceWindowTaskOutput) TaskArn() pulumi.StringOutput {
   571  	return o.ApplyT(func(v *MaintenanceWindowTask) pulumi.StringOutput { return v.TaskArn }).(pulumi.StringOutput)
   572  }
   573  
   574  // Configuration block with parameters for task execution.
   575  func (o MaintenanceWindowTaskOutput) TaskInvocationParameters() MaintenanceWindowTaskTaskInvocationParametersPtrOutput {
   576  	return o.ApplyT(func(v *MaintenanceWindowTask) MaintenanceWindowTaskTaskInvocationParametersPtrOutput {
   577  		return v.TaskInvocationParameters
   578  	}).(MaintenanceWindowTaskTaskInvocationParametersPtrOutput)
   579  }
   580  
   581  // The type of task being registered. Valid values: `AUTOMATION`, `LAMBDA`, `RUN_COMMAND` or `STEP_FUNCTIONS`.
   582  func (o MaintenanceWindowTaskOutput) TaskType() pulumi.StringOutput {
   583  	return o.ApplyT(func(v *MaintenanceWindowTask) pulumi.StringOutput { return v.TaskType }).(pulumi.StringOutput)
   584  }
   585  
   586  // The Id of the maintenance window to register the task with.
   587  func (o MaintenanceWindowTaskOutput) WindowId() pulumi.StringOutput {
   588  	return o.ApplyT(func(v *MaintenanceWindowTask) pulumi.StringOutput { return v.WindowId }).(pulumi.StringOutput)
   589  }
   590  
   591  // The ID of the maintenance window task.
   592  func (o MaintenanceWindowTaskOutput) WindowTaskId() pulumi.StringOutput {
   593  	return o.ApplyT(func(v *MaintenanceWindowTask) pulumi.StringOutput { return v.WindowTaskId }).(pulumi.StringOutput)
   594  }
   595  
   596  type MaintenanceWindowTaskArrayOutput struct{ *pulumi.OutputState }
   597  
   598  func (MaintenanceWindowTaskArrayOutput) ElementType() reflect.Type {
   599  	return reflect.TypeOf((*[]*MaintenanceWindowTask)(nil)).Elem()
   600  }
   601  
   602  func (o MaintenanceWindowTaskArrayOutput) ToMaintenanceWindowTaskArrayOutput() MaintenanceWindowTaskArrayOutput {
   603  	return o
   604  }
   605  
   606  func (o MaintenanceWindowTaskArrayOutput) ToMaintenanceWindowTaskArrayOutputWithContext(ctx context.Context) MaintenanceWindowTaskArrayOutput {
   607  	return o
   608  }
   609  
   610  func (o MaintenanceWindowTaskArrayOutput) Index(i pulumi.IntInput) MaintenanceWindowTaskOutput {
   611  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MaintenanceWindowTask {
   612  		return vs[0].([]*MaintenanceWindowTask)[vs[1].(int)]
   613  	}).(MaintenanceWindowTaskOutput)
   614  }
   615  
   616  type MaintenanceWindowTaskMapOutput struct{ *pulumi.OutputState }
   617  
   618  func (MaintenanceWindowTaskMapOutput) ElementType() reflect.Type {
   619  	return reflect.TypeOf((*map[string]*MaintenanceWindowTask)(nil)).Elem()
   620  }
   621  
   622  func (o MaintenanceWindowTaskMapOutput) ToMaintenanceWindowTaskMapOutput() MaintenanceWindowTaskMapOutput {
   623  	return o
   624  }
   625  
   626  func (o MaintenanceWindowTaskMapOutput) ToMaintenanceWindowTaskMapOutputWithContext(ctx context.Context) MaintenanceWindowTaskMapOutput {
   627  	return o
   628  }
   629  
   630  func (o MaintenanceWindowTaskMapOutput) MapIndex(k pulumi.StringInput) MaintenanceWindowTaskOutput {
   631  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MaintenanceWindowTask {
   632  		return vs[0].(map[string]*MaintenanceWindowTask)[vs[1].(string)]
   633  	}).(MaintenanceWindowTaskOutput)
   634  }
   635  
   636  func init() {
   637  	pulumi.RegisterInputType(reflect.TypeOf((*MaintenanceWindowTaskInput)(nil)).Elem(), &MaintenanceWindowTask{})
   638  	pulumi.RegisterInputType(reflect.TypeOf((*MaintenanceWindowTaskArrayInput)(nil)).Elem(), MaintenanceWindowTaskArray{})
   639  	pulumi.RegisterInputType(reflect.TypeOf((*MaintenanceWindowTaskMapInput)(nil)).Elem(), MaintenanceWindowTaskMap{})
   640  	pulumi.RegisterOutputType(MaintenanceWindowTaskOutput{})
   641  	pulumi.RegisterOutputType(MaintenanceWindowTaskArrayOutput{})
   642  	pulumi.RegisterOutputType(MaintenanceWindowTaskMapOutput{})
   643  }