Data Center Related Interfaces

CreateZone

API Request

URLs
POST zstack/v1/zones
Headers
Authorization: OAuth the-session-uuid
Body
{
"params": {
"name": "TestZone",
"description": "test zone"
  },
"systemTags": [],
"userTags": []
}
Note: In the above example, systemTags and userTags fields can be omitted. They are listed to indicate that these two fields can be included in the body.
Curl Example
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"TestZone","description":"test zone"}}' \
http://localhost:8080/zstack/v1/zones
Parameter List
Name Type Location Description Allowed Values Starting Version
name String body (contained in params structure) Resource name 0.6
description (optional) String body (contained in params structure) Resource description 0.6
resourceUuid (optional) String body (contained in params structure) User specified resource uuid 0.6
systemTags (optional) List body System tag 0.6
userTags (optional) List body User tag 0.6

API Response

Response Example

{
"inventory": {
"uuid": "0d26522305c34d07b5661ccda62053c0",
"name": "TestZone",
"description": "Test",
"state": "Enabled",
"type": "zstack",
"createDate": "Jun 7, 2017 9:20:28 PM",
"lastOpDate": "Jun 7, 2017 9:20:28 PM"
  }
}
Name Type Description Starting Version
error ErrorCode Error code. If not null, the operation failed. If null, the operation succeeded. See details error 0.6
inventory ZoneInventory See details inventory 0.6
#error
Name Type Description Starting Version
code String Error code number, globally unique identifier of the error, e.g. SYS.1000, HOST.1001 0.6
description String Brief description of the error 0.6
details String Detailed error information 0.6
elaboration String Reserved field, default is null 0.6
opaque LinkedHashMap Reserved field, default is null 0.6
cause ErrorCode Root cause, the error that caused the current error. If there is no original error, this field is null 0.6
#inventory
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 0.6
name String Resource name 0.6
description String Resource description 0.6
state String The resource state. 0.6
type String The resource type. 0.6
createDate Timestamp Creation time 0.6
lastOpDate Timestamp Last modification time 0.6

SDK Examples

Java SDK
CreateZoneAction action = new CreateZoneAction();
action.name = "TestZone";
action.description = "test zone";
action.sessionId = "982a09118de64ef7a9051fde346270c5";
CreateZoneAction.Result res = action.call();
Python SDK
CreateZoneAction action = CreateZoneAction()
action.name = "TestZone"
action.description = "test zone"
action.sessionId = "79e260dca17b4bdf9b7d7b4e150883df"
CreateZoneAction.Result res = action.call()

DeleteZone

API Request

URLs
DELETE zstack/v1/zones/{uuid}?deleteMode={deleteMode}
Headers
Authorization: OAuth the-session-uuid
Curl Example
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 05fc0a34be264877a9dc8dfb5f90d619" \
-X DELETE http://localhost:8080/zstack/v1/zones/d3483ca440334af3acc09d8631e814c6?deleteMode=Permissive
Parameter List
Name Type Location Description Allowed Values Starting Version
uuid String url Resource UUID, uniquely identifies the resource 0.6
deleteMode (optional) String body
  • Permissive: If an error occurs during deletion or deletion is not allowed, the virtualization platform will stop the deletion operation; in this case, the error code containing the failure reason will be returned.
  • Enforcing: The virtualization platform will ignore all errors and permissions and directly delete the resource; in this case, the deletion operation will always succeed.
0.6
systemTags (optional) List body System tag 0.6
userTags (optional) List body User tag 0.6

API Response

On success, this API returns an empty JSON structure {}. On error, the returned JSON structure contains an error field, for example:

{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
    }
}

SDK Examples

Java SDK
DeleteZoneAction action = new DeleteZoneAction();
action.uuid = "8987020fccd14191a5a89dda6f3db81e";
action.deleteMode = "Permissive";
action.sessionId = "835b1b72c4554a7e92c425ad9eaebc6d";
DeleteZoneAction.Result res = action.call();
Python SDK
DeleteZoneAction action = DeleteZoneAction()
action.uuid = "a4bcb439c99a42e197cac90be83e706e"
action.deleteMode = "Permissive"
action.sessionId = "6eaf02e52c884e378a3730ce4267d83a"
DeleteZoneAction.Result res = action.call()

QueryZone

API Request

URLs
GET zstack/v1/zones
GET zstack/v1/zones/{uuid}
Headers
Authorization: OAuth the-session-uuid

Curl Example

curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth e556a104ae874303897ac67d83564086" \
-X GET http://localhost:8080/zstack/v1/zones?q=name=TestZone&q=state=Enabled
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth 7e9fd15bba0d43a2b1a7212c85fb8787" \
-X GET http://localhost:8080/zstack/v1/zones/9276d05c7d7545d6b61bfc50f017b86c

Queryable Fields

Run the CLI command tool, enter QueryZone and press Tab to view all queryable fields and resource names that can be queried across tables.

API Response

Response Example
{
"inventories": [
    {
"uuid": "a58fb4240ed04129a0896b565f24a9df",
"name": "TestZone",
"description": "Test",
"state": "Enabled",
"type": "zstack",
"createDate": "Jun 7, 2017 9:20:29 PM",
"lastOpDate": "Jun 7, 2017 9:20:29 PM"
    }
  ]
}
Name Type Description Starting Version
error ErrorCode Error code. If not null, the operation failed. If null, the operation succeeded. See details error 0.6
inventories List See details inventories 0.6
#error
Name Type Description Starting Version
code String Error code number, globally unique identifier of the error, e.g. SYS.1000, HOST.1001 0.6
description String Brief description of the error 0.6
details String Detailed error information 0.6
elaboration String Reserved field, default is null 0.6
opaque LinkedHashMap Reserved field, default is null 0.6
cause ErrorCode Root cause, the error that caused the current error. If there is no original error, this field is null 0.6
#inventories
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 0.6
name String Resource name 0.6
description String Resource description 0.6
state String The resource state. 0.6
type String The resource type. 0.6
createDate Timestamp Creation time 0.6
lastOpDate Timestamp Last modification time 0.6

SDK Examples

Java SDK
QueryZoneAction action = new QueryZoneAction();
action.conditions = asList("name=TestZone","state=Enabled");
action.sessionId = "608079b963b54e8a9aa3a2291adae89f";
QueryZoneAction.Result res = action.call();
Python SDK
QueryZoneAction action = QueryZoneAction()
action.conditions = ["name=TestZone","state=Enabled"]
action.sessionId = "be89929b7fd34d25a5c1a7f47f4490cd"
QueryZoneAction.Result res = action.call()

UpdateZone

Update the name, description, system tags, or user tags of a Data Center.

API Request

URLs
PUT zstack/v1/zones/{uuid}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
"updateZone": {
"name": "TestZone2",
"description": "test second zone"
  },
"systemTags": [],
"userTags": []
}
Note: In the above example, systemTags and userTags fields can be omitted. They are listed to indicate that these two fields can be included in the body.
Curl Example
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateZone":{"name":"TestZone2","description":"test second zone"}}' \
http://localhost:8080/zstack/v1/zones/3fc9a2d76b043ead90c537561edcb50e/actions
Parameter List
Name Type Location Description Allowed Values Starting Version
name (optional) String body (contained in updateZone structure) Resource name 0.6
description (optional) String body (contained in updateZone structure) Resource description 0.6
uuid String url Resource UUID, uniquely identifies the resource 0.6
systemTags (optional) List body System tag 0.6
userTags (optional) List body User tag 0.6

API Response

Response Example
{
"inventory": {
"uuid": "eb5d94d030e84fb286c4f281520b163b",
"name": "TestZone",
"description": "Test",
"state": "Enabled",
"type": "zstack",
"createDate": "Jun 7, 2017 9:20:45 PM",
"lastOpDate": "Jun 7, 2017 9:20:45 PM"
  }
}
Name Type Description Starting Version
error ErrorCode Error code. If not null, the operation failed. If null, the operation succeeded. See details error 0.6
inventory ZoneInventory See details inventory 0.6
#error
Name Type Description Starting Version
code String Error code number, globally unique identifier of the error, e.g. SYS.1000, HOST.1001 0.6
description String Brief description of the error 0.6
details String Detailed error information 0.6
elaboration String Reserved field, default is null 0.6
opaque LinkedHashMap Reserved field, default is null 0.6
cause ErrorCode Root cause, the error that caused the current error. If there is no original error, this field is null 0.6
#inventory
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 0.6
name String Resource name 0.6
description String Resource description 0.6
state String The resource state. 0.6
type String The resource type. 0.6
createDate Timestamp Creation time 0.6
lastOpDate Timestamp Last modification time 0.6

SDK Examples

Java SDK
UpdateZoneAction action = new UpdateZoneAction();
action.name = "TestZone2";
action.description = "test second zone";
action.uuid = "e676dc07cbad45ccb96fd6033ed3c72f";
action.sessionId = "14b97d8a960b4c758389f6b6f5930210";
UpdateZoneAction.Result res = action.call();
Python SDK
UpdateZoneAction action = UpdateZoneAction()
action.name = "TestZone2"
action.description = "test second zone"
action.uuid = "20ab7e6d18134e84ac5322741be661ca"
action.sessionId = "8b46ebd366c54b808c63812ecef9fff0"
UpdateZoneAction.Result res = action.call()

ChangeZoneState

API Request

URLs
PUT zstack/v1/zones/{uuid}/actions
Headers
Authorization: OAuth the-session-uuid
Body
{
"changeZoneState": {
"stateEvent": "enable"
  },
"systemTags": [],
"userTags": []
}
Note: In the above example, systemTags and userTags fields can be omitted. They are listed to indicate that these two fields can be included in the body.

Curl Example

curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changeZoneState":{"stateEvent":"enable"}}' \
http://localhost:8080/zstack/v1/zones/af28b8e014ba35619ab68739fe72c2a3/actions
Parameter List
Name Type Location Description Allowed Values Starting Version
uuid String url Resource UUID, uniquely identifies the resource 0.6
stateEvent String body (contained in changeZoneState structure) State trigger event
  • enable
  • disable
0.6
systemTags (optional) List body System tag 0.6
userTags (optional) List body User tag 0.6

API Response

Response Example
{
"inventory": {
"uuid": "5ea6fdd8a3a24fa2b17b1b89ad29da6b",
"name": "TestZone",
"description": "Test",
"state": "Enabled",
"type": "zstack",
"createDate": "Jun 7, 2017 9:21:08 PM",
"lastOpDate": "Jun 7, 2017 9:21:08 PM"
  }
}
Name Type Description Starting Version
error ErrorCode Error code. If not null, the operation failed. If null, the operation succeeded. See details error 0.6
inventory ZoneInventory See details inventory 0.6
#error
Name Type Description Starting Version
code String Error code number, globally unique identifier of the error, e.g. SYS.1000, HOST.1001 0.6
description String Brief description of the error 0.6
details String Detailed error information 0.6
elaboration String Reserved field, default is null 0.6
opaque LinkedHashMap Reserved field, default is null 0.6
cause ErrorCode Root cause, the error that caused the current error. If there is no original error, this field is null 0.6
#inventory
Name Type Description Starting Version
uuid String Resource UUID, uniquely identifies the resource 0.6
name String Resource name 0.6
description String Resource description 0.6
state String The resource state. 0.6
type String The resource type. 0.6
createDate Timestamp Creation time 0.6
lastOpDate Timestamp Last modification time 0.6

SDK Examples

Java SDK
ChangeZoneStateAction action = new ChangeZoneStateAction();
action.uuid = "61defcb978894aec8839a099bd0eb1a2";
action.stateEvent = "enable";
action.sessionId = "166c291cd367487c9032f4f23531863c";
ChangeZoneStateAction.Result res = action.call();
Python SDK
ChangeZoneStateAction action = ChangeZoneStateAction()
action.uuid = "8feaadcae6f847a7b7fe707d150b7fef"
action.stateEvent = "enable"
action.sessionId = "b6988f47cb2e4a13abe7b2116d3a2a78"
ChangeZoneStateAction.Result res = action.call()
API Reference | ZStack ZSphere · ZVF | ZStack Resource Center