# Private Cloud › Public VCF as-a-Service › Organization 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

> 40 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/public-vcf-as-a-service/organization/

OpenAPI v1: https://api.eu.ovhcloud.com/1.0/__schemas/developer-hub-navigation/private-cloud/public-vcf-as-a-service/organization.json?format=openapi3
OpenAPI v2: https://api.eu.ovhcloud.com/v2/__schemas/developer-hub-navigation/private-cloud/public-vcf-as-a-service/organization.json?format=openapi3

## Operations

- `GET /vmwareCloudDirector/organization` — List organizations
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}/task` — List edge gateway tasks
- `GET /vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}/task` — List IP space tasks
- `GET /vmwareCloudDirector/organization/{organizationId}/ipSpace` — List IP spaces
- `GET /vmwareCloudDirector/organization/{organizationId}/networkAcl` — List network ACLs
- `GET /vmwareCloudDirector/organization/{organizationId}/task` — List organization tasks
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute` — List compute resources
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage` — List storage resources
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway` — List edge gateways
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter` — List virtual datacenters
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/task` — List virtual datacenter tasks
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment` — List vRack segments
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}/task` — List vRack segment tasks
- `GET /vmwareCloudDirector/organization/{organizationId}` — Get an organization
- `GET /vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}` — Get an IP space
- `GET /vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}/task/{taskId}` — Get an IP space task
- `GET /vmwareCloudDirector/organization/{organizationId}/networkAcl/{id}` — Get a network ACL
- `GET /vmwareCloudDirector/organization/{organizationId}/task/{taskId}` — Get an organization task
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}` — Get a virtual datacenter
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}/task/{taskId}` — Get an edge gateway task
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute/{computeId}` — Get a compute resource
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage/{storageId}` — Get a storage resource
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/task/{taskId}` — Get a virtual datacenter task
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}` — Get a vRack segment
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}` — Get an edge gateway
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}/task/{taskId}` — Get a vRack segment task
- `GET /vmwareCloudDirector/reference/region` — List regions
- `GET /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/orderableResource` — List orderable resources
- `POST /vmwareCloudDirector/organization/{organizationId}/password` — Reset the administrator password
- `POST /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway` — Create an edge gateway
- `DELETE /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}` — Delete an edge gateway
- `DELETE /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage/{storageId}` — Delete a storage resource
- `DELETE /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute/{computeId}` — Delete a compute resource
- `DELETE /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}` — Delete a vRack segment
- `PUT /vmwareCloudDirector/organization/{organizationId}` — Update an organization
- `PUT /vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}` — Update an IP space
- `PUT /vmwareCloudDirector/organization/{organizationId}/networkAcl/{id}` — Replace network ACL rules
- `PUT /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}` — Update a virtual datacenter
- `PUT /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}` — Update an edge gateway
- `PUT /vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}` — Update a vRack segment

## List organizations

`GET /v2/vmwareCloudDirector/organization`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/get`

Returns the organizations, with their state and specification.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `iamTags` | query | object |  | Filter resources on IAM tags |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.OrganizationWithIAM[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.organization.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.apiUrl` | string | read-only | API URL to interact with your VMware Cloud Director organization on OVHcloud |
| `currentState.billingType` | vmwareCloudDirector.BillingTypeEnum | read-only | Billing type of your VMware Cloud Director project — one of `DEMO`, `MONTHLY` |
| `currentState.description` | string | read-only | Description of your VMware Cloud Director organization on OVHcloud |
| `currentState.fullName` | string | read-only | Human readable full name of your VMware Cloud Director organization |
| `currentState.name` | string | read-only | Name of your VMware Cloud Director organization |
| `currentState.region` | vmwareCloudDirector.RegionNameEnum | read-only | Datacenter where your VMware Cloud Director organization is physically located — one of `ap-south-mum`, `ap-southeast-sgp`, `ap-southeast-syd`, `ca-east-bhs`, `ca-east-tor`, `eu-central-waw`, `eu-west-eri`, `eu-west-gra`, `eu-west-lim`, `eu-west-par`, `eu-west-rbx`, `eu-west-sbg`, … |
| `currentState.spla` | boolean | read-only | SPLA licensing state |
| `currentState.webInterfaceUrl` | string | read-only | URL to administrate your VMware Cloud Director organization on OVHcloud |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the VMware Cloud Director organization |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `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 |
| `id` | string | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the VMware Cloud Director organization. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.organization.TargetSpec | read-only | Configuration you requested. While a change is still being applied it differs from currentState. |
| `targetSpec.description` | string |  | Description of your VMware Cloud Director organization on OVHcloud |
| `targetSpec.fullName` | string | yes | Human readable full name of your VMware Cloud Director organization |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
[
  {
    "currentState": {
      "apiUrl": "string",
      "billingType": "DEMO",
      "description": "string",
      "fullName": "string",
      "name": "string",
      "region": "ap-south-mum",
      "spla": true,
      "webInterfaceUrl": "string"
    },
    "currentTasks": [
      {
        "errors": [
          {
            "message": "string"
          }
        ],
        "id": "00000000-0000-0000-0000-000000000000",
        "link": "string",
        "status": "ERROR",
        "type": "string"
      }
    ],
    "iam": {
      "displayName": "string",
      "id": "00000000-0000-0000-0000-000000000000",
      "state": "EXPIRED",
      "tags": {
        "key": "string"
      },
      "urn": "string"
    },
    "id": "string",
    "resourceStatus": "CREATING",
    "targetSpec": {
      "description": "string",
      "fullName": "string"
    },
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization" \
  -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("/v2/vmwareCloudDirector/organization")

# 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("/v2/vmwareCloudDirector/organization");

print_r($result);
?>
```

## List edge gateway tasks

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}/task`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-edgegateway-edgegatewayid-task

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/edgeGateway/task/get`

Returns the asynchronous tasks of the edge gateway.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `edgeGatewayId` | path | string (uuid) | yes | Edge gateway ID |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | common.Task[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string (date-time) | read-only | Creation date of the task |
| `errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `errors[].message` | string | read-only | Error description |
| `finishedAt` | string (date-time) | read-only | Ending date of the task |
| `id` | string (uuid) | read-only | Unique identifier of the task |
| `link` | string | read-only | Link to the related resource |
| `message` | string | read-only | Description of the task |
| `progress` | common.TaskProgress[] | read-only | Progress steps of the asynchronous operation |
| `progress[].name` | string | read-only | Progress step name |
| `progress[].status` | common.TaskStatusEnum | read-only | Current status of the progress step — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `startedAt` | string (date-time) | read-only | Starting date of the task |
| `status` | common.TaskStatusEnum | read-only | Current global status of the task — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `type` | string | read-only | Type of the task |
| `updatedAt` | string (date-time) | read-only | Last update of the task |

```json
[
  {
    "createdAt": "2024-01-01T12:00:00Z",
    "errors": [
      {
        "message": "string"
      }
    ],
    "finishedAt": "2024-01-01T12:00:00Z",
    "id": "00000000-0000-0000-0000-000000000000",
    "link": "string",
    "message": "string",
    "progress": [
      {
        "name": "string",
        "status": "DONE"
      }
    ],
    "startedAt": "2024-01-01T12:00:00Z",
    "status": "DONE",
    "type": "string",
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}/task" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}/task")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}/task");

print_r($result);
?>
```

## List IP space tasks

`GET /v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}/task`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-ipspace-ipspaceid-task

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/ipSpace/task/get`

Returns the asynchronous tasks of the IP space.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `ipSpaceId` | path | string (uuid) | yes | Ip space ID |
| `organizationId` | path | string | yes | Organization ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | common.Task[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string (date-time) | read-only | Creation date of the task |
| `errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `errors[].message` | string | read-only | Error description |
| `finishedAt` | string (date-time) | read-only | Ending date of the task |
| `id` | string (uuid) | read-only | Unique identifier of the task |
| `link` | string | read-only | Link to the related resource |
| `message` | string | read-only | Description of the task |
| `progress` | common.TaskProgress[] | read-only | Progress steps of the asynchronous operation |
| `progress[].name` | string | read-only | Progress step name |
| `progress[].status` | common.TaskStatusEnum | read-only | Current status of the progress step — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `startedAt` | string (date-time) | read-only | Starting date of the task |
| `status` | common.TaskStatusEnum | read-only | Current global status of the task — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `type` | string | read-only | Type of the task |
| `updatedAt` | string (date-time) | read-only | Last update of the task |

```json
[
  {
    "createdAt": "2024-01-01T12:00:00Z",
    "errors": [
      {
        "message": "string"
      }
    ],
    "finishedAt": "2024-01-01T12:00:00Z",
    "id": "00000000-0000-0000-0000-000000000000",
    "link": "string",
    "message": "string",
    "progress": [
      {
        "name": "string",
        "status": "DONE"
      }
    ],
    "startedAt": "2024-01-01T12:00:00Z",
    "status": "DONE",
    "type": "string",
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}/task" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}/task")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}/task");

print_r($result);
?>
```

## List IP spaces

`GET /v2/vmwareCloudDirector/organization/{organizationId}/ipSpace`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-ipspace

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/ipSpace/get`

Returns the IP spaces of the organization.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `organizationId` | path | string | yes | Organization ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.ipSpace[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.ipSpace.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.edgeGatewayId` | string (uuid) | read-only | Universal Unique identifier of the associated edge gateway |
| `currentState.internalScope` | ipBlock | read-only | Network CIDR of the IP space. Must be in form of <ip-address>/<mask>. |
| `currentState.name` | string | read-only | Name of your organization IP Space resource |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization IP Space |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Universal Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization IP Space resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.ipSpace.TargetSpec | read-only | New target specification for the VMware Cloud Director organization IP space |
| `targetSpec.edgeGatewayId` | string (uuid) |  | Universal Unique identifier |
| `targetSpec.name` | string | yes | Name of the IP space |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
[
  {
    "currentState": {
      "edgeGatewayId": "00000000-0000-0000-0000-000000000000",
      "internalScope": "192.0.2.0/24",
      "name": "string"
    },
    "currentTasks": [
      {
        "errors": [
          {
            "message": "string"
          }
        ],
        "id": "00000000-0000-0000-0000-000000000000",
        "link": "string",
        "status": "ERROR",
        "type": "string"
      }
    ],
    "id": "00000000-0000-0000-0000-000000000000",
    "resourceStatus": "CREATING",
    "targetSpec": {
      "edgeGatewayId": "00000000-0000-0000-0000-000000000000",
      "name": "string"
    },
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace");

print_r($result);
?>
```

## List network ACLs

`GET /v2/vmwareCloudDirector/organization/{organizationId}/networkAcl`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-networkacl

**Status:** Alpha version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/networkAcl/get`

Returns the network access control lists of the organization.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `organizationId` | path | string | yes | Organization ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.NetworkAcl[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.networkAcl.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.networks` | vmwareCloudDirector.networkAcl.Rule[] | read-only | List of rules in this network access control list |
| `currentState.networks[].name` | string | yes | Name of the rule |
| `currentState.networks[].network` | ipBlock | yes | IP block allowed by the rule. Must be in form of <ip-address>/<mask>. |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization network access control list resource |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization network access control list resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.networkAcl.TargetSpec | read-only | Configuration you requested. While a change is still being applied it differs from currentState. |
| `targetSpec.networks` | vmwareCloudDirector.networkAcl.Rule[] | yes | List of network access control list rules associated with the organization |
| `targetSpec.networks[].name` | string | yes | Name of the rule |
| `targetSpec.networks[].network` | ipBlock | yes | IP block allowed by the rule. Must be in form of <ip-address>/<mask>. |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
[
  {
    "currentState": {
      "networks": [
        {
          "name": "string",
          "network": "192.0.2.0/24"
        }
      ]
    },
    "currentTasks": [
      {
        "errors": [
          {
            "message": "string"
          }
        ],
        "id": "00000000-0000-0000-0000-000000000000",
        "link": "string",
        "status": "ERROR",
        "type": "string"
      }
    ],
    "id": "00000000-0000-0000-0000-000000000000",
    "resourceStatus": "CREATING",
    "targetSpec": {
      "networks": [
        {
          "name": "string",
          "network": "192.0.2.0/24"
        }
      ]
    },
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/networkAcl" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/networkAcl")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/networkAcl");

print_r($result);
?>
```

## List organization tasks

`GET /v2/vmwareCloudDirector/organization/{organizationId}/task`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-task

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/task/get`

Returns the asynchronous tasks of the organization.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `organizationId` | path | string | yes | Organization ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | common.Task[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string (date-time) | read-only | Creation date of the task |
| `errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `errors[].message` | string | read-only | Error description |
| `finishedAt` | string (date-time) | read-only | Ending date of the task |
| `id` | string (uuid) | read-only | Unique identifier of the task |
| `link` | string | read-only | Link to the related resource |
| `message` | string | read-only | Description of the task |
| `progress` | common.TaskProgress[] | read-only | Progress steps of the asynchronous operation |
| `progress[].name` | string | read-only | Progress step name |
| `progress[].status` | common.TaskStatusEnum | read-only | Current status of the progress step — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `startedAt` | string (date-time) | read-only | Starting date of the task |
| `status` | common.TaskStatusEnum | read-only | Current global status of the task — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `type` | string | read-only | Type of the task |
| `updatedAt` | string (date-time) | read-only | Last update of the task |

```json
[
  {
    "createdAt": "2024-01-01T12:00:00Z",
    "errors": [
      {
        "message": "string"
      }
    ],
    "finishedAt": "2024-01-01T12:00:00Z",
    "id": "00000000-0000-0000-0000-000000000000",
    "link": "string",
    "message": "string",
    "progress": [
      {
        "name": "string",
        "status": "DONE"
      }
    ],
    "startedAt": "2024-01-01T12:00:00Z",
    "status": "DONE",
    "type": "string",
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/task" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/task")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/task");

print_r($result);
?>
```

## List compute resources

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-compute

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/compute/get`

Returns the compute resources of the virtual datacenter.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.Compute[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.compute.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.billingType` | vmwareCloudDirector.BillingTypeEnum | read-only | Billing type of your organization Virtual DataCenter compute resource — one of `DEMO`, `MONTHLY` |
| `currentState.memoryQuota` | integer | read-only | Memory quota in GB assigned to your organization Virtual DataCenter compute resource |
| `currentState.name` | string | read-only | Name of your organization Virtual DataCenter compute resource |
| `currentState.profile` | string | read-only | Profile of your organization Virtual DataCenter compute resource |
| `currentState.vCPUCount` | integer | read-only | vCPU core count allocated to your organization Virtual DataCenter compute resource |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter compute resource |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter compute resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
[
  {
    "currentState": {
      "billingType": "DEMO",
      "memoryQuota": 0,
      "name": "string",
      "profile": "string",
      "vCPUCount": 0
    },
    "currentTasks": [
      {
        "errors": [
          {
            "message": "string"
          }
        ],
        "id": "00000000-0000-0000-0000-000000000000",
        "link": "string",
        "status": "ERROR",
        "type": "string"
      }
    ],
    "id": "00000000-0000-0000-0000-000000000000",
    "resourceStatus": "CREATING",
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute");

print_r($result);
?>
```

## List storage resources

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-storage

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/storage/get`

Returns the storage resources of the virtual datacenter.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.Storage[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.storage.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.billingType` | vmwareCloudDirector.BillingTypeEnum | read-only | Billing type of your organization Virtual DataCenter storage resource — one of `DEMO`, `MONTHLY` |
| `currentState.capacity` | integer | read-only | Capacity available in GB for the given resource in your organization Virtual DataCenter storage resource |
| `currentState.name` | string | read-only | Name of your organization Virtual DataCenter storage resource |
| `currentState.profile` | string | read-only | Profile of your organization Virtual DataCenter storage resource |
| `currentState.type` | string | read-only | Type of your organization Virtual DataCenter storage resource |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter storage resource |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter storage resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
[
  {
    "currentState": {
      "billingType": "DEMO",
      "capacity": 0,
      "name": "string",
      "profile": "string",
      "type": "string"
    },
    "currentTasks": [
      {
        "errors": [
          {
            "message": "string"
          }
        ],
        "id": "00000000-0000-0000-0000-000000000000",
        "link": "string",
        "status": "ERROR",
        "type": "string"
      }
    ],
    "id": "00000000-0000-0000-0000-000000000000",
    "resourceStatus": "CREATING",
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage");

print_r($result);
?>
```

## List edge gateways

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-edgegateway

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/edgeGateway/get`

Returns the edge gateways of the virtual datacenter.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.EdgeGateway[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.edgeGateway.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.deploymentMode` | vmwareCloudDirector.EdgeGatewayDeploymentModeEnum | read-only | Edge gateway resource deployment mode — one of `ACTIVE_STANDBY`, `DISTRIBUTED_ONLY` |
| `currentState.idurn` | string | read-only | Edge gateway resource VCD ID |
| `currentState.name` | string | read-only | Name of your organization Virtual DataCenter edge gateway resource |
| `currentState.providerGateway` | string | read-only | Name of the provider gateway |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter edge gateway |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Universal Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter edge gateway resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.EdgeGateway.TargetSpec | read-only | New target specification for the VMware Cloud Director organization edge gateway |
| `targetSpec.name` | string | yes | New target specification edge gateway resource |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
[
  {
    "currentState": {
      "deploymentMode": "ACTIVE_STANDBY",
      "idurn": "string",
      "name": "string",
      "providerGateway": "string"
    },
    "currentTasks": [
      {
        "errors": [
          {
            "message": "string"
          }
        ],
        "id": "00000000-0000-0000-0000-000000000000",
        "link": "string",
        "status": "ERROR",
        "type": "string"
      }
    ],
    "id": "00000000-0000-0000-0000-000000000000",
    "resourceStatus": "CREATING",
    "targetSpec": {
      "name": "string"
    },
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway");

print_r($result);
?>
```

## List virtual datacenters

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/get`

Returns the virtual datacenters of the organization.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `iamTags` | query | object |  | Filter resources on IAM tags |
| `organizationId` | path | string | yes | Organization ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.VirtualDataCenterWithIAM[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.virtualDataCenter.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.commercialRange` | vmwareCloudDirector.CommercialRangeEnum | read-only | Commercial range of your VMware Cloud Director project — one of `NSX`, `STANDARD`, `VSAN-NSX` |
| `currentState.description` | string | read-only | Description of your organization Virtual DataCenter |
| `currentState.ipQuota` | integer | read-only | IP address quota assigned to your organization Virtual DataCenter |
| `currentState.memoryQuota` | integer | read-only | Memory quota in GB assigned to your organization Virtual DataCenter |
| `currentState.name` | string | read-only | Name of your organization Virtual DataCenter |
| `currentState.region` | vmwareCloudDirector.RegionNameEnum | read-only | Datacenter where your VMware Cloud Director organization is physically located — one of `ap-south-mum`, `ap-southeast-sgp`, `ap-southeast-syd`, `ca-east-bhs`, `ca-east-tor`, `eu-central-waw`, `eu-west-eri`, `eu-west-gra`, `eu-west-lim`, `eu-west-par`, `eu-west-rbx`, `eu-west-sbg`, … |
| `currentState.storageQuota` | integer | read-only | Storage quota in GB assigned to your organization Virtual DataCenter |
| `currentState.vCPUCount` | integer | read-only | vCPU core count allocated to your organization Virtual DataCenter |
| `currentState.vCPUSpeed` | number | read-only | Effective vCPU speed in GHz for VMs in your organization Virtual DataCenter |
| `currentState.vrack` | string | read-only | vRack name assigned to your organization Virtual DataCenter |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `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 |
| `id` | string | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.virtualDataCenter.TargetSpec | read-only | Configuration you requested. While a change is still being applied it differs from currentState. |
| `targetSpec.description` | string | yes | Description of your VMware Cloud Director organization Virtual DataCenter |
| `targetSpec.vCPUSpeed` | number | yes | Effective vCPU speed in GHz for VMs in your organization Virtual DataCenter |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
[
  {
    "currentState": {
      "commercialRange": "NSX",
      "description": "string",
      "ipQuota": 0,
      "memoryQuota": 0,
      "name": "string",
      "region": "ap-south-mum",
      "storageQuota": 0,
      "vCPUCount": 0,
      "vCPUSpeed": 0,
      "vrack": "string"
    },
    "currentTasks": [
      {
        "errors": [
          {
            "message": "string"
          }
        ],
        "id": "00000000-0000-0000-0000-000000000000",
        "link": "string",
        "status": "ERROR",
        "type": "string"
      }
    ],
    "iam": {
      "displayName": "string",
      "id": "00000000-0000-0000-0000-000000000000",
      "state": "EXPIRED",
      "tags": {
        "key": "string"
      },
      "urn": "string"
    },
    "id": "string",
    "resourceStatus": "CREATING",
    "targetSpec": {
      "description": "string",
      "vCPUSpeed": 0
    },
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter");

print_r($result);
?>
```

## List virtual datacenter tasks

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/task`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-task

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/task/get`

Returns the asynchronous tasks of the virtual datacenter.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | common.Task[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string (date-time) | read-only | Creation date of the task |
| `errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `errors[].message` | string | read-only | Error description |
| `finishedAt` | string (date-time) | read-only | Ending date of the task |
| `id` | string (uuid) | read-only | Unique identifier of the task |
| `link` | string | read-only | Link to the related resource |
| `message` | string | read-only | Description of the task |
| `progress` | common.TaskProgress[] | read-only | Progress steps of the asynchronous operation |
| `progress[].name` | string | read-only | Progress step name |
| `progress[].status` | common.TaskStatusEnum | read-only | Current status of the progress step — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `startedAt` | string (date-time) | read-only | Starting date of the task |
| `status` | common.TaskStatusEnum | read-only | Current global status of the task — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `type` | string | read-only | Type of the task |
| `updatedAt` | string (date-time) | read-only | Last update of the task |

```json
[
  {
    "createdAt": "2024-01-01T12:00:00Z",
    "errors": [
      {
        "message": "string"
      }
    ],
    "finishedAt": "2024-01-01T12:00:00Z",
    "id": "00000000-0000-0000-0000-000000000000",
    "link": "string",
    "message": "string",
    "progress": [
      {
        "name": "string",
        "status": "DONE"
      }
    ],
    "startedAt": "2024-01-01T12:00:00Z",
    "status": "DONE",
    "type": "string",
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/task" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/task")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/task");

print_r($result);
?>
```

## List vRack segments

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-vracksegment

**Status:** Alpha version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/vrackSegment/get`

Returns the vRack segments of the virtual datacenter.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.VrackSegment[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.vrackSegment.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.mode` | vmwareCloudDirector.VrackSegmentModeEnum | read-only | Connection mode for a segment associated to the organization — one of `NSX_EDGE_GATEWAY`, `TAGGED`, `TRUNK`, `UNTAGGED` |
| `currentState.networks` | ipBlock[] | read-only | List of network associated to vrack segment. Must be in form of <ip-address>/<mask>. |
| `currentState.type` | vmwareCloudDirector.VrackSegmentTypeEnum | read-only | Type of vrack segment resource — one of `DEFAULT`, `MIGRATED` |
| `currentState.vlanId` | string | read-only | VLAN ID associated to vrack segment |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter vrack segment resource |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter vrack segment resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.vrackSegment.TargetSpec | read-only | Configuration you requested. While a change is still being applied it differs from currentState. |
| `targetSpec.mode` | vmwareCloudDirector.VrackSegmentModeEnum | yes | Connection mode of the organization Virtual DataCenter vrack segment resource — one of `NSX_EDGE_GATEWAY`, `TAGGED`, `TRUNK`, `UNTAGGED` |
| `targetSpec.networks` | ipBlock[] | yes | List of network gateway CIDRs associated with the organization Virtual DataCenter vrack segment resource. Must be in form of <ip-address>/<mask>. |
| `targetSpec.vlanId` | string | yes | VLAN ID associated with the organization Virtual DataCenter vrack segment resource |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
[
  {
    "currentState": {
      "mode": "NSX_EDGE_GATEWAY",
      "networks": [
        "192.0.2.0/24"
      ],
      "type": "DEFAULT",
      "vlanId": "string"
    },
    "currentTasks": [
      {
        "errors": [
          {
            "message": "string"
          }
        ],
        "id": "00000000-0000-0000-0000-000000000000",
        "link": "string",
        "status": "ERROR",
        "type": "string"
      }
    ],
    "id": "00000000-0000-0000-0000-000000000000",
    "resourceStatus": "CREATING",
    "targetSpec": {
      "mode": "NSX_EDGE_GATEWAY",
      "networks": [
        "192.0.2.0/24"
      ],
      "vlanId": "string"
    },
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment");

print_r($result);
?>
```

## List vRack segment tasks

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}/task`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-vracksegment-id-task

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/vrackSegment/task/get`

Returns the asynchronous tasks of the vRack segment.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |
| `id` | path | string (uuid) | yes | Id |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | common.Task[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string (date-time) | read-only | Creation date of the task |
| `errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `errors[].message` | string | read-only | Error description |
| `finishedAt` | string (date-time) | read-only | Ending date of the task |
| `id` | string (uuid) | read-only | Unique identifier of the task |
| `link` | string | read-only | Link to the related resource |
| `message` | string | read-only | Description of the task |
| `progress` | common.TaskProgress[] | read-only | Progress steps of the asynchronous operation |
| `progress[].name` | string | read-only | Progress step name |
| `progress[].status` | common.TaskStatusEnum | read-only | Current status of the progress step — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `startedAt` | string (date-time) | read-only | Starting date of the task |
| `status` | common.TaskStatusEnum | read-only | Current global status of the task — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `type` | string | read-only | Type of the task |
| `updatedAt` | string (date-time) | read-only | Last update of the task |

```json
[
  {
    "createdAt": "2024-01-01T12:00:00Z",
    "errors": [
      {
        "message": "string"
      }
    ],
    "finishedAt": "2024-01-01T12:00:00Z",
    "id": "00000000-0000-0000-0000-000000000000",
    "link": "string",
    "message": "string",
    "progress": [
      {
        "name": "string",
        "status": "DONE"
      }
    ],
    "startedAt": "2024-01-01T12:00:00Z",
    "status": "DONE",
    "type": "string",
    "updatedAt": "2024-01-01T12:00:00Z"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}/task" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}/task")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}/task");

print_r($result);
?>
```

## Get an organization

`GET /v2/vmwareCloudDirector/organization/{organizationId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/get`

Returns the organization: name, region, billing type, API and web interface URLs, and requested specification.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `organizationId` | path | string | yes | Organization ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.OrganizationWithIAM | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.organization.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.apiUrl` | string | read-only | API URL to interact with your VMware Cloud Director organization on OVHcloud |
| `currentState.billingType` | vmwareCloudDirector.BillingTypeEnum | read-only | Billing type of your VMware Cloud Director project — one of `DEMO`, `MONTHLY` |
| `currentState.description` | string | read-only | Description of your VMware Cloud Director organization on OVHcloud |
| `currentState.fullName` | string | read-only | Human readable full name of your VMware Cloud Director organization |
| `currentState.name` | string | read-only | Name of your VMware Cloud Director organization |
| `currentState.region` | vmwareCloudDirector.RegionNameEnum | read-only | Datacenter where your VMware Cloud Director organization is physically located — one of `ap-south-mum`, `ap-southeast-sgp`, `ap-southeast-syd`, `ca-east-bhs`, `ca-east-tor`, `eu-central-waw`, `eu-west-eri`, `eu-west-gra`, `eu-west-lim`, `eu-west-par`, `eu-west-rbx`, `eu-west-sbg`, … |
| `currentState.spla` | boolean | read-only | SPLA licensing state |
| `currentState.webInterfaceUrl` | string | read-only | URL to administrate your VMware Cloud Director organization on OVHcloud |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the VMware Cloud Director organization |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `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 |
| `id` | string | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the VMware Cloud Director organization. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.organization.TargetSpec | read-only | Configuration you requested. While a change is still being applied it differs from currentState. |
| `targetSpec.description` | string |  | Description of your VMware Cloud Director organization on OVHcloud |
| `targetSpec.fullName` | string | yes | Human readable full name of your VMware Cloud Director organization |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "apiUrl": "string",
    "billingType": "DEMO",
    "description": "string",
    "fullName": "string",
    "name": "string",
    "region": "ap-south-mum",
    "spla": true,
    "webInterfaceUrl": "string"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "iam": {
    "displayName": "string",
    "id": "00000000-0000-0000-0000-000000000000",
    "state": "EXPIRED",
    "tags": {
      "key": "string"
    },
    "urn": "string"
  },
  "id": "string",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "description": "string",
    "fullName": "string"
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}");

print_r($result);
?>
```

## Get an IP space

`GET /v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-ipspace-ipspaceid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/ipSpace/get`

Returns the IP space: name, internal scope and associated edge gateway.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `ipSpaceId` | path | string (uuid) | yes | Ip space ID |
| `organizationId` | path | string | yes | Organization ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.ipSpace | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.ipSpace.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.edgeGatewayId` | string (uuid) | read-only | Universal Unique identifier of the associated edge gateway |
| `currentState.internalScope` | ipBlock | read-only | Network CIDR of the IP space. Must be in form of <ip-address>/<mask>. |
| `currentState.name` | string | read-only | Name of your organization IP Space resource |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization IP Space |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Universal Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization IP Space resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.ipSpace.TargetSpec | read-only | New target specification for the VMware Cloud Director organization IP space |
| `targetSpec.edgeGatewayId` | string (uuid) |  | Universal Unique identifier |
| `targetSpec.name` | string | yes | Name of the IP space |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "edgeGatewayId": "00000000-0000-0000-0000-000000000000",
    "internalScope": "192.0.2.0/24",
    "name": "string"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "edgeGatewayId": "00000000-0000-0000-0000-000000000000",
    "name": "string"
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}");

print_r($result);
?>
```

## Get an IP space task

`GET /v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}/task/{taskId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-ipspace-ipspaceid-task-taskid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/ipSpace/task/get`

Returns the task: type, status, progress steps, errors and dates.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `ipSpaceId` | path | string (uuid) | yes | Ip space ID |
| `organizationId` | path | string | yes | Organization ID |
| `taskId` | path | string (uuid) | yes | Task ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | common.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string (date-time) | read-only | Creation date of the task |
| `errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `errors[].message` | string | read-only | Error description |
| `finishedAt` | string (date-time) | read-only | Ending date of the task |
| `id` | string (uuid) | read-only | Unique identifier of the task |
| `link` | string | read-only | Link to the related resource |
| `message` | string | read-only | Description of the task |
| `progress` | common.TaskProgress[] | read-only | Progress steps of the asynchronous operation |
| `progress[].name` | string | read-only | Progress step name |
| `progress[].status` | common.TaskStatusEnum | read-only | Current status of the progress step — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `startedAt` | string (date-time) | read-only | Starting date of the task |
| `status` | common.TaskStatusEnum | read-only | Current global status of the task — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `type` | string | read-only | Type of the task |
| `updatedAt` | string (date-time) | read-only | Last update of the task |

```json
{
  "createdAt": "2024-01-01T12:00:00Z",
  "errors": [
    {
      "message": "string"
    }
  ],
  "finishedAt": "2024-01-01T12:00:00Z",
  "id": "00000000-0000-0000-0000-000000000000",
  "link": "string",
  "message": "string",
  "progress": [
    {
      "name": "string",
      "status": "DONE"
    }
  ],
  "startedAt": "2024-01-01T12:00:00Z",
  "status": "DONE",
  "type": "string",
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}/task/{taskId}" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}/task/{taskId}")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}/task/{taskId}");

print_r($result);
?>
```

## Get a network ACL

`GET /v2/vmwareCloudDirector/organization/{organizationId}/networkAcl/{id}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-networkacl-id

**Status:** Alpha version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/networkAcl/get`

Returns the IP blocks allowed to reach the organization, as applied and as requested.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (uuid) | yes | Id |
| `organizationId` | path | string | yes | Organization ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.NetworkAcl | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.networkAcl.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.networks` | vmwareCloudDirector.networkAcl.Rule[] | read-only | List of rules in this network access control list |
| `currentState.networks[].name` | string | yes | Name of the rule |
| `currentState.networks[].network` | ipBlock | yes | IP block allowed by the rule. Must be in form of <ip-address>/<mask>. |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization network access control list resource |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization network access control list resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.networkAcl.TargetSpec | read-only | Configuration you requested. While a change is still being applied it differs from currentState. |
| `targetSpec.networks` | vmwareCloudDirector.networkAcl.Rule[] | yes | List of network access control list rules associated with the organization |
| `targetSpec.networks[].name` | string | yes | Name of the rule |
| `targetSpec.networks[].network` | ipBlock | yes | IP block allowed by the rule. Must be in form of <ip-address>/<mask>. |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "networks": [
      {
        "name": "string",
        "network": "192.0.2.0/24"
      }
    ]
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "networks": [
      {
        "name": "string",
        "network": "192.0.2.0/24"
      }
    ]
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/networkAcl/{id}" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/networkAcl/{id}")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/networkAcl/{id}");

print_r($result);
?>
```

## Get an organization task

`GET /v2/vmwareCloudDirector/organization/{organizationId}/task/{taskId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-task-taskid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/task/get`

Returns the task: type, status, progress steps, errors and dates.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `organizationId` | path | string | yes | Organization ID |
| `taskId` | path | string (uuid) | yes | Task ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | common.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string (date-time) | read-only | Creation date of the task |
| `errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `errors[].message` | string | read-only | Error description |
| `finishedAt` | string (date-time) | read-only | Ending date of the task |
| `id` | string (uuid) | read-only | Unique identifier of the task |
| `link` | string | read-only | Link to the related resource |
| `message` | string | read-only | Description of the task |
| `progress` | common.TaskProgress[] | read-only | Progress steps of the asynchronous operation |
| `progress[].name` | string | read-only | Progress step name |
| `progress[].status` | common.TaskStatusEnum | read-only | Current status of the progress step — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `startedAt` | string (date-time) | read-only | Starting date of the task |
| `status` | common.TaskStatusEnum | read-only | Current global status of the task — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `type` | string | read-only | Type of the task |
| `updatedAt` | string (date-time) | read-only | Last update of the task |

```json
{
  "createdAt": "2024-01-01T12:00:00Z",
  "errors": [
    {
      "message": "string"
    }
  ],
  "finishedAt": "2024-01-01T12:00:00Z",
  "id": "00000000-0000-0000-0000-000000000000",
  "link": "string",
  "message": "string",
  "progress": [
    {
      "name": "string",
      "status": "DONE"
    }
  ],
  "startedAt": "2024-01-01T12:00:00Z",
  "status": "DONE",
  "type": "string",
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/task/{taskId}" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/task/{taskId}")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/task/{taskId}");

print_r($result);
?>
```

## Get a virtual datacenter

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/get`

Returns the virtual datacenter: commercial range, region, vCPU, memory, storage and IP quotas, and vRack.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.VirtualDataCenterWithIAM | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.virtualDataCenter.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.commercialRange` | vmwareCloudDirector.CommercialRangeEnum | read-only | Commercial range of your VMware Cloud Director project — one of `NSX`, `STANDARD`, `VSAN-NSX` |
| `currentState.description` | string | read-only | Description of your organization Virtual DataCenter |
| `currentState.ipQuota` | integer | read-only | IP address quota assigned to your organization Virtual DataCenter |
| `currentState.memoryQuota` | integer | read-only | Memory quota in GB assigned to your organization Virtual DataCenter |
| `currentState.name` | string | read-only | Name of your organization Virtual DataCenter |
| `currentState.region` | vmwareCloudDirector.RegionNameEnum | read-only | Datacenter where your VMware Cloud Director organization is physically located — one of `ap-south-mum`, `ap-southeast-sgp`, `ap-southeast-syd`, `ca-east-bhs`, `ca-east-tor`, `eu-central-waw`, `eu-west-eri`, `eu-west-gra`, `eu-west-lim`, `eu-west-par`, `eu-west-rbx`, `eu-west-sbg`, … |
| `currentState.storageQuota` | integer | read-only | Storage quota in GB assigned to your organization Virtual DataCenter |
| `currentState.vCPUCount` | integer | read-only | vCPU core count allocated to your organization Virtual DataCenter |
| `currentState.vCPUSpeed` | number | read-only | Effective vCPU speed in GHz for VMs in your organization Virtual DataCenter |
| `currentState.vrack` | string | read-only | vRack name assigned to your organization Virtual DataCenter |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `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 |
| `id` | string | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.virtualDataCenter.TargetSpec | read-only | Configuration you requested. While a change is still being applied it differs from currentState. |
| `targetSpec.description` | string | yes | Description of your VMware Cloud Director organization Virtual DataCenter |
| `targetSpec.vCPUSpeed` | number | yes | Effective vCPU speed in GHz for VMs in your organization Virtual DataCenter |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "commercialRange": "NSX",
    "description": "string",
    "ipQuota": 0,
    "memoryQuota": 0,
    "name": "string",
    "region": "ap-south-mum",
    "storageQuota": 0,
    "vCPUCount": 0,
    "vCPUSpeed": 0,
    "vrack": "string"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "iam": {
    "displayName": "string",
    "id": "00000000-0000-0000-0000-000000000000",
    "state": "EXPIRED",
    "tags": {
      "key": "string"
    },
    "urn": "string"
  },
  "id": "string",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "description": "string",
    "vCPUSpeed": 0
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}");

print_r($result);
?>
```

## Get an edge gateway task

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}/task/{taskId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-edgegateway-edgegatewayid-task-taskid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/edgeGateway/task/get`

Returns the task: type, status, progress steps, errors and dates.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `edgeGatewayId` | path | string (uuid) | yes | Edge gateway ID |
| `organizationId` | path | string | yes | Organization ID |
| `taskId` | path | string (uuid) | yes | Task ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | common.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string (date-time) | read-only | Creation date of the task |
| `errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `errors[].message` | string | read-only | Error description |
| `finishedAt` | string (date-time) | read-only | Ending date of the task |
| `id` | string (uuid) | read-only | Unique identifier of the task |
| `link` | string | read-only | Link to the related resource |
| `message` | string | read-only | Description of the task |
| `progress` | common.TaskProgress[] | read-only | Progress steps of the asynchronous operation |
| `progress[].name` | string | read-only | Progress step name |
| `progress[].status` | common.TaskStatusEnum | read-only | Current status of the progress step — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `startedAt` | string (date-time) | read-only | Starting date of the task |
| `status` | common.TaskStatusEnum | read-only | Current global status of the task — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `type` | string | read-only | Type of the task |
| `updatedAt` | string (date-time) | read-only | Last update of the task |

```json
{
  "createdAt": "2024-01-01T12:00:00Z",
  "errors": [
    {
      "message": "string"
    }
  ],
  "finishedAt": "2024-01-01T12:00:00Z",
  "id": "00000000-0000-0000-0000-000000000000",
  "link": "string",
  "message": "string",
  "progress": [
    {
      "name": "string",
      "status": "DONE"
    }
  ],
  "startedAt": "2024-01-01T12:00:00Z",
  "status": "DONE",
  "type": "string",
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}/task/{taskId}" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}/task/{taskId}")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}/task/{taskId}");

print_r($result);
?>
```

## Get a compute resource

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute/{computeId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-compute-computeid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/compute/get`

Returns the compute resource: profile, vCPU count, memory quota and billing type.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `computeId` | path | string (uuid) | yes | Compute ID |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.Compute | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.compute.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.billingType` | vmwareCloudDirector.BillingTypeEnum | read-only | Billing type of your organization Virtual DataCenter compute resource — one of `DEMO`, `MONTHLY` |
| `currentState.memoryQuota` | integer | read-only | Memory quota in GB assigned to your organization Virtual DataCenter compute resource |
| `currentState.name` | string | read-only | Name of your organization Virtual DataCenter compute resource |
| `currentState.profile` | string | read-only | Profile of your organization Virtual DataCenter compute resource |
| `currentState.vCPUCount` | integer | read-only | vCPU core count allocated to your organization Virtual DataCenter compute resource |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter compute resource |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter compute resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "billingType": "DEMO",
    "memoryQuota": 0,
    "name": "string",
    "profile": "string",
    "vCPUCount": 0
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute/{computeId}" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute/{computeId}")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute/{computeId}");

print_r($result);
?>
```

## Get a storage resource

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage/{storageId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-storage-storageid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/storage/get`

Returns the storage resource: profile, type, capacity and billing type.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `organizationId` | path | string | yes | Organization ID |
| `storageId` | path | string (uuid) | yes | Storage ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.Storage | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.storage.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.billingType` | vmwareCloudDirector.BillingTypeEnum | read-only | Billing type of your organization Virtual DataCenter storage resource — one of `DEMO`, `MONTHLY` |
| `currentState.capacity` | integer | read-only | Capacity available in GB for the given resource in your organization Virtual DataCenter storage resource |
| `currentState.name` | string | read-only | Name of your organization Virtual DataCenter storage resource |
| `currentState.profile` | string | read-only | Profile of your organization Virtual DataCenter storage resource |
| `currentState.type` | string | read-only | Type of your organization Virtual DataCenter storage resource |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter storage resource |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter storage resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "billingType": "DEMO",
    "capacity": 0,
    "name": "string",
    "profile": "string",
    "type": "string"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage/{storageId}" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage/{storageId}")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage/{storageId}");

print_r($result);
?>
```

## Get a virtual datacenter task

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/task/{taskId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-task-taskid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/task/get`

Returns the task: type, status, progress steps, errors and dates.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `organizationId` | path | string | yes | Organization ID |
| `taskId` | path | string (uuid) | yes | Task ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | common.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string (date-time) | read-only | Creation date of the task |
| `errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `errors[].message` | string | read-only | Error description |
| `finishedAt` | string (date-time) | read-only | Ending date of the task |
| `id` | string (uuid) | read-only | Unique identifier of the task |
| `link` | string | read-only | Link to the related resource |
| `message` | string | read-only | Description of the task |
| `progress` | common.TaskProgress[] | read-only | Progress steps of the asynchronous operation |
| `progress[].name` | string | read-only | Progress step name |
| `progress[].status` | common.TaskStatusEnum | read-only | Current status of the progress step — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `startedAt` | string (date-time) | read-only | Starting date of the task |
| `status` | common.TaskStatusEnum | read-only | Current global status of the task — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `type` | string | read-only | Type of the task |
| `updatedAt` | string (date-time) | read-only | Last update of the task |

```json
{
  "createdAt": "2024-01-01T12:00:00Z",
  "errors": [
    {
      "message": "string"
    }
  ],
  "finishedAt": "2024-01-01T12:00:00Z",
  "id": "00000000-0000-0000-0000-000000000000",
  "link": "string",
  "message": "string",
  "progress": [
    {
      "name": "string",
      "status": "DONE"
    }
  ],
  "startedAt": "2024-01-01T12:00:00Z",
  "status": "DONE",
  "type": "string",
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/task/{taskId}" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/task/{taskId}")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/task/{taskId}");

print_r($result);
?>
```

## Get a vRack segment

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-vracksegment-id

**Status:** Alpha version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/vrackSegment/get`

Returns the vRack segment: VLAN ID, networks, connection mode and type.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (uuid) | yes | Id |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.VrackSegment | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.vrackSegment.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.mode` | vmwareCloudDirector.VrackSegmentModeEnum | read-only | Connection mode for a segment associated to the organization — one of `NSX_EDGE_GATEWAY`, `TAGGED`, `TRUNK`, `UNTAGGED` |
| `currentState.networks` | ipBlock[] | read-only | List of network associated to vrack segment. Must be in form of <ip-address>/<mask>. |
| `currentState.type` | vmwareCloudDirector.VrackSegmentTypeEnum | read-only | Type of vrack segment resource — one of `DEFAULT`, `MIGRATED` |
| `currentState.vlanId` | string | read-only | VLAN ID associated to vrack segment |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter vrack segment resource |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter vrack segment resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.vrackSegment.TargetSpec | read-only | Configuration you requested. While a change is still being applied it differs from currentState. |
| `targetSpec.mode` | vmwareCloudDirector.VrackSegmentModeEnum | yes | Connection mode of the organization Virtual DataCenter vrack segment resource — one of `NSX_EDGE_GATEWAY`, `TAGGED`, `TRUNK`, `UNTAGGED` |
| `targetSpec.networks` | ipBlock[] | yes | List of network gateway CIDRs associated with the organization Virtual DataCenter vrack segment resource. Must be in form of <ip-address>/<mask>. |
| `targetSpec.vlanId` | string | yes | VLAN ID associated with the organization Virtual DataCenter vrack segment resource |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "mode": "NSX_EDGE_GATEWAY",
    "networks": [
      "192.0.2.0/24"
    ],
    "type": "DEFAULT",
    "vlanId": "string"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "mode": "NSX_EDGE_GATEWAY",
    "networks": [
      "192.0.2.0/24"
    ],
    "vlanId": "string"
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}");

print_r($result);
?>
```

## Get an edge gateway

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-edgegateway-edgegatewayid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/edgeGateway/get`

Returns the edge gateway: name, deployment mode, provider gateway and VMware Cloud Director ID.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `edgeGatewayId` | path | string (uuid) | yes | Edge gateway ID |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.EdgeGateway | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.edgeGateway.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.deploymentMode` | vmwareCloudDirector.EdgeGatewayDeploymentModeEnum | read-only | Edge gateway resource deployment mode — one of `ACTIVE_STANDBY`, `DISTRIBUTED_ONLY` |
| `currentState.idurn` | string | read-only | Edge gateway resource VCD ID |
| `currentState.name` | string | read-only | Name of your organization Virtual DataCenter edge gateway resource |
| `currentState.providerGateway` | string | read-only | Name of the provider gateway |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter edge gateway |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Universal Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter edge gateway resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.EdgeGateway.TargetSpec | read-only | New target specification for the VMware Cloud Director organization edge gateway |
| `targetSpec.name` | string | yes | New target specification edge gateway resource |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "deploymentMode": "ACTIVE_STANDBY",
    "idurn": "string",
    "name": "string",
    "providerGateway": "string"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "name": "string"
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}");

print_r($result);
?>
```

## Get a vRack segment task

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}/task/{taskId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-vracksegment-id-task-taskid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/vrackSegment/task/get`

Returns the task: type, status, progress steps, errors and dates.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (uuid) | yes | Id |
| `organizationId` | path | string | yes | Organization ID |
| `taskId` | path | string (uuid) | yes | Task ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | common.Task | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `createdAt` | string (date-time) | read-only | Creation date of the task |
| `errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `errors[].message` | string | read-only | Error description |
| `finishedAt` | string (date-time) | read-only | Ending date of the task |
| `id` | string (uuid) | read-only | Unique identifier of the task |
| `link` | string | read-only | Link to the related resource |
| `message` | string | read-only | Description of the task |
| `progress` | common.TaskProgress[] | read-only | Progress steps of the asynchronous operation |
| `progress[].name` | string | read-only | Progress step name |
| `progress[].status` | common.TaskStatusEnum | read-only | Current status of the progress step — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `startedAt` | string (date-time) | read-only | Starting date of the task |
| `status` | common.TaskStatusEnum | read-only | Current global status of the task — one of `DONE`, `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `type` | string | read-only | Type of the task |
| `updatedAt` | string (date-time) | read-only | Last update of the task |

```json
{
  "createdAt": "2024-01-01T12:00:00Z",
  "errors": [
    {
      "message": "string"
    }
  ],
  "finishedAt": "2024-01-01T12:00:00Z",
  "id": "00000000-0000-0000-0000-000000000000",
  "link": "string",
  "message": "string",
  "progress": [
    {
      "name": "string",
      "status": "DONE"
    }
  ],
  "startedAt": "2024-01-01T12:00:00Z",
  "status": "DONE",
  "type": "string",
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}/task/{taskId}" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}/task/{taskId}")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}/task/{taskId}");

print_r($result);
?>
```

## List regions

`GET /v2/vmwareCloudDirector/reference/region`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-reference-region

**Status:** Stable production version

Returns the regions and the datacenters where resources can be deployed.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `X-Pagination-Cursor` | header | string |  | Pagination cursor |
| `X-Pagination-Size` | header | integer |  | Pagination size |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.Region[] | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `location` | vmwareCloudDirector.RegionLocationEnum | read-only | Datacenter the resource runs in, which is where your data is stored — one of `Asia Pacific (Australia - Sydney)`, `Asia Pacific (Singapore -Singapore)`, `Europe (France - Gravelines)`, `Europe (France - Paris)`, `Europe (France - Roubaix)`, `Europe (France - Strasbourg)`, `Europe (Germany - Limburg)`, `Europe (Poland - Warsaw)`, `Europe (United Kingdom - Erith)`, `North America (Canada - East - Beauharnois)`, `North America (US - East - Vinthill)`, `North America (US - West - Hillsboro)` |
| `region` | vmwareCloudDirector.RegionNameEnum | read-only | Geographic area the datacenter belongs to, used to pick where to deploy — one of `ap-south-mum`, `ap-southeast-sgp`, `ap-southeast-syd`, `ca-east-bhs`, `ca-east-tor`, `eu-central-waw`, `eu-west-eri`, `eu-west-gra`, `eu-west-lim`, `eu-west-par`, `eu-west-rbx`, `eu-west-sbg`, … |

```json
[
  {
    "location": "Asia Pacific (Australia - Sydney)",
    "region": "ap-south-mum"
  }
]
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/reference/region" \
  -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("/v2/vmwareCloudDirector/reference/region")

# 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("/v2/vmwareCloudDirector/reference/region");

print_r($result);
?>
```

## List orderable resources

`GET /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/orderableResource`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#get-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-orderableresource

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/orderableResource/get`

Returns the compute and storage profiles that can be ordered for the virtual datacenter, with their quotas, vCPU speed and IOPS per TB.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.OrderableResource | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `compute` | vmwareCloudDirector.orderableResource.Compute[] | read-only | Available orderable compute resources to your organization Virtual DataCenter |
| `compute[].memoryQuota` | integer | read-only | Memory quota in GB assigned to your organization Virtual DataCenter compute profile |
| `compute[].name` | string | read-only | Name of your organization Virtual DataCenter compute profile |
| `compute[].profile` | string | read-only | Profile (plan code) of your organization Virtual DataCenter compute profile |
| `compute[].vCPUCount` | integer | read-only | vCPU core count allocated to your organization Virtual DataCenter compute profile |
| `compute[].vCPUSpeed` | number | read-only | Effective vCPU speed in GHz for VMs in your organization Virtual DataCenter compute profile |
| `storage` | vmwareCloudDirector.orderableResource.Storage[] | read-only | Available orderable storage resources to your organization Virtual DataCenter |
| `storage[].capacity` | integer | read-only | Capacity available in GB for the given resource in your organization Virtual DataCenter storage resource |
| `storage[].name` | string | read-only | Name of your organization Virtual DataCenter storage resource |
| `storage[].performanceClass` | integer | read-only | Minimum ratio of input/output Operations (IOPS) per TB |
| `storage[].profile` | string | read-only | Profile (plan code) of your organization Virtual DataCenter storage resource |
| `storage[].type` | string | read-only | Type of your organization Virtual DataCenter storage resource |

```json
{
  "compute": [
    {
      "memoryQuota": 0,
      "name": "string",
      "profile": "string",
      "vCPUCount": 0,
      "vCPUSpeed": 0
    }
  ],
  "storage": [
    {
      "capacity": 0,
      "name": "string",
      "performanceClass": 0,
      "profile": "string",
      "type": "string"
    }
  ]
}
```

### Example

```bash
curl -X GET \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/orderableResource" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/orderableResource")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/orderableResource");

print_r($result);
?>
```

## Reset the administrator password

`POST /v2/vmwareCloudDirector/organization/{organizationId}/password`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#post-vmwareclouddirector-organization-organizationid-password

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/resetPassword`

Resets the password of the organization administrator. The new password is sent by email to the admin contact.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `organizationId` | path | string | yes | Organization ID |

### Responses

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

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/password" \
  -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("/v2/vmwareCloudDirector/organization/{organizationId}/password")

# 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("/v2/vmwareCloudDirector/organization/{organizationId}/password");

print_r($result);
?>
```

## Create an edge gateway

`POST /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#post-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-edgegateway

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/edgeGateway/create`

Creates an edge gateway in the virtual datacenter, with the name given in `targetSpec`.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Request body (required)

Type: `vmwareCloudDirector.EdgeGateway.Create`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `targetSpec` | vmwareCloudDirector.EdgeGateway.TargetSpec | yes | New target specification for the VMware Cloud Director organization edge gateway |
| `targetSpec.name` | string | yes | New target specification edge gateway resource |

```json
{
  "targetSpec": {
    "name": "string"
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.EdgeGateway | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.edgeGateway.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.deploymentMode` | vmwareCloudDirector.EdgeGatewayDeploymentModeEnum | read-only | Edge gateway resource deployment mode — one of `ACTIVE_STANDBY`, `DISTRIBUTED_ONLY` |
| `currentState.idurn` | string | read-only | Edge gateway resource VCD ID |
| `currentState.name` | string | read-only | Name of your organization Virtual DataCenter edge gateway resource |
| `currentState.providerGateway` | string | read-only | Name of the provider gateway |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter edge gateway |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Universal Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter edge gateway resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.EdgeGateway.TargetSpec | read-only | New target specification for the VMware Cloud Director organization edge gateway |
| `targetSpec.name` | string | yes | New target specification edge gateway resource |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "deploymentMode": "ACTIVE_STANDBY",
    "idurn": "string",
    "name": "string",
    "providerGateway": "string"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "name": "string"
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X POST \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway" \
  -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: vmwareCloudDirector.EdgeGateway.Create
result = client.post("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway",
	targetSpec = None, # New target specification for the VMware Cloud Director organization edge gateway (type: vmwareCloudDirector.EdgeGateway.TargetSpec)
)

# 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: vmwareCloudDirector.EdgeGateway.Create
$result = $ovh->post("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway", array(
	targetSpec => null, // New target specification for the VMware Cloud Director organization edge gateway (type: vmwareCloudDirector.EdgeGateway.TargetSpec)
));

print_r($result);
?>
```

## Delete an edge gateway

`DELETE /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#delete-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-edgegateway-edgegatewayid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/edgeGateway/delete`

Deletes the edge gateway from the virtual datacenter.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `edgeGatewayId` | path | string (uuid) | yes | Edge gateway ID |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

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

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}" \
  -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.delete("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}")

# 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->delete("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}");

print_r($result);
?>
```

## Delete a storage resource

`DELETE /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage/{storageId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#delete-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-storage-storageid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/storage/delete`

Deletes the storage resource from the virtual datacenter.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `organizationId` | path | string | yes | Organization ID |
| `storageId` | path | string (uuid) | yes | Storage ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

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

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage/{storageId}" \
  -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.delete("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage/{storageId}")

# 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->delete("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/storage/{storageId}");

print_r($result);
?>
```

## Delete a compute resource

`DELETE /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute/{computeId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#delete-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-compute-computeid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/compute/delete`

Deletes the compute resource from the virtual datacenter.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `computeId` | path | string (uuid) | yes | Compute ID |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

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

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute/{computeId}" \
  -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.delete("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute/{computeId}")

# 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->delete("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/compute/{computeId}");

print_r($result);
?>
```

## Delete a vRack segment

`DELETE /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#delete-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-vracksegment-id

**Status:** Alpha version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/vrackSegment/delete`

Deletes the vRack segment from the virtual datacenter.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (uuid) | yes | Id |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.VrackSegment | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.vrackSegment.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.mode` | vmwareCloudDirector.VrackSegmentModeEnum | read-only | Connection mode for a segment associated to the organization — one of `NSX_EDGE_GATEWAY`, `TAGGED`, `TRUNK`, `UNTAGGED` |
| `currentState.networks` | ipBlock[] | read-only | List of network associated to vrack segment. Must be in form of <ip-address>/<mask>. |
| `currentState.type` | vmwareCloudDirector.VrackSegmentTypeEnum | read-only | Type of vrack segment resource — one of `DEFAULT`, `MIGRATED` |
| `currentState.vlanId` | string | read-only | VLAN ID associated to vrack segment |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter vrack segment resource |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter vrack segment resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.vrackSegment.TargetSpec | read-only | Configuration you requested. While a change is still being applied it differs from currentState. |
| `targetSpec.mode` | vmwareCloudDirector.VrackSegmentModeEnum | yes | Connection mode of the organization Virtual DataCenter vrack segment resource — one of `NSX_EDGE_GATEWAY`, `TAGGED`, `TRUNK`, `UNTAGGED` |
| `targetSpec.networks` | ipBlock[] | yes | List of network gateway CIDRs associated with the organization Virtual DataCenter vrack segment resource. Must be in form of <ip-address>/<mask>. |
| `targetSpec.vlanId` | string | yes | VLAN ID associated with the organization Virtual DataCenter vrack segment resource |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "mode": "NSX_EDGE_GATEWAY",
    "networks": [
      "192.0.2.0/24"
    ],
    "type": "DEFAULT",
    "vlanId": "string"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "mode": "NSX_EDGE_GATEWAY",
    "networks": [
      "192.0.2.0/24"
    ],
    "vlanId": "string"
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X DELETE \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}" \
  -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.delete("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}")

# 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->delete("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}");

print_r($result);
?>
```

## Update an organization

`PUT /v2/vmwareCloudDirector/organization/{organizationId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#put-vmwareclouddirector-organization-organizationid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/edit`

Updates the full name and description of the organization. Accepted only when the organization is `READY`, then applied asynchronously: `currentState` catches up with `targetSpec`.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `organizationId` | path | string | yes | Organization ID |

### Request body (required)

Type: `vmwareCloudDirector.organization.Update`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `targetSpec` | vmwareCloudDirector.organization.TargetSpec | yes | New target specification for the VMware Cloud Director organization |
| `targetSpec.description` | string |  | Description of your VMware Cloud Director organization on OVHcloud |
| `targetSpec.fullName` | string | yes | Human readable full name of your VMware Cloud Director organization |

```json
{
  "targetSpec": {
    "description": "string",
    "fullName": "string"
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.Organization | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.organization.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.apiUrl` | string | read-only | API URL to interact with your VMware Cloud Director organization on OVHcloud |
| `currentState.billingType` | vmwareCloudDirector.BillingTypeEnum | read-only | Billing type of your VMware Cloud Director project — one of `DEMO`, `MONTHLY` |
| `currentState.description` | string | read-only | Description of your VMware Cloud Director organization on OVHcloud |
| `currentState.fullName` | string | read-only | Human readable full name of your VMware Cloud Director organization |
| `currentState.name` | string | read-only | Name of your VMware Cloud Director organization |
| `currentState.region` | vmwareCloudDirector.RegionNameEnum | read-only | Datacenter where your VMware Cloud Director organization is physically located — one of `ap-south-mum`, `ap-southeast-sgp`, `ap-southeast-syd`, `ca-east-bhs`, `ca-east-tor`, `eu-central-waw`, `eu-west-eri`, `eu-west-gra`, `eu-west-lim`, `eu-west-par`, `eu-west-rbx`, `eu-west-sbg`, … |
| `currentState.spla` | boolean | read-only | SPLA licensing state |
| `currentState.webInterfaceUrl` | string | read-only | URL to administrate your VMware Cloud Director organization on OVHcloud |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the VMware Cloud Director organization |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the VMware Cloud Director organization. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.organization.TargetSpec | read-only | Configuration you requested. While a change is still being applied it differs from currentState. |
| `targetSpec.description` | string |  | Description of your VMware Cloud Director organization on OVHcloud |
| `targetSpec.fullName` | string | yes | Human readable full name of your VMware Cloud Director organization |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "apiUrl": "string",
    "billingType": "DEMO",
    "description": "string",
    "fullName": "string",
    "name": "string",
    "region": "ap-south-mum",
    "spla": true,
    "webInterfaceUrl": "string"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "string",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "description": "string",
    "fullName": "string"
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}" \
  -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: vmwareCloudDirector.organization.Update
result = client.put("/v2/vmwareCloudDirector/organization/{organizationId}",
	targetSpec = None, # New target specification for the VMware Cloud Director organization (type: vmwareCloudDirector.organization.TargetSpec)
)

# 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: vmwareCloudDirector.organization.Update
$result = $ovh->put("/v2/vmwareCloudDirector/organization/{organizationId}", array(
	targetSpec => null, // New target specification for the VMware Cloud Director organization (type: vmwareCloudDirector.organization.TargetSpec)
));

print_r($result);
?>
```

## Update an IP space

`PUT /v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#put-vmwareclouddirector-organization-organizationid-ipspace-ipspaceid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/ipSpace/edit`

Renames the IP space or associates it with another edge gateway. Accepted only when the IP space is `READY`, then applied asynchronously: `currentState` catches up with `targetSpec`.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `ipSpaceId` | path | string (uuid) | yes | Ip space ID |
| `organizationId` | path | string | yes | Organization ID |

### Request body (required)

Type: `vmwareCloudDirector.ipSpace.Update`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `targetSpec` | vmwareCloudDirector.ipSpace.TargetSpec | yes | New target specification for the VMware Cloud Director organization IP Space |
| `targetSpec.edgeGatewayId` | string (uuid) |  | Universal Unique identifier |
| `targetSpec.name` | string | yes | Name of the IP space |

```json
{
  "targetSpec": {
    "edgeGatewayId": "00000000-0000-0000-0000-000000000000",
    "name": "string"
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.ipSpace | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.ipSpace.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.edgeGatewayId` | string (uuid) | read-only | Universal Unique identifier of the associated edge gateway |
| `currentState.internalScope` | ipBlock | read-only | Network CIDR of the IP space. Must be in form of <ip-address>/<mask>. |
| `currentState.name` | string | read-only | Name of your organization IP Space resource |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization IP Space |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Universal Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization IP Space resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.ipSpace.TargetSpec | read-only | New target specification for the VMware Cloud Director organization IP space |
| `targetSpec.edgeGatewayId` | string (uuid) |  | Universal Unique identifier |
| `targetSpec.name` | string | yes | Name of the IP space |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "edgeGatewayId": "00000000-0000-0000-0000-000000000000",
    "internalScope": "192.0.2.0/24",
    "name": "string"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "edgeGatewayId": "00000000-0000-0000-0000-000000000000",
    "name": "string"
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}" \
  -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: vmwareCloudDirector.ipSpace.Update
result = client.put("/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}",
	targetSpec = None, # New target specification for the VMware Cloud Director organization IP Space (type: vmwareCloudDirector.ipSpace.TargetSpec)
)

# 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: vmwareCloudDirector.ipSpace.Update
$result = $ovh->put("/v2/vmwareCloudDirector/organization/{organizationId}/ipSpace/{ipSpaceId}", array(
	targetSpec => null, // New target specification for the VMware Cloud Director organization IP Space (type: vmwareCloudDirector.ipSpace.TargetSpec)
));

print_r($result);
?>
```

## Replace network ACL rules

`PUT /v2/vmwareCloudDirector/organization/{organizationId}/networkAcl/{id}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#put-vmwareclouddirector-organization-organizationid-networkacl-id

**Status:** Alpha version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/networkAcl/edit`

Replaces the rules of the network access control list: each rule allows an IP block to reach the organization. A rule left out of the list is removed. Accepted only when the network ACL is `READY`, then applied asynchronously: `currentState` catches up with `targetSpec`.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (uuid) | yes | Id |
| `organizationId` | path | string | yes | Organization ID |

### Request body (required)

Type: `vmwareCloudDirector.networkAcl.Update`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `targetSpec` | vmwareCloudDirector.networkAcl.TargetSpec | yes | New target specification for the organization network access control list |
| `targetSpec.networks` | vmwareCloudDirector.networkAcl.Rule[] | yes | List of network access control list rules associated with the organization |
| `targetSpec.networks[].name` | string | yes | Name of the rule |
| `targetSpec.networks[].network` | ipBlock | yes | IP block allowed by the rule. Must be in form of <ip-address>/<mask>. |

```json
{
  "targetSpec": {
    "networks": [
      {
        "name": "string",
        "network": "192.0.2.0/24"
      }
    ]
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.NetworkAcl | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.networkAcl.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.networks` | vmwareCloudDirector.networkAcl.Rule[] | read-only | List of rules in this network access control list |
| `currentState.networks[].name` | string | yes | Name of the rule |
| `currentState.networks[].network` | ipBlock | yes | IP block allowed by the rule. Must be in form of <ip-address>/<mask>. |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization network access control list resource |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization network access control list resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.networkAcl.TargetSpec | read-only | Configuration you requested. While a change is still being applied it differs from currentState. |
| `targetSpec.networks` | vmwareCloudDirector.networkAcl.Rule[] | yes | List of network access control list rules associated with the organization |
| `targetSpec.networks[].name` | string | yes | Name of the rule |
| `targetSpec.networks[].network` | ipBlock | yes | IP block allowed by the rule. Must be in form of <ip-address>/<mask>. |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "networks": [
      {
        "name": "string",
        "network": "192.0.2.0/24"
      }
    ]
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "networks": [
      {
        "name": "string",
        "network": "192.0.2.0/24"
      }
    ]
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/networkAcl/{id}" \
  -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: vmwareCloudDirector.networkAcl.Update
result = client.put("/v2/vmwareCloudDirector/organization/{organizationId}/networkAcl/{id}",
	targetSpec = None, # New target specification for the organization network access control list (type: vmwareCloudDirector.networkAcl.TargetSpec)
)

# 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: vmwareCloudDirector.networkAcl.Update
$result = $ovh->put("/v2/vmwareCloudDirector/organization/{organizationId}/networkAcl/{id}", array(
	targetSpec => null, // New target specification for the organization network access control list (type: vmwareCloudDirector.networkAcl.TargetSpec)
));

print_r($result);
?>
```

## Update a virtual datacenter

`PUT /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#put-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/edit`

Updates the description and the vCPU speed of the virtual datacenter. Accepted only when the virtual datacenter is `READY`, then applied asynchronously: `currentState` catches up with `targetSpec`.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Request body (required)

Type: `vmwareCloudDirector.virtualDataCenter.Update`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `targetSpec` | vmwareCloudDirector.virtualDataCenter.TargetSpec | yes | New target specification for the organization Virtual DataCenter |
| `targetSpec.description` | string | yes | Description of your VMware Cloud Director organization Virtual DataCenter |
| `targetSpec.vCPUSpeed` | number | yes | Effective vCPU speed in GHz for VMs in your organization Virtual DataCenter |

```json
{
  "targetSpec": {
    "description": "string",
    "vCPUSpeed": 0
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.VirtualDataCenter | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.virtualDataCenter.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.commercialRange` | vmwareCloudDirector.CommercialRangeEnum | read-only | Commercial range of your VMware Cloud Director project — one of `NSX`, `STANDARD`, `VSAN-NSX` |
| `currentState.description` | string | read-only | Description of your organization Virtual DataCenter |
| `currentState.ipQuota` | integer | read-only | IP address quota assigned to your organization Virtual DataCenter |
| `currentState.memoryQuota` | integer | read-only | Memory quota in GB assigned to your organization Virtual DataCenter |
| `currentState.name` | string | read-only | Name of your organization Virtual DataCenter |
| `currentState.region` | vmwareCloudDirector.RegionNameEnum | read-only | Datacenter where your VMware Cloud Director organization is physically located — one of `ap-south-mum`, `ap-southeast-sgp`, `ap-southeast-syd`, `ca-east-bhs`, `ca-east-tor`, `eu-central-waw`, `eu-west-eri`, `eu-west-gra`, `eu-west-lim`, `eu-west-par`, `eu-west-rbx`, `eu-west-sbg`, … |
| `currentState.storageQuota` | integer | read-only | Storage quota in GB assigned to your organization Virtual DataCenter |
| `currentState.vCPUCount` | integer | read-only | vCPU core count allocated to your organization Virtual DataCenter |
| `currentState.vCPUSpeed` | number | read-only | Effective vCPU speed in GHz for VMs in your organization Virtual DataCenter |
| `currentState.vrack` | string | read-only | vRack name assigned to your organization Virtual DataCenter |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.virtualDataCenter.TargetSpec | read-only | Configuration you requested. While a change is still being applied it differs from currentState. |
| `targetSpec.description` | string | yes | Description of your VMware Cloud Director organization Virtual DataCenter |
| `targetSpec.vCPUSpeed` | number | yes | Effective vCPU speed in GHz for VMs in your organization Virtual DataCenter |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "commercialRange": "NSX",
    "description": "string",
    "ipQuota": 0,
    "memoryQuota": 0,
    "name": "string",
    "region": "ap-south-mum",
    "storageQuota": 0,
    "vCPUCount": 0,
    "vCPUSpeed": 0,
    "vrack": "string"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "string",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "description": "string",
    "vCPUSpeed": 0
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}" \
  -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: vmwareCloudDirector.virtualDataCenter.Update
result = client.put("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}",
	targetSpec = None, # New target specification for the organization Virtual DataCenter (type: vmwareCloudDirector.virtualDataCenter.TargetSpec)
)

# 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: vmwareCloudDirector.virtualDataCenter.Update
$result = $ovh->put("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}", array(
	targetSpec => null, // New target specification for the organization Virtual DataCenter (type: vmwareCloudDirector.virtualDataCenter.TargetSpec)
));

print_r($result);
?>
```

## Update an edge gateway

`PUT /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#put-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-edgegateway-edgegatewayid

**Status:** Stable production version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/edgeGateway/edit`

Renames the edge gateway. Accepted only when the edge gateway is `READY`, then applied asynchronously: `currentState` catches up with `targetSpec`.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `edgeGatewayId` | path | string (uuid) | yes | Edge gateway ID |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Request body (required)

Type: `vmwareCloudDirector.EdgeGateway.Update`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `targetSpec` | vmwareCloudDirector.EdgeGateway.TargetSpec | yes | New target specification of the Organization Virtual DataCenter edge gateway |
| `targetSpec.name` | string | yes | New target specification edge gateway resource |

```json
{
  "targetSpec": {
    "name": "string"
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.EdgeGateway | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.edgeGateway.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.deploymentMode` | vmwareCloudDirector.EdgeGatewayDeploymentModeEnum | read-only | Edge gateway resource deployment mode — one of `ACTIVE_STANDBY`, `DISTRIBUTED_ONLY` |
| `currentState.idurn` | string | read-only | Edge gateway resource VCD ID |
| `currentState.name` | string | read-only | Name of your organization Virtual DataCenter edge gateway resource |
| `currentState.providerGateway` | string | read-only | Name of the provider gateway |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter edge gateway |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Universal Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter edge gateway resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.EdgeGateway.TargetSpec | read-only | New target specification for the VMware Cloud Director organization edge gateway |
| `targetSpec.name` | string | yes | New target specification edge gateway resource |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "deploymentMode": "ACTIVE_STANDBY",
    "idurn": "string",
    "name": "string",
    "providerGateway": "string"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "name": "string"
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}" \
  -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: vmwareCloudDirector.EdgeGateway.Update
result = client.put("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}",
	targetSpec = None, # New target specification of the Organization Virtual DataCenter edge gateway (type: vmwareCloudDirector.EdgeGateway.TargetSpec)
)

# 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: vmwareCloudDirector.EdgeGateway.Update
$result = $ovh->put("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/edgeGateway/{edgeGatewayId}", array(
	targetSpec => null, // New target specification of the Organization Virtual DataCenter edge gateway (type: vmwareCloudDirector.EdgeGateway.TargetSpec)
));

print_r($result);
?>
```

## Update a vRack segment

`PUT /v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}`

Link: https://developers.eu.ovhcloud.com/reference/private-cloud/public-vcf-as-a-service/organization/#put-vmwareclouddirector-organization-organizationid-virtualdatacenter-virtualdatacenterid-vracksegment-id

**Status:** Alpha version  
**IAM actions:** `vmwareCloudDirector:apiovh:organization/virtualDataCenter/vrackSegment/edit`

Updates the VLAN ID, the gateway networks in CIDR notation and the connection mode of the segment. Accepted only when the segment is `READY`, then applied asynchronously: `currentState` catches up with `targetSpec`.

### Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string (uuid) | yes | Id |
| `organizationId` | path | string | yes | Organization ID |
| `virtualDataCenterId` | path | string | yes | Virtual data center ID |

### Request body (required)

Type: `vmwareCloudDirector.vrackSegment.Update`

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `targetSpec` | vmwareCloudDirector.vrackSegment.TargetSpec | yes | New target specification for the organization Virtual DataCenter vrack segment |
| `targetSpec.mode` | vmwareCloudDirector.VrackSegmentModeEnum | yes | Connection mode of the organization Virtual DataCenter vrack segment resource — one of `NSX_EDGE_GATEWAY`, `TAGGED`, `TRUNK`, `UNTAGGED` |
| `targetSpec.networks` | ipBlock[] | yes | List of network gateway CIDRs associated with the organization Virtual DataCenter vrack segment resource. Must be in form of <ip-address>/<mask>. |
| `targetSpec.vlanId` | string | yes | VLAN ID associated with the organization Virtual DataCenter vrack segment resource |

```json
{
  "targetSpec": {
    "mode": "NSX_EDGE_GATEWAY",
    "networks": [
      "192.0.2.0/24"
    ],
    "vlanId": "string"
  }
}
```

### Responses

| Status | Type | Description |
| --- | --- | --- |
| 200 | vmwareCloudDirector.VrackSegment | successful operation |

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `currentState` | vmwareCloudDirector.vrackSegment.CurrentState | read-only | Configuration currently in force on the platform. It catches up with targetSpec once the requested change has been applied. |
| `currentState.mode` | vmwareCloudDirector.VrackSegmentModeEnum | read-only | Connection mode for a segment associated to the organization — one of `NSX_EDGE_GATEWAY`, `TAGGED`, `TRUNK`, `UNTAGGED` |
| `currentState.networks` | ipBlock[] | read-only | List of network associated to vrack segment. Must be in form of <ip-address>/<mask>. |
| `currentState.type` | vmwareCloudDirector.VrackSegmentTypeEnum | read-only | Type of vrack segment resource — one of `DEFAULT`, `MIGRATED` |
| `currentState.vlanId` | string | read-only | VLAN ID associated to vrack segment |
| `currentTasks` | common.CurrentTask[] | read-only | Asynchronous operations ongoing on the organization Virtual DataCenter vrack segment resource |
| `currentTasks[].errors` | common.TaskError[] | read-only | Errors that occurred on the task |
| `currentTasks[].errors[].message` | string | read-only | Error description |
| `currentTasks[].id` | string (uuid) | read-only | Identifier of the current task |
| `currentTasks[].link` | string | read-only | Link to the task details |
| `currentTasks[].status` | common.CurrentTaskStatusEnum | read-only | Current global status of the current task — one of `ERROR`, `PENDING`, `RUNNING`, `SCHEDULED`, `WAITING_USER_INPUT` |
| `currentTasks[].type` | string | read-only | Type of the current task |
| `id` | string (uuid) | read-only | Unique identifier |
| `resourceStatus` | common.ResourceStatusEnum | read-only | Reflects the readiness of the organization Virtual DataCenter vrack segment resource. A new target specification request will be accepted only in `READY` status. — one of `CREATING`, `CREATION_PLANNED`, `DELETING`, `ERROR`, `OUT_OF_SYNC`, `READY`, `SUSPENDED`, `UNKNOWN`, `UPDATING` |
| `targetSpec` | vmwareCloudDirector.vrackSegment.TargetSpec | read-only | Configuration you requested. While a change is still being applied it differs from currentState. |
| `targetSpec.mode` | vmwareCloudDirector.VrackSegmentModeEnum | yes | Connection mode of the organization Virtual DataCenter vrack segment resource — one of `NSX_EDGE_GATEWAY`, `TAGGED`, `TRUNK`, `UNTAGGED` |
| `targetSpec.networks` | ipBlock[] | yes | List of network gateway CIDRs associated with the organization Virtual DataCenter vrack segment resource. Must be in form of <ip-address>/<mask>. |
| `targetSpec.vlanId` | string | yes | VLAN ID associated with the organization Virtual DataCenter vrack segment resource |
| `updatedAt` | string (date-time) | read-only | Date and time this resource was last modified |

```json
{
  "currentState": {
    "mode": "NSX_EDGE_GATEWAY",
    "networks": [
      "192.0.2.0/24"
    ],
    "type": "DEFAULT",
    "vlanId": "string"
  },
  "currentTasks": [
    {
      "errors": [
        {
          "message": "string"
        }
      ],
      "id": "00000000-0000-0000-0000-000000000000",
      "link": "string",
      "status": "ERROR",
      "type": "string"
    }
  ],
  "id": "00000000-0000-0000-0000-000000000000",
  "resourceStatus": "CREATING",
  "targetSpec": {
    "mode": "NSX_EDGE_GATEWAY",
    "networks": [
      "192.0.2.0/24"
    ],
    "vlanId": "string"
  },
  "updatedAt": "2024-01-01T12:00:00Z"
}
```

### Example

```bash
curl -X PUT \
  "https://api.eu.ovhcloud.com/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}" \
  -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: vmwareCloudDirector.vrackSegment.Update
result = client.put("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}",
	targetSpec = None, # New target specification for the organization Virtual DataCenter vrack segment (type: vmwareCloudDirector.vrackSegment.TargetSpec)
)

# 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: vmwareCloudDirector.vrackSegment.Update
$result = $ovh->put("/v2/vmwareCloudDirector/organization/{organizationId}/virtualDataCenter/{virtualDataCenterId}/vrackSegment/{id}", array(
	targetSpec => null, // New target specification for the organization Virtual DataCenter vrack segment (type: vmwareCloudDirector.vrackSegment.TargetSpec)
));

print_r($result);
?>
```
