# Account Endpoints

### List Accounts

Lists all Frame accounts.

<span class="badge badge-get">GET</span> <code>/accounts/</code>

#### Request Parameters

| Name            | Description                                                            | Param Type   | Data Type | Required |
| --------------- | ---------------------------------------------------------------------- | ------------ | --------- | -------- |
| name            | Name or portion of name you would like to use for searching/filtering. | Search Query | string    | False    |
| organization_id | Frame Organization ID you'd would like to use for searching/filtering  | Search Query | string    | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "website": null,
    "name": "Aca Ivic Local",
    "last_publish": "2018-07-12T11:26:18.879116",
    "id": "b614cb6f-796b-4371-86cb-465d6dfc433b",
    "description": null,
    "active": true
  }
]
```

```bash
Status: 200 OK
```

</details>



---

### List Account Details

Returns details of an account.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id</code>

#### Request Parameters

| Name | Description      | Param Type | Data Type | Required |
| ---- | ---------------- | ---------- | --------- | -------- |
| id   | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/31cbf42c-8767-486c-9ed3-d6a804q7cfe1"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "active": false,
  "description": null,
  "id": "31cbf42c-8767-486c-9ed3-d6a804q7cfe1",
  "inserted_at": "2020-02-27T19:08:53.892063Z",
  "kind": "frame",
  "last_publish": null,
  "name": "Example Account",
  "notes": null,
  "url_slug": "example-account-slug",
  "website": null
}
```

```bash
Status: 200 OK
```

</details>



---

### List Account Availability Zones

Lists all availability zones of a Frame account.

<span class="badge badge-get">GET</span> <code>/accounts/:id/availability_zones</code>

#### Request Parameters

| Name | Description      | Param Type | Data Type | Required |
| ---- | ---------------- | ---------- | --------- | -------- |
| id   | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/availability_zones"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
["eu-central-1a", "eu-central-1b", "eu-central-1c"]
```

```bash
Status: 200 OK
```

</details>



---

### List Account Upgrade Groups

Lists all upgrade groups of the account.

<span class="badge badge-get">GET</span> <code>/accounts/:id/deployment_groups</code>

#### Request Parameters

| Name | Description      | Param Type | Data Type | Required |
| ---- | ---------------- | ---------- | --------- | -------- |
| id   | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/deployment_groups"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "id": "upgrade-group-1",
    "description": "Upgrade group 1 description",
    "not_selectable": false,
    "name": "Upgrade Group 1"
  }
]
```

```bash
Status: 200 OK
```

</details>



---

### Get Account User Volumes Settings

Returns user volumes settings of a Frame account.

<span class="badge badge-get">GET</span> <code>/accounts/:id/user_volumes_settings</code>

#### Request Parameters

| Name | Description      | Param Type | Data Type | Required |
| ---- | ---------------- | ---------- | --------- | -------- |
| id   | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/user_volumes_settings"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "user_personal_drive": {
    "enabled": true,
    "size": 1
  },
  "user_profile": {
    "enabled": true,
    "size": 1
  }
}
```

```bash
Status: 200 OK
```

</details>



---

### Get Account Domain Join Settings

Returns domain join settings of a Frame account.

<span class="badge badge-get">GET</span> <code>/accounts/:id/domain_join_settings</code>

#### Request Parameters

| Name | Description      | Param Type | Data Type | Required |
| ---- | ---------------- | ---------- | --------- | -------- |
| id   | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/domain_join_settings"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "settings": {
    "promote_user_to_local_admin": false,
    "ad_type": "",
    "delete_terminated_hostnames": false,
    "dns_servers": "",
    "domain_controller_ip": "",
    "domain_name": "",
    "enroll_intune": false,
    "logout_local_user": false,
    "machine_name_prefix": "",
    "service_account_name": "",
    "service_account_password": "",
    "sso_passthrough_enabled": false,
    "target_ou": "",
    "vpc_cidr": ""
  },
  "is_domain_join_available": true,
  "is_domain_join_enabled": true
}
```

```bash
Status: 200 OK
```

</details>



---

### Get Account General Settings

Returns general settings of a Frame account.

<span class="badge badge-get">GET</span> <code>/accounts/:id/general_settings</code>

#### Request Parameters

| Name | Description      | Param Type | Data Type | Required |
| ---- | ---------------- | ---------- | --------- | -------- |
| id   | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/general_settings"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "light_publish_settings": {
    "threshold": 10
  },
  "is_light_publish_enabled": false,
  "host_name_prefix": "IF-",
  "is_generate_session_report_enabled": false,
  "is_test_publish_enabled": false,
  "auto_termination_time": null,
  "is_login_banner_enabled": true,
  "is_terminal_banner_enabled": true,
  "login_banner_settings": {
    "title": "",
    "message": ""
  },
  "terminal_banner_settings": {
    "message": "",
    "color": "#FFFFFF",
    "background_color": "#FFFFFF"
  }
}
```

```bash
Status: 200 OK
```

</details>



---

### Get Account Session Settings

Returns session settings of a Frame account.

<span class="badge badge-get">GET</span> <code>/accounts/:id/session_settings</code>

#### Request Parameters

| Name | Description      | Param Type | Data Type | Required |
| ---- | ---------------- | ---------- | --------- | -------- |
| id   | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/session_settings"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "is_webrtc_enabled": false,
  "advanced_server_arguments": null,
  "advanced_terminal_arguments": null,
  "clipboard_integration": {
    "direction": "bidirectional",
    "is_enabled": true
  },
  "idle_timeout_minutes": 60,
  "is_app_switching_enabled": true,
  "is_camera_enabled": false,
  "is_cpu_display4k_enabled": true,
  "is_download_enabled": true,
  "is_grayscale_enabled": false,
  "is_microphone_enabled": false,
  "is_print_enabled": true,
  "is_settings_dialog_enabled": true,
  "is_upload_enabled": true,
  "is_usb_redirection_enabled": false,
  "max_audio_bit_rate_kbps": 160,
  "max_bandwidth_kbps": 0,
  "max_frame_rate_fps": 20,
  "max_session_duration_minutes": 0,
  "max_video_bit_rate_mbps": 16.0,
  "max_video_quantization": 42,
  "qos_rate_change": 4,
  "reservation_timeout_seconds": 600,
  "scale_video": 1.0,
  "session_preparation_timeout_minutes": 15,
  "terminal_build": "latest",
  "user_inactivity_timeout_minutes": 10,
  "video_buffer_length_ms": 0,
  "yuv444": false
}
```

```bash
Status: 200 OK
```

</details>



---

### Update Account Enterprise Profiles

Updates enterprise profiles of a Frame account. (Should be used only if enabling enterprise profiles or updating its size. In case you want to disable enterprise profiles, you should use disable_enterprise_profiles endpoint instead.)

<span class="badge badge-post">POST</span> <code>/accounts/:id/update_enterprise_profiles</code>

#### Request Parameters

| Name         | Description                                                                                                           | Param Type | Data Type | Required |
| ------------ | --------------------------------------------------------------------------------------------------------------------- | ---------- | --------- | -------- |
| account_id   | ID of the Org the account will be created under                                                                       | URL        | String    | True     |
| user_profile | A JSON object that includes values for the following properties: `enabled` of type boolean and `size` of type integer | Data       | JSON      | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/update_enterprise_profiles"
--data-raw '{
  "user_profile": {
    "enabled": true,
    "size": 1
  }
}'
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "enabled": true,
  "size": 1
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Update Account Personal Drives

Updates personal drives of a Frame account. (Should be used only if enabling personal drives or updating its size. In case you want to disable personal drives, you should use disable_personal_drives endpoint instead.)

<span class="badge badge-post">POST</span> <code>/accounts/:id/update_personal_drives</code>

#### Request Parameters

| Name       | Description                                                  | Param Type | Data Type | Required |
| ---------- | ------------------------------------------------------------ | ---------- | --------- | -------- |
| account_id | ID of the Org the account will be created under              | URL        | String    | True     |
| enabled    | Boolean which determines whether personal drives are enabled | Data       | Boolean   | True     |
| size       | Integer which determines size of personal drives if enabled  | Data       | Integer   | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/update_personal_drives"
--data-raw '{
  "enabled": true,
  "size": 1
  }'
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "enabled": true,
  "size": 1
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Disable Account Enterprise Profiles

Disables enterprise profiles of a Frame account and returns the pending task.

<span class="badge badge-post">POST</span> <code>/accounts/:id/disable_enterprise_profiles</code>

#### Request Parameters

| Name               | Description                                                                                    | Param Type | Data Type | Required |
| ------------------ | ---------------------------------------------------------------------------------------------- | ---------- | --------- | -------- |
| account_id         | ID of the Org the account will be created under                                                | URL        | String    | True     |
| do_backup          | Boolean which determines whether new backups of existing enterprise profiles should be created | Data       | Boolean   | False    |
| delete_all_backups | Boolean which determines whether existing backups should be deleted                            | Data       | Boolean   | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/disable_enterprise_profiles"
--data-raw '{
  "do_backup": false,
  "delete_all_backups": false
  }'
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account_id": "6b9a8c85-dd5b-4c1c-9bf2-ca1ba8e537b7",
  "customer_id": "XXXXXXXX-5ab2-47ef-9f9c-XXXXXXXXXXX",
  "display_name": "Publishing Sandbox to Production",
  "duration_sec": null,
  "external_resource_id": null,
  "finished_at": null,
  "id": "c454d6da-fa30-4dc4-a533-6af2286d1754",
  "inserted_at": "2021-09-29T19:30:57.708442Z",
  "kind": "disable_enterprise_profiles",
  "organization_id": "2fb210e0-e931-4c62-83fd-b31fe13468ca",
  "pool_id": null,
  "progress_info": null,
  "result_info": null,
  "stage": "not_started",
  "started_by": {
    "email": "976bcbc7-945a-4511-b1ca-2a3f60e3cade.img.frame.nutanix.com_third-party-api",
    "first_name": "X",
    "id": "a4da51c5-1c74-45e6-b1ca-2ec739d528d2",
    "identity_provider": "third-party-api",
    "last_name": "X"
  },
  "updated_at": "2021-09-29T19:30:57.708442Z"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Disable Account Personal Drives

Disables personal drives of a Frame account and returns the pending task.

<span class="badge badge-post">POST</span> <code>/accounts/:id/disable_personal_drives</code>

#### Request Parameters

| Name               | Description                                                                                    | Param Type | Data Type | Required |
| ------------------ | ---------------------------------------------------------------------------------------------- | ---------- | --------- | -------- |
| account_id         | ID of the Org the account will be created under                                                | URL        | String    | True     |
| do_backup          | Boolean which determines whether new backups of existing enterprise profiles should be created | Data       | Boolean   | False    |
| delete_all_backups | Boolean which determines whether existing backups should be deleted                            | Data       | Boolean   | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/disable_personal_drives"
--data-raw '{
  "do_backup": false,
  "delete_all_backups": false
  }'
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account_id": "6b9a8c85-dd5b-4c1c-9bf2-ca1ba8e537b7",
  "customer_id": "XXXXXXXX-5ab2-47ef-9f9c-XXXXXXXXXXX",
  "display_name": "Publishing Sandbox to Production",
  "duration_sec": null,
  "external_resource_id": null,
  "finished_at": null,
  "id": "c454d6da-fa30-4dc4-a533-6af2286d1754",
  "inserted_at": "2021-09-29T19:30:57.708442Z",
  "kind": "disable_enterprise_profiles",
  "organization_id": "2fb210e0-e931-4c62-83fd-b31fe13468ca",
  "pool_id": null,
  "progress_info": null,
  "result_info": null,
  "stage": "not_started",
  "started_by": {
    "email": "976bcbc7-945a-4511-b1ca-2a3f60e3cade.img.frame.nutanix.com_third-party-api",
    "first_name": "X",
    "id": "a4da51c5-1c74-45e6-b1ca-2ec739d528d2",
    "identity_provider": "third-party-api",
    "last_name": "X"
  },
  "updated_at": "2021-09-29T19:30:57.708442Z"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Update Account Domain Join Settings

Updates domain join settings of a Frame account and returns pending task.

<span class="badge badge-post">POST</span> <code>/accounts/:id/update_domain_join_settings</code>

#### Request Parameters

| Name                        | Description                                                             | Param Type | Data Type | Required |
| --------------------------- | ----------------------------------------------------------------------- | ---------- | --------- | -------- |
| account_id                  | ID of the Org the account will be created under                         | URL        | String    | True     |
| domain_name                 | Domain name                                                             | Data       | String    | False    |
| service_account_name        | Service account name                                                    | Data       | String    | False    |
| service_account_password    | Service account password                                                | Data       | String    | False    |
| target_ou                   | Target OU                                                               | Data       | String    | False    |
| dns_servers                 | DNS servers                                                             | Data       | String    | False    |
| logout_local_user           | Boolean which determines whether local user should be logged out        | Data       | Boolean   | False    |
| domain_controller_ip        | Domain controller IP                                                    | Data       | String    | False    |
| promote_user_to_local_admin | Boolean which determines whether user should be promoted to local admin | Data       | Boolean   | False    |
| machine_name_prefix         | Machine name prefix                                                     | Data       | String    | False    |
| sso_passthrough_enabled     | Boolean which determines whether SSO Passthrough is enabled             | Data       | Boolean   | False    |
| delete_terminated_hostnames | Boolean which determines whether terminated hostnames should be deleted | Data       | Boolean   | False    |
| ad_type                     | AD type                                                                 | Data       | String    | False    |
| enroll_intune               | Enroll intune?                                                          | Data       | Boolean   | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/update_domain_join_settings"
--data-raw '{
  "domain_name": "",
  "service_account_name: "",
  "service_account_password: "",
  "target_ou": "",
  "dns_servers": "",
  "logout_local_user": false,
  "domain_controller_ip": "",
  "promote_user_to_local_admin": true,
  "machine_name_prefix": "",
  "sso_passthrough_enabled": true,
  "delete_terminated_hostnames": false,
  "ad_type": "",
  "enroll_intune": false
  }'
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "pending_request": {
    "account_id": "6b9a8c85-dd5b-4c1c-9bf2-ca1ba8e537b7",
    "customer_id": "XXXXXXXX-5ab2-47ef-9f9c-XXXXXXXXXXX",
    "display_name": "Publishing Sandbox to Production",
    "duration_sec": null,
    "external_resource_id": null,
    "finished_at": null,
    "id": "c454d6da-fa30-4dc4-a533-6af2286d1754",
    "inserted_at": "2021-09-29T19:30:57.708442Z",
    "kind": "disable_enterprise_profiles",
    "organization_id": "2fb210e0-e931-4c62-83fd-b31fe13468ca",
    "pool_id": null,
    "progress_info": null,
    "result_info": null,
    "stage": "not_started",
    "started_by": {
      "email": "976bcbc7-945a-4511-b1ca-2a3f60e3cade.img.frame.nutanix.com_third-party-api",
      "first_name": "X",
      "id": "a4da51c5-1c74-45e6-b1ca-2ec739d528d2",
      "identity_provider": "third-party-api",
      "last_name": "X"
    },
    "updated_at": "2021-09-29T19:30:57.708442Z"
  }
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Update Account General Settings

Updates general settings of a Frame account.

<span class="badge badge-post">POST</span> <code>/accounts/:id/update_general_settings</code>

#### Request Parameters

| Name                       | Description                                                                | Param Type | Data Type | Required |
| -------------------------- | -------------------------------------------------------------------------- | ---------- | --------- | -------- |
| account_id                 | ID of the Org the account will be created under                            | URL        | String    | True     |
| is_terminal_banner_enabled | Boolean which determines whether terminal banner is enabled                | Data       | Boolean   | True     |
| terminal_banner_settings   | A JSON object with string values "background_color", "color" and "message" | Data       | JSON      | False    |
| is_login_banner_enabled    | Boolean which determines whether login banner is enabled                   | Data       | Boolean   | True     |
| login_banner_settings      | A JSON object with string values "title" and "message"                     | Data       | JSON      | False    |
| is_light_publish_enabled   | Boolean which determines whether light publish is enabled                  | Data       | Boolean   | True     |
| light_publish_settings     | A JSON object with integer value "threshold"                               | Data       | JSON      | False    |
| host_name_prefix           | Host name prefix                                                           | Data       | String    | True     |
| is_test_publish_enabled    | Boolean which determines whether test publish is enabled                   | Data       | Boolean   | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/update_general_settings"
--data-raw '{
  "is_terminal_banner_enabled" true,
  "terminal_banner_settings": {
    "background_color": "#FFFFFF",
    "color": "#000000",
    "message": ""
  },
  "is_login_banner_enabled": true,
  "login_banner_settings": {
    "title": "",
    "message": ""
  },
  "is_light_publish_enabled": true,
  "light_publish_settings": {
    "threshold": 1
  },
  "host_name_prefix": "",
  "is_test_publish_enabled": false
}'
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "is_terminal_banner_enabled" true,
  "terminal_banner_settings": {
    "background_color": "#FFFFFF",
    "color": "#000000",
    "message": ""
  },
  "is_login_banner_enabled": true,
  "login_banner_settings": {
    "title": "",
    "message": ""
  },
  "is_light_publish_enabled": true,
  "light_publish_settings": {
    "threshold": 1
  },
  "host_name_prefix": "",
  "is_test_publish_enabled": false
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Update Account Session Settings

Updates session settings of a Frame account.

<span class="badge badge-post">POST</span> <code>/accounts/:id/update_session_settings</code>

#### Request Parameters

| Name                                | Description                                                                                                                                                    | Param Type | Data Type | Required |
| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | --------- | -------- |
| account_id                          | ID of the Org the account will be created under                                                                                                                | URL        | String    | True     |
| is_app_switching_enabled            | Is application switching enabled?                                                                                                                              | Data       | Boolean   | True     |
| is_microphone_enabled               | Is microphone enabled?                                                                                                                                         | Data       | Boolean   | True     |
| is_camera_enabled                   | Is camera enabled?                                                                                                                                             | Data       | Boolean   | False    |
| is_usb_redirection_enabled          | Is USB redirection enabled?                                                                                                                                    | Data       | Boolean   | False    |
| clipboard_integration               | A JSON object with "is_enabled" boolean value and string value "direction" which has possible values: "local_to_remote", "remote_to_local" and "bidirectional" | Data       | JSON      | True     |
| is_download_enabled                 | Is download enabled?                                                                                                                                           | Data       | Boolean   | True     |
| is_cpu_display4k_enabled            | Is CPU display 4K enabled?                                                                                                                                     | Data       | Boolean   | True     |
| is_upload_enabled                   | Is upload enabled?                                                                                                                                             | Data       | Boolean   | True     |
| is_print_enabled                    | Is print enabled?                                                                                                                                              | Data       | Boolean   | True     |
| reservation_timeout_seconds         | Reservation timeout in seconds                                                                                                                                 | Data       | Integer   | True     |
| user_inactivity_timeout_minutes     | User inactivity timeout in minutes                                                                                                                             | Data       | Integer   | True     |
| idle_timeout_minutes                | Idle timeout in minutes                                                                                                                                        | Data       | Integer   | True     |
| max_session_duration_minutes        | Max session duration in minutes                                                                                                                                | Data       | Integer   | True     |
| session_preparation_timeout_minutes | Session preparation timeout in minutes                                                                                                                         | Data       | Integer   | True     |
| max_bandwidth_kbps                  | Max bandwidth in KBPS                                                                                                                                          | Data       | Integer   | True     |
| max_frame_rate_fps                  | Max Frame rate in FPS                                                                                                                                          | Data       | Integer   | True     |
| max_video_bit_rate_mbps             | Max video bit rate in MBPS                                                                                                                                     | Data       | Integer   | True     |
| max_audio_bit_rate_kbps             | Max audio bit rate in KBPS                                                                                                                                     | Data       | Integer   | True     |
| yuv444                              | Boolean which determines whether YUV444 feature is enabled                                                                                                     | Data       | Boolean   | True     |
| scale_video                         | Scale video                                                                                                                                                    | Data       | Number    | True     |
| max_video_quantization              | Max video quantization                                                                                                                                         | Data       | Integer   | True     |
| qos_rate_change                     | QOS rate change                                                                                                                                                | Data       | Integer   | True     |
| is_grayscale_enabled                | Is grayscale enabled?                                                                                                                                          | Data       | Boolean   | True     |
| is_webrtc_enabled                   | Is webRTC enabled?                                                                                                                                             | Data       | Boolean   | True     |
| video_buffer_length_ms              | Video buffer length in ms                                                                                                                                      | Data       | Integer   | True     |
| is_settings_dialog_enabled          | Is settings dialog enabled?                                                                                                                                    | Data       | Boolean   | True     |
| advanced_terminal_arguments         | Advanced terminal arguments                                                                                                                                    | Data       | String    | False    |
| advanced_server_arguments           | Advanced server arguments                                                                                                                                      | Data       | String    | False    |
| terminal_build                      | Terminal Build                                                                                                                                                 | Data       | String    | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/update_session_settings"
--data-raw '{
  "session_settings": {
    "is_webrtc_enabled": false,
    "advanced_server_arguments": null,
    "advanced_terminal_arguments": null,
    "clipboard_integration": {
      "direction": "bidirectional",
      "is_enabled": true
    },
    "idle_timeout_minutes": 60,
    "is_app_switching_enabled": true,
    "is_camera_enabled": false,
    "is_cpu_display4k_enabled": true,
    "is_download_enabled": true,
    "is_grayscale_enabled": false,
    "is_microphone_enabled": false,
    "is_print_enabled": true,
    "is_settings_dialog_enabled": true,
    "is_upload_enabled": true,
    "is_usb_redirection_enabled": false,
    "max_audio_bit_rate_kbps": 160,
    "max_bandwidth_kbps": 0,
    "max_frame_rate_fps": 20,
    "max_session_duration_minutes": 0,
    "max_video_bit_rate_mbps": 16.0,
    "max_video_quantization": 42,
    "qos_rate_change": 4,
    "reservation_timeout_seconds": 600,
    "scale_video": 1.0,
    "session_preparation_timeout_minutes": 15,
    "terminal_build": "latest",
    "user_inactivity_timeout_minutes": 10,
    "video_buffer_length_ms": 0,
    "yuv444": false
  }
}'
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "is_webrtc_enabled": false,
  "advanced_server_arguments": null,
  "advanced_terminal_arguments": null,
  "clipboard_integration": {
    "direction": "bidirectional",
    "is_enabled": true
  },
  "idle_timeout_minutes": 60,
  "is_app_switching_enabled": true,
  "is_camera_enabled": false,
  "is_cpu_display4k_enabled": true,
  "is_download_enabled": true,
  "is_grayscale_enabled": false,
  "is_microphone_enabled": false,
  "is_print_enabled": true,
  "is_settings_dialog_enabled": true,
  "is_upload_enabled": true,
  "is_usb_redirection_enabled": false,
  "max_audio_bit_rate_kbps": 160,
  "max_bandwidth_kbps": 0,
  "max_frame_rate_fps": 20,
  "max_session_duration_minutes": 0,
  "max_video_bit_rate_mbps": 16.0,
  "max_video_quantization": 42,
  "qos_rate_change": 4,
  "reservation_timeout_seconds": 600,
  "scale_video": 1.0,
  "session_preparation_timeout_minutes": 15,
  "terminal_build": "latest",
  "user_inactivity_timeout_minutes": 10,
  "video_buffer_length_ms": 0,
  "yuv444": false
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Publish a Sandbox

Starts the publish action for an account's Sandbox and returns the task ID.

<span class="badge badge-post">POST</span> <code>/accounts/:account_id/publish</code>

#### Request Parameters

| Name | Description      | Param Type | Data Type | Required |
| ---- | ---------------- | ---------- | --------- | -------- |
| id   | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/publish"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account": {
    "active": true,
    "description": null,
    "id": "6b9a8c85-dd5b-4c1c-9bf2-ca1ba8e537b7",
    "inserted_at": "2021-08-24T19:59:29.077406Z",
    "kind": "frame",
    "last_publish": "2021-09-22T16:25:59Z",
    "name": "Example Account",
    "notes": null,
    "url_slug": "example-account",
    "website": null
  },
  "pending_request": {
    "account_id": "6b9a8c85-dd5b-4c1c-9bf2-ca1ba8e537b7",
    "customer_id": "XXXXXXXX-5ab2-47ef-9f9c-XXXXXXXXXXX",
    "display_name": "Publishing Sandbox to Production",
    "duration_sec": null,
    "external_resource_id": null,
    "finished_at": null,
    "id": "c454d6da-fa30-4dc4-a533-6af2286d1754",
    "inserted_at": "2021-09-29T19:30:57.708442Z",
    "kind": "publish_sandbox_to_production",
    "organization_id": "2fb210e0-e931-4c62-83fd-b31fe13468ca",
    "pool_id": null,
    "progress_info": null,
    "result_info": null,
    "stage": "not_started",
    "started_by": {
      "email": "976bcbc7-945a-4511-b1ca-2a3f60e3cade.img.frame.nutanix.com_third-party-api",
      "first_name": "X",
      "id": "a4da51c5-1c74-45e6-b1ca-2ec739d528d2",
      "identity_provider": "third-party-api",
      "last_name": "X"
    },
    "updated_at": "2021-09-29T19:30:57.708442Z"
  }
}
```

```bash
Status: 200 OK
```

</details>



---

### List Publish Tasks

Lists publishing tasks for the given account ID.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/publish/tasks</code>

#### Request Parameters

| Name | Description      | Param Type | Data Type | Required |
| ---- | ---------------- | ---------- | --------- | -------- |
| id   | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/publish/tasks"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "id": "gateway-prod.57186",
    "last_change": "2021-09-08T16:10:27.790959",
    "number_of_instances": 1,
    "request_id": 1853969,
    "status": "completed"
  },
  {
    "id": "gateway-prod.57640",
    "last_change": "2021-09-14T14:54:21.841399",
    "number_of_instances": 1,
    "request_id": 1882914,
    "status": "completed"
  },
  {
    "id": "gateway-prod.57651",
    "last_change": "2021-09-14T16:11:07.401356",
    "number_of_instances": 1,
    "request_id": 1883040,
    "status": "completed"
  },
  {
    "id": "gateway-prod.58427",
    "last_change": "2021-09-22T09:25:58.885327",
    "number_of_instances": 1,
    "request_id": 1922643,
    "status": "completed"
  }
]
```

```bash
Status: 200 OK
```

</details>



---

### Get Publish Status

Returns the publishing status for a given account ID and publish request ID.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/publish/:task_id</code>

#### Request Parameters

| Name    | Description          | Param Type | Data Type | Required |
| ------- | -------------------- | ---------- | --------- | -------- |
| id      | Frame Account ID     | URL        | String    | True     |
| task_id | Task id of a publish | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/publish/${request_id}"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "status": "in_progress",
  "id": "793db0f3-31f7-4cc1-8cd5-741c80407aba"
}
```

```bash
Status: 200 OK
```

</details>



---

### Cancel Publish

Returns details of an account.

<span class="badge badge-delete">DELETE</span> <code>/accounts/:account_id/publish/:task_id</code>

#### Request Parameters

| Name    | Description          | Param Type | Data Type | Required |
| ------- | -------------------- | ---------- | --------- | -------- |
| id      | Frame Account ID     | URL        | String    | True     |
| task_id | Task id of a publish | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X DELETE \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/publish/${task_id}"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```bash
Status: 200 "OK"
```

</details>



---

### List Instance Types

Returns a list of available instance types for the account specified.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/instance_types</code>

#### Request Parameters

| Name | Description      | Param Type | Data Type | Required |
| ---- | ---------------- | ---------- | --------- | -------- |
| id   | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/instance_types"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "display_name": "Air 4GB",
    "external_id": "gateway-prod.1",
    "fgw_compatible": null,
    "gpu": "None",
    "gpu_metadata": null,
    "id": "gateway-prod.1",
    "name": "t2.medium",
    "ram": 4,
    "vcpu": 2
  },
  {
    "display_name": "Pro 122GB",
    "external_id": "gateway-prod.3",
    "fgw_compatible": null,
    "gpu": "1 GPU",
    "gpu_metadata": null,
    "id": "gateway-prod.3",
    "name": "g3.4xlarge",
    "ram": 122,
    "vcpu": 16
  }

  // ... more instance types
]
```

```bash
Status: 200 OK
```

</details>



---

### Change Instance Type for a Persistent Desktop

Changes the instance type for a Persistent Desktop

<span class="badge badge-post">POST</span> <code>/accounts/:account_id/servers/:server_id/update_persistent_desktop_instance_type</code>

#### Request Parameters

| Name             | Description                                                                  | Param Type   | Data Type | Required |
| ---------------- | ---------------------------------------------------------------------------- | ------------ | --------- | -------- |
| account_id       | Frame Account ID                                                             | URL          | string    | True     |
| server_id        | Frame Server ID for the Persistent Desktop                                   | URL          | string    | True     |
| instance_type_id | Endpoint request body payload (`{"instance_type_id": "gateway-prod.61616"}`) | Search Query | string    | True     |

<div class="callout callout-info">
The instance type ID can be found by using the [List Instance Types](account#list-instance-types) endpoint and specifying the `id` for the instance type you want to use
</div>


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
--data-raw '{"instance_type_id" : "gateway-prod.61616" }'
"https://api.console.nutanix.com/v1/accounts/${account_id}/servers/reboot"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

The response after updating the instance type is simply the server object that was updated successfully.

```json
{
  "active": false,
  "cloud_instance_id": "i-0cc3ec91870672ab6",
  "creation_time": "2022-05-12 23:22:31.047114Z",
  "debug": false,
  "desired_status": "stopped",
  "domain_joined": false,
  "external_id": "gateway-prod.61616",
  "id": 61616,
  "in_use": false,
  "instance_type_name": "t3.xlarge",
  "last_change": "2022-06-08 20:35:10.633672Z",
  "launch_time": null,
  "machine_name": "IF-3B1F59DDA36E",
  "machine_status": null,
  "maintenance": false,
  "name": "Unassigned",
  "pool_external_id": "gateway-prod.588775",
  "pool_name": "persistent_desktop_production",
  "private_ip": "10.0.5.62",
  "problem": false,
  "public_hostname": null,
  "public_wsport": 443,
  "recovery": false,
  "reserved": -1,
  "server_ip": null,
  "server_version": "8.4.9.0",
  "status": "stopped",
  "upgrade_version": 0,
  "user_in_session": null,
  "zone": "us-east-2a"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List Applications

Returns a list of applications for the account specified.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/applications</code>

#### Request Parameters

| Name | Description      | Param Type | Data Type | Required |
| ---- | ---------------- | ---------- | --------- | -------- |
| id   | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/applications"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "working_directory": null,
    "path": "C:\\Program Files\\Frame\\FrameExplorer\\FrameExplorer.exe",
    "name": "Frame Explorer",
    "is_updated": false,
    "is_published": true,
    "is_deleted": false,
    "id": "909b74cc-d207-47ed-bd25-2b8088c36912",
    "icon_url": "https://next-cpanel-dev.s3.amazonaws.com/images/apps/frame_explorer.png",
    "arguments": null
  },
  {
    "working_directory": null,
    "path": "C:\\Program Files(x86)\\Google\\Chrome\\Application\\chrome.exe",
    "name": "Google Chrome",
    "is_updated": false,
    "is_published": true,
    "is_deleted": false,
    "id": "e288cac6-87c6-4dcf-bd19-5287f571e774",
    "icon_url": "https://next-cpanel-dev.s3.amazonaws.com/images/apps/google_chrome.png",
    "arguments": null
  },
  {
    "working_directory": null,
    "path": "C:\\Windows\\system32\\notepad.exe",
    "name": "Notepad",
    "is_updated": false,
    "is_published": true,
    "is_deleted": false,
    "id": "547e2eeb-7d6c-4ec8-976e-d0677f23322b",
    "icon_url": "https://next-cpanel-dev.s3.amazonaws.com/images/apps/notepad.png",
    "arguments": null
  }
  // ... more onboarded applications
]
```

```bash
Status: 200 OK
```

</details>



---

### List Session Reports

Returns a list of generated session reports.

<div class="callout callout-info">
You must "Enable Session Reports" in the General tab of the Account Settings for this endpoint to work. If you do not enable this feature, you will get an empty array and HTTP 200 response from your request.
</div>

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/session_reports</code>

#### Request Parameters

| Parameter | Description      | Param Type | Data Type | Required |
| --------- | ---------------- | ---------- | --------- | -------- |
| id        | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/session_reports"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "year": 2018,
    "url": "https://s3-datest.dev.fra.me/datest-session-reports/datest/9rnKxGPdbozby6YA.2018.7.4311c.31.csv.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Expires=900&X-Amz-Credential=QazWsxEdc777%2F20180724%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-SignedHeaders=host&X-Amz-Date=20180724T101921Z&X-Amz-Signature=b77249805c20ddd45d2c38ffed5af6284ee34c57defb33f46911c10ace82dccf",
    "month": 7
  }
]
```

```bash
Status: 200 OK
```

</details>



---

### List Active Sessions

Returns a list of active sessions for all pools on a specified account.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/active_sessions</code>

#### Request Parameters

| Parameter | Description      | Param Type | Data Type | Required |
| --------- | ---------------- | ---------- | --------- | -------- |
| id        | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/active_sessions"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "fail_description": null,
    "id": "gateway-prod.oRXVPyy0rklPJrwG",
    "is_https_connection": true,
    "location_city": "Morgan Hill",
    "location_country": "US",
    "location_distance": 288.4650445335911,
    "pool_id": "gateway-prod.535675",
    "server_address": "prod-34-94-1-114.nutanixframe.com",
    "server_ws_port": "443",
    "start_time": 1632949455,
    "state": "open",
    "storages": [],
    "user": {
      "email": "jason.thompson@nutanix.com",
      "first_name": "Jason",
      "identity_provider": "example-idp-name",
      "last_name": "Thompson"
    },
    "user_uuid": "52b19f2e-c8ae-4f12-beab-f2838ce8dce9"
  }
]
```

```bash
Status: 200 OK
```

</details>



---

### List Recent Sessions

Returns a list of sessions for a given period of time.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/recent_sessions</code>

#### Request Parameters

| Parameter Name | Description                                                                                                                                         | Param Type   | Data Type           | Required |
| -------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------- | -------- |
| id             | Frame Account ID                                                                                                                                    | URL          | string              | True     |
| from_date      | The beginning date range for the query. The date needs to be an ISO 8601 UTC string (with the “Z” suffix). For example: “2021-12-25T23:20:58.128Z”. | Search Query | ISO 8601 UTC String | True     |
| to_date        | The ending date range for the query. The date needs to be an ISO 8601 UTC string (with the “Z” suffix). For example: “2021-12-25T23:20:58.128Z”.    | Search Query | ISO 8601 UTC String | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/recent_sessions?from_date=2021-12-01T23:20:58.128Z&to_date=2021-12-25T23:20:58.128Z"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "end_time": "2021-09-14T16:51:14.858774Z",
    "fail_description": null,
    "hash_id": "LjpnejZqv1Ve7ak5",
    "id": "gateway-prod.LjpnejZqv1Ve7ak5",
    "location": {
      "city": "Morgan Hill",
      "client_ip": "123.32.145.255",
      "county": null,
      "distance": 288.4650445335911
    },
    "pool_id": "gateway-prod.535675",
    "server": {
      "address": null,
      "https": true,
      "id": "gateway-prod.5909980",
      "instance_type": "e2-standard-2-Windows",
      "pool_group_type": "production",
      "wsport": "443"
    },
    "session_duration": 467,
    "start_time": "2021-09-14T16:43:27.322017Z",
    "state": "closed",
    "timeouts": {
      "connection": 120,
      "idle": 600,
      "max_duration": 3600
    },
    "user_uuid": "52b19f2e-c8ae-4f12-beab-f2838ce8dce9"
  },
  {
    "end_time": "2021-09-14T18:01:43.079788Z",
    "fail_description": null,
    "hash_id": "kvg0PbwL1ggDw1Er",
    "id": "gateway-prod.kvg0PbwL1ggDw1Er",
    "location": {
      "city": "Morgan Hill",
      "client_ip": "123.32.145.255",
      "county": null,
      "distance": 288.4650445335911
    },
    "pool_id": "gateway-prod.535674",
    "server": {
      "address": "prod-34-94-251-72.nutanixframe.com",
      "https": true,
      "id": "gateway-prod.5847490",
      "instance_type": "e2-standard-2-Windows",
      "pool_group_type": "sandbox",
      "wsport": "443"
    },
    "session_duration": 521,
    "start_time": "2021-09-14T17:53:01.232834Z",
    "state": "closed",
    "timeouts": {
      "connection": 120,
      "idle": 600,
      "max_duration": 3600
    },
    "user_uuid": "52b19f2e-c8ae-4f12-beab-f2838ce8dce9"
  }
]
```

```bash
Status: 200 OK
```

</details>



---

### List Session Details

Returns information regarding a specific session.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/sessions/:session_id/</code>

#### Request Parameters

| Parameter  | Description      | Param Type | Data Type | Required |
| ---------- | ---------------- | ---------- | --------- | -------- |
| account_id | Frame Account ID | URL        | String    | True     |
| session_id | ID of a session  | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/sessions/${session_id}"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  [
    {
      "fail_description": null,
      "id": "gateway-prod.oRXVPyy0rklPJrwG",
      "is_https_connection": true,
      "location_city": "Morgan Hill",
      "location_country": "US",
      "location_distance": 288.4650445335911,
      "pool_id": "gateway-prod.535675",
      "server_address": "prod-34-94-1-114.nutanixframe.com",
      "server_ws_port": "443",
      "start_time": 1632949455,
      "state": "open",
      "storages": [],
      "user_uuid": "52b19f2e-c8ae-4f12-beab-f2838ce8dce9"
    }
  ]
]
```

```bash
Status: 200 OK
```

</details>



---

### List Session Trails

Returns Session Trails for the Frame Account specified.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/session-trails</code>

#### Request Parameters

| Name            | Description                                                                                                                                         | Param Type   | Data Type           | Required |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------- | -------- |
| account_id      | Frame Account ID                                                                                                                                    | URL          | String              | True     |
| search          | Filters results if the provided string matches against Server ID, Session ID, email address, and a user's full name.                                | Search Query | String              | False    |
| session_start   | The beginning date range for the query. The date needs to be an ISO 8601 UTC string (with the “Z” suffix). For example: “2021-12-25T23:20:58.128Z”. | Search Query | ISO 8601 UTC String | False    |
| session_end     | The ending date range for the query. The date needs to be an ISO 8601 UTC string (with the “Z” suffix). For example: “2021-12-25T23:20:58.128Z”.    | Search Query | ISO 8601 UTC String | False    |
| instance_type   | Filters Session Trails based on a specific instance type ID.                                                                                        | Search Query | String              | False    |
| pool_group_type | Filters Session Trails based on the pool group type (e.g. "sandbox", "test", "production").                                                         | Search Query | String              | False    |
| pool_id         | Filters Session Trails based on provided instance type's pool ID.                                                                                   | Search Query | String              | False    |
| offset          | Used to specify where to start the query. Must be used in conjunction with the limit parameter.                                                     | Search Query | Integer (String)    | False    |
| limit           | Used to specify the “page size” of the query. Must be used in conjunction with the offset parameter.                                                | Search Query | Integer (String)    | False    |
| order           | Specifies the order of the results. Use “asc” for ascending order, and “desc” for descending order.                                                 | Search Query | String              | False    |
| order_by        | Specifies the field of which the ordering should occur. For example, “session_start”, “session_duration”, etc.                                      | Search Query | String              | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/session-trails?limit=50&offset=0&order=desc&order_by=session_start"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "account_id": "084ab7d0-e4ca-4dea-932a-45bf33f02088",
    "bandwidth_kbps_avg": 15921.05,
    "bandwidth_kbps_max": 16128,
    "bandwidth_kbps_min": 14024,
    "city": "Tehama",
    "client_ip": "123.32.145.255",
    "customer_id": "XXXXXXXX-5ab2-47ef-9f9c-XXXXXXXXXXX",
    "distance": 2369.002238311968,
    "fail_description": null,
    "framerate_ps_avg": 19.74,
    "framerate_ps_max": 20,
    "framerate_ps_min": 10,
    "id": "b970ec31-ca07-48c9-8b56-4547a7b1a9f8",
    "instance_type": "t2.large",
    "latency_ms_avg": 110.36,
    "latency_ms_max": 132,
    "latency_ms_min": 106,
    "launchpad_id": "19ca2393-ac2e-4497-939e-757f02c18654",
    "organization_id": "2fb210e0-e931-4c62-83fd-b31fe13468ca",
    "pool_group_type": "sandbox",
    "pool_id": "d54b760c-956a-487b-a675-e113677fe871",
    "pool_instance_type": {
      "bare_metal": null,
      "cpu": null,
      "display_name": "Air 8GB",
      "fgw_compatible": null,
      "gpu": "None",
      "id": "gateway-prod.5",
      "name": "t2.large",
      "ram": 8,
      "vcpu": 2
    },
    "server_id": "gateway-prod.5232637",
    "session_duration": 2391,
    "session_end": "2021-02-25T23:17:27.000000Z",
    "session_id": "gateway-prod.nMOARz25k9LDmGN0",
    "session_start": "2021-02-25T23:15:56.000000Z",
    "time_to_start": 7,
    "user_email": "example.user@company.com",
    "user_first_name": "Example",
    "user_id": "52b19f2e-c8ae-4f12-beab-f2838ce8dce9",
    "user_idp": "example-idp",
    "user_last_name": "User"
  }
  // ... more sessions
]
```

```bash
Status: 200 OK
```

</details>



---

### List Audit Trails

Returns Audit Trails for an account, constrained by a date range and a number of ways to filter & search for granular queries.

<span class="badge badge-get">GET</span> <code>accounts/:account_id/audit-trails</code>

#### Request Parameters

| Name       | Description                                                                                                                                                                              | Param Type   | Data Type           | Required |
| ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------- | -------- |
| account_id | Frame Account ID                                                                                                                                                                         | URL          | String              | True     |
| search     | Filters results if the provided string matches against a user's full name, email, idp, or the Audit Trail kind.                                                                          | Search Query | String              | False    |
| kind       | Filters Audit Trails by wildcard matching against the supplied string. For example, a kind of “launchpad” will return Audit Trails for both createLaunchpad and updateLaunchpad actions. | Search Query | String              | False    |
| from_date  | The beginning date range for the query. The date needs to be an ISO 8601 UTC string (with the “Z” suffix). For example: “2021-12-25T23:20:58.128Z”.                                      | Search Query | ISO 8601 UTC String | False    |
| to_date    | The ending date range for the query. The date needs to be an ISO 8601 UTC string (with the “Z” suffix). For example: “2021-12-25T23:20:58.128Z”.                                         | Search Query | ISO 8601 UTC String | False    |
| offset     | Used to specify where to start a Audit Trails query. Must be used in conjunction with the limit parameter.                                                                               | Search Query | Integer (String)    | False    |
| limit      | Used to specify the “page size” of the Audit Trails query. Must be used in conjunction with the offset parameter.                                                                        | Search Query | Integer (String)    | False    |
| order      | Specifies the order of the results. Use “asc” for ascending order, and “desc” for descending order.                                                                                      | Search Query | String              | False    |
| order_by   | Specifies the field of which the ordering should occur. For example, “session_start”, “session_duration”, etc.                                                                           | Search Query | String              | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/audit-trails?search=jason.thompson@nutanix.com&kind=launchpad"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "id": "7c3dee57-5a7b-4232-a55d-7d5b8e5f595b",
    "user_first_name": "Jason",
    "user_last_name": "Thompson",
    "user_idp": "example-idp-name",
    "user_email": "jason.thompson@nutanix.com",
    "kind": "updateLaunchpad",
    "account_id": "b00636bf-4f08-404e-a7ba-3c2aaa173335",
    "organization_id": "86bcea89-389f-496a-3c75-1df0ce8d96ca",
    "customer_id": "XXXXXXXX-5ab2-47ef-9f9c-XXXXXXXXXXX",
    "inserted_at": "2021-10-15T20:49:13.377350Z"
  },
  {
    "id": "4f62a8e4-1ac7-430b-9f4f-96fa77ff24f5",
    "user_first_name": "Jason",
    "user_last_name": "Thompson",
    "user_idp": "example-idp-name",
    "user_email": "jason.thompson@nutanix.com",
    "kind": "createLaunchpad",
    "account_id": "b00636bf-4f08-404e-a7ba-3c2aaa173335",
    "organization_id": "86bcea89-389f-496a-3c75-1df0ce8d96ca",
    "customer_id": "XXXXXXXX-5ab2-47ef-9f9c-XXXXXXXXXXX",
    "inserted_at": "2021-10-15T20:49:09.833114Z"
  }
  // ... more Audit Trails
]
```

```bash
Status: 200 OK
```

</details>



---

### Start a Session

Starts a headless/clientless session. Use this endpoint to start a session without a browser or FrameApp.
This is typically used for automation and custom workflows (Sandbox installers, CI/CD automations, etc).

Please note that you can use either a token or signed HTTP headers for authentication with this endpoint.

If you use a token for authentication, you will be able to modify metadata for the session (email, first name, last name, etc).

If you use a token, use the header "Authorization: Bearer _token_" instead of the signed headers.

Also note, if you use the signed HTTP headers (Instead of the token), the first and last name will show up as "X" in the audit logs respectively.
Additionaly, your email address will reflect the API provider with a very cryptic looking address.

<span class="badge badge-post">POST</span> <code>/sessions/start</code>

#### Request Parameters

| Parameter                 | Description                                                                                                                                                                                                                                                                                                | Param Type   | Data Type | Required |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | --------- | -------- |
| terminal_configuration_id | The desired Launchpad Terminal Configuration ID                                                                                                                                                                                                                                                            | Search Query | String    | True     |
| options                   | JSON object with multiple options to choose from (All optional) <br />`{ "user_data": "string", "touch": true }`<br/><br />`user_data` passes a string into the remote Windows environment variable `FRAME_USER_DATA`<br /><br />`touch`: if `true` enables touch controls to the session (Touch displays) | Search Query | String    | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "Authorization: Bearer ${token}" \
"https://api.console.nutanix.com/v1/sessions/start" \
--data-raw '{
  "options": {
    "user_data" : "Any string",
    "touch" : "false"
  }
}'
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account_id": "57fa46fc-eda7-484e-b2ec-cc7032c1811a",
  "close_reason_code": "",
  "fail_description": "",
  "id": "gateway-prod.LjpnejWlw0yP7ak5",
  "is_https_connection": "true",
  "location_city": "Oxon Hill",
  "location_country": "US",
  "location_distance": "331.3852962263057",
  "protocol": "webrtc",
  "server_address": "",
  "server_ws_port": "",
  "signaling_server_url": "wss://messaging.console.nutanix.com/socket/websocket",
  "sso_passthrough_public_key": "",
  "start_time_utc_date_time": "2023-03-28T19:15:30.598820Z",
  "state": "init",
  "stun_server_url": "stun:stun.console.nutanix.com",
  "turn_server_url": ""
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Stop a Session

Stops the specified session.

<span class="badge badge-delete">DELETE</span> <code>/accounts/:account_id/sessions/:session_id</code>

#### Request Parameters

| Parameter  | Description      | Param Type | Data Type | Required |
| ---------- | ---------------- | ---------- | --------- | -------- |
| account_id | Frame Account ID | URL        | String    | True     |
| session_id | ID of a session  | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X DELETE \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/sessions/${session_id}"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "fail_description": null,
  "id": "gateway-prod.GykYPnBAvMxPldOW",
  "is_https_connection": true,
  "location_city": "Redding",
  "location_country": "US",
  "location_distance": 127.65657296078405,
  "pool_id": "gateway-prod.557068",
  "server_address": "prod-13-xx-xxx-97.nutanixframe.com",
  "server_ws_port": "443",
  "session_token": null,
  "start_time": 1634330027,
  "state": "closing",
  "storages": [],
  "user_uuid": "84c661ab-60ba-43e0-b7bd-3fa33d49ce05"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Get Sandbox Status

Returns the status of a Sandbox pool on a specified account.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/sandbox/status</code>

#### Request Parameters

| Parameter | Description      | Param Type | Data Type | Required |
| --------- | ---------------- | ---------- | --------- | -------- |
| id        | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/sandbox/status"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "active_servers": 1,
  "active_sessions": 0,
  "available_servers": 1,
  "buffer_servers": 0,
  "max_servers": 1,
  "max_users": 0,
  "min_servers": 0,
  "pool_id": "2d176f51-175d-4b70-8be3-57e67ad84909",
  "running_servers": 1,
  "status": "running_server_available",
  "total_running_servers": 1,
  "total_servers": 1
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Start a Sandbox

Starts the Sandbox server on a specified account.

| Parameter | Description      | Param Type | Data Type | Required |
| --------- | ---------------- | ---------- | --------- | -------- |
| id        | Frame Account ID | URL        | String    | True     |

<span class="badge badge-post">POST</span> <code>/accounts/:account_id/sandbox/start</code>


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/sandbox/start"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account_id": "6b9a8c85-dd5b-4c1c-9bf2-ca1ba8e537b7",
  "customer_id": "XXXXXXXX-5ab2-47ef-9f9c-XXXXXXXXXXX",
  "display_name": "Powering on",
  "duration_sec": null,
  "external_resource_id": null,
  "finished_at": null,
  "id": "291f6621-431d-425b-9edc-15a9b7aa335b",
  "inserted_at": "2021-09-30T17:10:49.867508Z",
  "kind": "power_on",
  "organization_id": "2fb210e0-e931-4c62-83fd-b31fe13468ca",
  "pool_id": "2d176f51-175d-4b70-8be3-57e67ad84909",
  "progress_info": null,
  "result_info": null,
  "stage": "not_started",
  "started_by": {
    "email": "976bcbc7-945a-4511-b1ca-2a3f60e3cade.img.frame.nutanix.com_third-party-api",
    "first_name": "X",
    "id": "a4da51c5-1c74-45e6-b1ca-2ec739d528d2",
    "identity_provider": "third-party-api",
    "last_name": "X"
  },
  "updated_at": "2021-09-30T17:10:49.867508Z"
}
```

```bash
Status: 200 OK
```

</details>



---

### Reboot a Sandbox

Reboots a Sandbox server on a specified account.

| Parameter | Description      | Param Type | Data Type | Required |
| --------- | ---------------- | ---------- | --------- | -------- |
| id        | Frame Account ID | URL        | String    | True     |

<span class="badge badge-post">POST</span> <code>/accounts/:account_id/sandbox/reboot</code>


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/sandbox/reboot"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account_id": "6b9a8c85-dd5b-4c1c-9bf2-ca1ba8e537b7",
  "customer_id": "XXXXXXXX-5ab2-47ef-9f9c-XXXXXXXXXXX",
  "display_name": "Rebooting",
  "duration_sec": null,
  "external_resource_id": null,
  "finished_at": null,
  "id": "291f6621-431d-425b-9edc-15a9b7aa335b",
  "inserted_at": "2021-09-30T17:10:49.867508Z",
  "kind": "power_on",
  "organization_id": "2fb210e0-e931-4c62-83fd-b31fe13468ca",
  "pool_id": "2d176f51-175d-4b70-8be3-57e67ad84909",
  "progress_info": null,
  "result_info": null,
  "stage": "not_started",
  "started_by": {
    "email": "976bcbc7-945a-4511-b1ca-2a3f60e3cade.img.frame.nutanix.com_third-party-api",
    "first_name": "X",
    "id": "a4da51c5-1c74-45e6-b1ca-2ec739d528d2",
    "identity_provider": "third-party-api",
    "last_name": "X"
  },
  "updated_at": "2021-09-30T17:10:49.867508Z"
}
```

```bash
Status: 200 OK
```

</details>



---

### Stop a Sandbox

Stops the Sandbox server on specified account.

<span class="badge badge-post">POST</span> <code>/accounts/:account_id/sandbox/stop</code>

#### Request Parameters

| Parameter | Description      | Param Type | Data Type | Required |
| --------- | ---------------- | ---------- | --------- | -------- |
| id        | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/sandbox/stop"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{}
```

```bash
Status: 202 "Accepted"
```

</details>



---

### List Pools for an Account{#list-pools}

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/pools</code>

#### Request Parameters

| Name | Description       | Param Type | Data Type | Required |
| ---- | ----------------- | ---------- | --------- | -------- |
| id   | Frame Account ID. | URL        | string    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/pools"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "disk_size": 50,
    "external_id": "gateway-prod.535675",
    "id": "4256364f-80af-4abd-9292-741211acf27d",
    "image_family": "GoogleWindows2016",
    "instance_type": "e2-standard-2-Windows",
    "kind": "production",
    "name": "Air 8GB (E2)"
  },
  {
    "disk_size": 50,
    "external_id": "gateway-prod.551557",
    "id": "fc0cc851-0d33-4517-9e67-f6205c762261",
    "image_family": "GoogleWindows2016",
    "instance_type": "custom-2-4096-Windows",
    "kind": "production",
    "name": "Air 4GB"
  }
]
```

```bash
Status: 200 "OK"
```

</details>



---

### List Account's Overall Capacity Settings

Returns the current min, buffer, and max values configured for all pools/instance types in an account.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/elasticity</code>

#### Request Parameters

| Parameter | Description      | Param Type | Data Type | Required |
| --------- | ---------------- | ---------- | --------- | -------- |
| id        | Frame Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/elasticity"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "min_servers": 75,
  "buffer_servers": 20,
  "max_servers": 475
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List Persistent Desktop Capacity Settings

Returns the current Persistent Desktop capacity settings for an account.
This includes values for `number_of_backups_to_save`, `max_users`, and
`keep_instances_running_for_new_users`.

<span class="badge badge-get">GET</span> <code>/accounts/:persistent_account_id/persistent_desktop_elasticity_settings</code>

#### Request Parameters

| Name                  | Description                              | Param Type | Data Type | Required |
| --------------------- | ---------------------------------------- | ---------- | --------- | -------- |
| persistent_account_id | Frame Account ID (must be a persistent). | URL        | string    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${persistent_account_id}/persistent_desktop_elasticity_settings"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "keep_instances_running_for_new_users": false,
  "max_users": 10,
  "number_of_backups_to_save": 1
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List Persistent Desktop Backups for an Account

Returns a list of the Backups for Persistent Desktops in an account.

<span class="badge badge-get">GET</span> <code>/accounts/:persistent_account_id/persistent_desktop_backups</code>

#### Request Parameters

| Name                  | Description                                                                                                                       | Param Type   | Data Type        | Required |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------ | ---------------- | -------- |
| persistent_account_id | Frame Account ID (must be a persistent).                                                                                          | URL          | string           | True     |
| offset                | Used to specify where to start the query from the results (Used for pagination). Must be in conjunction with the limit parameter. | Search Query | Integer (String) | False    |
| limit                 | Used to specify the "page size" of the query. Must be used in conjunction with the offset parameter                               | Search Query | Integer (String) | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${persistent_account_id}/persistent_desktop_backups"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "current_disk_size": 60.0,
  "free_disk_space": 37.198338,
  "id": "gateway-prod.7705597",
  "last_used_time": "2023-04-06T16:15:02.055502",
  "name": "Persistent desktop - David Example - david.example@nutanix.com",
  "pool_id": "091c6494-b7ef-4c7c-9c5f-bdc611b0d66e",
  "session_id": null,
  "status": "available",
  "user_uuid": "b87c7870-efb7-4539-a7d3-91725ba84fea"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List Persistent Desktops in an Account

Returns a list of the Persistent Desktops in an account.

<span class="badge badge-get">GET</span> <code>/accounts/:persistent_account_id/persistent_desktop_servers</code>

#### Request Parameters

| Name                  | Description                                                                                                                       | Param Type   | Data Type        | Required |
| --------------------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------ | ---------------- | -------- |
| persistent_account_id | Frame Account ID (must be a persistent).                                                                                          | URL          | string           | True     |
| offset                | Used to specify where to start the query from the results (Used for pagination). Must be in conjunction with the limit parameter. | Search Query | Integer (String) | False    |
| limit                 | Used to specify the "page size" of the query. Must be used in conjunction with the offset parameter                               | Search Query | Integer (String) | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${persistent_account_id}/persistent_desktop_servers"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "current_disk_size": 60.0,
  "free_disk_space": 37.198338,
  "id": "gateway-prod.7705597",
  "last_used_time": "2023-04-06T16:15:02.055502",
  "name": "Persistent desktop - David Example - david.example@nutanix.com",
  "pool_id": "091c6494-b7ef-4c7c-9c5f-bdc611b0d66e",
  "session_id": null,
  "status": "available",
  "user_uuid": "b87c7870-efb7-4539-a7d3-91725ba84fea"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List Logged In Users

Lists all previously logged in users for an account (And the associated IDP).
<div class="callout callout-info">
This endpoint is required to [reassign persistent desktops](#reassign-persistent-desktop) for persistent Frame Accounts. However, this endpoint can be used with any other account type.
</div>

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/logged_in_users</code>

#### Request Parameters

| Name       | Description                                                                                                                       | Param Type   | Data Type        | Required |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------ | ---------------- | -------- |
| account_id | Frame Account ID                                                                                                                  | URL          | string           | True     |
| offset     | Used to specify where to start the query from the results (Used for pagination). Must be in conjunction with the limit parameter. | Search Query | Integer (String) | False    |
| limit      | Used to specify the "page size" of the query. Must be used in conjunction with the offset parameter                               | Search Query | Integer (String) | False    |
| search     | Used to search/filter for specific results from the returned list of logged in users                                              | Search Query | String           | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/logged_in_users"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "idp": "frame-password",
    "id": "e69e7f7c-83fd-461f-8387-13dbcef87a53",
    "email": "john.doe@example.net"
  }
]
```

```bash
Status: 200 "OK"
```

</details>



---

### Unassign Persistent Desktop

Unassigns the user from their assigned Persistent Desktop server. This allows the administrator to assign that Persistent Desktop server to another user (or terminate the server).

<span class="badge badge-post">POST</span> <code>/accounts/:persistent_account_id/servers/:server_external_id/unassign</code>

#### Request Parameters

| Name                  | Description                                                                      | Param Type | Data Type | Required |
| --------------------- | -------------------------------------------------------------------------------- | ---------- | --------- | -------- |
| persistent_account_id | Frame Account ID (must be a persistent).                                         | URL        | string    | True     |
| server_external_id    | Frame "external" server ID (found by querying [account servers](#list-servers)). | URL        | string    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${persistent_account_id}/servers/${persistent_server_id}/unassign"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "active": false,
  "cloud_instance_id": "i-0cc3ec91870672ab6",
  "creation_time": "2022-05-12 23:22:31.047114Z",
  "debug": false,
  "desired_status": "stopped",
  "domain_joined": false,
  "external_id": "gateway-prod.6810382",
  "id": 6810382,
  "in_use": false,
  "instance_type_name": "t3.xlarge",
  "last_change": "2022-06-08 20:35:10.633672Z",
  "launch_time": null,
  "machine_name": "IF-3B1F59DDA36E",
  "machine_status": null,
  "maintenance": false,
  "name": "Unassigned",
  "pool_external_id": "gateway-prod.588775",
  "pool_name": "persistent_desktop_production",
  "private_ip": "10.0.5.62",
  "problem": false,
  "public_hostname": null,
  "public_wsport": 443,
  "recovery": false,
  "reserved": -1,
  "server_ip": null,
  "server_version": "8.4.9.0",
  "status": "stopped",
  "upgrade_version": 0,
  "user_in_session": null,
  "zone": "us-east-2a"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Reassign Persistent Desktop

Reassigns a user to a particular Persistent Desktop server. Please note that the Persistent Desktop server should already be unassigned.

<span class="badge badge-post">POST</span> <code>/accounts/:persistent_account_id/servers/:server_external_id/reassign</code>

#### Request Parameters

| Name                  | Description                                                                                | Param Type | Data Type | Required |
| --------------------- | ------------------------------------------------------------------------------------------ | ---------- | --------- | -------- |
| persistent_account_id | Frame Account ID (must be a persistent).                                                   | URL        | string    | True     |
| server_external_id    | Frame "external" server ID (found by querying [account servers](#list-servers)).           | URL        | string    | True     |
| user_uuid             | Frame User's UUID (found by querying [logged_in_users](#list-logged-in-users-for-account)) | URL        | string    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${persistent_account_id}/servers/${persistent_server_id}/reassign"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "zone": "us-east-2a",
  "user_in_session": {
    "last_name": "Doe",
    "identity_provider": "string",
    "first_name": "John",
    "email": "john.doe@example.net"
  },
  "upgrade_version": 0,
  "status": "stopped",
  "server_version": "8.4.9.0",
  "server_ip": null,
  "reserved": 0,
  "recovery": true,
  "public_wsport": 0,
  "public_hostname": null,
  "problem": true,
  "private_ip": "10.0.5.62",
  "pool_name": "persistent_desktop_production",
  "pool_external_id": "gateway-prod.588775",
  "name": "Unassigned",
  "maintenance": true,
  "machine_status": null,
  "machine_name": "IF-3B1F59DDA36E",
  "launch_time": null,
  "last_change": "2022-05-12 23:22:31.047114Z",
  "instance_type_name": "t3.xlarge",
  "in_use": true,
  "id": 6810382,
  "external_id": "gateway-prod.6810382",
  "domain_joined": true,
  "desired_status": "stopped",
  "debug": true,
  "creation_time": "2022-05-12 23:22:31.047114Z""string",
  "cloud_instance_id": "i-0cc3ec91870672ab6",
  "active": true
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Reboot a Server

Reboots the specified server.

<span class="badge badge-post">POST</span> <code>/accounts/:account_id/servers/reboot</code>

#### Request Parameters

| Name                  | Description                                | Param Type   | Data Type | Required |
| --------------------- | ------------------------------------------ | ------------ | --------- | -------- |
| server_id             | Frame Server ID.                           | URL          | string    | True     |
| account_server_reboot | Server reboot payload (`{"force": false}`) | Search Query | string    | True     |

<div class="callout callout-info">
** If `force` is set to true, the server will be rebooted immediately **
</div>


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
--data-raw '{
  "id" : "server_id",
  "account_server_reboot": {
    "force" : "false"
  }
}'
"https://api.console.nutanix.com/v1/accounts/${account_id}/servers/reboot"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

The response after rebooting a server is simply the server object that was rebooted successfully.

```json
{
  "active": false,
  "cloud_instance_id": "i-0cc3ec91870672ab6",
  "creation_time": "2022-05-12 23:22:31.047114Z",
  "debug": false,
  "desired_status": "stopped",
  "domain_joined": false,
  "external_id": "gateway-prod.6810382",
  "id": 6810382,
  "in_use": false,
  "instance_type_name": "t3.xlarge",
  "last_change": "2022-06-08 20:35:10.633672Z",
  "launch_time": null,
  "machine_name": "IF-3B1F59DDA36E",
  "machine_status": null,
  "maintenance": false,
  "name": "Unassigned",
  "pool_external_id": "gateway-prod.588775",
  "pool_name": "persistent_desktop_production",
  "private_ip": "10.0.5.62",
  "problem": false,
  "public_hostname": null,
  "public_wsport": 443,
  "recovery": false,
  "reserved": -1,
  "server_ip": null,
  "server_version": "8.4.9.0",
  "status": "stopped",
  "upgrade_version": 0,
  "user_in_session": null,
  "zone": "us-east-2a"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Start a Server

Starts the specified server.

<span class="badge badge-post">POST</span> <code>/accounts/:account_id/servers/:server_id/start</code>

#### Request Parameters

| Name               | Description         | Param Type | Data Type | Required |
| ------------------ | ------------------- | ---------- | --------- | -------- |
| account_id         | Frame Account ID.   | URL        | string    | True     |
| server_external_id | Server External ID. | URL        | string    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
--data-raw '{
  "account_server_stop": {
    "force" : "false"
  }
}'
"https://api.console.nutanix.com/v1/accounts/${account_id}/servers/${server_id}/start"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

The response after starting a server is simply the server object that was started successfully.

```json
{
  "active": false,
  "cloud_instance_id": "i-0cc3ec91870672ab6",
  "creation_time": "2022-05-12 23:22:31.047114Z",
  "debug": false,
  "desired_status": "stopped",
  "domain_joined": false,
  "external_id": "gateway-prod.6810382",
  "id": 6810382,
  "in_use": false,
  "instance_type_name": "t3.xlarge",
  "last_change": "2022-06-08 20:35:10.633672Z",
  "launch_time": null,
  "machine_name": "IF-3B1F59DDA36E",
  "machine_status": null,
  "maintenance": false,
  "name": "Unassigned",
  "pool_external_id": "gateway-prod.588775",
  "pool_name": "persistent_desktop_production",
  "private_ip": "10.0.5.62",
  "problem": false,
  "public_hostname": null,
  "public_wsport": 443,
  "recovery": false,
  "reserved": -1,
  "server_ip": null,
  "server_version": "8.4.9.0",
  "status": "stopped",
  "upgrade_version": 0,
  "user_in_session": null,
  "zone": "us-east-2a"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Stop a Server

Shuts down the specified server.

<span class="badge badge-post">POST</span> <code>/accounts/:account_id/servers/:server_id/stop</code>

#### Request Parameters

| Name                | Description                               | Param Type   | Data Type | Required |
| ------------------- | ----------------------------------------- | ------------ | --------- | -------- |
| account_id          | Frame Account ID.                         | URL          | string    | True     |
| server_external_id  | Server External ID.                       | URL          | string    | True     |
| account_server_stop | Server stop payload (`{ "force": false}`) | Search Query | string    | True     |

<div class="callout callout-info">
** If `force` is set to true, the server will be stopped immediately. This will not be considered a clean shutdown by the VM **
</div>


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
--data-raw '{
  "account_server_stop": {
    "force" : "false"
  }
}'
"https://api.console.nutanix.com/v1/accounts/${account_id}/servers/${server_id}/stop"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

The response after stopping a server is simply the server object that was stopped successfully.

```json
{
  "active": false,
  "cloud_instance_id": "i-0cc3ec91870672ab6",
  "creation_time": "2022-05-12 23:22:31.047114Z",
  "debug": false,
  "desired_status": "stopped",
  "domain_joined": false,
  "external_id": "gateway-prod.6810382",
  "id": 6810382,
  "in_use": false,
  "instance_type_name": "t3.xlarge",
  "last_change": "2022-06-08 20:35:10.633672Z",
  "launch_time": null,
  "machine_name": "IF-3B1F59DDA36E",
  "machine_status": null,
  "maintenance": false,
  "name": "Unassigned",
  "pool_external_id": "gateway-prod.588775",
  "pool_name": "persistent_desktop_production",
  "private_ip": "10.0.5.62",
  "problem": false,
  "public_hostname": null,
  "public_wsport": 443,
  "recovery": false,
  "reserved": -1,
  "server_ip": null,
  "server_version": "8.4.9.0",
  "status": "stopped",
  "upgrade_version": 0,
  "user_in_session": null,
  "zone": "us-east-2a"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Terminate Server

Terminates the specified server.

<span class="badge badge-post">POST</span> <code>/accounts/:persistent_account_id/servers/:server_external_id/terminate</code>

#### Request Parameters

| Name               | Description                                                                                                              | Param Type   | Data Type | Required |
| ------------------ | ------------------------------------------------------------------------------------------------------------------------ | ------------ | --------- | -------- |
| account_id         | Frame Account ID.                                                                                                        | URL          | string    | True     |
| server_external_id | Frame "external" server ID (found by querying [account servers](#list-servers)).                                         | URL          | string    | True     |
| force              | If set to true, the server will be terminated immediately. If set to false, it will terminate as soon as it's available. | Search Query | boolean   | True     |

<div class="callout callout-danger">
**This is an irreversable action, use with caution!**
</div>


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${persistent_account_id}/servers/${server_id}/terminate?force=false"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

The response after terminating a server is simply the server object that was terminated successfully.

```json
{
  "active": false,
  "cloud_instance_id": "i-0cc3ec91870672ab6",
  "creation_time": "2022-05-12 23:22:31.047114Z",
  "debug": false,
  "desired_status": "stopped",
  "domain_joined": false,
  "external_id": "gateway-prod.6810382",
  "id": 6810382,
  "in_use": false,
  "instance_type_name": "t3.xlarge",
  "last_change": "2022-06-08 20:35:10.633672Z",
  "launch_time": null,
  "machine_name": "IF-3B1F59DDA36E",
  "machine_status": null,
  "maintenance": false,
  "name": "Unassigned",
  "pool_external_id": "gateway-prod.588775",
  "pool_name": "persistent_desktop_production",
  "private_ip": "10.0.5.62",
  "problem": false,
  "public_hostname": null,
  "public_wsport": 443,
  "recovery": false,
  "reserved": -1,
  "server_ip": null,
  "server_version": "8.4.9.0",
  "status": "stopped",
  "upgrade_version": 0,
  "user_in_session": null,
  "zone": "us-east-2a"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List Pool Capacity Settings

Returns the current min, buffer, and max values configured for a [specific pool](#list-pools).

<span class="badge badge-get">GET</span> <code>/pools/:pool_id/elasticity_settings</code>

#### Request Parameters

| Name    | Description                                               | Param Type | Data Type | Required |
| ------- | --------------------------------------------------------- | ---------- | --------- | -------- |
| pool_id | ID of the Instance Type/pool you're getting settings for. | URL        | string    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/pools/${pool_id}/elasticity_settings"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "min_servers": 15,
  "buffer_servers": 2,
  "max_servers": 100
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Set Pool Capacity Settings

Sets new min, buffer, or max values for a [specific pool](#list-pools).
Frame immediately sets new values and orchestrates workloads to match these settings. You can the status of this operation using the returned task ID.

<div class="callout callout-warning">
Practice caution and make sure you understand the meanings of minimum,
buffer, and maximum server elasticity values before setting them via
API. Incorrectly setting these values can be expensive in regards to
infrastructure costs and resources.

Please allow these tasks to complete (["DONE" status](#get-task-status)) before making
another request for the same pool.
</div>

<span class="badge badge-post">POST</span> <code>/pools/:pool_id/elasticity_settings</code>

#### Request Parameters

| Name           | Description                                                     | Param Type | Data Type | Required |
| -------------- | --------------------------------------------------------------- | ---------- | --------- | -------- |
| pool_id        | ID of the specific pool you'd like to set capacity settings for | URL        | String    | True     |
| min_servers    | Minimum servers value for a pool                                | Form Data  | String    | False    |
| buffer_servers | Buffer servers value for a pool                                 | Form Data  | String    | False    |
| max_servers    | Maximum server capacity value for a pool                        | Form Data  | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/pools/${pool_id}/elasticity_settings" \
-F min_servers=5 \
-F buffer_servers=0 \
-F max_servers=80 \
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account_id": "XXXXXXXX-09cf-44d9-a386-XXXXXXXXXXX",
  "customer_id": "XXXXXXXX-5ab2-47df-9f9c-XXXXXXXXXXX",
  "display_name": "Updating elasticity for Air 4GB",
  "duration_sec": null,
  "external_resource_id": null,
  "finished_at": null,
  "id": "0bf720c4-7729-48aa-95a8-470211aea40f",
  "inserted_at": "2021-08-05T17:50:32.106790Z",
  "kind": "update_pool_elasticity_settings",
  "organization_id": "82ccea89-389f-496a-9c75-XXXXXXXXXXX",
  "pool_id": "cd5e4467-3f20-49eb-803b-9514eeab7711",
  "progress_info": null,
  "result_info": null,
  "stage": "not_started",
  "started_by": {
    "email": "XXXXXXXXXXX.img.frame.nutanix.com_third-party-api",
    "first_name": "X",
    "id": "XXXXXXXX-2f74-4dad-8e55-XXXXXXXXXXX",
    "identity_provider": "third-party-api",
    "last_name": "X"
  },
  "updated_at": "2021-08-05T17:50:32.106790Z"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Set Persistent Desktop Capacity Settings

Sets the current Persistent Desktop capacity settings for an account.
This includes values for `number_of_backups_to_save`, `max_users`, and
`keep_instances_running_for_new_users`.

<div class="callout callout-warning">
Practice caution with these values. For example, setting a lower
**max_users** value below the current number of assigned persistent
desktops will result in zero unassigned persistent desktops for new
users. Incorrectly setting these values can be expensive in regards to
infrastructure costs and resources.

Please allow these tasks to complete (["DONE" status](#get-task-status)) before making
sending more capacity change requests.
</div>

<span class="badge badge-post">POST</span> <code>/accounts/:persistent_account_id/persistent_desktop_elasticity_settings</code>

#### Request Parameters

| Name                                 | Description                                                                                                                                                                                                                                             | Param Type | Data Type | Required |
| ------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | --------- | -------- |
| persistent_account_id                | ID of your persistent Frame account.                                                                                                                                                                                                                    | URL        | String    | True     |
| number_of_backups_to_save            | Like it says, this value determines the number of persistent desktop backups to save for recovery.                                                                                                                                                      | Form Data  | String    | False    |
| max_users                            | This value is the maximum amount of persistent desktops you'd like to provision. Be mindful when lowering this value below the current number of assigned persistent desktops as that will result in zero unassigned persistent desktops for new users. | Form Data  | String    | True     |
| keep_instances_running_for_new_users | If true, unassigned persistent desktops will continue running until a new user connects and assigns it.                                                                                                                                                 | Form Data  | Boolean   | True     |

For more information, reference our documentation about [persistent desktop capacity settings](/platform/admin/capacity/).


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${persistent_account_id}/persistent_desktop_elasticity_settings" \
-F number_of_backups_to_save=2 \
-F max_users=20 \
-F keep_instances_running_for_new_users=false \
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account_id": "XXXXXXXX-d55d-4aec-98f6-XXXXXXXXXXX",
  "customer_id": "XXXXXXXX-5ab2-47ef-9f9c-XXXXXXXXXXX",
  "display_name": "Updating capacity for persistent desktop",
  "duration_sec": null,
  "external_resource_id": null,
  "finished_at": null,
  "id": "111e0873-08e6-4cfa-9cf0-5d60eaae1585",
  "inserted_at": "2022-06-27T18:02:39.637192Z",
  "kind": "update_persistent_desktop_settings",
  "organization_id": "XXXXXXXX-389f-496a-9c75-XXXXXXXXXXX",
  "pool_id": null,
  "progress_info": null,
  "result_info": null,
  "stage": "not_started",
  "started_by": {
    "email": "XXXXXXXX-3bee-405f-8c28-XXXXXXXXXXX.img.frame.nutanix.com_third-party-api",
    "first_name": "X",
    "id": "XXXXXXXX-2f74-45b2-8e55-XXXXXXXXXXX",
    "identity_provider": "third-party-api",
    "last_name": "X"
  },
  "updated_at": "2022-06-27T18:02:39.637192Z"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List Elasticity Logs

Returns logs for elasticity changes.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/elasticity-logs</code>

#### Request Parameters

| Name               | Description                                                                                                                                         | Param Type   | Data Type           | Required |
| ------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------- | -------- |
| account_id         | Frame Account ID                                                                                                                                    | URL          | String              | True     |
| instance_type_name | Filters results based on the instance type's name. For example, if our account was hosted in AWS, we could filter by “t2.medium”, “t3.large”, etc.  | Search Query | String              | True     |
| from_date          | The beginning date range for the query. The date needs to be an ISO 8601 UTC string (with the “Z” suffix). For example: “2021-12-25T23:20:58.128Z”. | Search Query | ISO 8601 UTC String | True     |
| to_date            | The ending date range for the query. The date needs to be an ISO 8601 UTC string (with the “Z” suffix). For example: “2021-12-25T23:20:58.128Z”.    | Search Query | ISO 8601 UTC String | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/elasticity-logs?instance_type_name=t2.medium&from_date=2021-03-20T23:59:59.128Z&to_date=2022-03-15T23:59:59.128Z"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "active_instances": 15,
    "active_sessions": 0,
    "buffer_instances": 0,
    "max_instances": 20,
    "max_setting": 20,
    "min_instances": 0,
    "timestamp": "2021-07-20T21:28:59.893337Z"
  },
  {
    "active_instances": 15,
    "active_sessions": 0,
    "buffer_instances": 0,
    "max_instances": 15,
    "max_setting": 15,
    "min_instances": 0,
    "timestamp": "2021-07-20T22:16:31.521437Z"
  },
  {
    "active_instances": 80,
    "active_sessions": 0,
    "buffer_instances": 0,
    "max_instances": 80,
    "max_setting": 80,
    "min_instances": 65,
    "timestamp": "2021-08-05T18:47:08.435230Z"
  },
  {
    "active_instances": 100,
    "active_sessions": 0,
    "buffer_instances": 0,
    "max_instances": 100,
    "max_setting": 100,
    "min_instances": 75,
    "timestamp": "2021-09-30T18:53:56.513631Z"
  }
]
```

```bash
Status: 200 "OK"
```

</details>



---

### List Account Roles

Returns an array of available roles and the associated permissions to an account

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/roles</code>

#### Request Parameters

| Name       | Description        | Param Type | Data Type | Required |
| ---------- | ------------------ | ---------- | --------- | -------- |
| account_id | Nutanix Account ID | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/roles"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "applicable_on": "account",
    "category": null,
    "description": null,
    "id": "c1aad088-50c2-45ab-aca2-8261d9982d14",
    "name": "Account Administrator",
    "permissions": [
      "cpanel_mutation_update_application_on_publish",
      "cpanel_account_data_center",
      "cpanel_account_analytics",
      "cpanel_mutation_revoke_user_invitation",
      "cpanel_launchpad_session_settings"
      // ... More role permissions
    ]
  }
]
```

```bash
Status: 200 "OK"
```

</details>



---

### List Account User Activity

Returns basic user “activity” information for the specified Account
constrained by a date range. You'll receive a total count of user
activities, as well as a unique count of users for the given time
period. Can be ordered by passing a string parameter as well as exclude
specified user Identity Provider Ids.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/user_activities</code>

#### Request Parameters

| Name               | Description                                                                                                    | Param Type   | Data Type              | Required |
| ------------------ | -------------------------------------------------------------------------------------------------------------- | ------------ | ---------------------- | -------- |
| account_id         | Frame Account ID                                                                                               | URL          | String                 | True     |
| from_date          | The beginning date range for the query.                                                                        | Search Query | YYYY-MM-DD Date string | True     |
| to_date            | The ending date range for the query.                                                                           | Search Query | YYYY-MM-DD Date string | True     |
| order              | Specifies the order of the results. Use “asc” for ascending order, and “desc” for descending order.            | Search Query | String                 | False    |
| order_by           | Specifies the field of which the ordering should occur. For example, “session_start”, “session_duration”, etc. | Search Query | String                 | False    |
| skip_user_idps\[\] | User Identity Providers to skip.                                                                               | Search Query | Array (String)         | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/user_activities?from_date=${from_date}&to_date=${to_date}&skip_user_idps[]=example-okta-admins&skip_user_idps[]=example-okta-dev"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "data": [
    {
      "access_date": "2022-02-01",
      "access_datetime": "2022-02-01T21:11:00.398870Z",
      "account_id": "0e52b11b-23bf-411e-a070-bc0ea014cbc2",
      "customer_id": "6ba31e38-1735-4274-a58e-6fb8c662e425",
      "organization_id": "bc24563d-375b-49fb-8f15-1682b8bc6deb",
      "user_email": "dontcallme.shirley@example.com",
      "user_first_name": "Shirley",
      "user_id": "20acd3a2-b455-4dca-b22b-520e16079e11",
      "user_idp": "example-okta-workforce",
      "user_last_name": "Dontcallme"
    }
    // ... more User Activities
  ],
  "total": 66866,
  "total_unique": 8133
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List Servers for an Account{#list-servers}

Returns all workload servers for an account.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/servers</code>

#### Request Parameters

| Parameter  | Description            | Param Type | Data Type | Required |
| ---------- | ---------------------- | ---------- | --------- | -------- |
| account_id | Your Frame account ID. | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/servers"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "active": false,
    "cloud_instance_id": "i-04198255723b27d69",
    "creation_time": "2021-07-20 21:22:49.287276Z",
    "debug": false,
    "desired_status": "stopped",
    "domain_joined": false,
    "external_id": "gateway-prod.575XXXX",
    "id": 575XXXX,
    "in_use": false,
    "instance_type_name": "t2.medium",
    "last_change": "2021-08-04 21:13:57.243020Z",
    "launch_time": null,
    "machine_name": "IF-F89A27E05E86",
    "machine_status": null,
    "maintenance": false,
    "name": "Lenticular Cloud Project - 575XXXX",
    "pool_external_id": "gateway-prod.520XXX",
    "pool_name": "sandbox",
    "private_ip": "10.0.4.145",
    "problem": false,
    "public_hostname": null,
    "public_wsport": 443,
    "recovery": false,
    "reserved": -1,
    "server_ip": null,
    "server_version": null,
    "status": "stopped",
    "upgrade_version": 0,
    "user_in_session": null,
    "zone": "us-west-1a"
  },
  // More servers...
]
```

```bash
Status: 200 "OK"
```

</details>



---

### Clone a Sandbox

This endpoint will clone a Sandbox image from one account to the
specified target account. The target account and source account
must belong to the same Cloud Provider (e.g. clone from AWS to
AWS, GCP to GCP, Azure to Azure). You can [check the status](#get-task-status) of this
operation using the returned task ID.

<div class="callout callout-warning">
This process will overwrite the Sandbox image for the target account
which means all existing data will be lost. Be sure to perform a
backup before continuing.
</div>

<span class="badge badge-post">POST</span> <code>/accounts/:target_account_id/pools/:source_pool_id/clone</code>

#### Request Parameters

| Parameter         | Description                                                                                                                   | Param Type   | Data Type | Required |
| ----------------- | ----------------------------------------------------------------------------------------------------------------------------- | ------------ | --------- | -------- |
| target_account_id | This is the target account ID                                                                                                 | URL          | String    | True     |
| source_pool_id    | The source account's Sandbox pool ID                                                                                          | URL          | String    | True     |
| join_domain       | Optional. Can be true or false. Determines whether Frame should attempt to join the domain after the Sandbox has been cloned. | search Query | String    | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/pools/${source_pool_id}/clone"
-F join_domain=false
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account": {
    "active": true,
    "description": null,
    "id": "XXXXXXXX-32ef-4ea9-a896-XXXXXXXXXXX",
    "inserted_at": "2021-07-28T20:48:09.614305Z",
    "kind": "frame",
    "last_publish": null,
    "name": "API Clone Tutorial",
    "notes": null,
    "url_slug": "api-clone-tutorial",
    "website": null
  },
  "pending_request": {
    "account_id": "XXXXXXXX-32ef-4ea9-a896-XXXXXXXXXXX",
    "customer_id": "XXXXXXXX-5ab2-47ef-9f9c-XXXXXXXXXXX",
    "display_name": "Cloning system",
    "duration_sec": null,
    "external_resource_id": null,
    "finished_at": null,
    "id": "e7e44ecb-5e8c-342d-8c23-b190b1004e31",
    "inserted_at": "2021-08-05T18:17:20.692055Z",
    "kind": "clone_pool",
    "organization_id": "XXXXXXXX-389f-496a-9c75-XXXXXXXXXXX",
    "pool_id": "cce63a88-4dad-4725-81b0-d492a6427b00",
    "progress_info": null,
    "result_info": null,
    "stage": "not_started",
    "started_by": {
      "email": "XXXXXXXX-3bee-405f-8c28-XXXXXXXXXXX.img.frame.nutanix.com_third-party-api",
      "first_name": "X",
      "id": "XXXXXXXX-2f74-4dad-8e55-XXXXXXXXXXX",
      "identity_provider": "third-party-api",
      "last_name": "X"
    },
    "updated_at": "2021-08-05T18:17:20.692055Z"
  }
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Get Task Status

Returns the current status of a provided task ID.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/task/:task_id</code>

#### Request Parameters

| Parameter | Description      | Param Type | Data Type | Required |
| --------- | ---------------- | ---------- | --------- | -------- |
| id        | Frame Account ID | URL        | String    | True     |
| task_id   | Frame Task ID    | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/task/${task_id}"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account_id": "XXXXXXXX-09cf-44d9-a386-XXXXXXXXXXX",
  "customer_id": "XXXXXXXX-5ab2-47ef-9f9c-XXXXXXXXXXX",
  "display_name": "Publishing Sandbox to Production",
  "duration_sec": 1530,
  "external_resource_id": null,
  "finished_at": "2021-07-20T22:16:31.680241Z",
  "id": "57643caa-1700-4938-b6cc-94b8dd5fa7df",
  "inserted_at": "2021-07-20T21:51:01.481733Z",
  "kind": "publish_sandbox_to_production",
  "organization_id": "86bcea89-389f-496a-3c75-1df0ce8d96ca",
  "pool_id": null,
  "progress_info": null,
  "result_info": null,
  "stage": "done",
  "started_by": {
    "email": "68f43670-3bee-405f-8c28-cc5baf354e5f.img.frame.nutanix.com_third-party-api",
    "first_name": "X",
    "id": "d15d3125-2f74-45b2-8e55-1574de5e2b6a",
    "identity_provider": "third-party-api",
    "last_name": "X"
  },
  "updated_at": "2021-07-20T22:16:31.681266Z"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List Account Usage

Returns usage information for an account within a specified time period.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/usage</code>

#### Request Parameters

| Parameter        | Description                                                                                                                                         | Param Type   | Data Type           | Required |
| ---------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------- | -------- |
| id               | Frame Account ID                                                                                                                                    | Search Query | String              | True     |
| from_date        | The beginning date range for the query. The date needs to be an ISO 8601 UTC string (with the “Z” suffix). For example: “2021-12-25T23:20:58.128Z”. | Search Query | ISO 8601 UTC String | True     |
| to_date          | The ending date range for the query. The date needs to be an ISO 8601 UTC string (with the “Z” suffix). For example: “2021-12-25T23:20:58.128Z”.    | Search Query | ISO 8601 UTC String | True     |
| resolution_type  | What is the resolution type: `by_hour`, `by_day`, `by_month`, `by_year`                                                                             | Search Query | String              | False    |
| server_type      | Server Type: `by_hour`, `by_day`, `by_month`, `by_year`                                                                                             | Search Query | String              | False    |
| pool_id          | Frame Pool ID.                                                                                                                                      | Search Query | String              | False    |
| instance_type_id | Frame Instance Type ID:                                                                                                                             | Search Query | String              | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
-H "resolution_type: by_day" \
"https://api.console.nutanix.com/v1/accounts/${id}/usage?from_date=2021-12-01T23:20:58.128Z&to_date=2021-12-25T23:20:58.128Z"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "usage_data": {
    "vendor_id": 1338,
    "usage": [
      {
        "time": 1532217600000,
        "server_type_id": "sandbox",
        "instance_type": {
          "name": "t2.medium",
          "id": 4
        },
        "hours_used": 1,
        "datacenter": {
          "name": "aws-de",
          "id": 6,
          "geo_long": 8.683333,
          "geo_lat": 50.116667
        }
      },
      {
        "time": 1532253600000,
        "server_type_id": "sandbox",
        "instance_type": {
          "name": "t2.medium",
          "id": 4
        },
        "hours_used": 1,
        "datacenter": {
          "name": "aws-de",
          "id": 6,
          "geo_long": 8.683333,
          "geo_lat": 50.116667
        }
      }
    ],
    "gateway_id": "gateway-web-datest.dev.fra.me"
  },
  "status_message": "Success.",
  "status": 0,
  "resolution": "by_hour",
  "credited_data": {
    "vendor_id": 1338,
    "gateway_id": "gateway-web-datest.dev.fra.me",
    "credit": [
      {
        "time": 1532253600000,
        "server_type_id": null,
        "instance_type": {
          "name": "t2.medium",
          "id": 4
        },
        "datacenter": {
          "name": "aws-de",
          "id": 6,
          "geo_long": 8.683333,
          "geo_lat": 50.116667
        },
        "credited_hours": 2
      }
    ]
  }
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List Disk Volume Usage

Returns the disk volume usage for a specified account in a specified time period.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/disk_volume_usage?params=...</code>

#### Request Parameters

| Parameter       | Description                                                                                                                                         | Param Type   | Data Type           | Required |
| --------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- | ------------ | ------------------- | -------- |
| id              | Frame Account ID                                                                                                                                    | URL          | String              | True     |
| from_date       | The beginning date range for the query. The date needs to be an ISO 8601 UTC string (with the “Z” suffix). For example: “2021-12-25T23:20:58.128Z”. | URL          | ISO 8601 UTC String | True     |
| to_date         | The ending date range for the query. The date needs to be an ISO 8601 UTC string (with the “Z” suffix). For example: “2021-12-25T23:20:58.128Z”.    | URL          | ISO 8601 UTC String | True     |
| server_type     | Server Type: `by_hour`, `by_day`, `by_month`, `by_year`                                                                                             | Search Query | String              | False    |
| resolution_type | Defaults to by_hour, options: `by_hour`, `by_day`, `by_month`, `by_year`                                                                            | Search Query | String              | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/disk_volume_usage?from_date=2020-01-01&to_date=2020-06-30&resolution_type=by_month"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "data": [
    {
      "account_external_id": "gateway-prod.1337",
      "usage": [
        {
          "datacenter_id": "gateway-prod.3",
          "hours_used": 1488,
          "disk_volume_size_used": 223200,
          "disk_volume_type_id": "gp2",
          "time": 1577836800000
        },
        {
          "datacenter_id": "gateway-prod.3",
          "hours_used": 1392,
          "disk_volume_size_used": 208800,
          "disk_volume_type_id": "gp2",
          "time": 1580515200000
        },
        {
          "datacenter_id": "gateway-prod.3",
          "hours_used": 1488,
          "disk_volume_size_used": 223200,
          "disk_volume_type_id": "gp2",
          "time": 1583020800000
        },
        {
          "datacenter_id": "gateway-prod.3",
          "hours_used": 1443,
          "disk_volume_size_used": 247779,
          "disk_volume_type_id": "gp2",
          "time": 1585699200000
        },
        {
          "datacenter_id": "gateway-prod.3",
          "hours_used": 1539,
          "disk_volume_size_used": 299343,
          "disk_volume_type_id": "gp2",
          "time": 1588291200000
        },
        {
          "datacenter_id": "gateway-prod.3",
          "hours_used": 2344,
          "disk_volume_size_used": 295136,
          "disk_volume_type_id": "gp2",
          "time": 1590969600000
        },
        {
          "datacenter_id": "gateway-prod.3",
          "hours_used": 10311,
          "disk_volume_size_used": 334187,
          "disk_volume_type_id": "gp2",
          "time": 1593561600000
        }
      ]
    }
  ],
  "total": 1831645
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List API Authorization Rules

Returns authorization rules for the account, organization, and customers, respectively.

- <span class="badge badge-get">GET</span> <code>/customers/:customer_id/api_authorization_rules</code>
- <span class="badge badge-get">GET</span> <code>/organizations/:organization_id/api_authorization_rules</code>
- <span class="badge badge-get">GET</span> <code>/accounts/:account_id/api_authorization_rules</code>

#### Request Parameters

| Parameter | Description                                  | Param Type | Data Type | Required |
| --------- | -------------------------------------------- | ---------- | --------- | -------- |
| entity_id | Frame Account, Organization, or Customer ID. | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/api_authorization_rules"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "roles": [
      {
        "role": {
          "permissions": ["..."],
          "name": "Account Administrator",
          "description": null,
          "applicable_on": "account"
        },
        "id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
      }
    ],
    "name": "example2",
    "id": 8,
    "credentials": [
      {
        "name": "example2_key",
        "client_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.img-external-api-prod.frame.nutanix.com"
      }
    ],
    "api_authorization_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
  },
  {
    "roles": [
      {
        "role": {
          "permissions": ["..."],
          "name": "Account Administrator",
          "description": null,
          "applicable_on": "account"
        },
        "id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
      }
    ],
    "name": "example",
    "id": 7,
    "credentials": [
      {
        "name": "example_key",
        "client_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX.img-external-api-prod.frame.nutanix.com"
      }
    ],
    "api_authorization_id": "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX"
  }
]
```

```bash
Status: 200 "OK"
```

</details>



---

### Create an Account

Accounts can be created within an organization with the following
endpoint and parameters. Initiating an account creation will give
you a `task_id`. You can [check the status](#get-task-status) of the
account creation via the task id.

Creating an account via our API requires a few parameters:
`cloud_service_external_id`,
`data_center_external_id`,
`sandbox_instance_type_id`,
`image_family`,
`master_image_id` and
`disk_size`. Look in each parameter's
descriptions for where to find these values. If you're having trouble
creating an account, please reach out to your Frame representative for
assistance.

<span class="badge badge-post">POST</span> <code>/accounts</code>

#### Request Parameters

| Name                      | Description                                                                                                                                                                                                                                                                                    | Param Type | Data Type | Required |
| ------------------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | --------- | -------- |
| organization_id           | The Frame Organization ID that the account will be created under.                                                                                                                                                                                                                              | Data       | String    | True     |
| name                      | A unique name of the new account.                                                                                                                                                                                                                                                              | Data       | String    | True     |
| url_slug                  | A URL-friendly slug that will be used in URLs to access the account.                                                                                                                                                                                                                           | Data       | String    | True     |
| cloud_service_external_id | This represents which Cloud Service (BYO) or Cloud Provider (Frame IaaS) the account will be created with. Use [List Cloud Providers](./infrastructure#list-cloud-providers) or [List Cloud Services](./infrastructure#list-cloud-services) to locate these IDs. For example: gateway-prod.xx. | Data       | String    | True     |
| data_center_external_id   | This is the ID of a datacenter or “region” that will be used for the account. Use [List Datacenters](./infrastructure#list-datacenters) to locate these IDs. For example gateway-prod.xx.                                                                                                      | Data       | String    | True     |
| sandbox_instance_type_id  | This ID is used to specify the instance type of the Sandbox. Use [List Datacenters](./infrastructure#list-datacenters) to find the Image Family and instance type you'd like, then use the instance type's ID here. For example: gateway-prod.xx                                               | Data       | String    | True     |
| image_family              | This references the name of an OS image that is supported by Frame. Use [List Image Families](./infrastructure#list-image-families) to help find this value by each Image Family's `name` field.                                                                                               | Data       | String    | True     |
| master_image_id           | Required. ID of the master image that will be used to create the sandbox. Please query [List Customer Master Images](./customer#list-customer-master-images), or [List Organization Master Images](./organization#list-organization-master-images). For example: nutanix-prod.xxxxxx.          | Data       | String    | True     |
| disk_size                 | Optional. Desired size of the sandbox image (in GiB). If this value is not provided, our system uses a default of 45 GiB. However, some operating systems images have different disk size requirements                                                                                         | Data       | String    | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/" \
-F organization_id=d63caa09-5723-4ab9-a1ea-6659b349aabe \
-F 'name=API Example Account on AWS' \
-F url_slug=example-account \
-F cloud_service_external_id=gateway-prod.55 \
-F data_center_external_id=gateway-prod.15 \
-F image_family=FrameAWSWindows2016 \
-F sandbox_instance_type_id=gateway-prod.33 \
-F master_image_id=gateway-prod.38512 \
-F disk_size=64
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account": {
    "active": false,
    "description": null,
    "id": "724a1d0b-a2eb-69a1-8557-8fdd41e3654b",
    "inserted_at": "2022-04-27T19:40:11.086149Z",
    "kind": "frame",
    "last_publish": null,
    "last_test_publish": null,
    "name": "Example Account",
    "notes": null,
    "url_slug": "example-account",
    "website": null
  },
  "pending_request": {
    "account_id": "154a1d0b-a2ec-42a1-8757-8fdd41e3554c",
    "customer_id": "XXXXXXXX-5ab2-47ef-9f9c-XXXXXXXXXXX",
    "display_name": "Creating account Example Account",
    "duration_sec": null,
    "external_resource_id": null,
    "finished_at": null,
    "id": "96c8d6c1-8008-562b-81d7-d40073a88b11",
    "inserted_at": "2022-04-27T19:40:12.310097Z",
    "kind": "create_account",
    "organization_id": "83ccba89-389f-492a-1c75-5df0ce8c96ce",
    "pool_id": null,
    "progress_info": null,
    "result_info": null,
    "stage": "not_started",
    "started_by": {
      "email": "68f43670-3bce-405f-8c28-cc5baf354e52.img.console.nutanix.com_jasons-awesome-api",
      "first_name": "Jason",
      "id": "d15d3125-2f74-45b2-8e55-1574de5e2b6a",
      "identity_provider": "jasons-awesome-api",
      "last_name": "Thompson"
    },
    "updated_at": "2022-04-27T19:40:12.310097Z"
  }
}
```

```bash
Status: 200 "OK"
```

<div class="callout callout-success">
Use the **pending_request.id**/**task_id** to track the status of your account
creation via [[Get Task Status]](#get-task-status).
</div>

</details>



---

### Create an Account Launchpad

Creates a Launchpad based on supplied parameters.

<span class="badge badge-post">POST</span> <code>/accounts/:account_id/launchpad</code>

#### Request Parameters

| Parameter  | Description                                                                                                 | Param Type | Data Type | Required |
| ---------- | ----------------------------------------------------------------------------------------------------------- | ---------- | --------- | -------- |
| account_id | ID of the account the Launchpad will be created under.                                                      | URL        | String    | True     |
| name       | Name of the new Launchpad.                                                                                  | Data       | String    | True     |
| url_slug   | A URL-friendly slug that will be used in URLs to access the Launchpad                                       | Data       | String    | True     |
| kind       | This determines the kind of Launchpad you want to create. You can create two kinds: application and desktop | Data       | String    | True     |

<div class="callout callout-success">
You can combine launchpad creation with other automation APIs,
such as onboarding apps to your sandbox, publishing,
and toggling apps and instance types on a Launchpad. All of these endpoints
are documented here.
</div>


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/launchpad" \
-F 'name=Windows 2019 Desktop' \
-F url_slug=w2019-desktop \
-F kind=desktop \
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "active": true,
  "description": null,
  "id": "7d8fdb87-7683-40d0-81be-e7ee35a05db2",
  "kind": "desktop",
  "name": "Windows 2019 Desktop",
  "notes": null,
  "order": 1,
  "url_slug": "w2019-desktop"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Onboard an Application

Applications can be automatically onboarded to Frame if the account
already has the Application's executable present in it's system image,
and if you have the app's basic information available, most notably
the app's icon image. Please note that you must also enable the
application on your Launchpad(s) and publish before your newly onboarded
applications are visible to your users.

<span class="badge badge-post">POST</span> <code>/account/:account_id/onboard_app</code>

#### Request Parameters

| Name        | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Param Type | Data Type | Required |
| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | --------- | -------- |
| account_id  | ID of the Org the account will be created under                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | URL        | String    | True     |
| Application | A JSON object that includes string values for the following property names: `name`, `path`, `working_directory`, `icon_base64`, and `arguments`. For the icon, you must provide a [base64 encoded Data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) of your icon image. Encoding your image in base64 can be done using [various tools and programming languages](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs#encoding_data_into_base64_format), but there are also a large number of tools online to do this as well. Your Data URL it must include the proper syntax for your image or “media” type (png, jpeg, etc.). For example, converting a PNG to base64 would start with `data:image/png;base64,`. | Data       | JSON      | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/onboard_app"
--data-raw '{
  "arguments": "",
  "name": "Internet Explorer (Last Resort)",
  "path": "C:\\Program Files\\Internet Explorer\\iexplore.exe",
  "working_directory": "",
  "icon_base64": "data:image/png;base64,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"
}'
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "arguments": "",
  "icon_url": "https://assets.console.nutanix.com/images/icons/81679a506e0d4523b5532c4609b60f8c.png",
  "id": "6ca03d2d-8729-432e-add9-c9fe21f42e9b",
  "is_deleted": false,
  "is_published": false,
  "is_updated": false,
  "name": "Internet Explorer (Last Resort)",
  "path": "C:\\Program Files\\Internet Explorer\\iexplore.exe",
  "updated_arguments": null,
  "updated_icon_url": null,
  "updated_name": null,
  "updated_path": null,
  "updated_working_directory": null,
  "working_directory": ""
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Onboard Multiple Applications (Bulk process)

This is the process of onboarding multiple applications at once.
Applications can be automatically onboarded to Frame if the account
already has the Application's executable present in it's system image,
and if you have the app's basic information available, most notably
the app's icon image. Please note that you must also enable the
application on your Launchpad(s) and publish before your newly onboarded
applications are visible to your users.

<span class="badge badge-post">POST</span> <code>/account/:account_id/onboard_applications</code>

#### Request Parameters

| Name         | Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                    | Param Type | Data Type | Required |
| ------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ---------- | --------- | -------- |
| account_id   | ID of the Org the account will be created under                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                | URL        | String    | True     |
| applications | A JSON object that includes string values for the following property names: `name`, `path`, `working_directory`, `icon_base64`, and `arguments`. For the icon, you must provide a [base64 encoded Data URL](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs) of your icon image. Encoding your image in base64 can be done using [various tools and programming languages](https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs#encoding_data_into_base64_format), but there are also a large number of tools online to do this as well. Your Data URL it must include the proper syntax for your image or “media” type (png, jpeg, etc.). For example, converting a PNG to base64 would start with `data:image/png;base64,`. | Data       | JSON      | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${id}/onboard_applications"
--data-raw '{
  "applications": [
    {
      "arguments": "",
      "name": "Internet Explorer (Last Resort)",
      "path": "C:\\Program Files\\Internet Explorer\\iexplore.exe",
      "working_directory": "",
      "icon_url": "https://url-to-your-icon.com/image.png"
    },
    // ... More applications
  ]
}'
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  [
    {
      "arguments": "",
      "icon_url": "https://assets.console.nutanix.com/images/icons/81679a506e0d4523b5532c4609b60f8c.png",
      "id": "6ca03d2d-8729-432e-add9-c9fe21f42e9b",
      "is_deleted": false,
      "is_published": false,
      "is_updated": false,
      "name": "Internet Explorer (Last Resort)",
      "path": "C:\\Program Files\\Internet Explorer\\iexplore.exe",
      "updated_arguments": null,
      "updated_icon_url": null,
      "updated_name": null,
      "updated_path": null,
      "updated_working_directory": null,
      "working_directory": ""
    },
    // ... All of the other applications you onboarded
  ]
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List Launchpads

Returns a list of each Launchpad for an account, including their current settings, pools, and enabled applications if applicable.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/launchpads</code>

#### Request Parameters

| Name       | Description                                                                                                                       | Param Type   | Data Type        | Required |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------ | ---------------- | -------- |
| account_id | ID of the Frame Account you'd like to list Launchpads for.                                                                        | URL          | String           | True     |
| offset     | Used to specify where to start the query from the results (Used for pagination). Must be in conjunction with the limit parameter. | Search Query | Integer (String) | False    |
| limit      | Used to specify the "page size" of the query. Must be used in conjunction with the offset parameter                               | Search Query | Integer (String) | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/launchpads"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "url_slug": "desktop-1",
    "settings": {
      "session_settings": {},
      "new_app_mode_enabled": false,
      "is_session_setting_enabled": false
    },
    "order": 0,
    "name": "Desktop 1",
    "kind": "desktop",
    "id": "996cb66d-0d16-468e-b05f-192497fafc14",
    "backgrounds": [],
    "pools": [],
    "description": null,
    "active": true
  },
  {
    "url_slug": "apps-1",
    "settings": {
      "session_settings": {},
      "new_app_mode_enabled": false,
      "is_session_setting_enabled": false
    },
    "order": 1,
    "name": "Apps 1",
    "kind": "application",
    "id": "896cb66d-0d16-468e-b05f-192497fafc13",
    "applications": [],
    "pools": [],
    "backgrounds": [],
    "description": null,
    "active": true
  }
]
```

```bash
Status: 200 "OK"
```

</details>



---

### List Launchpad Details

Returns the requested Launchpad's current settings, pools, and enabled applications if applicable.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/launchpads/:launchpad_id</code>

#### Request Parameters

| Name         | Description                   | Param Type | Data Type | Required |
| ------------ | ----------------------------- | ---------- | --------- | -------- |
| account_id   | ID of the Frame Account.      | URL        | String    | True     |
| launchpad_id | ID of the Launchpad to query. | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/launchpads/${launchpad_id}"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "url_slug": "apps-1",
  "settings": {
    "session_settings": {},
    "new_app_mode_enabled": false,
    "is_session_setting_enabled": false
  },
  "order": 1,
  "name": "Apps 1",
  "kind": "application",
  "id": "896cb66d-0d16-468e-b05f-192497fafc13",
  "applications": [],
  "pools": [],
  "backgrounds": [],
  "description": null,
  "active": true
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Toggle Launchpad Application

Once an application is onboarded to a Frame account, it can then
be enabled/toggled on any **Application Launchpad**. You'll need
to toggle an app on to enable visibility and access for your
end-users by **application ID**.

<span class="badge badge-post">POST</span> <code>/launchpads/:launchpad_id/toggle_application</code>

#### Request Parameters

| Name         | Description                                                                                                           | Param Type | Data Type | Required |
| ------------ | --------------------------------------------------------------------------------------------------------------------- | ---------- | --------- | -------- |
| launchpad_id | ID of the Launchpad you'd like to enable an application for.                                                          | URL        | String    | True     |
| Application  | A JSON object that includes string values for the following property names: `application_id`, and `order` (optional). | Data       | JSON      | True     |

<div class="callout callout-success">
You can find your application
IDs by querying [<span class="badge badge-get">GET</span> <code>/accounts/:account_id/applications</code>](#list-applications)
</div>


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/launchpads/${launchpad_id}/toggle_application" \
--data-raw '{
  "application_id": "79829dbb-ebcf-4927-9e29-5302ae26a385"
}'
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

The response will include the Launchpad's details. Including all
enabled applications, and all enabled pools. If your application
is present in the response, it's enabled and visible in Frame
(a browser refresh required). If your application is not in the
response, it is now disabled and no longer visible to end users
(browser refresh required).

```json
{
  "active": true,
  "applications": [
    {
      "id": "b7cba1b1-04ae-41e1-8375-c8346f542684",
      "name": "SketchBook",
      "path": "C:\\Program Files\\Autodesk\\SketchBook\\SketchBook.exe",
      "icon_url": "https://assets.console.nutanix.com/images/icons/886669ca055840c9ad10ed839d7081c9.png",
      "working_directory": null,
      "arguments": null,
      "is_published": true,
      "is_updated": false,
      "is_deleted": false
    },
    {
      "id": "03c8a53e-e1c0-4801-9b86-dea1de76fadf",
      "name": "ZBrushCoreMini 2020",
      "path": "C:\\Program Files\\Pixologic\\ZBrushCoreMini 2020\\ZBrushCoreMini.exe",
      "icon_url": "https://assets.console.nutanix.com/images/icons/8fc401a395f847ac9f0c65d7e88e4ca2.png",
      "working_directory": null,
      "arguments": null,
      "is_published": true,
      "is_updated": false,
      "is_deleted": false
    },
    {
      "id": "92ac6d27-c791-42b8-b3f0-2c72912d962d",
      "name": "Frame Explorer",
      "path": "C:\\Program Files\\Frame\\FrameExplorer\\FrameExplorer.exe",
      "icon_url": "https://assets.console.nutanix.com/images/icons/frame_explorer.png",
      "working_directory": null,
      "arguments": null,
      "is_published": true,
      "is_updated": false,
      "is_deleted": false
    }
  ]
  // ... the rest of the launchpad's details, including instance type pools and settings.
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Toggle Launchpad Pool

Once an pool is onboarded to a Frame account, it can then be
enabled/toggled on any Application Launchpad. You'll need to
toggle an app on to enable visibility and access for your end-users.

<span class="badge badge-post">POST</span> <code>/launchpads/:launchpad_id/toggle_pool</code>

#### Request Parameters

| Name         | Description                                                                                                                                                                                                     | Param Type | Data Type | Required |
| ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------- | --------- | -------- |
| launchpad_id | ID of the Launchpad you'd like to enable an application for.                                                                                                                                                    | URL        | String    | True     |
| Application  | A JSON object that includes string values for the following property names: `application_id`, and `order` (optional). You can find your application IDs by [querying account applications](#list-applications). | Data       | JSON      | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/launchpads/${launchpad_id}/toggle_pool" \
--data-raw '{
  "pool_id": "c23b4ba1-c4d8-4bcf-8e62-d1f0d8477907"
}'
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

The response will include the Launchpad's details. Including all
enabled applications, and all enabled pools. If your requested
instance pool is present in the response, it's enabled and visible
in Frame (a browser refresh required). If your instance pool
is not in the response, it is now disabled and no longer visible
to end users (browser refresh required).

```json
{
  "active": true,
  "applications": [
    // our applications
  ],
  "pools": [
    {
      "id": "28dfa4dd-4354-47fd-9fd0-3d287e157d92",
      "kind": "production",
      "name": "Air 4GB",
      "instance_type": "t2.medium",
      "disk_size": 201,
      "external_id": "gateway-prod.595566"
    },
    {
      "id": "c23b4ba1-c4d8-4bcf-8e62-d1f0d8477907",
      "kind": "production",
      "name": "Pro 122GB",
      "instance_type": "g3.4xlarge",
      "disk_size": 201,
      "external_id": "gateway-prod.12005"
    }
  ]
  // ... the rest of the Launchpad's details and settings.
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List User Volumes

Lists the user profile and personal disks associated with a Frame Account

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/user_volumes</code>

#### Request Parameters

| Name       | Description                                                                                                                       | Param Type   | Data Type        | Required |
| ---------- | --------------------------------------------------------------------------------------------------------------------------------- | ------------ | ---------------- | -------- |
| account_id | Frame Account ID                                                                                                                  | URL          | string           | True     |
| offset     | Used to specify where to start the query from the results (Used for pagination). Must be in conjunction with the limit parameter. | Search Query | Integer (String) | False    |
| limit      | Used to specify the "page size" of the query. Must be used in conjunction with the offset parameter                               | Search Query | Integer (String) | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/user_volumes/?statuses=detached"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "created_time": "2023-02-23T17:21:25.280777Z",
    "free_space": 5.92408,
    "id": "gateway-prod.137452",
    "last_backup_fail_reason": "success",
    "last_backup_success": true,
    "last_used_time": "2023-02-28T16:33:42.168903Z",
    "name": "David Horv - djhorv+01@gmail.com",
    "server": null,
    "size": 6.0,
    "status": "detached",
    "type": "profile",
    "user_uuid": "2394aa40-a078-4cd4-a293-f17c0ba22825",
    "vendor": "gateway-prod.49981",
    "volume_id": "vol-049a795cceef7372a"
  }
]
```

```bash
Status: 200 "OK"
```

</details>



---

### Delete User Volumes

Deletes onbe or more user volumes.

<span class="badge badge-delete">DELETE</span> <code>/accounts/:account_id/user_volumes</code>

#### Request Parameters

| Parameter       | Description             | Param Type | Data Type | Required |
| --------------- | ----------------------- | ---------- | --------- | -------- |
| account_id      | Frame Account ID        | URL        | String    | True     |
| user_volume_ids | List of User Volume IDs | body       | json      | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X DELETE \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/user_volumnes"
--data-raw '{
  "user_volume_ids" : ["gateway-prod.920000","gateway-prod.940154"]
}'
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account_id": "c54a4189-93e0-46d7-a333-d07cab1d4e7b",
  "customer_id": "fd8dc130-cfe6-40d9-8b3e-7af39024e0e8",
  "display_name": "Deleting user volumes",
  "duration_sec": 21,
  "external_resource_id": null,
  "finished_at": "2023-03-13T16:43:14.600164Z",
  "id": "bf873017-5359-4516-ba8e-91330566abe4",
  "inserted_at": "2023-03-13T16:42:53.768400Z",
  "kind": "bulk_delete_user_volume",
  "organization_id": "fefca2ef-e0fc-42c6-88d3-a21ef995be97",
  "pool_id": null,
  "progress_info": null,
  "result_info": null,
  "stage": "done",
  "started_by": {
    "email": "afe5c674-60a6-4143-8015-55d3f9a4e74a.img.frame.nutanix.com_third-party-api",
    "first_name": "X",
    "id": "b93bef6a-0f9a-455e-92dc-5ff52ddd014a",
    "identity_provider": "third-party-api",
    "last_name": "X"
  },
  "updated_at": "2023-03-13T16:43:14.600807Z"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### List User Volume Backups{#list-backups}

Returns all user volumes associated with an account.

<span class="badge badge-get">GET</span> <code>/accounts/:account_id/user_volumes_backups</code>

#### Request Parameters

| Parameter  | Description            | Param Type | Data Type | Required |
| ---------- | ---------------------- | ---------- | --------- | -------- |
| account_id | Your Frame account ID. | URL        | String    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/user_volumes_backups"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[
  {
    "backup_datetime": "2023-04-06 17:40:24",
    "id": "gateway-prod.927553",
    "kind": "personal",
    "name": "David-02 Example - djexample+02@gmail.com - Personal drive backup - pc4pvb",
    "replication_status": null,
    "type": "manual",
    "vendor_id": "gateway-prod.50591"
  }
  // More backups...
]
```

```bash
Status: 200 "OK"
```

</details>



---

### Delete User Volume Backups{#delete-volume-backups}

Deletes all user volumes that are specified in the `user_volume_backup_ids` array parameter. This is a bulk action and the API expects an array of volume backup IDs. The Account ID is not required for this call.

<span class="badge badge-delete">DELETE</span> <code>/accounts/:account_id/user_volumes_backups</code>

#### Request Parameters

| Parameter              | Description                       | Param Type | Data Type | Required |
| ---------------------- | --------------------------------- | ---------- | --------- | -------- |
| user_volume_backup_ids | An array of volume backup strings | Body       | String    | True     |
| account_id             | Your Frame account ID.            | URL        | String    | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X DELETE\
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
--data-raw '{
  "user_volume_backup_ids" : ["gateway-prod.920000","gateway-prod.940154"]
}'
"https://api.console.nutanix.com/v1/accounts/${account_id}/user_volumes_backups"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
[]
```

```bash
Status: 200 "OK"
```

</details>



---

### Restore a User Volume from Backup

Restore a user volume from backup.

<span class="badge badge-post">POST</span> <code>/accounts/:account_id/user_volume_backups/:user_volume_backup_id/restore</code>

#### Request Parameters

| Name                  | Description                                                   | Param Type | Data Type | Required |
| --------------------- | ------------------------------------------------------------- | ---------- | --------- | -------- |
| account_id            | Frame Account ID                                              | URL        | string    | True     |
| user_volume_backup_id | Id of the backup (found by querying [backups](#list-backups)) | URL        | string    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
"https://api.console.nutanix.com/v1/accounts/${account_id}/user_volume_backups/${user_volume_backup_id}/restore"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account_id": "0a4e3b25-2365-4a71-bdb0-b0e26788ebf7",
  "customer_id": "fd8dc130-cfe6-40d9-8b3e-7af39024e0e8",
  "display_name": "Restoring user volume backup",
  "duration_sec": null,
  "external_resource_id": "gateway-prod.50591",
  "finished_at": null,
  "id": "d7266ef3-11ad-4e8f-8bca-1ee8c1baa5a3",
  "inserted_at": "2023-04-11T18:51:24.217658Z",
  "kind": "restore_user_volume_backup",
  "organization_id": "fefca2ef-e0fc-42c6-88d3-a21ef995be97",
  "pool_id": null,
  "progress_info": null,
  "result_info": null,
  "stage": "not_started",
  "started_by": {
    "email": "afe5c674-60a6-4143-8015-55d3f9a4e74a.img.frame.nutanix.com_third-party-api",
    "first_name": "X",
    "id": "b93bef6a-0f9a-455e-92dc-5ff52ddd014a",
    "identity_provider": "third-party-api",
    "last_name": "X"
  },
  "updated_at": "2023-04-11T18:51:24.217658Z"
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Update maintenance mode

Update maintenance mode on the account.

<span class="badge badge-post">POST</span> <code>/accounts/:account_id/update_account_maintenance_mode</code>

#### Request Parameters

| Name                | Description              | Param Type | Data Type | Required |
| ------------------- | ------------------------ | ---------- | --------- | -------- |
| account_id          | Frame Account ID         | URL        | string    | True     |
| under_maintenance   | Maintenance mode switch  | Body       | boolean   | True     |
| maintenance_message | Maintenance mode message | Body       | string    | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
--data-raw '{
  "under_maintenance" : true,
  "maintenance_message": "This account is under maintenance mode"
}'
"https://api.console.nutanix.com/v1/accounts/${account_id}/update_account_maintenance_mode"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "website": null,
  "name": "Aca Ivic Local",
  "last_publish": "2018-07-12T11:26:18.879116",
  "id": "b614cb6f-796b-4371-86cb-465d6dfc433b",
  "description": null,
  "active": true
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Change Upgrade Group

Change upgrade/deployment group of the account.

<span class="badge badge-post">POST</span> <code>/accounts/:account_id/change_deployment_group</code>

#### Request Parameters

| Name             | Description               | Param Type | Data Type | Required |
| ---------------- | ------------------------- | ---------- | --------- | -------- |
| account_id       | Frame Account ID          | URL        | string    | True     |
| upgrade_group_id | Upgrade Group External ID | Body       | string    | True     |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X POST \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
--data-raw '{
  "upgrade_group_id" : "gateway-prod.1"
}'
"https://api.console.nutanix.com/v1/accounts/${account_id}/change_deployment_group"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "website": null,
  "name": "Aca Ivic Local",
  "last_publish": "2018-07-12T11:26:18.879116",
  "id": "b614cb6f-796b-4371-86cb-465d6dfc433b",
  "description": null,
  "active": true
}
```

```bash
Status: 200 "OK"
```

</details>



---

### Restore Persistent Desktop Backup

Restore Persistent Desktop Server to a backup.

<span class="badge badge-post">POST</span> <code>/servers/:server_external_id/restore_persistent_desktop/:backup_external_id</code>

#### Request Parameters

| Name                       | Description                           | Param Type | Data Type | Required |
| -------------------------- | ------------------------------------- | ---------- | --------- | -------- |
| server_external_id         | Persistent Desktop Server External ID | URL        | string    | True     |
| backup_external_id         | Backup External ID                    | URL        | string    | True     |
| force_restore_from_replica | Force restore from replica?           | Body       | boolean   | False    |


<details open>
<summary><strong>Request Example</strong></summary>

```bash
curl -X GET \
-H "X-Frame-ClientId: ${client_id}" \
-H "X-Frame-Timestamp: ${timestamp}" \
-H "X-Frame-Signature: ${signature}" \
--data-raw '{
  "force_restore_from_replica" : false
}'
"https://api.console.nutanix.com/v1/servers/${server_external_id}/restore_persistent_desktop/${backup_external_id}"
```

</details>

<details>
<summary><strong>Response Example</strong></summary>

```json
{
  "account_id": "c54a4189-93e0-46d7-a333-d07cab1d4e7b",
  "customer_id": "fd8dc130-cfe6-40d9-8b3e-7af39024e0e8",
  "display_name": "Restoring Persistent Desktop Backup",
  "duration_sec": 21,
  "external_resource_id": null,
  "finished_at": "2023-03-13T16:43:14.600164Z",
  "id": "bf873017-5359-4516-ba8e-91330566abe4",
  "inserted_at": "2023-03-13T16:42:53.768400Z",
  "kind": "restore_persistent_desktop_backup",
  "organization_id": "fefca2ef-e0fc-42c6-88d3-a21ef995be97",
  "pool_id": null,
  "progress_info": null,
  "result_info": null,
  "stage": "done",
  "started_by": {
    "email": "afe5c674-60a6-4143-8015-55d3f9a4e74a.img.frame.nutanix.com_third-party-api",
    "first_name": "X",
    "id": "b93bef6a-0f9a-455e-92dc-5ff52ddd014a",
    "identity_provider": "third-party-api",
    "last_name": "X"
  },
  "updated_at": "2023-03-13T16:43:14.600807Z"
}
```

```bash
Status: 200 OK
```

</details>



---