github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/ec2/launchTemplate.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 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 11 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 12 ) 13 14 // Provides an EC2 launch template resource. Can be used to create instances or auto scaling groups. 15 // 16 // ## Import 17 // 18 // Using `pulumi import`, import Launch Templates using the `id`. For example: 19 // 20 // ```sh 21 // $ pulumi import aws:ec2/launchTemplate:LaunchTemplate web lt-12345678 22 // ``` 23 type LaunchTemplate struct { 24 pulumi.CustomResourceState 25 26 // The Amazon Resource Name (ARN) of the instance profile. Conflicts with `name`. 27 Arn pulumi.StringOutput `pulumi:"arn"` 28 // Specify volumes to attach to the instance besides the volumes specified by the AMI. 29 // See Block Devices below for details. 30 BlockDeviceMappings LaunchTemplateBlockDeviceMappingArrayOutput `pulumi:"blockDeviceMappings"` 31 // Targeting for EC2 capacity reservations. See Capacity Reservation Specification below for more details. 32 CapacityReservationSpecification LaunchTemplateCapacityReservationSpecificationPtrOutput `pulumi:"capacityReservationSpecification"` 33 // The CPU options for the instance. See CPU Options below for more details. 34 CpuOptions LaunchTemplateCpuOptionsPtrOutput `pulumi:"cpuOptions"` 35 // Customize the credit specification of the instance. See Credit 36 // Specification below for more details. 37 CreditSpecification LaunchTemplateCreditSpecificationPtrOutput `pulumi:"creditSpecification"` 38 // Default Version of the launch template. 39 DefaultVersion pulumi.IntOutput `pulumi:"defaultVersion"` 40 // Description of the launch template. 41 Description pulumi.StringPtrOutput `pulumi:"description"` 42 // If true, enables [EC2 Instance Stop Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection). 43 DisableApiStop pulumi.BoolPtrOutput `pulumi:"disableApiStop"` 44 // If `true`, enables [EC2 Instance 45 // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) 46 DisableApiTermination pulumi.BoolPtrOutput `pulumi:"disableApiTermination"` 47 // If `true`, the launched EC2 instance will be EBS-optimized. 48 EbsOptimized pulumi.StringPtrOutput `pulumi:"ebsOptimized"` 49 // The elastic GPU to attach to the instance. See Elastic GPU 50 // below for more details. 51 ElasticGpuSpecifications LaunchTemplateElasticGpuSpecificationArrayOutput `pulumi:"elasticGpuSpecifications"` 52 // Configuration block containing an Elastic Inference Accelerator to attach to the instance. See Elastic Inference Accelerator below for more details. 53 ElasticInferenceAccelerator LaunchTemplateElasticInferenceAcceleratorPtrOutput `pulumi:"elasticInferenceAccelerator"` 54 // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. 55 EnclaveOptions LaunchTemplateEnclaveOptionsPtrOutput `pulumi:"enclaveOptions"` 56 // The hibernation options for the instance. See Hibernation Options below for more details. 57 HibernationOptions LaunchTemplateHibernationOptionsPtrOutput `pulumi:"hibernationOptions"` 58 // The IAM Instance Profile to launch the instance with. See Instance Profile 59 // below for more details. 60 IamInstanceProfile LaunchTemplateIamInstanceProfilePtrOutput `pulumi:"iamInstanceProfile"` 61 // The AMI from which to launch the instance. 62 ImageId pulumi.StringPtrOutput `pulumi:"imageId"` 63 // Shutdown behavior for the instance. Can be `stop` or `terminate`. 64 // (Default: `stop`). 65 InstanceInitiatedShutdownBehavior pulumi.StringPtrOutput `pulumi:"instanceInitiatedShutdownBehavior"` 66 // The market (purchasing) option for the instance. See Market Options 67 // below for details. 68 InstanceMarketOptions LaunchTemplateInstanceMarketOptionsPtrOutput `pulumi:"instanceMarketOptions"` 69 // The attribute requirements for the type of instance. If present then `instanceType` cannot be present. 70 InstanceRequirements LaunchTemplateInstanceRequirementsPtrOutput `pulumi:"instanceRequirements"` 71 // The type of the instance. If present then `instanceRequirements` cannot be present. 72 InstanceType pulumi.StringPtrOutput `pulumi:"instanceType"` 73 // The kernel ID. 74 KernelId pulumi.StringPtrOutput `pulumi:"kernelId"` 75 // The key name to use for the instance. 76 KeyName pulumi.StringPtrOutput `pulumi:"keyName"` 77 // The latest version of the launch template. 78 LatestVersion pulumi.IntOutput `pulumi:"latestVersion"` 79 // A list of license specifications to associate with. See License Specification below for more details. 80 LicenseSpecifications LaunchTemplateLicenseSpecificationArrayOutput `pulumi:"licenseSpecifications"` 81 // The maintenance options for the instance. See Maintenance Options below for more details. 82 MaintenanceOptions LaunchTemplateMaintenanceOptionsPtrOutput `pulumi:"maintenanceOptions"` 83 // Customize the metadata options for the instance. See Metadata Options below for more details. 84 MetadataOptions LaunchTemplateMetadataOptionsOutput `pulumi:"metadataOptions"` 85 // The monitoring option for the instance. See Monitoring below for more details. 86 Monitoring LaunchTemplateMonitoringPtrOutput `pulumi:"monitoring"` 87 // The name of the launch template. If you leave this blank, the provider will auto-generate a unique name. 88 Name pulumi.StringOutput `pulumi:"name"` 89 // Creates a unique name beginning with the specified prefix. Conflicts with `name`. 90 NamePrefix pulumi.StringOutput `pulumi:"namePrefix"` 91 // Customize network interfaces to be attached at instance boot time. See Network 92 // Interfaces below for more details. 93 NetworkInterfaces LaunchTemplateNetworkInterfaceArrayOutput `pulumi:"networkInterfaces"` 94 // The placement of the instance. See Placement below for more details. 95 Placement LaunchTemplatePlacementPtrOutput `pulumi:"placement"` 96 // The options for the instance hostname. The default values are inherited from the subnet. See Private DNS Name Options below for more details. 97 PrivateDnsNameOptions LaunchTemplatePrivateDnsNameOptionsPtrOutput `pulumi:"privateDnsNameOptions"` 98 // The ID of the RAM disk. 99 RamDiskId pulumi.StringPtrOutput `pulumi:"ramDiskId"` 100 // A list of security group names to associate with. If you are creating Instances in a VPC, use 101 // `vpcSecurityGroupIds` instead. 102 SecurityGroupNames pulumi.StringArrayOutput `pulumi:"securityGroupNames"` 103 // The tags to apply to the resources during launch. See Tag Specifications below for more details. 104 TagSpecifications LaunchTemplateTagSpecificationArrayOutput `pulumi:"tagSpecifications"` 105 // A map of tags to assign to the launch template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 106 Tags pulumi.StringMapOutput `pulumi:"tags"` 107 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 108 // 109 // Deprecated: Please use `tags` instead. 110 TagsAll pulumi.StringMapOutput `pulumi:"tagsAll"` 111 // Whether to update Default Version each update. Conflicts with `defaultVersion`. 112 UpdateDefaultVersion pulumi.BoolPtrOutput `pulumi:"updateDefaultVersion"` 113 // The base64-encoded user data to provide when launching the instance. 114 UserData pulumi.StringPtrOutput `pulumi:"userData"` 115 // A list of security group IDs to associate with. Conflicts with `network_interfaces.security_groups` 116 VpcSecurityGroupIds pulumi.StringArrayOutput `pulumi:"vpcSecurityGroupIds"` 117 } 118 119 // NewLaunchTemplate registers a new resource with the given unique name, arguments, and options. 120 func NewLaunchTemplate(ctx *pulumi.Context, 121 name string, args *LaunchTemplateArgs, opts ...pulumi.ResourceOption) (*LaunchTemplate, error) { 122 if args == nil { 123 args = &LaunchTemplateArgs{} 124 } 125 126 opts = internal.PkgResourceDefaultOpts(opts) 127 var resource LaunchTemplate 128 err := ctx.RegisterResource("aws:ec2/launchTemplate:LaunchTemplate", name, args, &resource, opts...) 129 if err != nil { 130 return nil, err 131 } 132 return &resource, nil 133 } 134 135 // GetLaunchTemplate gets an existing LaunchTemplate resource's state with the given name, ID, and optional 136 // state properties that are used to uniquely qualify the lookup (nil if not required). 137 func GetLaunchTemplate(ctx *pulumi.Context, 138 name string, id pulumi.IDInput, state *LaunchTemplateState, opts ...pulumi.ResourceOption) (*LaunchTemplate, error) { 139 var resource LaunchTemplate 140 err := ctx.ReadResource("aws:ec2/launchTemplate:LaunchTemplate", name, id, state, &resource, opts...) 141 if err != nil { 142 return nil, err 143 } 144 return &resource, nil 145 } 146 147 // Input properties used for looking up and filtering LaunchTemplate resources. 148 type launchTemplateState struct { 149 // The Amazon Resource Name (ARN) of the instance profile. Conflicts with `name`. 150 Arn *string `pulumi:"arn"` 151 // Specify volumes to attach to the instance besides the volumes specified by the AMI. 152 // See Block Devices below for details. 153 BlockDeviceMappings []LaunchTemplateBlockDeviceMapping `pulumi:"blockDeviceMappings"` 154 // Targeting for EC2 capacity reservations. See Capacity Reservation Specification below for more details. 155 CapacityReservationSpecification *LaunchTemplateCapacityReservationSpecification `pulumi:"capacityReservationSpecification"` 156 // The CPU options for the instance. See CPU Options below for more details. 157 CpuOptions *LaunchTemplateCpuOptions `pulumi:"cpuOptions"` 158 // Customize the credit specification of the instance. See Credit 159 // Specification below for more details. 160 CreditSpecification *LaunchTemplateCreditSpecification `pulumi:"creditSpecification"` 161 // Default Version of the launch template. 162 DefaultVersion *int `pulumi:"defaultVersion"` 163 // Description of the launch template. 164 Description *string `pulumi:"description"` 165 // If true, enables [EC2 Instance Stop Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection). 166 DisableApiStop *bool `pulumi:"disableApiStop"` 167 // If `true`, enables [EC2 Instance 168 // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) 169 DisableApiTermination *bool `pulumi:"disableApiTermination"` 170 // If `true`, the launched EC2 instance will be EBS-optimized. 171 EbsOptimized *string `pulumi:"ebsOptimized"` 172 // The elastic GPU to attach to the instance. See Elastic GPU 173 // below for more details. 174 ElasticGpuSpecifications []LaunchTemplateElasticGpuSpecification `pulumi:"elasticGpuSpecifications"` 175 // Configuration block containing an Elastic Inference Accelerator to attach to the instance. See Elastic Inference Accelerator below for more details. 176 ElasticInferenceAccelerator *LaunchTemplateElasticInferenceAccelerator `pulumi:"elasticInferenceAccelerator"` 177 // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. 178 EnclaveOptions *LaunchTemplateEnclaveOptions `pulumi:"enclaveOptions"` 179 // The hibernation options for the instance. See Hibernation Options below for more details. 180 HibernationOptions *LaunchTemplateHibernationOptions `pulumi:"hibernationOptions"` 181 // The IAM Instance Profile to launch the instance with. See Instance Profile 182 // below for more details. 183 IamInstanceProfile *LaunchTemplateIamInstanceProfile `pulumi:"iamInstanceProfile"` 184 // The AMI from which to launch the instance. 185 ImageId *string `pulumi:"imageId"` 186 // Shutdown behavior for the instance. Can be `stop` or `terminate`. 187 // (Default: `stop`). 188 InstanceInitiatedShutdownBehavior *string `pulumi:"instanceInitiatedShutdownBehavior"` 189 // The market (purchasing) option for the instance. See Market Options 190 // below for details. 191 InstanceMarketOptions *LaunchTemplateInstanceMarketOptions `pulumi:"instanceMarketOptions"` 192 // The attribute requirements for the type of instance. If present then `instanceType` cannot be present. 193 InstanceRequirements *LaunchTemplateInstanceRequirements `pulumi:"instanceRequirements"` 194 // The type of the instance. If present then `instanceRequirements` cannot be present. 195 InstanceType *string `pulumi:"instanceType"` 196 // The kernel ID. 197 KernelId *string `pulumi:"kernelId"` 198 // The key name to use for the instance. 199 KeyName *string `pulumi:"keyName"` 200 // The latest version of the launch template. 201 LatestVersion *int `pulumi:"latestVersion"` 202 // A list of license specifications to associate with. See License Specification below for more details. 203 LicenseSpecifications []LaunchTemplateLicenseSpecification `pulumi:"licenseSpecifications"` 204 // The maintenance options for the instance. See Maintenance Options below for more details. 205 MaintenanceOptions *LaunchTemplateMaintenanceOptions `pulumi:"maintenanceOptions"` 206 // Customize the metadata options for the instance. See Metadata Options below for more details. 207 MetadataOptions *LaunchTemplateMetadataOptions `pulumi:"metadataOptions"` 208 // The monitoring option for the instance. See Monitoring below for more details. 209 Monitoring *LaunchTemplateMonitoring `pulumi:"monitoring"` 210 // The name of the launch template. If you leave this blank, the provider will auto-generate a unique name. 211 Name *string `pulumi:"name"` 212 // Creates a unique name beginning with the specified prefix. Conflicts with `name`. 213 NamePrefix *string `pulumi:"namePrefix"` 214 // Customize network interfaces to be attached at instance boot time. See Network 215 // Interfaces below for more details. 216 NetworkInterfaces []LaunchTemplateNetworkInterface `pulumi:"networkInterfaces"` 217 // The placement of the instance. See Placement below for more details. 218 Placement *LaunchTemplatePlacement `pulumi:"placement"` 219 // The options for the instance hostname. The default values are inherited from the subnet. See Private DNS Name Options below for more details. 220 PrivateDnsNameOptions *LaunchTemplatePrivateDnsNameOptions `pulumi:"privateDnsNameOptions"` 221 // The ID of the RAM disk. 222 RamDiskId *string `pulumi:"ramDiskId"` 223 // A list of security group names to associate with. If you are creating Instances in a VPC, use 224 // `vpcSecurityGroupIds` instead. 225 SecurityGroupNames []string `pulumi:"securityGroupNames"` 226 // The tags to apply to the resources during launch. See Tag Specifications below for more details. 227 TagSpecifications []LaunchTemplateTagSpecification `pulumi:"tagSpecifications"` 228 // A map of tags to assign to the launch template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 229 Tags map[string]string `pulumi:"tags"` 230 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 231 // 232 // Deprecated: Please use `tags` instead. 233 TagsAll map[string]string `pulumi:"tagsAll"` 234 // Whether to update Default Version each update. Conflicts with `defaultVersion`. 235 UpdateDefaultVersion *bool `pulumi:"updateDefaultVersion"` 236 // The base64-encoded user data to provide when launching the instance. 237 UserData *string `pulumi:"userData"` 238 // A list of security group IDs to associate with. Conflicts with `network_interfaces.security_groups` 239 VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"` 240 } 241 242 type LaunchTemplateState struct { 243 // The Amazon Resource Name (ARN) of the instance profile. Conflicts with `name`. 244 Arn pulumi.StringPtrInput 245 // Specify volumes to attach to the instance besides the volumes specified by the AMI. 246 // See Block Devices below for details. 247 BlockDeviceMappings LaunchTemplateBlockDeviceMappingArrayInput 248 // Targeting for EC2 capacity reservations. See Capacity Reservation Specification below for more details. 249 CapacityReservationSpecification LaunchTemplateCapacityReservationSpecificationPtrInput 250 // The CPU options for the instance. See CPU Options below for more details. 251 CpuOptions LaunchTemplateCpuOptionsPtrInput 252 // Customize the credit specification of the instance. See Credit 253 // Specification below for more details. 254 CreditSpecification LaunchTemplateCreditSpecificationPtrInput 255 // Default Version of the launch template. 256 DefaultVersion pulumi.IntPtrInput 257 // Description of the launch template. 258 Description pulumi.StringPtrInput 259 // If true, enables [EC2 Instance Stop Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection). 260 DisableApiStop pulumi.BoolPtrInput 261 // If `true`, enables [EC2 Instance 262 // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) 263 DisableApiTermination pulumi.BoolPtrInput 264 // If `true`, the launched EC2 instance will be EBS-optimized. 265 EbsOptimized pulumi.StringPtrInput 266 // The elastic GPU to attach to the instance. See Elastic GPU 267 // below for more details. 268 ElasticGpuSpecifications LaunchTemplateElasticGpuSpecificationArrayInput 269 // Configuration block containing an Elastic Inference Accelerator to attach to the instance. See Elastic Inference Accelerator below for more details. 270 ElasticInferenceAccelerator LaunchTemplateElasticInferenceAcceleratorPtrInput 271 // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. 272 EnclaveOptions LaunchTemplateEnclaveOptionsPtrInput 273 // The hibernation options for the instance. See Hibernation Options below for more details. 274 HibernationOptions LaunchTemplateHibernationOptionsPtrInput 275 // The IAM Instance Profile to launch the instance with. See Instance Profile 276 // below for more details. 277 IamInstanceProfile LaunchTemplateIamInstanceProfilePtrInput 278 // The AMI from which to launch the instance. 279 ImageId pulumi.StringPtrInput 280 // Shutdown behavior for the instance. Can be `stop` or `terminate`. 281 // (Default: `stop`). 282 InstanceInitiatedShutdownBehavior pulumi.StringPtrInput 283 // The market (purchasing) option for the instance. See Market Options 284 // below for details. 285 InstanceMarketOptions LaunchTemplateInstanceMarketOptionsPtrInput 286 // The attribute requirements for the type of instance. If present then `instanceType` cannot be present. 287 InstanceRequirements LaunchTemplateInstanceRequirementsPtrInput 288 // The type of the instance. If present then `instanceRequirements` cannot be present. 289 InstanceType pulumi.StringPtrInput 290 // The kernel ID. 291 KernelId pulumi.StringPtrInput 292 // The key name to use for the instance. 293 KeyName pulumi.StringPtrInput 294 // The latest version of the launch template. 295 LatestVersion pulumi.IntPtrInput 296 // A list of license specifications to associate with. See License Specification below for more details. 297 LicenseSpecifications LaunchTemplateLicenseSpecificationArrayInput 298 // The maintenance options for the instance. See Maintenance Options below for more details. 299 MaintenanceOptions LaunchTemplateMaintenanceOptionsPtrInput 300 // Customize the metadata options for the instance. See Metadata Options below for more details. 301 MetadataOptions LaunchTemplateMetadataOptionsPtrInput 302 // The monitoring option for the instance. See Monitoring below for more details. 303 Monitoring LaunchTemplateMonitoringPtrInput 304 // The name of the launch template. If you leave this blank, the provider will auto-generate a unique name. 305 Name pulumi.StringPtrInput 306 // Creates a unique name beginning with the specified prefix. Conflicts with `name`. 307 NamePrefix pulumi.StringPtrInput 308 // Customize network interfaces to be attached at instance boot time. See Network 309 // Interfaces below for more details. 310 NetworkInterfaces LaunchTemplateNetworkInterfaceArrayInput 311 // The placement of the instance. See Placement below for more details. 312 Placement LaunchTemplatePlacementPtrInput 313 // The options for the instance hostname. The default values are inherited from the subnet. See Private DNS Name Options below for more details. 314 PrivateDnsNameOptions LaunchTemplatePrivateDnsNameOptionsPtrInput 315 // The ID of the RAM disk. 316 RamDiskId pulumi.StringPtrInput 317 // A list of security group names to associate with. If you are creating Instances in a VPC, use 318 // `vpcSecurityGroupIds` instead. 319 SecurityGroupNames pulumi.StringArrayInput 320 // The tags to apply to the resources during launch. See Tag Specifications below for more details. 321 TagSpecifications LaunchTemplateTagSpecificationArrayInput 322 // A map of tags to assign to the launch template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 323 Tags pulumi.StringMapInput 324 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 325 // 326 // Deprecated: Please use `tags` instead. 327 TagsAll pulumi.StringMapInput 328 // Whether to update Default Version each update. Conflicts with `defaultVersion`. 329 UpdateDefaultVersion pulumi.BoolPtrInput 330 // The base64-encoded user data to provide when launching the instance. 331 UserData pulumi.StringPtrInput 332 // A list of security group IDs to associate with. Conflicts with `network_interfaces.security_groups` 333 VpcSecurityGroupIds pulumi.StringArrayInput 334 } 335 336 func (LaunchTemplateState) ElementType() reflect.Type { 337 return reflect.TypeOf((*launchTemplateState)(nil)).Elem() 338 } 339 340 type launchTemplateArgs struct { 341 // Specify volumes to attach to the instance besides the volumes specified by the AMI. 342 // See Block Devices below for details. 343 BlockDeviceMappings []LaunchTemplateBlockDeviceMapping `pulumi:"blockDeviceMappings"` 344 // Targeting for EC2 capacity reservations. See Capacity Reservation Specification below for more details. 345 CapacityReservationSpecification *LaunchTemplateCapacityReservationSpecification `pulumi:"capacityReservationSpecification"` 346 // The CPU options for the instance. See CPU Options below for more details. 347 CpuOptions *LaunchTemplateCpuOptions `pulumi:"cpuOptions"` 348 // Customize the credit specification of the instance. See Credit 349 // Specification below for more details. 350 CreditSpecification *LaunchTemplateCreditSpecification `pulumi:"creditSpecification"` 351 // Default Version of the launch template. 352 DefaultVersion *int `pulumi:"defaultVersion"` 353 // Description of the launch template. 354 Description *string `pulumi:"description"` 355 // If true, enables [EC2 Instance Stop Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection). 356 DisableApiStop *bool `pulumi:"disableApiStop"` 357 // If `true`, enables [EC2 Instance 358 // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) 359 DisableApiTermination *bool `pulumi:"disableApiTermination"` 360 // If `true`, the launched EC2 instance will be EBS-optimized. 361 EbsOptimized *string `pulumi:"ebsOptimized"` 362 // The elastic GPU to attach to the instance. See Elastic GPU 363 // below for more details. 364 ElasticGpuSpecifications []LaunchTemplateElasticGpuSpecification `pulumi:"elasticGpuSpecifications"` 365 // Configuration block containing an Elastic Inference Accelerator to attach to the instance. See Elastic Inference Accelerator below for more details. 366 ElasticInferenceAccelerator *LaunchTemplateElasticInferenceAccelerator `pulumi:"elasticInferenceAccelerator"` 367 // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. 368 EnclaveOptions *LaunchTemplateEnclaveOptions `pulumi:"enclaveOptions"` 369 // The hibernation options for the instance. See Hibernation Options below for more details. 370 HibernationOptions *LaunchTemplateHibernationOptions `pulumi:"hibernationOptions"` 371 // The IAM Instance Profile to launch the instance with. See Instance Profile 372 // below for more details. 373 IamInstanceProfile *LaunchTemplateIamInstanceProfile `pulumi:"iamInstanceProfile"` 374 // The AMI from which to launch the instance. 375 ImageId *string `pulumi:"imageId"` 376 // Shutdown behavior for the instance. Can be `stop` or `terminate`. 377 // (Default: `stop`). 378 InstanceInitiatedShutdownBehavior *string `pulumi:"instanceInitiatedShutdownBehavior"` 379 // The market (purchasing) option for the instance. See Market Options 380 // below for details. 381 InstanceMarketOptions *LaunchTemplateInstanceMarketOptions `pulumi:"instanceMarketOptions"` 382 // The attribute requirements for the type of instance. If present then `instanceType` cannot be present. 383 InstanceRequirements *LaunchTemplateInstanceRequirements `pulumi:"instanceRequirements"` 384 // The type of the instance. If present then `instanceRequirements` cannot be present. 385 InstanceType *string `pulumi:"instanceType"` 386 // The kernel ID. 387 KernelId *string `pulumi:"kernelId"` 388 // The key name to use for the instance. 389 KeyName *string `pulumi:"keyName"` 390 // A list of license specifications to associate with. See License Specification below for more details. 391 LicenseSpecifications []LaunchTemplateLicenseSpecification `pulumi:"licenseSpecifications"` 392 // The maintenance options for the instance. See Maintenance Options below for more details. 393 MaintenanceOptions *LaunchTemplateMaintenanceOptions `pulumi:"maintenanceOptions"` 394 // Customize the metadata options for the instance. See Metadata Options below for more details. 395 MetadataOptions *LaunchTemplateMetadataOptions `pulumi:"metadataOptions"` 396 // The monitoring option for the instance. See Monitoring below for more details. 397 Monitoring *LaunchTemplateMonitoring `pulumi:"monitoring"` 398 // The name of the launch template. If you leave this blank, the provider will auto-generate a unique name. 399 Name *string `pulumi:"name"` 400 // Creates a unique name beginning with the specified prefix. Conflicts with `name`. 401 NamePrefix *string `pulumi:"namePrefix"` 402 // Customize network interfaces to be attached at instance boot time. See Network 403 // Interfaces below for more details. 404 NetworkInterfaces []LaunchTemplateNetworkInterface `pulumi:"networkInterfaces"` 405 // The placement of the instance. See Placement below for more details. 406 Placement *LaunchTemplatePlacement `pulumi:"placement"` 407 // The options for the instance hostname. The default values are inherited from the subnet. See Private DNS Name Options below for more details. 408 PrivateDnsNameOptions *LaunchTemplatePrivateDnsNameOptions `pulumi:"privateDnsNameOptions"` 409 // The ID of the RAM disk. 410 RamDiskId *string `pulumi:"ramDiskId"` 411 // A list of security group names to associate with. If you are creating Instances in a VPC, use 412 // `vpcSecurityGroupIds` instead. 413 SecurityGroupNames []string `pulumi:"securityGroupNames"` 414 // The tags to apply to the resources during launch. See Tag Specifications below for more details. 415 TagSpecifications []LaunchTemplateTagSpecification `pulumi:"tagSpecifications"` 416 // A map of tags to assign to the launch template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 417 Tags map[string]string `pulumi:"tags"` 418 // Whether to update Default Version each update. Conflicts with `defaultVersion`. 419 UpdateDefaultVersion *bool `pulumi:"updateDefaultVersion"` 420 // The base64-encoded user data to provide when launching the instance. 421 UserData *string `pulumi:"userData"` 422 // A list of security group IDs to associate with. Conflicts with `network_interfaces.security_groups` 423 VpcSecurityGroupIds []string `pulumi:"vpcSecurityGroupIds"` 424 } 425 426 // The set of arguments for constructing a LaunchTemplate resource. 427 type LaunchTemplateArgs struct { 428 // Specify volumes to attach to the instance besides the volumes specified by the AMI. 429 // See Block Devices below for details. 430 BlockDeviceMappings LaunchTemplateBlockDeviceMappingArrayInput 431 // Targeting for EC2 capacity reservations. See Capacity Reservation Specification below for more details. 432 CapacityReservationSpecification LaunchTemplateCapacityReservationSpecificationPtrInput 433 // The CPU options for the instance. See CPU Options below for more details. 434 CpuOptions LaunchTemplateCpuOptionsPtrInput 435 // Customize the credit specification of the instance. See Credit 436 // Specification below for more details. 437 CreditSpecification LaunchTemplateCreditSpecificationPtrInput 438 // Default Version of the launch template. 439 DefaultVersion pulumi.IntPtrInput 440 // Description of the launch template. 441 Description pulumi.StringPtrInput 442 // If true, enables [EC2 Instance Stop Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection). 443 DisableApiStop pulumi.BoolPtrInput 444 // If `true`, enables [EC2 Instance 445 // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) 446 DisableApiTermination pulumi.BoolPtrInput 447 // If `true`, the launched EC2 instance will be EBS-optimized. 448 EbsOptimized pulumi.StringPtrInput 449 // The elastic GPU to attach to the instance. See Elastic GPU 450 // below for more details. 451 ElasticGpuSpecifications LaunchTemplateElasticGpuSpecificationArrayInput 452 // Configuration block containing an Elastic Inference Accelerator to attach to the instance. See Elastic Inference Accelerator below for more details. 453 ElasticInferenceAccelerator LaunchTemplateElasticInferenceAcceleratorPtrInput 454 // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. 455 EnclaveOptions LaunchTemplateEnclaveOptionsPtrInput 456 // The hibernation options for the instance. See Hibernation Options below for more details. 457 HibernationOptions LaunchTemplateHibernationOptionsPtrInput 458 // The IAM Instance Profile to launch the instance with. See Instance Profile 459 // below for more details. 460 IamInstanceProfile LaunchTemplateIamInstanceProfilePtrInput 461 // The AMI from which to launch the instance. 462 ImageId pulumi.StringPtrInput 463 // Shutdown behavior for the instance. Can be `stop` or `terminate`. 464 // (Default: `stop`). 465 InstanceInitiatedShutdownBehavior pulumi.StringPtrInput 466 // The market (purchasing) option for the instance. See Market Options 467 // below for details. 468 InstanceMarketOptions LaunchTemplateInstanceMarketOptionsPtrInput 469 // The attribute requirements for the type of instance. If present then `instanceType` cannot be present. 470 InstanceRequirements LaunchTemplateInstanceRequirementsPtrInput 471 // The type of the instance. If present then `instanceRequirements` cannot be present. 472 InstanceType pulumi.StringPtrInput 473 // The kernel ID. 474 KernelId pulumi.StringPtrInput 475 // The key name to use for the instance. 476 KeyName pulumi.StringPtrInput 477 // A list of license specifications to associate with. See License Specification below for more details. 478 LicenseSpecifications LaunchTemplateLicenseSpecificationArrayInput 479 // The maintenance options for the instance. See Maintenance Options below for more details. 480 MaintenanceOptions LaunchTemplateMaintenanceOptionsPtrInput 481 // Customize the metadata options for the instance. See Metadata Options below for more details. 482 MetadataOptions LaunchTemplateMetadataOptionsPtrInput 483 // The monitoring option for the instance. See Monitoring below for more details. 484 Monitoring LaunchTemplateMonitoringPtrInput 485 // The name of the launch template. If you leave this blank, the provider will auto-generate a unique name. 486 Name pulumi.StringPtrInput 487 // Creates a unique name beginning with the specified prefix. Conflicts with `name`. 488 NamePrefix pulumi.StringPtrInput 489 // Customize network interfaces to be attached at instance boot time. See Network 490 // Interfaces below for more details. 491 NetworkInterfaces LaunchTemplateNetworkInterfaceArrayInput 492 // The placement of the instance. See Placement below for more details. 493 Placement LaunchTemplatePlacementPtrInput 494 // The options for the instance hostname. The default values are inherited from the subnet. See Private DNS Name Options below for more details. 495 PrivateDnsNameOptions LaunchTemplatePrivateDnsNameOptionsPtrInput 496 // The ID of the RAM disk. 497 RamDiskId pulumi.StringPtrInput 498 // A list of security group names to associate with. If you are creating Instances in a VPC, use 499 // `vpcSecurityGroupIds` instead. 500 SecurityGroupNames pulumi.StringArrayInput 501 // The tags to apply to the resources during launch. See Tag Specifications below for more details. 502 TagSpecifications LaunchTemplateTagSpecificationArrayInput 503 // A map of tags to assign to the launch template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 504 Tags pulumi.StringMapInput 505 // Whether to update Default Version each update. Conflicts with `defaultVersion`. 506 UpdateDefaultVersion pulumi.BoolPtrInput 507 // The base64-encoded user data to provide when launching the instance. 508 UserData pulumi.StringPtrInput 509 // A list of security group IDs to associate with. Conflicts with `network_interfaces.security_groups` 510 VpcSecurityGroupIds pulumi.StringArrayInput 511 } 512 513 func (LaunchTemplateArgs) ElementType() reflect.Type { 514 return reflect.TypeOf((*launchTemplateArgs)(nil)).Elem() 515 } 516 517 type LaunchTemplateInput interface { 518 pulumi.Input 519 520 ToLaunchTemplateOutput() LaunchTemplateOutput 521 ToLaunchTemplateOutputWithContext(ctx context.Context) LaunchTemplateOutput 522 } 523 524 func (*LaunchTemplate) ElementType() reflect.Type { 525 return reflect.TypeOf((**LaunchTemplate)(nil)).Elem() 526 } 527 528 func (i *LaunchTemplate) ToLaunchTemplateOutput() LaunchTemplateOutput { 529 return i.ToLaunchTemplateOutputWithContext(context.Background()) 530 } 531 532 func (i *LaunchTemplate) ToLaunchTemplateOutputWithContext(ctx context.Context) LaunchTemplateOutput { 533 return pulumi.ToOutputWithContext(ctx, i).(LaunchTemplateOutput) 534 } 535 536 // LaunchTemplateArrayInput is an input type that accepts LaunchTemplateArray and LaunchTemplateArrayOutput values. 537 // You can construct a concrete instance of `LaunchTemplateArrayInput` via: 538 // 539 // LaunchTemplateArray{ LaunchTemplateArgs{...} } 540 type LaunchTemplateArrayInput interface { 541 pulumi.Input 542 543 ToLaunchTemplateArrayOutput() LaunchTemplateArrayOutput 544 ToLaunchTemplateArrayOutputWithContext(context.Context) LaunchTemplateArrayOutput 545 } 546 547 type LaunchTemplateArray []LaunchTemplateInput 548 549 func (LaunchTemplateArray) ElementType() reflect.Type { 550 return reflect.TypeOf((*[]*LaunchTemplate)(nil)).Elem() 551 } 552 553 func (i LaunchTemplateArray) ToLaunchTemplateArrayOutput() LaunchTemplateArrayOutput { 554 return i.ToLaunchTemplateArrayOutputWithContext(context.Background()) 555 } 556 557 func (i LaunchTemplateArray) ToLaunchTemplateArrayOutputWithContext(ctx context.Context) LaunchTemplateArrayOutput { 558 return pulumi.ToOutputWithContext(ctx, i).(LaunchTemplateArrayOutput) 559 } 560 561 // LaunchTemplateMapInput is an input type that accepts LaunchTemplateMap and LaunchTemplateMapOutput values. 562 // You can construct a concrete instance of `LaunchTemplateMapInput` via: 563 // 564 // LaunchTemplateMap{ "key": LaunchTemplateArgs{...} } 565 type LaunchTemplateMapInput interface { 566 pulumi.Input 567 568 ToLaunchTemplateMapOutput() LaunchTemplateMapOutput 569 ToLaunchTemplateMapOutputWithContext(context.Context) LaunchTemplateMapOutput 570 } 571 572 type LaunchTemplateMap map[string]LaunchTemplateInput 573 574 func (LaunchTemplateMap) ElementType() reflect.Type { 575 return reflect.TypeOf((*map[string]*LaunchTemplate)(nil)).Elem() 576 } 577 578 func (i LaunchTemplateMap) ToLaunchTemplateMapOutput() LaunchTemplateMapOutput { 579 return i.ToLaunchTemplateMapOutputWithContext(context.Background()) 580 } 581 582 func (i LaunchTemplateMap) ToLaunchTemplateMapOutputWithContext(ctx context.Context) LaunchTemplateMapOutput { 583 return pulumi.ToOutputWithContext(ctx, i).(LaunchTemplateMapOutput) 584 } 585 586 type LaunchTemplateOutput struct{ *pulumi.OutputState } 587 588 func (LaunchTemplateOutput) ElementType() reflect.Type { 589 return reflect.TypeOf((**LaunchTemplate)(nil)).Elem() 590 } 591 592 func (o LaunchTemplateOutput) ToLaunchTemplateOutput() LaunchTemplateOutput { 593 return o 594 } 595 596 func (o LaunchTemplateOutput) ToLaunchTemplateOutputWithContext(ctx context.Context) LaunchTemplateOutput { 597 return o 598 } 599 600 // The Amazon Resource Name (ARN) of the instance profile. Conflicts with `name`. 601 func (o LaunchTemplateOutput) Arn() pulumi.StringOutput { 602 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringOutput { return v.Arn }).(pulumi.StringOutput) 603 } 604 605 // Specify volumes to attach to the instance besides the volumes specified by the AMI. 606 // See Block Devices below for details. 607 func (o LaunchTemplateOutput) BlockDeviceMappings() LaunchTemplateBlockDeviceMappingArrayOutput { 608 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateBlockDeviceMappingArrayOutput { return v.BlockDeviceMappings }).(LaunchTemplateBlockDeviceMappingArrayOutput) 609 } 610 611 // Targeting for EC2 capacity reservations. See Capacity Reservation Specification below for more details. 612 func (o LaunchTemplateOutput) CapacityReservationSpecification() LaunchTemplateCapacityReservationSpecificationPtrOutput { 613 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateCapacityReservationSpecificationPtrOutput { 614 return v.CapacityReservationSpecification 615 }).(LaunchTemplateCapacityReservationSpecificationPtrOutput) 616 } 617 618 // The CPU options for the instance. See CPU Options below for more details. 619 func (o LaunchTemplateOutput) CpuOptions() LaunchTemplateCpuOptionsPtrOutput { 620 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateCpuOptionsPtrOutput { return v.CpuOptions }).(LaunchTemplateCpuOptionsPtrOutput) 621 } 622 623 // Customize the credit specification of the instance. See Credit 624 // Specification below for more details. 625 func (o LaunchTemplateOutput) CreditSpecification() LaunchTemplateCreditSpecificationPtrOutput { 626 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateCreditSpecificationPtrOutput { return v.CreditSpecification }).(LaunchTemplateCreditSpecificationPtrOutput) 627 } 628 629 // Default Version of the launch template. 630 func (o LaunchTemplateOutput) DefaultVersion() pulumi.IntOutput { 631 return o.ApplyT(func(v *LaunchTemplate) pulumi.IntOutput { return v.DefaultVersion }).(pulumi.IntOutput) 632 } 633 634 // Description of the launch template. 635 func (o LaunchTemplateOutput) Description() pulumi.StringPtrOutput { 636 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringPtrOutput { return v.Description }).(pulumi.StringPtrOutput) 637 } 638 639 // If true, enables [EC2 Instance Stop Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/Stop_Start.html#Using_StopProtection). 640 func (o LaunchTemplateOutput) DisableApiStop() pulumi.BoolPtrOutput { 641 return o.ApplyT(func(v *LaunchTemplate) pulumi.BoolPtrOutput { return v.DisableApiStop }).(pulumi.BoolPtrOutput) 642 } 643 644 // If `true`, enables [EC2 Instance 645 // Termination Protection](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/terminating-instances.html#Using_ChangingDisableAPITermination) 646 func (o LaunchTemplateOutput) DisableApiTermination() pulumi.BoolPtrOutput { 647 return o.ApplyT(func(v *LaunchTemplate) pulumi.BoolPtrOutput { return v.DisableApiTermination }).(pulumi.BoolPtrOutput) 648 } 649 650 // If `true`, the launched EC2 instance will be EBS-optimized. 651 func (o LaunchTemplateOutput) EbsOptimized() pulumi.StringPtrOutput { 652 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringPtrOutput { return v.EbsOptimized }).(pulumi.StringPtrOutput) 653 } 654 655 // The elastic GPU to attach to the instance. See Elastic GPU 656 // below for more details. 657 func (o LaunchTemplateOutput) ElasticGpuSpecifications() LaunchTemplateElasticGpuSpecificationArrayOutput { 658 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateElasticGpuSpecificationArrayOutput { 659 return v.ElasticGpuSpecifications 660 }).(LaunchTemplateElasticGpuSpecificationArrayOutput) 661 } 662 663 // Configuration block containing an Elastic Inference Accelerator to attach to the instance. See Elastic Inference Accelerator below for more details. 664 func (o LaunchTemplateOutput) ElasticInferenceAccelerator() LaunchTemplateElasticInferenceAcceleratorPtrOutput { 665 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateElasticInferenceAcceleratorPtrOutput { 666 return v.ElasticInferenceAccelerator 667 }).(LaunchTemplateElasticInferenceAcceleratorPtrOutput) 668 } 669 670 // Enable Nitro Enclaves on launched instances. See Enclave Options below for more details. 671 func (o LaunchTemplateOutput) EnclaveOptions() LaunchTemplateEnclaveOptionsPtrOutput { 672 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateEnclaveOptionsPtrOutput { return v.EnclaveOptions }).(LaunchTemplateEnclaveOptionsPtrOutput) 673 } 674 675 // The hibernation options for the instance. See Hibernation Options below for more details. 676 func (o LaunchTemplateOutput) HibernationOptions() LaunchTemplateHibernationOptionsPtrOutput { 677 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateHibernationOptionsPtrOutput { return v.HibernationOptions }).(LaunchTemplateHibernationOptionsPtrOutput) 678 } 679 680 // The IAM Instance Profile to launch the instance with. See Instance Profile 681 // below for more details. 682 func (o LaunchTemplateOutput) IamInstanceProfile() LaunchTemplateIamInstanceProfilePtrOutput { 683 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateIamInstanceProfilePtrOutput { return v.IamInstanceProfile }).(LaunchTemplateIamInstanceProfilePtrOutput) 684 } 685 686 // The AMI from which to launch the instance. 687 func (o LaunchTemplateOutput) ImageId() pulumi.StringPtrOutput { 688 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringPtrOutput { return v.ImageId }).(pulumi.StringPtrOutput) 689 } 690 691 // Shutdown behavior for the instance. Can be `stop` or `terminate`. 692 // (Default: `stop`). 693 func (o LaunchTemplateOutput) InstanceInitiatedShutdownBehavior() pulumi.StringPtrOutput { 694 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringPtrOutput { return v.InstanceInitiatedShutdownBehavior }).(pulumi.StringPtrOutput) 695 } 696 697 // The market (purchasing) option for the instance. See Market Options 698 // below for details. 699 func (o LaunchTemplateOutput) InstanceMarketOptions() LaunchTemplateInstanceMarketOptionsPtrOutput { 700 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateInstanceMarketOptionsPtrOutput { return v.InstanceMarketOptions }).(LaunchTemplateInstanceMarketOptionsPtrOutput) 701 } 702 703 // The attribute requirements for the type of instance. If present then `instanceType` cannot be present. 704 func (o LaunchTemplateOutput) InstanceRequirements() LaunchTemplateInstanceRequirementsPtrOutput { 705 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateInstanceRequirementsPtrOutput { return v.InstanceRequirements }).(LaunchTemplateInstanceRequirementsPtrOutput) 706 } 707 708 // The type of the instance. If present then `instanceRequirements` cannot be present. 709 func (o LaunchTemplateOutput) InstanceType() pulumi.StringPtrOutput { 710 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringPtrOutput { return v.InstanceType }).(pulumi.StringPtrOutput) 711 } 712 713 // The kernel ID. 714 func (o LaunchTemplateOutput) KernelId() pulumi.StringPtrOutput { 715 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringPtrOutput { return v.KernelId }).(pulumi.StringPtrOutput) 716 } 717 718 // The key name to use for the instance. 719 func (o LaunchTemplateOutput) KeyName() pulumi.StringPtrOutput { 720 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringPtrOutput { return v.KeyName }).(pulumi.StringPtrOutput) 721 } 722 723 // The latest version of the launch template. 724 func (o LaunchTemplateOutput) LatestVersion() pulumi.IntOutput { 725 return o.ApplyT(func(v *LaunchTemplate) pulumi.IntOutput { return v.LatestVersion }).(pulumi.IntOutput) 726 } 727 728 // A list of license specifications to associate with. See License Specification below for more details. 729 func (o LaunchTemplateOutput) LicenseSpecifications() LaunchTemplateLicenseSpecificationArrayOutput { 730 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateLicenseSpecificationArrayOutput { return v.LicenseSpecifications }).(LaunchTemplateLicenseSpecificationArrayOutput) 731 } 732 733 // The maintenance options for the instance. See Maintenance Options below for more details. 734 func (o LaunchTemplateOutput) MaintenanceOptions() LaunchTemplateMaintenanceOptionsPtrOutput { 735 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateMaintenanceOptionsPtrOutput { return v.MaintenanceOptions }).(LaunchTemplateMaintenanceOptionsPtrOutput) 736 } 737 738 // Customize the metadata options for the instance. See Metadata Options below for more details. 739 func (o LaunchTemplateOutput) MetadataOptions() LaunchTemplateMetadataOptionsOutput { 740 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateMetadataOptionsOutput { return v.MetadataOptions }).(LaunchTemplateMetadataOptionsOutput) 741 } 742 743 // The monitoring option for the instance. See Monitoring below for more details. 744 func (o LaunchTemplateOutput) Monitoring() LaunchTemplateMonitoringPtrOutput { 745 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateMonitoringPtrOutput { return v.Monitoring }).(LaunchTemplateMonitoringPtrOutput) 746 } 747 748 // The name of the launch template. If you leave this blank, the provider will auto-generate a unique name. 749 func (o LaunchTemplateOutput) Name() pulumi.StringOutput { 750 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 751 } 752 753 // Creates a unique name beginning with the specified prefix. Conflicts with `name`. 754 func (o LaunchTemplateOutput) NamePrefix() pulumi.StringOutput { 755 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringOutput { return v.NamePrefix }).(pulumi.StringOutput) 756 } 757 758 // Customize network interfaces to be attached at instance boot time. See Network 759 // Interfaces below for more details. 760 func (o LaunchTemplateOutput) NetworkInterfaces() LaunchTemplateNetworkInterfaceArrayOutput { 761 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateNetworkInterfaceArrayOutput { return v.NetworkInterfaces }).(LaunchTemplateNetworkInterfaceArrayOutput) 762 } 763 764 // The placement of the instance. See Placement below for more details. 765 func (o LaunchTemplateOutput) Placement() LaunchTemplatePlacementPtrOutput { 766 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplatePlacementPtrOutput { return v.Placement }).(LaunchTemplatePlacementPtrOutput) 767 } 768 769 // The options for the instance hostname. The default values are inherited from the subnet. See Private DNS Name Options below for more details. 770 func (o LaunchTemplateOutput) PrivateDnsNameOptions() LaunchTemplatePrivateDnsNameOptionsPtrOutput { 771 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplatePrivateDnsNameOptionsPtrOutput { return v.PrivateDnsNameOptions }).(LaunchTemplatePrivateDnsNameOptionsPtrOutput) 772 } 773 774 // The ID of the RAM disk. 775 func (o LaunchTemplateOutput) RamDiskId() pulumi.StringPtrOutput { 776 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringPtrOutput { return v.RamDiskId }).(pulumi.StringPtrOutput) 777 } 778 779 // A list of security group names to associate with. If you are creating Instances in a VPC, use 780 // `vpcSecurityGroupIds` instead. 781 func (o LaunchTemplateOutput) SecurityGroupNames() pulumi.StringArrayOutput { 782 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringArrayOutput { return v.SecurityGroupNames }).(pulumi.StringArrayOutput) 783 } 784 785 // The tags to apply to the resources during launch. See Tag Specifications below for more details. 786 func (o LaunchTemplateOutput) TagSpecifications() LaunchTemplateTagSpecificationArrayOutput { 787 return o.ApplyT(func(v *LaunchTemplate) LaunchTemplateTagSpecificationArrayOutput { return v.TagSpecifications }).(LaunchTemplateTagSpecificationArrayOutput) 788 } 789 790 // A map of tags to assign to the launch template. If configured with a provider `defaultTags` configuration block present, tags with matching keys will overwrite those defined at the provider-level. 791 func (o LaunchTemplateOutput) Tags() pulumi.StringMapOutput { 792 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringMapOutput { return v.Tags }).(pulumi.StringMapOutput) 793 } 794 795 // A map of tags assigned to the resource, including those inherited from the provider `defaultTags` configuration block. 796 // 797 // Deprecated: Please use `tags` instead. 798 func (o LaunchTemplateOutput) TagsAll() pulumi.StringMapOutput { 799 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringMapOutput { return v.TagsAll }).(pulumi.StringMapOutput) 800 } 801 802 // Whether to update Default Version each update. Conflicts with `defaultVersion`. 803 func (o LaunchTemplateOutput) UpdateDefaultVersion() pulumi.BoolPtrOutput { 804 return o.ApplyT(func(v *LaunchTemplate) pulumi.BoolPtrOutput { return v.UpdateDefaultVersion }).(pulumi.BoolPtrOutput) 805 } 806 807 // The base64-encoded user data to provide when launching the instance. 808 func (o LaunchTemplateOutput) UserData() pulumi.StringPtrOutput { 809 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringPtrOutput { return v.UserData }).(pulumi.StringPtrOutput) 810 } 811 812 // A list of security group IDs to associate with. Conflicts with `network_interfaces.security_groups` 813 func (o LaunchTemplateOutput) VpcSecurityGroupIds() pulumi.StringArrayOutput { 814 return o.ApplyT(func(v *LaunchTemplate) pulumi.StringArrayOutput { return v.VpcSecurityGroupIds }).(pulumi.StringArrayOutput) 815 } 816 817 type LaunchTemplateArrayOutput struct{ *pulumi.OutputState } 818 819 func (LaunchTemplateArrayOutput) ElementType() reflect.Type { 820 return reflect.TypeOf((*[]*LaunchTemplate)(nil)).Elem() 821 } 822 823 func (o LaunchTemplateArrayOutput) ToLaunchTemplateArrayOutput() LaunchTemplateArrayOutput { 824 return o 825 } 826 827 func (o LaunchTemplateArrayOutput) ToLaunchTemplateArrayOutputWithContext(ctx context.Context) LaunchTemplateArrayOutput { 828 return o 829 } 830 831 func (o LaunchTemplateArrayOutput) Index(i pulumi.IntInput) LaunchTemplateOutput { 832 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *LaunchTemplate { 833 return vs[0].([]*LaunchTemplate)[vs[1].(int)] 834 }).(LaunchTemplateOutput) 835 } 836 837 type LaunchTemplateMapOutput struct{ *pulumi.OutputState } 838 839 func (LaunchTemplateMapOutput) ElementType() reflect.Type { 840 return reflect.TypeOf((*map[string]*LaunchTemplate)(nil)).Elem() 841 } 842 843 func (o LaunchTemplateMapOutput) ToLaunchTemplateMapOutput() LaunchTemplateMapOutput { 844 return o 845 } 846 847 func (o LaunchTemplateMapOutput) ToLaunchTemplateMapOutputWithContext(ctx context.Context) LaunchTemplateMapOutput { 848 return o 849 } 850 851 func (o LaunchTemplateMapOutput) MapIndex(k pulumi.StringInput) LaunchTemplateOutput { 852 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *LaunchTemplate { 853 return vs[0].(map[string]*LaunchTemplate)[vs[1].(string)] 854 }).(LaunchTemplateOutput) 855 } 856 857 func init() { 858 pulumi.RegisterInputType(reflect.TypeOf((*LaunchTemplateInput)(nil)).Elem(), &LaunchTemplate{}) 859 pulumi.RegisterInputType(reflect.TypeOf((*LaunchTemplateArrayInput)(nil)).Elem(), LaunchTemplateArray{}) 860 pulumi.RegisterInputType(reflect.TypeOf((*LaunchTemplateMapInput)(nil)).Elem(), LaunchTemplateMap{}) 861 pulumi.RegisterOutputType(LaunchTemplateOutput{}) 862 pulumi.RegisterOutputType(LaunchTemplateArrayOutput{}) 863 pulumi.RegisterOutputType(LaunchTemplateMapOutput{}) 864 }