github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ssm/maintenanceWindowTarget.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 Target resource
    16  //
    17  // ## Example Usage
    18  //
    19  // ### Instance Target
    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  //			window, err := ssm.NewMaintenanceWindow(ctx, "window", &ssm.MaintenanceWindowArgs{
    35  //				Name:     pulumi.String("maintenance-window-webapp"),
    36  //				Schedule: pulumi.String("cron(0 16 ? * TUE *)"),
    37  //				Duration: pulumi.Int(3),
    38  //				Cutoff:   pulumi.Int(1),
    39  //			})
    40  //			if err != nil {
    41  //				return err
    42  //			}
    43  //			_, err = ssm.NewMaintenanceWindowTarget(ctx, "target1", &ssm.MaintenanceWindowTargetArgs{
    44  //				WindowId:     window.ID(),
    45  //				Name:         pulumi.String("maintenance-window-target"),
    46  //				Description:  pulumi.String("This is a maintenance window target"),
    47  //				ResourceType: pulumi.String("INSTANCE"),
    48  //				Targets: ssm.MaintenanceWindowTargetTargetArray{
    49  //					&ssm.MaintenanceWindowTargetTargetArgs{
    50  //						Key: pulumi.String("tag:Name"),
    51  //						Values: pulumi.StringArray{
    52  //							pulumi.String("acceptance_test"),
    53  //						},
    54  //					},
    55  //				},
    56  //			})
    57  //			if err != nil {
    58  //				return err
    59  //			}
    60  //			return nil
    61  //		})
    62  //	}
    63  //
    64  // ```
    65  // <!--End PulumiCodeChooser -->
    66  //
    67  // ### Resource Group Target
    68  //
    69  // <!--Start PulumiCodeChooser -->
    70  // ```go
    71  // package main
    72  //
    73  // import (
    74  //
    75  //	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ssm"
    76  //	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    77  //
    78  // )
    79  //
    80  //	func main() {
    81  //		pulumi.Run(func(ctx *pulumi.Context) error {
    82  //			window, err := ssm.NewMaintenanceWindow(ctx, "window", &ssm.MaintenanceWindowArgs{
    83  //				Name:     pulumi.String("maintenance-window-webapp"),
    84  //				Schedule: pulumi.String("cron(0 16 ? * TUE *)"),
    85  //				Duration: pulumi.Int(3),
    86  //				Cutoff:   pulumi.Int(1),
    87  //			})
    88  //			if err != nil {
    89  //				return err
    90  //			}
    91  //			_, err = ssm.NewMaintenanceWindowTarget(ctx, "target1", &ssm.MaintenanceWindowTargetArgs{
    92  //				WindowId:     window.ID(),
    93  //				Name:         pulumi.String("maintenance-window-target"),
    94  //				Description:  pulumi.String("This is a maintenance window target"),
    95  //				ResourceType: pulumi.String("RESOURCE_GROUP"),
    96  //				Targets: ssm.MaintenanceWindowTargetTargetArray{
    97  //					&ssm.MaintenanceWindowTargetTargetArgs{
    98  //						Key: pulumi.String("resource-groups:ResourceTypeFilters"),
    99  //						Values: pulumi.StringArray{
   100  //							pulumi.String("AWS::EC2::Instance"),
   101  //						},
   102  //					},
   103  //				},
   104  //			})
   105  //			if err != nil {
   106  //				return err
   107  //			}
   108  //			return nil
   109  //		})
   110  //	}
   111  //
   112  // ```
   113  // <!--End PulumiCodeChooser -->
   114  //
   115  // ## Import
   116  //
   117  // Using `pulumi import`, import SSM Maintenance Window targets using `WINDOW_ID/WINDOW_TARGET_ID`. For example:
   118  //
   119  // ```sh
   120  // $ pulumi import aws:ssm/maintenanceWindowTarget:MaintenanceWindowTarget example mw-0c50858d01EXAMPLE/23639a0b-ddbc-4bca-9e72-78d96EXAMPLE
   121  // ```
   122  type MaintenanceWindowTarget struct {
   123  	pulumi.CustomResourceState
   124  
   125  	// The description of the maintenance window target.
   126  	Description pulumi.StringPtrOutput `pulumi:"description"`
   127  	// The name of the maintenance window target.
   128  	Name pulumi.StringOutput `pulumi:"name"`
   129  	// User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.
   130  	OwnerInformation pulumi.StringPtrOutput `pulumi:"ownerInformation"`
   131  	// The type of target being registered with the Maintenance Window. Possible values are `INSTANCE` and `RESOURCE_GROUP`.
   132  	ResourceType pulumi.StringOutput `pulumi:"resourceType"`
   133  	// The targets to register with the maintenance window. In other words, the instances to run commands on when the maintenance window runs. You can specify targets using instance IDs, resource group names, or tags that have been applied to instances. For more information about these examples formats see
   134  	// (https://docs.aws.amazon.com/systems-manager/latest/userguide/mw-cli-tutorial-targets-examples.html)
   135  	Targets MaintenanceWindowTargetTargetArrayOutput `pulumi:"targets"`
   136  	// The Id of the maintenance window to register the target with.
   137  	WindowId pulumi.StringOutput `pulumi:"windowId"`
   138  }
   139  
   140  // NewMaintenanceWindowTarget registers a new resource with the given unique name, arguments, and options.
   141  func NewMaintenanceWindowTarget(ctx *pulumi.Context,
   142  	name string, args *MaintenanceWindowTargetArgs, opts ...pulumi.ResourceOption) (*MaintenanceWindowTarget, error) {
   143  	if args == nil {
   144  		return nil, errors.New("missing one or more required arguments")
   145  	}
   146  
   147  	if args.ResourceType == nil {
   148  		return nil, errors.New("invalid value for required argument 'ResourceType'")
   149  	}
   150  	if args.Targets == nil {
   151  		return nil, errors.New("invalid value for required argument 'Targets'")
   152  	}
   153  	if args.WindowId == nil {
   154  		return nil, errors.New("invalid value for required argument 'WindowId'")
   155  	}
   156  	opts = internal.PkgResourceDefaultOpts(opts)
   157  	var resource MaintenanceWindowTarget
   158  	err := ctx.RegisterResource("aws:ssm/maintenanceWindowTarget:MaintenanceWindowTarget", name, args, &resource, opts...)
   159  	if err != nil {
   160  		return nil, err
   161  	}
   162  	return &resource, nil
   163  }
   164  
   165  // GetMaintenanceWindowTarget gets an existing MaintenanceWindowTarget resource's state with the given name, ID, and optional
   166  // state properties that are used to uniquely qualify the lookup (nil if not required).
   167  func GetMaintenanceWindowTarget(ctx *pulumi.Context,
   168  	name string, id pulumi.IDInput, state *MaintenanceWindowTargetState, opts ...pulumi.ResourceOption) (*MaintenanceWindowTarget, error) {
   169  	var resource MaintenanceWindowTarget
   170  	err := ctx.ReadResource("aws:ssm/maintenanceWindowTarget:MaintenanceWindowTarget", name, id, state, &resource, opts...)
   171  	if err != nil {
   172  		return nil, err
   173  	}
   174  	return &resource, nil
   175  }
   176  
   177  // Input properties used for looking up and filtering MaintenanceWindowTarget resources.
   178  type maintenanceWindowTargetState struct {
   179  	// The description of the maintenance window target.
   180  	Description *string `pulumi:"description"`
   181  	// The name of the maintenance window target.
   182  	Name *string `pulumi:"name"`
   183  	// User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.
   184  	OwnerInformation *string `pulumi:"ownerInformation"`
   185  	// The type of target being registered with the Maintenance Window. Possible values are `INSTANCE` and `RESOURCE_GROUP`.
   186  	ResourceType *string `pulumi:"resourceType"`
   187  	// The targets to register with the maintenance window. In other words, the instances to run commands on when the maintenance window runs. You can specify targets using instance IDs, resource group names, or tags that have been applied to instances. For more information about these examples formats see
   188  	// (https://docs.aws.amazon.com/systems-manager/latest/userguide/mw-cli-tutorial-targets-examples.html)
   189  	Targets []MaintenanceWindowTargetTarget `pulumi:"targets"`
   190  	// The Id of the maintenance window to register the target with.
   191  	WindowId *string `pulumi:"windowId"`
   192  }
   193  
   194  type MaintenanceWindowTargetState struct {
   195  	// The description of the maintenance window target.
   196  	Description pulumi.StringPtrInput
   197  	// The name of the maintenance window target.
   198  	Name pulumi.StringPtrInput
   199  	// User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.
   200  	OwnerInformation pulumi.StringPtrInput
   201  	// The type of target being registered with the Maintenance Window. Possible values are `INSTANCE` and `RESOURCE_GROUP`.
   202  	ResourceType pulumi.StringPtrInput
   203  	// The targets to register with the maintenance window. In other words, the instances to run commands on when the maintenance window runs. You can specify targets using instance IDs, resource group names, or tags that have been applied to instances. For more information about these examples formats see
   204  	// (https://docs.aws.amazon.com/systems-manager/latest/userguide/mw-cli-tutorial-targets-examples.html)
   205  	Targets MaintenanceWindowTargetTargetArrayInput
   206  	// The Id of the maintenance window to register the target with.
   207  	WindowId pulumi.StringPtrInput
   208  }
   209  
   210  func (MaintenanceWindowTargetState) ElementType() reflect.Type {
   211  	return reflect.TypeOf((*maintenanceWindowTargetState)(nil)).Elem()
   212  }
   213  
   214  type maintenanceWindowTargetArgs struct {
   215  	// The description of the maintenance window target.
   216  	Description *string `pulumi:"description"`
   217  	// The name of the maintenance window target.
   218  	Name *string `pulumi:"name"`
   219  	// User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.
   220  	OwnerInformation *string `pulumi:"ownerInformation"`
   221  	// The type of target being registered with the Maintenance Window. Possible values are `INSTANCE` and `RESOURCE_GROUP`.
   222  	ResourceType string `pulumi:"resourceType"`
   223  	// The targets to register with the maintenance window. In other words, the instances to run commands on when the maintenance window runs. You can specify targets using instance IDs, resource group names, or tags that have been applied to instances. For more information about these examples formats see
   224  	// (https://docs.aws.amazon.com/systems-manager/latest/userguide/mw-cli-tutorial-targets-examples.html)
   225  	Targets []MaintenanceWindowTargetTarget `pulumi:"targets"`
   226  	// The Id of the maintenance window to register the target with.
   227  	WindowId string `pulumi:"windowId"`
   228  }
   229  
   230  // The set of arguments for constructing a MaintenanceWindowTarget resource.
   231  type MaintenanceWindowTargetArgs struct {
   232  	// The description of the maintenance window target.
   233  	Description pulumi.StringPtrInput
   234  	// The name of the maintenance window target.
   235  	Name pulumi.StringPtrInput
   236  	// User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.
   237  	OwnerInformation pulumi.StringPtrInput
   238  	// The type of target being registered with the Maintenance Window. Possible values are `INSTANCE` and `RESOURCE_GROUP`.
   239  	ResourceType pulumi.StringInput
   240  	// The targets to register with the maintenance window. In other words, the instances to run commands on when the maintenance window runs. You can specify targets using instance IDs, resource group names, or tags that have been applied to instances. For more information about these examples formats see
   241  	// (https://docs.aws.amazon.com/systems-manager/latest/userguide/mw-cli-tutorial-targets-examples.html)
   242  	Targets MaintenanceWindowTargetTargetArrayInput
   243  	// The Id of the maintenance window to register the target with.
   244  	WindowId pulumi.StringInput
   245  }
   246  
   247  func (MaintenanceWindowTargetArgs) ElementType() reflect.Type {
   248  	return reflect.TypeOf((*maintenanceWindowTargetArgs)(nil)).Elem()
   249  }
   250  
   251  type MaintenanceWindowTargetInput interface {
   252  	pulumi.Input
   253  
   254  	ToMaintenanceWindowTargetOutput() MaintenanceWindowTargetOutput
   255  	ToMaintenanceWindowTargetOutputWithContext(ctx context.Context) MaintenanceWindowTargetOutput
   256  }
   257  
   258  func (*MaintenanceWindowTarget) ElementType() reflect.Type {
   259  	return reflect.TypeOf((**MaintenanceWindowTarget)(nil)).Elem()
   260  }
   261  
   262  func (i *MaintenanceWindowTarget) ToMaintenanceWindowTargetOutput() MaintenanceWindowTargetOutput {
   263  	return i.ToMaintenanceWindowTargetOutputWithContext(context.Background())
   264  }
   265  
   266  func (i *MaintenanceWindowTarget) ToMaintenanceWindowTargetOutputWithContext(ctx context.Context) MaintenanceWindowTargetOutput {
   267  	return pulumi.ToOutputWithContext(ctx, i).(MaintenanceWindowTargetOutput)
   268  }
   269  
   270  // MaintenanceWindowTargetArrayInput is an input type that accepts MaintenanceWindowTargetArray and MaintenanceWindowTargetArrayOutput values.
   271  // You can construct a concrete instance of `MaintenanceWindowTargetArrayInput` via:
   272  //
   273  //	MaintenanceWindowTargetArray{ MaintenanceWindowTargetArgs{...} }
   274  type MaintenanceWindowTargetArrayInput interface {
   275  	pulumi.Input
   276  
   277  	ToMaintenanceWindowTargetArrayOutput() MaintenanceWindowTargetArrayOutput
   278  	ToMaintenanceWindowTargetArrayOutputWithContext(context.Context) MaintenanceWindowTargetArrayOutput
   279  }
   280  
   281  type MaintenanceWindowTargetArray []MaintenanceWindowTargetInput
   282  
   283  func (MaintenanceWindowTargetArray) ElementType() reflect.Type {
   284  	return reflect.TypeOf((*[]*MaintenanceWindowTarget)(nil)).Elem()
   285  }
   286  
   287  func (i MaintenanceWindowTargetArray) ToMaintenanceWindowTargetArrayOutput() MaintenanceWindowTargetArrayOutput {
   288  	return i.ToMaintenanceWindowTargetArrayOutputWithContext(context.Background())
   289  }
   290  
   291  func (i MaintenanceWindowTargetArray) ToMaintenanceWindowTargetArrayOutputWithContext(ctx context.Context) MaintenanceWindowTargetArrayOutput {
   292  	return pulumi.ToOutputWithContext(ctx, i).(MaintenanceWindowTargetArrayOutput)
   293  }
   294  
   295  // MaintenanceWindowTargetMapInput is an input type that accepts MaintenanceWindowTargetMap and MaintenanceWindowTargetMapOutput values.
   296  // You can construct a concrete instance of `MaintenanceWindowTargetMapInput` via:
   297  //
   298  //	MaintenanceWindowTargetMap{ "key": MaintenanceWindowTargetArgs{...} }
   299  type MaintenanceWindowTargetMapInput interface {
   300  	pulumi.Input
   301  
   302  	ToMaintenanceWindowTargetMapOutput() MaintenanceWindowTargetMapOutput
   303  	ToMaintenanceWindowTargetMapOutputWithContext(context.Context) MaintenanceWindowTargetMapOutput
   304  }
   305  
   306  type MaintenanceWindowTargetMap map[string]MaintenanceWindowTargetInput
   307  
   308  func (MaintenanceWindowTargetMap) ElementType() reflect.Type {
   309  	return reflect.TypeOf((*map[string]*MaintenanceWindowTarget)(nil)).Elem()
   310  }
   311  
   312  func (i MaintenanceWindowTargetMap) ToMaintenanceWindowTargetMapOutput() MaintenanceWindowTargetMapOutput {
   313  	return i.ToMaintenanceWindowTargetMapOutputWithContext(context.Background())
   314  }
   315  
   316  func (i MaintenanceWindowTargetMap) ToMaintenanceWindowTargetMapOutputWithContext(ctx context.Context) MaintenanceWindowTargetMapOutput {
   317  	return pulumi.ToOutputWithContext(ctx, i).(MaintenanceWindowTargetMapOutput)
   318  }
   319  
   320  type MaintenanceWindowTargetOutput struct{ *pulumi.OutputState }
   321  
   322  func (MaintenanceWindowTargetOutput) ElementType() reflect.Type {
   323  	return reflect.TypeOf((**MaintenanceWindowTarget)(nil)).Elem()
   324  }
   325  
   326  func (o MaintenanceWindowTargetOutput) ToMaintenanceWindowTargetOutput() MaintenanceWindowTargetOutput {
   327  	return o
   328  }
   329  
   330  func (o MaintenanceWindowTargetOutput) ToMaintenanceWindowTargetOutputWithContext(ctx context.Context) MaintenanceWindowTargetOutput {
   331  	return o
   332  }
   333  
   334  // The description of the maintenance window target.
   335  func (o MaintenanceWindowTargetOutput) Description() pulumi.StringPtrOutput {
   336  	return o.ApplyT(func(v *MaintenanceWindowTarget) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput)
   337  }
   338  
   339  // The name of the maintenance window target.
   340  func (o MaintenanceWindowTargetOutput) Name() pulumi.StringOutput {
   341  	return o.ApplyT(func(v *MaintenanceWindowTarget) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput)
   342  }
   343  
   344  // User-provided value that will be included in any CloudWatch events raised while running tasks for these targets in this Maintenance Window.
   345  func (o MaintenanceWindowTargetOutput) OwnerInformation() pulumi.StringPtrOutput {
   346  	return o.ApplyT(func(v *MaintenanceWindowTarget) pulumi.StringPtrOutput { return v.OwnerInformation }).(pulumi.StringPtrOutput)
   347  }
   348  
   349  // The type of target being registered with the Maintenance Window. Possible values are `INSTANCE` and `RESOURCE_GROUP`.
   350  func (o MaintenanceWindowTargetOutput) ResourceType() pulumi.StringOutput {
   351  	return o.ApplyT(func(v *MaintenanceWindowTarget) pulumi.StringOutput { return v.ResourceType }).(pulumi.StringOutput)
   352  }
   353  
   354  // The targets to register with the maintenance window. In other words, the instances to run commands on when the maintenance window runs. You can specify targets using instance IDs, resource group names, or tags that have been applied to instances. For more information about these examples formats see
   355  // (https://docs.aws.amazon.com/systems-manager/latest/userguide/mw-cli-tutorial-targets-examples.html)
   356  func (o MaintenanceWindowTargetOutput) Targets() MaintenanceWindowTargetTargetArrayOutput {
   357  	return o.ApplyT(func(v *MaintenanceWindowTarget) MaintenanceWindowTargetTargetArrayOutput { return v.Targets }).(MaintenanceWindowTargetTargetArrayOutput)
   358  }
   359  
   360  // The Id of the maintenance window to register the target with.
   361  func (o MaintenanceWindowTargetOutput) WindowId() pulumi.StringOutput {
   362  	return o.ApplyT(func(v *MaintenanceWindowTarget) pulumi.StringOutput { return v.WindowId }).(pulumi.StringOutput)
   363  }
   364  
   365  type MaintenanceWindowTargetArrayOutput struct{ *pulumi.OutputState }
   366  
   367  func (MaintenanceWindowTargetArrayOutput) ElementType() reflect.Type {
   368  	return reflect.TypeOf((*[]*MaintenanceWindowTarget)(nil)).Elem()
   369  }
   370  
   371  func (o MaintenanceWindowTargetArrayOutput) ToMaintenanceWindowTargetArrayOutput() MaintenanceWindowTargetArrayOutput {
   372  	return o
   373  }
   374  
   375  func (o MaintenanceWindowTargetArrayOutput) ToMaintenanceWindowTargetArrayOutputWithContext(ctx context.Context) MaintenanceWindowTargetArrayOutput {
   376  	return o
   377  }
   378  
   379  func (o MaintenanceWindowTargetArrayOutput) Index(i pulumi.IntInput) MaintenanceWindowTargetOutput {
   380  	return pulumi.All(o, i).ApplyT(func(vs []interface{}) *MaintenanceWindowTarget {
   381  		return vs[0].([]*MaintenanceWindowTarget)[vs[1].(int)]
   382  	}).(MaintenanceWindowTargetOutput)
   383  }
   384  
   385  type MaintenanceWindowTargetMapOutput struct{ *pulumi.OutputState }
   386  
   387  func (MaintenanceWindowTargetMapOutput) ElementType() reflect.Type {
   388  	return reflect.TypeOf((*map[string]*MaintenanceWindowTarget)(nil)).Elem()
   389  }
   390  
   391  func (o MaintenanceWindowTargetMapOutput) ToMaintenanceWindowTargetMapOutput() MaintenanceWindowTargetMapOutput {
   392  	return o
   393  }
   394  
   395  func (o MaintenanceWindowTargetMapOutput) ToMaintenanceWindowTargetMapOutputWithContext(ctx context.Context) MaintenanceWindowTargetMapOutput {
   396  	return o
   397  }
   398  
   399  func (o MaintenanceWindowTargetMapOutput) MapIndex(k pulumi.StringInput) MaintenanceWindowTargetOutput {
   400  	return pulumi.All(o, k).ApplyT(func(vs []interface{}) *MaintenanceWindowTarget {
   401  		return vs[0].(map[string]*MaintenanceWindowTarget)[vs[1].(string)]
   402  	}).(MaintenanceWindowTargetOutput)
   403  }
   404  
   405  func init() {
   406  	pulumi.RegisterInputType(reflect.TypeOf((*MaintenanceWindowTargetInput)(nil)).Elem(), &MaintenanceWindowTarget{})
   407  	pulumi.RegisterInputType(reflect.TypeOf((*MaintenanceWindowTargetArrayInput)(nil)).Elem(), MaintenanceWindowTargetArray{})
   408  	pulumi.RegisterInputType(reflect.TypeOf((*MaintenanceWindowTargetMapInput)(nil)).Elem(), MaintenanceWindowTargetMap{})
   409  	pulumi.RegisterOutputType(MaintenanceWindowTargetOutput{})
   410  	pulumi.RegisterOutputType(MaintenanceWindowTargetArrayOutput{})
   411  	pulumi.RegisterOutputType(MaintenanceWindowTargetMapOutput{})
   412  }