Overview

This document outlines the methods available for administrating your Zadara Command Center™. The Zadara Storage Command Center API supports form-encoded, JSON, and XML requests, and can return either JSON or XML responses.

Usage

The majority of the APIs available require authentication which requires an API token to use. You can retrieve this token through the Users section of your Command Center, or through the API using the “Return a user’s access token” API in the Users Section below.

Authentication Methods

The authentication token can be passed either through the access_key parameter inside of the body of the REST API request, or through the X-Token header.

Questions

If you have any questions or need support involving the REST API, please contact support@zadarastorage.com for assistance.

Return logs list.

GET /api/access_logs(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/access_logs.json?page=1&per_page=10&user_id=5462&controller=sessions&access_type=web&action=destroy'
page Integer The page number to start from
per_page Integer The total number of records to return
user_id Integer
controller String controller that handles the action
access_type String where the access came from. Can be Web or API
action String the action executed
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <access_logs type="array">
    <log>
      <id type="integer">1408</id>
      <user_id>3251</user_id>
      <controller>images</controller>
      <action>destroy</action>
      <access_type>WEB</access_type>
    </log>
  </access_logs>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "access_logs": [
    {
      "id": 1408,
      "user_id": "3251",
      "controller": "images",
      "action": "destroy",
      "access_type": "WEB"
    }
  ],
  "count": 1
}

Returns a list of all Zadara Storage Clouds which are managed by this Command Center.

GET /api/clouds(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <clouds type="array">
    <cloud>
      <name>cloud1</name>
      <resources>
        <used-memory type="integer">86250</used-memory>
        <total-memory type="integer">124812</total-memory>
        <used-vcpus type="integer">37</used-vcpus>
        <total-vcpus type="integer">88</total-vcpus>
        <used-drives type="integer">33</used-drives>
        <total-drives type="integer">43</total-drives>
        <used-capacity type="integer">7892</used-capacity>
        <total-capacity type="integer">10134</total-capacity>
        <used-cache type="integer">360</used-cache>
        <total-cache type="integer">909</total-cache>
      </resources>
      <inventory type="array">
        <inventory>
          <name>SAS 136GB 15000RPM</name>
          <used type="integer">17</used>
          <total type="integer">22</total>
        </inventory>
        <inventory>
          <name>SATA 465GB 7200RPM</name>
          <used type="integer">12</used>
          <total type="integer">15</total>
        </inventory>
        <inventory>
          <name>SSD 185GB 1RPM</name>
          <used type="integer">0</used>
          <total type="integer">1</total>
        </inventory>
        <inventory>
          <name>SSD CACHE DRIVES</name>
          <used type="integer">4</used>
          <total type="integer">5</total>
        </inventory>
      </inventory>
      <networking>
        <be-allocated-count type="integer">24</be-allocated-count>
        <be-range-end>170.70.3.255</be-range-end>
        <be-range-start>170.70.3.0</be-range-start>
        <be-total-count type="integer">255</be-total-count>
        <cloud-id type="integer">1</cloud-id>
        <fe-allocated-count type="integer">25</fe-allocated-count>
        <fe-range-end>170.70.2.255</fe-range-end>
        <fe-range-start>170.70.2.0</fe-range-start>
        <fe-total-count type="integer">255</fe-total-count>
        <hb-allocated-count type="integer">25</hb-allocated-count>
        <hb-range-end>170.70.0.255</hb-range-end>
        <hb-range-start>170.70.0.0</hb-range-start>
        <hb-total-count type="integer">255</hb-total-count>
        <id type="integer">1</id>
      </networking>
    </cloud>
  </clouds>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "clouds": [
    {
      "name": "cloud1",
      "resources": {
        "used_memory": 86250,
        "total_memory": 124812,
        "used_vcpus": 37,
        "total_vcpus": 88,
        "used_drives": 33,
        "total_drives": 43,
        "used_capacity": 7892,
        "total_capacity": 10134,
        "used_cache": 360,
        "total_cache": 909
      },
      "inventory": [
        {
          "name": "SAS 136GB 15000RPM",
          "used": 17,
          "total": 22
        },
        {
          "name": "SATA 465GB 7200RPM",
          "used": 12,
          "total": 15
        },
        {
          "name": "SSD 185GB 1RPM",
          "used": 0,
          "total": 1
        },
        {
          "name": "SSD CACHE DRIVES",
          "used": 4,
          "total": 5
        }
      ],
      "networking": {
        "be_allocated_count": 24,
        "be_range_end": "170.70.3.255",
        "be_range_start": "170.70.3.0",
        "be_total_count": 255,
        "cloud_id": 1,
        "fe_allocated_count": 25,
        "fe_range_end": "170.70.2.255",
        "fe_range_start": "170.70.2.0",
        "fe_total_count": 255,
        "hb_allocated_count": 25,
        "hb_range_end": "170.70.0.255",
        "hb_range_start": "170.70.0.0",
        "hb_total_count": 255,
        "id": 1
      }
    }
  ],
  "count": 1
}

Returns the details for a single Zadara Storage Cloud.

GET /api/clouds/{name}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{name}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <cloud>
    <resources>
      <used-memory type="integer">86250</used-memory>
      <total-memory type="integer">124812</total-memory>
      <used-vcpus type="integer">37</used-vcpus>
      <total-vcpus type="integer">88</total-vcpus>
      <used-drives type="integer">33</used-drives>
      <total-drives type="integer">43</total-drives>
      <used-capacity type="integer">7892</used-capacity>
      <total-capacity type="integer">10134</total-capacity>
      <used-cache type="integer">360</used-cache>
      <total-cache type="integer">909</total-cache>
    </resources>
    <inventory type="array">
      <inventory>
        <name>SAS 136GB 15000RPM</name>
        <used type="integer">17</used>
        <total type="integer">22</total>
      </inventory>
      <inventory>
        <name>SATA 465GB 7200RPM</name>
        <used type="integer">12</used>
        <total type="integer">15</total>
      </inventory>
      <inventory>
        <name>SSD 185GB 1RPM</name>
        <used type="integer">0</used>
        <total type="integer">1</total>
      </inventory>
      <inventory>
        <name>SSD CACHE DRIVES</name>
        <used type="integer">4</used>
        <total type="integer">5</total>
      </inventory>
    </inventory>
    <networking>
      <id type="integer">1</id>
      <cloud-id type="integer">1</cloud-id>
      <fe-range-start>10.2.31.21</fe-range-start>
      <fe-range-end>10.2.31.199</fe-range-end>
      <fe-total-count type="integer">77</fe-total-count>
      <be-range-start>10.3.31.21</be-range-start>
      <be-range-end>10.3.31.254</be-range-end>
      <be-total-count type="integer">232</be-total-count>
      <hb-range-start>10.0.31.21</hb-range-start>
      <hb-range-end>10.0.31.254</hb-range-end>
      <hb-total-count type="integer">232</hb-total-count>
      <fe-allocated-count type="integer">7</fe-allocated-count>
      <be-allocated-count type="integer">7</be-allocated-count>
      <hb-allocated-count type="integer">7</hb-allocated-count>
      <public-ips-total-count type="integer">1</public-ips-total-count>
      <public-ips-allocated-count type="integer">0</public-ips-allocated-count>
    </networking>
  </cloud>
</response>
{
  "status": "success",
  "cloud": {
    "resources": {
      "used_memory": 86250,
      "total_memory": 124812,
      "used_vcpus": 37,
      "total_vcpus": 88,
      "used_drives": 33,
      "total_drives": 43,
      "used_capacity": 7892,
      "total_capacity": 10134,
      "used_cache": 360,
      "total_cache": 909
    },
    "inventory": [
      {
        "name": "SAS 136GB 15000RPM",
        "used": 17,
        "total": 22
      },
      {
        "name": "SATA 465GB 7200RPM",
        "used": 12,
        "total": 15
      },
      {
        "name": "SSD 185GB 1RPM",
        "used": 0,
        "total": 1
      },
      {
        "name": "SSD CACHE DRIVES",
        "used": 4,
        "total": 5
      }
    ],
    "networking": {
      "id": 1,
      "cloud_id": 1,
      "fe_range_start": "10.2.31.21",
      "fe_range_end": "10.2.31.199",
      "fe_total_count": 77,
      "be_range_start": "10.3.31.21",
      "be_range_end": "10.3.31.254",
      "be_total_count": 232,
      "hb_range_start": "10.0.31.21",
      "hb_range_end": "10.0.31.254",
      "hb_total_count": 232,
      "fe_allocated_count": 7,
      "be_allocated_count": 7,
      "hb_allocated_count": 7,
      "public_ips_total_count": 1,
      "public_ips_allocated_count": 0
    }
  }
}

Returns a list of all of the cloud public IP's

GET /api/clouds/{name}/public_ips(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{name}/public_ips.json?status=assigned'
status String - assigned | free Show only assigned or free ip's
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <public-ips type="array">
    <public-ip>
      <id type="integer">23</id>
      <cloud-id type="integer">1</cloud-id>
      <vpsa-id type="integer">142</vpsa-id>
      <public-address>192.168.10.42</public-address>
      <vlan type="integer">5</vlan>
      <label>e_pub_192_168_10_0</label>
      <netmask>255.255.255.0</netmask>
      <address>192.168.10.42</address>
      <internal-id type="integer">23</internal-id>
      <network-label>FE_MGMT_FEBOND_2</network-label>
      <gateway>192.168.10.1</gateway>
      <created-at type="dateTime">2019-08-28T12:59:50Z</created-at>
      <updated-at type="dateTime">2019-08-28T13:05:33Z</updated-at>
    </public-ip>
    <public-ip>
      <id type="integer">21</id>
      <cloud-id type="integer">1</cloud-id>
      <vpsa-id type="integer">100</vpsa-id>
      <public-address>192.168.10.40</public-address>
      <vlan type="integer">5</vlan>
      <label>e_pub_192_168_10_0</label>
      <netmask>255.255.255.0</netmask>
      <address>192.168.10.40</address>
      <internal-id type="integer">21</internal-id>
      <network-label>FE_MGMT_FEBOND_2</network-label>
      <gateway>192.168.10.1</gateway>
      <created-at type="dateTime">2019-08-28T12:59:50Z</created-at>
      <updated-at type="dateTime">2019-08-28T13:00:29Z</updated-at>
    </public-ip>
    <public-ip>
      <id type="integer">13</id>
      <cloud-id type="integer">1</cloud-id>
      <vpsa-id type="integer">90</vpsa-id>
      <public-address>172.16.5.32</public-address>
      <vlan type="integer">5</vlan>
      <label>pub2</label>
      <netmask>255.255.0.0</netmask>
      <address>172.16.5.32</address>
      <internal-id type="integer">13</internal-id>
      <network-label>FE_MGMT_FEBOND_2</network-label>
      <gateway>172.16.0.254</gateway>
      <created-at type="dateTime">2019-08-08T11:12:04Z</created-at>
      <updated-at type="dateTime">2019-08-08T11:12:41Z</updated-at>
    </public-ip>
    <public-ip>
      <id type="integer">10</id>
      <cloud-id type="integer">1</cloud-id>
      <vpsa-id type="integer">89</vpsa-id>
      <public-address>199.203.140.127</public-address>
      <vlan type="integer">5</vlan>
      <label>pub7</label>
      <netmask>255.255.0.0</netmask>
      <address>172.16.5.22</address>
      <internal-id type="integer">10</internal-id>
      <network-label>FE_MGMT_FEBOND_2</network-label>
      <gateway>172.16.0.254</gateway>
      <created-at type="dateTime">2019-07-22T11:46:06Z</created-at>
      <updated-at type="dateTime">2019-09-03T12:17:56Z</updated-at>
    </public-ip>
    <public-ip>
      <id type="integer">6</id>
      <cloud-id type="integer">1</cloud-id>
      <vpsa-id type="integer">134</vpsa-id>
      <public-address>172.16.5.41</public-address>
      <vlan type="integer">5</vlan>
      <label>e_pub_1</label>
      <netmask>255.255.0.0</netmask>
      <address>172.16.5.41</address>
      <internal-id type="integer">6</internal-id>
      <network-label>FE_MGMT_FEBOND_2</network-label>
      <gateway>172.16.0.254</gateway>
      <created-at type="dateTime">2019-06-23T12:50:38Z</created-at>
      <updated-at type="dateTime">2019-08-01T07:12:22Z</updated-at>
    </public-ip>
  </public-ips>
  <count type="integer">5</count>
</response>
{
  "status": "success",
  "public_ips": [
    {
      "id": 23,
      "cloud_id": 1,
      "vpsa_id": 142,
      "public_address": "192.168.10.42",
      "vlan": 5,
      "label": "e_pub_192_168_10_0",
      "netmask": "255.255.255.0",
      "address": "192.168.10.42",
      "internal_id": 23,
      "network_label": "FE_MGMT_FEBOND_2",
      "gateway": "192.168.10.1",
      "created_at": "2019-08-28 12:59:50 UTC",
      "updated_at": "2019-08-28 13:05:33 UTC"
    },
    {
      "id": 21,
      "cloud_id": 1,
      "vpsa_id": 100,
      "public_address": "192.168.10.40",
      "vlan": 5,
      "label": "e_pub_192_168_10_0",
      "netmask": "255.255.255.0",
      "address": "192.168.10.40",
      "internal_id": 21,
      "network_label": "FE_MGMT_FEBOND_2",
      "gateway": "192.168.10.1",
      "created_at": "2019-08-28 12:59:50 UTC",
      "updated_at": "2019-08-28 13:00:29 UTC"
    },
    {
      "id": 13,
      "cloud_id": 1,
      "vpsa_id": 90,
      "public_address": "172.16.5.32",
      "vlan": 5,
      "label": "pub2",
      "netmask": "255.255.0.0",
      "address": "172.16.5.32",
      "internal_id": 13,
      "network_label": "FE_MGMT_FEBOND_2",
      "gateway": "172.16.0.254",
      "created_at": "2019-08-08 11:12:04 UTC",
      "updated_at": "2019-08-08 11:12:41 UTC"
    },
    {
      "id": 10,
      "cloud_id": 1,
      "vpsa_id": 89,
      "public_address": "199.203.140.127",
      "vlan": 5,
      "label": "pub7",
      "netmask": "255.255.0.0",
      "address": "172.16.5.22",
      "internal_id": 10,
      "network_label": "FE_MGMT_FEBOND_2",
      "gateway": "172.16.0.254",
      "created_at": "2019-07-22 11:46:06 UTC",
      "updated_at": "2019-09-03 12:17:56 UTC"
    },
    {
      "id": 6,
      "cloud_id": 1,
      "vpsa_id": 134,
      "public_address": "172.16.5.41",
      "vlan": 5,
      "label": "e_pub_1",
      "netmask": "255.255.0.0",
      "address": "172.16.5.41",
      "internal_id": 6,
      "network_label": "FE_MGMT_FEBOND_2",
      "gateway": "172.16.0.254",
      "created_at": "2019-06-23 12:50:38 UTC",
      "updated_at": "2019-08-01 07:12:22 UTC"
    }
  ],
  "count": 5
}

Creates a Zsnap for the Command Center's Virtual Machine.

POST /api/clouds/zsnap(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"prefix":"myzsnap"}' 'https://<command-center-ip>:8888/api/clouds/zsnap.json'
prefix String
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>  
{
  "status": "success"
}

Upgrade a Cloud.

POST /api/clouds/{cloud_name}/upgrade(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"package":"14.07.100","components":["vpsas","ccvm"]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/upgrade.json'
package String Required.
components Array Upgrade only the specified component types. sns - upgrade all Storage Nodes. vpsas - upgrade all VPSAs. ccvm - upgrade the CCVM
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Shutdown a Cloud.

POST /api/clouds/{cloud_name}/shutdown(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/shutdown.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Set CCVM custom certificate

POST /api/clouds/{cloud_name}/rename(.xml/json)
Example: curl -X POST -H "X-Token: <token>" -F "package=14.07.100" -F "settings_file=@/tmp/settings.deb" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/rename'
package String Required.
settings_file File Required. Settings file
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Set cube package from the local repository.

POST /api/clouds/{cloud_name}/set_cube(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"package":"14.07.100"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/set_cube.json'
package String Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>cube package change sent</message>
</response>
{
  "status": "success",
  "message": "cube package change sent"
}

Get cloud's VPSA Object Storage storage policy types.

GET /api/clouds/{cloud_name}/vpsa_zone_group_storage_policy_types(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsa_zone_group_storage_policy_types.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <vpsa-zone-group-storage-policy-types type="array">
    <vpsa-zone-group-storage-policy-type>
      <id type="integer">9</id>
      <name>3 way</name>
      <internal-name>3_way</internal-name>
      <data-fragments nil="true"/>
      <parity-fragments nil="true"/>
      <replicas type="integer">3</replicas>
    </vpsa-zone-group-storage-policy-type>
    <vpsa-zone-group-storage-policy-type>
      <id type="integer">10</id>
      <name>4+2 Erasure Code</name>
      <internal-name>4+2</internal-name>
      <data-fragments type="integer">4</data-fragments>
      <parity-fragments type="integer">2</parity-fragments>
      <replicas type="integer">2</replicas>
    </vpsa-zone-group-storage-policy-type>
    <vpsa-zone-group-storage-policy-type>
      <id type="integer">11</id>
      <name>6+3 Erasure Code</name>
      <internal-name>6+3</internal-name>
      <data-fragments type="integer">6</data-fragments>
      <parity-fragments type="integer">3</parity-fragments>
      <replicas type="integer">2</replicas>
    </vpsa-zone-group-storage-policy-type>
    <vpsa-zone-group-storage-policy-type>
      <id type="integer">12</id>
      <name>8+4 Erasure Code</name>
      <internal-name>8+4</internal-name>
      <data-fragments type="integer">8</data-fragments>
      <parity-fragments type="integer">4</parity-fragments>
      <replicas type="integer">2</replicas>
    </vpsa-zone-group-storage-policy-type>
    <vpsa-zone-group-storage-policy-type>
      <id type="integer">8</id>
      <name>2 way</name>
      <internal-name>2_way</internal-name>
      <data-fragments nil="true"/>
      <parity-fragments nil="true"/>
      <replicas type="integer">2</replicas>
    </vpsa-zone-group-storage-policy-type>
  </vpsa-zone-group-storage-policy-types>
</response>
{
  "status": "success",
  "vpsa_zone_group_storage_policy_types": [
    {
      "id": 9,
      "name": "3 way",
      "internal_name": "3_way",
      "data_fragments": null,
      "parity_fragments": null,
      "replicas": 3
    },
    {
      "id": 10,
      "name": "4+2 Erasure Code",
      "internal_name": "4+2",
      "data_fragments": 4,
      "parity_fragments": 2,
      "replicas": 2
    },
    {
      "id": 11,
      "name": "6+3 Erasure Code",
      "internal_name": "6+3",
      "data_fragments": 6,
      "parity_fragments": 3,
      "replicas": 2
    },
    {
      "id": 12,
      "name": "8+4 Erasure Code",
      "internal_name": "8+4",
      "data_fragments": 8,
      "parity_fragments": 4,
      "replicas": 2
    },
    {
      "id": 8,
      "name": "2 way",
      "internal_name": "2_way",
      "data_fragments": null,
      "parity_fragments": null,
      "replicas": 2
    }
  ]
}

Returns a list of all the users (tenants) in a Cloud.

GET /api/clouds/{cloud_name}/cloud_users(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/cloud_users.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <cloud-users type="array">
    <cloud-user>
      <username>a</username>
      <tenant>tenant_a_R2khI</tenant>
      <tenant-internal-id type="integer">105</tenant-internal-id>
      <custom-network nil="true"/>
      <vlan-id type="integer">5</vlan-id>
    </cloud-user>
    <cloud-user>
      <username>b</username>
      <tenant>tenant_b_5EkuQ</tenant>
      <tenant-internal-id type="integer">106</tenant-internal-id>
      <custom-network nil="true"/>
      <vlan-id type="integer">6</vlan-id>
    </cloud-user>
  </cloud-users>
  <count type="integer">2</count>
</response>
{
  "status": "success",
  "cloud_users": [
    {
      "username": "a",
      "tenant": "tenant_a_R2khI",
      "tenant_internal_id": 105,
      "custom_network": null,
      "vlan_id": 5
    },
    {
      "username": "b",
      "tenant": "tenant_b_5EkuQ",
      "tenant_internal_id": 106,
      "custom_network": null,
      "vlan_id": 6
    }
  ],
  "count": 2
}

Returns the details for a singe Cloud user (tenant).

GET /api/clouds/{cloud_name}/cloud_users/{id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/cloud_users/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <cloud-user>
    <username>a</username>
    <tenant>tenant_a_R2khI</tenant>
    <tenant-internal-id type="integer">105</tenant-internal-id>
    <custom-network nil="true"/>
    <vlan-id type="integer">5</vlan-id>
  </cloud-user>
</response>
{
  "status": "success",
  "cloud_user": {
    "username": "a",
    "tenant": "tenant_a_R2khI",
    "tenant_internal_id": 105,
    "custom_network": null,
    "vlan_id": 5
  }
}

Returns the vlans for the cloud.

GET /api/clouds/{cloud_name}/cloud_users/vlans(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/cloud_users/vlans.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <vlans type="array">
    <vlan>
      <comment nil="true"/>
      <tenants type="array">
        <tenant type="integer">2</tenant>
      </tenants>
      <allocated type="boolean">true</allocated>
      <reserved type="boolean">false</reserved>
      <vlan-id type="integer">50</vlan-id>
    </vlan>
    <vlan>
      <comment nil="true"/>
      <tenants type="array">
        <tenant type="integer">4</tenant>
        <tenant type="integer">3</tenant>
      </tenants>
      <allocated type="boolean">true</allocated>
      <reserved type="boolean">false</reserved>
      <vlan-id type="integer">51</vlan-id>
    </vlan>
  </vlans>
  <count type="integer">2</count>
</response>
{
  "status": "success",
  "vlans": [
    {
      "comment": null,
      "tenants": [
        2
      ],
      "allocated": true,
      "reserved": false,
      "vlan_id": 50
    },
    {
      "comment": null,
      "tenants": [
        4,
        3
      ],
      "allocated": true,
      "reserved": false,
      "vlan_id": 51
    }
  ],
  "count": 2
}

Returns the list of the cloud_user comments.

GET /api/clouds/{cloud_name}/cloud_users/{id}/comments(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/cloud_users/{id}/comments.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <comments>
    <comment>
      <content>**test comment**</content>
      <severity_id>0</severity_id>
      <severity_name>critical</severity_name>
      <created_by>1</created_by>
      <created_at>2017-01-04T12:23:02+02:00</created_at>
    </comment>
  </comments>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "comments": {
    "comment": {
      "content": "**test comment**",
      "severity_id": "0",
      "severity_name": "critical",
      "created_by": "1",
      "created_at": "2017-01-04T12:23:02+02:00"
    }
  },
  "count": 1
}

Allocate vlan for cloud user.

POST /api/clouds/{cloud_name}/cloud_users/{tenant_id}/allocate_vlan_id(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"vlan_id":55,"force":true}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/cloud_users/{tenant_id}/allocate_vlan_id.json'
vlan_id Integer Required.
force Boolean Allow multiple cloud users on the same vlan
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <allocated-vlan type="integer">51</allocated-vlan>
</response>
{
  "status": "success",
  "allocated_vlan": 51
}

Deallocate vlan for cloud user.

DELETE /api/clouds/{cloud_name}/cloud_users/{tenant_id}/deallocate_vlan_id(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"vlan_id":55}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/cloud_users/{tenant_id}/deallocate_vlan_id.json'
vlan_id Integer Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <deallocated-vlan type="integer">51</deallocated-vlan>
</response>
{
  "status": "success",
  "deallocated_vlan": 51
}

Returns a list of the Custom Networks which are defined in the Zadara Storage Cloud.

GET /api/clouds/{cloud_name}/custom_networks(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/custom_networks.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<response>
  <custom-networks>
    <custom-network>
      <name>b</name>
      <user>buser</user>
      <cidr>10.51.84.160/29</cidr>
      <gateway>10.51.84.167</gateway>
    </custom-network>
    <custom-network>
      <name>a</name>
      <user>a-user</user>
      <cidr>10.4.4.16/24</cidr>
      <gateway>10.4.4.1</gateway>
    </custom-network>
  </custom-networks>
  <count type="integer">2</count>
</response>
{
  "custom_networks": {
    "custom_network": [
      {
        "name": "b",
        "user": "buser",
        "cidr": "10.51.84.160/29",
        "gateway": "10.51.84.167"
      },
      {
        "name": "a",
        "user": "a-user",
        "cidr": "10.4.4.16/24",
        "gateway": "10.4.4.1"
      }
    ]
  },
  "count": 2
}

Returns details of a Custom Network.

GET /api/clouds/{cloud_name}/custom_networks/{id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/custom_networks/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <custom-network>
    <name>a</name>
    <user>auser</user>
    <cidr>160.60.2.0/16</cidr>
    <gateway>160.60.2.1</gateway>
  </custom-network>
</response>
{
  "status": "success",
  "custom_network": {
    "name": "a",
    "user": "auser",
    "cidr": "160.60.2.0/16",
    "gateway": "160.60.2.1"
  }
}

Creates a Custom Network (ipv4 or ipv6).

POST /api/clouds/{cloud_name}/custom_networks(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"user":"5","name":"mynetwork","cidr":"170.70.1.0/24","ipv6_cidr":"2001:16:58::/32","gateway":"170.70.1.1","ipv6_gateway":"2001:16:58::1","ip_range":"170.70.1.2-170.70.1.50","ipv6_ip_range":"2001:16:58::2-2001:16:58::52","vlan_id":50}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/custom_networks.json'
user String Required. Tenant id
name String Required.
cidr String
ipv6_cidr String
gateway String Required.
ipv6_gateway String
ip_range String
ipv6_ip_range String
vlan_id Integer To automatically assign use "vlan_id":""
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <custom-network>
    <name>a</name>
    <user>auser</user>
    <cidr>160.60.2.0/16</cidr>
    <gateway>160.60.2.1</gateway>
    <vlan_id>50</vlan_id>
  </custom-network>
</response>
{
  "status": "success",
  "custom_network": {
    "name": "a",
    "user": "auser",
    "cidr": "160.60.2.0/16",
    "gateway": "160.60.2.1",
    "vlan_id": "50"
  }
}

Permanently deletes a Custom Network.

DELETE /api/clouds/{cloud_name}/custom_networks/{id}(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/custom_networks/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Adds an IP range to an existing Custom Network.

POST /api/clouds/{cloud_name}/custom_networks/{id}/add_ip_ranges(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"range":"160.60.5.0-160.60.5.10"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/custom_networks/{id}/add_ip_ranges.json'
range String Required. IP Range
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Removes an IP range from an existing Custom Network.

POST /api/clouds/{cloud_name}/custom_networks/{id}/remove_ip_ranges(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"range":"160.60.5.0-160.60.5.10"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/custom_networks/{id}/remove_ip_ranges.json'
range String Required. IP Range
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Return the list of cloud provisioned vlans.

GET /api/clouds/{cloud_name}/vlans(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vlans.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <vlans type="array">
    <vlan>
      <comment nil="true"/>
      <tenants type="array">
        <tenant type="integer">2</tenant>
      </tenants>
      <allocated type="boolean">true</allocated>
      <reserved type="boolean">false</reserved>
      <vlan-id type="integer">50</vlan-id>
    </vlan>
    <vlan>
      <comment nil="true"/>
      <tenants type="array">
        <tenant type="integer">4</tenant>
        <tenant type="integer">3</tenant>
      </tenants>
      <allocated type="boolean">true</allocated>
      <reserved type="boolean">false</reserved>
      <vlan-id type="integer">51</vlan-id>
    </vlan>
  </vlans>
  <count type="integer">2</count>
</response>
{
  "status": "success",
  "vlans": [
    {
      "comment": null,
      "tenants": [
        2
      ],
      "allocated": true,
      "reserved": false,
      "vlan_id": 50
    },
    {
      "comment": null,
      "tenants": [
        4,
        3
      ],
      "allocated": true,
      "reserved": false,
      "vlan_id": 51
    }
  ],
  "count": 2
}

Add provisioned vlan or a range to the cloud.

POST /api/clouds/{cloud_name}/vlans(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"range_start":55,"range_end":80}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vlans.json'
range_start Integer Required.
range_end Integer If not provided, range_start will be added as single vlan
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <allocated-vlan type="integer">51</allocated-vlan>
</response>
{
  "status": "success",
  "allocated_vlan": 51
}

Remove provisioned vlan from the cloud.

DELETE /api/clouds/{cloud_name}/vlans/{vlan_id}(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vlans/{vlan_id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Allocate vlan to cloud user.

POST /api/clouds/{cloud_name}/vlans/{vlan_id}/allocate(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"tenant_id":55}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vlans/{vlan_id}/allocate.json'
tenant_id Integer Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <allocated-vlan type="integer">51</allocated-vlan>
</response>
{
  "status": "success",
  "allocated_vlan": 51
}

Deallocate vlan from cloud user.

DELETE /api/clouds/{cloud_name}/vlans/{vlan_id}/deallocate(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"tenant_id":55}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vlans/{vlan_id}/deallocate.json'
tenant_id Integer Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <deallocated-vlan type="integer">51</deallocated-vlan>
</response>
{
  "status": "success",
  "deallocated_vlan": 51
}

Reserve provisioned vlan.

POST /api/clouds/{cloud_name}/vlans/{vlan_id}/reserve(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vlans/{vlan_id}/reserve.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <reserved-vlan type="integer">51</reserved-vlan>
</response>
{
  "status": "success",
  "reserved_vlan": 51
}

Unreserve provisioned vlan.

DELETE /api/clouds/{cloud_name}/vlans/{vlan_id}/unreserve(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vlans/{vlan_id}/unreserve.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Set default vlan for cloud user.

POST /api/clouds/{cloud_name}/vlans/{vlan_id}/default(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"tenant_id":55}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vlans/{vlan_id}/default.json'
tenant_id Integer Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Add VRIDs to vlan.

POST /api/clouds/{cloud_name}/vlans/{vlan_id}/add_vrids(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"range_start":55,"range_end":155}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vlans/{vlan_id}/add_vrids.json'
range_start Integer Required.
range_end Integer Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Remove VRIDs from vlan.

POST /api/clouds/{cloud_name}/vlans/{vlan_id}/remove_vrids(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"range_start":55,"range_end":155}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vlans/{vlan_id}/remove_vrids.json'
range_start Integer Required.
range_end Integer Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Reserve VRID for vlan.

POST /api/clouds/{cloud_name}/vlans/{vlan_id}/reserve_vrid(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"vrid":55}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vlans/{vlan_id}/reserve_vrid.json'
vrid Integer Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Unreserve VRID from vlan.

POST /api/clouds/{cloud_name}/vlans/{vlan_id}/unreserve_vrid(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"vrid":55}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vlans/{vlan_id}/unreserve_vrid.json'
vrid Integer Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Returns a list of all the drives in a Zadara Storage Cloud.

GET /api/clouds/{cloud_name}/drives(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <drives>
    <drive>
      <device-name>/dev/sdi</device-name>
      <storage-node>ubuntu-sata-31</storage-node>
      <drive-type>SAS 136GB 15000RPM</drive-type>
      <capacity type="integer">136</capacity>
      <licensed type="boolean">true</licensed>
      <status>Allocated</status>
      <address>0:32:8 (Ad:En:Sl)</address>
      <pci-address>2:0.0</pci-address>
      <product-id>SEAGATE ST3300657SS-H</product-id>
      <serial-num>12SA32</serial-num>
      <fw-version>4.5.3</fw-version>
      <target-fw-ver>4.5.6</target-fw-ver>
      <upgrade_recommended type="boolean">false</upgrade_recommended>
      <cache type="boolean">false</cache>
      <enabled type="boolean">false</enabled>
      <vpsa>vsa-a-12</vpsa>
      <volumes type="array">
        <volume>volume-000028e2</volume>
        <volume>volume-00002ba8</volume>
      </volumes>
    </drive>
  </drives>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "drives": {
    "drive": {
      "device_name": "/dev/sdi",
      "storage_node": "ubuntu-sata-31",
      "drive_type": "SAS 136GB 15000RPM",
      "capacity": 136,
      "licensed": true,
      "status": "Allocated",
      "address": "0:32:8 (Ad:En:Sl)",
      "pci_address": "2:0.0",
      "product_id": "SEAGATE ST3300657SS-H",
      "serial_num": "12SA32",
      "fw_version": "4.5.3",
      "target_fw_ver": "4.5.6",
      "upgrade_recommended": false,
      "cache": false,
      "enabled": false,
      "vpsa": "vsa-a-12",
      "volumes": [
        "volume-000028e2",
        "volume-00002ba8"
      ]
    }
  },
  "count": 1
}

Returns detailed information about a single drive.

GET /api/clouds/{cloud_name}/drives/{id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <drive>
    <device-name>/dev/sdi</device-name>
    <storage-node>ubuntu-sata-31</storage-node>
    <drive-type>SAS 136GB 15000RPM</drive-type>
    <capacity type="integer">136</capacity>
    <licensed type="boolean">true</licensed>
    <status>Allocated</status>
    <address>0:32:8 (Ad:En:Sl)</address>
    <pci-address>2:0.0</pci-address>
    <product-id>SEAGATE ST3300657SS-H</product-id>
    <serial-num>12SA32</serial-num>
    <fw-version>4.5.3</fw-version>
    <target-fw-ver>4.5.6</target-fw-ver>
    <upgrade_recommended type="boolean">false</upgrade_recommended>
    <cache type="boolean">false</cache>
    <enabled type="boolean">false</enabled>
    <vpsa>vsa-lev-12</vpsa>
    <volumes type="array">
      <volume>volume-000028e2</volume>
      <volume>volume-00002ba8</volume>
    </volumes>
  </drive>
</response>
{
  "status": "success",
  "drive": {
    "device_name": "/dev/sdi",
    "storage_node": "ubuntu-sata-31",
    "drive_type": "SAS 136GB 15000RPM",
    "capacity": 136,
    "licensed": true,
    "status": "Allocated",
    "address": "0:32:8 (Ad:En:Sl)",
    "pci_address": "2:0.0",
    "product_id": "SEAGATE ST3300657SS-H",
    "serial_num": "12SA32",
    "fw_version": "4.5.3",
    "target_fw_ver": "4.5.6",
    "upgrade_recommended": false,
    "cache": false,
    "enabled": false,
    "vpsa": "vsa-lev-12",
    "volumes": [
      "volume-000028e2",
      "volume-00002ba8"
    ]
  }
}

Returns the list of the drive comments.

GET /api/clouds/{cloud_name}/drives/{id}/comments(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/comments.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <comments>
    <comment>
      <content>**test comment**</content>
      <severity_id>0</severity_id>
      <severity_name>critical</severity_name>
      <created_by>1</created_by>
      <created_at>2017-01-04T12:23:02+02:00</created_at>
    </comment>
  </comments>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "comments": {
    "comment": {
      "content": "**test comment**",
      "severity_id": "0",
      "severity_name": "critical",
      "created_by": "1",
      "created_at": "2017-01-04T12:23:02+02:00"
    }
  },
  "count": 1
}

Replaces a drive which is allocated to a VPSA. This command will allocate a new drive of the same drive type for the VPSA, replace the drive in the RaidGroup and free the replaced drive back to the Zadara Cloud repository.

POST /api/clouds/{cloud_name}/drives/{id}/replace(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/replace.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Enables a drive's LED.

POST /api/clouds/{cloud_name}/drives/{id}/enable_led(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/enable_led.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Disables a drive's LED.

POST /api/clouds/{cloud_name}/drives/{id}/disable_led(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/disable_led.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Enables a drive. Adds the drive back to the Zadara Cloud inventory. Enabled drive can be allocated to a VPSA.

POST /api/clouds/{cloud_name}/drives/{id}/enable(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/enable.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Disables a drive. Removes the drive from the Zadara Cloud inventory. Disabled drives can not be allocated to VPSAs

POST /api/clouds/{cloud_name}/drives/{id}/disable(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/disable.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Removes a drive. Removed drives can not be restored.

POST /api/clouds/{cloud_name}/drives/{id}/remove(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/remove.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Designates a drive as a cache drive.

POST /api/clouds/{cloud_name}/drives/{id}/designate_as_cache(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/designate_as_cache.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Undesignate a drive as cache drive.

POST /api/clouds/{cloud_name}/drives/{id}/undesignate_as_cache(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/undesignate_as_cache.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Show a drive's details including location information.

GET /api/clouds/{cloud_name}/drives/{id}/details(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/details.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <details>
    <adapter-id type="integer">0</adapter-id>
    <enclosure-id type="integer">32</enclosure-id>
    <slot type="integer">5</slot>
    <hba>...</hba>
    <write-back type="boolean">true</write-back>
    <read-ahead type="boolean">true</read-ahead>
    <licensed type="boolean">true</licensed>
  </details>
</response>
{
  "status": "success",
  "details": {
    "adapter_id": 0,
    "enclosure_id": 32,
    "slot": 5,
    "hba": "...",
    "write_back": true,
    "read_ahead": true,
    "licensed": true
  }
}

Returns a drive's SMART attributes.

GET /api/clouds/{cloud_name}/drives/{id}/smart_attributes(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/smart_attributes.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <smart-attributes>
    smart attributes content...
  </smart-attributes>
</response>
{
  "status": "success",
  "smart_attributes": "\n    smart attributes content...\n  "
}

Returns a drive's SMART test results.

GET /api/clouds/{cloud_name}/drives/{id}/smart_test_results(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/smart_test_results.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <smart-test-results>...</smart-test-results>
</response>
{
  "status": "success",
  "smart_test_results": "..."
}

Run a drive's SMART test.

POST /api/clouds/{cloud_name}/drives/{id}/run_smart_test(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/run_smart_test.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <smart-test>Command completed successfully!</smart-test>
</response>
{
  "status": "success",
  "smart_test": "Command completed successfully!"
}

License an available (non-allocated) drive. This API allow manual selection of the licensed drives in a Storage Node

POST /api/clouds/{cloud_name}/drives/{id}/license(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/license.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Unlicense an available (non-allocated) drive. This API allow manual selection of the licensed drives in a Storage Node <response> <status>success</status> </response>

POST /api/clouds/{cloud_name}/drives/{id}/unlicense(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/unlicense.json'
No parameters available for this command.

Show metered performance information for a drive.

GET /api/clouds/{cloud_name}/drives/{id}/performance(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drives/{id}/performance.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
   <performances type="array">
    <performance>
      <iops>
        <read type="integer">0</read>
        <write type="integer">0</write>
      </iops>
      <iotime>
        <read type="float">0.0</read>
        <write type="float">0.0</write>
      </iotime>
      <bandwidth>
        <read type="float">0.0</read>
        <write type="float">0.0</write>
      </bandwidth>
      <queue-length>
        <read type="integer">0</read>
        <write type="integer">0</write>
      </queue-length>
      <datetime type="datetime">2014-07-28T18:04:42+03:00</datetime>
      <label>18:04:42</label>
    </performance>
  </performances>
</response>
{
  "status": "success",
  "performances": [
    {
      "iops": {
        "read": 0,
        "write": 0
      },
      "iotime": {
        "read": 0.0,
        "write": 0.0
      },
      "bandwidth": {
        "read": 0.0,
        "write": 0.0
      },
      "queue_length": {
        "read": 0,
        "write": 0
      },
      "datetime": "2014-07-28 15:04:42 UTC",
      "label": "18:04:42"
    }
  ]
}

Returns a list of Drive Types.

GET /api/clouds/{cloud_name}/drive_types(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drive_types.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<response>
	<status>success</status>
	<drive-types>	
		<drive-type>
      <name>SSD CACHE DRIVES</name>
      <type>SSD</type>
      <size type="integer">0</size>
      <rpm nil="true"/>
      <inventory>
        <used type="integer">4</used>
        <total type="integer">4</total>
      </inventory>
      <total type="integer">4</total>
      <product-id>SmrtStor TXA2D20200GA6001</product-id>
      <internal-id type="integer">11269</internal-id>
    </drive-type>
  </drive-types>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "drive_types": {
    "drive_type": {
      "name": "SSD CACHE DRIVES",
      "type": "SSD",
      "size": 0,
      "rpm": null,
      "inventory": {
        "used": 4,
        "total": 4
      },
      "total": 4,
      "product_id": "SmrtStor TXA2D20200GA6001",
      "internal_id": 11269
    }
  },
  "count": 1
}

Returns details of a single Drive Type.

GET /api/clouds/{cloud_name}/drive_types/{id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drive_types/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <drive-type>
    <name>SSD 119GB 1RPM</name>
    <type>SSD</type>
    <size type="integer">119</size>
    <rpm nil="true"/>
    <inventory>
      <used type="integer">0</used>
      <total type="integer">0</total>
    </inventory>
    <total type="integer">0</total>
    <product-id nil="true"/>
    <internal-id type="integer">5</internal-id>
  </drive-type>
</response>
{
  "status": "success",
  "drive_type": {
    "name": "SSD 119GB 1RPM",
    "type": "SSD",
    "size": 119,
    "rpm": null,
    "inventory": {
      "used": 0,
      "total": 0
    },
    "total": 0,
    "product_id": null,
    "internal_id": 5
  }
}

Returns all of the drives for a Drive Type.

GET /api/clouds/{cloud_name}/drive_types/{id}/drives(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drive_types/{id}/drives.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
	<status>success</status>
  <drives>
    <drive>
      <device-name>/dev/sdg</device-name>
      <node>ubuntu-sata-31</node>
      <address>0:32:6 (Ad:En:Sl)</address>
      <product-id>TOSHIBA PX02SMF020</product-id>
      <capacity type="integer">185</capacity>
      <licensed type="boolean">true</licensed>
      <status>Allocated</status>
      <vpsa>vsa-b-3</vpsa>
      <volume>volume-00003e8f</volume>
    </drive>
    <drive>
      <device-name>/dev/sdj</device-name>
      <node>ubuntu-sata-31</node>
      <address>0:32:9 (Ad:En:Sl)</address>
      <product-id>SmrtStor TXA2D20200GA6001</product-id>
      <capacity type="integer">185</capacity>
      <licensed type="boolean">true</licensed>
      <status>Allocated</status>
      <vpsa>vsa-a-12</vpsa>
      <volume>volume-00003e99</volume>
    </drive>
  </drives>
  <count type="integer">2</count>
</response>
{
  "status": "success",
  "drives": {
    "drive": [
      {
        "device_name": "/dev/sdg",
        "node": "ubuntu-sata-31",
        "address": "0:32:6 (Ad:En:Sl)",
        "product_id": "TOSHIBA PX02SMF020",
        "capacity": 185,
        "licensed": true,
        "status": "Allocated",
        "vpsa": "vsa-b-3",
        "volume": "volume-00003e8f"
      },
      {
        "device_name": "/dev/sdj",
        "node": "ubuntu-sata-31",
        "address": "0:32:9 (Ad:En:Sl)",
        "product_id": "SmrtStor TXA2D20200GA6001",
        "capacity": 185,
        "licensed": true,
        "status": "Allocated",
        "vpsa": "vsa-a-12",
        "volume": "volume-00003e99"
      }
    ]
  },
  "count": 2
}

Returns the list of the drive type comments.

GET /api/clouds/{cloud_name}/drive_types/{id}/comments(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/drive_types/{id}/comments.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <comments>
    <comment>
      <content>**test comment**</content>
      <severity_id>0</severity_id>
      <severity_name>critical</severity_name>
      <created_by>1</created_by>
      <created_at>2017-01-04T12:23:02+02:00</created_at>
    </comment>
  </comments>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "comments": {
    "comment": {
      "content": "**test comment**",
      "severity_id": "0",
      "severity_name": "critical",
      "created_by": "1",
      "created_at": "2017-01-04T12:23:02+02:00"
    }
  },
  "count": 1
}

Returns a list of Cloud's IO engine types.

GET /api/clouds/{cloud_name}/engine_types(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/engine_types.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <engine-types>
    <engine-type>
      <name>Blazing (V2)</name>
      <internal-type>vsa.V2.large.vf</internal-type>
      <internal-id type="integer">21</internal-id>
      <ram type="integer">16384</ram>
      <vcpus type="integer">5</vcpus>
      <vpsas-count type="integer">0</vpsas-count>
    </engine-type>
  </engine-types>
  <count type="integer">1</count>
</response> 
{
  "status": "success",
  "engine_types": {
    "engine_type": {
      "name": "Blazing (V2)",
      "internal_type": "vsa.V2.large.vf",
      "internal_id": 21,
      "ram": 16384,
      "vcpus": 5,
      "vpsas_count": 0
    }
  },
  "count": 1
}

Returns a single IO engine type details.

GET /api/clouds/{cloud_name}/engine_types/{internal_id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/engine_types/{internal_id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <engine-type>
    <name>Blazing (V2)</name>
    <internal-type>vsa.V2.large.vf</internal-type>
    <internal-id type="integer">21</internal-id>
    <ram type="integer">16384</ram>
    <vcpus type="integer">5</vcpus>
    <vpsas-count type="integer">0</vpsas-count>
  </engine-type>
</response>
{
  "status": "success",
  "engine_type": {
    "name": "Blazing (V2)",
    "internal_type": "vsa.V2.large.vf",
    "internal_id": 21,
    "ram": 16384,
    "vcpus": 5,
    "vpsas_count": 0
  }
}

Returns a list of Cloud's APP engine types.

GET /api/clouds/{cloud_name}/app_engine_types(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/app_engine_types.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <app-engine-types>
    <app-engine-type>
      <name>Tiny</name>
      <internal-type>tiny</internal-type>
      <ram type="integer">200</ram>
      <vcpus type="integer">1</vcpus>
      <vpsas-count type="integer">0</vpsas-count>
    </app-engine-type>
    <app-engine-type>
      <name>Small</name>
      <internal-type>small</internal-type>
      <ram type="integer">512</ram>
      <vcpus type="integer">1</vcpus>
      <vpsas-count type="integer">1</vpsas-count>
    </app-engine-type>
  </app-engine-types>
  <count type="integer">2</count>
</response>
{
  "status": "success",
  "app_engine_types": {
    "app_engine_type": [
      {
        "name": "Tiny",
        "internal_type": "tiny",
        "ram": 200,
        "vcpus": 1,
        "vpsas_count": 0
      },
      {
        "name": "Small",
        "internal_type": "small",
        "ram": 512,
        "vcpus": 1,
        "vpsas_count": 1
      }
    ]
  },
  "count": 2
}

Returns a single APP engine type details.

GET /api/clouds/{cloud_name}/app_engine_types/{name}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/app_engine_types/{name}.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <app-engine-type>
    <name>Tiny</name>
    <internal-type>tiny</internal-type>
    <ram type="integer">200</ram>
    <vcpus type="integer">1</vcpus>
    <vpsas-count type="integer">0</vpsas-count>
  </app-engine-type>
</response> 
{
  "status": "success",
  "app_engine_type": {
    "name": "Tiny",
    "internal_type": "tiny",
    "ram": 200,
    "vcpus": 1,
    "vpsas_count": 0
  }
}

Returns a list of Cloud's registered images.

GET /api/clouds/{cloud_name}/images(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/images.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <images>
    <image>
      <name>vc-00.00-1389.img</name>
      <size type="integer">2892</size>
      <checksum>b6b49dc25a4478b9e290b2d2a3a4ab26</checksum>
      <internal-id type="integer">1988</internal-id>
      <image-type>vc</image-type>
      <default type="boolean">false</default>
    </image>
    <image>
      <name>vc-00.00-1389-dev.img</name>
      <size type="integer">2904</size>
      <checksum>0a092f90c93c7cd2f8d7021d4ce09f26</checksum>
      <internal-id type="integer">1987</internal-id>
      <image-type>vc</image-type>
      <default type="boolean">false</default>
    </image>
  </images>
  <count type="integer">2</count>
</response> 
{
  "status": "success",
  "images": {
    "image": [
      {
        "name": "vc-00.00-1389.img",
        "size": 2892,
        "checksum": "b6b49dc25a4478b9e290b2d2a3a4ab26",
        "internal_id": 1988,
        "image_type": "vc",
        "default": false
      },
      {
        "name": "vc-00.00-1389-dev.img",
        "size": 2904,
        "checksum": "0a092f90c93c7cd2f8d7021d4ce09f26",
        "internal_id": 1987,
        "image_type": "vc",
        "default": false
      }
    ]
  },
  "count": 2
}

Returns a single image's details.

GET /api/clouds/{cloud_name}/images/{id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/images/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
<status>success</status>
  <image>
    <name>vc-00.00-1389.img</name>
    <size type="integer">2892</size>
    <checksum>b6b49dc25a4478b9e290b2d2a3a4ab26</checksum>
    <internal-id type="integer">1988</internal-id>
    <image-type>vc</image-type>
    <default type="boolean">false</default>
  </image>
</response>  
{
  "status": "success",
  "image": {
    "name": "vc-00.00-1389.img",
    "size": 2892,
    "checksum": "b6b49dc25a4478b9e290b2d2a3a4ab26",
    "internal_id": 1988,
    "image_type": "vc",
    "default": false
  }
}

Sets an image as the default for a Cloud.

POST /api/clouds/{cloud_name}/images/{id}/set_default(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/images/{id}/set_default.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Returns a list of all Storage Nodes in a Zadara Storage Cloud.

GET /api/clouds/{cloud_name}/nodes(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <nodes>
    <node>
      <name>ubuntu-sata-51</name>
      <absent type="boolean">false</absent>
      <drives type="array">
        <drive>
          <drive-type>SAS 136GB 15000RPM</drive-type>
          <used type="integer">1</used>
          <total type="integer">5</total>
        </drive>
        <drive>
          <drive-type>SATA 465GB 7200RPM</drive-type>
          <used type="integer">3</used>
          <total type="integer">4</total>
        </drive>
        <drive>
          <drive-type>SSD CACHE DRIVES</drive-type>
          <used type="integer">2</used>
          <total type="integer">2</total>
        </drive>
      </drives>
      <fault-domain>1</fault-domain>
      <master type="boolean">true</master>
      <slave type="boolean">false</slave>
    </node>
  </nodes>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "nodes": {
    "node": {
      "name": "ubuntu-sata-51",
      "absent": false,
      "drives": [
        {
          "drive_type": "SAS 136GB 15000RPM",
          "used": 1,
          "total": 5
        },
        {
          "drive_type": "SATA 465GB 7200RPM",
          "used": 3,
          "total": 4
        },
        {
          "drive_type": "SSD CACHE DRIVES",
          "used": 2,
          "total": 2
        }
      ],
      "fault_domain": "1",
      "master": true,
      "slave": false
    }
  },
  "count": 1
}

Returns a single Storage Node.

GET /api/clouds/{cloud_name}/nodes/{id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <node>
    <name>ubuntu-sata-51</name>
    <absent type="boolean">false</absent>
    <information>
      <bios-version>2.2.2</bios-version>
      <system-manufacturer>Dell Inc.</system-manufacturer>
      <system-product-name>PowerEdge R720xd</system-product-name>
      <system-serial-number>GG2J022</system-serial-number>
      <baseboard-serial-number>..CN7016345D0021.</baseboard-serial-number>
      <chassis-serial-number>GG2J022</chassis-serial-number>
      <mr-info>
        <adp-info>
          <adp-no>0</adp-no>
          <product-name>PERC H710P Mini</product-name>
          <target-fw-ver>None</target-fw-ver>
          <upgrade-recommended>no</upgrade-recommended>
          <cur-fw-ver>21.2.0-0007</cur-fw-ver>
        </adp-info>
      </mr-info>
      <cpu-infos>
        <cpu-info>
          <cpu-cores>6</cpu-cores>
          <physical-id>0</physical-id>
          <cpu-MHz>1199.863</cpu-MHz>
          <model-name>Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz</model-name>
          <cache-size>15360 KB</cache-size>
        </cpu-info>
      </cpu-infos>
      <uptime-since>2016-05-29 12:02:50</uptime-since>
    </information>
    <nic-information type="array">
      <nic-information>
        <pci-address>0000:04:00.0</pci-address>
        <general-info>Mellanox Technologies MT27520 Family [ConnectX-3 Pro]</general-info>
        <interfaces>eth10G1 [f4:52:14:78:f3:b0], eth10G2 [f4:52:14:78:f3:b1]</interfaces>
        <roles>BE, FE</roles>
        <firmware>2.33.8000</firmware>
        <speed>40000 Mb/s</speed>
        <product-name>CX314A - ConnectX-3 Pro QSFP</product-name>
        <part-number>MCX314A-BCCT</part-number>
      </nic-information>
    </nic-information>

    <services type="array">
      <service>
        <name>zadara-sn</name>
        <version>00.00-1400</version>
        <status>Online</status>
        <status-badge-class>label-success</status-badge-class>
      </service>
      <service>
        <name>drbd</name>
        <version>2:8.3.11</version>
        <status>Online</status>
        <status-badge-class>label-success</status-badge-class>
      </service>
    </services>
    <resources>
      <used-vcpus type="integer">7</used-vcpus>
      <total-vcpus type="integer">24</total-vcpus>
      <used-memory type="integer">12340</used-memory>
      <total-memory type="integer">30179</total-memory>
    </resources>
    <drives type="array">
      <drive>
        <drive-type>SAS 136GB 15000RPM</drive-type>
        <used type="integer">1</used>
        <total type="integer">5</total>
      </drive>
      <drive>
        <drive-type>SATA 465GB 7200RPM</drive-type>
        <used type="integer">3</used>
        <total type="integer">4</total>
      </drive>
      <drive>
        <drive-type>SSD CACHE DRIVES</drive-type>
        <used type="integer">2</used>
        <total type="integer">2</total>
      </drive>
    </drives>
    <fault-domain>FD_2</fault-domain>
    <master type="boolean">true</master>
    <slave type="boolean">false</slave>
    <license>
      <key>...</key>
      <active type="boolean">true</active>
      <temporary type="boolean">false</temporary>
      <disabled type="boolean">false</disabled>
      <licensed-drives nil="true"/>
      <total-drives type="integer">11</total-drives>
      <expires nil="true"/>
      <first-activated>2014-06-10</first-activated>
      <last-activated>2014-06-25</last-activated>
      <next-activation>2014-06-26</next-activation>
      <message nil="true"/>
      <status>Active</status>
      <badge-class>success</badge-class>
    </license>
  </node>
</response>
{
  "status": "success",
  "node": {
    "name": "ubuntu-sata-51",
    "absent": false,
    "information": {
      "bios_version": "2.2.2",
      "system_manufacturer": "Dell Inc.",
      "system_product_name": "PowerEdge R720xd",
      "system_serial_number": "GG2J022",
      "baseboard_serial_number": "..CN7016345D0021.",
      "chassis_serial_number": "GG2J022",
      "mr_info": {
        "adp_info": {
          "adp_no": "0",
          "product_name": "PERC H710P Mini",
          "target_fw_ver": "None",
          "upgrade_recommended": "no",
          "cur_fw_ver": "21.2.0-0007"
        }
      },
      "cpu_infos": {
        "cpu_info": {
          "cpu_cores": "6",
          "physical_id": "0",
          "cpu_MHz": "1199.863",
          "model_name": "Intel(R) Xeon(R) CPU E5-2630 0 @ 2.30GHz",
          "cache_size": "15360 KB"
        }
      },
      "uptime_since": "2016-05-29 12:02:50"
    },
    "nic_information": [
      {
        "pci_address": "0000:04:00.0",
        "general_info": "Mellanox Technologies MT27520 Family [ConnectX-3 Pro]",
        "interfaces": "eth10G1 [f4:52:14:78:f3:b0], eth10G2 [f4:52:14:78:f3:b1]",
        "roles": "BE, FE",
        "firmware": "2.33.8000",
        "speed": "40000 Mb/s",
        "product_name": "CX314A - ConnectX-3 Pro QSFP",
        "part_number": "MCX314A-BCCT"
      }
    ],
    "services": [
      {
        "name": "zadara-sn",
        "version": "00.00-1400",
        "status": "Online",
        "status_badge_class": "label-success"
      },
      {
        "name": "drbd",
        "version": "2:8.3.11",
        "status": "Online",
        "status_badge_class": "label-success"
      }
    ],
    "resources": {
      "used_vcpus": 7,
      "total_vcpus": 24,
      "used_memory": 12340,
      "total_memory": 30179
    },
    "drives": [
      {
        "drive_type": "SAS 136GB 15000RPM",
        "used": 1,
        "total": 5
      },
      {
        "drive_type": "SATA 465GB 7200RPM",
        "used": 3,
        "total": 4
      },
      {
        "drive_type": "SSD CACHE DRIVES",
        "used": 2,
        "total": 2
      }
    ],
    "fault_domain": "FD_2",
    "master": true,
    "slave": false,
    "license": {
      "key": "...",
      "active": true,
      "temporary": false,
      "disabled": false,
      "licensed_drives": null,
      "total_drives": 11,
      "expires": null,
      "first_activated": "2014-06-10",
      "last_activated": "2014-06-25",
      "next_activation": "2014-06-26",
      "message": null,
      "status": "Active",
      "badge_class": "success"
    }
  }
}

Returns the details for a Storage Node's drives.

GET /api/clouds/{cloud_name}/nodes/{id}/drives(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{id}/drives.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
    <drives>
        <drive>
          <internal-name>volume-00003e4c</internal-name>
          <node>ubuntu-sata-51</node>
          <size type="integer">136</size>
          <type>SAS 136GB 15000RPM</type>
          <address>0:0:7 (Ad:En:Sl)</address>
          <product-id>SEAGATE ST3300657SS-H</product-id>
        </drive>
    </drives>
    <count type="integer">1</count>
</response>
{
  "status": "success",
  "drives": {
    "drive": {
      "internal_name": "volume-00003e4c",
      "node": "ubuntu-sata-51",
      "size": 136,
      "type": "SAS 136GB 15000RPM",
      "address": "0:0:7 (Ad:En:Sl)",
      "product_id": "SEAGATE ST3300657SS-H"
    }
  },
  "count": 1
}

Returns the details for a Storage Node's cache partitions.

GET /api/clouds/{cloud_name}/nodes/{id}/cache_partitions(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{id}/cache_partitions.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <cache-partitions>
    <cache-partition>
      <id>volume-0000000d</id>
      <drive>
        <device-name>/dev/sdl</device-name>
        <url>/clouds/openstack/vpsas/2</url>
        <name>Udi1407</name></drive>
        <size type="integer">20</size>
    </cache-partition>
  </cache-partitions>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "cache_partitions": {
    "cache_partition": {
      "id": "volume-0000000d",
      "drive": {
        "device_name": "/dev/sdl",
        "url": "/clouds/openstack/vpsas/2",
        "name": "Udi1407"
      },
      "size": 20
    }
  },
  "count": 1
}

Returns the details of the Virtual Controllers which are running inside a Storage Node's.

GET /api/clouds/{cloud_name}/nodes/{id}/virtual_controllers(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{id}/virtual_controllers.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
    <virtual-controllers>
      <virtual-controller>
        <name>vc-0:a_final</name>
        <status>Active</status>
        <protection>Baby (V2)</protection>
      </virtual-controller>
    </virtual-controllers>
    <count type="integer">1</count>
</response>
{
  "status": "success",
  "virtual_controllers": {
    "virtual_controller": {
      "name": "vc-0:a_final",
      "status": "Active",
      "protection": "Baby (V2)"
    }
  },
  "count": 1
}

Evacuate a Storage Node from all Virtual Controllers. The Virtual Controllers will be deleted and re-spawned on a different Storage Node.

POST /api/clouds/{cloud_name}/nodes/{id}/evacuate_vcs(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"force":true}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{id}/evacuate_vcs.json'
force Boolean In case the Storage Node that hosts the VC is offline and marked for decommission, use the force flag to allow the VC relocation.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Evacuate a Storage Node from all allocated drives. Replacement drives for the affected VPSAs will be allocated from other Storage Nodes

POST /api/clouds/{cloud_name}/nodes/{id}/evacuate_drives(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{id}/evacuate_drives.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Reboot a Storage Node.

POST /api/clouds/{cloud_name}/nodes/{id}/reboot(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"force":true}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{id}/reboot.json'
force Boolean
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Shutdown a Storage Node.

POST /api/clouds/{cloud_name}/nodes/{id}/shutdown(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"force":true}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{id}/shutdown.json'
force Boolean
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
  </response>
{
  "status": "success"
}

Create a Storage Node Zsnap.

POST /api/clouds/{cloud_name}/nodes/{id}/zsnap(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"prefix":"zsnap1"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{id}/zsnap.json'
prefix String Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Activate a license key for a Storage Node.

POST /api/clouds/{cloud_name}/nodes/{id}/license(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"key":"552AA-7AAAR-CVVVW-G3378-V776N"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{id}/license.json'
key String Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Refresh a Storage Node's license status.

POST /api/clouds/{cloud_name}/nodes/{id}/refresh_license(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{id}/refresh_license.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Import new drives for a Storage Node.

POST /api/clouds/{cloud_name}/nodes/{id}/import_drives(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{id}/import_drives.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Check the configuration for a Storage Node.

GET /api/clouds/{cloud_name}/nodes/{id}/check_configuration(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{id}/check_configuration.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
    <configuration>(configuration data...)</configuration>
</response>
{
  "status": "success",
  "configuration": "(configuration data...)"
}

Install a Storage Node.

POST /api/clouds/{cloud_name}/nodes/{node_name}/install(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"package":"14.07.100"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{node_name}/install.json'
package String Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Upgrade a Storage Node.

POST /api/clouds/{cloud_name}/nodes/{node_name}/upgrade(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"package":"14.07.100"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{node_name}/upgrade.json'
package String Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Upgrade a Storage Node MegaRaid/Drives firmware.

POST /api/clouds/{cloud_name}/nodes/{node_name}/upgrade_fw(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"components":["drive"]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{node_name}/upgrade_fw.json'
components Array - drive | fw Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Returns schedulable services status.

GET /api/clouds/{cloud_name}/nodes/{node_name}/get_scheduling_status(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{node_name}/get_scheduling_status.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <services type="array">
    <service>
      <service-name>nova-volume</service-name>
      <created-at>2018-12-26 13:05:11</created-at>
      <sched>disabled</sched>
      <updated-at>2019-01-08 16:05:34</updated-at>
      <updated-sec-ago type="integer">5</updated-sec-ago>
    </service>
    <service>
      <service-name>nova-scheduler</service-name>
      <created-at>2018-12-26 13:05:11</created-at>
      <sched>enabled</sched>
      <updated-at>2018-12-31 11:26:59</updated-at>
      <updated-sec-ago type="integer">16720</updated-sec-ago>
    </service>
    <service>
      <service-name>nova-network</service-name>
      <created-at>2018-12-26 13:05:14</created-at>
      <sched>enabled</sched>
      <updated-at>2018-12-31 11:26:59</updated-at>
      <updated-sec-ago type="integer">16720</updated-sec-ago>
    </service>
    <service>
      <service-name>nova-vsa</service-name>
      <created-at>2018-12-26 13:05:14</created-at>
      <sched>enabled</sched>
      <updated-at>2018-12-31 11:26:59</updated-at>
      <updated-sec-ago type="integer">16720</updated-sec-ago>
    </service>
    <service>
      <service-name>nova-compute</service-name>
      <created-at>2018-12-26 13:05:16</created-at>
      <sched>enabled</sched>
      <updated-at>2019-01-08 16:05:37</updated-at>
      <updated-sec-ago type="integer">2</updated-sec-ago>
    </service>
  </services>
  <count type="integer">5</count>
</response>
{
  "status": "success",
  "services": [
    {
      "service_name": "nova-volume",
      "created_at": "2018-12-26 13:05:11",
      "sched": "disabled",
      "updated_at": "2019-01-08 16:05:34",
      "updated_sec_ago": 5
    },
    {
      "service_name": "nova-scheduler",
      "created_at": "2018-12-26 13:05:11",
      "sched": "enabled",
      "updated_at": "2018-12-31 11:26:59",
      "updated_sec_ago": 16720
    },
    {
      "service_name": "nova-network",
      "created_at": "2018-12-26 13:05:14",
      "sched": "enabled",
      "updated_at": "2018-12-31 11:26:59",
      "updated_sec_ago": 16720
    },
    {
      "service_name": "nova-vsa",
      "created_at": "2018-12-26 13:05:14",
      "sched": "enabled",
      "updated_at": "2018-12-31 11:26:59",
      "updated_sec_ago": 16720
    },
    {
      "service_name": "nova-compute",
      "created_at": "2018-12-26 13:05:16",
      "sched": "enabled",
      "updated_at": "2019-01-08 16:05:37",
      "updated_sec_ago": 2
    }
  ],
  "count": 5
}

Enable/Disable node's drive/vc schedualing.

POST /api/clouds/{cloud_name}/nodes/{node_name}/set_scheduling_status(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"service":"drive","action":"enable"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/nodes/{node_name}/set_scheduling_status.json'
service String - drive | vc Required.
action String - enable | disable Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Returns a list of all VPSA Storage Arrays.

GET /api/clouds/{cloud_name}/vpsas(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <vpsas type="array">
      <vpsa>
        <id type="integer">1</id>
        <name>VPSA1</name>
        <internal-name>vsa-00000001</internal-name>
        <user>user_admin_wuDjL</user>
        <status>created</status>
        <engine-type>1600</engine-type>
        <app-engine-type>00</app-engine-type>
        <drives type="integer">10</drives>
        <cache type="integer">0</cache>
        <image>vc-16.05-sp2-356.img</image>
        <management-address>10.2.9.24</management-address>
        <network-configuration>
          <vc0>
            <fe-ip>10.2.9.24</fe-ip>
            <be-ip>10.3.9.24</be-ip>
            <hb-ip>10.0.9.24</hb-ip>
          </vc0>
          <vc1>
            <fe-ip>10.2.9.25</fe-ip>
            <be-ip>10.3.9.25</be-ip>
            <hb-ip>10.0.9.25</hb-ip>
          </vc1>
        </network-configuration>
        <active-vc-index type="integer">0</active-vc-index>
      </vpsa>
      <vpsa>
        <id type="integer">2</id>
        <name>VPSA2</name>
        <internal-name>vsa-00000002</internal-name>
        <user>user_admin_wuDjL</user>
        <status>created</status>
        <engine-type>200</engine-type>
        <app-engine-type>00</app-engine-type>
        <drives type="integer">8</drives>
        <cache type="integer">0</cache>
        <image>vc-16.05-sp2-381.img</image>
        <management-address>10.2.9.26</management-address>
        <network-configuration>
          <vc0>
            <fe-ip>10.2.9.26</fe-ip>
            <be-ip>10.3.9.26</be-ip>
            <hb-ip>10.0.9.26</hb-ip>
          </vc0>
          <vc1>
            <fe-ip>10.2.9.27</fe-ip>
            <be-ip>10.3.9.27</be-ip>
            <hb-ip>10.0.9.27</hb-ip>
          </vc1>
        </network-configuration>
        <active-vc-index type="integer">1</active-vc-index>
      </vpsa>
    </vpsas>
    <count type="integer">2</count>
  </response>
{
  "status": "success",
  "vpsas": [
    {
      "id": 1,
      "name": "VPSA1",
      "internal_name": "vsa-00000001",
      "user": "user_admin_wuDjL",
      "status": "created",
      "engine_type": "1600",
      "app_engine_type": "00",
      "drives": 10,
      "cache": 0,
      "image": "vc-16.05-sp2-356.img",
      "management_address": "10.2.9.24",
      "network_configuration": {
        "vc0": {
          "fe_ip": "10.2.9.24",
          "be_ip": "10.3.9.24",
          "hb_ip": "10.0.9.24"
        },
        "vc1": {
          "fe_ip": "10.2.9.25",
          "be_ip": "10.3.9.25",
          "hb_ip": "10.0.9.25"
        }
      },
      "active_vc_index": 0
    },
    {
      "id": 2,
      "name": "VPSA2",
      "internal_name": "vsa-00000002",
      "user": "user_admin_wuDjL",
      "status": "created",
      "engine_type": "200",
      "app_engine_type": "00",
      "drives": 8,
      "cache": 0,
      "image": "vc-16.05-sp2-381.img",
      "management_address": "10.2.9.26",
      "network_configuration": {
        "vc0": {
          "fe_ip": "10.2.9.26",
          "be_ip": "10.3.9.26",
          "hb_ip": "10.0.9.26"
        },
        "vc1": {
          "fe_ip": "10.2.9.27",
          "be_ip": "10.3.9.27",
          "hb_ip": "10.0.9.27"
        }
      },
      "active_vc_index": 1
    }
  ],
  "count": 2
}

Returns the details for a single VPSA.

GET /api/clouds/{cloud_name}/vpsas/{id or internal-name}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <vpsa>
      <id type="integer">1</id>
      <name>VPSA1</name>
      <internal-name>vsa-00000001</internal-name>
      <user>user_admin_wuDjL</user>
      <status>created</status>
      <engine-type>200</engine-type>
      <app-engine-type>00</app-engine-type>
      <drives type="integer">8</drives>
      <cache type="integer">0</cache>
      <image>vc-16.05-sp2-381.img</image>
      <management-address>10.2.9.26</management-address>
      <network-configuration>
        <vc0>
          <fe-ip>10.2.9.26</fe-ip>
          <be-ip>10.3.9.26</be-ip>
          <hb-ip>10.0.9.26</hb-ip>
        </vc0>
        <vc1>
          <fe-ip>10.2.9.27</fe-ip>
          <be-ip>10.3.9.27</be-ip>
          <hb-ip>10.0.9.27</hb-ip>
        </vc1>
      </network-configuration>
      <active-vc-index type="integer">1</active-vc-index>
    </vpsa>
  </response>
{
  "status": "success",
  "vpsa": {
    "id": 1,
    "name": "VPSA1",
    "internal_name": "vsa-00000001",
    "user": "user_admin_wuDjL",
    "status": "created",
    "engine_type": "200",
    "app_engine_type": "00",
    "drives": 8,
    "cache": 0,
    "image": "vc-16.05-sp2-381.img",
    "management_address": "10.2.9.26",
    "network_configuration": {
      "vc0": {
        "fe_ip": "10.2.9.26",
        "be_ip": "10.3.9.26",
        "hb_ip": "10.0.9.26"
      },
      "vc1": {
        "fe_ip": "10.2.9.27",
        "be_ip": "10.3.9.27",
        "hb_ip": "10.0.9.27"
      }
    },
    "active_vc_index": 1
  }
}

Returns the list of a VPSA's drives.

GET /api/clouds/{cloud_name}/vpsas/{id or internal-name}/drives(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/drives.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <drives type="array">
    <drive>
      <internal-name>volume-00000012</internal-name>
      <node>ubuntu-sata-51</node>
      <size type="integer">136</size>
      <drive-id type="integer">154</drive-id>
      <setup type="boolean">true</setup>
      <meta type="boolean">false</meta>
      <type>SAS 136GB 15000RPM</type>
      <address>0:0:6 (Ad:En:Sl)</address>
      <product-id>SEAGATE ST3300657SS-H</product-id>
    </drive>
    <drive>
      <internal-name>volume-00000015</internal-name>
      <node>ubuntu-61</node>
      <size type="integer">136</size>
      <drive-id type="integer">154</drive-id>
      <setup type="boolean">true</setup>
      <meta type="boolean">false</meta>
      <type>SAS 136GB 15000RPM</type>
      <address>0:32:11 (Ad:En:Sl)</address>
      <product-id>SEAGATE ST3300657SS-H</product-id>
    </drive>
  </drives>
  <count type="integer">2</count>
</response>
{
  "status": "success",
  "drives": [
    {
      "internal_name": "volume-00000012",
      "node": "ubuntu-sata-51",
      "size": 136,
      "drive_id": 154,
      "setup": true,
      "meta": false,
      "type": "SAS 136GB 15000RPM",
      "address": "0:0:6 (Ad:En:Sl)",
      "product_id": "SEAGATE ST3300657SS-H"
    },
    {
      "internal_name": "volume-00000015",
      "node": "ubuntu-61",
      "size": 136,
      "drive_id": 154,
      "setup": true,
      "meta": false,
      "type": "SAS 136GB 15000RPM",
      "address": "0:32:11 (Ad:En:Sl)",
      "product_id": "SEAGATE ST3300657SS-H"
    }
  ],
  "count": 2
}

Returns the list of a VPSA's Virtual Controllers.

GET /api/clouds/{cloud_name}/vpsas/{id or internal-name}/virtual_controllers(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/virtual_controllers.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <virtual-controllers>
    <virtual-controller>
      <name>vc-0:test</name>
      <state>Active</state>
      <type>200</type>
      <node>node1</node>
      <be-ip>150.50.3.103</be-ip>
      <be-vlan-id type="integer">3</be-vlan-id>
      <fe-ip>150.50.2.103</fe-ip>
      <fe-vlan-id nil="true"/>
      <hb-ip>150.50.0.101</hb-ip>
      <hb-vlan-id nil="true"/>
    </virtual-controller>
  </virtual-controllers>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "virtual_controllers": {
    "virtual_controller": {
      "name": "vc-0:test",
      "state": "Active",
      "type": "200",
      "node": "node1",
      "be_ip": "150.50.3.103",
      "be_vlan_id": 3,
      "fe_ip": "150.50.2.103",
      "fe_vlan_id": null,
      "hb_ip": "150.50.0.101",
      "hb_vlan_id": null
    }
  },
  "count": 1
}

Returns the list of a VPSA's RAID Groups.

GET /api/clouds/{cloud_name}/vpsas/{id or internal-name}/raid_groups(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/raid_groups.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <raid-groups>
    <raid-group>
      <name>vc-0:test</name>
      <status>Active</status>
      <protection>Baby (V2)</protection>
    </raid-group>
  </raid-groups>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "raid_groups": {
    "raid_group": {
      "name": "vc-0:test",
      "status": "Active",
      "protection": "Baby (V2)"
    }
  },
  "count": 1
}

Returns the list of a VPSA's Pools.

GET /api/clouds/{cloud_name}/vpsas/{id or internal-name}/pools(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/pools.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <pools>
    <pool>
      <name>vc-0:gs_lic_final</name>
      <status>Active</status>
      <type>300</type>
      <cache></cache>
      <capacity>300</capacity>
    </pool>
  </pools>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "pools": {
    "pool": {
      "name": "vc-0:gs_lic_final",
      "status": "Active",
      "type": "300",
      "cache": null,
      "capacity": "300"
    }
  },
  "count": 1
}

Returns the list of a available Virtual Networks to be added to VPSA.

GET /api/clouds/{cloud_name}/vpsas/{id or internal-name}/compatible_virtual_networks(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/compatible_virtual_networks.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <compatible-virtual-networks type="array">
    <virtual-network>
      <name>vni2</name>
      <vlan type="integer">55</vlan>
      <custom-network-id type="integer">5</custom-network-id>
      <netmask>255.255.255.0</netmask>
      <cidr>192.165.0.0/24</cidr>
      <gateway>192.165.0.1</gateway>
    </virtual-network>
  </compatible-virtual-networks>
</response>
{
  "status": "success",
  "compatible_virtual_networks": [
    {
      "name": "vni2",
      "vlan": 55,
      "custom_network_id": 5,
      "netmask": "255.255.255.0",
      "cidr": "192.165.0.0/24",
      "gateway": "192.165.0.1"
    }
  ]
}

Returns the list of a Virtual Networks that belongs to a VPSA.

GET /api/clouds/{cloud_name}/vpsas/{id or internal-name}/virtual_network_interfaces(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/virtual_network_interfaces.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <virtual-networks type="array">
    <virtual-network>
      <name>vni2</name>
      <vlan type="integer">55</vlan>
      <custom-network-id type="integer">5</custom-network-id>
      <netmask>255.255.255.0</netmask>
      <vni-id type="integer">0</vni-id>
      <cidr>192.165.0.0/24</cidr>
      <gateway>192.165.0.1</gateway>
    </virtual-network>
  </virtual-networks>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "virtual_networks": [
    {
      "name": "vni2",
      "vlan": 55,
      "custom_network_id": 5,
      "netmask": "255.255.255.0",
      "vni_id": 0,
      "cidr": "192.165.0.0/24",
      "gateway": "192.165.0.1"
    }
  ],
  "count": 1
}

Returns the VPSA capacity trend.

GET /api/clouds/{cloud_name}/vpsas/{id or internal-name}/capacity_trend(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/capacity_trend.json?pool_id=1&start_date=2017-01-01&end_date=2017-01-11'
pool_id String Required.
start_date String
end_date String
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <capacity-trend>
    <used type="array">
      <used type="float">257.879</used>
      <used type="float">263.036</used>
      <used type="float">263.036</used>
      <used type="float">257.776</used>
      <used type="float">257.775</used>
    </used>
    <dates>
      <start-date>2017-01-05</start-date>
      <end-date>2017-01-09</end-date>
    </dates>
    <categories type="array">
      <category type="dateTime">2017-01-05T00:00:00+02:00</category>
      <category type="dateTime">2017-01-06T00:00:00+02:00</category>
      <category type="dateTime">2017-01-07T00:00:00+02:00</category>
      <category type="dateTime">2017-01-08T00:00:00+02:00</category>
      <category type="dateTime">2017-01-09T00:00:00+02:00</category>
    </categories>
    <total type="array">
      <total type="float">1479.108</total>
      <total type="float">1479.108</total>
      <total type="float">1479.108</total>
      <total type="float">1479.108</total>
      <total type="float">1479.108</total>
    </total>
    <metadata type="array">
      <metadatum type="float">90.542</metadatum>
      <metadatum type="float">90.542</metadatum>
      <metadatum type="float">90.542</metadatum>
      <metadatum type="float">90.542</metadatum>
      <metadatum type="float">91.448</metadatum>
    </metadata>
  </capacity-trend>
</response>
{
  "status": "success",
  "capacity_trend": {
    "used": [
      257.879,
      263.036,
      263.036,
      257.776,
      257.775
    ],
    "dates": {
      "start_date": "2017-01-05",
      "end_date": "2017-01-09"
    },
    "categories": [
      "2017-01-04 22:00:00 UTC",
      "2017-01-05 22:00:00 UTC",
      "2017-01-06 22:00:00 UTC",
      "2017-01-07 22:00:00 UTC",
      "2017-01-08 22:00:00 UTC"
    ],
    "total": [
      1479.108,
      1479.108,
      1479.108,
      1479.108,
      1479.108
    ],
    "metadata": [
      90.542,
      90.542,
      90.542,
      90.542,
      91.448
    ]
  }
}

Returns the list of a VPSA's Comments.

GET /api/clouds/{cloud_name}/vpsas/{id or internal-name}/comments(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/comments.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <comments>
    <comment>
      <content>**test comment**</content>
      <severity_id>0</severity_id>
      <severity_name>critical</severity_name>
      <created_by>1</created_by>
      <created_at>2017-01-04T12:23:02+02:00</created_at>
    </comment>
  </comments>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "comments": {
    "comment": {
      "content": "**test comment**",
      "severity_id": "0",
      "severity_name": "critical",
      "created_by": "1",
      "created_at": "2017-01-04T12:23:02+02:00"
    }
  },
  "count": 1
}

Updates cloud vpsa's status.

GET /api/clouds/{cloud_name}/vpsas/update_vpsas_reporting(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/update_vpsas_reporting.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>request received successfully, will take approximately 15 seconds</message>
</response>
{
  "status": "success",
  "message": "request received successfully, will take approximately 15 seconds"
}

Updates single vpsa status.

GET /api/clouds/{cloud_name}/vpsas/{vpsa_name}/update_vpsa_reporting(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{vpsa_name}/update_vpsa_reporting.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Failover a VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/failover(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"when":"2017-11-22 14:33"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/failover.json'
when String - <date %Y-%m-%d %H:%M format (Command center timezone) >
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Cancel a Failover.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/cancel_sched_failover(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/cancel_sched_failover.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Create a VPSA Zsnap.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/zsnap(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"prefix":"myprefix","when":"2017-11-22 14:33"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/zsnap.json'
prefix String Required.
when String - <date %Y-%m-%d %H:%M format (Command center timezone) >
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Cancel a Scheduled Zsnap.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/cancel_sched_zsnap(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/cancel_sched_zsnap.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Vpsa upgrade.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/upgrade(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"image":"14.07.100","when":"2017-11-22 14:33"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/upgrade.json'
image String Required.
when String - now | manual | <date %Y-%m-%d %H:%M format (Command center timezone) >
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Cancel an Upgrade. Not allowed while changing engine type.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/cancel_sched_upgrade(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/cancel_sched_upgrade.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Resume a pending VPSA upgrade/change model

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/resume_waiting(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/resume_waiting.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Reschedule a pending VPSA upgrade/change model

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/reschedule_upgrade(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"when":"2017-11-22 14:33"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/reschedule_upgrade.json'
when String - manual | <date %Y-%m-%d %H:%M format (Command center timezone) >
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Change VPSA engine.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/change_engine_type(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"engine_type":"vsa.V2.medium.vf","app_engine_type":"tiny","when":"2017-11-22 14:33","image":"17.11-sp1-140.img"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/change_engine_type.json'
engine_type String
app_engine_type String
when String - now | manual | <date %Y-%m-%d %H:%M format (Command center timezone) >
image String
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Submitted the following changes: IO Engine Type changed to Baby (V2).</message>
</response>
{
  "status": "success",
  "message": "Submitted the following changes: IO Engine Type changed to Baby (V2)."
}

Assign public ip to VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/public_ip/assign(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"ip":"1.2.3.4"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/public_ip/assign.json'
ip String Specific IP to assign
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Public IP 1.2.3.4 submitted for assignment, please allow a few minutes for this to take effect.</message>
</response>
{
  "status": "success",
  "message": "Public IP 1.2.3.4 submitted for assignment, please allow a few minutes for this to take effect."
}

Unassign public ip from VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/public_ip/unassign(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/public_ip/unassign.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Public IP submitted for unassignment from VPSA, please allow a few minutes for this to take effect.</message>
</response>
{
  "status": "success",
  "message": "Public IP submitted for unassignment from VPSA, please allow a few minutes for this to take effect."
}

Hibernate VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/hibernate(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/hibernate.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>VPSA going into hibernating state, please allow a few minutes for this to take effect.</message>
</response>
{
  "status": "success",
  "message": "VPSA going into hibernating state, please allow a few minutes for this to take effect."
}

Restore VPSA from hibernation/recycle-bin.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/restore(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/restore.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Restoring VPSA. Please allow a few minutes for this to take effect.</message>
</response>
{
  "status": "success",
  "message": "Restoring VPSA. Please allow a few minutes for this to take effect."
}

Purge VPSA from recycle-bin.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/purge(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/purge.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>VPSA purging, please allow a few minutes for this to take effect.</message>
</response>
{
  "status": "success",
  "message": "VPSA purging, please allow a few minutes for this to take effect."
}

Allocate networks for VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/allocate_networks(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/allocate_networks.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Submitted request to allocate networks.</message>
</response>
{
  "status": "success",
  "message": "Submitted request to allocate networks."
}

Release networks from VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/release_networks(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/release_networks.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Submitted request to release networks.</message>
</response>
{
  "status": "success",
  "message": "Submitted request to release networks."
}

Change VPSA cache.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/change_cache(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"cache":"80"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/change_cache.json'
cache String Required. New cache size
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Cache change submitted.  Please allow a few minutes for this to take effect.</message>
</response>
{
  "status": "success",
  "message": "Cache change submitted.  Please allow a few minutes for this to take effect."
}

Add drives to VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/drives(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"drive_type":"SATA_2793GB_5940RPM","quantity":2,"skip_validation":true}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/drives.json'
drive_type String Required. Drive type internal name
quantity Integer Required. Number of drives to add
skip_validation Boolean Required. Skips maximum drive validation. Use for admin only. Please notice that exceeding the number of drives allowed will waive the support for the VPSA
Sample XML Response Sample JSON Response
<response>
    <message>Request sent successfully. Check central log for details</message>
</response>
{
  "message": "Request sent successfully. Check central log for details"
}

Add Virtual Network to VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/add_virtual_network_interface(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"custom_network_id":1}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/add_virtual_network_interface.json'
custom_network_id Integer Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Remove Virtual Network from VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/remove_virtual_network_interface(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"vni_id":1}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/remove_virtual_network_interface.json'
vni_id Integer Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Move virtual controller to another storage node

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/move_vc(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"sn_names":["cloud1-sn1","cloud2-sn2"],"vc_index":1,"force":true}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/move_vc.json'
sn_names Array Required. destination storage node(s) for the virtual controller. When selecting multiple destination storage nodes, the VC will be moved to the first storage node with sufficient resources, according to the selected order
vc_index Integer Required. Virtual controller index
force Boolean In case the Storage Node that hosts the VC is offline and marked for decommission, use the force flag to allow the VC relocation.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Enable pool migratrion for All Flash Array VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/enable_pool_migration(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/enable_pool_migration.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Submitted request to enable pool migration.</message>
</response>
{
  "status": "success",
  "message": "Submitted request to enable pool migration."
}

Disable pool migratrion for All Flash Array VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/disable_pool_migration(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/disable_pool_migration.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Submitted request to allocate networks.</message>
</response>
{
  "status": "success",
  "message": "Submitted request to allocate networks."
}

Enable file lifecycle management for the given VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/enable_flc(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/enable_flc.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <message>Enable FLC submitted for VPSA {VPSA name}. Please allow a few minutes for this change to take effect.</message>
</response>
{
  "status": "success",
  "message": "Enable FLC submitted for VPSA {VPSA name}. Please allow a few minutes for this change to take effect."
}

Disable file lifecycle management for the given VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/disable_flc(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/disable_flc.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <message>Disable FLC submitted for VPSA {VPSA name}. Please allow a few minutes for this change to take effect.</message>
</response>
{
  "status": "success",
  "message": "Disable FLC submitted for VPSA {VPSA name}. Please allow a few minutes for this change to take effect."
}

Enable data reduction bundle for Flash VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/enable_data_reduction_bundle(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/enable_data_reduction_bundle.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Submitted request to enable data reduction bundle.</message>
</response>
{
  "status": "success",
  "message": "Submitted request to enable data reduction bundle."
}

Disables data reduction bundle for Flash VPSA.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/disable_data_reduction_bundle(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/disable_data_reduction_bundle.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Submitted request to disable data reduction bundle.</message>
</response>
{
  "status": "success",
  "message": "Submitted request to disable data reduction bundle."
}

Gets all vpsa upload endpoints including default endpoints

GET /api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints.json?methods_requested=s3_aws,s3_zios,ftp'
methods_requested Array Uploaded methods requested
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <vpsa-upload-endpoints type="array">
    <vpsa-upload-endpoint>
      <endpoint-name>NAME</endpoint-name>
      <endpoint-method>METHOD</endpoint-method>
      <access-key>ACCESS KEY</access-key>
      <region>REGION</region>
    </vpsa-upload-endpoint>
  </vpsa-upload-endpoints>
</response>
{
  "status": "success",
  "vpsa_upload_endpoints": [
    {
      "endpoint_name": "NAME",
      "endpoint_method": "METHOD",
      "access_key": "ACCESS KEY",
      "region": "REGION"
    }
  ]
}

Creates a new vpsa upload endpoint

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"endpoint_name":"Endpoint1","endpoint_method":"s3_aws","config":"{"access_key": "ABCDEFGHIJKLMNOP", "secret_key": "xxxxxxxxxxxxxxxxxxxxxx", "region": "us-east-1"}"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints.json'
endpoint_name String Required. Endpoint name
endpoint_method String - s3_aws | s3_zios | ftp Required. Endpoint upload method
config Json Required. Endpoint configuration JSON, depending on the chosen upload method. For 's3_aws' and 's3_zios' methods, config should include 'access_key', 'secret_key' and 'region'. For 's3_zios' method, config should also include 'endpoint'. For 'ftp' method, config should include 'server', 'user', 'password', 'use_proxy' (boolean '0' or '1').
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully created vpsa endpoint ENDPOINT_NAME</message>
</response>
{
  "status": "success",
  "message": "Successfully created vpsa endpoint ENDPOINT_NAME"
}

Updates an existing vpsa upload endpoint

PUT /api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints(.xml/json)
Example: curl -X PUT -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"endpoint_name":"Endpoint1","config":"{"access_key": "ABCDEFGHIJKLMNOP", "secret_key": "xxxxxxxxxxxxxxxxxxxxxx", "region": "us-east-1"}"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints.json'
endpoint_name String Required. Endpoint name
config Json Required. Endpoint configuration JSON, depending on the endpoint's upload method. For 's3_aws' and 's3_zios' methods, config should include 'access_key', 'secret_key' and 'region'. For 's3_zios' method, config should also include 'endpoint'. For 'ftp' method, config should include 'server', 'user', 'password', 'use_proxy' (boolean '0' or '1').
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully updated vpsa endpoint ENDPOINT_NAME</message>
</response>
{
  "status": "success",
  "message": "Successfully updated vpsa endpoint ENDPOINT_NAME"
}

Deletes an existing vpsa upload endpoint

DELETE /api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"endpoint_name":"Endpoint1"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints.json'
endpoint_name String Required. Endpoint name
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully deleted vpsa endpoint ENDPOINT_NAME</message>
</response>
{
  "status": "success",
  "message": "Successfully deleted vpsa endpoint ENDPOINT_NAME"
}

Gets vpsa endpoint configs by upload types

GET /api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints_config(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints_config.json?types=mag,config'
types Array Required. Upload types
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <vpsa-endpoint-configs type="array">
    <vpsa-endpoint-config>
      <type>mag</type>
      <endpoint-name>endpoint1</endpoint-name>
      <endpoint-bucket>bucket1</endpoint-bucket>
    </vpsa-endpoint-config>
  </vpsa-endpoint-configs>
</response>
{
  "status": "success",
  "vpsa_endpoint_configs": [
    {
      "type": "mag",
      "endpoint_name": "endpoint1",
      "endpoint_bucket": "bucket1"
    }
  ]
}

Creates vpsa endpoints configurations for upload type

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints_config(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"type":"mag","endpoints_config":[{"endpoint_name":"default_mag_ep"},{"endpoint_name":"some_s3_endpoint""endpoint_bucket":"b"},{"endpoint_name":"some_ftp_endpoint"}]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints_config.json'
type String - mag | config Required. Upload type
endpoints_config Array Required. Endpoints configurations to set for the upload type. Each configuration must specify endpoint name. S3 endpoints configurations must also specify bucket name. Maximum to 3 endpoints. Cloud endpoints can also be specified (see 'Get cloud settings' api).
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully created vpsa endpoints configurations for upload type 'TYPE'</message>
</response>
{
  "status": "success",
  "message": "Successfully created vpsa endpoints configurations for upload type 'TYPE'"
}

Adds more vpsa endpoints configurations for upload type

PUT /api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints_config(.xml/json)
Example: curl -X PUT -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"type":"mag","endpoints_config":[{"endpoint_name":"some_ftp_endpoint1"},{"endpoint_name":"some_s3_endpoint""endpoint_bucket":"b"},{"endpoint_name":"some_ftp_endpoint2"}]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints_config.json'
type String - mag | config Required. Upload type
endpoints_config Array Required. Endpoints configurations to be added to the existing endpoints configurations for the upload type. Each configuration must specify endpoint name. S3 endpoints configurations must also specify bucket name. Maximum 2 endpoints to add. Cloud endpoints can also be specified (see 'Get cloud settings' api).
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully added vpsa endpoints configurations for upload type 'TYPE'</message>
</response>
{
  "status": "success",
  "message": "Successfully added vpsa endpoints configurations for upload type 'TYPE'"
}

Deletes an existing vpsa endpoint configuration for upload type

DELETE /api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints_config(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"type":"mag","endpoint_name":"Endpoint1"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/endpoints_config.json'
type String - mag | config Required. Upload type
endpoint_name String Required. Endpoint name
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully deleted vpsa endpoint configuration for type 'TYPE'</message>
</response>
{
  "status": "success",
  "message": "Successfully deleted vpsa endpoint configuration for type 'TYPE'"
}

Returns a list of all VPSA Object Storage object stores.

GET /api/clouds/{cloud_name}/zioses(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <zioses type="array">
    <zios>
      <id type="integer">188</id>
      <name>zios</name>
      <internal-name>vsa-0000016d</internal-name>
      <user>john</user>
      <tenant-name>user_john_Gt1cj</tenant-name>
      <description>zios</description>
      <status>Normal</status>
      <engine-type>ZIOS</engine-type>
      <vcpus type="integer">3</vcpus>
      <ram type="integer">6144</ram>
      <https-termination type="boolean">true</https-termination>
      <image>zios-00.00-434.img</image>
      <drives type="integer">5</drives>
      <cache type="integer">30</cache>
      <virtual-controllers type="integer">3</virtual-controllers>
      <ip-address>150.50.2.130</ip-address>
      <public-ip nil="true"/>
      <management-url>vsa-0000016d-zadara-dev2.zadarazios.com</management-url>
      <storage-policies-count type="integer">1</storage-policies-count>
      <metadata-policies-count type="integer">1</metadata-policies-count>
      <accounts-count type="integer">1</accounts-count>
      <users-count type="integer">3</users-count>
      <containers-count type="integer">0</containers-count>
      <objects-count type="integer">0</objects-count>
      <network-configuration>
        <vc0>
          <fe-ip>150.50.2.113</fe-ip>
          <be-ip>150.50.3.113</be-ip>
          <hb-ip>150.50.0.113</hb-ip>
        </vc0>
        <vc1>
          <fe-ip>150.50.2.114</fe-ip>
          <be-ip>150.50.3.114</be-ip>
          <hb-ip>150.50.0.114</hb-ip>
        </vc1>
        <vc2>
          <fe-ip>150.50.2.118</fe-ip>
          <be-ip>150.50.3.118</be-ip>
          <hb-ip>150.50.0.118</hb-ip>
        </vc2>
      </network-configuration>
      <created-at type="datetime">2016-04-15T20:22:10Z</created-at>
      <updated-at type="datetime">2016-04-18T13:42:48Z</updated-at>
    </zios>
  </zioses>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "zioses": [
    {
      "id": 188,
      "name": "zios",
      "internal_name": "vsa-0000016d",
      "user": "john",
      "tenant_name": "user_john_Gt1cj",
      "description": "zios",
      "status": "Normal",
      "engine_type": "ZIOS",
      "vcpus": 3,
      "ram": 6144,
      "https_termination": true,
      "image": "zios-00.00-434.img",
      "drives": 5,
      "cache": 30,
      "virtual_controllers": 3,
      "ip_address": "150.50.2.130",
      "public_ip": null,
      "management_url": "vsa-0000016d-zadara-dev2.zadarazios.com",
      "storage_policies_count": 1,
      "metadata_policies_count": 1,
      "accounts_count": 1,
      "users_count": 3,
      "containers_count": 0,
      "objects_count": 0,
      "network_configuration": {
        "vc0": {
          "fe_ip": "150.50.2.113",
          "be_ip": "150.50.3.113",
          "hb_ip": "150.50.0.113"
        },
        "vc1": {
          "fe_ip": "150.50.2.114",
          "be_ip": "150.50.3.114",
          "hb_ip": "150.50.0.114"
        },
        "vc2": {
          "fe_ip": "150.50.2.118",
          "be_ip": "150.50.3.118",
          "hb_ip": "150.50.0.118"
        }
      },
      "created_at": "2016-04-15 20:22:10 UTC",
      "updated_at": "2016-04-18 13:42:48 UTC"
    }
  ],
  "count": 1
}

Returns the details for a single VPSA Object Storage.

GET /api/clouds/{cloud_name}/zioses/{id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <zios>
    <id type="integer">188</id>
    <name>eyalzios</name>
    <internal-name>vsa-0000016d</internal-name>
    <user>eyal</user>
    <tenant-name>user_eyal_Gt1cj</tenant-name>
    <description>eyalzios</description>
    <status>Normal</status>
    <engine-type>ZIOS</engine-type>
    <vcpus type="integer">3</vcpus>
    <ram type="integer">6144</ram>
    <https-termination type="boolean">true</https-termination>
    <image>zios-00.00-434.img</image>
    <drives type="integer">5</drives>
    <cache type="integer">30</cache>
    <virtual-controllers type="integer">3</virtual-controllers>
    <ip-address>150.50.2.130</ip-address>
    <public-ip nil="true"/>
    <management-url>vsa-0000016d-zadara-dev2.zadarazios.com</management-url>
    <storage-policies-count type="integer">1</storage-policies-count>
    <metadata-policies-count type="integer">1</metadata-policies-count>
    <accounts-count type="integer">1</accounts-count>
    <users-count type="integer">3</users-count>
    <containers-count type="integer">0</containers-count>
    <objects-count type="integer">0</objects-count>
    <network-configuration>
      <vc0>
        <fe-ip>150.50.2.113</fe-ip>
        <be-ip>150.50.3.113</be-ip>
        <hb-ip>150.50.0.113</hb-ip>
      </vc0>
      <vc1>
        <fe-ip>150.50.2.114</fe-ip>
        <be-ip>150.50.3.114</be-ip>
        <hb-ip>150.50.0.114</hb-ip>
      </vc1>
      <vc2>
        <fe-ip>150.50.2.118</fe-ip>
        <be-ip>150.50.3.118</be-ip>
        <hb-ip>150.50.0.118</hb-ip>
      </vc2>
    </network-configuration>
    <created-at type="datetime">2016-04-15T20:22:10Z</created-at>
    <updated-at type="datetime">2016-04-18T13:42:48Z</updated-at>
  </zios>
</response>
{
  "status": "success",
  "zios": {
    "id": 188,
    "name": "eyalzios",
    "internal_name": "vsa-0000016d",
    "user": "eyal",
    "tenant_name": "user_eyal_Gt1cj",
    "description": "eyalzios",
    "status": "Normal",
    "engine_type": "ZIOS",
    "vcpus": 3,
    "ram": 6144,
    "https_termination": true,
    "image": "zios-00.00-434.img",
    "drives": 5,
    "cache": 30,
    "virtual_controllers": 3,
    "ip_address": "150.50.2.130",
    "public_ip": null,
    "management_url": "vsa-0000016d-zadara-dev2.zadarazios.com",
    "storage_policies_count": 1,
    "metadata_policies_count": 1,
    "accounts_count": 1,
    "users_count": 3,
    "containers_count": 0,
    "objects_count": 0,
    "network_configuration": {
      "vc0": {
        "fe_ip": "150.50.2.113",
        "be_ip": "150.50.3.113",
        "hb_ip": "150.50.0.113"
      },
      "vc1": {
        "fe_ip": "150.50.2.114",
        "be_ip": "150.50.3.114",
        "hb_ip": "150.50.0.114"
      },
      "vc2": {
        "fe_ip": "150.50.2.118",
        "be_ip": "150.50.3.118",
        "hb_ip": "150.50.0.118"
      }
    },
    "created_at": "2016-04-15 20:22:10 UTC",
    "updated_at": "2016-04-18 13:42:48 UTC"
  }
}

Returns the list of a VPSA Object Storage drives.

GET /api/clouds/{cloud_name}/zioses/{id or internal-name}/drives(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/drives.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <drives type="array">
    <drive>
      <internal-name>volume-000009c9</internal-name>
      <node>dev2-sn4</node>
      <size type="integer">10</size>
      <type>SSD CACHE DRIVES</type>
      <address>0:0:5:0</address>
      <location>0:7:3 (Ad:En:Sl)</location>
      <product-id>ATA SDLF1CRM-016T-1HA</product-id>
      <partition-count-degraded nil="true"/>
      <partition-count-critical nil="true"/>
    </drive>
    <drive>
      <internal-name>volume-000009c5</internal-name>
      <node>dev2-sn4</node>
      <size type="integer">20</size>
      <type>SSD CACHE DRIVES</type>
      <address>0:0:5:0</address>
      <location>0:7:3 (Ad:En:Sl)</location>
      <product-id>ATA SDLF1CRM-016T-1HA</product-id>
      <partition-count-degraded type="integer">0</partition-count-degraded>
      <partition-count-critical type="integer">0</partition-count-critical>
    </drive>
    <drive>
      <internal-name>volume-000009d3</internal-name>
      <node>dev2-sn3</node>
      <size type="integer">20</size>
      <type>SSD CACHE DRIVES</type>
      <address>0:0:5:0</address>
      <location>0:7:3 (Ad:En:Sl)</location>
      <product-id>ATA SDLF1CRM-016T-1HA</product-id>
      <partition-count-degraded type="integer">0</partition-count-degraded>
      <partition-count-critical type="integer">0</partition-count-critical>
    </drive>
  </drives>
  <count type="integer">3</count>
</response>
{
  "status": "success",
  "drives": [
    {
      "internal_name": "volume-000009c9",
      "node": "dev2-sn4",
      "size": 10,
      "type": "SSD CACHE DRIVES",
      "address": "0:0:5:0",
      "location": "0:7:3 (Ad:En:Sl)",
      "product_id": "ATA SDLF1CRM-016T-1HA",
      "partition_count_degraded": null,
      "partition_count_critical": null
    },
    {
      "internal_name": "volume-000009c5",
      "node": "dev2-sn4",
      "size": 20,
      "type": "SSD CACHE DRIVES",
      "address": "0:0:5:0",
      "location": "0:7:3 (Ad:En:Sl)",
      "product_id": "ATA SDLF1CRM-016T-1HA",
      "partition_count_degraded": 0,
      "partition_count_critical": 0
    },
    {
      "internal_name": "volume-000009d3",
      "node": "dev2-sn3",
      "size": 20,
      "type": "SSD CACHE DRIVES",
      "address": "0:0:5:0",
      "location": "0:7:3 (Ad:En:Sl)",
      "product_id": "ATA SDLF1CRM-016T-1HA",
      "partition_count_degraded": 0,
      "partition_count_critical": 0
    }
  ],
  "count": 3
}

Returns the list of a VPSA Object Storage virtual controllers.

GET /api/clouds/{cloud_name}/zioses/{id or internal-name}/virtual_controllers(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/virtual_controllers.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <virtual-controllers type="array">
    <virtual-controller>
      <name>vc-0:zios</name>
      <state>Created</state>
      <node>dev2-sn4</node>
      <zios-storage-role>Proxy+Storage</zios-storage-role>
      <zios-management-role>Ring Master</zios-management-role>
      <vcpus type="array">
        <vcpu type="integer">4</vcpu>
      </vcpus>
      <fe-ip>150.50.2.116</fe-ip>
      <fe-vlan-id nil="true"/>
      <be-ip>150.50.3.116</be-ip>
      <be-vlan-id type="integer">3</be-vlan-id>
      <hb-ip>150.50.0.116</hb-ip>
      <hb-vlan-id nil="true"/>
    </virtual-controller>
    <virtual-controller>
      <name>vc-1:zios</name>
      <state>Created</state>
      <node>dev2-sn3</node>
      <zios-storage-role>Proxy+Storage</zios-storage-role>
      <zios-management-role>Ring Slave</zios-management-role>
      <vcpus type="array">
        <vcpu type="integer">22</vcpu>
      </vcpus>
      <fe-ip>150.50.2.117</fe-ip>
      <fe-vlan-id nil="true"/>
      <be-ip>150.50.3.117</be-ip>
      <be-vlan-id type="integer">3</be-vlan-id>
      <hb-ip>150.50.0.117</hb-ip>
      <hb-vlan-id nil="true"/>
    </virtual-controller>
  </virtual-controllers>
  <count type="integer">2</count>
</response>
{
  "status": "success",
  "virtual_controllers": [
    {
      "name": "vc-0:zios",
      "state": "Created",
      "node": "dev2-sn4",
      "zios_storage_role": "Proxy+Storage",
      "zios_management_role": "Ring Master",
      "vcpus": [
        4
      ],
      "fe_ip": "150.50.2.116",
      "fe_vlan_id": null,
      "be_ip": "150.50.3.116",
      "be_vlan_id": 3,
      "hb_ip": "150.50.0.116",
      "hb_vlan_id": null
    },
    {
      "name": "vc-1:zios",
      "state": "Created",
      "node": "dev2-sn3",
      "zios_storage_role": "Proxy+Storage",
      "zios_management_role": "Ring Slave",
      "vcpus": [
        22
      ],
      "fe_ip": "150.50.2.117",
      "fe_vlan_id": null,
      "be_ip": "150.50.3.117",
      "be_vlan_id": 3,
      "hb_ip": "150.50.0.117",
      "hb_vlan_id": null
    }
  ],
  "count": 2
}

Returns the list of a VPSA Object Storage storage policies.

GET /api/clouds/{cloud_name}/zioses/{id or internal-name}/storage_policies(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/storage_policies.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <zios-storage-policies type="array">
    <zios-storage-policy>
      <id>26</id>
      <internal_name>storage-policy-00000002</internal_name>
      <name>3-way-protection-policy</name>
      <status>initialized</status>
      <protection>3-way</protection>
      <default nil="true"/>
      <health-status>normal</health-status>
      <health-percentage type="integer">100</health-percentage>
      <ring-balance>
        <normal-percentage type="integer">99</normal-percentage>
        <degraded-percentage type="integer">0</degraded-percentage>
        <critical-percentage type="integer">0</critical-percentage>
        <normal-count type="integer">32729</normal-count>
        <degraded-count type="integer">39</degraded-count>
        <critical-count type="integer">0</critical-count>
      </ring-balance>
      <used-capacity type="integer">0</used-capacity>
      <free-capacity type="integer">299573968896</free-capacity>
    </zios-storage-policy>
    <zios-storage-policy>
      <name>MetadataPolicy</name>
      <status>initialized</status>
      <protection>3-way</protection>
      <default nil="true"/>
      <health-status>normal</health-status>
      <health-percentage type="integer">100</health-percentage>
      <ring-balance>
        <normal-percentage type="integer">84</normal-percentage>
        <degraded-percentage type="integer">15</degraded-percentage>
        <critical-percentage type="integer">0</critical-percentage>
        <normal-count type="integer">3465</normal-count>
        <degraded-count type="integer">631</degraded-count>
        <critical-count type="integer">0</critical-count>
      </ring-balance>
      <used-capacity type="integer">38377881</used-capacity>
      <free-capacity type="integer">236184823399</free-capacity>
    </zios-storage-policy>
  </zios-storage-policies>
  <count type="integer">2</count>
</response>
{
  "status": "success",
  "zios_storage_policies": [
    {
      "id": "26",
      "internal_name": "storage-policy-00000002",
      "name": "3-way-protection-policy",
      "status": "initialized",
      "protection": "3-way",
      "default": null,
      "health_status": "normal",
      "health_percentage": 100,
      "ring_balance": {
        "normal_percentage": 99,
        "degraded_percentage": 0,
        "critical_percentage": 0,
        "normal_count": 32729,
        "degraded_count": 39,
        "critical_count": 0
      },
      "used_capacity": 0,
      "free_capacity": 299573968896
    },
    {
      "name": "MetadataPolicy",
      "status": "initialized",
      "protection": "3-way",
      "default": null,
      "health_status": "normal",
      "health_percentage": 100,
      "ring_balance": {
        "normal_percentage": 84,
        "degraded_percentage": 15,
        "critical_percentage": 0,
        "normal_count": 3465,
        "degraded_count": 631,
        "critical_count": 0
      },
      "used_capacity": 38377881,
      "free_capacity": 236184823399
    }
  ],
  "count": 2
}

Returns the list of a VPSA Object Storage load balancers.

GET /api/clouds/{cloud_name}/zioses/{id or internal-name}/load_balancer(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/load_balancer.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <load-balancer type="array">
    <load-balancer>
      <id type="integer">1</id>
      <name>lbg-00000002</name>
      <protection-zone>
        <name>zone_0</name>
        <id type="integer">1</id>
      </protection-zone>
      <vrid type="integer">1</vrid>
      <master-vc>
        <id type="integer">612</id>
        <name>vc-2</name>
      </master-vc>
      <ipv4>10.2.31.35</ipv4>
      <ipv6 nil="true"/>
      <vcs type="array">
        <vc>
          <id type="integer">612</id>
          <name>vc-2</name>
          <lb-group-owner type="boolean">true</lb-group-owner>
          <fe-ipv4>10.2.31.25</fe-ipv4>
          <fe-ipv6 nil="true"/>
        </vc>
        <vc>
          <id type="integer">544</id>
          <name>vc-1</name>
          <lb-group-owner type="boolean">false</lb-group-owner>
          <fe-ipv4>10.2.31.32</fe-ipv4>
          <fe-ipv6 nil="true"/>
        </vc>
        <vc>
          <id type="integer">543</id>
          <name>vc-0</name>
          <lb-group-owner type="boolean">false</lb-group-owner>
          <fe-ipv4>10.2.31.31</fe-ipv4>
          <fe-ipv6 nil="true"/>
        </vc>
      </vcs>
    </load-balancer>
  </load-balancer>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "load_balancer": [
    {
      "id": 1,
      "name": "lbg-00000002",
      "protection_zone": {
        "name": "zone_0",
        "id": 1
      },
      "vrid": 1,
      "master_vc": {
        "id": 612,
        "name": "vc-2"
      },
      "ipv4": "10.2.31.35",
      "ipv6": null,
      "vcs": [
        {
          "id": 612,
          "name": "vc-2",
          "lb_group_owner": true,
          "fe_ipv4": "10.2.31.25",
          "fe_ipv6": null
        },
        {
          "id": 544,
          "name": "vc-1",
          "lb_group_owner": false,
          "fe_ipv4": "10.2.31.32",
          "fe_ipv6": null
        },
        {
          "id": 543,
          "name": "vc-0",
          "lb_group_owner": false,
          "fe_ipv4": "10.2.31.31",
          "fe_ipv6": null
        }
      ]
    }
  ],
  "count": 1
}

Returns the list of a VPSA Object Storage accounts.

GET /api/clouds/{cloud_name}/zioses/{id or internal-name}/accounts(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/accounts.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <accounts type="array">
    <account>
      <name>zios_admin</name>
      <enabled type="boolean">true</enabled>
      <users type="integer">3</users>
      <containers type="integer">0</containers>
      <objects type="integer">0</objects>
      <used-capacity type="integer">0</used-capacity>
    </account>
  </accounts>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "count": [
    {
      "name": "zios_admin",
      "enabled": true,
      "users": 3,
      "containers": 0,
      "objects": 0,
      "used_capacity": 0
    }
  ]
}

Returns the comments for a VPSA Object Storage.

GET /api/clouds/{cloud_name}/zioses/{id or internal-name}/comments(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/comments.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <comments>
    <comment>
      <content>**test comment**</content>
      <severity_id>0</severity_id>
      <severity_name>critical</severity_name>
      <created_by>1</created_by>
      <created_at>2017-01-04T12:23:02+02:00</created_at>
    </comment>
  </comments>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "comments": {
    "comment": {
      "content": "**test comment**",
      "severity_id": "0",
      "severity_name": "critical",
      "created_by": "1",
      "created_at": "2017-01-04T12:23:02+02:00"
    }
  },
  "count": 1
}

Returns the list of a available Virtual Networks to be added to VPSA.

GET /api/clouds/{cloud_name}/zioses/{id or internal-name}/compatible_virtual_networks(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/compatible_virtual_networks.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <compatible-virtual-networks type="array">
    <virtual-network>
      <name>vni2</name>
      <vlan type="integer">55</vlan>
      <custom-network-id type="integer">5</custom-network-id>
      <netmask>255.255.255.0</netmask>
      <cidr>192.165.0.0/24</cidr>
      <gateway>192.165.0.1</gateway>
    </virtual-network>
  </compatible-virtual-networks>
</response>
{
  "status": "success",
  "compatible_virtual_networks": [
    {
      "name": "vni2",
      "vlan": 55,
      "custom_network_id": 5,
      "netmask": "255.255.255.0",
      "cidr": "192.165.0.0/24",
      "gateway": "192.165.0.1"
    }
  ]
}

Returns the list of a Virtual Networks that belongs to a VPSA.

GET /api/clouds/{cloud_name}/zioses/{id or internal-name}/virtual_network_interfaces(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/virtual_network_interfaces.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <virtual-networks type="array">
    <virtual-network>
      <name>vni2</name>
      <vlan type="integer">55</vlan>
      <custom-network-id type="integer">5</custom-network-id>
      <netmask>255.255.255.0</netmask>
      <vni-id type="integer">0</vni-id>
      <cidr>192.165.0.0/24</cidr>
      <gateway>192.165.0.1</gateway>
    </virtual-network>
  </virtual-networks>
</response>
{
  "status": "success",
  "virtual_networks": [
    {
      "name": "vni2",
      "vlan": 55,
      "custom_network_id": 5,
      "netmask": "255.255.255.0",
      "vni_id": 0,
      "cidr": "192.165.0.0/24",
      "gateway": "192.165.0.1"
    }
  ]
}

Assign public ip to VPSA Object Storage.

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/public_ip/assign(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"ip":"1.2.3.4"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/public_ip/assign.json'
ip String Specific IP to assign
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Public IP 1.2.3.4 submitted for assignment, please allow a few minutes for this to take effect.</message>
</response>
{
  "status": "success",
  "message": "Public IP 1.2.3.4 submitted for assignment, please allow a few minutes for this to take effect."
}

Unassign public ip from VPSA Object Storage.

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/public_ip/unassign(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/public_ip/unassign.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Public IP submitted for unassignment from VPSA Object Storage, please allow a few minutes for this to take effect.</message>
</response>
{
  "status": "success",
  "message": "Public IP submitted for unassignment from VPSA Object Storage, please allow a few minutes for this to take effect."
}

Upgrade a VPSA Object Storage software to a specified image.

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/upgrade(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"image":"16.05.100.img"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/upgrade.json'
image String Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Changes VPSA Object Storage engine from ZIOS_MINI to ZIOS.

POST /api/clouds/{cloud_name}/vpsas/{id or internal-name}/change_engine_type(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsas/{id or internal-name}/change_engine_type.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Submitted the following changes: IO Engine Type changed to ZIOS.</message>
</response>
{
  "status": "success",
  "message": "Submitted the following changes: IO Engine Type changed to ZIOS."
}

Hibernate VPSA Object Storage.

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/hibernate(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/hibernate.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>ZIOS going into hibernating state, please allow a few minutes for this to take effect.</message>
</response>
{
  "status": "success",
  "message": "ZIOS going into hibernating state, please allow a few minutes for this to take effect."
}

Restore VPSA Object Storage from hibernation.

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/restore(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/restore.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Restoring ZIOS. Please allow a few minutes for this to take effect.</message>
</response>
{
  "status": "success",
  "message": "Restoring ZIOS. Please allow a few minutes for this to take effect."
}

Create a VPSA Object Storage Zsnap.

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/zsnap(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"prefix":"myprefix"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/zsnap.json'
prefix String Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Add drives to VPSA Object Storage.

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/drives(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"drive_type":"SATA_2793GB_5940RPM","quantity":2,"policy_id":"storage-policy-00000001"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/drives.json'
drive_type String Required. Drive type internal name
quantity Integer Required. Number of drives to add
policy_id String Required. policy id or internal_name
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Submitted request to add 2 SATA_2793GB_5940RPM drive(s).</message>
</response>
{
  "status": "success",
  "message": "Submitted request to add 2 SATA_2793GB_5940RPM drive(s)."
}

Add proxy virtual controller to VPSA Object Storage.

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/proxy_vcs(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"allocation_zone_id":1}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/proxy_vcs.json'
allocation_zone_id Integer Required. Allocation Zone id or internal name, ignored in case of single zone
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Submitted request to add proxy virtual controller</message>
</response>
{
  "status": "success",
  "message": "Submitted request to add proxy virtual controller"
}

Pause a storage policy rebalance.

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/policy_pause_rebalance(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"policy_name":"storage-policy-00000001"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/policy_pause_rebalance.json'
policy_name String Required. Policy name
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Submitted request to pause policy rebalance.</message>
</response>
{
  "status": "success",
  "message": "Submitted request to pause policy rebalance."
}

Continue a storage policy rebalance.

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/policy_continue_rebalance(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"policy_name":"storage-policy-00000001"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/policy_continue_rebalance.json'
policy_name String Required. Policy name
Sample XML Response Sample JSON Response
<response>
    <status>success</status>
    <message>Submitted request to continue policy rebalance.</message>
</response>
{
  "status": "success",
  "message": "Submitted request to continue policy rebalance."
}

Add Virtual Network to VPSA Object Storage.

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/add_virtual_network_interface(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"custom_network_id":1}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/add_virtual_network_interface.json'
custom_network_id Integer Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Remove Virtual Network from VPSA Object Storage.

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/remove_virtual_network_interface(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"vni_id":1}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/remove_virtual_network_interface.json'
vni_id Integer Required.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Gets all VPSA Object Storage upload endpoints including default endpoints

GET /api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints.json?methods_requested=s3_aws,s3_zios,ftp'
methods_requested Array Uploaded methods requested
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <zios-upload-endpoints type="array">
    <zios-upload-endpoint>
      <endpoint-name>NAME</endpoint-name>
      <endpoint-method>METHOD</endpoint-method>
      <access-key>ACCESS KEY</access-key>
      <region>REGION</region>
    </zios-upload-endpoint>
  </zios-upload-endpoints>
</response>
{
  "status": "success",
  "zios_upload_endpoints": [
    {
      "endpoint_name": "NAME",
      "endpoint_method": "METHOD",
      "access_key": "ACCESS KEY",
      "region": "REGION"
    }
  ]
}

Creates a new VPSA Object Storage upload endpoint

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"endpoint_name":"Endpoint1","endpoint_method":"s3_aws","config":"{"access_key": "ABCDEFGHIJKLMNOP", "secret_key": "xxxxxxxxxxxxxxxxxxxxxx", "region": "us-east-1"}"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints.json'
endpoint_name String Required. Endpoint name
endpoint_method String - s3_aws | s3_zios | ftp Required. Endpoint upload method
config Json Required. Endpoint configuration JSON, depending on the chosen upload method. For 's3_aws' and 's3_zios' methods, config should include 'access_key', 'secret_key' and 'region'. For 's3_zios' method, config should also include 'endpoint'. For 'ftp' method, config should include 'server', 'user', 'password', 'use_proxy' (boolean '0' or '1').
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully created zios endpoint ENDPOINT_NAME</message>
</response>
{
  "status": "success",
  "message": "Successfully created zios endpoint ENDPOINT_NAME"
}

Updates an existing VPSA Object Storage upload endpoint

PUT /api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints(.xml/json)
Example: curl -X PUT -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"endpoint_name":"Endpoint1","config":"{"access_key": "ABCDEFGHIJKLMNOP", "secret_key": "xxxxxxxxxxxxxxxxxxxxxx", "region": "us-east-1"}"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints.json'
endpoint_name String Required. Endpoint name
config Json Required. Endpoint configuration JSON, depending on the endpoint's upload method. For 's3_aws' and 's3_zios' methods, config should include 'access_key', 'secret_key' and 'region'. For 's3_zios' method, config should also include 'endpoint'. For 'ftp' method, config should include 'server', 'user', 'password', 'use_proxy' (boolean '0' or '1').
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully updated zios endpoint ENDPOINT_NAME</message>
</response>
{
  "status": "success",
  "message": "Successfully updated zios endpoint ENDPOINT_NAME"
}

Deletes an existing VPSA Object Storage upload endpoint

DELETE /api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"endpoint_name":"Endpoint1"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints.json'
endpoint_name String Required. Endpoint name
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully deleted zios endpoint ENDPOINT_NAME</message>
</response>
{
  "status": "success",
  "message": "Successfully deleted zios endpoint ENDPOINT_NAME"
}

Gets VPSA Object Storage endpoint configs by upload types

GET /api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints_config(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints_config.json?types=mag,config'
types Array Required. Upload types
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <zios-endpoint-configs type="array">
    <zios-endpoint-config>
      <type>mag</type>
      <endpoint-name>endpoint1</endpoint-name>
      <endpoint-bucket>bucket1</endpoint-bucket>
    </zios-endpoint-config>
  </zios-endpoint-configs>
</response>
{
  "status": "success",
  "zios_endpoint_configs": [
    {
      "type": "mag",
      "endpoint_name": "endpoint1",
      "endpoint_bucket": "bucket1"
    }
  ]
}

Creates VPSA Object Storage endpoints configurations for upload type

POST /api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints_config(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"type":"mag","endpoints_config":[{"endpoint_name":"default_mag_ep"},{"endpoint_name":"some_s3_endpoint""endpoint_bucket":"b"},{"endpoint_name":"some_ftp_endpoint"}]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints_config.json'
type String - mag | config Required. Upload type
endpoints_config Array Required. Endpoints configurations to set for the upload type. Each configuration must specify endpoint name. S3 endpoints configurations must also specify bucket name. Maximum to 3 endpoints. Cloud endpoints can also be specified (see 'Get cloud settings' api).
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully created zios endpoints configurations for upload type 'TYPE'</message>
</response>
{
  "status": "success",
  "message": "Successfully created zios endpoints configurations for upload type 'TYPE'"
}

Adds more VPSA Object Storage endpoints configurations for upload type

PUT /api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints_config(.xml/json)
Example: curl -X PUT -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"type":"mag","endpoints_config":[{"endpoint_name":"some_ftp_endpoint1"},{"endpoint_name":"some_s3_endpoint""endpoint_bucket":"b"},{"endpoint_name":"some_ftp_endpoint2"}]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints_config.json'
type String - mag | config Required. Upload type
endpoints_config Array Required. Endpoints configurations to be added to the existing endpoints configurations for the upload type. Each configuration must specify endpoint name. S3 endpoints configurations must also specify bucket name. Maximum 2 endpoints to add. Cloud endpoints can also be specified (see 'Get cloud settings' api).
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully added zios endpoints configurations for upload type 'TYPE'</message>
</response>
{
  "status": "success",
  "message": "Successfully added zios endpoints configurations for upload type 'TYPE'"
}

Deletes an existing VPSA Object Storage endpoint configuration for upload type

DELETE /api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints_config(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"type":"mag","endpoint_name":"Endpoint1"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/zioses/{id or internal-name}/endpoints_config.json'
type String - mag | config Required. Upload type
endpoint_name String Required. Endpoint name
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully deleted zios endpoint configuration for type 'TYPE'</message>
</response>
{
  "status": "success",
  "message": "Successfully deleted zios endpoint configuration for type 'TYPE'"
}

Return Users list.

GET /api/users(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/users.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <users type="array">
    <user>
      <id type="integer">19</id>
      <firstname>fdmfd</firstname>
      <lastname>mvkdlvd</lastname>
    </user>
    <user>
      <id type="integer">12</id>
      <firstname>dima</firstname>
      <lastname>dima</lastname>
    </user>
  </users>
  <count type="integer">2</count>
</response>
{
  "status": "success",
  "users": [
    {
      "id": 19,
      "firstname": "fdmfd",
      "lastname": "mvkdlvd"
    },
    {
      "id": 12,
      "firstname": "dima",
      "lastname": "dima"
    }
  ],
  "count": 2
}

Return a User.

GET /api/users/{id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/users/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <user>
    <id type="integer">19</id>
    <firstname>fdmfd</firstname>
    <lastname>mvkdlvd</lastname>
  </user>
  <user>
    <id type="integer">12</id>
    <firstname>dima</firstname>
    <lastname>dima</lastname>
  </user>
</response>
{
  "status": "success",
  "user": [
    {
      "id": 19,
      "firstname": "fdmfd",
      "lastname": "mvkdlvd"
    },
    {
      "id": 12,
      "firstname": "dima",
      "lastname": "dima"
    }
  ]
}

Create user.

POST /api/users(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"user" : {"email" : "john@doe.com","firstname" : "john","lastname" : "doe","admin" : true,"role_ids" : ["1","3"]}}' 'https://<command-center-ip>:8888/api/users.json'
email String Required. email
firstname String
lastname String
admin Boolean
role_ids Array
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <user>
    <id type="integer">39</id>
    <email>test@test.com</email>
    <firstname>aaa</firstname>
    <lastname nil="true"/>
    <roles type="array">
      <role>
        <id type="integer">1</id>
        <name>raid groups manage role</name>
      </role>
    </roles>
    <admin type="boolean">false</admin>
    <password>AbCdEf</password>
  </user>
</response>
{
  "status": "success",
  "user": {
    "id": 39,
    "email": "test@test.com",
    "firstname": "aaa",
    "lastname": null,
    "roles": [
      {
        "id": 1,
        "name": "raid groups manage role"
      }
    ],
    "admin": false,
    "password": "AbCdEf"
  }
}

Update user.

PUT /api/users/{id}(.xml/json)
Example: curl -X PUT -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"user" : {"email" : "john@doe.com","firstname" : "john","lastname" : "doe","admin" : true,"role_ids" : ["1","3"],"current_password" : "currentpassword","password" : "newpassword"}}' 'https://<command-center-ip>:8888/api/users/{id}.json'
email String email
firstname String
lastname String
admin Boolean
role_ids Array
current_password String
password String
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>  
{
  "status": "success"
}

Delete user.

DELETE /api/users/{id}(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/users/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>  
{
  "status": "success"
}

Returns user's API key.

POST /api/users/token(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -d '{"email":"john@doe.com","password":"secret"}' 'https://<command-center-ip>:8888/api/users/token.json'
email String Required.
password String Required.
Sample XML Response Sample JSON Response
<response>
	<status>success</status>
	<api-key>...</api-key>
</response>
{
  "status": "success",
  "api_key": "..."
}

Regenerates and returns a user's API key.

POST /api/users/regenerate_token(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -d '{"email":"john@doe.com","password":"secret"}' 'https://<command-center-ip>:8888/api/users/regenerate_token.json'
email String Required.
password String Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <api-key>...</api-key>
</response>
{
  "status": "success",
  "api_key": "..."
}

Return remote authentication servers list.

GET /api/remote_authentications(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/remote_authentications.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <remotes type="array">
    <remote>
      <id type="integer">4</id>
      <domain>zadara.com</domain>
      <domain_alias>zadara</domain_alias>
      <port>389</port>
      <type>active_directory</type>
      <base>DC=zadara,DC=com</base>
      <dns type="array">
        <ip>"192.168.0.1"</ip>
        <ip>"192.168.0.2"</ip>
      </dns>
    </remote>
    <remote>
      <id type="integer">5</id>
      <domain>zadara2.com</domain>
      <domain_alias>zadara2</domain_alias>
      <port>389</port>
      <type>active_directory</type>
      <base>DC=zadara,DC=com</base>
      <dns type="array">
        <ip>"192.168.0.1"</ip>
        <ip>"192.168.0.2"</ip>
      </dns>
    </remote>
  </remotes>
  <count type="integer">2</count>
</response>
{
  "status": "success",
  "remotes": [
    {
      "id": 4,
      "domain": "zadara.com",
      "domain_alias": "zadara",
      "port": "389",
      "type": "active_directory",
      "base": "DC=zadara,DC=com",
      "dns": [
        "\"192.168.0.1\"",
        "\"192.168.0.2\""
      ]
    },
    {
      "id": 5,
      "domain": "zadara2.com",
      "domain_alias": "zadara2",
      "port": "389",
      "type": "active_directory",
      "base": "DC=zadara,DC=com",
      "dns": [
        "\"192.168.0.1\"",
        "\"192.168.0.2\""
      ]
    }
  ],
  "count": 2
}

Return a single remote authentication server.

GET /api/remote_authentications/{auth_server_id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/remote_authentications/{auth_server_id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <remote>
    <id type="integer">4</id>
    <domain>zadara.com</domain>
    <domain_alias>zadara</domain_alias>
    <port>389</port>
    <type>active_directory</type>
    <base>DC=zadara,DC=com</base>
    <dns type="array">
      <ip>"192.168.0.1"</ip>
      <ip>"192.168.0.2"</ip>
    </dns>
  </remote>
</response>
{
  "status": "success",
  "remote": {
    "id": 4,
    "domain": "zadara.com",
    "domain_alias": "zadara",
    "port": "389",
    "type": "active_directory",
    "base": "DC=zadara,DC=com",
    "dns": [
      "\"192.168.0.1\"",
      "\"192.168.0.2\""
    ]
  }
}

Deletes remote authentication server.

DELETE /api/remote_authentications/{auth_server_id}(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/remote_authentications/{auth_server_id}.json'
No parameters available for this command.

Create remote authentication server.

POST /api/remote_authentications(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"remote" : {"domain" : "zadara.com","domain_alias" : "zadara","base" : "DC=zadara,DC=com","type" : "active_directory","port" : "389","dns" : ["192.168.0.1","192.168.0.2"]}}' 'https://<command-center-ip>:8888/api/remote_authentications.json'
domain String Required.
domain_alias String Required.
base String Required.
type String - active_directory Required.
port Integer If not specified 389 is the default
dns Array
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <remote>
    <id type="integer">5</id>
    <domain>zadara.com</domain>
    <domain_alias>zadara</domain_alias>
    <port>389</port>
    <type>active_directory</type>
    <base>DC=zadara,DC=com</base>
    <dns type="array">
      <ip>"192.168.0.1"</ip>
      <ip>"192.168.0.2"</ip>
    </dns>
  </remote>
</response>
{
  "status": "success",
  "remote": {
    "id": 5,
    "domain": "zadara.com",
    "domain_alias": "zadara",
    "port": "389",
    "type": "active_directory",
    "base": "DC=zadara,DC=com",
    "dns": [
      "\"192.168.0.1\"",
      "\"192.168.0.2\""
    ]
  }
}

Get user list of a remote directory.

GET /api/remote_authentications/{auth_server_id}/users(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/remote_authentications/{auth_server_id}/users.json?username=domain:username&password=secret1234'
username String Required. remote administrator domain and username. Zadara doesn't store your username.
password String Required. remote administrator password. Zadara doesn't store your password. Your credentials are only used to authenticate session with your directory
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <imported_users type="array">
    <user>
      <id type="integer">19</id>
      <firstname>Someone</firstname>
      <lastname>surname</lastname>
      <remote_username>username</remote_username>
    </user>
    <user>
      <id type="integer">20</id>
      <firstname>Someone else</firstname>
      <lastname>surname</lastname>
      <remote_username>username</remote_username>
    </user>
  </imported_users>
  <not_imported_users type="array">
    <user>
      <id type="integer">21</id>
      <firstname>Someone</firstname>
      <lastname>surname</lastname>
      <remote_username>username</remote_username>
    </user>
    <user>
      <id type="integer">22</id>
      <firstname>Someone else</firstname>
      <lastname>surname</lastname>
      <remote_username>username</remote_username>
    </user>
  </not_imported_users>
</response>
{
  "status": "success",
  "imported_users": [
    {
      "id": 19,
      "firstname": "Someone",
      "lastname": "surname",
      "remote_username": "username"
    },
    {
      "id": 20,
      "firstname": "Someone else",
      "lastname": "surname",
      "remote_username": "username"
    }
  ],
  "not_imported_users": [
    {
      "id": 21,
      "firstname": "Someone",
      "lastname": "surname",
      "remote_username": "username"
    },
    {
      "id": 22,
      "firstname": "Someone else",
      "lastname": "surname",
      "remote_username": "username"
    }
  ]
}

Imports users from remote directory.

POST /api/remote_authentications/{auth_server_id}/users/import(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"username":"domain:username","password":"secret1234","users":["john","peter20"]}' 'https://<command-center-ip>:8888/api/remote_authentications/{auth_server_id}/users/import.json'
username String Required. username of a remote directory user. Zadara doesn't store usernames.
password String Required. password of a remote directory user. Zadara doesn't store passwords. Your credentials are only used to authenticate session with your directory.
users Array array containing usernames of the users to be added
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <imported_users type="array">
    <user>
      <id type="integer">19</id>
      <firstname>Someone</firstname>
      <lastname>surname</lastname>
      <remote_username>username</remote_username>
    </user>
    <user>
      <id type="integer">20</id>
      <firstname>Someone else</firstname>
      <lastname>surname</lastname>
      <remote_username>username</remote_username>
    </user>
  </imported_users>
</response>
{
  "status": "success",
  "imported_users": [
    {
      "id": 19,
      "firstname": "Someone",
      "lastname": "surname",
      "remote_username": "username"
    },
    {
      "id": 20,
      "firstname": "Someone else",
      "lastname": "surname",
      "remote_username": "username"
    }
  ]
}

Return roles list.

GET /api/roles(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/roles.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <roles type="array">
    <role>
      <role>
        <id type="integer">4</id>
        <name>License manager</name>
        <permissions type="array">
          <permission>licensing_view</permission>
          <permission>licensing_manage</permission>
          <permission>storage_nodes_license</permission>
          <permission>storage_nodes_refresh_license</permission>
        </permissions>
      </role>
    </role>
    <role>
      <role>
        <id type="integer">5</id>
        <name>License viewer</name>
        <permissions type="array">
          <permission>licensing_view</permission>
        </permissions>
      </role>
    </role>
  </roles>
</response>
{
  "status": "success",
  "roles": [
    {
      "role": {
        "id": 4,
        "name": "License manager",
        "permissions": [
          "licensing_view",
          "licensing_manage",
          "storage_nodes_license",
          "storage_nodes_refresh_license"
        ]
      }
    },
    {
      "role": {
        "id": 5,
        "name": "License viewer",
        "permissions": [
          "licensing_view"
        ]
      }
    }
  ]
}

Return role.

GET /api/roles/{id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/roles/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <role type="array">
    <role>
      <id type="integer">4</id>
      <name>License manager</name>
      <permissions type="array">
        <permission>licensing_view</permission>
        <permission>licensing_manage</permission>
        <permission>storage_nodes_license</permission>
        <permission>storage_nodes_refresh_license</permission>
      </permissions>
    </role>
  </role>
</response>
{
  "status": "success",
  "role": [
    {
      "id": 4,
      "name": "License manager",
      "permissions": [
        "licensing_view",
        "licensing_manage",
        "storage_nodes_license",
        "storage_nodes_refresh_license"
      ]
    }
  ]
}

Create role.

POST /api/roles(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"role" : {"name" : "License manager","permissions" : ["licensing_view","licensing_manage"]}}' 'https://<command-center-ip>:8888/api/roles.json'
name String Required.
permissions Array Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <role type="array">
    <role>
      <id type="integer">4</id>
      <name>License manager</name>
      <permissions type="array">
        <permission>licensing_view</permission>
        <permission>licensing_manage</permission>
        <permission>storage_nodes_license</permission>
        <permission>storage_nodes_refresh_license</permission>
      </permissions>
    </role>
  </role>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "role": [
    {
      "id": 4,
      "name": "License manager",
      "permissions": [
        "licensing_view",
        "licensing_manage",
        "storage_nodes_license",
        "storage_nodes_refresh_license"
      ]
    }
  ],
  "count": 1
}

Edit role.

PUT /api/roles/{id}(.xml/json)
Example: curl -X PUT -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"role" : {"name" : "License manager","permissions" : ["licensing_view","licensing_manage"]}}' 'https://<command-center-ip>:8888/api/roles/{id}.json'
name String Required.
permissions Array Required.

Delete role.

DELETE /api/roles/{id}(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/roles/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Return permissions list.

GET /api/permissions(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/permissions.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <permissions type="array">
    <permission>clouds_view</permission>
    <permission>clouds_zsnap</permission>
    <permission>clouds_upgrade</permission>
    <permission>allocation_zones_view</permission>
    <permission>allocation_zones_rename</permission>
    <permission>storage_nodes_view</permission>
    <permission>storage_nodes_evacuate_vcs</permission>
    <permission>storage_nodes_evacuate_drives</permission>
    <permission>storage_nodes_reboot</permission>
    <permission>storage_nodes_shutdown</permission>
    <permission>storage_nodes_install</permission>
    <permission>storage_nodes_zsnap</permission>
    <permission>storage_nodes_failover</permission>
    <permission>storage_nodes_check_configuration</permission>
    <permission>storage_nodes_import_drives</permission>
    <permission>storage_nodes_license</permission>
    <permission>storage_nodes_refresh_license</permission>
    <permission>storage_nodes_set_block_device_performance_thresholds</permission>
    <permission>vpsas_view</permission>
    <permission>vpsas_clear_lockdown</permission>
    <permission>vpsas_failover</permission>
    <permission>vpsas_zsnap</permission>
    <permission>vpsas_upgrade</permission>
    <permission>vpsas_launch_gui</permission>
    <permission>vpsas_modify_public_ip</permission>
    <permission>vpsas_hibernate_and_restore</permission>
    <permission>vpsas_add_drives</permission>
    <permission>vpsas_change_engine_type</permission>
    <permission>vpsas_change_cache</permission>
    <permission>vpsas_move_setup_to_ssd</permission>
    <permission>vpsas_move_vc</permission>
    <permission>zioses_view</permission>
    <permission>zioses_clear_lockdown</permission>
    <permission>zioses_modify_public_ip</permission>
    <permission>zioses_zsnap</permission>
    <permission>zioses_upgrade</permission>
    <permission>zioses_launch_gui</permission>
    <permission>zioses_add_drives</permission>
    <permission>zioses_add_proxy_vcs</permission>
    <permission>drives_view</permission>
    <permission>drives_replace</permission>
    <permission>drives_manage_led</permission>
    <permission>drives_enable</permission>
    <permission>drives_disable</permission>
    <permission>drives_designate_as_cache</permission>
    <permission>drives_undesignate_as_cache</permission>
    <permission>drives_smart_test</permission>
    <permission>drives_license</permission>
    <permission>drives_unlicense</permission>
    <permission>drives_purge</permission>
    <permission>drive_types_view</permission>
    <permission>engine_types_view</permission>
    <permission>app_engine_types_view</permission>
    <permission>images_view</permission>
    <permission>images_set_default</permission>
    <permission>images_delete</permission>
    <permission>cloud_users_view</permission>
    <permission>cloud_users_manage_vlan_id</permission>
    <permission>custom_networks_view</permission>
    <permission>custom_networks_manage</permission>
    <permission>vlans_view</permission>
    <permission>vlans_add</permission>
    <permission>vlans_remove</permission>
    <permission>vlans_allocate</permission>
    <permission>vlans_deallocate</permission>
    <permission>vlans_reserve</permission>
    <permission>vlans_unreserve</permission>
    <permission>vlans_set_default</permission>
    <permission>vfloating_ips_view</permission>
    <permission>vfloating_ips_manage</permission>
    <permission>central_logs_view</permission>
    <permission>central_logs_manage_rsyslog</permission>
    <permission>licensing_view</permission>
    <permission>licensing_manage</permission>
    <permission>users_update</permission>
    <permission>comments_viewer</permission>
    <permission>comments_manage</permission>
  </permissions>
  <count type="integer">77</count>
</response>
{
  "status": "success",
  "permissions": [
    "clouds_view",
    "clouds_zsnap",
    "clouds_upgrade",
    "allocation_zones_view",
    "allocation_zones_rename",
    "storage_nodes_view",
    "storage_nodes_evacuate_vcs",
    "storage_nodes_evacuate_drives",
    "storage_nodes_reboot",
    "storage_nodes_shutdown",
    "storage_nodes_install",
    "storage_nodes_zsnap",
    "storage_nodes_failover",
    "storage_nodes_check_configuration",
    "storage_nodes_import_drives",
    "storage_nodes_license",
    "storage_nodes_refresh_license",
    "storage_nodes_set_block_device_performance_thresholds",
    "vpsas_view",
    "vpsas_clear_lockdown",
    "vpsas_failover",
    "vpsas_zsnap",
    "vpsas_upgrade",
    "vpsas_launch_gui",
    "vpsas_modify_public_ip",
    "vpsas_hibernate_and_restore",
    "vpsas_add_drives",
    "vpsas_change_engine_type",
    "vpsas_change_cache",
    "vpsas_move_setup_to_ssd",
    "vpsas_move_vc",
    "zioses_view",
    "zioses_clear_lockdown",
    "zioses_modify_public_ip",
    "zioses_zsnap",
    "zioses_upgrade",
    "zioses_launch_gui",
    "zioses_add_drives",
    "zioses_add_proxy_vcs",
    "drives_view",
    "drives_replace",
    "drives_manage_led",
    "drives_enable",
    "drives_disable",
    "drives_designate_as_cache",
    "drives_undesignate_as_cache",
    "drives_smart_test",
    "drives_license",
    "drives_unlicense",
    "drives_purge",
    "drive_types_view",
    "engine_types_view",
    "app_engine_types_view",
    "images_view",
    "images_set_default",
    "images_delete",
    "cloud_users_view",
    "cloud_users_manage_vlan_id",
    "custom_networks_view",
    "custom_networks_manage",
    "vlans_view",
    "vlans_add",
    "vlans_remove",
    "vlans_allocate",
    "vlans_deallocate",
    "vlans_reserve",
    "vlans_unreserve",
    "vlans_set_default",
    "vfloating_ips_view",
    "vfloating_ips_manage",
    "central_logs_view",
    "central_logs_manage_rsyslog",
    "licensing_view",
    "licensing_manage",
    "users_update",
    "comments_viewer",
    "comments_manage"
  ],
  "count": 77
}

Returns a list of all comments according to selected type.

GET /api/clouds/{cloud_name}/comments(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/comments.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Returns the details for a single comment.

GET /api/clouds/{cloud_name}/comments/{id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/comments/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Create a Comment

POST /api/clouds/{cloud_name}/comments(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"content":"**my coment**","type":"Vpsa","id":1,"severity":"low","pin_to_dashboard":true}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/comments.json'
content String
type String - Vpsa | Zios | Drive | DriveType | Node | Cloud
id Integer id of the entity this comment will be attached to
severity String - low | medium | high | critical
pin_to_dashboard Boolean Pin comment to dashboard. Cloud type comment is automatically pinned to dashboard.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Edit a comment

PUT /api/clouds/{cloud_name}/comments/1(.xml/json)
Example: curl -X PUT -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"content":"**my coment**","severity":"low","pin_to_dashboard":true}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/comments/1.json'
content String
severity String - low | medium | high | critical
pin_to_dashboard Boolean Pin comment to dashboard. Cloud type comment is automatically pinned to dashboard.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>  
{
  "status": "success"
}

Delete a comment

DELETE /api/clouds/{cloud_name}/comments/{id}(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/comments/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
    <status>success</status>
</response>
{
  "status": "success"
}

Returns a list of Cloud's fault domains.

GET /api/clouds/{cloud_name}/fault_domains(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/fault_domains.json?page=1&per_page=10'
page Integer The page number to start from.
per_page Integer The total number of records to return.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <fault-domains type="array">
    <fault-domain>
      <id type="integer">1</id>
      <name>FD_1</name>
      <internal-id type="integer">1</internal-id>
      <allocation-zone-id type="integer">1</allocation-zone-id>
      <storage-node-count type="integer">1</storage-node-count>
    </fault-domain>
    <fault-domain>
      <id type="integer">2</id>
      <name>FD_2</name>
      <internal-id type="integer">2</internal-id>
      <allocation-zone-id type="integer">1</allocation-zone-id>
      <storage-node-count type="integer">1</storage-node-count>
    </fault-domain>
  </fault-domains>
  <count type="integer">2</count>
</response>
{
  "status": "success",
  "fault_domains": [
    {
      "id": 1,
      "name": "FD_1",
      "internal_id": 1,
      "allocation_zone_id": 1,
      "storage_node_count": 1
    },
    {
      "id": 2,
      "name": "FD_2",
      "internal_id": 2,
      "allocation_zone_id": 1,
      "storage_node_count": 1
    }
  ],
  "count": 2
}

Returns a single fault domain details.

GET /api/clouds/{cloud_name}/fault_domains/{id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/fault_domains/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <fault-domain>
    <id type="integer">1</id>
    <name>FD_1</name>
    <internal-id type="integer">1</internal-id>
    <allocation-zone-id type="integer">1</allocation-zone-id>
    <storage-node-count type="integer">1</storage-node-count>
  </fault-domain>
</response>
{
  "status": "success",
  "fault_domain": {
    "id": 1,
    "name": "FD_1",
    "internal_id": 1,
    "allocation_zone_id": 1,
    "storage_node_count": 1
  }
}

Adds a Storage Node to fault domain.

POST /api/clouds/{cloud_name}/fault_domains/{id}/add_node(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"node_id":1}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/fault_domains/{id}/add_node.json'
node_id Integer Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Returns Protection Zones Disk Usage.

GET /api/clouds/{cloud_name}/vpsa_zone_groups/{id}/inventory(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/vpsa_zone_groups/{id}/inventory.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
    <inventory>
      <zone_0>
        <FD_1>
          <NVME_3726GB_0RPM>
            <used>9</used>
            <total>13</total>
            <free>4</free>
          </NVME_3726GB_0RPM>
          <NVME_1863GB_0RPM>
            <used>1</used>
            <total>2</total>
            <free>1</free>
          </NVME_1863GB_0RPM>
        </FD_1>
        <FD_2>
          <NVME_3726GB_0RPM>
            <used>9</used>
            <total>14</total>
            <free>5</free>
          </NVME_3726GB_0RPM>
          <NVME_1863GB_0RPM>
            <used>1</used>
            <total>2</total>
            <free>1</free>
          </NVME_1863GB_0RPM>
        </FD_2>
      </zone_0>
    </inventory>
</response>
{
  "status": "success",
  "inventory": {
    "zone_0": {
      "FD_1": {
        "NVME_3726GB_0RPM": {
          "used": "9",
          "total": "13",
          "free": "4"
        },
        "NVME_1863GB_0RPM": {
          "used": "1",
          "total": "2",
          "free": "1"
        }
      },
      "FD_2": {
        "NVME_3726GB_0RPM": {
          "used": "9",
          "total": "14",
          "free": "5"
        },
        "NVME_1863GB_0RPM": {
          "used": "1",
          "total": "2",
          "free": "1"
        }
      }
    }
  }
}

Gets a list of recent events.

GET /api/clouds/{cloud_name}/logs(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/logs.json?min_severity=4&template=failed'
min_severity Integer
template String
min_time Date(yyyy-mm-dd hh:mm)
max_time Date(yyyy-mm-dd hh:mm)
min_id Integer
max_id Integer
orderby String
desc Boolean
page Integer
per_page Integer
attributes Hash e.g attributes[source_type]=sn&attributes[source_name]=s1
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <logs type="array">
    <log>
      <id>16013</id>
      <title>ubuntu-61_395:</title>
      <time>2014-01-17 14:15:44</time>
      <severity>Notice</severity>
      <source-type>sn</source-type>
      <source-name>ubuntu-61</source-name>
    </log>
    <log>
      <id>16014</id>
      <title>ubuntu-62_395:</title>
      <time>2014-01-16 14:15:44</time>
      <severity>Notice</severity>
      <source-type>sn</source-type>
      <source-name>ubuntu-61</source-name>
    </log>
  </logs>
  <count type="integer">2</count>
</response>
{
  "status": "success",
  "logs": [
    {
      "id": "16013",
      "title": "ubuntu-61_395:",
      "time": "2014-01-17 14:15:44",
      "severity": "Notice",
      "source_type": "sn",
      "source_name": "ubuntu-61"
    },
    {
      "id": "16014",
      "title": "ubuntu-62_395:",
      "time": "2014-01-16 14:15:44",
      "severity": "Notice",
      "source_type": "sn",
      "source_name": "ubuntu-61"
    }
  ],
  "count": 2
}

Adds an address to the list of remote RSYSLOG server.

POST /api/clouds/{cloud_name}/logs/add_remote_address(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"address":"10.11.12.13:1234"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/logs/add_remote_address.json'
address String Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <address>10.11.12.13:1234</address>
</response>
{
  "status": "success",
  "address": "10.11.12.13:1234"
}

Deletes the supplied address from the list of remote RSYSLOG servers.

DELETE /api/clouds/{cloud_name}/logs/delete_remote_addresses(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"address":["10.11.12.13:1234","10.11.12.14:1234"]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/logs/delete_remote_addresses.json'
address Array Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <address>10.11.12.13:1234</address>
</response>
{
  "status": "success",
  "address": "10.11.12.13:1234"
}

Retrieve the the address list of a remote RSYSLOG servers.

GET /api/clouds/{cloud_name}/logs/remote_addresses(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/logs/remote_addresses.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <addresses type="array">
    <address>10.11.12.13:1234</address>
    <address>10.11.12.14:1234</address>
    <address>10.11.12.15:1234</address>
  </addresses>
  <count type="integer">3</count>
</response>
{
  "status": "success",
  "addresses": [
    "10.11.12.13:1234",
    "10.11.12.14:1234",
    "10.11.12.15:1234"
  ],
  "count": 3
}

Returns a list of all the volumes in a Zadara Storage Cloud.

GET /api/clouds/{cloud_name}/volumes(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/volumes.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <volumes>
    <volume>
      <storage-node>ubuntu-sata-31</storage-node>
    </volume>
  </volumes>
  <count type="integer">1</count>
</response>
{
  "status": "success",
  "volumes": {
    "volume": {
      "storage_node": "ubuntu-sata-31"
    }
  },
  "count": 1
}

Returns detailed information about a single volume.

GET /api/clouds/{cloud_name}/volume/{id}(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/volume/{id}.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <volume>
    <storage-node>ubuntu-sata-31</storage-node>
  </volume>
</response>
{
  "status": "success",
  "volume": {
    "storage_node": "ubuntu-sata-31"
  }
}

Replaces a volume which is allocated to a VPSA. This command will allocate a new volume of the same drive type for the VPSA.

POST /api/clouds/{cloud_name}/volumes/{id}/replace(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/volumes/{id}/replace.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Lists Storage Nodes.

GET /api/clouds/{cloud_name}/software_install/list_sns(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/software_install/list_sns.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>
    <sns type="array">
      <sn>
        <status>connected</status>
        <installer-version>14.07-1419-36</installer-version>
        <sn-uname>ubuntu-61</sn-uname>
        <nova-version>14.07-1419-36</nova-version>
        <extmgmt-ip>172.16.0.61</extmgmt-ip>
        <sn-version>14.07-1419-36</sn-version>
      </sn>
      <sn>
        <status>connected</status>
        <installer-version>14.07-1419-36</installer-version>
        <sn-uname>ubuntu-sata-51</sn-uname>
        <nova-version>14.07-1419-36</nova-version>
        <extmgmt-ip>172.16.0.51</extmgmt-ip>
        <sn-version>14.07-1419-36</sn-version>
      </sn>
    </sns>
  </message>
</response>
{
  "status": "success",
  "message": {
    "sns": [
      {
        "status": "connected",
        "installer_version": "14.07-1419-36",
        "sn_uname": "ubuntu-61",
        "nova_version": "14.07-1419-36",
        "extmgmt_ip": "172.16.0.61",
        "sn_version": "14.07-1419-36"
      },
      {
        "status": "connected",
        "installer_version": "14.07-1419-36",
        "sn_uname": "ubuntu-sata-51",
        "nova_version": "14.07-1419-36",
        "extmgmt_ip": "172.16.0.51",
        "sn_version": "14.07-1419-36"
      }
    ]
  }
}

Lists Install packages. Shows packages from local and renote repository. If remote_repo is not defined, the default Zadara repo is used.

GET /api/clouds/{cloud_name}/software_install/list_packages(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/software_install/list_packages.json?remote_repo=s3://mys3location'
remote_repo String Remote repository
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>
    <pkgs type="array">
      <pkg>
        <name>14.07-1419-34</name>
        <state>[downloaded:not-in-s3]</state>
      </pkg>
      <pkg>
        <name>14.07-1419-36</name>
        <state>[downloaded:not-in-s3]</state>
      </pkg>
    </pkgs>
  </message>
</response>
{
  "status": "success",
  "message": {
    "pkgs": [
      {
        "name": "14.07-1419-34",
        "state": "[downloaded:not-in-s3]"
      },
      {
        "name": "14.07-1419-36",
        "state": "[downloaded:not-in-s3]"
      }
    ]
  }
}

Download and Install package from a remote repository. If remote_repo is not defined, the default Zadara repo is used.

POST /api/clouds/{cloud_name}/software_install/download_package(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"package":"14.07.100"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/software_install/download_package.json'
package String Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message> package downloading </message>
</response>
{
  "status": "success",
  "message": " package downloading "
}

Upload deb settings file.

POST /api/clouds/{cloud_name}/software_install/upload_settings(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/software_install/upload_settings.json'
file .deb Required. File upload
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Erase package from the local repository.

POST /api/clouds/{cloud_name}/software_install/erase_package(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"package":"14.07.100"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/software_install/erase_package.json'
package String Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>package erased</message>
</response>
{
  "status": "success",
  "message": "package erased"
}

Register image in the local repository.

POST /api/clouds/{cloud_name}/software_install/register_images(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"package":"14.07.100","components":["vpsas","ccvm"]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/software_install/register_images.json'
package String Required.
components Array Required. Register only the specified component types. vpsa - register VPSA image. ccvm - register CCVM image. zios - register VPSA Object Storage image
set_default Boolean Set the setting as default
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Install a new Storage Node.

POST /api/clouds/{cloud_name}/software_install/sn_install(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"package":"14.07.100","sn_uname":"sn-10"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/software_install/sn_install.json'
package String Required.
sn_uname String Required. Storage node
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>sn installing</message>
</response>
{
  "status": "success",
  "message": "sn installing"
}

upgrade the selected compoments (SN\VPSA\CCVM) in the Zadara Cloud to the specified software package. If no components are passed , all components will be upgraded.

POST /api/clouds/{cloud_name}/software_install/cloud_upgrade(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"package":"14.07.100","components":["vpsas","ccvm"]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/software_install/cloud_upgrade.json'
package String Required.
components Array Upgrade only the specified component types. sns - upgrade all Storage Nodes. vpsas - upgrade all VPSAs. ccvm - upgrade the CCVM
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>upgrade started</message>
</response>
{
  "status": "success",
  "message": "upgrade started"
}

Show history of Install actions.

GET /api/clouds/{cloud_name}/software_install/show_all(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/software_install/show_all.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>
    <actions type="array">
      <action>
        <comment>Running cloud_upgrade</comment>
        <update-time>...</update-time>
        <name>cloud_upgrade</name>
        <param>
          <pkg>...</pkg>
        </param>
        <state>Aborted</state>
        <steps type="array">
          <step>
            <comment>Upgrade CCSlave SN</comment>
            <name>upgrade_ccslave</name>
            <state>start</state>
            <time>...</time>
            <phase type="integer">1</phase>
            <progress />
            <data>
              <ccslave>ubuntu-sata-41</ccslave>
              <ccmaster>ubuntu-sata-51</ccmaster>
            </data>
            <id type="integer">27</id>
            <action-id type="integer">11</action-id>
          </step>
        </steps>
      </action>
    </actions>
  </message>
</response>
{
  "status": "success",
  "message": {
    "actions": [
      {
        "comment": "Running cloud_upgrade",
        "update_time": "...",
        "name": "cloud_upgrade",
        "param": {
          "pkg": "..."
        },
        "state": "Aborted",
        "steps": [
          {
            "comment": "Upgrade CCSlave SN",
            "name": "upgrade_ccslave",
            "state": "start",
            "time": "...",
            "phase": 1,
            "progress": null,
            "data": {
              "ccslave": "ubuntu-sata-41",
              "ccmaster": "ubuntu-sata-51"
            },
            "id": 27,
            "action_id": 11
          }
        ]
      }
    ]
  }
}

Abort last Install action.

POST /api/clouds/{cloud_name}/software_install/abort_last_action(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/software_install/abort_last_action.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Succesfully aborted</message>
</response>
{
  "status": "success",
  "message": "Succesfully aborted"
}

Restart last failing Install action.

POST /api/clouds/{cloud_name}/software_install/restart_last_action(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/software_install/restart_last_action.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Restarted</message>
</response>
{
  "status": "success",
  "message": "Restarted"
}

Get cloud settings.

GET /api/clouds/{cloud_name}/settings(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <general type="array">
    <general>
      <domain-name>cloud1</domain-name>
      <support-tickets>
        <method>zendesk</method>
        <url>https://zadarastorage123.zendesk.com</url>
        <username>support@zadarastorage.com</username>
      </support-tickets>
      <zsnap-settings>
        <method>ftp</method>
        <data>
          <server>10.0.0.111</server>
          <user>zsnap</user>
          <Max-allowed-mb>102400</Max-allowed-mb>
          <Max-retain-mb>81920</Max-retain-mb>
        </data>
      </zsnap-settings>
      <cache-or-afa-meta-drives-settings>
        <ssd-cache-max-usable-capacity-gb type="integer">800</ssd-cache-max-usable-capacity-gb>
        <allow-temporarily-set-ssds-as-afa-meta nil="true"/>
      </cache-or-afa-meta-drives-settings>
      <ticket-threshold>
        <failed-drive-ticket-time type="integer">34</failed-drive-ticket-time>
        <failed-drive-support-ticket-time type="integer">2</failed-drive-support-ticket-time>
        <failed-heartbeat-ticket-time type="integer">5</failed-heartbeat-ticket-time>
      </ticket-threshold>
      <default-ccvm-engine>
        <id type="integer">14</id>
        <name>BASIC</name>
        <vcpus type="integer">1</vcpus>
        <ram type="integer">2048</ram>
        <created-at type="dateTime">2018-12-26T13:20:37Z</created-at>
        <updated-at type="dateTime">2019-01-01T09:43:57Z</updated-at>
      </default-ccvm-engine>
    </general>
  </general>
  <security type="array">
    <security>
      <password-status>
        <password-experation-limit type="boolean">false</password-experation-limit>
        <password-history type="integer">8</password-history>
      </password-status>
      <vpsa-api-passthrough type="boolean">false</vpsa-api-passthrough>
      <dual-factor type="boolean">false</dual-factor>
    </security>
  </security>
  <vpsa type="array">
    <vpsa>
      <domain-name></domain-name>
      <recycle-bin>
        <days-in-recycle-bin type="integer">7</days-in-recycle-bin>
      </recycle-bin>
    </vpsa>
  </vpsa>
</response>
{
  "general": [
    {
      "domain_name": "cloud1",
      "support_tickets": {
        "method": "zendesk",
        "url": "https://zadarastorage123.zendesk.com",
        "username": "support@zadarastorage.com"
      },
      "zsnap_settings": {
        "method": "ftp",
        "data": {
          "server": "10.0.0.111",
          "user": "zsnap",
          "Max_allowed_mb": "102400",
          "Max_retain_mb": "81920"
        }
      },
      "cache_or_afa_meta_drives_settings": {
        "ssd_cache_max_usable_capacity_gb": 800,
        "allow_temporarily_set_ssds_as_afa_meta": null
      },
      "ticket_threshold": {
        "failed_drive_ticket_time": 34,
        "failed_drive_support_ticket_time": 2,
        "failed_heartbeat_ticket_time": 5
      },
      "default_ccvm_engine": {
        "id": 14,
        "name": "BASIC",
        "vcpus": 1,
        "ram": 2048,
        "created_at": "2018-12-26 13:20:37 UTC",
        "updated_at": "2019-01-01 09:43:57 UTC"
      }
    }
  ],
  "security": [
    {
      "password_status": {
        "password_experation_limit": false,
        "password_history": 8
      },
      "vpsa_api_passthrough": false,
      "dual_factor": false
    }
  ],
  "vpsa": [
    {
      "domain_name": null,
      "recycle_bin": {
        "days_in_recycle_bin": 7
      }
    }
  ]
}

Sets the default CCVM Engine.

POST /api/clouds/{cloud_name}/settings/set_ccvm_default_engine(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"engine_type":"vsa.baby"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/set_ccvm_default_engine.json'
engine_type String Required. CCVM Engine Type
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Request for changing default CCVM engine to vsa.small has been made</message>
</response>
{
  "status": "success",
  "message": "Request for changing default CCVM engine to vsa.small has been made"
}

Sets the protocol for remote region backend. (Default: iSER)

POST /api/clouds/{cloud_name}/settings/set_remote_region_backend_protocol(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"protocol":"iser"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/set_remote_region_backend_protocol.json'
protocol String - iser | iscsi Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Request for changing remote region backend protocol to iSCSI has been made</message>
</response>
{
  "status": "success",
  "message": "Request for changing remote region backend protocol to iSCSI has been made"
}

Sets the mount capacity alert threshold. (Default: 30GiB)

POST /api/clouds/{cloud_name}/settings/set_mount_capacity_alert_threshold(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"threshold":35}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/set_mount_capacity_alert_threshold.json'
threshold Integer Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Request for changing mount capacity alert threshold to 35 GiB has been made</message>
</response>
{
  "status": "success",
  "message": "Request for changing mount capacity alert threshold to 35 GiB has been made"
}

Sets SNMP

POST /api/clouds/{cloud_name}/settings/set_snmp(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"min_severity":"low","trap_recipient":"iser","proto_version":"v3","community":"public","security_level":"iser"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/set_snmp.json'
enabled Boolean
min_severity String - low | normal | high | urgent
trap_recipient String Required.
proto_version String Required.
community String Required.
security_level String - NoAuthNoPriv | AuthNoPriv | AuthPriv Required.
auth_proto String - MD5 | SHA-1 | SHA-2-224 | SHA-2-256 | SHA-2-384 | SHA2-2-512
auth_user String
auth_password String
privacy_proto String - DES | AES128 | AES192 | AES256 | 3DES
privacy_password String
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>SNMP configuration changed</message>
</response>
{
  "status": "success",
  "message": "SNMP configuration changed"
}

Gets all support tickets settings

GET /api/clouds/{cloud_name}/settings/get_tickets_settings(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/get_tickets_settings.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <tickets-settings>
    [{
      "myticket": {
        "comment": "comment",
        "expiration_date": "2025-12-31Z19:00",
        "user_email": "user@email.com",
        "rate_limit": "7"
      }
    }]
  </tickets-settings>
</response>
{
  "status": "success",
  "tickets_settings": "\n    [{\n      \"myticket\": {\n        \"comment\": \"comment\",\n        \"expiration_date\": \"2025-12-31Z19:00\",\n        \"user_email\": \"user@email.com\",\n        \"rate_limit\": \"7\"\n      }\n    }]\n  "
}

Create/edit support ticket settings. Overrides all previous ticket settings.

POST /api/clouds/{cloud_name}/settings/set_ticket_settings(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"message_id":"myticket","expiration_date":"2025-12-31 19:00","priority":"low","zsnap":"yes","to_user":"yes","rate_limit":5,"comment":"my comment"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/set_ticket_settings.json'
message_id String Required. Message id up to 120 characters
expiration_date Date(yyyy-mm-dd hh:mm) Support ticket suppression expiration date and time (UTC)
priority String - | low | normal | high | urgent Support ticket priority (empty string for default)
zsnap String - | yes | no | lite Support ticket zsnap (empty string for default)
to_user String - | yes | no Support ticket send to users (empty string for default)
rate_limit Integer Rate limit must be at least 1
comment String Required. Comment text up to 120 characters
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Ticket settings set</message>
</response>
{
  "status": "success",
  "message": "Ticket settings set"
}

Delete support ticket settings

DELETE /api/clouds/{cloud_name}/settings/delete_ticket_settings(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"message_id":"myticket"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/delete_ticket_settings.json'
message_id String Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Ticket settings deleted</message>
</response>
{
  "status": "success",
  "message": "Ticket settings deleted"
}

Gets all cloud upload endpoints including default endpoints

GET /api/clouds/{cloud_name}/settings/endpoints(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/endpoints.json?methods_requested=s3_aws,s3_zios,ftp'
methods_requested Array Upload methods requested
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
  <cloud-upload-endpoints type="array">
    <cloud-upload-endpoint>
      <endpoint-name>default_config_ep</endpoint-name>
      <endpoint-method>s3_aws</endpoint-method>
      <access-key>ACCESSKEY</access-key>
      <region>REGION</region>
    </cloud-upload-endpoint>
    <cloud-upload-endpoint>
      <endpoint-name>default_mag_ep</endpoint-name>
      <endpoint-method>s3_aws</endpoint-method>
      <access-key>ACCESSKEY</access-key>
      <region>REGION</region>
    </cloud-upload-endpoint>
    <cloud-upload-endpoint>
      <endpoint-name>default_zreport_ep</endpoint-name>
      <endpoint-method>s3_aws</endpoint-method>
      <access-key>ACCESSKEY</access-key>
      <region>REGION</region>
    </cloud-upload-endpoint>
    <cloud-upload-endpoint>
      <endpoint-name>default_zsnap_ep</endpoint-name>
      <endpoint-method>s3_aws</endpoint-method>
      <access-key>ACCESSKEY</access-key>
      <region>REGION</region>
    </cloud-upload-endpoint>
    <cloud-upload-endpoint>
      <endpoint-name>s3_zios_endpoint</endpoint-name>
      <endpoint-method>s3_zios</endpoint-method>
      <access-key>ACCESS</access-key>
      <endpoint>ENDPOINT</endpoint>
      <region>REGION</region>
    </cloud-upload-endpoint>
    <cloud-upload-endpoint>
      <endpoint-name>ftp_endpoint</endpoint-name>
      <endpoint-method>ftp</endpoint-method>
      <server>SERVER</server>
      <use-proxy>0</use-proxy>
      <user>USER</user>
    </cloud-upload-endpoint>
  </cloud-upload-endpoints>
</response>
{
  "status": "success",
  "cloud_upload_endpoints": [
    {
      "endpoint_name": "default_config_ep",
      "endpoint_method": "s3_aws",
      "access_key": "ACCESSKEY",
      "region": "REGION"
    },
    {
      "endpoint_name": "default_mag_ep",
      "endpoint_method": "s3_aws",
      "access_key": "ACCESSKEY",
      "region": "REGION"
    },
    {
      "endpoint_name": "default_zreport_ep",
      "endpoint_method": "s3_aws",
      "access_key": "ACCESSKEY",
      "region": "REGION"
    },
    {
      "endpoint_name": "default_zsnap_ep",
      "endpoint_method": "s3_aws",
      "access_key": "ACCESSKEY",
      "region": "REGION"
    },
    {
      "endpoint_name": "s3_zios_endpoint",
      "endpoint_method": "s3_zios",
      "access_key": "ACCESS",
      "endpoint": "ENDPOINT",
      "region": "REGION"
    },
    {
      "endpoint_name": "ftp_endpoint",
      "endpoint_method": "ftp",
      "server": "SERVER",
      "use_proxy": "0",
      "user": "USER"
    }
  ]
}

Creates a new cloud upload endpoint

POST /api/clouds/{cloud_name}/settings/endpoints(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"endpoint_name":"Endpoint1","endpoint_method":"s3_aws","config":"{"access_key": "ABCDEFGHIJKLMNOP", "secret_key": "xxxxxxxxxxxxxxxxxxxxxx", "region": "us-east-1"}"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/endpoints.json'
endpoint_name String Required. Endpoint name
endpoint_method String - s3_aws | s3_zios | ftp Required. Endpoint upload method
config Json Required. Endpoint configuration JSON, depending on the chosen upload method. For 's3_aws' and 's3_zios' methods, config should include 'access_key', 'secret_key' and 'region'. For 's3_zios' method, config should also include 'endpoint'. For 'ftp' method, config should include 'server', 'user', 'password', 'use_proxy' (boolean '0' or '1').
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully created endpoint ENDPOINT_NAME</message>
</response>
{
  "status": "success",
  "message": "Successfully created endpoint ENDPOINT_NAME"
}

Updates an existing cloud upload endpoint

PUT /api/clouds/{cloud_name}/settings/endpoints(.xml/json)
Example: curl -X PUT -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"endpoint_name":"Endpoint1","config":"{"access_key": "ABCDEFGHIJKLMNOP", "secret_key": "xxxxxxxxxxxxxxxxxxxxxx", "region": "us-east-1"}"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/endpoints.json'
endpoint_name String Required. Endpoint name
config Json Required. Endpoint configuration JSON, depending on the endpoint's upload method. For 's3_aws' and 's3_zios' methods, config should include 'access_key', 'secret_key' and 'region'. For 's3_zios' method, config should also include 'endpoint'. For 'ftp' method, config should include 'server', 'user', 'password', 'use_proxy' (boolean '0' or '1').
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully updated endpoint ENDPOINT_NAME</message>
</response>
{
  "status": "success",
  "message": "Successfully updated endpoint ENDPOINT_NAME"
}

Deletes an existing cloud upload endpoint. Make sure no VPSA Storage Array or VPSA Object Storage are using the cloud endpoint in their upload endpoints configurations.

DELETE /api/clouds/{cloud_name}/settings/endpoints(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"endpoint_name":"Endpoint1"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/endpoints.json'
endpoint_name String Required. Endpoint name
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully deleted endpoint ENDPOINT_NAME</message>
</response>
{
  "status": "success",
  "message": "Successfully deleted endpoint ENDPOINT_NAME"
}

Gets cloud endpoint configs by upload types

GET /api/clouds/{cloud_name}/settings/endpoints_config(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/endpoints_config.json?types=zsnap,mag,zreport,config'
types Array Required. Upload types
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <cloud-endpoint-configs type="array">
    <cloud-endpoint-config>
      <type>zsnap</type>
      <endpoint-name>default_zsnap_ep</endpoint-name>
      <endpoint-bucket>zadarastorage-support</endpoint-bucket>
    </cloud-endpoint-config>
    <cloud-endpoint-config>
      <type>mag</type>
      <endpoint-name>test_ftp</endpoint-name>
    </cloud-endpoint-config>
    <cloud-endpoint-config>
      <type>zreport</type>
      <endpoint-name>default_zreport_ep</endpoint-name>
      <endpoint-bucket>zadarastorage-reports</endpoint-bucket>
    </cloud-endpoint-config>
    <cloud-endpoint-config>
      <type>zreport</type>
      <endpoint-name>a</endpoint-name>
      <endpoint-bucket>a</endpoint-bucket>
    </cloud-endpoint-config>
    <cloud-endpoint-config>
      <type>config</type>
      <endpoint-name>default_config_ep</endpoint-name>
      <endpoint-bucket>zadarastorage-config-uploads</endpoint-bucket>
    </cloud-endpoint-config>
  </cloud-endpoint-configs>
</response>
{
  "status": "success",
  "cloud_endpoint_configs": [
    {
      "type": "zsnap",
      "endpoint_name": "default_zsnap_ep",
      "endpoint_bucket": "zadarastorage-support"
    },
    {
      "type": "mag",
      "endpoint_name": "test_ftp"
    },
    {
      "type": "zreport",
      "endpoint_name": "default_zreport_ep",
      "endpoint_bucket": "zadarastorage-reports"
    },
    {
      "type": "zreport",
      "endpoint_name": "a",
      "endpoint_bucket": "a"
    },
    {
      "type": "config",
      "endpoint_name": "default_config_ep",
      "endpoint_bucket": "zadarastorage-config-uploads"
    }
  ]
}

Creates cloud endpoints configurations for upload type

POST /api/clouds/{cloud_name}/settings/endpoints_config(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"type":"zsnap","endpoints_config":[{"endpoint_name":"default_mag_ep"},{"endpoint_name":"some_s3_endpoint""endpoint_bucket":"b"},{"endpoint_name":"some_ftp_endpoint"}]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/endpoints_config.json'
type String - zsnap | mag | zreport | config Required. Upload type
endpoints_config Array Required. Endpoints configurations to set for the upload type. Each configuration must specify endpoint name. S3 endpoints configurations must also specify bucket name. Up to 1 endpoint for zsnap type, and up to 3 endpoints for all other types.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully created endpoints configurations for upload type 'TYPE'</message>
</response>
{
  "status": "success",
  "message": "Successfully created endpoints configurations for upload type 'TYPE'"
}

Adds more cloud endpoints configurations for upload type

PUT /api/clouds/{cloud_name}/settings/endpoints_config(.xml/json)
Example: curl -X PUT -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"type":"zsnap","endpoints_config":[{"endpoint_name":"some_ftp_endpoint1"},{"endpoint_name":"some_s3_endpoint""endpoint_bucket":"b"},{"endpoint_name":"some_ftp_endpoint2"}]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/endpoints_config.json'
type String - zsnap | mag | zreport | config Required. Upload type
endpoints_config Array Required. Endpoints configurations to be added to the existing endpoints configurations for the upload type. Each configuration must specify endpoint name. S3 endpoints configurations must also specify bucket name. Up to 1 endpoint for zsnap type, and up to 2 endpoints for all other types.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully added endpoints configurations for upload type 'TYPE'</message>
</response>
{
  "status": "success",
  "message": "Successfully added endpoints configurations for upload type 'TYPE'"
}

Deletes an existing cloud endpoint configuration for upload type

DELETE /api/clouds/{cloud_name}/settings/endpoints_config(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"type":"mag","endpoint_name":"Endpoint1"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/endpoints_config.json'
type String - mag | zreport | config Required. Upload type
endpoint_name String Required. Endpoint name
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>Successfully deleted endpoint configuration for type 'TYPE'</message>
</response>
{
  "status": "success",
  "message": "Successfully deleted endpoint configuration for type 'TYPE'"
}

Gets Cloud Control IP Whitelisting status

GET /api/clouds/{cloud_name}/settings/cloud_control_ip_whitelist_status(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/cloud_control_ip_whitelist_status.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <ccvm-ip-whitelist-status>enabled</ccvm-ip-whitelist-status>
</response>
{
  "status": "success",
  "ccvm_ip_whitelist_status": "enabled"
}

Gets Cloud Control IP Whitelist entries

GET /api/clouds/{cloud_name}/settings/cloud_control_ip_whitelist_entries(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/cloud_control_ip_whitelist_entries.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <ccvm-ip-whitelist-entries type="array">
    <ccvm-ip-whitelist-entry>
      <comment>mycomment1</comment>
      <entry>1.2.3.4</entry>
      <id type="integer">24</id>
      <app>pp/cc</app>
    </ccvm-ip-whitelist-entry>
    <ccvm-ip-whitelist-entry>
      <comment>mycomment2</comment>
      <entry>1.2.3.5/33</entry>
      <id type="integer">25</id>
      <app>pp</app>
    </ccvm-ip-whitelist-entry>
    <ccvm-ip-whitelist-entry>
      <comment>mycomment3</comment>
      <entry>1.2.3.6/34</entry>
      <id type="integer">26</id>
      <app>cc</app>
    </ccvm-ip-whitelist-entry>
  </ccvm-ip-whitelist-entries>
</response>
{
  "status": "success",
  "ccvm_ip_whitelist_entries": [
    {
      "comment": "mycomment1",
      "entry": "1.2.3.4",
      "id": 24,
      "app": "pp/cc"
    },
    {
      "comment": "mycomment2",
      "entry": "1.2.3.5/33",
      "id": 25,
      "app": "pp"
    },
    {
      "comment": "mycomment3",
      "entry": "1.2.3.6/34",
      "id": 26,
      "app": "cc"
    }
  ]
}

Enable Cloud Control IP Whitelisting

POST /api/clouds/{cloud_name}/settings/enable_cloud_control_ip_whitelisting(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/enable_cloud_control_ip_whitelisting.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Disable Cloud Control IP Whitelisting

POST /api/clouds/{cloud_name}/settings/disable_cloud_control_ip_whitelisting(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -H "Content-Length: 0" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/disable_cloud_control_ip_whitelisting.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Add Cloud Control IP Whitelisting entries

POST /api/clouds/{cloud_name}/settings/add_cloud_control_ip_whitelisting_entries(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"entries":[{"ip_or_cidr":"1.2.3.4/32""app_access":"pp/cc""comment":"mycomment1"},{"ip_or_cidr":"1.2.3.5""app_access":"pp""comment":"mycomment2"},{"ip_or_cidr":"2001:0db8:85a3:0000:0000:8a2e:0370:7334""app_access":"cc""comment":"mycomment3"}]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/add_cloud_control_ip_whitelisting_entries.json'
entries Array Required. Add commas between each entry fields. ip_or_cidr: IPv4/IPv6 IP or CIDR. app_access: 'cc' (command center port 8888), 'pp' (provisioning portal ports 443,80) or 'pp/cc' (all of them). comment: up to 50 characters.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Update Cloud Control IP Whitelisting entries. Deletes existing entries and creates new ones with a different ID.

PUT /api/clouds/{cloud_name}/settings/update_cloud_control_ip_whitelisting_entries(.xml/json)
Example: curl -X PUT -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"entries":[{"id":"123""ip_or_cidr":"1.2.3.4/32""app_access":"pp/cc""comment":"mycomment1"},{"id":"124""ip_or_cidr":"1.2.3.5""app_access":"pp""comment":"mycomment2"},{"id":"125""ip_or_cidr":"2001:0db8:85a3:0000:0000:8a2e:0370:7334""app_access":"cc""comment":"mycomment3"}]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/update_cloud_control_ip_whitelisting_entries.json'
entries Array Required. Add commas between each entry fields. id: must be in quotes. ip_or_cidr: IPv4/IPv6 IP or CIDR. app_access: 'cc' (command center port 8888), 'pp' (provisioning portal ports 443,80) or 'pp/cc' (all of them). comment: up to 50 characters.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Delete Cloud Control IP Whitelisting entries

DELETE /api/clouds/{cloud_name}/settings/delete_cloud_control_ip_whitelisting_entries(.xml/json)
Example: curl -X DELETE -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"entries_ids":["123","124","125"]}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/delete_cloud_control_ip_whitelisting_entries.json'
entries_ids Array Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Sets the amount of days in which a VPSA will stay in recycle bin before purging.

POST /api/clouds/{cloud_name}/settings/vpsa_recycle_bin(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"purge_interval":7}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/vpsa_recycle_bin.json'
purge_interval Integer Required.
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
  <message>VPSA purge interval changed to 7 days</message>
</response>
{
  "status": "success",
  "message": "VPSA purge interval changed to 7 days"
}

Sets automatic drive replacement.

POST /api/clouds/{cloud_name}/settings/automatic_drive_replacement(.xml/json)
Example: curl -X POST -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"time":15}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/automatic_drive_replacement.json'
time Integer Time in minutes from drive failed state detection. (0 - disable automatic drive replacement)
Sample XML Response Sample JSON Response
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Set CCVM custom certificate

POST /api/clouds/{cloud_name}/settings/ccvm_cert(.xml/json)
Example: curl -X POST -H "X-Token: <token>" -F "files[ccvm_key]=@/tmp/ssl.key" -F "files[ccvm_certificate]=@/tmp/ssl.crt" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/ccvm_cert'
files[ccvm_key] File Required. Key file
files[ccvm_certificate] File Required. Crt file
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Update zadarastorage.com certificate

POST /api/clouds/{cloud_name}/settings/zadara_cert(.xml/json)
Example: curl -X POST -H "X-Token: <token>" -F "files[ssl_key]=@/tmp/ssl.key" -F "files[ssl_crt]=@/tmp/ssl.crt" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/zadara_cert'
files[ssl_key] File Required. Key file
files[ssl_crt] File Required. Crt file
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Update VPSAs Certificate

POST /api/clouds/{cloud_name}/settings/vpsa_cert(.xml/json)
Example: curl -X POST -H "X-Token: <token>" -F "files[ssl_key]=@/tmp/ssl.key" -F "files[ssl_crt]=@/tmp/ssl.crt" -F "ssl_update_certificate_on_all_vpsas=true" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/vpsa_cert'
files[ssl_key] File Required. Key file
files[ssl_crt] File Required. Crt file
type String Type of vpsa (default - storage array)
ssl_update_certificate_on_all_vpsas Boolean
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Get log level

GET /api/clouds/{cloud_name}/settings/log_level(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/log_level.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <log-level>info</log-level>
</response>
{
  "log_level": "info"
}

Set log level

PUT /api/clouds/{cloud_name}/settings/log_level(.xml/json)
Example: curl -X PUT -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"log_level":"debug"}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/log_level.json'
log_level String - debug | info Required. The new log level to set.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}

Get Remote Support Access State

GET /api/clouds/{cloud_name}/settings/remote_support_access(.xml/json)
Example: curl -X GET -H "Content-Type: application/json" -H "X-Token: <token>" 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/remote_support_access.json'
No parameters available for this command.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <remote-support-access>False</remote-support-access>
</response>
{
  "remote_support_access": "False"
}

Set Remote Support Access State

PUT /api/clouds/{cloud_name}/settings/remote_support_access(.xml/json)
Example: curl -X PUT -H "Content-Type: application/json" -H "X-Token: <token>" -d '{"enabled":true}' 'https://<command-center-ip>:8888/api/clouds/{cloud_name}/settings/remote_support_access.json'
enabled Boolean Required. Remote Support Access Enabled.
Sample XML Response Sample JSON Response
<?xml version="1.0" encoding="UTF-8"?>
<response>
  <status>success</status>
</response>
{
  "status": "success"
}