工单管理相关接口
创建工单(CreateTicket)
API请求
URLs
POST zstack/v1/ticketsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"name": "this is a new ticket",
"requests": [
{
"requestName": "create vm",
"apiName": "org.zstack.header.vm.APICreateVmInstanceMsg",
"executeTimes": 1.0,
"apiBody": {
"name": "vm name",
"instanceOfferingUuid": "46466abc6c8931fdaab7a8df43e4f175",
"imageUuid": "43e997234af63863b28a5e9987e1d122",
"l3NetworkUuids": [
"8b4ddd66c7ba30598cdc7ab835e04f96"
],
"strategy": "InstantStart",
"timeout": -1.0,
"headers": {},
"id": "a9a029dba17842939f0227420d197121",
"createdTime": 1.545993580705E12
}
}
],
"accountSystemType": "iam2",
"accountSystemContext": {
"projectUuid": "28c9a199e3e842d28c9805eb89be56cb",
"virtualIDUuid": "1c255722caf34cb888b57d11a744248c"
}
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"name":"this is a new ticket","requests":[{"requestName":"create vm","apiName":"org.zstack.header.vm.APICreateVmInstanceMsg","executeTimes":1.0,"apiBody":{"name":"vm name","instanceOfferingUuid":"46466abc6c8931fdaab7a8df43e4f175","imageUuid":"43e997234af63863b28a5e9987e1d122","l3NetworkUuids":["8b4ddd66c7ba30598cdc7ab835e04f96"],"strategy":"InstantStart","timeout":-1.0,"headers":{},"id":"590ee3ceb92248e08967bf413de91e26","createdTime":1.545993580708E12}}],"accountSystemType":"iam2","accountSystemContext":{"projectUuid":"a497d61cc2d848f2a1101ebd7bc7362f","virtualIDUuid":"c0df7a66330f4cc3b83d1c3695aac291"}}}' http://localhost:8080/zstack/v1/tickets参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| name | String | body(包含在params结构中) | 资源名称 | 3.0.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 3.0.0 | |
| requests | List | body(包含在params结构中) | 3.0.0 | ||
| flowCollectionUuid (可选) | String | body(包含在params结构中) | 3.0.0 | ||
| accountSystemType | String | body(包含在params结构中) | 3.0.0 | ||
| accountSystemContext | Object | body(包含在params结构中) | 3.0.0 | ||
| resourceUuid (可选) | String | body(包含在params结构中) | 3.0.0 | ||
| systemTags (可选) | List | body | 3.0.0 | ||
| userTags (可选) | List | body | 3.0.0 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
CreateTicketAction action = new CreateTicketAction();
action.name = "this is a new ticket";
action.requests = asList([requestName:create vm, apiName:org.zstack.header.vm.APICreateVmInstanceMsg, executeTimes:1.0, apiBody:[name:vm name, instanceOfferingUuid:46466abc6c8931fdaab7a8df43e4f175, imageUuid:43e997234af63863b28a5e9987e1d122, l3NetworkUuids:[8b4ddd66c7ba30598cdc7ab835e04f96], strategy:InstantStart, timeout:-1.0, headers:[:], id:0132535043b04abf9f56eb9a1fb4c87b, createdTime:1.545993580749E12]]);
action.accountSystemType = "iam2";
action.accountSystemContext = [projectUuid:01ce66b048c5477195b5d6e43507239c, virtualIDUuid:cd120a6130884e4ca80a01b10e59de86];
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateTicketAction.Result res = action.call();Python
SDK
CreateTicketAction action = CreateTicketAction()
action.name = "this is a new ticket"
action.requests = [[requestName:create vm, apiName:org.zstack.header.vm.APICreateVmInstanceMsg, executeTimes:1.0, apiBody:[name:vm name, instanceOfferingUuid:46466abc6c8931fdaab7a8df43e4f175, imageUuid:43e997234af63863b28a5e9987e1d122, l3NetworkUuids:[8b4ddd66c7ba30598cdc7ab835e04f96], strategy:InstantStart, timeout:-1.0, headers:[:], id:379419159124407c903a2b3f13ca6f96, createdTime:1.54599358075E12]]]
action.accountSystemType = "iam2"
action.accountSystemContext = [projectUuid:629c222d0b834ec3aa3af9f5a0e5d986, virtualIDUuid:bf3198f5680341ac88f54d59e94ad7ab]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateTicketAction.Result res = action.call()更新工单请求(UpdateTicketRequest)
API请求
URLs
PUT zstack/v1/tickets/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateTicketRequest": {
"requests": [
{
"requestName": "create vm",
"apiName": "org.zstack.header.vm.APICreateVmInstanceMsg",
"executeTimes": 1.0,
"apiBody": {
"name": "vm name",
"instanceOfferingUuid": "dba186c0f4e73c8b853e36b37a028761",
"imageUuid": "a3688b0adaaf3745b9919d6bcbf374b1",
"l3NetworkUuids": [
"cc68b29962063148a2b5434d434f1f90"
],
"strategy": "InstantStart",
"timeout": -1.0,
"headers": {},
"id": "779c0969ca40422a9f371710c245e271",
"createdTime": 1.564025557712E12
}
}
]
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateTicketRequest":{"requests":[{"requestName":"create vm","apiName":"org.zstack.header.vm.APICreateVmInstanceMsg","executeTimes":1.0,"apiBody":{"name":"vm name","instanceOfferingUuid":"dba186c0f4e73c8b853e36b37a028761","imageUuid":"a3688b0adaaf3745b9919d6bcbf374b1","l3NetworkUuids":["cc68b29962063148a2b5434d434f1f90"],"strategy":"InstantStart","timeout":-1.0,"headers":{},"id":"151dc242428a4b39a81a9b31712e7f09","createdTime":1.564025557718E12}}]}}' http://localhost:8080/zstack/v1/tickets/3d7955e800593abcb49e89c372d6a5ce/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.0.0 | |
| requests | List | body(包含在updateTicketRequest结构中) | 3.0.0 | ||
| systemTags (可选) | List | body | 3.0.0 | ||
| userTags (可选) | List | body | 3.0.0 |
API返回
返回示例
{
"inventory": {
"uuid": "14b4cced263d4e0b8511292980c7984f",
"name": "ticket",
"description": "ticket description",
"status": "IntermediateApproved",
"request": [
{
"requestName": "create vm",
"apiName": "org.zstack.header.vm.APICreateVmInstanceMsg",
"executeTimes": 1.0,
"apiBody": {
"name": "vm name",
"instanceOfferingUuid": "c14ffce45a924c7c89b29b472b0cc6a5",
"imageUuid": "21bc6910199d44b3bbd0e336bb88f424",
"l3NetworkUuids": [
"ff4916c36d9a4c1683c20e5a22ceceb7"
],
"strategy": "InstantStart",
"timeout": -1.0,
"headers": {},
"id": "bde85ab4eb754339bc6bb42623097c56",
"createdTime": 1.564025557751E12
}
}
],
"accountSystemType": "iam2",
"ticketTypeUuid": "3b933e9aaf2d49b9a3dcf0c92867790f",
"accountSystemContext": {
"projectUuid": "2294a0edf109447bafa802bb73b29cd3",
"virtualIDUuid": "178c834b9bc84bac9e77460b42eb3494"
},
"flowCollectionUuid": "9fbbac8054d54f0490438eaaba3e1cf8"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.0.0 |
| inventory | TicketInventory | 详情参考inventory | 3.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.0.0 |
| description | String | 错误的概要描述 | 3.0.0 |
| details | String | 错误的详细信息 | 3.0.0 |
| elaboration | String | 保留字段,默认为null | 3.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| accountSystemType | String | 3.0.0 | |
| ticketTypeUuid | String | 工单类型UUID | 3.6.0 |
| accountSystemContext | Object | 3.0.0 | |
| currentFlowUuid | String | 3.0.0 | |
| flowCollectionUuid | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| status | TicketStatus | 详情参考status | 3.0.0 |
| request | List | 详情参考request | 3.0.0 |
#status
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 3.0.0 |
| ordinal | int | 3.0.0 |
#request
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| requestName | String | 3.0.0 | |
| apiName | String | 3.0.0 | |
| executeTimes | int | 3.0.0 | |
| apiBody | Object | 3.0.0 |
SDK示例
Java
SDK
UpdateTicketRequestAction action = new UpdateTicketRequestAction();
action.uuid = "3d7955e800593abcb49e89c372d6a5ce";
action.requests = asList([requestName:create vm, apiName:org.zstack.header.vm.APICreateVmInstanceMsg, executeTimes:1.0, apiBody:[name:vm name, instanceOfferingUuid:dba186c0f4e73c8b853e36b37a028761, imageUuid:a3688b0adaaf3745b9919d6bcbf374b1, l3NetworkUuids:[cc68b29962063148a2b5434d434f1f90], strategy:InstantStart, timeout:-1.0, headers:[:], id:ac92123f5b9144159389b4d3d5e95fcf, createdTime:1.564025557873E12]]);
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateTicketRequestAction.Result res = action.call();Python
SDK
UpdateTicketRequestAction action = UpdateTicketRequestAction()
action.uuid = "3d7955e800593abcb49e89c372d6a5ce"
action.requests = [[requestName:create vm, apiName:org.zstack.header.vm.APICreateVmInstanceMsg, executeTimes:1.0, apiBody:[name:vm name, instanceOfferingUuid:dba186c0f4e73c8b853e36b37a028761, imageUuid:a3688b0adaaf3745b9919d6bcbf374b1, l3NetworkUuids:[cc68b29962063148a2b5434d434f1f90], strategy:InstantStart, timeout:-1.0, headers:[:], id:2be0f869588b4051907cd550a9913683, createdTime:1.564025557879E12]]]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateTicketRequestAction.Result res = action.call()修改工单状态(ChangeTicketStatus)
API请求
URLs
PUT zstack/v1/tickets/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changeTicketStatus": {
"statusEvent": "approve",
"comment": "this is the comment for change status operation"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changeTicketStatus":{"statusEvent":"approve","comment":"this is the comment for change status operation"}}' http://localhost:8080/zstack/v1/tickets/e9377476db3f375bbff78dc3b9204f00/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.0.0 | |
| statusEvent | TicketStatusEvent | body(包含在changeTicketStatus结构中) |
|
3.0.0 | |
| comment (可选) | String | body(包含在changeTicketStatus结构中) | 3.0.0 | ||
| systemTags (可选) | List | body | 3.0.0 | ||
| userTags (可选) | List | body | 3.0.0 |
API返回
返回示例
{
"inventory": {
"uuid": "f4483251fdfd48cdae0dbb966a2652c9",
"name": "ticket",
"description": "ticket description",
"status": "IntermediateApproved",
"request": [
{
"requestName": "create vm",
"apiName": "org.zstack.header.vm.APICreateVmInstanceMsg",
"executeTimes": 1.0,
"apiBody": {
"name": "vm name",
"instanceOfferingUuid": "e539401d4cf74a6c93b173b9fa01d4e6",
"imageUuid": "16e0a61a2ca145eaaae6c7e9ef72ae31",
"l3NetworkUuids": [
"0fbf9d6545e6480790ee9b2f7da59f65"
],
"strategy": "InstantStart",
"timeout": -1.0,
"headers": {},
"id": "3f1b84f2f3ca453caf3086625d57eff5",
"createdTime": 1.56402555717E12
}
}
],
"accountSystemType": "iam2",
"ticketTypeUuid": "3b933e9aaf2d49b9a3dcf0c92867790f",
"accountSystemContext": {
"projectUuid": "21423d5537cc4891b33745b3ad9045f8",
"virtualIDUuid": "1470a380fe454b4298ba178245aa499c"
},
"flowCollectionUuid": "6aa051e47de74658885bca987b9c4a35"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.0.0 |
| inventory | TicketInventory | 详情参考inventory | 3.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.0.0 |
| description | String | 错误的概要描述 | 3.0.0 |
| details | String | 错误的详细信息 | 3.0.0 |
| elaboration | String | 保留字段,默认为null | 3.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| accountSystemType | String | 3.0.0 | |
| ticketTypeUuid | String | 工单类型UUID | 3.6.0 |
| accountSystemContext | Object | 3.0.0 | |
| currentFlowUuid | String | 3.0.0 | |
| flowCollectionUuid | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| status | TicketStatus | 详情参考status | 3.0.0 |
| request | List | 详情参考request | 3.0.0 |
#status
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 3.0.0 |
| ordinal | int | 3.0.0 |
#request
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| requestName | String | 3.0.0 | |
| apiName | String | 3.0.0 | |
| executeTimes | int | 3.0.0 | |
| apiBody | Object | 3.0.0 |
SDK示例
Java
SDK
ChangeTicketStatusAction action = new ChangeTicketStatusAction();
action.uuid = "e9377476db3f375bbff78dc3b9204f00";
action.statusEvent = "approve";
action.comment = "this is the comment for change status operation";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ChangeTicketStatusAction.Result res = action.call();Python
SDK
ChangeTicketStatusAction action = ChangeTicketStatusAction()
action.uuid = "e9377476db3f375bbff78dc3b9204f00"
action.statusEvent = "approve"
action.comment = "this is the comment for change status operation"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ChangeTicketStatusAction.Result res = action.call()查询工单(QueryTicket)
API请求
URLs
GET zstack/v1/ticketsGET zstack/v1/tickets/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/tickets?q=uuid=b17f50a117f0320588b55c24947a5fbfcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/tickets/dc7a48ed388b3a2da9939c4e84151d05可查询字段
运行CLI命令行工具,输入QueryTicket并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "b891de634d914b93957e2824c6297295",
"name": "ticket",
"description": "ticket description",
"status": "IntermediateApproved",
"request": [
{
"requestName": "create vm",
"apiName": "org.zstack.header.vm.APICreateVmInstanceMsg",
"executeTimes": 1.0,
"apiBody": {
"name": "vm name",
"instanceOfferingUuid": "8166c9b945954375b7bf649fd734b63d",
"imageUuid": "da8c8c3174704a2eac160f0c9c373a3c",
"l3NetworkUuids": [
"0858e5fd17524673bbbcb8f275d45c86"
],
"strategy": "InstantStart",
"timeout": -1.0,
"headers": {},
"id": "8f9fbb135562492e8f713b913334b7fb",
"createdTime": 1.564025557548E12
}
}
],
"accountSystemType": "iam2",
"ticketTypeUuid": "3b933e9aaf2d49b9a3dcf0c92867790f",
"accountSystemContext": {
"projectUuid": "92594abfcbd34543b38a793b004f97ba",
"virtualIDUuid": "fc9c42f94a194a4e9718fa764dcc5599"
},
"flowCollectionUuid": "2719925626f3464787071d4ba22f9cc7"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.0.0 |
| inventories | List | 详情参考inventories | 3.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.0.0 |
| description | String | 错误的概要描述 | 3.0.0 |
| details | String | 错误的详细信息 | 3.0.0 |
| elaboration | String | 保留字段,默认为null | 3.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.0.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| accountSystemType | String | 3.0.0 | |
| ticketTypeUuid | String | 工单类型UUID | 3.6.0 |
| accountSystemContext | Object | 3.0.0 | |
| currentFlowUuid | String | 3.0.0 | |
| flowCollectionUuid | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| status | TicketStatus | 详情参考status | 3.0.0 |
| request | List | 详情参考request | 3.0.0 |
#status
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 3.0.0 |
| ordinal | int | 3.0.0 |
#request
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| requestName | String | 3.0.0 | |
| apiName | String | 3.0.0 | |
| executeTimes | int | 3.0.0 | |
| apiBody | Object | 3.0.0 |
SDK示例
Java
SDK
QueryTicketAction action = new QueryTicketAction();
action.conditions = asList("uuid=e397806ebbe0376b96d7c857e06b9714");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryTicketAction.Result res = action.call();Python
SDK
QueryTicketAction action = QueryTicketAction()
action.conditions = ["uuid=0198e730d1dc334da8aab9b3a219ba35"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryTicketAction.Result res = action.call()查询归档的工单(QueryArchiveTicket)
API请求
URLs
GET zstack/v1/tickets/archivesHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/tickets/archives可查询字段
运行CLI命令行工具,输入QueryArchiveTicket并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
QueryArchiveTicketAction action = new QueryArchiveTicketAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryArchiveTicketAction.Result res = action.call();Python
SDK
QueryArchiveTicketAction action = QueryArchiveTicketAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryArchiveTicketAction.Result res = action.call()查询工单历史(QueryTicketHistory)
API请求
URLs
GET zstack/v1/tickets/historiesGET zstack/v1/tickets/histories/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/tickets/histories?curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/tickets/histories/2cbcaa4913f73d968a9b075a1607bbee可查询字段
运行CLI命令行工具,输入QueryTicketHistory并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"fromStatus": "Pending",
"toStatus": "IntermediateApproved",
"comment": "approve ticket",
"operationContextType": "StatusChanged",
"operationContext": {
"requestResults": [
{
"requestName": "org.zstack.header.vm.APICreateVmInstanceMsg",
"successTimes": 1.0,
"failureTimes": 0.0,
"errors": []
}
]
},
"operatorUuid": "f2bf860263bc3856b0c50d712b0d4b7b",
"createDate": "Dec 28, 2018 6:38:12 PM",
"lastOpDate": "Dec 28, 2018 6:38:12 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.0.0 |
| inventories | List | 详情参考inventories | 3.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.0.0 |
| description | String | 错误的概要描述 | 3.0.0 |
| details | String | 错误的详细信息 | 3.0.0 |
| elaboration | String | 保留字段,默认为null | 3.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.0.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| ticketUuid | String | 3.0.0 | |
| comment | String | 3.0.0 | |
| operationContextType | String | 3.0.0 | |
| operationContext | LinkedHashMap | 3.0.0 | |
| operatorType | String | 3.0.0 | |
| operatorUuid | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| fromStatus | TicketStatus | 详情参考fromStatus | 3.0.0 |
| toStatus | TicketStatus | 详情参考toStatus | 3.0.0 |
#fromStatus
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 3.0.0 |
| ordinal | int | 3.0.0 |
#toStatus
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| name | String | 资源名称 | 3.0.0 |
| ordinal | int | 3.0.0 |
SDK示例
Java
SDK
QueryTicketHistoryAction action = new QueryTicketHistoryAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryTicketHistoryAction.Result res = action.call();Python
SDK
QueryTicketHistoryAction action = QueryTicketHistoryAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryTicketHistoryAction.Result res = action.call()创建工单流程(CreateIAM2TickFlowCollection)
API请求
URLs
POST zstack/v1/tickets/flow-collectionsHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"flows": [
{
"name": "flow1",
"approverUuid": "1c4db59a73b63f968889764bcb2bae9d"
},
{
"name": "flow2",
"approverUuid": "eb9dc5050030323281c255864ca6c633"
}
],
"projectUuid": "bdd993eb57c13134967b15ed38ba33c4",
"name": "flow collection",
"description": "flow collection description",
"isDefault": false
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"flows":[{"name":"flow1","approverUuid":"1c4db59a73b63f968889764bcb2bae9d"},{"name":"flow2","approverUuid":"eb9dc5050030323281c255864ca6c633"}],"projectUuid":"bdd993eb57c13134967b15ed38ba33c4","name":"flow collection","description":"flow collection description","isDefault":false}}' http://localhost:8080/zstack/v1/tickets/flow-collections参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| flows (可选) | List | body(包含在params结构中) | 3.0.0 | ||
| name | String | body(包含在params结构中) | 资源名称 | 3.0.0 | |
| description(可选) | String | body(包含在params结构中) | 资源的详细描述 | 3.0.0 | |
| isDefault (可选) | Boolean | body(包含在params结构中) | 3.0.0 | ||
| resourceUuid (可选) | String | body(包含在params结构中) | 3.0.0 | ||
| systemTags (可选) | List | body | 3.0.0 | ||
| userTags (可选) | List | body | 3.0.0 | ||
| projectUuid | String | body(包含在params结构中) | 3.0.0 |
API返回
返回示例
{
"inventory": {
"state": "Enabled",
"status": "Valid",
"lastOpDate": "Dec 28, 2018 6:50:31 PM",
"isDefault": true,
"flows": [
{
"name": "flow name",
"description": "flow description",
"flowContextType": "iam2",
"createDate": "Dec 28, 2018 6:50:31 PM",
"lastOpDate": "Dec 28, 2018 6:50:31 PM",
"collectionUuid": "1dffd5fae83f3f55be42c56a0c2b266b"
}
]
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.0.0 |
| inventory | TicketFlowCollectionInventory | 详情参考inventory | 3.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.0.0 |
| description | String | 错误的概要描述 | 3.0.0 |
| details | String | 错误的详细信息 | 3.0.0 |
| elaboration | String | 保留字段,默认为null | 3.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| state | String | 3.0.0 | |
| status | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| isDefault | Boolean | 3.0.0 | |
| flows | List | 详情参考flows | 3.0.0 |
#flows
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| parentFlowUuid | String | 3.0.0 | |
| flowContext | String | 3.0.0 | |
| flowContextType | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| collectionUuid | String | 3.0.0 |
SDK示例
Java
SDK
CreateIAM2TickFlowCollectionAction action = new CreateIAM2TickFlowCollectionAction();
action.flows = asList([name:flow1, approverUuid:1c4db59a73b63f968889764bcb2bae9d],[name:flow2, approverUuid:eb9dc5050030323281c255864ca6c633]);
action.projectUuid = "bdd993eb57c13134967b15ed38ba33c4";
action.name = "flow collection";
action.description = "flow collection description";
action.isDefault = false;
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
CreateIAM2TickFlowCollectionAction.Result res = action.call();Python
SDK
CreateIAM2TickFlowCollectionAction action = CreateIAM2TickFlowCollectionAction()
action.flows = [[name:flow1, approverUuid:1c4db59a73b63f968889764bcb2bae9d], [name:flow2, approverUuid:eb9dc5050030323281c255864ca6c633]]
action.projectUuid = "bdd993eb57c13134967b15ed38ba33c4"
action.name = "flow collection"
action.description = "flow collection description"
action.isDefault = false
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
CreateIAM2TickFlowCollectionAction.Result res = action.call()删除工单流程(DeleteTicketFlowCollection)
API请求
URLs
DELETE zstack/v1/tickets/flow-collections/{uuid}?deleteMode={deleteMode}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/tickets/flow-collections/657b0e4c4b21394db32f1c7c1066efa9?deleteMode=Permissive参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.0.0 | |
| deleteMode (可选) | String | body | 3.0.0 | ||
| systemTags (可选) | List | body | 3.0.0 | ||
| userTags (可选) | List | body | 3.0.0 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
DeleteTicketFlowCollectionAction action = new DeleteTicketFlowCollectionAction();
action.uuid = "657b0e4c4b21394db32f1c7c1066efa9";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteTicketFlowCollectionAction.Result res = action.call();Python
SDK
DeleteTicketFlowCollectionAction action = DeleteTicketFlowCollectionAction()
action.uuid = "657b0e4c4b21394db32f1c7c1066efa9"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteTicketFlowCollectionAction.Result res = action.call()修改工单流程(UpdateIAM2TicketFlowCollection)
API请求
URLs
PUT zstack/v1/tickets/flow-collections/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateIAM2TicketFlowCollection": {
"flows": [
{
"name": "flow1",
"approverUuid": "8603f9c875a23cf1815b85e16f0d972e"
},
{
"name": "flow2",
"approverUuid": "9563991259ad3820bf48e5d8b86b5da4"
}
]
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateIAM2TicketFlowCollection":{"flows":[{"name":"flow1","approverUuid":"8603f9c875a23cf1815b85e16f0d972e"},{"name":"flow2","approverUuid":"9563991259ad3820bf48e5d8b86b5da4"}]}}' http://localhost:8080/zstack/v1/tickets/flow-collections/610687f0ec5c3ca286a27fa13888df2e/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| flows (可选) | List | body(包含在updateIAM2TicketFlowCollection结构中) | 3.0.0 | ||
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.0.0 | |
| name (可选) | String | body(包含在updateIAM2TicketFlowCollection结构中) | 资源名称 | 3.0.0 | |
| description (可选) | String | body(包含在updateIAM2TicketFlowCollection结构中) | 资源的详细描述 | 3.0.0 | |
| isDefault (可选) | Boolean | body(包含在updateIAM2TicketFlowCollection结构中) | 3.0.0 | ||
| systemTags (可选) | List | body | 3.0.0 | ||
| userTags (可选) | List | body | 3.0.0 |
API返回
返回示例
{
"inventory": {
"uuid": "7db7660049ba42fc95de91ac238145a5",
"name": "collection name",
"state": "Enabled",
"status": "Valid",
"isDefault": false,
"flows": []
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.0.0 |
| inventory | TicketFlowCollectionInventory | 详情参考inventory | 3.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.0.0 |
| description | String | 错误的概要描述 | 3.0.0 |
| details | String | 错误的详细信息 | 3.0.0 |
| elaboration | String | 保留字段,默认为null | 3.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| state | String | 3.0.0 | |
| status | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| isDefault | Boolean | 3.0.0 | |
| flows | List | 详情参考flows | 3.0.0 |
#flows
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| parentFlowUuid | String | 3.0.0 | |
| flowContext | String | 3.0.0 | |
| flowContextType | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| collectionUuid | String | 3.0.0 |
SDK示例
Java
SDK
UpdateIAM2TicketFlowCollectionAction action = new UpdateIAM2TicketFlowCollectionAction();
action.flows = asList([name:flow1, approverUuid:8603f9c875a23cf1815b85e16f0d972e],[name:flow2, approverUuid:9563991259ad3820bf48e5d8b86b5da4]);
action.uuid = "610687f0ec5c3ca286a27fa13888df2e";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateIAM2TicketFlowCollectionAction.Result res = action.call();Python
SDK
UpdateIAM2TicketFlowCollectionAction action = UpdateIAM2TicketFlowCollectionAction()
action.flows = [[name:flow1, approverUuid:8603f9c875a23cf1815b85e16f0d972e], [name:flow2, approverUuid:9563991259ad3820bf48e5d8b86b5da4]]
action.uuid = "610687f0ec5c3ca286a27fa13888df2e"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateIAM2TicketFlowCollectionAction.Result res = action.call()查询工单流程(QueryTicketFlowCollection)
API请求
URLs
GET zstack/v1/tickets/flow-collectionsGET zstack/v1/tickets/flow-collections/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/tickets/flow-collectionscurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/tickets/flow-collections/19575ca3d82838a39763f3081e3f5055可查询字段
运行CLI命令行工具,输入QueryTicketFlowCollection并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "aafa04d2d3b447bb866a62457aa24fdd",
"name": "collection name",
"state": "Enabled",
"status": "Valid",
"isDefault": false,
"flows": []
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.0.0 |
| inventories | List | 详情参考inventories | 3.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.0.0 |
| description | String | 错误的概要描述 | 3.0.0 |
| details | String | 错误的详细信息 | 3.0.0 |
| elaboration | String | 保留字段,默认为null | 3.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.0.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| state | String | 3.0.0 | |
| status | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| isDefault | Boolean | 3.0.0 | |
| flows | List | 详情参考flows | 3.0.0 |
#flows
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| parentFlowUuid | String | 3.0.0 | |
| flowContext | String | 3.0.0 | |
| flowContextType | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| collectionUuid | String | 3.0.0 |
SDK示例
Java
SDK
QueryTicketFlowCollectionAction action = new QueryTicketFlowCollectionAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryTicketFlowCollectionAction.Result res = action.call();Python
SDK
QueryTicketFlowCollectionAction action = QueryTicketFlowCollectionAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryTicketFlowCollectionAction.Result res = action.call()修改工单流程状态(ChangeTicketFlowCollectionState)
API请求
URLs
PUT zstack/v1/tickets/flow-collections/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"changeTicketFlowCollectionState": {
"stateEvent": "disable"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"changeTicketFlowCollectionState":{"stateEvent":"disable"}}' http://localhost:8080/zstack/v1/tickets/flow-collections/b2a1edfb81d73aea989b25727b7a1417/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.0.0 | |
| stateEvent | String | body(包含在changeTicketFlowCollectionState结构中) |
|
3.0.0 | |
| systemTags (可选) | List | body | 3.0.0 | ||
| userTags (可选) | List | body | 3.0.0 |
API返回
返回示例
{
"inventory": {
"uuid": "34d5466ff50d4e719aa854c2a1d58e81",
"name": "collection name",
"state": "Enabled",
"status": "Valid",
"isDefault": false,
"flows": []
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.0.0 |
| inventory | TicketFlowCollectionInventory | 详情参考inventory | 3.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.0.0 |
| description | String | 错误的概要描述 | 3.0.0 |
| details | String | 错误的详细信息 | 3.0.0 |
| elaboration | String | 保留字段,默认为null | 3.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| state | String | 3.0.0 | |
| status | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| isDefault | Boolean | 3.0.0 | |
| flows | List | 详情参考flows | 3.0.0 |
#flows
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| parentFlowUuid | String | 3.0.0 | |
| flowContext | String | 3.0.0 | |
| flowContextType | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| collectionUuid | String | 3.0.0 |
SDK示例
Java
SDK
ChangeTicketFlowCollectionStateAction action = new ChangeTicketFlowCollectionStateAction();
action.uuid = "b2a1edfb81d73aea989b25727b7a1417";
action.stateEvent = "disable";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
ChangeTicketFlowCollectionStateAction.Result res = action.call();Python
SDK
ChangeTicketFlowCollectionStateAction action = ChangeTicketFlowCollectionStateAction()
action.uuid = "b2a1edfb81d73aea989b25727b7a1417"
action.stateEvent = "disable"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
ChangeTicketFlowCollectionStateAction.Result res = action.call()查询工单步骤(QueryTicketFlow)
API请求
URLs
GET zstack/v1/tickets/flowGET zstack/v1/tickets/flow/{uuid}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/tickets/flowcurl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/tickets/flow/c6c9263205103dd3b6194140c5c06b74可查询字段
运行CLI命令行工具,输入QueryTicketFlow并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "ea0457b5994a4710a182015cef690d75",
"name": "flow1",
"description": "flow description",
"parentFlowUuid": "8d7b4b6b72bf4ff2bcf945b313320dc1",
"flowContextType": "{\"approverUuid\":\"139bcc292cb141bea1e8d40bf8bbaed9\"}",
"createDate": "Dec 28, 2018 6:39:29 PM",
"lastOpDate": "Dec 28, 2018 6:39:29 PM",
"collectionUuid": "a87c7cb15468456dbce88da5f65c0073"
},
{
"uuid": "8d7b4b6b72bf4ff2bcf945b313320dc1",
"name": "flow2",
"description": "flow description",
"flowContextType": "{\"approverUuid\":\"1cc3e1575809468dba5cedcfe8cc5a4c\"}",
"createDate": "Dec 28, 2018 6:39:29 PM",
"lastOpDate": "Dec 28, 2018 6:39:29 PM",
"collectionUuid": "a87c7cb15468456dbce88da5f65c0073"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.0.0 |
| inventories | List | 详情参考inventories | 3.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.0.0 |
| description | String | 错误的概要描述 | 3.0.0 |
| details | String | 错误的详细信息 | 3.0.0 |
| elaboration | String | 保留字段,默认为null | 3.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.0.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| parentFlowUuid | String | 3.0.0 | |
| flowContext | String | 3.0.0 | |
| flowContextType | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| collectionUuid | String | 3.0.0 |
SDK示例
Java
SDK
QueryTicketFlowAction action = new QueryTicketFlowAction();
action.conditions = asList();
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryTicketFlowAction.Result res = action.call();Python
SDK
QueryTicketFlowAction action = QueryTicketFlowAction()
action.conditions = []
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryTicketFlowAction.Result res = action.call()添加自定义审批的步骤(AddIAM2TicketFlow)
API请求
URLs
POST zstack/v1/tickets/flowHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"approverUuid": "92b1b555f19531df9a94ce42c8959fa9",
"approverTitle": "SystemAdmin",
"name": "example flow",
"collectionUuid": "d72760c4e3b24c45be267f5aa0a2c5a1"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"approverUuid":"92b1b555f19531df9a94ce42c8959fa9","approverTitle":"SystemAdmin","name":"example flow","collectionUuid":"82b6111a0d7f47bd955f385f959b1eb7"}}' http://localhost:8080/zstack/v1/tickets/flow参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| approverUuid | String | body(包含在params结构中) | 3.0.0 | ||
| approverTitle (可选) | String | body(包含在params结构中) | 3.0.0 | ||
| name | String | body(包含在params结构中) | 资源名称 | 3.0.0 | |
| description (可选) | String | body(包含在params结构中) | 资源的详细描述 | 3.0.0 | |
| collectionUuid | String | body(包含在params结构中) | 3.0.0 | ||
| parentFlowUuid (可选) | String | body(包含在params结构中) | 3.0.0 | ||
| resourceUuid (可选) | String | body(包含在params结构中) | 3.0.0 | ||
| systemTags (可选) | List | body | 3.0.0 | ||
| userTags (可选) | List | body | 3.0.0 |
API返回
返回示例
{
"inventory": {
"uuid": "f9b5298fc4d2429294513ffe340215c8",
"name": "flow1",
"description": "flow description",
"parentFlowUuid": "4ca39493ec06407cb50fa92880f9bcbc",
"flowContextType": "{\"approverUuid\":\"99a8ba4f86564f0787ab2c8b11bfadb0\"}",
"createDate": "Dec 28, 2018 6:38:25 PM",
"lastOpDate": "Dec 28, 2018 6:38:25 PM",
"collectionUuid": "5d32a7a22ea645409dd7b12b5223f723"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.0.0 |
| inventory | TicketFlowInventory | 详情参考inventory | 3.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.0.0 |
| description | String | 错误的概要描述 | 3.0.0 |
| details | String | 错误的详细信息 | 3.0.0 |
| elaboration | String | 保留字段,默认为null | 3.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| parentFlowUuid | String | 3.0.0 | |
| flowContext | String | 3.0.0 | |
| flowContextType | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| collectionUuid | String | 3.0.0 |
SDK示例
Java
SDK
AddIAM2TicketFlowAction action = new AddIAM2TicketFlowAction();
action.approverUuid = "92b1b555f19531df9a94ce42c8959fa9";
action.approverTitle = "SystemAdmin";
action.name = "example flow";
action.collectionUuid = "4913282e13a64fe29b802c78b67e2c84";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddIAM2TicketFlowAction.Result res = action.call();Python
SDK
AddIAM2TicketFlowAction action = AddIAM2TicketFlowAction()
action.approverUuid = "92b1b555f19531df9a94ce42c8959fa9"
action.approverTitle = "SystemAdmin"
action.name = "example flow"
action.collectionUuid = "12d574495c074cf59de72c911391b8bb"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddIAM2TicketFlowAction.Result res = action.call()修改自定义审批的步骤(UpdateIAM2TicketFlow)
API请求
URLs
PUT zstack/v1/tickets/flow/{uuid}/actionsHeaders
Authorization: OAuth the-session-uuidBody
{
"updateIAM2TicketFlow": {
"name": "new ticket flow name",
"description": "new ticket flow description",
"approverUuid": "714d3eedb96f32a39598fb11ae0d9927"
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X PUT -d '{"updateIAM2TicketFlow":{"name":"new ticket flow name","description":"new ticket flow description","approverUuid":"714d3eedb96f32a39598fb11ae0d9927"}}' http://localhost:8080/zstack/v1/tickets/flow/919e8fbb3b3b30f480b41563e36839cc/actions参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.0.0 | |
| name (可选) | String | body(包含在updateIAM2TicketFlow结构中) | 资源名称 | 3.0.0 | |
| description (可选) | String | body(包含在updateIAM2TicketFlow结构中) | 资源的详细描述 | 3.0.0 | |
| approverUuid (可选) | String | body(包含在updateIAM2TicketFlow结构中) | 3.0.0 | ||
| approverTitle (可选) | String | body(包含在updateIAM2TicketFlow结构中) | 3.0.0 | ||
| systemTags (可选) | List | body | 3.0.0 | ||
| userTags (可选) | List | body | 3.0.0 |
API返回
返回示例
{
"inventory": {
"uuid": "1dc3521c3ec74b81813121404e5941e6",
"name": "flow1",
"description": "flow description",
"parentFlowUuid": "bb2897de253e497f94587fc09b5ef969",
"flowContextType": "{\"approverUuid\":\"da8cc8c2412246b6b29b38328b7dab88\"}",
"createDate": "Dec 28, 2018 6:39:33 PM",
"lastOpDate": "Dec 28, 2018 6:39:33 PM",
"collectionUuid": "2b9bdd8b1c1d4163864e55d16840954f"
}
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.0.0 |
| inventory | TicketFlowInventory | 详情参考inventory | 3.0.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.0.0 |
| description | String | 错误的概要描述 | 3.0.0 |
| details | String | 错误的详细信息 | 3.0.0 |
| elaboration | String | 保留字段,默认为null | 3.0.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.0.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.0.0 |
#inventory
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.0.0 |
| name | String | 资源名称 | 3.0.0 |
| description | String | 资源的详细描述 | 3.0.0 |
| parentFlowUuid | String | 3.0.0 | |
| flowContext | String | 3.0.0 | |
| flowContextType | String | 3.0.0 | |
| createDate | Timestamp | 创建时间 | 3.0.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.0.0 |
| collectionUuid | String | 3.0.0 |
SDK示例
Java
SDK
UpdateIAM2TicketFlowAction action = new UpdateIAM2TicketFlowAction();
action.uuid = "919e8fbb3b3b30f480b41563e36839cc";
action.name = "new ticket flow name";
action.description = "new ticket flow description";
action.approverUuid = "714d3eedb96f32a39598fb11ae0d9927";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
UpdateIAM2TicketFlowAction.Result res = action.call();Python
SDK
UpdateIAM2TicketFlowAction action = UpdateIAM2TicketFlowAction()
action.uuid = "919e8fbb3b3b30f480b41563e36839cc"
action.name = "new ticket flow name"
action.description = "new ticket flow description"
action.approverUuid = "714d3eedb96f32a39598fb11ae0d9927"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
UpdateIAM2TicketFlowAction.Result res = action.call()删除自定义审批的步骤(DeleteIAM2TicketFlow)
API请求
URLs
DELETE zstack/v1/tickets/flow/{uuid}?deleteMode={deleteMode}Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/tickets/flow/482baf2f2f4f3315b81064ecc5b3625c?deleteMode=Permissive参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| uuid | String | url | 资源的UUID,唯一标示该资源 | 3.0.0 | |
| deleteMode (可选) | String | body | 3.0.0 | ||
| systemTags (可选) | List | body | 3.0.0 | ||
| userTags (可选) | List | body | 3.0.0 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
DeleteIAM2TicketFlowAction action = new DeleteIAM2TicketFlowAction();
action.uuid = "482baf2f2f4f3315b81064ecc5b3625c";
action.deleteMode = "Permissive";
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
DeleteIAM2TicketFlowAction.Result res = action.call();Python
SDK
DeleteIAM2TicketFlowAction action = DeleteIAM2TicketFlowAction()
action.uuid = "482baf2f2f4f3315b81064ecc5b3625c"
action.deleteMode = "Permissive"
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
DeleteIAM2TicketFlowAction.Result res = action.call()增加工单审批流程对应的工单类型(AddTicketTypesToTicketFlowCollection)
API请求
URLs
POST zstack/v1/tickets/flow-collections/{ticketFlowCollectionUuid}/ticket-typesHeaders
Authorization: OAuth the-session-uuidBody
{
"params": {
"ticketTypeUuids": [
"3b933e9aaf2d49b9a3dcf0c92867790f",
"ef064ef45fb446d381db7b7d5f71695c"
]
},
"systemTags": [],
"userTags": []
}Note: 上述示例中systemTags、userTags字段可以省略。列出是为了表示body中可以包含这两个字段。
Curl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X POST -d '{"params":{"ticketTypeUuids":["3b933e9aaf2d49b9a3dcf0c92867790f","ef064ef45fb446d381db7b7d5f71695c"]}}' http://localhost:8080/zstack/v1/tickets/flow-collections/4f4bf50d510f4bf1959d8c5baa218cc4/ticket-types参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| ticketFlowCollectionUuid | String | url | 工单流程UUID | 3.6.0 | |
| ticketTypeUuids | List | body(包含在params结构中) | 工单类型UUID | 3.6.0 | |
| systemTags (可选) | List | body | 3.6.0 | ||
| userTags (可选) | List | body | 3.6.0 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
AddTicketTypesToTicketFlowCollectionAction action = new AddTicketTypesToTicketFlowCollectionAction();
action.ticketFlowCollectionUuid = "d8aa14d3ea224e36bd071b2355c94882";
action.ticketTypeUuids = asList("3b933e9aaf2d49b9a3dcf0c92867790f","ef064ef45fb446d381db7b7d5f71695c");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
AddTicketTypesToTicketFlowCollectionAction.Result res = action.call();Python
SDK
AddTicketTypesToTicketFlowCollectionAction action = AddTicketTypesToTicketFlowCollectionAction()
action.ticketFlowCollectionUuid = "5682400944cd4ca0acb82ff8d67462a6"
action.ticketTypeUuids = [3b933e9aaf2d49b9a3dcf0c92867790f, ef064ef45fb446d381db7b7d5f71695c]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
AddTicketTypesToTicketFlowCollectionAction.Result res = action.call()移除工单流程关联的工单类型(RemoveTicketTypesFromTicketFlowCollection)
API请求
URLs
DELETE zstack/v1/tickets/flow-collections/{ticketFlowCollectionUuid}/ticket-typesHeaders
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X DELETE http://localhost:8080/zstack/v1/tickets/flow-collections/839c88649a804cf6b56f3e80aac1c578/ticket-types参数列表
| 名字 | 类型 | 位置 | 描述 | 可选值 | 起始版本 |
|---|---|---|---|---|---|
| ticketFlowCollectionUuid | String | url | 3.6.0 | ||
| ticketTypeUuids | List | body | 3.6.0 | ||
| systemTags (可选) | List | body | 3.6.0 | ||
| userTags (可选) | List | body | 3.6.0 |
API返回
该API成功时返回一个空的JSON结构
{},出错时返回的JSON结构包含一个error字段,例如:{
"error": {
"code": "SYS.1001",
"description": "A message or a operation timeout",
"details": "Create VM on KVM timeout after 300s"
}
}SDK示例
Java
SDK
RemoveTicketTypesFromTicketFlowCollectionAction action = new RemoveTicketTypesFromTicketFlowCollectionAction();
action.ticketFlowCollectionUuid = "f4ccacf67bb04b4698d01ffbfed57134";
action.ticketTypeUuids = asList("3b933e9aaf2d49b9a3dcf0c92867790f","ef064ef45fb446d381db7b7d5f71695c");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
RemoveTicketTypesFromTicketFlowCollectionAction.Result res = action.call();Python
SDK
RemoveTicketTypesFromTicketFlowCollectionAction action = RemoveTicketTypesFromTicketFlowCollectionAction()
action.ticketFlowCollectionUuid = "97e30e33bea34366850c62781d342e22"
action.ticketTypeUuids = [3b933e9aaf2d49b9a3dcf0c92867790f, ef064ef45fb446d381db7b7d5f71695c]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
RemoveTicketTypesFromTicketFlowCollectionAction.Result res = action.call()查询工单类型(QueryTicketType)
API请求
URLs
GET zstack/v1/ticket-typesGET zstack/v1/ticket-types/{uuid}
Headers
Authorization: OAuth the-session-uuidCurl示例
curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/ticket-types?q=uuid=8cab296e0d8e3c86aef43d7e76c874c6curl -H "Content-Type: application/json;charset=UTF-8" \
-H "Authorization: OAuth b86c9016b4f24953a9edefb53ca0678c" \
-X GET http://localhost:8080/zstack/v1/ticket-types/e3e9345750b93455ad7336be8bd60420可查询字段
运行CLI命令行工具,输入QueryTicketType并按Tab键查看所有可查询字段以及可跨表查询的资源名。
API返回
返回示例
{
"inventories": [
{
"uuid": "3b933e9aaf2d49b9a3dcf0c92867790f",
"name": "CREATE_VM_INSTANCE_TICKET_TYPE",
"adminOnly": false,
"createDate": "Jul 18, 2019 4:09:46 PM",
"lastOpDate": "Jul 18, 2019 4:09:46 PM"
}
]
}| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| error | ErrorCode | 错误码,若不为null,则表示操作失败, 操作成功时该字段为null。 详情参考error | 3.6.0 |
| inventories | List | 详情参考inventories | 3.6.0 |
#error
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| code | String | 错误码号,错误的全局唯一标识,例如SYS.1000, HOST.1001 | 3.6.0 |
| description | String | 错误的概要描述 | 3.6.0 |
| details | String | 错误的详细信息 | 3.6.0 |
| elaboration | String | 保留字段,默认为null | 3.6.0 |
| opaque | LinkedHashMap | 保留字段,默认为null | 3.6.0 |
| cause | ErrorCode | 根错误,引发当前错误的源错误,若无原错误,该字段为null | 3.6.0 |
#inventories
| 名字 | 类型 | 描述 | 起始版本 |
|---|---|---|---|
| uuid | String | 资源的UUID,唯一标示该资源 | 3.6.0 |
| name | String | 资源名称 | 3.6.0 |
| description | String | 资源的详细描述 | 3.6.0 |
| type | String | 3.6.0 | |
| requests | String | 3.6.0 | |
| createDate | Timestamp | 创建时间 | 3.6.0 |
| lastOpDate | Timestamp | 最后一次修改时间 | 3.6.0 |
SDK示例
Java
SDK
QueryTicketTypeAction action = new QueryTicketTypeAction();
action.conditions = asList("uuid=bbeba1e02a88309192252bbfe409df4f");
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c";
QueryTicketTypeAction.Result res = action.call();Python
SDK
QueryTicketTypeAction action = QueryTicketTypeAction()
action.conditions = ["uuid=60ebfd64ef4238f9bbdd77c3c0569d64"]
action.sessionId = "b86c9016b4f24953a9edefb53ca0678c"
QueryTicketTypeAction.Result res = action.call()