Package com.pulumi.cloudamqp
Class ExtraDiskSize
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.cloudamqp.ExtraDiskSize
-
public class ExtraDiskSize extends com.pulumi.resources.CustomResourceThis 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.
-
-
Constructor Summary
Constructors Constructor Description ExtraDiskSize(java.lang.String name)ExtraDiskSize(java.lang.String name, ExtraDiskSizeArgs args)ExtraDiskSize(java.lang.String name, ExtraDiskSizeArgs 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<java.lang.Boolean>>allowDowntime()com.pulumi.core.Output<java.lang.Integer>extraDiskSize()static ExtraDiskSizeget(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()
-
-
-
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.
-
nodes
public com.pulumi.core.Output<java.util.List<ExtraDiskSizeNode>> nodes()
-
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.
-
-