github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/opsworks/instance.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 opsworks 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Provides an OpsWorks instance resource. 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/opsworks" 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 := opsworks.NewInstance(ctx, "my-instance", &opsworks.InstanceArgs{ 33 // StackId: pulumi.Any(main.Id), 34 // LayerIds: pulumi.StringArray{ 35 // my_layer.Id, 36 // }, 37 // InstanceType: pulumi.String("t2.micro"), 38 // Os: pulumi.String("Amazon Linux 2015.09"), 39 // State: pulumi.String("stopped"), 40 // }) 41 // if err != nil { 42 // return err 43 // } 44 // return nil 45 // }) 46 // } 47 // 48 // ``` 49 // <!--End PulumiCodeChooser --> 50 // 51 // ## Block devices 52 // 53 // Each of the `*_block_device` attributes controls a portion of the AWS 54 // Instance's "Block Device Mapping". It's a good idea to familiarize yourself with [AWS's Block Device 55 // Mapping docs](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/block-device-mapping-concepts.html) 56 // to understand the implications of using these attributes. 57 // 58 // ### `ebsBlockDevice` 59 // 60 // * `deleteOnTermination` - (Optional) Whether the volume should be destroyed on instance termination. Default is `true`. 61 // * `deviceName` - (Required) Name of the device to mount. 62 // * `iops` - (Optional) Amount of provisioned [IOPS](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). This must be set with a `volumeType` of `io1`. 63 // * `snapshotId` - (Optional) Snapshot ID to mount. 64 // * `volumeSize` - (Optional) Size of the volume in gigabytes. 65 // * `volumeType` - (Optional) Type of volume. Valid values are `standard`, `gp2`, or `io1`. Default is `standard`. 66 // 67 // Modifying any `ebsBlockDevice` currently requires resource replacement. 68 // 69 // ### `ephemeralBlockDevice` 70 // 71 // * `deviceName` - Name of the block device to mount on the instance. 72 // * `virtualName` - The [Instance Store Device Name](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#InstanceStoreDeviceNames) (e.g., `ephemeral0`). 73 // 74 // Each AWS Instance type has a different set of Instance Store block devices 75 // available for attachment. AWS [publishes a 76 // list](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/InstanceStorage.html#StorageOnInstanceTypes) 77 // of which ephemeral devices are available on each type. The devices are always 78 // identified by the `virtualName` in the format `ephemeral{0..N}`. 79 // 80 // ### `rootBlockDevice` 81 // 82 // * `deleteOnTermination` - (Optional) Whether the volume should be destroyed on instance termination. Default is `true`. 83 // * `iops` - (Optional) Amount of provisioned [IOPS](http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-io-characteristics.html). This must be set with a `volumeType` of `io1`. 84 // * `volumeSize` - (Optional) Size of the volume in gigabytes. 85 // * `volumeType` - (Optional) Type of volume. Valid values are `standard`, `gp2`, or `io1`. Default is `standard`. 86 // 87 // Modifying any of the `rootBlockDevice` settings requires resource 88 // replacement. 89 // 90 // > **NOTE:** Currently, changes to `*_block_device` configuration of _existing_ 91 // resources cannot be automatically detected by this provider. After making updates 92 // to block device configuration, resource recreation can be manually triggered by 93 // using the [`up` command with the --replace argument](https://www.pulumi.com/docs/reference/cli/pulumi_up/). 94 // 95 // ## Import 96 // 97 // Using `pulumi import`, import Opsworks Instances using the instance `id`. For example: 98 // 99 // ```sh 100 // $ pulumi import aws:opsworks/instance:Instance my_instance 4d6d1710-ded9-42a1-b08e-b043ad7af1e2 101 // ``` 102 type Instance struct { 103 pulumi.CustomResourceState 104 105 // OpsWorks agent to install. Default is `INHERIT`. 106 AgentVersion pulumi.StringPtrOutput `pulumi:"agentVersion"` 107 // AMI to use for the instance. If an AMI is specified, `os` must be `Custom`. 108 AmiId pulumi.StringOutput `pulumi:"amiId"` 109 // Machine architecture for created instances. Valid values are `x8664` or `i386`. The default is `x8664`. 110 Architecture pulumi.StringPtrOutput `pulumi:"architecture"` 111 // Creates load-based or time-based instances. Valid values are `load`, `timer`. 112 AutoScalingType pulumi.StringPtrOutput `pulumi:"autoScalingType"` 113 // Name of the availability zone where instances will be created by default. 114 AvailabilityZone pulumi.StringOutput `pulumi:"availabilityZone"` 115 // Time that the instance was created. 116 CreatedAt pulumi.StringOutput `pulumi:"createdAt"` 117 // Whether to delete EBS volume on deletion. Default is `true`. 118 DeleteEbs pulumi.BoolPtrOutput `pulumi:"deleteEbs"` 119 // Whether to delete the Elastic IP on deletion. 120 DeleteEip pulumi.BoolPtrOutput `pulumi:"deleteEip"` 121 // Configuration block for additional EBS block devices to attach to the instance. See Block Devices below. 122 EbsBlockDevices InstanceEbsBlockDeviceArrayOutput `pulumi:"ebsBlockDevices"` 123 // Whether the launched EC2 instance will be EBS-optimized. 124 EbsOptimized pulumi.BoolPtrOutput `pulumi:"ebsOptimized"` 125 // EC2 instance ID. 126 Ec2InstanceId pulumi.StringOutput `pulumi:"ec2InstanceId"` 127 // ECS cluster's ARN for container instances. 128 EcsClusterArn pulumi.StringOutput `pulumi:"ecsClusterArn"` 129 // Instance Elastic IP address. 130 ElasticIp pulumi.StringOutput `pulumi:"elasticIp"` 131 // Configuration block for ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below. 132 EphemeralBlockDevices InstanceEphemeralBlockDeviceArrayOutput `pulumi:"ephemeralBlockDevices"` 133 // Instance's host name. 134 Hostname pulumi.StringOutput `pulumi:"hostname"` 135 // For registered instances, infrastructure class: ec2 or on-premises. 136 InfrastructureClass pulumi.StringOutput `pulumi:"infrastructureClass"` 137 // Controls where to install OS and package updates when the instance boots. Default is `true`. 138 InstallUpdatesOnBoot pulumi.BoolPtrOutput `pulumi:"installUpdatesOnBoot"` 139 // ARN of the instance's IAM profile. 140 InstanceProfileArn pulumi.StringOutput `pulumi:"instanceProfileArn"` 141 // Type of instance to start. 142 InstanceType pulumi.StringPtrOutput `pulumi:"instanceType"` 143 // ID of the last service error. 144 LastServiceErrorId pulumi.StringOutput `pulumi:"lastServiceErrorId"` 145 // List of the layers the instance will belong to. 146 LayerIds pulumi.StringArrayOutput `pulumi:"layerIds"` 147 // Name of operating system that will be installed. 148 Os pulumi.StringOutput `pulumi:"os"` 149 // Instance's platform. 150 Platform pulumi.StringOutput `pulumi:"platform"` 151 // Private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC. 152 PrivateDns pulumi.StringOutput `pulumi:"privateDns"` 153 // Private IP address assigned to the instance. 154 PrivateIp pulumi.StringOutput `pulumi:"privateIp"` 155 // Public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC. 156 PublicDns pulumi.StringOutput `pulumi:"publicDns"` 157 // Public IP address assigned to the instance, if applicable. 158 PublicIp pulumi.StringOutput `pulumi:"publicIp"` 159 // For registered instances, who performed the registration. 160 RegisteredBy pulumi.StringOutput `pulumi:"registeredBy"` 161 // Instance's reported AWS OpsWorks Stacks agent version. 162 ReportedAgentVersion pulumi.StringOutput `pulumi:"reportedAgentVersion"` 163 // For registered instances, the reported operating system family. 164 ReportedOsFamily pulumi.StringOutput `pulumi:"reportedOsFamily"` 165 // For registered instances, the reported operating system name. 166 ReportedOsName pulumi.StringOutput `pulumi:"reportedOsName"` 167 // For registered instances, the reported operating system version. 168 ReportedOsVersion pulumi.StringOutput `pulumi:"reportedOsVersion"` 169 // Configuration block for the root block device of the instance. See Block Devices below. 170 RootBlockDevices InstanceRootBlockDeviceArrayOutput `pulumi:"rootBlockDevices"` 171 // Name of the type of root device instances will have by default. Valid values are `ebs` or `instance-store`. 172 RootDeviceType pulumi.StringOutput `pulumi:"rootDeviceType"` 173 // Root device volume ID. 174 RootDeviceVolumeId pulumi.StringOutput `pulumi:"rootDeviceVolumeId"` 175 // Associated security groups. 176 SecurityGroupIds pulumi.StringArrayOutput `pulumi:"securityGroupIds"` 177 // SSH key's Deep Security Agent (DSA) fingerprint. 178 SshHostDsaKeyFingerprint pulumi.StringOutput `pulumi:"sshHostDsaKeyFingerprint"` 179 // SSH key's RSA fingerprint. 180 SshHostRsaKeyFingerprint pulumi.StringOutput `pulumi:"sshHostRsaKeyFingerprint"` 181 // Name of the SSH keypair that instances will have by default. 182 SshKeyName pulumi.StringOutput `pulumi:"sshKeyName"` 183 // Identifier of the stack the instance will belong to. 184 // 185 // The following arguments are optional: 186 StackId pulumi.StringOutput `pulumi:"stackId"` 187 // Desired state of the instance. Valid values are `running` or `stopped`. 188 State pulumi.StringPtrOutput `pulumi:"state"` 189 // Instance status. Will be one of `booting`, `connectionLost`, `online`, `pending`, `rebooting`, `requested`, `runningSetup`, `setupFailed`, `shuttingDown`, `startFailed`, `stopFailed`, `stopped`, `stopping`, `terminated`, or `terminating`. 190 Status pulumi.StringOutput `pulumi:"status"` 191 // Subnet ID to attach to. 192 SubnetId pulumi.StringOutput `pulumi:"subnetId"` 193 // Instance tenancy to use. Valid values are `default`, `dedicated` or `host`. 194 Tenancy pulumi.StringOutput `pulumi:"tenancy"` 195 // Keyword to choose what virtualization mode created instances will use. Valid values are `paravirtual` or `hvm`. 196 VirtualizationType pulumi.StringOutput `pulumi:"virtualizationType"` 197 } 198 199 // NewInstance registers a new resource with the given unique name, arguments, and options. 200 func NewInstance(ctx *pulumi.Context, 201 name string, args *InstanceArgs, opts ...pulumi.ResourceOption) (*Instance, error) { 202 if args == nil { 203 return nil, errors.New("missing one or more required arguments") 204 } 205 206 if args.LayerIds == nil { 207 return nil, errors.New("invalid value for required argument 'LayerIds'") 208 } 209 if args.StackId == nil { 210 return nil, errors.New("invalid value for required argument 'StackId'") 211 } 212 opts = internal.PkgResourceDefaultOpts(opts) 213 var resource Instance 214 err := ctx.RegisterResource("aws:opsworks/instance:Instance", name, args, &resource, opts...) 215 if err != nil { 216 return nil, err 217 } 218 return &resource, nil 219 } 220 221 // GetInstance gets an existing Instance resource's state with the given name, ID, and optional 222 // state properties that are used to uniquely qualify the lookup (nil if not required). 223 func GetInstance(ctx *pulumi.Context, 224 name string, id pulumi.IDInput, state *InstanceState, opts ...pulumi.ResourceOption) (*Instance, error) { 225 var resource Instance 226 err := ctx.ReadResource("aws:opsworks/instance:Instance", name, id, state, &resource, opts...) 227 if err != nil { 228 return nil, err 229 } 230 return &resource, nil 231 } 232 233 // Input properties used for looking up and filtering Instance resources. 234 type instanceState struct { 235 // OpsWorks agent to install. Default is `INHERIT`. 236 AgentVersion *string `pulumi:"agentVersion"` 237 // AMI to use for the instance. If an AMI is specified, `os` must be `Custom`. 238 AmiId *string `pulumi:"amiId"` 239 // Machine architecture for created instances. Valid values are `x8664` or `i386`. The default is `x8664`. 240 Architecture *string `pulumi:"architecture"` 241 // Creates load-based or time-based instances. Valid values are `load`, `timer`. 242 AutoScalingType *string `pulumi:"autoScalingType"` 243 // Name of the availability zone where instances will be created by default. 244 AvailabilityZone *string `pulumi:"availabilityZone"` 245 // Time that the instance was created. 246 CreatedAt *string `pulumi:"createdAt"` 247 // Whether to delete EBS volume on deletion. Default is `true`. 248 DeleteEbs *bool `pulumi:"deleteEbs"` 249 // Whether to delete the Elastic IP on deletion. 250 DeleteEip *bool `pulumi:"deleteEip"` 251 // Configuration block for additional EBS block devices to attach to the instance. See Block Devices below. 252 EbsBlockDevices []InstanceEbsBlockDevice `pulumi:"ebsBlockDevices"` 253 // Whether the launched EC2 instance will be EBS-optimized. 254 EbsOptimized *bool `pulumi:"ebsOptimized"` 255 // EC2 instance ID. 256 Ec2InstanceId *string `pulumi:"ec2InstanceId"` 257 // ECS cluster's ARN for container instances. 258 EcsClusterArn *string `pulumi:"ecsClusterArn"` 259 // Instance Elastic IP address. 260 ElasticIp *string `pulumi:"elasticIp"` 261 // Configuration block for ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below. 262 EphemeralBlockDevices []InstanceEphemeralBlockDevice `pulumi:"ephemeralBlockDevices"` 263 // Instance's host name. 264 Hostname *string `pulumi:"hostname"` 265 // For registered instances, infrastructure class: ec2 or on-premises. 266 InfrastructureClass *string `pulumi:"infrastructureClass"` 267 // Controls where to install OS and package updates when the instance boots. Default is `true`. 268 InstallUpdatesOnBoot *bool `pulumi:"installUpdatesOnBoot"` 269 // ARN of the instance's IAM profile. 270 InstanceProfileArn *string `pulumi:"instanceProfileArn"` 271 // Type of instance to start. 272 InstanceType *string `pulumi:"instanceType"` 273 // ID of the last service error. 274 LastServiceErrorId *string `pulumi:"lastServiceErrorId"` 275 // List of the layers the instance will belong to. 276 LayerIds []string `pulumi:"layerIds"` 277 // Name of operating system that will be installed. 278 Os *string `pulumi:"os"` 279 // Instance's platform. 280 Platform *string `pulumi:"platform"` 281 // Private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC. 282 PrivateDns *string `pulumi:"privateDns"` 283 // Private IP address assigned to the instance. 284 PrivateIp *string `pulumi:"privateIp"` 285 // Public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC. 286 PublicDns *string `pulumi:"publicDns"` 287 // Public IP address assigned to the instance, if applicable. 288 PublicIp *string `pulumi:"publicIp"` 289 // For registered instances, who performed the registration. 290 RegisteredBy *string `pulumi:"registeredBy"` 291 // Instance's reported AWS OpsWorks Stacks agent version. 292 ReportedAgentVersion *string `pulumi:"reportedAgentVersion"` 293 // For registered instances, the reported operating system family. 294 ReportedOsFamily *string `pulumi:"reportedOsFamily"` 295 // For registered instances, the reported operating system name. 296 ReportedOsName *string `pulumi:"reportedOsName"` 297 // For registered instances, the reported operating system version. 298 ReportedOsVersion *string `pulumi:"reportedOsVersion"` 299 // Configuration block for the root block device of the instance. See Block Devices below. 300 RootBlockDevices []InstanceRootBlockDevice `pulumi:"rootBlockDevices"` 301 // Name of the type of root device instances will have by default. Valid values are `ebs` or `instance-store`. 302 RootDeviceType *string `pulumi:"rootDeviceType"` 303 // Root device volume ID. 304 RootDeviceVolumeId *string `pulumi:"rootDeviceVolumeId"` 305 // Associated security groups. 306 SecurityGroupIds []string `pulumi:"securityGroupIds"` 307 // SSH key's Deep Security Agent (DSA) fingerprint. 308 SshHostDsaKeyFingerprint *string `pulumi:"sshHostDsaKeyFingerprint"` 309 // SSH key's RSA fingerprint. 310 SshHostRsaKeyFingerprint *string `pulumi:"sshHostRsaKeyFingerprint"` 311 // Name of the SSH keypair that instances will have by default. 312 SshKeyName *string `pulumi:"sshKeyName"` 313 // Identifier of the stack the instance will belong to. 314 // 315 // The following arguments are optional: 316 StackId *string `pulumi:"stackId"` 317 // Desired state of the instance. Valid values are `running` or `stopped`. 318 State *string `pulumi:"state"` 319 // Instance status. Will be one of `booting`, `connectionLost`, `online`, `pending`, `rebooting`, `requested`, `runningSetup`, `setupFailed`, `shuttingDown`, `startFailed`, `stopFailed`, `stopped`, `stopping`, `terminated`, or `terminating`. 320 Status *string `pulumi:"status"` 321 // Subnet ID to attach to. 322 SubnetId *string `pulumi:"subnetId"` 323 // Instance tenancy to use. Valid values are `default`, `dedicated` or `host`. 324 Tenancy *string `pulumi:"tenancy"` 325 // Keyword to choose what virtualization mode created instances will use. Valid values are `paravirtual` or `hvm`. 326 VirtualizationType *string `pulumi:"virtualizationType"` 327 } 328 329 type InstanceState struct { 330 // OpsWorks agent to install. Default is `INHERIT`. 331 AgentVersion pulumi.StringPtrInput 332 // AMI to use for the instance. If an AMI is specified, `os` must be `Custom`. 333 AmiId pulumi.StringPtrInput 334 // Machine architecture for created instances. Valid values are `x8664` or `i386`. The default is `x8664`. 335 Architecture pulumi.StringPtrInput 336 // Creates load-based or time-based instances. Valid values are `load`, `timer`. 337 AutoScalingType pulumi.StringPtrInput 338 // Name of the availability zone where instances will be created by default. 339 AvailabilityZone pulumi.StringPtrInput 340 // Time that the instance was created. 341 CreatedAt pulumi.StringPtrInput 342 // Whether to delete EBS volume on deletion. Default is `true`. 343 DeleteEbs pulumi.BoolPtrInput 344 // Whether to delete the Elastic IP on deletion. 345 DeleteEip pulumi.BoolPtrInput 346 // Configuration block for additional EBS block devices to attach to the instance. See Block Devices below. 347 EbsBlockDevices InstanceEbsBlockDeviceArrayInput 348 // Whether the launched EC2 instance will be EBS-optimized. 349 EbsOptimized pulumi.BoolPtrInput 350 // EC2 instance ID. 351 Ec2InstanceId pulumi.StringPtrInput 352 // ECS cluster's ARN for container instances. 353 EcsClusterArn pulumi.StringPtrInput 354 // Instance Elastic IP address. 355 ElasticIp pulumi.StringPtrInput 356 // Configuration block for ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below. 357 EphemeralBlockDevices InstanceEphemeralBlockDeviceArrayInput 358 // Instance's host name. 359 Hostname pulumi.StringPtrInput 360 // For registered instances, infrastructure class: ec2 or on-premises. 361 InfrastructureClass pulumi.StringPtrInput 362 // Controls where to install OS and package updates when the instance boots. Default is `true`. 363 InstallUpdatesOnBoot pulumi.BoolPtrInput 364 // ARN of the instance's IAM profile. 365 InstanceProfileArn pulumi.StringPtrInput 366 // Type of instance to start. 367 InstanceType pulumi.StringPtrInput 368 // ID of the last service error. 369 LastServiceErrorId pulumi.StringPtrInput 370 // List of the layers the instance will belong to. 371 LayerIds pulumi.StringArrayInput 372 // Name of operating system that will be installed. 373 Os pulumi.StringPtrInput 374 // Instance's platform. 375 Platform pulumi.StringPtrInput 376 // Private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC. 377 PrivateDns pulumi.StringPtrInput 378 // Private IP address assigned to the instance. 379 PrivateIp pulumi.StringPtrInput 380 // Public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC. 381 PublicDns pulumi.StringPtrInput 382 // Public IP address assigned to the instance, if applicable. 383 PublicIp pulumi.StringPtrInput 384 // For registered instances, who performed the registration. 385 RegisteredBy pulumi.StringPtrInput 386 // Instance's reported AWS OpsWorks Stacks agent version. 387 ReportedAgentVersion pulumi.StringPtrInput 388 // For registered instances, the reported operating system family. 389 ReportedOsFamily pulumi.StringPtrInput 390 // For registered instances, the reported operating system name. 391 ReportedOsName pulumi.StringPtrInput 392 // For registered instances, the reported operating system version. 393 ReportedOsVersion pulumi.StringPtrInput 394 // Configuration block for the root block device of the instance. See Block Devices below. 395 RootBlockDevices InstanceRootBlockDeviceArrayInput 396 // Name of the type of root device instances will have by default. Valid values are `ebs` or `instance-store`. 397 RootDeviceType pulumi.StringPtrInput 398 // Root device volume ID. 399 RootDeviceVolumeId pulumi.StringPtrInput 400 // Associated security groups. 401 SecurityGroupIds pulumi.StringArrayInput 402 // SSH key's Deep Security Agent (DSA) fingerprint. 403 SshHostDsaKeyFingerprint pulumi.StringPtrInput 404 // SSH key's RSA fingerprint. 405 SshHostRsaKeyFingerprint pulumi.StringPtrInput 406 // Name of the SSH keypair that instances will have by default. 407 SshKeyName pulumi.StringPtrInput 408 // Identifier of the stack the instance will belong to. 409 // 410 // The following arguments are optional: 411 StackId pulumi.StringPtrInput 412 // Desired state of the instance. Valid values are `running` or `stopped`. 413 State pulumi.StringPtrInput 414 // Instance status. Will be one of `booting`, `connectionLost`, `online`, `pending`, `rebooting`, `requested`, `runningSetup`, `setupFailed`, `shuttingDown`, `startFailed`, `stopFailed`, `stopped`, `stopping`, `terminated`, or `terminating`. 415 Status pulumi.StringPtrInput 416 // Subnet ID to attach to. 417 SubnetId pulumi.StringPtrInput 418 // Instance tenancy to use. Valid values are `default`, `dedicated` or `host`. 419 Tenancy pulumi.StringPtrInput 420 // Keyword to choose what virtualization mode created instances will use. Valid values are `paravirtual` or `hvm`. 421 VirtualizationType pulumi.StringPtrInput 422 } 423 424 func (InstanceState) ElementType() reflect.Type { 425 return reflect.TypeOf((*instanceState)(nil)).Elem() 426 } 427 428 type instanceArgs struct { 429 // OpsWorks agent to install. Default is `INHERIT`. 430 AgentVersion *string `pulumi:"agentVersion"` 431 // AMI to use for the instance. If an AMI is specified, `os` must be `Custom`. 432 AmiId *string `pulumi:"amiId"` 433 // Machine architecture for created instances. Valid values are `x8664` or `i386`. The default is `x8664`. 434 Architecture *string `pulumi:"architecture"` 435 // Creates load-based or time-based instances. Valid values are `load`, `timer`. 436 AutoScalingType *string `pulumi:"autoScalingType"` 437 // Name of the availability zone where instances will be created by default. 438 AvailabilityZone *string `pulumi:"availabilityZone"` 439 // Time that the instance was created. 440 CreatedAt *string `pulumi:"createdAt"` 441 // Whether to delete EBS volume on deletion. Default is `true`. 442 DeleteEbs *bool `pulumi:"deleteEbs"` 443 // Whether to delete the Elastic IP on deletion. 444 DeleteEip *bool `pulumi:"deleteEip"` 445 // Configuration block for additional EBS block devices to attach to the instance. See Block Devices below. 446 EbsBlockDevices []InstanceEbsBlockDevice `pulumi:"ebsBlockDevices"` 447 // Whether the launched EC2 instance will be EBS-optimized. 448 EbsOptimized *bool `pulumi:"ebsOptimized"` 449 // ECS cluster's ARN for container instances. 450 EcsClusterArn *string `pulumi:"ecsClusterArn"` 451 // Instance Elastic IP address. 452 ElasticIp *string `pulumi:"elasticIp"` 453 // Configuration block for ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below. 454 EphemeralBlockDevices []InstanceEphemeralBlockDevice `pulumi:"ephemeralBlockDevices"` 455 // Instance's host name. 456 Hostname *string `pulumi:"hostname"` 457 // For registered instances, infrastructure class: ec2 or on-premises. 458 InfrastructureClass *string `pulumi:"infrastructureClass"` 459 // Controls where to install OS and package updates when the instance boots. Default is `true`. 460 InstallUpdatesOnBoot *bool `pulumi:"installUpdatesOnBoot"` 461 // ARN of the instance's IAM profile. 462 InstanceProfileArn *string `pulumi:"instanceProfileArn"` 463 // Type of instance to start. 464 InstanceType *string `pulumi:"instanceType"` 465 // List of the layers the instance will belong to. 466 LayerIds []string `pulumi:"layerIds"` 467 // Name of operating system that will be installed. 468 Os *string `pulumi:"os"` 469 // Configuration block for the root block device of the instance. See Block Devices below. 470 RootBlockDevices []InstanceRootBlockDevice `pulumi:"rootBlockDevices"` 471 // Name of the type of root device instances will have by default. Valid values are `ebs` or `instance-store`. 472 RootDeviceType *string `pulumi:"rootDeviceType"` 473 // Associated security groups. 474 SecurityGroupIds []string `pulumi:"securityGroupIds"` 475 // Name of the SSH keypair that instances will have by default. 476 SshKeyName *string `pulumi:"sshKeyName"` 477 // Identifier of the stack the instance will belong to. 478 // 479 // The following arguments are optional: 480 StackId string `pulumi:"stackId"` 481 // Desired state of the instance. Valid values are `running` or `stopped`. 482 State *string `pulumi:"state"` 483 // Instance status. Will be one of `booting`, `connectionLost`, `online`, `pending`, `rebooting`, `requested`, `runningSetup`, `setupFailed`, `shuttingDown`, `startFailed`, `stopFailed`, `stopped`, `stopping`, `terminated`, or `terminating`. 484 Status *string `pulumi:"status"` 485 // Subnet ID to attach to. 486 SubnetId *string `pulumi:"subnetId"` 487 // Instance tenancy to use. Valid values are `default`, `dedicated` or `host`. 488 Tenancy *string `pulumi:"tenancy"` 489 // Keyword to choose what virtualization mode created instances will use. Valid values are `paravirtual` or `hvm`. 490 VirtualizationType *string `pulumi:"virtualizationType"` 491 } 492 493 // The set of arguments for constructing a Instance resource. 494 type InstanceArgs struct { 495 // OpsWorks agent to install. Default is `INHERIT`. 496 AgentVersion pulumi.StringPtrInput 497 // AMI to use for the instance. If an AMI is specified, `os` must be `Custom`. 498 AmiId pulumi.StringPtrInput 499 // Machine architecture for created instances. Valid values are `x8664` or `i386`. The default is `x8664`. 500 Architecture pulumi.StringPtrInput 501 // Creates load-based or time-based instances. Valid values are `load`, `timer`. 502 AutoScalingType pulumi.StringPtrInput 503 // Name of the availability zone where instances will be created by default. 504 AvailabilityZone pulumi.StringPtrInput 505 // Time that the instance was created. 506 CreatedAt pulumi.StringPtrInput 507 // Whether to delete EBS volume on deletion. Default is `true`. 508 DeleteEbs pulumi.BoolPtrInput 509 // Whether to delete the Elastic IP on deletion. 510 DeleteEip pulumi.BoolPtrInput 511 // Configuration block for additional EBS block devices to attach to the instance. See Block Devices below. 512 EbsBlockDevices InstanceEbsBlockDeviceArrayInput 513 // Whether the launched EC2 instance will be EBS-optimized. 514 EbsOptimized pulumi.BoolPtrInput 515 // ECS cluster's ARN for container instances. 516 EcsClusterArn pulumi.StringPtrInput 517 // Instance Elastic IP address. 518 ElasticIp pulumi.StringPtrInput 519 // Configuration block for ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below. 520 EphemeralBlockDevices InstanceEphemeralBlockDeviceArrayInput 521 // Instance's host name. 522 Hostname pulumi.StringPtrInput 523 // For registered instances, infrastructure class: ec2 or on-premises. 524 InfrastructureClass pulumi.StringPtrInput 525 // Controls where to install OS and package updates when the instance boots. Default is `true`. 526 InstallUpdatesOnBoot pulumi.BoolPtrInput 527 // ARN of the instance's IAM profile. 528 InstanceProfileArn pulumi.StringPtrInput 529 // Type of instance to start. 530 InstanceType pulumi.StringPtrInput 531 // List of the layers the instance will belong to. 532 LayerIds pulumi.StringArrayInput 533 // Name of operating system that will be installed. 534 Os pulumi.StringPtrInput 535 // Configuration block for the root block device of the instance. See Block Devices below. 536 RootBlockDevices InstanceRootBlockDeviceArrayInput 537 // Name of the type of root device instances will have by default. Valid values are `ebs` or `instance-store`. 538 RootDeviceType pulumi.StringPtrInput 539 // Associated security groups. 540 SecurityGroupIds pulumi.StringArrayInput 541 // Name of the SSH keypair that instances will have by default. 542 SshKeyName pulumi.StringPtrInput 543 // Identifier of the stack the instance will belong to. 544 // 545 // The following arguments are optional: 546 StackId pulumi.StringInput 547 // Desired state of the instance. Valid values are `running` or `stopped`. 548 State pulumi.StringPtrInput 549 // Instance status. Will be one of `booting`, `connectionLost`, `online`, `pending`, `rebooting`, `requested`, `runningSetup`, `setupFailed`, `shuttingDown`, `startFailed`, `stopFailed`, `stopped`, `stopping`, `terminated`, or `terminating`. 550 Status pulumi.StringPtrInput 551 // Subnet ID to attach to. 552 SubnetId pulumi.StringPtrInput 553 // Instance tenancy to use. Valid values are `default`, `dedicated` or `host`. 554 Tenancy pulumi.StringPtrInput 555 // Keyword to choose what virtualization mode created instances will use. Valid values are `paravirtual` or `hvm`. 556 VirtualizationType pulumi.StringPtrInput 557 } 558 559 func (InstanceArgs) ElementType() reflect.Type { 560 return reflect.TypeOf((*instanceArgs)(nil)).Elem() 561 } 562 563 type InstanceInput interface { 564 pulumi.Input 565 566 ToInstanceOutput() InstanceOutput 567 ToInstanceOutputWithContext(ctx context.Context) InstanceOutput 568 } 569 570 func (*Instance) ElementType() reflect.Type { 571 return reflect.TypeOf((**Instance)(nil)).Elem() 572 } 573 574 func (i *Instance) ToInstanceOutput() InstanceOutput { 575 return i.ToInstanceOutputWithContext(context.Background()) 576 } 577 578 func (i *Instance) ToInstanceOutputWithContext(ctx context.Context) InstanceOutput { 579 return pulumi.ToOutputWithContext(ctx, i).(InstanceOutput) 580 } 581 582 // InstanceArrayInput is an input type that accepts InstanceArray and InstanceArrayOutput values. 583 // You can construct a concrete instance of `InstanceArrayInput` via: 584 // 585 // InstanceArray{ InstanceArgs{...} } 586 type InstanceArrayInput interface { 587 pulumi.Input 588 589 ToInstanceArrayOutput() InstanceArrayOutput 590 ToInstanceArrayOutputWithContext(context.Context) InstanceArrayOutput 591 } 592 593 type InstanceArray []InstanceInput 594 595 func (InstanceArray) ElementType() reflect.Type { 596 return reflect.TypeOf((*[]*Instance)(nil)).Elem() 597 } 598 599 func (i InstanceArray) ToInstanceArrayOutput() InstanceArrayOutput { 600 return i.ToInstanceArrayOutputWithContext(context.Background()) 601 } 602 603 func (i InstanceArray) ToInstanceArrayOutputWithContext(ctx context.Context) InstanceArrayOutput { 604 return pulumi.ToOutputWithContext(ctx, i).(InstanceArrayOutput) 605 } 606 607 // InstanceMapInput is an input type that accepts InstanceMap and InstanceMapOutput values. 608 // You can construct a concrete instance of `InstanceMapInput` via: 609 // 610 // InstanceMap{ "key": InstanceArgs{...} } 611 type InstanceMapInput interface { 612 pulumi.Input 613 614 ToInstanceMapOutput() InstanceMapOutput 615 ToInstanceMapOutputWithContext(context.Context) InstanceMapOutput 616 } 617 618 type InstanceMap map[string]InstanceInput 619 620 func (InstanceMap) ElementType() reflect.Type { 621 return reflect.TypeOf((*map[string]*Instance)(nil)).Elem() 622 } 623 624 func (i InstanceMap) ToInstanceMapOutput() InstanceMapOutput { 625 return i.ToInstanceMapOutputWithContext(context.Background()) 626 } 627 628 func (i InstanceMap) ToInstanceMapOutputWithContext(ctx context.Context) InstanceMapOutput { 629 return pulumi.ToOutputWithContext(ctx, i).(InstanceMapOutput) 630 } 631 632 type InstanceOutput struct{ *pulumi.OutputState } 633 634 func (InstanceOutput) ElementType() reflect.Type { 635 return reflect.TypeOf((**Instance)(nil)).Elem() 636 } 637 638 func (o InstanceOutput) ToInstanceOutput() InstanceOutput { 639 return o 640 } 641 642 func (o InstanceOutput) ToInstanceOutputWithContext(ctx context.Context) InstanceOutput { 643 return o 644 } 645 646 // OpsWorks agent to install. Default is `INHERIT`. 647 func (o InstanceOutput) AgentVersion() pulumi.StringPtrOutput { 648 return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.AgentVersion }).(pulumi.StringPtrOutput) 649 } 650 651 // AMI to use for the instance. If an AMI is specified, `os` must be `Custom`. 652 func (o InstanceOutput) AmiId() pulumi.StringOutput { 653 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.AmiId }).(pulumi.StringOutput) 654 } 655 656 // Machine architecture for created instances. Valid values are `x8664` or `i386`. The default is `x8664`. 657 func (o InstanceOutput) Architecture() pulumi.StringPtrOutput { 658 return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.Architecture }).(pulumi.StringPtrOutput) 659 } 660 661 // Creates load-based or time-based instances. Valid values are `load`, `timer`. 662 func (o InstanceOutput) AutoScalingType() pulumi.StringPtrOutput { 663 return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.AutoScalingType }).(pulumi.StringPtrOutput) 664 } 665 666 // Name of the availability zone where instances will be created by default. 667 func (o InstanceOutput) AvailabilityZone() pulumi.StringOutput { 668 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.AvailabilityZone }).(pulumi.StringOutput) 669 } 670 671 // Time that the instance was created. 672 func (o InstanceOutput) CreatedAt() pulumi.StringOutput { 673 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.CreatedAt }).(pulumi.StringOutput) 674 } 675 676 // Whether to delete EBS volume on deletion. Default is `true`. 677 func (o InstanceOutput) DeleteEbs() pulumi.BoolPtrOutput { 678 return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.DeleteEbs }).(pulumi.BoolPtrOutput) 679 } 680 681 // Whether to delete the Elastic IP on deletion. 682 func (o InstanceOutput) DeleteEip() pulumi.BoolPtrOutput { 683 return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.DeleteEip }).(pulumi.BoolPtrOutput) 684 } 685 686 // Configuration block for additional EBS block devices to attach to the instance. See Block Devices below. 687 func (o InstanceOutput) EbsBlockDevices() InstanceEbsBlockDeviceArrayOutput { 688 return o.ApplyT(func(v *Instance) InstanceEbsBlockDeviceArrayOutput { return v.EbsBlockDevices }).(InstanceEbsBlockDeviceArrayOutput) 689 } 690 691 // Whether the launched EC2 instance will be EBS-optimized. 692 func (o InstanceOutput) EbsOptimized() pulumi.BoolPtrOutput { 693 return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.EbsOptimized }).(pulumi.BoolPtrOutput) 694 } 695 696 // EC2 instance ID. 697 func (o InstanceOutput) Ec2InstanceId() pulumi.StringOutput { 698 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Ec2InstanceId }).(pulumi.StringOutput) 699 } 700 701 // ECS cluster's ARN for container instances. 702 func (o InstanceOutput) EcsClusterArn() pulumi.StringOutput { 703 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.EcsClusterArn }).(pulumi.StringOutput) 704 } 705 706 // Instance Elastic IP address. 707 func (o InstanceOutput) ElasticIp() pulumi.StringOutput { 708 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.ElasticIp }).(pulumi.StringOutput) 709 } 710 711 // Configuration block for ephemeral (also known as "Instance Store") volumes on the instance. See Block Devices below. 712 func (o InstanceOutput) EphemeralBlockDevices() InstanceEphemeralBlockDeviceArrayOutput { 713 return o.ApplyT(func(v *Instance) InstanceEphemeralBlockDeviceArrayOutput { return v.EphemeralBlockDevices }).(InstanceEphemeralBlockDeviceArrayOutput) 714 } 715 716 // Instance's host name. 717 func (o InstanceOutput) Hostname() pulumi.StringOutput { 718 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Hostname }).(pulumi.StringOutput) 719 } 720 721 // For registered instances, infrastructure class: ec2 or on-premises. 722 func (o InstanceOutput) InfrastructureClass() pulumi.StringOutput { 723 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.InfrastructureClass }).(pulumi.StringOutput) 724 } 725 726 // Controls where to install OS and package updates when the instance boots. Default is `true`. 727 func (o InstanceOutput) InstallUpdatesOnBoot() pulumi.BoolPtrOutput { 728 return o.ApplyT(func(v *Instance) pulumi.BoolPtrOutput { return v.InstallUpdatesOnBoot }).(pulumi.BoolPtrOutput) 729 } 730 731 // ARN of the instance's IAM profile. 732 func (o InstanceOutput) InstanceProfileArn() pulumi.StringOutput { 733 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.InstanceProfileArn }).(pulumi.StringOutput) 734 } 735 736 // Type of instance to start. 737 func (o InstanceOutput) InstanceType() pulumi.StringPtrOutput { 738 return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.InstanceType }).(pulumi.StringPtrOutput) 739 } 740 741 // ID of the last service error. 742 func (o InstanceOutput) LastServiceErrorId() pulumi.StringOutput { 743 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.LastServiceErrorId }).(pulumi.StringOutput) 744 } 745 746 // List of the layers the instance will belong to. 747 func (o InstanceOutput) LayerIds() pulumi.StringArrayOutput { 748 return o.ApplyT(func(v *Instance) pulumi.StringArrayOutput { return v.LayerIds }).(pulumi.StringArrayOutput) 749 } 750 751 // Name of operating system that will be installed. 752 func (o InstanceOutput) Os() pulumi.StringOutput { 753 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Os }).(pulumi.StringOutput) 754 } 755 756 // Instance's platform. 757 func (o InstanceOutput) Platform() pulumi.StringOutput { 758 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Platform }).(pulumi.StringOutput) 759 } 760 761 // Private DNS name assigned to the instance. Can only be used inside the Amazon EC2, and only available if you've enabled DNS hostnames for your VPC. 762 func (o InstanceOutput) PrivateDns() pulumi.StringOutput { 763 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.PrivateDns }).(pulumi.StringOutput) 764 } 765 766 // Private IP address assigned to the instance. 767 func (o InstanceOutput) PrivateIp() pulumi.StringOutput { 768 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.PrivateIp }).(pulumi.StringOutput) 769 } 770 771 // Public DNS name assigned to the instance. For EC2-VPC, this is only available if you've enabled DNS hostnames for your VPC. 772 func (o InstanceOutput) PublicDns() pulumi.StringOutput { 773 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.PublicDns }).(pulumi.StringOutput) 774 } 775 776 // Public IP address assigned to the instance, if applicable. 777 func (o InstanceOutput) PublicIp() pulumi.StringOutput { 778 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.PublicIp }).(pulumi.StringOutput) 779 } 780 781 // For registered instances, who performed the registration. 782 func (o InstanceOutput) RegisteredBy() pulumi.StringOutput { 783 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.RegisteredBy }).(pulumi.StringOutput) 784 } 785 786 // Instance's reported AWS OpsWorks Stacks agent version. 787 func (o InstanceOutput) ReportedAgentVersion() pulumi.StringOutput { 788 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.ReportedAgentVersion }).(pulumi.StringOutput) 789 } 790 791 // For registered instances, the reported operating system family. 792 func (o InstanceOutput) ReportedOsFamily() pulumi.StringOutput { 793 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.ReportedOsFamily }).(pulumi.StringOutput) 794 } 795 796 // For registered instances, the reported operating system name. 797 func (o InstanceOutput) ReportedOsName() pulumi.StringOutput { 798 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.ReportedOsName }).(pulumi.StringOutput) 799 } 800 801 // For registered instances, the reported operating system version. 802 func (o InstanceOutput) ReportedOsVersion() pulumi.StringOutput { 803 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.ReportedOsVersion }).(pulumi.StringOutput) 804 } 805 806 // Configuration block for the root block device of the instance. See Block Devices below. 807 func (o InstanceOutput) RootBlockDevices() InstanceRootBlockDeviceArrayOutput { 808 return o.ApplyT(func(v *Instance) InstanceRootBlockDeviceArrayOutput { return v.RootBlockDevices }).(InstanceRootBlockDeviceArrayOutput) 809 } 810 811 // Name of the type of root device instances will have by default. Valid values are `ebs` or `instance-store`. 812 func (o InstanceOutput) RootDeviceType() pulumi.StringOutput { 813 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.RootDeviceType }).(pulumi.StringOutput) 814 } 815 816 // Root device volume ID. 817 func (o InstanceOutput) RootDeviceVolumeId() pulumi.StringOutput { 818 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.RootDeviceVolumeId }).(pulumi.StringOutput) 819 } 820 821 // Associated security groups. 822 func (o InstanceOutput) SecurityGroupIds() pulumi.StringArrayOutput { 823 return o.ApplyT(func(v *Instance) pulumi.StringArrayOutput { return v.SecurityGroupIds }).(pulumi.StringArrayOutput) 824 } 825 826 // SSH key's Deep Security Agent (DSA) fingerprint. 827 func (o InstanceOutput) SshHostDsaKeyFingerprint() pulumi.StringOutput { 828 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.SshHostDsaKeyFingerprint }).(pulumi.StringOutput) 829 } 830 831 // SSH key's RSA fingerprint. 832 func (o InstanceOutput) SshHostRsaKeyFingerprint() pulumi.StringOutput { 833 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.SshHostRsaKeyFingerprint }).(pulumi.StringOutput) 834 } 835 836 // Name of the SSH keypair that instances will have by default. 837 func (o InstanceOutput) SshKeyName() pulumi.StringOutput { 838 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.SshKeyName }).(pulumi.StringOutput) 839 } 840 841 // Identifier of the stack the instance will belong to. 842 // 843 // The following arguments are optional: 844 func (o InstanceOutput) StackId() pulumi.StringOutput { 845 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.StackId }).(pulumi.StringOutput) 846 } 847 848 // Desired state of the instance. Valid values are `running` or `stopped`. 849 func (o InstanceOutput) State() pulumi.StringPtrOutput { 850 return o.ApplyT(func(v *Instance) pulumi.StringPtrOutput { return v.State }).(pulumi.StringPtrOutput) 851 } 852 853 // Instance status. Will be one of `booting`, `connectionLost`, `online`, `pending`, `rebooting`, `requested`, `runningSetup`, `setupFailed`, `shuttingDown`, `startFailed`, `stopFailed`, `stopped`, `stopping`, `terminated`, or `terminating`. 854 func (o InstanceOutput) Status() pulumi.StringOutput { 855 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Status }).(pulumi.StringOutput) 856 } 857 858 // Subnet ID to attach to. 859 func (o InstanceOutput) SubnetId() pulumi.StringOutput { 860 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.SubnetId }).(pulumi.StringOutput) 861 } 862 863 // Instance tenancy to use. Valid values are `default`, `dedicated` or `host`. 864 func (o InstanceOutput) Tenancy() pulumi.StringOutput { 865 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.Tenancy }).(pulumi.StringOutput) 866 } 867 868 // Keyword to choose what virtualization mode created instances will use. Valid values are `paravirtual` or `hvm`. 869 func (o InstanceOutput) VirtualizationType() pulumi.StringOutput { 870 return o.ApplyT(func(v *Instance) pulumi.StringOutput { return v.VirtualizationType }).(pulumi.StringOutput) 871 } 872 873 type InstanceArrayOutput struct{ *pulumi.OutputState } 874 875 func (InstanceArrayOutput) ElementType() reflect.Type { 876 return reflect.TypeOf((*[]*Instance)(nil)).Elem() 877 } 878 879 func (o InstanceArrayOutput) ToInstanceArrayOutput() InstanceArrayOutput { 880 return o 881 } 882 883 func (o InstanceArrayOutput) ToInstanceArrayOutputWithContext(ctx context.Context) InstanceArrayOutput { 884 return o 885 } 886 887 func (o InstanceArrayOutput) Index(i pulumi.IntInput) InstanceOutput { 888 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *Instance { 889 return vs[0].([]*Instance)[vs[1].(int)] 890 }).(InstanceOutput) 891 } 892 893 type InstanceMapOutput struct{ *pulumi.OutputState } 894 895 func (InstanceMapOutput) ElementType() reflect.Type { 896 return reflect.TypeOf((*map[string]*Instance)(nil)).Elem() 897 } 898 899 func (o InstanceMapOutput) ToInstanceMapOutput() InstanceMapOutput { 900 return o 901 } 902 903 func (o InstanceMapOutput) ToInstanceMapOutputWithContext(ctx context.Context) InstanceMapOutput { 904 return o 905 } 906 907 func (o InstanceMapOutput) MapIndex(k pulumi.StringInput) InstanceOutput { 908 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *Instance { 909 return vs[0].(map[string]*Instance)[vs[1].(string)] 910 }).(InstanceOutput) 911 } 912 913 func init() { 914 pulumi.RegisterInputType(reflect.TypeOf((*InstanceInput)(nil)).Elem(), &Instance{}) 915 pulumi.RegisterInputType(reflect.TypeOf((*InstanceArrayInput)(nil)).Elem(), InstanceArray{}) 916 pulumi.RegisterInputType(reflect.TypeOf((*InstanceMapInput)(nil)).Elem(), InstanceMap{}) 917 pulumi.RegisterOutputType(InstanceOutput{}) 918 pulumi.RegisterOutputType(InstanceArrayOutput{}) 919 pulumi.RegisterOutputType(InstanceMapOutput{}) 920 }