github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/imagebuilder/distributionConfiguration.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 Distribution Configuration. 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/imagebuilder" 26 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 27 // 28 // ) 29 // 30 // func main() { 31 // pulumi.Run(func(ctx *pulumi.Context) error { 32 // _, err := imagebuilder.NewDistributionConfiguration(ctx, "example", &imagebuilder.DistributionConfigurationArgs{ 33 // Name: pulumi.String("example"), 34 // Distributions: imagebuilder.DistributionConfigurationDistributionArray{ 35 // &imagebuilder.DistributionConfigurationDistributionArgs{ 36 // AmiDistributionConfiguration: &imagebuilder.DistributionConfigurationDistributionAmiDistributionConfigurationArgs{ 37 // AmiTags: pulumi.StringMap{ 38 // "CostCenter": pulumi.String("IT"), 39 // }, 40 // Name: pulumi.String("example-{{ imagebuilder:buildDate }}"), 41 // LaunchPermission: &imagebuilder.DistributionConfigurationDistributionAmiDistributionConfigurationLaunchPermissionArgs{ 42 // UserIds: pulumi.StringArray{ 43 // pulumi.String("123456789012"), 44 // }, 45 // }, 46 // }, 47 // LaunchTemplateConfigurations: imagebuilder.DistributionConfigurationDistributionLaunchTemplateConfigurationArray{ 48 // &imagebuilder.DistributionConfigurationDistributionLaunchTemplateConfigurationArgs{ 49 // LaunchTemplateId: pulumi.String("lt-0aaa1bcde2ff3456"), 50 // }, 51 // }, 52 // Region: pulumi.String("us-east-1"), 53 // }, 54 // }, 55 // }) 56 // if err != nil { 57 // return err 58 // } 59 // return nil 60 // }) 61 // } 62 // 63 // ``` 64 // <!--End PulumiCodeChooser --> 65 // 66 // ## Import 67 // 68 // Using `pulumi import`, import `aws_imagebuilder_distribution_configurations` resources using the Amazon Resource Name (ARN). For example: 69 // 70 // ```sh 71 // $ pulumi import aws:imagebuilder/distributionConfiguration:DistributionConfiguration example arn:aws:imagebuilder:us-east-1:123456789012:distribution-configuration/example 72 // ``` 73 type DistributionConfiguration struct { 74 pulumi.CustomResourceState 75 76 // (Required) Amazon Resource Name (ARN) of the distribution configuration. 77 Arn pulumi.StringOutput `pulumi:"arn"` 78 // Date the distribution configuration was created. 79 DateCreated pulumi.StringOutput `pulumi:"dateCreated"` 80 // Date the distribution configuration was updated. 81 DateUpdated pulumi.StringOutput `pulumi:"dateUpdated"` 82 // Description of the distribution configuration. 83 Description pulumi.StringPtrOutput `pulumi:"description"` 84 // One or more configuration blocks with distribution settings. Detailed below. 85 // 86 // The following arguments are optional: 87 Distributions DistributionConfigurationDistributionArrayOutput `pulumi:"distributions"` 88 // Name of the distribution configuration. 89 Name pulumi.StringOutput `pulumi:"name"` 90 // Key-value map of resource tags for the distribution configuration. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 91 Tags pulumi.StringMapOutput `pulumi:"tags"` 92 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 93 // 94 // Deprecated: Please use `tags` instead. 95 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 96 } 97 98 // NewDistributionConfiguration registers a new resource with the given unique name, arguments, and options. 99 func NewDistributionConfiguration(ctx *pulumi.Context, 100 name string, args *DistributionConfigurationArgs, opts ...pulumi.ResourceOption) (*DistributionConfiguration, error) { 101 if args == nil { 102 return nil, errors.New("missing one or more required arguments") 103 } 104 105 if args.Distributions == nil { 106 return nil, errors.New("invalid value for required argument 'Distributions'") 107 } 108 opts = internal.PkgResourceDefaultOpts(opts) 109 var resource DistributionConfiguration 110 err := ctx.RegisterResource("aws:imagebuilder/distributionConfiguration:DistributionConfiguration", name, args, &resource, opts...) 111 if err != nil { 112 return nil, err 113 } 114 return &resource, nil 115 } 116 117 // GetDistributionConfiguration gets an existing DistributionConfiguration resource's state with the given name, ID, and optional 118 // state properties that are used to uniquely qualify the lookup (nil if not required). 119 func GetDistributionConfiguration(ctx *pulumi.Context, 120 name string, id pulumi.IDInput, state *DistributionConfigurationState, opts ...pulumi.ResourceOption) (*DistributionConfiguration, error) { 121 var resource DistributionConfiguration 122 err := ctx.ReadResource("aws:imagebuilder/distributionConfiguration:DistributionConfiguration", name, id, state, &resource, opts...) 123 if err != nil { 124 return nil, err 125 } 126 return &resource, nil 127 } 128 129 // Input properties used for looking up and filtering DistributionConfiguration resources. 130 type distributionConfigurationState struct { 131 // (Required) Amazon Resource Name (ARN) of the distribution configuration. 132 Arn *string `pulumi:"arn"` 133 // Date the distribution configuration was created. 134 DateCreated *string `pulumi:"dateCreated"` 135 // Date the distribution configuration was updated. 136 DateUpdated *string `pulumi:"dateUpdated"` 137 // Description of the distribution configuration. 138 Description *string `pulumi:"description"` 139 // One or more configuration blocks with distribution settings. Detailed below. 140 // 141 // The following arguments are optional: 142 Distributions []DistributionConfigurationDistribution `pulumi:"distributions"` 143 // Name of the distribution configuration. 144 Name *string `pulumi:"name"` 145 // Key-value map of resource tags for the distribution configuration. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 146 Tags map[string]string `pulumi:"tags"` 147 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 148 // 149 // Deprecated: Please use `tags` instead. 150 TagsAll map[string]string `pulumi:"tagsAll"` 151 } 152 153 type DistributionConfigurationState struct { 154 // (Required) Amazon Resource Name (ARN) of the distribution configuration. 155 Arn pulumi.StringPtrInput 156 // Date the distribution configuration was created. 157 DateCreated pulumi.StringPtrInput 158 // Date the distribution configuration was updated. 159 DateUpdated pulumi.StringPtrInput 160 // Description of the distribution configuration. 161 Description pulumi.StringPtrInput 162 // One or more configuration blocks with distribution settings. Detailed below. 163 // 164 // The following arguments are optional: 165 Distributions DistributionConfigurationDistributionArrayInput 166 // Name of the distribution configuration. 167 Name pulumi.StringPtrInput 168 // Key-value map of resource tags for the distribution configuration. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 169 Tags pulumi.StringMapInput 170 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 171 // 172 // Deprecated: Please use `tags` instead. 173 TagsAll pulumi.StringMapInput 174 } 175 176 func (DistributionConfigurationState) ElementType() reflect.Type { 177 return reflect.TypeOf((*distributionConfigurationState)(nil)).Elem() 178 } 179 180 type distributionConfigurationArgs struct { 181 // Description of the distribution configuration. 182 Description *string `pulumi:"description"` 183 // One or more configuration blocks with distribution settings. Detailed below. 184 // 185 // The following arguments are optional: 186 Distributions []DistributionConfigurationDistribution `pulumi:"distributions"` 187 // Name of the distribution configuration. 188 Name *string `pulumi:"name"` 189 // Key-value map of resource tags for the distribution configuration. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 190 Tags map[string]string `pulumi:"tags"` 191 } 192 193 // The set of arguments for constructing a DistributionConfiguration resource. 194 type DistributionConfigurationArgs struct { 195 // Description of the distribution configuration. 196 Description pulumi.StringPtrInput 197 // One or more configuration blocks with distribution settings. Detailed below. 198 // 199 // The following arguments are optional: 200 Distributions DistributionConfigurationDistributionArrayInput 201 // Name of the distribution configuration. 202 Name pulumi.StringPtrInput 203 // Key-value map of resource tags for the distribution configuration. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 204 Tags pulumi.StringMapInput 205 } 206 207 func (DistributionConfigurationArgs) ElementType() reflect.Type { 208 return reflect.TypeOf((*distributionConfigurationArgs)(nil)).Elem() 209 } 210 211 type DistributionConfigurationInput interface { 212 pulumi.Input 213 214 ToDistributionConfigurationOutput() DistributionConfigurationOutput 215 ToDistributionConfigurationOutputWithContext(ctx context.Context) DistributionConfigurationOutput 216 } 217 218 func (*DistributionConfiguration) ElementType() reflect.Type { 219 return reflect.TypeOf((**DistributionConfiguration)(nil)).Elem() 220 } 221 222 func (i *DistributionConfiguration) ToDistributionConfigurationOutput() DistributionConfigurationOutput { 223 return i.ToDistributionConfigurationOutputWithContext(context.Background()) 224 } 225 226 func (i *DistributionConfiguration) ToDistributionConfigurationOutputWithContext(ctx context.Context) DistributionConfigurationOutput { 227 return pulumi.ToOutputWithContext(ctx, i).(DistributionConfigurationOutput) 228 } 229 230 // DistributionConfigurationArrayInput is an input type that accepts DistributionConfigurationArray and DistributionConfigurationArrayOutput values. 231 // You can construct a concrete instance of `DistributionConfigurationArrayInput` via: 232 // 233 // DistributionConfigurationArray{ DistributionConfigurationArgs{...} } 234 type DistributionConfigurationArrayInput interface { 235 pulumi.Input 236 237 ToDistributionConfigurationArrayOutput() DistributionConfigurationArrayOutput 238 ToDistributionConfigurationArrayOutputWithContext(context.Context) DistributionConfigurationArrayOutput 239 } 240 241 type DistributionConfigurationArray []DistributionConfigurationInput 242 243 func (DistributionConfigurationArray) ElementType() reflect.Type { 244 return reflect.TypeOf((*[]*DistributionConfiguration)(nil)).Elem() 245 } 246 247 func (i DistributionConfigurationArray) ToDistributionConfigurationArrayOutput() DistributionConfigurationArrayOutput { 248 return i.ToDistributionConfigurationArrayOutputWithContext(context.Background()) 249 } 250 251 func (i DistributionConfigurationArray) ToDistributionConfigurationArrayOutputWithContext(ctx context.Context) DistributionConfigurationArrayOutput { 252 return pulumi.ToOutputWithContext(ctx, i).(DistributionConfigurationArrayOutput) 253 } 254 255 // DistributionConfigurationMapInput is an input type that accepts DistributionConfigurationMap and DistributionConfigurationMapOutput values. 256 // You can construct a concrete instance of `DistributionConfigurationMapInput` via: 257 // 258 // DistributionConfigurationMap{ "key": DistributionConfigurationArgs{...} } 259 type DistributionConfigurationMapInput interface { 260 pulumi.Input 261 262 ToDistributionConfigurationMapOutput() DistributionConfigurationMapOutput 263 ToDistributionConfigurationMapOutputWithContext(context.Context) DistributionConfigurationMapOutput 264 } 265 266 type DistributionConfigurationMap map[string]DistributionConfigurationInput 267 268 func (DistributionConfigurationMap) ElementType() reflect.Type { 269 return reflect.TypeOf((*map[string]*DistributionConfiguration)(nil)).Elem() 270 } 271 272 func (i DistributionConfigurationMap) ToDistributionConfigurationMapOutput() DistributionConfigurationMapOutput { 273 return i.ToDistributionConfigurationMapOutputWithContext(context.Background()) 274 } 275 276 func (i DistributionConfigurationMap) ToDistributionConfigurationMapOutputWithContext(ctx context.Context) DistributionConfigurationMapOutput { 277 return pulumi.ToOutputWithContext(ctx, i).(DistributionConfigurationMapOutput) 278 } 279 280 type DistributionConfigurationOutput struct{ *pulumi.OutputState } 281 282 func (DistributionConfigurationOutput) ElementType() reflect.Type { 283 return reflect.TypeOf((**DistributionConfiguration)(nil)).Elem() 284 } 285 286 func (o DistributionConfigurationOutput) ToDistributionConfigurationOutput() DistributionConfigurationOutput { 287 return o 288 } 289 290 func (o DistributionConfigurationOutput) ToDistributionConfigurationOutputWithContext(ctx context.Context) DistributionConfigurationOutput { 291 return o 292 } 293 294 // (Required) Amazon Resource Name (ARN) of the distribution configuration. 295 func (o DistributionConfigurationOutput) Arn() pulumi.StringOutput { 296 return o.ApplyT(func(v *DistributionConfiguration) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 297 } 298 299 // Date the distribution configuration was created. 300 func (o DistributionConfigurationOutput) DateCreated() pulumi.StringOutput { 301 return o.ApplyT(func(v *DistributionConfiguration) pulumi.StringOutput { return v.DateCreated }).(pulumi.StringOutput) 302 } 303 304 // Date the distribution configuration was updated. 305 func (o DistributionConfigurationOutput) DateUpdated() pulumi.StringOutput { 306 return o.ApplyT(func(v *DistributionConfiguration) pulumi.StringOutput { return v.DateUpdated }).(pulumi.StringOutput) 307 } 308 309 // Description of the distribution configuration. 310 func (o DistributionConfigurationOutput) Description() pulumi.StringPtrOutput { 311 return o.ApplyT(func(v *DistributionConfiguration) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 312 } 313 314 // One or more configuration blocks with distribution settings. Detailed below. 315 // 316 // The following arguments are optional: 317 func (o DistributionConfigurationOutput) Distributions() DistributionConfigurationDistributionArrayOutput { 318 return o.ApplyT(func(v *DistributionConfiguration) DistributionConfigurationDistributionArrayOutput { 319 return v.Distributions 320 }).(DistributionConfigurationDistributionArrayOutput) 321 } 322 323 // Name of the distribution configuration. 324 func (o DistributionConfigurationOutput) Name() pulumi.StringOutput { 325 return o.ApplyT(func(v *DistributionConfiguration) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 326 } 327 328 // Key-value map of resource tags for the distribution configuration. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 329 func (o DistributionConfigurationOutput) Tags() pulumi.StringMapOutput { 330 return o.ApplyT(func(v *DistributionConfiguration) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 331 } 332 333 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 334 // 335 // Deprecated: Please use `tags` instead. 336 func (o DistributionConfigurationOutput) TagsAll() pulumi.StringMapOutput { 337 return o.ApplyT(func(v *DistributionConfiguration) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 338 } 339 340 type DistributionConfigurationArrayOutput struct{ *pulumi.OutputState } 341 342 func (DistributionConfigurationArrayOutput) ElementType() reflect.Type { 343 return reflect.TypeOf((*[]*DistributionConfiguration)(nil)).Elem() 344 } 345 346 func (o DistributionConfigurationArrayOutput) ToDistributionConfigurationArrayOutput() DistributionConfigurationArrayOutput { 347 return o 348 } 349 350 func (o DistributionConfigurationArrayOutput) ToDistributionConfigurationArrayOutputWithContext(ctx context.Context) DistributionConfigurationArrayOutput { 351 return o 352 } 353 354 func (o DistributionConfigurationArrayOutput) Index(i pulumi.IntInput) DistributionConfigurationOutput { 355 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *DistributionConfiguration { 356 return vs[0].([]*DistributionConfiguration)[vs[1].(int)] 357 }).(DistributionConfigurationOutput) 358 } 359 360 type DistributionConfigurationMapOutput struct{ *pulumi.OutputState } 361 362 func (DistributionConfigurationMapOutput) ElementType() reflect.Type { 363 return reflect.TypeOf((*map[string]*DistributionConfiguration)(nil)).Elem() 364 } 365 366 func (o DistributionConfigurationMapOutput) ToDistributionConfigurationMapOutput() DistributionConfigurationMapOutput { 367 return o 368 } 369 370 func (o DistributionConfigurationMapOutput) ToDistributionConfigurationMapOutputWithContext(ctx context.Context) DistributionConfigurationMapOutput { 371 return o 372 } 373 374 func (o DistributionConfigurationMapOutput) MapIndex(k pulumi.StringInput) DistributionConfigurationOutput { 375 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *DistributionConfiguration { 376 return vs[0].(map[string]*DistributionConfiguration)[vs[1].(string)] 377 }).(DistributionConfigurationOutput) 378 } 379 380 func init() { 381 pulumi.RegisterInputType(reflect.TypeOf((*DistributionConfigurationInput)(nil)).Elem(), &DistributionConfiguration{}) 382 pulumi.RegisterInputType(reflect.TypeOf((*DistributionConfigurationArrayInput)(nil)).Elem(), DistributionConfigurationArray{}) 383 pulumi.RegisterInputType(reflect.TypeOf((*DistributionConfigurationMapInput)(nil)).Elem(), DistributionConfigurationMap{}) 384 pulumi.RegisterOutputType(DistributionConfigurationOutput{}) 385 pulumi.RegisterOutputType(DistributionConfigurationArrayOutput{}) 386 pulumi.RegisterOutputType(DistributionConfigurationMapOutput{}) 387 }