github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/imagebuilder/component.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 imagebuilder 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 // Manages an Image Builder Component. 16 // 17 // ## Example Usage 18 // 19 // ### URI Document 20 // 21 // <!--Start PulumiCodeChooser --> 22 // ```go 23 // package main 24 // 25 // import ( 26 // 27 // "fmt" 28 // 29 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/imagebuilder" 30 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 31 // 32 // ) 33 // 34 // func main() { 35 // pulumi.Run(func(ctx *pulumi.Context) error { 36 // _, err := imagebuilder.NewComponent(ctx, "example", &imagebuilder.ComponentArgs{ 37 // Name: pulumi.String("example"), 38 // Platform: pulumi.String("Linux"), 39 // Uri: pulumi.String(fmt.Sprintf("s3://%v/%v", exampleAwsS3Object.Bucket, exampleAwsS3Object.Key)), 40 // Version: pulumi.String("1.0.0"), 41 // }) 42 // if err != nil { 43 // return err 44 // } 45 // return nil 46 // }) 47 // } 48 // 49 // ``` 50 // <!--End PulumiCodeChooser --> 51 // 52 // ## Import 53 // 54 // Using `pulumi import`, import `aws_imagebuilder_components` resources using the Amazon Resource Name (ARN). For example: 55 // 56 // ```sh 57 // $ pulumi import aws:imagebuilder/component:Component example arn:aws:imagebuilder:us-east-1:123456789012:component/example/1.0.0/1 58 // ``` 59 // Certain resource arguments, such as `uri`, cannot be read via the API and imported into the provider. The provider will display a difference for these arguments the first run after import if declared in the the provider configuration for an imported resource. 60 type Component struct { 61 pulumi.CustomResourceState 62 63 // (Required) Amazon Resource Name (ARN) of the component. 64 Arn pulumi.StringOutput `pulumi:"arn"` 65 // Change description of the component. 66 ChangeDescription pulumi.StringPtrOutput `pulumi:"changeDescription"` 67 // Inline YAML string with data of the component. Exactly one of `data` and `uri` can be specified. the provider will only perform drift detection of its value when present in a configuration. 68 Data pulumi.StringOutput `pulumi:"data"` 69 // Date the component was created. 70 DateCreated pulumi.StringOutput `pulumi:"dateCreated"` 71 // Description of the component. 72 Description pulumi.StringPtrOutput `pulumi:"description"` 73 // Encryption status of the component. 74 Encrypted pulumi.BoolOutput `pulumi:"encrypted"` 75 // Amazon Resource Name (ARN) of the Key Management Service (KMS) Key used to encrypt the component. 76 KmsKeyId pulumi.StringPtrOutput `pulumi:"kmsKeyId"` 77 // Name of the component. 78 Name pulumi.StringOutput `pulumi:"name"` 79 // Owner of the component. 80 Owner pulumi.StringOutput `pulumi:"owner"` 81 // Platform of the component. 82 Platform pulumi.StringOutput `pulumi:"platform"` 83 // Whether to retain the old version when the resource is destroyed or replacement is necessary. Defaults to `false`. 84 SkipDestroy pulumi.BoolPtrOutput `pulumi:"skipDestroy"` 85 // Set of Operating Systems (OS) supported by the component. 86 SupportedOsVersions pulumi.StringArrayOutput `pulumi:"supportedOsVersions"` 87 // Key-value map of resource tags for the component. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 88 Tags pulumi.StringMapOutput `pulumi:"tags"` 89 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 90 // 91 // Deprecated: Please use `tags` instead. 92 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 93 // Type of the component. 94 Type pulumi.StringOutput `pulumi:"type"` 95 // S3 URI with data of the component. Exactly one of `data` and `uri` can be specified. 96 // 97 // > **NOTE:** Updating `data` or `uri` requires specifying a new `version`. This causes replacement of the resource. The `skipDestroy` argument can be used to retain the old version. 98 Uri pulumi.StringPtrOutput `pulumi:"uri"` 99 // Version of the component. 100 // 101 // The following attributes are optional: 102 Version pulumi.StringOutput `pulumi:"version"` 103 } 104 105 // NewComponent registers a new resource with the given unique name, arguments, and options. 106 func NewComponent(ctx *pulumi.Context, 107 name string, args *ComponentArgs, opts ...pulumi.ResourceOption) (*Component, error) { 108 if args == nil { 109 return nil, errors.New("missing one or more required arguments") 110 } 111 112 if args.Platform == nil { 113 return nil, errors.New("invalid value for required argument 'Platform'") 114 } 115 if args.Version == nil { 116 return nil, errors.New("invalid value for required argument 'Version'") 117 } 118 opts = internal.PkgResourceDefaultOpts(opts) 119 var resource Component 120 err := ctx.RegisterResource("aws:imagebuilder/component:Component", name, args, &resource, opts...) 121 if err != nil { 122 return nil, err 123 } 124 return &resource, nil 125 } 126 127 // GetComponent gets an existing Component resource's state with the given name, ID, and optional 128 // state properties that are used to uniquely qualify the lookup (nil if not required). 129 func GetComponent(ctx *pulumi.Context, 130 name string, id pulumi.IDInput, state *ComponentState, opts ...pulumi.ResourceOption) (*Component, error) { 131 var resource Component 132 err := ctx.ReadResource("aws:imagebuilder/component:Component", name, id, state, &resource, opts...) 133 if err != nil { 134 return nil, err 135 } 136 return &resource, nil 137 } 138 139 // Input properties used for looking up and filtering Component resources. 140 type componentState struct { 141 // (Required) Amazon Resource Name (ARN) of the component. 142 Arn *string `pulumi:"arn"` 143 // Change description of the component. 144 ChangeDescription *string `pulumi:"changeDescription"` 145 // Inline YAML string with data of the component. Exactly one of `data` and `uri` can be specified. the provider will only perform drift detection of its value when present in a configuration. 146 Data *string `pulumi:"data"` 147 // Date the component was created. 148 DateCreated *string `pulumi:"dateCreated"` 149 // Description of the component. 150 Description *string `pulumi:"description"` 151 // Encryption status of the component. 152 Encrypted *bool `pulumi:"encrypted"` 153 // Amazon Resource Name (ARN) of the Key Management Service (KMS) Key used to encrypt the component. 154 KmsKeyId *string `pulumi:"kmsKeyId"` 155 // Name of the component. 156 Name *string `pulumi:"name"` 157 // Owner of the component. 158 Owner *string `pulumi:"owner"` 159 // Platform of the component. 160 Platform *string `pulumi:"platform"` 161 // Whether to retain the old version when the resource is destroyed or replacement is necessary. Defaults to `false`. 162 SkipDestroy *bool `pulumi:"skipDestroy"` 163 // Set of Operating Systems (OS) supported by the component. 164 SupportedOsVersions []string `pulumi:"supportedOsVersions"` 165 // Key-value map of resource tags for the component. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 166 Tags map[string]string `pulumi:"tags"` 167 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 168 // 169 // Deprecated: Please use `tags` instead. 170 TagsAll map[string]string `pulumi:"tagsAll"` 171 // Type of the component. 172 Type *string `pulumi:"type"` 173 // S3 URI with data of the component. Exactly one of `data` and `uri` can be specified. 174 // 175 // > **NOTE:** Updating `data` or `uri` requires specifying a new `version`. This causes replacement of the resource. The `skipDestroy` argument can be used to retain the old version. 176 Uri *string `pulumi:"uri"` 177 // Version of the component. 178 // 179 // The following attributes are optional: 180 Version *string `pulumi:"version"` 181 } 182 183 type ComponentState struct { 184 // (Required) Amazon Resource Name (ARN) of the component. 185 Arn pulumi.StringPtrInput 186 // Change description of the component. 187 ChangeDescription pulumi.StringPtrInput 188 // Inline YAML string with data of the component. Exactly one of `data` and `uri` can be specified. the provider will only perform drift detection of its value when present in a configuration. 189 Data pulumi.StringPtrInput 190 // Date the component was created. 191 DateCreated pulumi.StringPtrInput 192 // Description of the component. 193 Description pulumi.StringPtrInput 194 // Encryption status of the component. 195 Encrypted pulumi.BoolPtrInput 196 // Amazon Resource Name (ARN) of the Key Management Service (KMS) Key used to encrypt the component. 197 KmsKeyId pulumi.StringPtrInput 198 // Name of the component. 199 Name pulumi.StringPtrInput 200 // Owner of the component. 201 Owner pulumi.StringPtrInput 202 // Platform of the component. 203 Platform pulumi.StringPtrInput 204 // Whether to retain the old version when the resource is destroyed or replacement is necessary. Defaults to `false`. 205 SkipDestroy pulumi.BoolPtrInput 206 // Set of Operating Systems (OS) supported by the component. 207 SupportedOsVersions pulumi.StringArrayInput 208 // Key-value map of resource tags for the component. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 209 Tags pulumi.StringMapInput 210 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 211 // 212 // Deprecated: Please use `tags` instead. 213 TagsAll pulumi.StringMapInput 214 // Type of the component. 215 Type pulumi.StringPtrInput 216 // S3 URI with data of the component. Exactly one of `data` and `uri` can be specified. 217 // 218 // > **NOTE:** Updating `data` or `uri` requires specifying a new `version`. This causes replacement of the resource. The `skipDestroy` argument can be used to retain the old version. 219 Uri pulumi.StringPtrInput 220 // Version of the component. 221 // 222 // The following attributes are optional: 223 Version pulumi.StringPtrInput 224 } 225 226 func (ComponentState) ElementType() reflect.Type { 227 return reflect.TypeOf((*componentState)(nil)).Elem() 228 } 229 230 type componentArgs struct { 231 // Change description of the component. 232 ChangeDescription *string `pulumi:"changeDescription"` 233 // Inline YAML string with data of the component. Exactly one of `data` and `uri` can be specified. the provider will only perform drift detection of its value when present in a configuration. 234 Data *string `pulumi:"data"` 235 // Description of the component. 236 Description *string `pulumi:"description"` 237 // Amazon Resource Name (ARN) of the Key Management Service (KMS) Key used to encrypt the component. 238 KmsKeyId *string `pulumi:"kmsKeyId"` 239 // Name of the component. 240 Name *string `pulumi:"name"` 241 // Platform of the component. 242 Platform string `pulumi:"platform"` 243 // Whether to retain the old version when the resource is destroyed or replacement is necessary. Defaults to `false`. 244 SkipDestroy *bool `pulumi:"skipDestroy"` 245 // Set of Operating Systems (OS) supported by the component. 246 SupportedOsVersions []string `pulumi:"supportedOsVersions"` 247 // Key-value map of resource tags for the component. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 248 Tags map[string]string `pulumi:"tags"` 249 // S3 URI with data of the component. Exactly one of `data` and `uri` can be specified. 250 // 251 // > **NOTE:** Updating `data` or `uri` requires specifying a new `version`. This causes replacement of the resource. The `skipDestroy` argument can be used to retain the old version. 252 Uri *string `pulumi:"uri"` 253 // Version of the component. 254 // 255 // The following attributes are optional: 256 Version string `pulumi:"version"` 257 } 258 259 // The set of arguments for constructing a Component resource. 260 type ComponentArgs struct { 261 // Change description of the component. 262 ChangeDescription pulumi.StringPtrInput 263 // Inline YAML string with data of the component. Exactly one of `data` and `uri` can be specified. the provider will only perform drift detection of its value when present in a configuration. 264 Data pulumi.StringPtrInput 265 // Description of the component. 266 Description pulumi.StringPtrInput 267 // Amazon Resource Name (ARN) of the Key Management Service (KMS) Key used to encrypt the component. 268 KmsKeyId pulumi.StringPtrInput 269 // Name of the component. 270 Name pulumi.StringPtrInput 271 // Platform of the component. 272 Platform pulumi.StringInput 273 // Whether to retain the old version when the resource is destroyed or replacement is necessary. Defaults to `false`. 274 SkipDestroy pulumi.BoolPtrInput 275 // Set of Operating Systems (OS) supported by the component. 276 SupportedOsVersions pulumi.StringArrayInput 277 // Key-value map of resource tags for the component. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 278 Tags pulumi.StringMapInput 279 // S3 URI with data of the component. Exactly one of `data` and `uri` can be specified. 280 // 281 // > **NOTE:** Updating `data` or `uri` requires specifying a new `version`. This causes replacement of the resource. The `skipDestroy` argument can be used to retain the old version. 282 Uri pulumi.StringPtrInput 283 // Version of the component. 284 // 285 // The following attributes are optional: 286 Version pulumi.StringInput 287 } 288 289 func (ComponentArgs) ElementType() reflect.Type { 290 return reflect.TypeOf((*componentArgs)(nil)).Elem() 291 } 292 293 type ComponentInput interface { 294 pulumi.Input 295 296 ToComponentOutput() ComponentOutput 297 ToComponentOutputWithContext(ctx context.Context) ComponentOutput 298 } 299 300 func (*Component) ElementType() reflect.Type { 301 return reflect.TypeOf((**Component)(nil)).Elem() 302 } 303 304 func (i *Component) ToComponentOutput() ComponentOutput { 305 return i.ToComponentOutputWithContext(context.Background()) 306 } 307 308 func (i *Component) ToComponentOutputWithContext(ctx context.Context) ComponentOutput { 309 return pulumi.ToOutputWithContext(ctx, i).(ComponentOutput) 310 } 311 312 // ComponentArrayInput is an input type that accepts ComponentArray and ComponentArrayOutput values. 313 // You can construct a concrete instance of `ComponentArrayInput` via: 314 // 315 // ComponentArray{ ComponentArgs{...} } 316 type ComponentArrayInput interface { 317 pulumi.Input 318 319 ToComponentArrayOutput() ComponentArrayOutput 320 ToComponentArrayOutputWithContext(context.Context) ComponentArrayOutput 321 } 322 323 type ComponentArray []ComponentInput 324 325 func (ComponentArray) ElementType() reflect.Type { 326 return reflect.TypeOf((*[]*Component)(nil)).Elem() 327 } 328 329 func (i ComponentArray) ToComponentArrayOutput() ComponentArrayOutput { 330 return i.ToComponentArrayOutputWithContext(context.Background()) 331 } 332 333 func (i ComponentArray) ToComponentArrayOutputWithContext(ctx context.Context) ComponentArrayOutput { 334 return pulumi.ToOutputWithContext(ctx, i).(ComponentArrayOutput) 335 } 336 337 // ComponentMapInput is an input type that accepts ComponentMap and ComponentMapOutput values. 338 // You can construct a concrete instance of `ComponentMapInput` via: 339 // 340 // ComponentMap{ "key": ComponentArgs{...} } 341 type ComponentMapInput interface { 342 pulumi.Input 343 344 ToComponentMapOutput() ComponentMapOutput 345 ToComponentMapOutputWithContext(context.Context) ComponentMapOutput 346 } 347 348 type ComponentMap map[string]ComponentInput 349 350 func (ComponentMap) ElementType() reflect.Type { 351 return reflect.TypeOf((*map[string]*Component)(nil)).Elem() 352 } 353 354 func (i ComponentMap) ToComponentMapOutput() ComponentMapOutput { 355 return i.ToComponentMapOutputWithContext(context.Background()) 356 } 357 358 func (i ComponentMap) ToComponentMapOutputWithContext(ctx context.Context) ComponentMapOutput { 359 return pulumi.ToOutputWithContext(ctx, i).(ComponentMapOutput) 360 } 361 362 type ComponentOutput struct{ *pulumi.OutputState } 363 364 func (ComponentOutput) ElementType() reflect.Type { 365 return reflect.TypeOf((**Component)(nil)).Elem() 366 } 367 368 func (o ComponentOutput) ToComponentOutput() ComponentOutput { 369 return o 370 } 371 372 func (o ComponentOutput) ToComponentOutputWithContext(ctx context.Context) ComponentOutput { 373 return o 374 } 375 376 // (Required) Amazon Resource Name (ARN) of the component. 377 func (o ComponentOutput) Arn() pulumi.StringOutput { 378 return o.ApplyT(func(v *Component) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 379 } 380 381 // Change description of the component. 382 func (o ComponentOutput) ChangeDescription() pulumi.StringPtrOutput { 383 return o.ApplyT(func(v *Component) pulumi.StringPtrOutput { return v.ChangeDescription }).(pulumi.StringPtrOutput) 384 } 385 386 // Inline YAML string with data of the component. Exactly one of `data` and `uri` can be specified. the provider will only perform drift detection of its value when present in a configuration. 387 func (o ComponentOutput) Data() pulumi.StringOutput { 388 return o.ApplyT(func(v *Component) pulumi.StringOutput { return v.Data }).(pulumi.StringOutput) 389 } 390 391 // Date the component was created. 392 func (o ComponentOutput) DateCreated() pulumi.StringOutput { 393 return o.ApplyT(func(v *Component) pulumi.StringOutput { return v.DateCreated }).(pulumi.StringOutput) 394 } 395 396 // Description of the component. 397 func (o ComponentOutput) Description() pulumi.StringPtrOutput { 398 return o.ApplyT(func(v *Component) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 399 } 400 401 // Encryption status of the component. 402 func (o ComponentOutput) Encrypted() pulumi.BoolOutput { 403 return o.ApplyT(func(v *Component) pulumi.BoolOutput { return v.Encrypted }).(pulumi.BoolOutput) 404 } 405 406 // Amazon Resource Name (ARN) of the Key Management Service (KMS) Key used to encrypt the component. 407 func (o ComponentOutput) KmsKeyId() pulumi.StringPtrOutput { 408 return o.ApplyT(func(v *Component) pulumi.StringPtrOutput { return v.KmsKeyId }).(pulumi.StringPtrOutput) 409 } 410 411 // Name of the component. 412 func (o ComponentOutput) Name() pulumi.StringOutput { 413 return o.ApplyT(func(v *Component) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 414 } 415 416 // Owner of the component. 417 func (o ComponentOutput) Owner() pulumi.StringOutput { 418 return o.ApplyT(func(v *Component) pulumi.StringOutput { return v.Owner }).(pulumi.StringOutput) 419 } 420 421 // Platform of the component. 422 func (o ComponentOutput) Platform() pulumi.StringOutput { 423 return o.ApplyT(func(v *Component) pulumi.StringOutput { return v.Platform }).(pulumi.StringOutput) 424 } 425 426 // Whether to retain the old version when the resource is destroyed or replacement is necessary. Defaults to `false`. 427 func (o ComponentOutput) SkipDestroy() pulumi.BoolPtrOutput { 428 return o.ApplyT(func(v *Component) pulumi.BoolPtrOutput { return v.SkipDestroy }).(pulumi.BoolPtrOutput) 429 } 430 431 // Set of Operating Systems (OS) supported by the component. 432 func (o ComponentOutput) SupportedOsVersions() pulumi.StringArrayOutput { 433 return o.ApplyT(func(v *Component) pulumi.StringArrayOutput { return v.SupportedOsVersions }).(pulumi.StringArrayOutput) 434 } 435 436 // Key-value map of resource tags for the component. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 437 func (o ComponentOutput) Tags() pulumi.StringMapOutput { 438 return o.ApplyT(func(v *Component) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 439 } 440 441 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 442 // 443 // Deprecated: Please use `tags` instead. 444 func (o ComponentOutput) TagsAll() pulumi.StringMapOutput { 445 return o.ApplyT(func(v *Component) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 446 } 447 448 // Type of the component. 449 func (o ComponentOutput) Type() pulumi.StringOutput { 450 return o.ApplyT(func(v *Component) pulumi.StringOutput { return v.Type }).(pulumi.StringOutput) 451 } 452 453 // S3 URI with data of the component. Exactly one of `data` and `uri` can be specified. 454 // 455 // > **NOTE:** Updating `data` or `uri` requires specifying a new `version`. This causes replacement of the resource. The `skipDestroy` argument can be used to retain the old version. 456 func (o ComponentOutput) Uri() pulumi.StringPtrOutput { 457 return o.ApplyT(func(v *Component) pulumi.StringPtrOutput { return v.Uri }).(pulumi.StringPtrOutput) 458 } 459 460 // Version of the component. 461 // 462 // The following attributes are optional: 463 func (o ComponentOutput) Version() pulumi.StringOutput { 464 return o.ApplyT(func(v *Component) pulumi.StringOutput { return v.Version }).(pulumi.StringOutput) 465 } 466 467 type ComponentArrayOutput struct{ *pulumi.OutputState } 468 469 func (ComponentArrayOutput) ElementType() reflect.Type { 470 return reflect.TypeOf((*[]*Component)(nil)).Elem() 471 } 472 473 func (o ComponentArrayOutput) ToComponentArrayOutput() ComponentArrayOutput { 474 return o 475 } 476 477 func (o ComponentArrayOutput) ToComponentArrayOutputWithContext(ctx context.Context) ComponentArrayOutput { 478 return o 479 } 480 481 func (o ComponentArrayOutput) Index(i pulumi.IntInput) ComponentOutput { 482 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Component { 483 return vs[0].([]*Component)[vs[1].(int)] 484 }).(ComponentOutput) 485 } 486 487 type ComponentMapOutput struct{ *pulumi.OutputState } 488 489 func (ComponentMapOutput) ElementType() reflect.Type { 490 return reflect.TypeOf((*map[string]*Component)(nil)).Elem() 491 } 492 493 func (o ComponentMapOutput) ToComponentMapOutput() ComponentMapOutput { 494 return o 495 } 496 497 func (o ComponentMapOutput) ToComponentMapOutputWithContext(ctx context.Context) ComponentMapOutput { 498 return o 499 } 500 501 func (o ComponentMapOutput) MapIndex(k pulumi.StringInput) ComponentOutput { 502 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Component { 503 return vs[0].(map[string]*Component)[vs[1].(string)] 504 }).(ComponentOutput) 505 } 506 507 func init() { 508 pulumi.RegisterInputType(reflect.TypeOf((*ComponentInput)(nil)).Elem(), &Component{}) 509 pulumi.RegisterInputType(reflect.TypeOf((*ComponentArrayInput)(nil)).Elem(), ComponentArray{}) 510 pulumi.RegisterInputType(reflect.TypeOf((*ComponentMapInput)(nil)).Elem(), ComponentMap{}) 511 pulumi.RegisterOutputType(ComponentOutput{}) 512 pulumi.RegisterOutputType(ComponentArrayOutput{}) 513 pulumi.RegisterOutputType(ComponentMapOutput{}) 514 }