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  }