import * as pulumi from "@pulumi/pulumi";
import * as inputs from "./types/input";
import * as outputs from "./types/output";
/**
* Run the prechecks, create and start the deployment of an Object store on Prism Central.
*
* > ⚠️ **Warning:** Before deleting the Object Store, make sure to delete all buckets inside it manually.
* Currently, the Terraform provider does not support the Delete Bucket API.
*
* > ⚠️ **Warning:** The Object Store **update** operation does **not** allow modification of any configuration parameters (including `name` and `description`). As per the API design, the update operation is supported exclusively for retrying a failed deployment. No other changes can be performed through update.
* It should be used when the Object Store is in the `OBJECT_STORE_DEPLOYMENT_FAILED` state.
* Triggering an update in this state will attempt to resume the deployment process.
*
* ## Example Usage
*
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as nutanix from "@pierskarsenbarg/nutanix";
* import * as std from "@pulumi/std";
*
* const example = new nutanix.ObjectStoreV2("example", {
* name: "tf-example-os",
* description: "terraform create object store example",
* deploymentVersion: "5.1.1",
* domain: "msp.pc-idbc.nutanix.com",
* numWorkerNodes: 1,
* clusterExtId: "ba250e3e-1db1-4950-917f-a9e2ea35b8e3",
* totalCapacityGib: std.pow({
* base: 1024,
* exponent: 3,
* }).then(invoke => 20 * invoke.result),
* publicNetworkReference: "57c4caf1-67e3-457e-8265-6d872f2a3135",
* publicNetworkIps: [{
* ipv4: {
* value: "10.44.77.123",
* },
* }],
* storageNetworkReference: "57c4caf1-67e3-457e-8265-6d872f2a3135",
* storageNetworkDnsIp: {
* ipv4: {
* value: "10.44.77.124",
* },
* },
* storageNetworkVip: {
* ipv4: {
* value: "10.44.77.125",
* },
* },
* });
* // Deploying Object Store in draft state
* const example_draft = new nutanix.ObjectStoreV2("example-draft", {
* name: "tf-draft-os",
* description: "terraform deploy object store draft example",
* deploymentVersion: "5.1.1",
* domain: "msp.pc-idbc.nutanix.com",
* numWorkerNodes: 1,
* clusterExtId: "ba250e3e-1db1-4950-917f-a9e2ea35b8e3",
* totalCapacityGib: std.pow({
* base: 1024,
* exponent: 3,
* }).then(invoke => 20 * invoke.result),
* publicNetworkReference: "57c4caf1-67e3-457e-8265-6d872f2a3135",
* state: "UNDEPLOYED_OBJECT_STORE",
* publicNetworkIps: [{
* ipv4: {
* value: "10.44.77.126",
* },
* }],
* storageNetworkReference: "57c4caf1-67e3-457e-8265-6d872f2a3135",
* storageNetworkDnsIp: {
* ipv4: {
* value: "10.44.77.127",
* },
* },
* storageNetworkVip: {
* ipv4: {
* value: "10.44.77.128",
* },
* },
* });
* ```
*
*/
export declare class ObjectStoreV2 extends pulumi.CustomResource {
/**
* Get an existing ObjectStoreV2 resource's state with the given name, ID, and optional extra
* properties used to qualify the lookup.
*
* @param name The _unique_ name of the resulting resource.
* @param id The _unique_ provider ID of the resource to lookup.
* @param state Any extra arguments used during the lookup.
* @param opts Optional settings to control the behavior of the CustomResource.
*/
static get(name: string, id: pulumi.Input, state?: ObjectStoreV2State, opts?: pulumi.CustomResourceOptions): ObjectStoreV2;
/**
* Returns true if the given object is an instance of ObjectStoreV2. This is designed to work even
* when multiple copies of the Pulumi SDK have been loaded into the same process.
*/
static isInstance(obj: any): obj is ObjectStoreV2;
/**
* - A list of the UUIDs of the certificates of an Object store.
*/
readonly certificateExtIds: pulumi.Output;
/**
* -(Optional) UUID of the AHV or ESXi cluster.
*/
readonly clusterExtId: pulumi.Output;
/**
* - The time when the Object store was created.
*/
readonly creationTime: pulumi.Output;
/**
* -(Optional) The deployment version of the Object store.
*/
readonly deploymentVersion: pulumi.Output;
/**
* -(Optional) A brief description of the Object store.
*/
readonly description: pulumi.Output;
/**
* -(Optional) The DNS domain/subdomain the Object store belongs to. All the Object stores under one Prism Central must have the same domain name. The domain name must consist of at least 2 parts separated by a '.'. Each part can contain upper and lower case letters, digits, hyphens, or underscores. Each part can be up to 63 characters long. The domain must begin and end with an alphanumeric character. For example - 'objects-0.pc_nutanix.com'.
*/
readonly domain: pulumi.Output;
/**
* - A globally unique identifier of an instance that is suitable for external consumption.
*/
readonly extId: pulumi.Output;
/**
* - The time when the Object store was last updated.
*/
readonly lastUpdateTime: pulumi.Output;
/**
* - A HATEOAS style link for the response. Each link contains a user-friendly name identifying the link and an address for retrieving the particular resource.
*/
readonly links: pulumi.Output;
/**
* -(Optional) Metadata associated with this resource.
*/
readonly metadatas: pulumi.Output;
/**
* -(Required) The name of the Object store.
*/
readonly name: pulumi.Output;
/**
* -(Optional) The number of worker nodes (VMs) to be created for the Object store. Each worker node requires 10 vCPUs and 32 GiB of memory.
*/
readonly numWorkerNodes: pulumi.Output;
/**
* -(Optional) A list of static IP addresses used as public IPs to access the Object store.
*/
readonly publicNetworkIps: pulumi.Output;
/**
* -(Optional) Public network reference of the Object store. This is the subnet UUID for an AHV cluster or the IPAM name for an ESXi cluster.
*/
readonly publicNetworkReference: pulumi.Output;
/**
* -(Optional) The region in which the Object store is deployed.
*/
readonly region: pulumi.Output;
/**
* -(Optional) Enum for the state of the Object store.
* | Enum | Description |
* |----------------------------------------|-----------------------------------------------------------------|
* | `DEPLOYING_OBJECT_STORE` | The Object store is being deployed. |
* | `OBJECT_STORE_DEPLOYMENT_FAILED` | The Object store deployment has failed. |
* | `DELETING_OBJECT_STORE` | A deployed Object store is being deleted. |
* | `OBJECT_STORE_OPERATION_FAILED` | There was an error while performing an operation on the Object store. |
* | `UNDEPLOYED_OBJECT_STORE` | The Object store is not deployed. |
* | `OBJECT_STORE_OPERATION_PENDING` | There is an ongoing operation on the Object store. |
* | `OBJECT_STORE_AVAILABLE` | There are no ongoing operations on the deployed Object store. |
* | `OBJECT_STORE_CERT_CREATION_FAILED` | Creating the Object store certificate has failed. |
* | `CREATING_OBJECT_STORE_CERT` | A certificate is being created for the Object store. |
* | `OBJECT_STORE_DELETION_FAILED` | There was an error deleting the Object store. |
*/
readonly state: pulumi.Output;
/**
* -(Optional) An unique address that identifies a device on the internet or a local network in IPv4 or IPv6 format.
*/
readonly storageNetworkDnsIp: pulumi.Output;
/**
* -(Optional) Reference to the Storage Network of the Object store. This is the subnet UUID for an AHV cluster or the IPAM name for an ESXi cluster.
*/
readonly storageNetworkReference: pulumi.Output;
/**
* -(Optional) An unique address that identifies a device on the internet or a local network in IPv4 or IPv6 format.
*/
readonly storageNetworkVip: pulumi.Output;
/**
* - A globally unique identifier that represents the tenant that owns this entity. The system automatically assigns it, and it and is immutable from an API consumer perspective (some use cases may cause this Id to change - For instance, a use case may require the transfer of ownership of the entity, but these cases are handled automatically on the server).
*/
readonly tenantId: pulumi.Output;
/**
* -(Optional) Size of the Object store in GiB.
*/
readonly totalCapacityGib: pulumi.Output;
/**
* Create a ObjectStoreV2 resource with the given unique name, arguments, and options.
*
* @param name The _unique_ name of the resource.
* @param args The arguments to use to populate this resource's properties.
* @param opts A bag of options that control this resource's behavior.
*/
constructor(name: string, args?: ObjectStoreV2Args, opts?: pulumi.CustomResourceOptions);
}
/**
* Input properties used for looking up and filtering ObjectStoreV2 resources.
*/
export interface ObjectStoreV2State {
/**
* - A list of the UUIDs of the certificates of an Object store.
*/
certificateExtIds?: pulumi.Input[] | undefined>;
/**
* -(Optional) UUID of the AHV or ESXi cluster.
*/
clusterExtId?: pulumi.Input;
/**
* - The time when the Object store was created.
*/
creationTime?: pulumi.Input;
/**
* -(Optional) The deployment version of the Object store.
*/
deploymentVersion?: pulumi.Input;
/**
* -(Optional) A brief description of the Object store.
*/
description?: pulumi.Input;
/**
* -(Optional) The DNS domain/subdomain the Object store belongs to. All the Object stores under one Prism Central must have the same domain name. The domain name must consist of at least 2 parts separated by a '.'. Each part can contain upper and lower case letters, digits, hyphens, or underscores. Each part can be up to 63 characters long. The domain must begin and end with an alphanumeric character. For example - 'objects-0.pc_nutanix.com'.
*/
domain?: pulumi.Input;
/**
* - A globally unique identifier of an instance that is suitable for external consumption.
*/
extId?: pulumi.Input;
/**
* - The time when the Object store was last updated.
*/
lastUpdateTime?: pulumi.Input;
/**
* - A HATEOAS style link for the response. Each link contains a user-friendly name identifying the link and an address for retrieving the particular resource.
*/
links?: pulumi.Input[] | undefined>;
/**
* -(Optional) Metadata associated with this resource.
*/
metadatas?: pulumi.Input[] | undefined>;
/**
* -(Required) The name of the Object store.
*/
name?: pulumi.Input;
/**
* -(Optional) The number of worker nodes (VMs) to be created for the Object store. Each worker node requires 10 vCPUs and 32 GiB of memory.
*/
numWorkerNodes?: pulumi.Input;
/**
* -(Optional) A list of static IP addresses used as public IPs to access the Object store.
*/
publicNetworkIps?: pulumi.Input[] | undefined>;
/**
* -(Optional) Public network reference of the Object store. This is the subnet UUID for an AHV cluster or the IPAM name for an ESXi cluster.
*/
publicNetworkReference?: pulumi.Input;
/**
* -(Optional) The region in which the Object store is deployed.
*/
region?: pulumi.Input;
/**
* -(Optional) Enum for the state of the Object store.
* | Enum | Description |
* |----------------------------------------|-----------------------------------------------------------------|
* | `DEPLOYING_OBJECT_STORE` | The Object store is being deployed. |
* | `OBJECT_STORE_DEPLOYMENT_FAILED` | The Object store deployment has failed. |
* | `DELETING_OBJECT_STORE` | A deployed Object store is being deleted. |
* | `OBJECT_STORE_OPERATION_FAILED` | There was an error while performing an operation on the Object store. |
* | `UNDEPLOYED_OBJECT_STORE` | The Object store is not deployed. |
* | `OBJECT_STORE_OPERATION_PENDING` | There is an ongoing operation on the Object store. |
* | `OBJECT_STORE_AVAILABLE` | There are no ongoing operations on the deployed Object store. |
* | `OBJECT_STORE_CERT_CREATION_FAILED` | Creating the Object store certificate has failed. |
* | `CREATING_OBJECT_STORE_CERT` | A certificate is being created for the Object store. |
* | `OBJECT_STORE_DELETION_FAILED` | There was an error deleting the Object store. |
*/
state?: pulumi.Input;
/**
* -(Optional) An unique address that identifies a device on the internet or a local network in IPv4 or IPv6 format.
*/
storageNetworkDnsIp?: pulumi.Input;
/**
* -(Optional) Reference to the Storage Network of the Object store. This is the subnet UUID for an AHV cluster or the IPAM name for an ESXi cluster.
*/
storageNetworkReference?: pulumi.Input;
/**
* -(Optional) An unique address that identifies a device on the internet or a local network in IPv4 or IPv6 format.
*/
storageNetworkVip?: pulumi.Input;
/**
* - A globally unique identifier that represents the tenant that owns this entity. The system automatically assigns it, and it and is immutable from an API consumer perspective (some use cases may cause this Id to change - For instance, a use case may require the transfer of ownership of the entity, but these cases are handled automatically on the server).
*/
tenantId?: pulumi.Input;
/**
* -(Optional) Size of the Object store in GiB.
*/
totalCapacityGib?: pulumi.Input;
}
/**
* The set of arguments for constructing a ObjectStoreV2 resource.
*/
export interface ObjectStoreV2Args {
/**
* - A list of the UUIDs of the certificates of an Object store.
*/
certificateExtIds?: pulumi.Input[] | undefined>;
/**
* -(Optional) UUID of the AHV or ESXi cluster.
*/
clusterExtId?: pulumi.Input;
/**
* -(Optional) The deployment version of the Object store.
*/
deploymentVersion?: pulumi.Input;
/**
* -(Optional) A brief description of the Object store.
*/
description?: pulumi.Input;
/**
* -(Optional) The DNS domain/subdomain the Object store belongs to. All the Object stores under one Prism Central must have the same domain name. The domain name must consist of at least 2 parts separated by a '.'. Each part can contain upper and lower case letters, digits, hyphens, or underscores. Each part can be up to 63 characters long. The domain must begin and end with an alphanumeric character. For example - 'objects-0.pc_nutanix.com'.
*/
domain?: pulumi.Input;
/**
* -(Optional) Metadata associated with this resource.
*/
metadatas?: pulumi.Input[] | undefined>;
/**
* -(Required) The name of the Object store.
*/
name?: pulumi.Input;
/**
* -(Optional) The number of worker nodes (VMs) to be created for the Object store. Each worker node requires 10 vCPUs and 32 GiB of memory.
*/
numWorkerNodes?: pulumi.Input;
/**
* -(Optional) A list of static IP addresses used as public IPs to access the Object store.
*/
publicNetworkIps?: pulumi.Input[] | undefined>;
/**
* -(Optional) Public network reference of the Object store. This is the subnet UUID for an AHV cluster or the IPAM name for an ESXi cluster.
*/
publicNetworkReference?: pulumi.Input;
/**
* -(Optional) The region in which the Object store is deployed.
*/
region?: pulumi.Input;
/**
* -(Optional) Enum for the state of the Object store.
* | Enum | Description |
* |----------------------------------------|-----------------------------------------------------------------|
* | `DEPLOYING_OBJECT_STORE` | The Object store is being deployed. |
* | `OBJECT_STORE_DEPLOYMENT_FAILED` | The Object store deployment has failed. |
* | `DELETING_OBJECT_STORE` | A deployed Object store is being deleted. |
* | `OBJECT_STORE_OPERATION_FAILED` | There was an error while performing an operation on the Object store. |
* | `UNDEPLOYED_OBJECT_STORE` | The Object store is not deployed. |
* | `OBJECT_STORE_OPERATION_PENDING` | There is an ongoing operation on the Object store. |
* | `OBJECT_STORE_AVAILABLE` | There are no ongoing operations on the deployed Object store. |
* | `OBJECT_STORE_CERT_CREATION_FAILED` | Creating the Object store certificate has failed. |
* | `CREATING_OBJECT_STORE_CERT` | A certificate is being created for the Object store. |
* | `OBJECT_STORE_DELETION_FAILED` | There was an error deleting the Object store. |
*/
state?: pulumi.Input;
/**
* -(Optional) An unique address that identifies a device on the internet or a local network in IPv4 or IPv6 format.
*/
storageNetworkDnsIp?: pulumi.Input;
/**
* -(Optional) Reference to the Storage Network of the Object store. This is the subnet UUID for an AHV cluster or the IPAM name for an ESXi cluster.
*/
storageNetworkReference?: pulumi.Input;
/**
* -(Optional) An unique address that identifies a device on the internet or a local network in IPv4 or IPv6 format.
*/
storageNetworkVip?: pulumi.Input;
/**
* -(Optional) Size of the Object store in GiB.
*/
totalCapacityGib?: pulumi.Input;
}
//# sourceMappingURL=objectStoreV2.d.ts.map