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 }