github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/launchConfiguration.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 ec2 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 a resource to create a new launch configuration, used for autoscaling groups. 16 // 17 // !> **WARNING:** The use of launch configurations is discouraged in favour of launch templates. Read more in the [AWS EC2 Documentation](https://docs.aws.amazon.com/autoscaling/ec2/userguide/launch-configurations.html). 18 // 19 // > **Note** When using `ec2.LaunchConfiguration` with `autoscaling.Group`, it is recommended to use the `namePrefix` (Optional) instead of the `name` (Optional) attribute. 20 // 21 // ## Example Usage 22 // 23 // <!--Start PulumiCodeChooser --> 24 // ```go 25 // package main 26 // 27 // import ( 28 // 29 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ec2" 30 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 31 // 32 // ) 33 // 34 // func main() { 35 // pulumi.Run(func(ctx *pulumi.Context) error { 36 // ubuntu, err := ec2.LookupAmi(ctx, &ec2.LookupAmiArgs{ 37 // MostRecent: pulumi.BoolRef(true), 38 // Filters: []ec2.GetAmiFilter{ 39 // { 40 // Name: "name", 41 // Values: []string{ 42 // "ubuntu/images/hvm-ssd/ubuntu-trusty-14.04-amd64-server-*", 43 // }, 44 // }, 45 // { 46 // Name: "virtualization-type", 47 // Values: []string{ 48 // "hvm", 49 // }, 50 // }, 51 // }, 52 // Owners: []string{ 53 // "099720109477", 54 // }, 55 // }, nil) 56 // if err != nil { 57 // return err 58 // } 59 // _, err = ec2.NewLaunchConfiguration(ctx, "as_conf", &ec2.LaunchConfigurationArgs{ 60 // Name: pulumi.String("web_config"), 61 // ImageId: pulumi.String(ubuntu.Id), 62 // InstanceType: pulumi.String("t2.micro"), 63 // }) 64 // if err != nil { 65 // return err 66 // } 67 // return nil 68 // }) 69 // } 70 // 71 // ``` 72 // <!--End PulumiCodeChooser --> 73 // 74 // ## Import 75 // 76 // Using `pulumi import`, import launch configurations using the `name`. For example: 77 // 78 // ```sh 79 // $ pulumi import aws:ec2/launchConfiguration:LaunchConfiguration as_conf pulumi-lg-123456 80 // ``` 81 type LaunchConfiguration struct { 82 pulumi.CustomResourceState 83 84 // The Amazon Resource Name of the launch configuration. 85 Arn pulumi.StringOutput `pulumi:"arn"` 86 // Associate a public ip address with an instance in a VPC. 87 AssociatePublicIpAddress pulumi.BoolPtrOutput `pulumi:"associatePublicIpAddress"` 88 // Additional EBS block devices to attach to the instance. See Block Devices below for details. 89 EbsBlockDevices LaunchConfigurationEbsBlockDeviceArrayOutput `pulumi:"ebsBlockDevices"` 90 // If true, the launched EC2 instance will be EBS-optimized. 91 EbsOptimized pulumi.BoolOutput `pulumi:"ebsOptimized"` 92 // Enables/disables detailed monitoring. This is enabled by default. 93 EnableMonitoring pulumi.BoolPtrOutput `pulumi:"enableMonitoring"` 94 // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. 95 EphemeralBlockDevices LaunchConfigurationEphemeralBlockDeviceArrayOutput `pulumi:"ephemeralBlockDevices"` 96 // The name attribute of the IAM instance profile to associate with launched instances. 97 IamInstanceProfile pulumi.StringPtrOutput `pulumi:"iamInstanceProfile"` 98 // The EC2 image ID to launch. 99 ImageId pulumi.StringOutput `pulumi:"imageId"` 100 // The size of instance to launch. 101 // 102 // The following arguments are optional: 103 InstanceType pulumi.StringOutput `pulumi:"instanceType"` 104 // The key name that should be used for the instance. 105 KeyName pulumi.StringOutput `pulumi:"keyName"` 106 // The metadata options for the instance. 107 MetadataOptions LaunchConfigurationMetadataOptionsOutput `pulumi:"metadataOptions"` 108 // The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with `namePrefix`. 109 Name pulumi.StringOutput `pulumi:"name"` 110 // Creates a unique name beginning with the specified prefix. Conflicts with `name`. 111 NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` 112 // The tenancy of the instance. Valid values are `default` or `dedicated`, see [AWS's Create Launch Configuration](http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_CreateLaunchConfiguration.html) for more details. 113 PlacementTenancy pulumi.StringPtrOutput `pulumi:"placementTenancy"` 114 // Customize details about the root block device of the instance. See Block Devices below for details. 115 RootBlockDevice LaunchConfigurationRootBlockDeviceOutput `pulumi:"rootBlockDevice"` 116 // A list of associated security group IDS. 117 SecurityGroups pulumi.StringArrayOutput `pulumi:"securityGroups"` 118 // The maximum price to use for reserving spot instances. 119 SpotPrice pulumi.StringPtrOutput `pulumi:"spotPrice"` 120 // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. 121 UserData pulumi.StringPtrOutput `pulumi:"userData"` 122 // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. 123 UserDataBase64 pulumi.StringPtrOutput `pulumi:"userDataBase64"` 124 } 125 126 // NewLaunchConfiguration registers a new resource with the given unique name, arguments, and options. 127 func NewLaunchConfiguration(ctx *pulumi.Context, 128 name string, args *LaunchConfigurationArgs, opts ...pulumi.ResourceOption) (*LaunchConfiguration, error) { 129 if args == nil { 130 return nil, errors.New("missing one or more required arguments") 131 } 132 133 if args.ImageId == nil { 134 return nil, errors.New("invalid value for required argument 'ImageId'") 135 } 136 if args.InstanceType == nil { 137 return nil, errors.New("invalid value for required argument 'InstanceType'") 138 } 139 opts = internal.PkgResourceDefaultOpts(opts) 140 var resource LaunchConfiguration 141 err := ctx.RegisterResource("aws:ec2/launchConfiguration:LaunchConfiguration", name, args, &resource, opts...) 142 if err != nil { 143 return nil, err 144 } 145 return &resource, nil 146 } 147 148 // GetLaunchConfiguration gets an existing LaunchConfiguration resource's state with the given name, ID, and optional 149 // state properties that are used to uniquely qualify the lookup (nil if not required). 150 func GetLaunchConfiguration(ctx *pulumi.Context, 151 name string, id pulumi.IDInput, state *LaunchConfigurationState, opts ...pulumi.ResourceOption) (*LaunchConfiguration, error) { 152 var resource LaunchConfiguration 153 err := ctx.ReadResource("aws:ec2/launchConfiguration:LaunchConfiguration", name, id, state, &resource, opts...) 154 if err != nil { 155 return nil, err 156 } 157 return &resource, nil 158 } 159 160 // Input properties used for looking up and filtering LaunchConfiguration resources. 161 type launchConfigurationState struct { 162 // The Amazon Resource Name of the launch configuration. 163 Arn *string `pulumi:"arn"` 164 // Associate a public ip address with an instance in a VPC. 165 AssociatePublicIpAddress *bool `pulumi:"associatePublicIpAddress"` 166 // Additional EBS block devices to attach to the instance. See Block Devices below for details. 167 EbsBlockDevices []LaunchConfigurationEbsBlockDevice `pulumi:"ebsBlockDevices"` 168 // If true, the launched EC2 instance will be EBS-optimized. 169 EbsOptimized *bool `pulumi:"ebsOptimized"` 170 // Enables/disables detailed monitoring. This is enabled by default. 171 EnableMonitoring *bool `pulumi:"enableMonitoring"` 172 // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. 173 EphemeralBlockDevices []LaunchConfigurationEphemeralBlockDevice `pulumi:"ephemeralBlockDevices"` 174 // The name attribute of the IAM instance profile to associate with launched instances. 175 IamInstanceProfile interface{} `pulumi:"iamInstanceProfile"` 176 // The EC2 image ID to launch. 177 ImageId *string `pulumi:"imageId"` 178 // The size of instance to launch. 179 // 180 // The following arguments are optional: 181 InstanceType *string `pulumi:"instanceType"` 182 // The key name that should be used for the instance. 183 KeyName *string `pulumi:"keyName"` 184 // The metadata options for the instance. 185 MetadataOptions *LaunchConfigurationMetadataOptions `pulumi:"metadataOptions"` 186 // The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with `namePrefix`. 187 Name *string `pulumi:"name"` 188 // Creates a unique name beginning with the specified prefix. Conflicts with `name`. 189 NamePrefix *string `pulumi:"namePrefix"` 190 // The tenancy of the instance. Valid values are `default` or `dedicated`, see [AWS's Create Launch Configuration](http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_CreateLaunchConfiguration.html) for more details. 191 PlacementTenancy *string `pulumi:"placementTenancy"` 192 // Customize details about the root block device of the instance. See Block Devices below for details. 193 RootBlockDevice *LaunchConfigurationRootBlockDevice `pulumi:"rootBlockDevice"` 194 // A list of associated security group IDS. 195 SecurityGroups []string `pulumi:"securityGroups"` 196 // The maximum price to use for reserving spot instances. 197 SpotPrice *string `pulumi:"spotPrice"` 198 // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. 199 UserData *string `pulumi:"userData"` 200 // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. 201 UserDataBase64 *string `pulumi:"userDataBase64"` 202 } 203 204 type LaunchConfigurationState struct { 205 // The Amazon Resource Name of the launch configuration. 206 Arn pulumi.StringPtrInput 207 // Associate a public ip address with an instance in a VPC. 208 AssociatePublicIpAddress pulumi.BoolPtrInput 209 // Additional EBS block devices to attach to the instance. See Block Devices below for details. 210 EbsBlockDevices LaunchConfigurationEbsBlockDeviceArrayInput 211 // If true, the launched EC2 instance will be EBS-optimized. 212 EbsOptimized pulumi.BoolPtrInput 213 // Enables/disables detailed monitoring. This is enabled by default. 214 EnableMonitoring pulumi.BoolPtrInput 215 // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. 216 EphemeralBlockDevices LaunchConfigurationEphemeralBlockDeviceArrayInput 217 // The name attribute of the IAM instance profile to associate with launched instances. 218 IamInstanceProfile pulumi.Input 219 // The EC2 image ID to launch. 220 ImageId pulumi.StringPtrInput 221 // The size of instance to launch. 222 // 223 // The following arguments are optional: 224 InstanceType pulumi.StringPtrInput 225 // The key name that should be used for the instance. 226 KeyName pulumi.StringPtrInput 227 // The metadata options for the instance. 228 MetadataOptions LaunchConfigurationMetadataOptionsPtrInput 229 // The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with `namePrefix`. 230 Name pulumi.StringPtrInput 231 // Creates a unique name beginning with the specified prefix. Conflicts with `name`. 232 NamePrefix pulumi.StringPtrInput 233 // The tenancy of the instance. Valid values are `default` or `dedicated`, see [AWS's Create Launch Configuration](http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_CreateLaunchConfiguration.html) for more details. 234 PlacementTenancy pulumi.StringPtrInput 235 // Customize details about the root block device of the instance. See Block Devices below for details. 236 RootBlockDevice LaunchConfigurationRootBlockDevicePtrInput 237 // A list of associated security group IDS. 238 SecurityGroups pulumi.StringArrayInput 239 // The maximum price to use for reserving spot instances. 240 SpotPrice pulumi.StringPtrInput 241 // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. 242 UserData pulumi.StringPtrInput 243 // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. 244 UserDataBase64 pulumi.StringPtrInput 245 } 246 247 func (LaunchConfigurationState) ElementType() reflect.Type { 248 return reflect.TypeOf((*launchConfigurationState)(nil)).Elem() 249 } 250 251 type launchConfigurationArgs struct { 252 // Associate a public ip address with an instance in a VPC. 253 AssociatePublicIpAddress *bool `pulumi:"associatePublicIpAddress"` 254 // Additional EBS block devices to attach to the instance. See Block Devices below for details. 255 EbsBlockDevices []LaunchConfigurationEbsBlockDevice `pulumi:"ebsBlockDevices"` 256 // If true, the launched EC2 instance will be EBS-optimized. 257 EbsOptimized *bool `pulumi:"ebsOptimized"` 258 // Enables/disables detailed monitoring. This is enabled by default. 259 EnableMonitoring *bool `pulumi:"enableMonitoring"` 260 // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. 261 EphemeralBlockDevices []LaunchConfigurationEphemeralBlockDevice `pulumi:"ephemeralBlockDevices"` 262 // The name attribute of the IAM instance profile to associate with launched instances. 263 IamInstanceProfile interface{} `pulumi:"iamInstanceProfile"` 264 // The EC2 image ID to launch. 265 ImageId string `pulumi:"imageId"` 266 // The size of instance to launch. 267 // 268 // The following arguments are optional: 269 InstanceType string `pulumi:"instanceType"` 270 // The key name that should be used for the instance. 271 KeyName *string `pulumi:"keyName"` 272 // The metadata options for the instance. 273 MetadataOptions *LaunchConfigurationMetadataOptions `pulumi:"metadataOptions"` 274 // The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with `namePrefix`. 275 Name *string `pulumi:"name"` 276 // Creates a unique name beginning with the specified prefix. Conflicts with `name`. 277 NamePrefix *string `pulumi:"namePrefix"` 278 // The tenancy of the instance. Valid values are `default` or `dedicated`, see [AWS's Create Launch Configuration](http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_CreateLaunchConfiguration.html) for more details. 279 PlacementTenancy *string `pulumi:"placementTenancy"` 280 // Customize details about the root block device of the instance. See Block Devices below for details. 281 RootBlockDevice *LaunchConfigurationRootBlockDevice `pulumi:"rootBlockDevice"` 282 // A list of associated security group IDS. 283 SecurityGroups []string `pulumi:"securityGroups"` 284 // The maximum price to use for reserving spot instances. 285 SpotPrice *string `pulumi:"spotPrice"` 286 // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. 287 UserData *string `pulumi:"userData"` 288 // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. 289 UserDataBase64 *string `pulumi:"userDataBase64"` 290 } 291 292 // The set of arguments for constructing a LaunchConfiguration resource. 293 type LaunchConfigurationArgs struct { 294 // Associate a public ip address with an instance in a VPC. 295 AssociatePublicIpAddress pulumi.BoolPtrInput 296 // Additional EBS block devices to attach to the instance. See Block Devices below for details. 297 EbsBlockDevices LaunchConfigurationEbsBlockDeviceArrayInput 298 // If true, the launched EC2 instance will be EBS-optimized. 299 EbsOptimized pulumi.BoolPtrInput 300 // Enables/disables detailed monitoring. This is enabled by default. 301 EnableMonitoring pulumi.BoolPtrInput 302 // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. 303 EphemeralBlockDevices LaunchConfigurationEphemeralBlockDeviceArrayInput 304 // The name attribute of the IAM instance profile to associate with launched instances. 305 IamInstanceProfile pulumi.Input 306 // The EC2 image ID to launch. 307 ImageId pulumi.StringInput 308 // The size of instance to launch. 309 // 310 // The following arguments are optional: 311 InstanceType pulumi.StringInput 312 // The key name that should be used for the instance. 313 KeyName pulumi.StringPtrInput 314 // The metadata options for the instance. 315 MetadataOptions LaunchConfigurationMetadataOptionsPtrInput 316 // The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with `namePrefix`. 317 Name pulumi.StringPtrInput 318 // Creates a unique name beginning with the specified prefix. Conflicts with `name`. 319 NamePrefix pulumi.StringPtrInput 320 // The tenancy of the instance. Valid values are `default` or `dedicated`, see [AWS's Create Launch Configuration](http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_CreateLaunchConfiguration.html) for more details. 321 PlacementTenancy pulumi.StringPtrInput 322 // Customize details about the root block device of the instance. See Block Devices below for details. 323 RootBlockDevice LaunchConfigurationRootBlockDevicePtrInput 324 // A list of associated security group IDS. 325 SecurityGroups pulumi.StringArrayInput 326 // The maximum price to use for reserving spot instances. 327 SpotPrice pulumi.StringPtrInput 328 // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. 329 UserData pulumi.StringPtrInput 330 // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. 331 UserDataBase64 pulumi.StringPtrInput 332 } 333 334 func (LaunchConfigurationArgs) ElementType() reflect.Type { 335 return reflect.TypeOf((*launchConfigurationArgs)(nil)).Elem() 336 } 337 338 type LaunchConfigurationInput interface { 339 pulumi.Input 340 341 ToLaunchConfigurationOutput() LaunchConfigurationOutput 342 ToLaunchConfigurationOutputWithContext(ctx context.Context) LaunchConfigurationOutput 343 } 344 345 func (*LaunchConfiguration) ElementType() reflect.Type { 346 return reflect.TypeOf((**LaunchConfiguration)(nil)).Elem() 347 } 348 349 func (i *LaunchConfiguration) ToLaunchConfigurationOutput() LaunchConfigurationOutput { 350 return i.ToLaunchConfigurationOutputWithContext(context.Background()) 351 } 352 353 func (i *LaunchConfiguration) ToLaunchConfigurationOutputWithContext(ctx context.Context) LaunchConfigurationOutput { 354 return pulumi.ToOutputWithContext(ctx, i).(LaunchConfigurationOutput) 355 } 356 357 // LaunchConfigurationArrayInput is an input type that accepts LaunchConfigurationArray and LaunchConfigurationArrayOutput values. 358 // You can construct a concrete instance of `LaunchConfigurationArrayInput` via: 359 // 360 // LaunchConfigurationArray{ LaunchConfigurationArgs{...} } 361 type LaunchConfigurationArrayInput interface { 362 pulumi.Input 363 364 ToLaunchConfigurationArrayOutput() LaunchConfigurationArrayOutput 365 ToLaunchConfigurationArrayOutputWithContext(context.Context) LaunchConfigurationArrayOutput 366 } 367 368 type LaunchConfigurationArray []LaunchConfigurationInput 369 370 func (LaunchConfigurationArray) ElementType() reflect.Type { 371 return reflect.TypeOf((*[]*LaunchConfiguration)(nil)).Elem() 372 } 373 374 func (i LaunchConfigurationArray) ToLaunchConfigurationArrayOutput() LaunchConfigurationArrayOutput { 375 return i.ToLaunchConfigurationArrayOutputWithContext(context.Background()) 376 } 377 378 func (i LaunchConfigurationArray) ToLaunchConfigurationArrayOutputWithContext(ctx context.Context) LaunchConfigurationArrayOutput { 379 return pulumi.ToOutputWithContext(ctx, i).(LaunchConfigurationArrayOutput) 380 } 381 382 // LaunchConfigurationMapInput is an input type that accepts LaunchConfigurationMap and LaunchConfigurationMapOutput values. 383 // You can construct a concrete instance of `LaunchConfigurationMapInput` via: 384 // 385 // LaunchConfigurationMap{ "key": LaunchConfigurationArgs{...} } 386 type LaunchConfigurationMapInput interface { 387 pulumi.Input 388 389 ToLaunchConfigurationMapOutput() LaunchConfigurationMapOutput 390 ToLaunchConfigurationMapOutputWithContext(context.Context) LaunchConfigurationMapOutput 391 } 392 393 type LaunchConfigurationMap map[string]LaunchConfigurationInput 394 395 func (LaunchConfigurationMap) ElementType() reflect.Type { 396 return reflect.TypeOf((*map[string]*LaunchConfiguration)(nil)).Elem() 397 } 398 399 func (i LaunchConfigurationMap) ToLaunchConfigurationMapOutput() LaunchConfigurationMapOutput { 400 return i.ToLaunchConfigurationMapOutputWithContext(context.Background()) 401 } 402 403 func (i LaunchConfigurationMap) ToLaunchConfigurationMapOutputWithContext(ctx context.Context) LaunchConfigurationMapOutput { 404 return pulumi.ToOutputWithContext(ctx, i).(LaunchConfigurationMapOutput) 405 } 406 407 type LaunchConfigurationOutput struct{ *pulumi.OutputState } 408 409 func (LaunchConfigurationOutput) ElementType() reflect.Type { 410 return reflect.TypeOf((**LaunchConfiguration)(nil)).Elem() 411 } 412 413 func (o LaunchConfigurationOutput) ToLaunchConfigurationOutput() LaunchConfigurationOutput { 414 return o 415 } 416 417 func (o LaunchConfigurationOutput) ToLaunchConfigurationOutputWithContext(ctx context.Context) LaunchConfigurationOutput { 418 return o 419 } 420 421 // The Amazon Resource Name of the launch configuration. 422 func (o LaunchConfigurationOutput) Arn() pulumi.StringOutput { 423 return o.ApplyT(func(v *LaunchConfiguration) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 424 } 425 426 // Associate a public ip address with an instance in a VPC. 427 func (o LaunchConfigurationOutput) AssociatePublicIpAddress() pulumi.BoolPtrOutput { 428 return o.ApplyT(func(v *LaunchConfiguration) pulumi.BoolPtrOutput { return v.AssociatePublicIpAddress }).(pulumi.BoolPtrOutput) 429 } 430 431 // Additional EBS block devices to attach to the instance. See Block Devices below for details. 432 func (o LaunchConfigurationOutput) EbsBlockDevices() LaunchConfigurationEbsBlockDeviceArrayOutput { 433 return o.ApplyT(func(v *LaunchConfiguration) LaunchConfigurationEbsBlockDeviceArrayOutput { return v.EbsBlockDevices }).(LaunchConfigurationEbsBlockDeviceArrayOutput) 434 } 435 436 // If true, the launched EC2 instance will be EBS-optimized. 437 func (o LaunchConfigurationOutput) EbsOptimized() pulumi.BoolOutput { 438 return o.ApplyT(func(v *LaunchConfiguration) pulumi.BoolOutput { return v.EbsOptimized }).(pulumi.BoolOutput) 439 } 440 441 // Enables/disables detailed monitoring. This is enabled by default. 442 func (o LaunchConfigurationOutput) EnableMonitoring() pulumi.BoolPtrOutput { 443 return o.ApplyT(func(v *LaunchConfiguration) pulumi.BoolPtrOutput { return v.EnableMonitoring }).(pulumi.BoolPtrOutput) 444 } 445 446 // Customize Ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below for details. 447 func (o LaunchConfigurationOutput) EphemeralBlockDevices() LaunchConfigurationEphemeralBlockDeviceArrayOutput { 448 return o.ApplyT(func(v *LaunchConfiguration) LaunchConfigurationEphemeralBlockDeviceArrayOutput { 449 return v.EphemeralBlockDevices 450 }).(LaunchConfigurationEphemeralBlockDeviceArrayOutput) 451 } 452 453 // The name attribute of the IAM instance profile to associate with launched instances. 454 func (o LaunchConfigurationOutput) IamInstanceProfile() pulumi.StringPtrOutput { 455 return o.ApplyT(func(v *LaunchConfiguration) pulumi.StringPtrOutput { return v.IamInstanceProfile }).(pulumi.StringPtrOutput) 456 } 457 458 // The EC2 image ID to launch. 459 func (o LaunchConfigurationOutput) ImageId() pulumi.StringOutput { 460 return o.ApplyT(func(v *LaunchConfiguration) pulumi.StringOutput { return v.ImageId }).(pulumi.StringOutput) 461 } 462 463 // The size of instance to launch. 464 // 465 // The following arguments are optional: 466 func (o LaunchConfigurationOutput) InstanceType() pulumi.StringOutput { 467 return o.ApplyT(func(v *LaunchConfiguration) pulumi.StringOutput { return v.InstanceType }).(pulumi.StringOutput) 468 } 469 470 // The key name that should be used for the instance. 471 func (o LaunchConfigurationOutput) KeyName() pulumi.StringOutput { 472 return o.ApplyT(func(v *LaunchConfiguration) pulumi.StringOutput { return v.KeyName }).(pulumi.StringOutput) 473 } 474 475 // The metadata options for the instance. 476 func (o LaunchConfigurationOutput) MetadataOptions() LaunchConfigurationMetadataOptionsOutput { 477 return o.ApplyT(func(v *LaunchConfiguration) LaunchConfigurationMetadataOptionsOutput { return v.MetadataOptions }).(LaunchConfigurationMetadataOptionsOutput) 478 } 479 480 // The name of the launch configuration. If you leave this blank, this provider will auto-generate a unique name. Conflicts with `namePrefix`. 481 func (o LaunchConfigurationOutput) Name() pulumi.StringOutput { 482 return o.ApplyT(func(v *LaunchConfiguration) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 483 } 484 485 // Creates a unique name beginning with the specified prefix. Conflicts with `name`. 486 func (o LaunchConfigurationOutput) NamePrefix() pulumi.StringOutput { 487 return o.ApplyT(func(v *LaunchConfiguration) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) 488 } 489 490 // The tenancy of the instance. Valid values are `default` or `dedicated`, see [AWS's Create Launch Configuration](http://docs.aws.amazon.com/AutoScaling/latest/APIReference/API_CreateLaunchConfiguration.html) for more details. 491 func (o LaunchConfigurationOutput) PlacementTenancy() pulumi.StringPtrOutput { 492 return o.ApplyT(func(v *LaunchConfiguration) pulumi.StringPtrOutput { return v.PlacementTenancy }).(pulumi.StringPtrOutput) 493 } 494 495 // Customize details about the root block device of the instance. See Block Devices below for details. 496 func (o LaunchConfigurationOutput) RootBlockDevice() LaunchConfigurationRootBlockDeviceOutput { 497 return o.ApplyT(func(v *LaunchConfiguration) LaunchConfigurationRootBlockDeviceOutput { return v.RootBlockDevice }).(LaunchConfigurationRootBlockDeviceOutput) 498 } 499 500 // A list of associated security group IDS. 501 func (o LaunchConfigurationOutput) SecurityGroups() pulumi.StringArrayOutput { 502 return o.ApplyT(func(v *LaunchConfiguration) pulumi.StringArrayOutput { return v.SecurityGroups }).(pulumi.StringArrayOutput) 503 } 504 505 // The maximum price to use for reserving spot instances. 506 func (o LaunchConfigurationOutput) SpotPrice() pulumi.StringPtrOutput { 507 return o.ApplyT(func(v *LaunchConfiguration) pulumi.StringPtrOutput { return v.SpotPrice }).(pulumi.StringPtrOutput) 508 } 509 510 // The user data to provide when launching the instance. Do not pass gzip-compressed data via this argument; see `userDataBase64` instead. 511 func (o LaunchConfigurationOutput) UserData() pulumi.StringPtrOutput { 512 return o.ApplyT(func(v *LaunchConfiguration) pulumi.StringPtrOutput { return v.UserData }).(pulumi.StringPtrOutput) 513 } 514 515 // Can be used instead of `userData` to pass base64-encoded binary data directly. Use this instead of `userData` whenever the value is not a valid UTF-8 string. For example, gzip-encoded user data must be base64-encoded and passed via this argument to avoid corruption. 516 func (o LaunchConfigurationOutput) UserDataBase64() pulumi.StringPtrOutput { 517 return o.ApplyT(func(v *LaunchConfiguration) pulumi.StringPtrOutput { return v.UserDataBase64 }).(pulumi.StringPtrOutput) 518 } 519 520 type LaunchConfigurationArrayOutput struct{ *pulumi.OutputState } 521 522 func (LaunchConfigurationArrayOutput) ElementType() reflect.Type { 523 return reflect.TypeOf((*[]*LaunchConfiguration)(nil)).Elem() 524 } 525 526 func (o LaunchConfigurationArrayOutput) ToLaunchConfigurationArrayOutput() LaunchConfigurationArrayOutput { 527 return o 528 } 529 530 func (o LaunchConfigurationArrayOutput) ToLaunchConfigurationArrayOutputWithContext(ctx context.Context) LaunchConfigurationArrayOutput { 531 return o 532 } 533 534 func (o LaunchConfigurationArrayOutput) Index(i pulumi.IntInput) LaunchConfigurationOutput { 535 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LaunchConfiguration { 536 return vs[0].([]*LaunchConfiguration)[vs[1].(int)] 537 }).(LaunchConfigurationOutput) 538 } 539 540 type LaunchConfigurationMapOutput struct{ *pulumi.OutputState } 541 542 func (LaunchConfigurationMapOutput) ElementType() reflect.Type { 543 return reflect.TypeOf((*map[string]*LaunchConfiguration)(nil)).Elem() 544 } 545 546 func (o LaunchConfigurationMapOutput) ToLaunchConfigurationMapOutput() LaunchConfigurationMapOutput { 547 return o 548 } 549 550 func (o LaunchConfigurationMapOutput) ToLaunchConfigurationMapOutputWithContext(ctx context.Context) LaunchConfigurationMapOutput { 551 return o 552 } 553 554 func (o LaunchConfigurationMapOutput) MapIndex(k pulumi.StringInput) LaunchConfigurationOutput { 555 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LaunchConfiguration { 556 return vs[0].(map[string]*LaunchConfiguration)[vs[1].(string)] 557 }).(LaunchConfigurationOutput) 558 } 559 560 func init() { 561 pulumi.RegisterInputType(reflect.TypeOf((*LaunchConfigurationInput)(nil)).Elem(), &LaunchConfiguration{}) 562 pulumi.RegisterInputType(reflect.TypeOf((*LaunchConfigurationArrayInput)(nil)).Elem(), LaunchConfigurationArray{}) 563 pulumi.RegisterInputType(reflect.TypeOf((*LaunchConfigurationMapInput)(nil)).Elem(), LaunchConfigurationMap{}) 564 pulumi.RegisterOutputType(LaunchConfigurationOutput{}) 565 pulumi.RegisterOutputType(LaunchConfigurationArrayOutput{}) 566 pulumi.RegisterOutputType(LaunchConfigurationMapOutput{}) 567 }