# Private Cloud › Nutanix API

> Part of the OVHcloud developer hub. Index of every page and section: https://developers.eu.ovhcloud.com/llms.txt
> The Private Cloud product's sections: https://developers.eu.ovhcloud.com/reference/private-cloud/llms.txt
> Everything in one file: https://developers.eu.ovhcloud.com/llms-full.txt

> 18 operations of the OVHcloud API. Calls carry `authorization: Bearer $OVH_TOKEN`; the EU host is shown, Canada and the United States answer on api.ca.ovhcloud.com and api.us.ovhcloud.com.

Page: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/

OpenAPI v1: https://api.eu.ovhcloud.com/1.0/__schemas/developer-hub-navigation/private-cloud/nutanix.json?format=openapi3
OpenAPI v2: https://api.eu.ovhcloud.com/v2/__schemas/developer-hub-navigation/private-cloud/nutanix.json?format=openapi3

## Operations

- `GET /nutanix` — Get list of owned Nutanix Clusters
- `GET /nutanix/{serviceName}/nodes` — Get all nodes in a cluster
- `GET /nutanix/{serviceName}` — Get nutanix cluster info
- `GET /nutanix/availabilities` — Fetch the availabilities for a given cluster configuration
- `GET /nutanix/availabilities/raw` — List the raw availability for Nutanix cluster
- `GET /nutanix/availableVersions` — Fetch the available Nutanix versions to install
- `GET /nutanix/{serviceName}/nodes/{server}` — Get a node details in a cluster
- `GET /nutanix/requirements` — Fetch the requirements for a given cluster configuration
- `GET /nutanix/{serviceName}/serviceInfos` — Get service information
- `POST /nutanix/{serviceName}/changeContact` — Launch a contact change procedure
- `POST /nutanix/{serviceName}/confirmTermination` — Confirm service termination
- `POST /nutanix/{serviceName}/nodes/{server}/terminate` — Terminate a node
- `POST /nutanix/{serviceName}/terminate` — Ask for the termination of your service
- `PUT /nutanix/{serviceName}` — Update nutanix cluster info
- `PUT /nutanix/{serviceName}/nodes/{server}` — Reinstall a node in a cluster
- `PUT /nutanix/{serviceName}/nodes/{server}/deploy` — Update Deploy
- `PUT /nutanix/{serviceName}/serviceInfos` — Update service information
- `PUT /nutanix/{serviceName}/vrack` — Update VRACK

## Get list of owned Nutanix Clusters

`GET /1.0/nutanix`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#get-nutanix

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `iamTags` | query | object |  | Filter resources on IAM tags |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string[] | successful operation |

```json
[
  "string"
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/nutanix" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/nutanix")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/nutanix");

print_r($result);
?>
```

## Get all nodes in a cluster

`GET /1.0/nutanix/{serviceName}/nodes`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#get-nutanix-servicename-nodes

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:nodes/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | Service name |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | nutanix.nodeDetails[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ahvIp` | ipv4 | read-only | Hypervisor IP |
| `cvmIp` | ipv4 | read-only | Controler VM IP |
| `possibleActions` | nutanix.possibleActions[] | read-only | Node possible actions |
| `possibleActions[].action` | nutanix.PossibleActionsEnum | read-only | A string representation of the action to be performed — one of `INSTALL`, `POWER_OFF`, `POWER_ON`, `REINSTALL`, `TERMINATE`, `UNINSTALL` |
| `possibleActions[].isPossible` | boolean | read-only | Is the action currently possible to perform |
| `possibleActions[].reason` | string | read-only | Reason the action is not possible |
| `server` | string | read-only | Name of the associated server |
| `status` | nutanix.nodeStatusEnum | read-only | Node status — one of `DEPLOYED`, `DEPLOYING`, `DEPLOY_CANCELLED`, `DEPLOY_FAILURE`, `UNDEPLOYED`, `UNDEPLOYING`, `UNDEPLOY_CANCELLED`, `UNDEPLOY_FAILURE`, `UNKNOWN` |

```json
[
  {
    "ahvIp": "192.0.2.0",
    "cvmIp": "192.0.2.0",
    "possibleActions": [
      {
        "action": "INSTALL",
        "isPossible": true,
        "reason": "string"
      }
    ],
    "server": "string",
    "status": "DEPLOYED"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/nutanix/{serviceName}/nodes" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/nutanix/{serviceName}/nodes")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/nutanix/{serviceName}/nodes");

print_r($result);
?>
```

## Get nutanix cluster info

`GET /1.0/nutanix/{serviceName}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#get-nutanix-servicename

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | Service name |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | nutanix.stateDetailsWithIAM | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `allowedRedundancyFactor` | integer[] | read-only | Available redundancy Factor |
| `availableVersions` | string[] | read-only | Available versions to install |
| `iam` | iam.ResourceMetadata | read-only | IAM resource metadata |
| `iam.displayName` | string | read-only | Resource display name |
| `iam.id` | string (uuid) | read-only | Unique identifier of the resource |
| `iam.state` | iam.ResourceMetadata.StateEnum | read-only | Resource state — one of `EXPIRED`, `IN_CREATION`, `OK`, `SUSPENDED` |
| `iam.tags` | object | read-only | Resource tags. Tags that were internally computed are prefixed with ovh: |
| `iam.urn` | string | read-only | Unique resource name used in policies |
| `serviceName` | string | read-only | Cluster name |
| `status` | nutanix.statusEnum | read-only | Current cluster's status — one of `Active`, `Deploying`, `Error` |
| `targetSpec` | nutanix.clusterDetails | read-only | Target Spec after deployment |
| `targetSpec.controlPanelURL` | string | read-only | Control Panel URL |
| `targetSpec.dataserviceIp` | ip | read-only | dataservice IP |
| `targetSpec.erasureCoding` | boolean | read-only | Erasure coding activation |
| `targetSpec.gatewayCidr` | ipBlock | read-only | Internal Gateway IP, with mask |
| `targetSpec.infraVlanNumber` | integer | read-only | Infra-Vlan number |
| `targetSpec.ipfo` | ipBlock | read-only | External Gateway IP, with mask |
| `targetSpec.iplb` | string | read-only | IPLB ID |
| `targetSpec.license` | string | read-only | Cluster license |
| `targetSpec.metadata` | nutanix.metadata | read-only | Cluster metadata |
| `targetSpec.metadata.initialCommitmentSize` | integer | read-only | Cluster initial commitment size |
| `targetSpec.name` | string | read-only | Cluster name |
| `targetSpec.nodes` | nutanix.nodeDetails[] | read-only | Cluster node list |
| `targetSpec.nodes[].ahvIp` | ipv4 | read-only | Hypervisor IP |
| `targetSpec.nodes[].cvmIp` | ipv4 | read-only | Controler VM IP |
| `targetSpec.nodes[].possibleActions` | nutanix.possibleActions[] | read-only | Node possible actions |
| `targetSpec.nodes[].server` | string | read-only | Name of the associated server |
| `targetSpec.nodes[].status` | nutanix.nodeStatusEnum | read-only | Node status — one of `DEPLOYED`, `DEPLOYING`, `DEPLOY_CANCELLED`, `DEPLOY_FAILURE`, `UNDEPLOYED`, `UNDEPLOYING`, `UNDEPLOY_CANCELLED`, `UNDEPLOY_FAILURE`, `UNKNOWN` |
| `targetSpec.prismCentral` | nutanix.prismcentral | read-only | Prism Central Configuration |
| `targetSpec.prismCentral.ips` | ipv4[] |  | Prism Central IPs |
| `targetSpec.prismCentral.size` | nutanix.pcsizeEnum |  | Prism Central size — one of `large`, `small`, `xlarge`, `xsmall` |
| `targetSpec.prismCentral.type` | nutanix.pctypeEnum |  | Prism Central type — one of `alone`, `scale` |
| `targetSpec.prismCentral.vip` | ipv4 |  | Prism Central IP |
| `targetSpec.prismElementVip` | ipv4 | read-only | Prism Element IP |
| `targetSpec.prismSecretId` | string (uuid) | read-only | UUID for secret |
| `targetSpec.rackAwareness` | boolean | read-only | Rack Awareness activation |
| `targetSpec.redundancyFactor` | integer | read-only | Redundancy Factor |
| `targetSpec.version` | string | read-only | AOS Version |
| `targetSpec.vrack` | string | read-only | vRack name |

```json
{
  "allowedRedundancyFactor": [
    0
  ],
  "availableVersions": [
    "string"
  ],
  "iam": {
    "displayName": "string",
    "id": "00000000-0000-0000-0000-000000000000",
    "state": "EXPIRED",
    "tags": {
      "key": "string"
    },
    "urn": "string"
  },
  "serviceName": "string",
  "status": "Active",
  "targetSpec": {
    "controlPanelURL": "string",
    "dataserviceIp": "192.0.2.0",
    "erasureCoding": true,
    "gatewayCidr": "192.0.2.0/24",
    "infraVlanNumber": 0,
    "ipfo": "192.0.2.0/24",
    "iplb": "string",
    "license": "string",
    "metadata": {
      "initialCommitmentSize": 0
    },
    "name": "string",
    "nodes": [
      {
        "ahvIp": "192.0.2.0",
        "cvmIp": "192.0.2.0",
        "possibleActions": [
          {
            "action": "INSTALL",
            "isPossible": true,
            "reason": "string"
          }
        ],
        "server": "string",
        "status": "DEPLOYED"
      }
    ],
    "prismCentral": {
      "ips": [
        "192.0.2.0"
      ],
      "size": "large",
      "type": "alone",
      "vip": "192.0.2.0"
    },
    "prismElementVip": "192.0.2.0",
    "prismSecretId": "00000000-0000-0000-0000-000000000000",
    "rackAwareness": true,
    "redundancyFactor": 0,
    "version": "string",
    "vrack": "string"
  }
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/nutanix/{serviceName}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/nutanix/{serviceName}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/nutanix/{serviceName}");

print_r($result);
?>
```

## Fetch the availabilities for a given cluster configuration

`GET /1.0/nutanix/availabilities`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#get-nutanix-availabilities

**Status:** Stable production version  
**Authentication:** none (public operation)

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `erasureCoding` | query | boolean |  |  |
| `memory` | query | string |  | The name of the memory hardware part |
| `planCode` | query | string |  | The plan code in which the hardware is involved |
| `quantity` | query | integer | yes | Node quantity |
| `rackAwareness` | query | boolean |  |  |
| `redundancyFactor` | query | nutanix.RedundancyFactorEnum |  | Cluster redundancy factor — one of `2`, `3` |
| `server` | query | string |  | The name of the base hardware |
| `storage` | query | string |  | The name of the storage hardware part |
| `systemStorage` | query | string |  | The name of the system storage hardware part |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | nutanix.availability[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `datacenters` | nutanix.DatacenterAvailability[] | read-only | A structure describing the hardware availability for each datacenter |
| `datacenters[].availability` | nutanix.AvailabilityEnum | read-only | Availability status — one of `1440H`, `240H`, `2880H`, `480H`, `720H`, `72H`, `comingSoon`, `unavailable` |
| `datacenters[].datacenter` | string | read-only | Datacenter code |
| `deploymentType` | nutanix.DeploymentTypeEnum | read-only | Deployment type — one of `NodeAwareness` |
| `erasureCoding` | boolean | read-only | Erasure coding activation |
| `fqn` | string | read-only | Fully qualified name and unique name of the hardware |
| `memory` | string | read-only | Name of the memory hardware part |
| `planCode` | string | read-only | Plan code in which the hardware is involved |
| `redundancyFactor` | nutanix.RedundancyFactorEnum | read-only | Redundancy factor — one of `2`, `3` |
| `server` | string | read-only | Name of the base hardware |
| `storage` | string | read-only | Name of the storage hardware part |
| `systemStorage` | string | read-only | Name of the system storage hardware part |

```json
[
  {
    "datacenters": [
      {
        "availability": "1440H",
        "datacenter": "string"
      }
    ],
    "deploymentType": "NodeAwareness",
    "erasureCoding": true,
    "fqn": "string",
    "memory": "string",
    "planCode": "string",
    "redundancyFactor": 2,
    "server": "string",
    "storage": "string",
    "systemStorage": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/nutanix/availabilities" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/nutanix/availabilities")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/nutanix/availabilities");

print_r($result);
?>
```

## List the raw availability for Nutanix cluster

`GET /1.0/nutanix/availabilities/raw`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#get-nutanix-availabilities-raw

**Status:** Stable production version

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `datacenters` | query | string |  | The names of datacenters separated by commas |
| `deploymentType` | query | nutanix.DeploymentTypeEnum |  | Cluster deployment type — one of `NodeAwareness` |
| `erasureCoding` | query | boolean |  |  |
| `excludeDatacenters` | query | boolean |  | If true, all datacenters are returned except those listed in datacenters parameter |
| `excludeRegions` | query | boolean |  | If true, all regions are returned except those listed in regions parameter |
| `memory` | query | string |  | The name of the memory hardware part |
| `planCode` | query | string |  | The plan code in which the hardware is involved |
| `quantity` | query | integer | yes | Node quantity |
| `redundancyFactor` | query | nutanix.RedundancyFactorEnum |  | Cluster redundancy factor — one of `2`, `3` |
| `regions` | query | string |  | The names of regions separated by commas |
| `server` | query | string |  | The name of the base hardware |
| `storage` | query | string |  | The name of the storage hardware part |
| `systemStorage` | query | string |  | The name of the system storage hardware part |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | nutanix.AvailabilitiesRaw[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `datacenters` | nutanix.AvailabilitiesRawDatacenter[] | read-only | A structure describing the hardware availability for each datacenter |
| `datacenters[].availability` | nutanix.AvailabilityEnum | read-only | The availability — one of `1440H`, `240H`, `2880H`, `480H`, `720H`, `72H`, `comingSoon`, `unavailable` |
| `datacenters[].datacenter` | string | read-only | The datacenter code |
| `datacenters[].lastRule` | string | read-only | Last availability rule applied |
| `datacenters[].parentAvailable` | integer | read-only | Real stock including parent references |
| `datacenters[].trueAvailable` | integer | read-only | Real stock |
| `deploymentType` | nutanix.DeploymentTypeEnum | read-only | Deployment type — one of `NodeAwareness` |
| `erasureCoding` | boolean | read-only | Erasure coding activation |
| `fqn` | string | read-only | Fully qualified name and unique name of the hardware |
| `memory` | string | read-only | Name of the memory hardware part |
| `planCode` | string | read-only | Plan code in which the hardware is involved |
| `redundancyFactor` | nutanix.RedundancyFactorEnum | read-only | Redundancy factor — one of `2`, `3` |
| `server` | string | read-only | Name of the base hardware |
| `storage` | string | read-only | Name of the storage hardware part |
| `systemStorage` | string | read-only | Name of the system storage hardware part |

```json
[
  {
    "datacenters": [
      {
        "availability": "1440H",
        "datacenter": "string",
        "lastRule": "string",
        "parentAvailable": 0,
        "trueAvailable": 0
      }
    ],
    "deploymentType": "NodeAwareness",
    "erasureCoding": true,
    "fqn": "string",
    "memory": "string",
    "planCode": "string",
    "redundancyFactor": 2,
    "server": "string",
    "storage": "string",
    "systemStorage": "string"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/nutanix/availabilities/raw" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/nutanix/availabilities/raw")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/nutanix/availabilities/raw");

print_r($result);
?>
```

## Fetch the available Nutanix versions to install

`GET /1.0/nutanix/availableVersions`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#get-nutanix-availableversions

**Status:** Stable production version  
**Authentication:** none (public operation)

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `fqn` | query | string |  | Fully qualified name and unique name of the hardware |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string[] | successful operation |

```json
[
  "string"
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/nutanix/availableVersions" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/nutanix/availableVersions")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/nutanix/availableVersions");

print_r($result);
?>
```

## Get a node details in a cluster

`GET /1.0/nutanix/{serviceName}/nodes/{server}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#get-nutanix-servicename-nodes-server

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:nodes/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `server` | path | string | yes | Server |
| `serviceName` | path | string | yes | Service name |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | nutanix.nodeDetails | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ahvIp` | ipv4 | read-only | Hypervisor IP |
| `cvmIp` | ipv4 | read-only | Controler VM IP |
| `possibleActions` | nutanix.possibleActions[] | read-only | Node possible actions |
| `possibleActions[].action` | nutanix.PossibleActionsEnum | read-only | A string representation of the action to be performed — one of `INSTALL`, `POWER_OFF`, `POWER_ON`, `REINSTALL`, `TERMINATE`, `UNINSTALL` |
| `possibleActions[].isPossible` | boolean | read-only | Is the action currently possible to perform |
| `possibleActions[].reason` | string | read-only | Reason the action is not possible |
| `server` | string | read-only | Name of the associated server |
| `status` | nutanix.nodeStatusEnum | read-only | Node status — one of `DEPLOYED`, `DEPLOYING`, `DEPLOY_CANCELLED`, `DEPLOY_FAILURE`, `UNDEPLOYED`, `UNDEPLOYING`, `UNDEPLOY_CANCELLED`, `UNDEPLOY_FAILURE`, `UNKNOWN` |

```json
{
  "ahvIp": "192.0.2.0",
  "cvmIp": "192.0.2.0",
  "possibleActions": [
    {
      "action": "INSTALL",
      "isPossible": true,
      "reason": "string"
    }
  ],
  "server": "string",
  "status": "DEPLOYED"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/nutanix/{serviceName}/nodes/{server}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/nutanix/{serviceName}/nodes/{server}")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/nutanix/{serviceName}/nodes/{server}");

print_r($result);
?>
```

## Fetch the requirements for a given cluster configuration

`GET /1.0/nutanix/requirements`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#get-nutanix-requirements

**Status:** Stable production version  
**Authentication:** none (public operation)

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `erasureCoding` | query | boolean | yes |  |
| `rackAwareness` | query | boolean | yes |  |
| `redundancyFactor` | query | nutanix.RedundancyFactorEnum | yes | Cluster redundancy factor — one of `2`, `3` |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | nutanix.Requirements | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `maxNodes` | integer | read-only | Maximum number of nodes |
| `minNodes` | integer | read-only | Minimum number of nodes |
| `scaleFactor` | integer | read-only | Number of added/removed nodes in case of scaling up/down |

```json
{
  "maxNodes": 0,
  "minNodes": 0,
  "scaleFactor": 0
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/nutanix/requirements" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/nutanix/requirements")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/nutanix/requirements");

print_r($result);
?>
```

## Get service information

`GET /1.0/nutanix/{serviceName}/serviceInfos`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#get-nutanix-servicename-serviceinfos

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:serviceInfos/get`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | Service name |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | services.Service | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `canDeleteAtExpiration` | boolean | read-only | Indicates that the service can be set up to be deleted at expiration |
| `contactAdmin` | string | read-only |  |
| `contactBilling` | string | read-only |  |
| `contactTech` | string | read-only |  |
| `creation` | string (date) | read-only |  |
| `domain` | string | read-only |  |
| `engagedUpTo` | string (date) | read-only |  |
| `expiration` | string (date) | read-only |  |
| `possibleRenewPeriod` | integer[] | read-only | All the possible renew period of your service in month |
| `renew` | service.RenewType |  | Way of handling the renew |
| `renew.automatic` | boolean |  | The service is automatically renewed |
| `renew.deleteAtExpiration` | boolean |  | The service will be deleted at expiration |
| `renew.forced` | boolean |  | The service forced to be renewed |
| `renew.manualPayment` | boolean |  | The service needs to be manually renewed and paid |
| `renew.period` | integer |  | period of renew in month |
| `renewalType` | service.RenewalTypeEnum | read-only | Detailed renewal type of a service — one of `automaticForcedProduct`, `automaticV2012`, `automaticV2014`, `automaticV2016`, `automaticV2024`, `manual`, `oneShot`, `option` |
| `serviceId` | integer | read-only |  |
| `status` | service.StateEnum | read-only | one of `autorenewInProgress`, `expired`, `inCreation`, `ok`, `pendingDebt`, `unPaid` |

```json
{
  "canDeleteAtExpiration": true,
  "contactAdmin": "string",
  "contactBilling": "string",
  "contactTech": "string",
  "creation": "2024-01-01",
  "domain": "string",
  "engagedUpTo": "2024-01-01",
  "expiration": "2024-01-01",
  "possibleRenewPeriod": [
    0
  ],
  "renew": {
    "automatic": true,
    "deleteAtExpiration": true,
    "forced": true,
    "manualPayment": true,
    "period": 0
  },
  "renewalType": "automaticForcedProduct",
  "serviceId": 0,
  "status": "autorenewInProgress"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/1.0/nutanix/{serviceName}/serviceInfos" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.get("/nutanix/{serviceName}/serviceInfos")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->get("/nutanix/{serviceName}/serviceInfos");

print_r($result);
?>
```

## Launch a contact change procedure

`POST /1.0/nutanix/{serviceName}/changeContact`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#post-nutanix-servicename-changecontact

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:changeContact`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | Service name |

### Request body (required)

Type: `services.changeContact`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `contactAdmin` | string |  | The contact to set as admin contact |
| `contactBilling` | string |  | The contact to set as billing contact |
| `contactTech` | string |  | The contact to set as tech contact |

```json
{
  "contactAdmin": "string",
  "contactBilling": "string",
  "contactTech": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | integer[] | successful operation |

```json
[
  0
]
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/nutanix/{serviceName}/changeContact" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: services.changeContact
result = client.post("/nutanix/{serviceName}/changeContact",
	contactAdmin = None, # The contact to set as admin contact (type: string)
	contactBilling = None, # The contact to set as billing contact (type: string)
	contactTech = None, # The contact to set as tech contact (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: services.changeContact
$result = $ovh->post("/nutanix/{serviceName}/changeContact", array(
	contactAdmin => null, // The contact to set as admin contact (type: string)
	contactBilling => null, // The contact to set as billing contact (type: string)
	contactTech => null, // The contact to set as tech contact (type: string)
));

print_r($result);
?>
```

## Confirm service termination

`POST /1.0/nutanix/{serviceName}/confirmTermination`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#post-nutanix-servicename-confirmtermination

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:confirmTermination`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | Service name |

### Request body (required)

Type: `services.confirmTermination`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `commentary` | string |  | Commentary about your termination request |
| `commentaryFutureUse` | string |  | Commentary about your future use |
| `commentaryReason` | string |  | Commentary about your reason for termination request |
| `futureUse` | service.TerminationFutureUseEnum |  | All future uses you can provide for a service termination — one of `NOT_REPLACING_SERVICE`, `OTHER`, `SUBSCRIBE_AN_OTHER_SERVICE`, `SUBSCRIBE_OTHER_KIND_OF_SERVICE_WITH_COMPETITOR`, `SUBSCRIBE_SIMILAR_SERVICE_WITH_COMPETITOR` |
| `reason` | service.TerminationReasonEnum |  | All reasons you can provide for a service termination — one of `FEATURES_DONT_SUIT_ME`, `LACK_OF_PERFORMANCES`, `MIGRATED_TO_ANOTHER_OVH_PRODUCT`, `MIGRATED_TO_COMPETITOR`, `NOT_ENOUGH_RECOGNITION`, `NOT_NEEDED_ANYMORE`, `NOT_RELIABLE`, `NO_ANSWER`, `OTHER`, `PRODUCT_DIMENSION_DONT_SUIT_ME`, `PRODUCT_TOOLS_DONT_SUIT_ME`, `TOO_EXPENSIVE`, … |
| `token` | string | yes | The termination token sent by email to the admin contact |

```json
{
  "commentary": "string",
  "commentaryFutureUse": "string",
  "commentaryReason": "string",
  "futureUse": "NOT_REPLACING_SERVICE",
  "reason": "FEATURES_DONT_SUIT_ME",
  "token": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string | successful operation |

```json
"string"
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/nutanix/{serviceName}/confirmTermination" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: services.confirmTermination
result = client.post("/nutanix/{serviceName}/confirmTermination",
	commentary = None, # Commentary about your termination request (type: string)
	commentaryFutureUse = None, # Commentary about your future use (type: string)
	commentaryReason = None, # Commentary about your reason for termination request (type: string)
	futureUse = None, # All future uses you can provide for a service termination (type: service.TerminationFutureUseEnum)
	reason = None, # All reasons you can provide for a service termination (type: service.TerminationReasonEnum)
	token = None, # The termination token sent by email to the admin contact (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: services.confirmTermination
$result = $ovh->post("/nutanix/{serviceName}/confirmTermination", array(
	commentary => null, // Commentary about your termination request (type: string)
	commentaryFutureUse => null, // Commentary about your future use (type: string)
	commentaryReason => null, // Commentary about your reason for termination request (type: string)
	futureUse => null, // All future uses you can provide for a service termination (type: service.TerminationFutureUseEnum)
	reason => null, // All reasons you can provide for a service termination (type: service.TerminationReasonEnum)
	token => null, // The termination token sent by email to the admin contact (type: string)
));

print_r($result);
?>
```

## Terminate a node

`POST /1.0/nutanix/{serviceName}/nodes/{server}/terminate`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#post-nutanix-servicename-nodes-server-terminate

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:node/terminate`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `server` | path | string | yes | Server |
| `serviceName` | path | string | yes | Service name |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/nutanix/{serviceName}/nodes/{server}/terminate" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/nutanix/{serviceName}/nodes/{server}/terminate")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/nutanix/{serviceName}/nodes/{server}/terminate");

print_r($result);
?>
```

## Ask for the termination of your service

`POST /1.0/nutanix/{serviceName}/terminate`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#post-nutanix-servicename-terminate

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:terminate`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | Service name |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | string | successful operation |

```json
"string"
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/1.0/nutanix/{serviceName}/terminate" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN"
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

result = client.post("/nutanix/{serviceName}/terminate")

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

$result = $ovh->post("/nutanix/{serviceName}/terminate");

print_r($result);
?>
```

## Update nutanix cluster info

`PUT /1.0/nutanix/{serviceName}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#put-nutanix-servicename

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:edit`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `redeploycluster` | query | boolean |  | I am aware that I am going to make changes that will reinstall my cluster |
| `scaleOut` | query | boolean |  | I am aware that I am going to make changes that will scale-out my cluster |
| `serviceName` | path | string | yes | Service name |

### Request body (required)

Type: `nutanix.cluster`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `controlPanelURL` | string | read-only | Control Panel URL |
| `dataserviceIp` | ip |  | Dataservice IP |
| `erasureCoding` | boolean |  | Erasure coding activation |
| `gatewayCidr` | ipBlock |  | Internal Gateway IP, with mask |
| `infraVlanNumber` | integer |  | Infra-Vlan number |
| `installPrismCentral` | boolean |  | Should Prism Central be installed on the cluster |
| `ipfo` | ipBlock | read-only | External Gateway IP, with mask |
| `iplb` | string | read-only | IPLB ID |
| `name` | string | read-only | Cluster name |
| `nodes` | nutanix.nodes[] |  | Cluster node list |
| `nodes[].ahvIp` | ipv4 |  | Hypervisor IP |
| `nodes[].cvmIp` | ipv4 |  | Controler VM IP |
| `nodes[].server` | string | read-only | Name of the associated server |
| `prismCentral` | nutanix.prismcentral |  | Prism Central Configuration |
| `prismCentral.ips` | ipv4[] |  | Prism Central IPs |
| `prismCentral.size` | nutanix.pcsizeEnum |  | Prism Central size — one of `large`, `small`, `xlarge`, `xsmall` |
| `prismCentral.type` | nutanix.pctypeEnum |  | Prism Central type — one of `alone`, `scale` |
| `prismCentral.vip` | ipv4 |  | Prism Central IP |
| `prismElementVip` | ipv4 |  | Prism Element IP |
| `prismSecretId` | string (uuid) | read-only | UUID for secret |
| `rackAwareness` | boolean | read-only | Rack Awareness activation |
| `redundancyFactor` | integer |  | Redundancy Factor |
| `version` | string |  | AOS Version |
| `vrack` | string | read-only | vRack name |

```json
{
  "dataserviceIp": "192.0.2.0",
  "erasureCoding": true,
  "gatewayCidr": "192.0.2.0/24",
  "infraVlanNumber": 0,
  "installPrismCentral": true,
  "nodes": [
    {
      "ahvIp": "192.0.2.0",
      "cvmIp": "192.0.2.0"
    }
  ],
  "prismCentral": {
    "ips": [
      "192.0.2.0"
    ],
    "size": "large",
    "type": "alone",
    "vip": "192.0.2.0"
  },
  "prismElementVip": "192.0.2.0",
  "redundancyFactor": 0,
  "version": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | nutanix.state | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `allowedRedundancyFactor` | integer[] | read-only | Available redundancy Factor |
| `availableVersions` | string[] | read-only | Available versions to install |
| `serviceName` | string | read-only | Cluster name |
| `status` | nutanix.statusEnum | read-only | Current cluster's status — one of `Active`, `Deploying`, `Error` |
| `targetSpec` | nutanix.clusterResponse | read-only | Target Spec after deployment |
| `targetSpec.controlPanelURL` | string | read-only | Control Panel URL |
| `targetSpec.dataserviceIp` | ip | read-only | Dataservice IP |
| `targetSpec.erasureCoding` | boolean | read-only | Erasure coding activation |
| `targetSpec.gatewayCidr` | ipBlock | read-only | Internal Gateway IP, with mask |
| `targetSpec.infraVlanNumber` | integer | read-only | Infra-Vlan number |
| `targetSpec.ipfo` | ipBlock | read-only | External Gateway IP, with mask |
| `targetSpec.iplb` | string | read-only | IPLB ID |
| `targetSpec.name` | string | read-only | Cluster name |
| `targetSpec.nodes` | nutanix.nodes[] | read-only | Cluster node list |
| `targetSpec.nodes[].ahvIp` | ipv4 |  | Hypervisor IP |
| `targetSpec.nodes[].cvmIp` | ipv4 |  | Controler VM IP |
| `targetSpec.nodes[].server` | string | read-only | Name of the associated server |
| `targetSpec.prismCentral` | nutanix.prismcentral | read-only | Prism Central Configuration |
| `targetSpec.prismCentral.ips` | ipv4[] |  | Prism Central IPs |
| `targetSpec.prismCentral.size` | nutanix.pcsizeEnum |  | Prism Central size — one of `large`, `small`, `xlarge`, `xsmall` |
| `targetSpec.prismCentral.type` | nutanix.pctypeEnum |  | Prism Central type — one of `alone`, `scale` |
| `targetSpec.prismCentral.vip` | ipv4 |  | Prism Central IP |
| `targetSpec.prismElementVip` | ipv4 | read-only | Prism Element IP |
| `targetSpec.prismSecretId` | string (uuid) | read-only | UUID for secret |
| `targetSpec.rackAwareness` | boolean | read-only | Rack Awareness activation |
| `targetSpec.redundancyFactor` | integer | read-only | Redundancy Factor |
| `targetSpec.version` | string | read-only | AOS Version |
| `targetSpec.vrack` | string | read-only | vRack name |

```json
{
  "allowedRedundancyFactor": [
    0
  ],
  "availableVersions": [
    "string"
  ],
  "serviceName": "string",
  "status": "Active",
  "targetSpec": {
    "controlPanelURL": "string",
    "dataserviceIp": "192.0.2.0",
    "erasureCoding": true,
    "gatewayCidr": "192.0.2.0/24",
    "infraVlanNumber": 0,
    "ipfo": "192.0.2.0/24",
    "iplb": "string",
    "name": "string",
    "nodes": [
      {
        "ahvIp": "192.0.2.0",
        "cvmIp": "192.0.2.0",
        "server": "string"
      }
    ],
    "prismCentral": {
      "ips": [
        "192.0.2.0"
      ],
      "size": "large",
      "type": "alone",
      "vip": "192.0.2.0"
    },
    "prismElementVip": "192.0.2.0",
    "prismSecretId": "00000000-0000-0000-0000-000000000000",
    "rackAwareness": true,
    "redundancyFactor": 0,
    "version": "string",
    "vrack": "string"
  }
}
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/nutanix/{serviceName}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: nutanix.cluster
result = client.put("/nutanix/{serviceName}",
	dataserviceIp = None, # Dataservice IP (type: ip)
	erasureCoding = None, # Erasure coding activation (type: boolean)
	gatewayCidr = None, # Internal Gateway IP, with mask (type: ipBlock)
	infraVlanNumber = None, # Infra-Vlan number (type: integer)
	installPrismCentral = None, # Should Prism Central be installed on the cluster (type: boolean)
	nodes = None, # Cluster node list (type: array)
	prismCentral = None, # Prism Central Configuration (type: nutanix.prismcentral)
	prismElementVip = None, # Prism Element IP (type: ipv4)
	redundancyFactor = None, # Redundancy Factor (type: integer)
	version = None, # AOS Version (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: nutanix.cluster
$result = $ovh->put("/nutanix/{serviceName}", array(
	dataserviceIp => null, // Dataservice IP (type: ip)
	erasureCoding => null, // Erasure coding activation (type: boolean)
	gatewayCidr => null, // Internal Gateway IP, with mask (type: ipBlock)
	infraVlanNumber => null, // Infra-Vlan number (type: integer)
	installPrismCentral => null, // Should Prism Central be installed on the cluster (type: boolean)
	nodes => null, // Cluster node list (type: array)
	prismCentral => null, // Prism Central Configuration (type: nutanix.prismcentral)
	prismElementVip => null, // Prism Element IP (type: ipv4)
	redundancyFactor => null, // Redundancy Factor (type: integer)
	version => null, // AOS Version (type: string)
));

print_r($result);
?>
```

## Reinstall a node in a cluster

`PUT /1.0/nutanix/{serviceName}/nodes/{server}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#put-nutanix-servicename-nodes-server

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:node/edit`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `server` | path | string | yes | Server |
| `serviceName` | path | string | yes | Service name |

### Request body (required)

Type: `nutanix.reinstall`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `version` | string | yes | AOS Version |

```json
{
  "version": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/nutanix/{serviceName}/nodes/{server}" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: nutanix.reinstall
result = client.put("/nutanix/{serviceName}/nodes/{server}",
	version = None, # AOS Version (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: nutanix.reinstall
$result = $ovh->put("/nutanix/{serviceName}/nodes/{server}", array(
	version => null, // AOS Version (type: string)
));

print_r($result);
?>
```

## Update Deploy

`PUT /1.0/nutanix/{serviceName}/nodes/{server}/deploy`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#put-nutanix-servicename-nodes-server-deploy

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:deploy`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `server` | path | string | yes | Server |
| `serviceName` | path | string | yes | Service name |

### Request body (required)

Type: `nutanix.deploy`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `ahvIp` | ipv4 |  | Hypervisor IP |
| `cvmIp` | ipv4 |  | Controler VM IP |
| `version` | string |  | AOS Version |

```json
{
  "ahvIp": "192.0.2.0",
  "cvmIp": "192.0.2.0",
  "version": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/nutanix/{serviceName}/nodes/{server}/deploy" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: nutanix.deploy
result = client.put("/nutanix/{serviceName}/nodes/{server}/deploy",
	ahvIp = None, # Hypervisor IP (type: ipv4)
	cvmIp = None, # Controler VM IP (type: ipv4)
	version = None, # AOS Version (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: nutanix.deploy
$result = $ovh->put("/nutanix/{serviceName}/nodes/{server}/deploy", array(
	ahvIp => null, // Hypervisor IP (type: ipv4)
	cvmIp => null, // Controler VM IP (type: ipv4)
	version => null, // AOS Version (type: string)
));

print_r($result);
?>
```

## Update service information

`PUT /1.0/nutanix/{serviceName}/serviceInfos`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#put-nutanix-servicename-serviceinfos

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:serviceInfos/edit`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | Service name |

### Request body (required)

Type: `services.Service`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `canDeleteAtExpiration` | boolean | read-only | Indicates that the service can be set up to be deleted at expiration |
| `contactAdmin` | string | read-only |  |
| `contactBilling` | string | read-only |  |
| `contactTech` | string | read-only |  |
| `creation` | string (date) | read-only |  |
| `domain` | string | read-only |  |
| `engagedUpTo` | string (date) | read-only |  |
| `expiration` | string (date) | read-only |  |
| `possibleRenewPeriod` | integer[] | read-only | All the possible renew period of your service in month |
| `renew` | service.RenewType |  | Way of handling the renew |
| `renew.automatic` | boolean |  | The service is automatically renewed |
| `renew.deleteAtExpiration` | boolean |  | The service will be deleted at expiration |
| `renew.forced` | boolean |  | The service forced to be renewed |
| `renew.manualPayment` | boolean |  | The service needs to be manually renewed and paid |
| `renew.period` | integer |  | period of renew in month |
| `renewalType` | service.RenewalTypeEnum | read-only | Detailed renewal type of a service — one of `automaticForcedProduct`, `automaticV2012`, `automaticV2014`, `automaticV2016`, `automaticV2024`, `manual`, `oneShot`, `option` |
| `serviceId` | integer | read-only |  |
| `status` | service.StateEnum | read-only | one of `autorenewInProgress`, `expired`, `inCreation`, `ok`, `pendingDebt`, `unPaid` |

```json
{
  "renew": {
    "automatic": true,
    "deleteAtExpiration": true,
    "forced": true,
    "manualPayment": true,
    "period": 0
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/nutanix/{serviceName}/serviceInfos" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: services.Service
result = client.put("/nutanix/{serviceName}/serviceInfos",
	renew = None, # Way of handling the renew (type: service.RenewType, nullable)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: services.Service
$result = $ovh->put("/nutanix/{serviceName}/serviceInfos", array(
	renew => null, // Way of handling the renew (type: service.RenewType, nullable)
));

print_r($result);
?>
```

## Update VRACK

`PUT /1.0/nutanix/{serviceName}/vrack`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/nutanix/#put-nutanix-servicename-vrack

**Status:** Stable production version  
**IAM actions:** `nutanix:apiovh:vrack/edit`

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `serviceName` | path | string | yes | Service name |

### Request body (required)

Type: `nutanix.vrack`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `vrackName` | string |  | vRack Name |

```json
{
  "vrackName": "string"
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | — | successful operation |

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/1.0/nutanix/{serviceName}/vrack" \
  -H "accept: application/json" \
  -H "authorization: Bearer $OVH_TOKEN" \
  -H "content-type: application/json" \
  -d '{ }'
```

```python
'''
First, install the latest release of Python wrapper: $ pip install ovh
'''
import json
import ovh

# Instantiate an OVH Client.
# You can generate new credentials with full access to your account on
# the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
client = ovh.Client(
	endpoint='ovh-eu',               # Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
	application_key='xxxxxxxxxx',    # Application Key
	application_secret='xxxxxxxxxx', # Application Secret
	consumer_key='xxxxxxxxxx',       # Consumer Key
)

# Request body type: nutanix.vrack
result = client.put("/nutanix/{serviceName}/vrack",
	vrackName = None, # vRack Name (type: string)
)

# Pretty print
print(json.dumps(result, indent=4))
```

```php
<?php
/**
 * First, download the latest release of PHP wrapper on github
 * And include this script into the folder with extracted files
 */
require __DIR__ . '/vendor/autoload.php';
use \Ovh\Api;

/**
 * Instantiate an OVH Client.
 * You can generate new credentials with full access to your account on
 * the token creation page (https://api.ovh.com/createToken/index.cgi?GET=/*&PUT=/*&POST=/*&DELETE=/*)
 */
$ovh = new Api('xxxxxxxxxx',  // Application Key
               'xxxxxxxxxx',  // Application Secret
               'ovh-eu',      // Endpoint of API OVH (List of available endpoints: https://github.com/ovh/python-ovh#2-configure-your-application)
               'xxxxxxxxxx'); // Consumer Key

// Request body type: nutanix.vrack
$result = $ovh->put("/nutanix/{serviceName}/vrack", array(
	vrackName => null, // vRack Name (type: string)
));

print_r($result);
?>
```
