Class Instance


  • public class Instance
    extends com.pulumi.resources.CustomResource
    Provides a Lightsail Instance. Amazon Lightsail is a service to provide easy virtual private servers with custom software already setup. See [What is Amazon Lightsail?](https://lightsail.aws.amazon.com/ls/docs/getting-started/article/what-is-amazon-lightsail) for more information. > **Note:** Lightsail is currently only supported in a limited number of AWS Regions, please see ["Regions and Availability Zones in Amazon Lightsail"](https://lightsail.aws.amazon.com/ls/docs/overview/article/understanding-regions-and-availability-zones-in-amazon-lightsail) for more details ## Example Usage ### Basic Usage <!--Start PulumiCodeChooser --> ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lightsail.Instance; import com.pulumi.aws.lightsail.InstanceArgs; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var gitlabTest = new Instance("gitlabTest", InstanceArgs.builder() .name("custom_gitlab") .availabilityZone("us-east-1b") .blueprintId("amazon_linux_2") .bundleId("nano_1_0") .keyPairName("some_key_name") .tags(Map.of("foo", "bar")) .build()); } } ``` <!--End PulumiCodeChooser --> ### Example With User Data Lightsail user data is handled differently than ec2 user data. Lightsail user data only accepts a single lined string. The below example shows installing apache and creating the index page. <!--Start PulumiCodeChooser --> ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lightsail.Instance; import com.pulumi.aws.lightsail.InstanceArgs; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var custom = new Instance("custom", InstanceArgs.builder() .name("custom") .availabilityZone("us-east-1b") .blueprintId("amazon_linux_2") .bundleId("nano_1_0") .userData("sudo yum install -y httpd && sudo systemctl start httpd && sudo systemctl enable httpd && echo '<h1>Deployed via Pulumi</h1>' | sudo tee /var/www/html/index.html") .build()); } } ``` <!--End PulumiCodeChooser --> ### Enable Auto Snapshots <!--Start PulumiCodeChooser --> ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.lightsail.Instance; import com.pulumi.aws.lightsail.InstanceArgs; import com.pulumi.aws.lightsail.inputs.InstanceAddOnArgs; import java.util.List; import java.util.ArrayList; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { var test = new Instance("test", InstanceArgs.builder() .name("custom_instance") .availabilityZone("us-east-1b") .blueprintId("amazon_linux_2") .bundleId("nano_1_0") .addOn(InstanceAddOnArgs.builder() .type("AutoSnapshot") .snapshotTime("06:00") .status("Enabled") .build()) .tags(Map.of("foo", "bar")) .build()); } } ``` <!--End PulumiCodeChooser --> ## Import Using `pulumi import`, import Lightsail Instances using their name. For example: ```sh $ pulumi import aws:lightsail/instance:Instance gitlab_test 'custom_gitlab' ```
    • Nested Class Summary

      • Nested classes/interfaces inherited from class com.pulumi.resources.CustomResource

        com.pulumi.resources.CustomResource.CustomResourceInternal
      • Nested classes/interfaces inherited from class com.pulumi.resources.Resource

        com.pulumi.resources.Resource.LazyField<T extends java.lang.Object>, com.pulumi.resources.Resource.LazyFields, com.pulumi.resources.Resource.ResourceInternal
    • Field Summary

      • Fields inherited from class com.pulumi.resources.Resource

        childResources, remote
    • Constructor Summary

      Constructors 
      Constructor Description
      Instance​(java.lang.String name)  
      Instance​(java.lang.String name, InstanceArgs args)  
      Instance​(java.lang.String name, InstanceArgs args, com.pulumi.resources.CustomResourceOptions options)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.pulumi.core.Output<java.util.Optional<InstanceAddOn>> addOn()  
      com.pulumi.core.Output<java.lang.String> arn()  
      com.pulumi.core.Output<java.lang.String> availabilityZone()  
      com.pulumi.core.Output<java.lang.String> blueprintId()  
      com.pulumi.core.Output<java.lang.String> bundleId()  
      com.pulumi.core.Output<java.lang.Integer> cpuCount()  
      com.pulumi.core.Output<java.lang.String> createdAt()  
      static Instance get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, InstanceState state, com.pulumi.resources.CustomResourceOptions options)
      Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> ipAddressType()  
      com.pulumi.core.Output<java.util.List<java.lang.String>> ipv6Addresses()  
      com.pulumi.core.Output<java.lang.Boolean> isStaticIp()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> keyPairName()  
      com.pulumi.core.Output<java.lang.String> name()  
      com.pulumi.core.Output<java.lang.String> privateIpAddress()  
      com.pulumi.core.Output<java.lang.String> publicIpAddress()  
      com.pulumi.core.Output<java.lang.Double> ramSize()  
      com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()  
      com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()  
      com.pulumi.core.Output<java.util.Optional<java.lang.String>> userData()  
      com.pulumi.core.Output<java.lang.String> username()  
      • Methods inherited from class com.pulumi.resources.CustomResource

        getId, id, idFuture
      • Methods inherited from class com.pulumi.resources.Resource

        getChildResources, getResourceName, getResourceType, getUrn, pulumiChildResources, pulumiResourceName, pulumiResourceType, urn
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Constructor Detail

      • Instance

        public Instance​(java.lang.String name)
        Parameters:
        name - The _unique_ name of the resulting resource.
      • Instance

        public Instance​(java.lang.String name,
                        InstanceArgs args)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
      • Instance

        public Instance​(java.lang.String name,
                        InstanceArgs args,
                        @Nullable
                        com.pulumi.resources.CustomResourceOptions options)
        Parameters:
        name - The _unique_ name of the resulting resource.
        args - The arguments to use to populate this resource's properties.
        options - A bag of options that control this resource's behavior.
    • Method Detail

      • addOn

        public com.pulumi.core.Output<java.util.Optional<InstanceAddOn>> addOn()
        Returns:
        The add on configuration for the instance. Detailed below.
      • arn

        public com.pulumi.core.Output<java.lang.String> arn()
        Returns:
        The ARN of the Lightsail instance (matches `id`).
      • availabilityZone

        public com.pulumi.core.Output<java.lang.String> availabilityZone()
        Returns:
        The Availability Zone in which to create your instance. A list of available zones can be obtained using the AWS CLI command: [`aws lightsail get-regions --include-availability-zones`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lightsail/get-regions.html).
      • blueprintId

        public com.pulumi.core.Output<java.lang.String> blueprintId()
        Returns:
        The ID for a virtual private server image. A list of available blueprint IDs can be obtained using the AWS CLI command: [`aws lightsail get-blueprints`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lightsail/get-blueprints.html).
      • bundleId

        public com.pulumi.core.Output<java.lang.String> bundleId()
        Returns:
        The bundle of specification information. A list of available bundle IDs can be obtained using the AWS CLI command: [`aws lightsail get-bundles`](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/lightsail/get-bundles.html).
      • cpuCount

        public com.pulumi.core.Output<java.lang.Integer> cpuCount()
        Returns:
        The number of vCPUs the instance has.
      • createdAt

        public com.pulumi.core.Output<java.lang.String> createdAt()
        Returns:
        The timestamp when the instance was created.
      • ipAddressType

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> ipAddressType()
        Returns:
        The IP address type of the Lightsail Instance. Valid Values: `dualstack` | `ipv4`.
      • ipv6Addresses

        public com.pulumi.core.Output<java.util.List<java.lang.String>> ipv6Addresses()
        Returns:
        List of IPv6 addresses for the Lightsail instance.
      • isStaticIp

        public com.pulumi.core.Output<java.lang.Boolean> isStaticIp()
        Returns:
        A Boolean value indicating whether this instance has a static IP assigned to it.
      • keyPairName

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> keyPairName()
        Returns:
        The name of your key pair. Created in the Lightsail console (cannot use `aws.ec2.KeyPair` at this time)
      • name

        public com.pulumi.core.Output<java.lang.String> name()
        Returns:
        The name of the Lightsail Instance. Names must be unique within each AWS Region in your Lightsail account.
      • privateIpAddress

        public com.pulumi.core.Output<java.lang.String> privateIpAddress()
        Returns:
        The private IP address of the instance.
      • publicIpAddress

        public com.pulumi.core.Output<java.lang.String> publicIpAddress()
        Returns:
        The public IP address of the instance.
      • ramSize

        public com.pulumi.core.Output<java.lang.Double> ramSize()
        Returns:
        The amount of RAM in GB on the instance (e.g., 1.0).
      • tags

        public com.pulumi.core.Output<java.util.Optional<java.util.Map<java.lang.String,​java.lang.String>>> tags()
        Returns:
        A map of tags to assign to the resource. To create a key-only tag, use an empty string as the value. .If configured with a provider `default_tags` configuration block present, tags with matching keys will overwrite those defined at the provider-level.
      • tagsAll

        public com.pulumi.core.Output<java.util.Map<java.lang.String,​java.lang.String>> tagsAll()
        Returns:
        A map of tags assigned to the resource, including those inherited from the provider `default_tags` configuration block.
      • userData

        public com.pulumi.core.Output<java.util.Optional<java.lang.String>> userData()
        Returns:
        Single lined launch script as a string to configure server with additional user data
      • username

        public com.pulumi.core.Output<java.lang.String> username()
        Returns:
        The user name for connecting to the instance (e.g., ec2-user).
      • get

        public static Instance get​(java.lang.String name,
                                   com.pulumi.core.Output<java.lang.String> id,
                                   @Nullable
                                   InstanceState state,
                                   @Nullable
                                   com.pulumi.resources.CustomResourceOptions options)
        Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.
        Parameters:
        name - The _unique_ name of the resulting resource.
        id - The _unique_ provider ID of the resource to lookup.
        state -
        options - Optional settings to control the behavior of the CustomResource.