Class ExtraDiskSize


  • public class ExtraDiskSize
    extends com.pulumi.resources.CustomResource
    This resource allows you to resize the disk with additional storage capacity. ***Pre v1.25.0***: Only available for Amazon Web Services (AWS) and it done without downtime ***Post v1.25.0***: Now also available for Google Compute Engine (GCE) and Azure. Introducing a new optional argument called `allow_downtime`. Leaving it out or set it to false will proceed to try and resize the disk without downtime, available for *AWS* and *GCE*. While *Azure* only support swapping the disk, and this argument needs to be set to *true*. `allow_downtime` also makes it possible to circumvent the time rate limit or shrinking the disk. | Cloud Platform | allow_downtime=false | allow_downtime=true | |-----------------------|----------------------|-------------------------------| | amazon-web-services | Expand current disk* | Try to expand, otherwise swap | | google-compute-engine | Expand current disk* | Try to expand, otherwise swap | | azure-arm | Not supported | Swap disk to new size | *Preferable method to use. > **WARNING:** Due to restrictions from cloud providers, it's only possible to resize the disk every 8 hours. Unless the `allow_downtime=true` is set, then the disk will be swapped for a new. Pricing is available at [cloudamqp.com](https://www.cloudamqp.com/) and only available for dedicated subscription plans. ## Example Usage <details> <summary> <b> <i>AWS extra disk size (pre v1.25.0)</i> </b> </summary> ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.cloudamqp.Instance; import com.pulumi.cloudamqp.InstanceArgs; import com.pulumi.cloudamqp.ExtraDiskSize; import com.pulumi.cloudamqp.ExtraDiskSizeArgs; import com.pulumi.cloudamqp.CloudamqpFunctions; import com.pulumi.cloudamqp.inputs.GetNodesArgs; 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 instance = new Instance("instance", InstanceArgs.builder() .plan("bunny-1") .region("amazon-web-services::us-west-2") .build()); var resizeDisk = new ExtraDiskSize("resizeDisk", ExtraDiskSizeArgs.builder() .instanceId(instance.id()) .extraDiskSize(25) .build()); final var nodes = CloudamqpFunctions.getNodes(GetNodesArgs.builder() .instanceId(instance.id()) .build()); } } ``` </details> <details> <summary> <b> <i>AWS extra disk size without downtime</i> </b> </summary> ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.cloudamqp.Instance; import com.pulumi.cloudamqp.InstanceArgs; import com.pulumi.cloudamqp.ExtraDiskSize; import com.pulumi.cloudamqp.ExtraDiskSizeArgs; import com.pulumi.cloudamqp.CloudamqpFunctions; import com.pulumi.cloudamqp.inputs.GetNodesArgs; 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 instance = new Instance("instance", InstanceArgs.builder() .plan("bunny-1") .region("amazon-web-services::us-west-2") .build()); var resizeDisk = new ExtraDiskSize("resizeDisk", ExtraDiskSizeArgs.builder() .instanceId(instance.id()) .extraDiskSize(25) .build()); final var nodes = CloudamqpFunctions.getNodes(GetNodesArgs.builder() .instanceId(instance.id()) .build()); } } ``` </details> <details> <summary> <b> <i>GCE extra disk size without downtime</i> </b> </summary> ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.cloudamqp.Instance; import com.pulumi.cloudamqp.InstanceArgs; import com.pulumi.cloudamqp.ExtraDiskSize; import com.pulumi.cloudamqp.ExtraDiskSizeArgs; import com.pulumi.cloudamqp.CloudamqpFunctions; import com.pulumi.cloudamqp.inputs.GetNodesArgs; 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 instance = new Instance("instance", InstanceArgs.builder() .plan("bunny-1") .region("google-compute-engine::us-central1") .build()); var resizeDisk = new ExtraDiskSize("resizeDisk", ExtraDiskSizeArgs.builder() .instanceId(instance.id()) .extraDiskSize(25) .build()); final var nodes = CloudamqpFunctions.getNodes(GetNodesArgs.builder() .instanceId(instance.id()) .build()); } } ``` </details> <details> <summary> <b> <i>Azure extra disk size with downtime</i> </b> </summary> ```java package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.cloudamqp.Instance; import com.pulumi.cloudamqp.InstanceArgs; import com.pulumi.cloudamqp.ExtraDiskSize; import com.pulumi.cloudamqp.ExtraDiskSizeArgs; import com.pulumi.cloudamqp.CloudamqpFunctions; import com.pulumi.cloudamqp.inputs.GetNodesArgs; 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 instance = new Instance("instance", InstanceArgs.builder() .plan("bunny-1") .region("azure-arm::centralus") .build()); var resizeDisk = new ExtraDiskSize("resizeDisk", ExtraDiskSizeArgs.builder() .instanceId(instance.id()) .extraDiskSize(25) .allowDowntime(true) .build()); final var nodes = CloudamqpFunctions.getNodes(GetNodesArgs.builder() .instanceId(instance.id()) .build()); } } ``` </details> ## Attributes reference All attributes reference are computed * `id` - The identifier for this resource. * `nodes` - An array of node information. Each `nodes` block consists of the fields documented below. *** The `nodes` block consist of * `name` - Name of the node. * `disk_size` - Subscription plan disk size * `additional_disk_size` - Additional added disk size ***Note:*** *Total disk size = disk_size + additional_disk_size* ## Dependency This data source depends on CloudAMQP instance identifier, `cloudamqp_instance.instance.id`. ## Import Not possible to import this resource.
    • 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
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> allowDowntime()  
      com.pulumi.core.Output<java.lang.Integer> extraDiskSize()  
      static ExtraDiskSize get​(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, ExtraDiskSizeState 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.lang.Integer> instanceId()  
      com.pulumi.core.Output<java.util.List<ExtraDiskSizeNode>> nodes()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> sleep()  
      com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> timeout()  
      • 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

      • ExtraDiskSize

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

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

        public ExtraDiskSize​(java.lang.String name,
                             ExtraDiskSizeArgs 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

      • allowDowntime

        public com.pulumi.core.Output<java.util.Optional<java.lang.Boolean>> allowDowntime()
        Returns:
        When resizing the disk, allow cluster downtime if necessary. Default set to false. Required when hosting in *Azure*.
      • extraDiskSize

        public com.pulumi.core.Output<java.lang.Integer> extraDiskSize()
        Returns:
        Extra disk size in GB. Supported values: 0, 25, 50, 100, 250, 500, 1000, 2000
      • instanceId

        public com.pulumi.core.Output<java.lang.Integer> instanceId()
        Returns:
        The CloudAMQP instance ID.
      • sleep

        public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> sleep()
        Returns:
        Configurable sleep time in seconds between retries for resizing the disk. Default set to 30 seconds.
      • timeout

        public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> timeout()
        Returns:
        Configurable timeout time in seconds for resizing the disk. Default set to 1800 seconds. ***Note:*** `allow_downtime`, `sleep`, `timeout` only available from v1.25.0.
      • get

        public static ExtraDiskSize get​(java.lang.String name,
                                        com.pulumi.core.Output<java.lang.String> id,
                                        @Nullable
                                        ExtraDiskSizeState 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.