summaryrefslogtreecommitdiffstats
path: root/ResmanagementService/service/src/main/resources/swagger.json
diff options
context:
space:
mode:
authorluxin <luxin7@huawei.com>2017-07-03 10:19:19 +0800
committerluxin <luxin7@huawei.com>2017-07-03 10:19:19 +0800
commit056dcab91efc64b5f9fc39825f9242e7fa0b9d05 (patch)
treed1af18cb6bfa6d3d61f0f77ff958d5a3ce7d6d06 /ResmanagementService/service/src/main/resources/swagger.json
parentd0ad118ba98d809ddc8eece49cf1fe1dfc83fc74 (diff)
Upload nfvo resmanagement code
Change-Id: Ibe023d4b09e1105b84eb43153b4d4037cae691db Signed-off-by: luxin <luxin7@huawei.com>
Diffstat (limited to 'ResmanagementService/service/src/main/resources/swagger.json')
-rw-r--r--ResmanagementService/service/src/main/resources/swagger.json1100
1 files changed, 1100 insertions, 0 deletions
diff --git a/ResmanagementService/service/src/main/resources/swagger.json b/ResmanagementService/service/src/main/resources/swagger.json
new file mode 100644
index 0000000..6273c04
--- /dev/null
+++ b/ResmanagementService/service/src/main/resources/swagger.json
@@ -0,0 +1,1100 @@
+{
+ "swagger": "2.0",
+ "info": {
+ "title": "Resource Management API",
+ "description": "Resource Management API",
+ "version": "1.0.0"
+ },
+ "tags": [
+ {
+ "name": "Resource Management services"
+ }
+ ],
+ "basePath": "/openoapi/resmgr/v1",
+ "paths": {
+ "/limits": {
+ "get": {
+ "summary": "Query limits information",
+ "description": "Query limits information",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "vimId",
+ "in": "query",
+ "description": "vim Id",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully Query limits information",
+ "schema": {
+ "$ref": "#/definitions/QueryLimts"
+ }
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "404": {
+ "description": "Limits Not Found"
+ },
+ "500": {
+ "description": "Limits failed to process the request",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/resource/grant": {
+ "put": {
+ "summary": "Grant VNF Life Cycle Operation",
+ "description": "Grant Resource",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "open-o",
+ "description": "OPEN-O Interface.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/GrantResource"
+ }
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "VNF Resource Response",
+ "schema": {
+ "$ref": "#/definitions/GrantResourceResponse"
+ }
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "404": {
+ "description": "VNF Resource Not Found"
+ },
+ "500": {
+ "description": "VNF resource failed to process the request",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/vl": {
+ "post": {
+ "summary": "Create virtual link resource",
+ "description": "virtual link Resource",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "open-o",
+ "description": "OPEN-O Interface.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VirtualLink"
+ }
+ }
+ ],
+ "responses": {
+ "202": {
+ "description": "Successfully Created VNF Resource",
+ "schema": {
+ "$ref": "#/definitions/VirtualLinkResponse"
+ }
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "404": {
+ "description": "VNF Resource Not Found"
+ },
+ "500": {
+ "description": "VNF resource failed to process the request",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/vl/{id}": {
+ "delete": {
+ "summary": "Delete virtual link resource",
+ "description": "Delete virtual link Resource",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "name": "id",
+ "in": "path",
+ "description": "VNF Resource Id",
+ "required": true,
+ "type": "string"
+ }
+ ],
+ "responses": {
+ "200": {
+ "description": "Successfully Deleted VNF Resource"
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "404": {
+ "description": "VNF Resource Not Found"
+ },
+ "500": {
+ "description": "VNF resource failed to process the request",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/vnf": {
+ "post": {
+ "summary": "Create VNF instance resource",
+ "description": "Create VNF Resource",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "open-o",
+ "description": "OPEN-O Interface.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/CreateVNFResource"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Successfully Created VNF Resource",
+ "schema": {
+ "$ref": "#/definitions/CreateVNFResponse"
+ }
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "404": {
+ "description": "VNF Resource Not Found"
+ },
+ "500": {
+ "description": "VNF resource failed to process the request",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/vnfinfo": {
+ "post": {
+ "summary": "Write VNF status information",
+ "description": "VNF Status",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "open-o",
+ "description": "OPEN-O Interface.",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VNFStatusInfo"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Successfully write VNF status"
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "404": {
+ "description": "VNF Resource Not Found"
+ },
+ "500": {
+ "description": "VNF resource failed to process the request",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ },
+ "/vnfdetailinfo": {
+ "post": {
+ "summary": "Write VNF detail information",
+ "description": "VNF detail info",
+ "consumes": [
+ "application/json"
+ ],
+ "produces": [
+ "application/json"
+ ],
+ "parameters": [
+ {
+ "in": "body",
+ "name": "open-o",
+ "description": "OPEN-O Interface",
+ "required": true,
+ "schema": {
+ "$ref": "#/definitions/VNFDetailInfo"
+ }
+ }
+ ],
+ "responses": {
+ "201": {
+ "description": "Successfully write VNF detail Info"
+ },
+ "401": {
+ "description": "Unauthorized"
+ },
+ "404": {
+ "description": "VNF Resource Not Found"
+ },
+ "500": {
+ "description": "VNF resource failed to process the request",
+ "schema": {
+ "$ref": "#/definitions/Error"
+ }
+ }
+ }
+ }
+ }
+ },
+ "definitions": {
+ "QueryLimts": {
+ "type": "object",
+ "description": "Query Limits Response.",
+ "required": [
+ "vimId",
+ "vimName",
+ "totalCPU",
+ "totalMemory",
+ "totalDisk",
+ "usedCPU",
+ "usedMemory",
+ "usedDisk"
+ ],
+ "properties": {
+ "vimId": {
+ "type": "string",
+ "description": "Identifier of vimId."
+ },
+ "vimName": {
+ "type": "string",
+ "description": "Name."
+ },
+ "totalCPU": {
+ "type": "string"
+ },
+ "totalMemory": {
+ "type": "string"
+ },
+ "totalDisk": {
+ "type": "string"
+ },
+ "usedCPU": {
+ "type": "string"
+ },
+ "usedMemory": {
+ "type": "string"
+ },
+ "usedDisk": {
+ "type": "string"
+ }
+ }
+ },
+ "VirtualLinkResponse": {
+ "type": "object",
+ "description": "Virtual Link Response.",
+ "required": [
+ "Id",
+ "Name"
+ ],
+ "properties": {
+ "Id": {
+ "type": "string",
+ "description": "Identifier of VL."
+ },
+ "Name": {
+ "type": "string",
+ "description": "Name of VL."
+ }
+ }
+ },
+ "CreateVNFResponse": {
+ "type": "object",
+ "description": "Create VNF Response.",
+ "required": [
+ "Id",
+ "Name"
+ ],
+ "properties": {
+ "Id": {
+ "type": "string",
+ "description": "UUID."
+ },
+ "Name": {
+ "type": "string",
+ "description": "Instance Name."
+ }
+ }
+ },
+ "VNFDetailInfo": {
+ "type": "object",
+ "description": "List of Vm to be added or deleted",
+ "required": [
+ "vnfInstanceId",
+ "nsId",
+ "vnfmId",
+ "Vms"
+ ],
+ "properties": {
+ "vnfInstanceId": {
+ "type": "string",
+ "description": "The id of VNF instance"
+ },
+ "nsId": {
+ "type": "string",
+ "description": "NS ID"
+ },
+ "vnfmId": {
+ "type": "string",
+ "description": "VNFM ID"
+ },
+ "Vms": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Vm"
+ }
+ }
+ }
+ },
+ "VNFStatusInfo": {
+ "type": "object",
+ "description": "Write VNF Status.",
+ "required": [
+ "vnfInstanceId",
+ "jobId",
+ "nsId",
+ "vnfmId",
+ "responseDescriptor",
+ "status",
+ "progress",
+ "sStatusDescription",
+ "errorCode",
+ "responseId",
+ "responseHistoryList",
+ "addVm",
+ "delVm"
+ ],
+ "properties": {
+ "vnfInstanceId": {
+ "type": "string",
+ "description": "The Id of VNF Instance."
+ },
+ "jobId": {
+ "type": "string",
+ "description": "The ID of workflow."
+ },
+ "nsId": {
+ "type": "string",
+ "description": "NS ID."
+ },
+ "vnfmId": {
+ "type": "string",
+ "description": "The VNFM ID."
+ },
+ "responseDescriptor": {
+ "type": "string",
+ "description": "The name of VNFM."
+ },
+ "status": {
+ "type": "string",
+ "description": "Status of VNF - started processing finished error."
+ },
+ "progress": {
+ "type": "integer",
+ "description": "progress (1-100)."
+ },
+ "sStatusDescription": {
+ "type": "string",
+ "description": "current Progress Description."
+ },
+ "errorCode": {
+ "type": "integer",
+ "description": "Error code."
+ },
+ "responseId": {
+ "type": "integer",
+ "description": "Message Number."
+ },
+ "responseHistoryList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/progressInfo"
+ }
+ },
+ "addVm": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Vm"
+ }
+ },
+ "delVm": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/Vm"
+ }
+ }
+ }
+ },
+ "progressInfo": {
+ "type": "object",
+ "description": "List of Vm to be added or deleted",
+ "required": [
+ "progress",
+ "status",
+ "statusDescription",
+ "errorCode",
+ "responseId",
+ "responseHistoryList"
+ ],
+ "properties": {
+ "progress": {
+ "type": "integer",
+ "description": "progress (1 - 100)"
+ },
+ "status": {
+ "type": "string",
+ "description": "status"
+ },
+ "statusDescription": {
+ "type": "string",
+ "description": "status description"
+ },
+ "errorCode": {
+ "type": "integer",
+ "description": "Error Code"
+ },
+ "responseId": {
+ "type": "integer",
+ "description": "Id"
+ },
+ "responseHistoryList": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/historyInfo"
+ }
+ }
+ }
+ },
+ "historyInfo": {
+ "type": "object",
+ "description": "List of Vm to be added or deleted",
+ "required": [
+ "progress",
+ "status",
+ "statusDescription",
+ "errorCode",
+ "responseId"
+ ],
+ "properties": {
+ "progress": {
+ "type": "integer",
+ "description": "progress (1 - 100)"
+ },
+ "status": {
+ "type": "string",
+ "description": "status"
+ },
+ "statusDescription": {
+ "type": "string",
+ "description": "status description"
+ },
+ "errorCode": {
+ "type": "integer",
+ "description": "Error Code"
+ },
+ "responseId": {
+ "type": "integer",
+ "description": "Id"
+ }
+ }
+ },
+ "Vm": {
+ "type": "object",
+ "description": "List of Vm to be added or deleted",
+ "required": [
+ "vmId",
+ "vmName",
+ "vmStatus"
+ ],
+ "properties": {
+ "vmId": {
+ "type": "string",
+ "description": "The ID of VM"
+ },
+ "vmName": {
+ "type": "string",
+ "description": "The name of VM"
+ },
+ "vmStatus": {
+ "type": "string",
+ "description": "The Status of VM"
+ }
+ }
+ },
+ "CreateVNFResource": {
+ "type": "object",
+ "description": "Create VNF Resource.",
+ "required": [
+ "vnfInstanceId",
+ "vnfInstanceName",
+ "nsId",
+ "nsName",
+ "vnfmId",
+ "vnfmName",
+ "vnfPackageName",
+ "vnfDescriptorName",
+ "vimId",
+ "vimName",
+ "vimTenant",
+ "jobId",
+ "vnfStatus",
+ "vnfType",
+ "maxVm",
+ "maxCpu",
+ "maxDisk",
+ "maxRam",
+ "maxShd",
+ "maxNet"
+ ],
+ "properties": {
+ "vnfInstanceId": {
+ "type": "string",
+ "description": "The Identifier of VNF Instance."
+ },
+ "vnfInstanceName": {
+ "type": "string",
+ "description": "The name of VNF."
+ },
+ "nsId": {
+ "type": "string",
+ "description": "NS ID."
+ },
+ "nsName": {
+ "type": "string",
+ "description": "NS name."
+ },
+ "vnfmId": {
+ "type": "string",
+ "description": "The ID of VNFM."
+ },
+ "vnfmName": {
+ "type": "string",
+ "description": "The name of VNFM."
+ },
+ "vnfPackageName": {
+ "type": "string",
+ "description": "The description of VNF Package."
+ },
+ "vnfDescriptorName": {
+ "type": "string",
+ "description": "The Description of VNFD."
+ },
+ "vimId": {
+ "type": "string",
+ "description": "Vim ID."
+ },
+ "vimName": {
+ "type": "string",
+ "description": "The Name of VIM."
+ },
+ "vimTenant": {
+ "type": "string",
+ "description": "The tenant of VIM."
+ },
+ "jobId": {
+ "type": "string",
+ "description": "The ID of workflow."
+ },
+ "vnfStatus": {
+ "type": "string",
+ "description": "The status of VNF."
+ },
+ "vnfType": {
+ "type": "string",
+ "description": "The type of VNF."
+ },
+ "maxVm": {
+ "type": "integer",
+ "description": "Max Vm in this VNF."
+ },
+ "maxCpu": {
+ "type": "integer",
+ "description": "Max CPU in this VNF."
+ },
+ "maxDisk": {
+ "type": "integer",
+ "description": "Max Disk in this VNF."
+ },
+ "maxRam": {
+ "type": "integer",
+ "description": "Max Memory in this VNF."
+ },
+ "maxShd": {
+ "type": "integer",
+ "description": "Max Share Disk in this VNF."
+ },
+ "maxNet": {
+ "type": "integer",
+ "description": "Max logical Network in this VNF."
+ }
+ }
+ },
+ "VirtualLink": {
+ "type": "object",
+ "description": "Virtual Link Resource.",
+ "required": [
+ "name",
+ "backendId",
+ "isPublic",
+ "dcName",
+ "vimId",
+ "vimName",
+ "physicialNet",
+ "nsId",
+ "nsName",
+ "description",
+ "networkType",
+ "segmentation",
+ "mtu",
+ "vlanTransparent",
+ "routerExternal",
+ "resourceProviderType",
+ "resourceProviderId"
+ ],
+ "properties": {
+ "name": {
+ "type": "string",
+ "description": "Logical Network Name."
+ },
+ "backendId": {
+ "type": "string",
+ "description": "The backend id on VIM."
+ },
+ "isPublic": {
+ "type": "string",
+ "description": "Sharable - True or False."
+ },
+ "dcName": {
+ "type": "string",
+ "description": "The DataCenter name."
+ },
+ "vimId": {
+ "type": "string",
+ "description": "vim Id."
+ },
+ "vimName": {
+ "type": "string",
+ "description": "The name of VIM."
+ },
+ "physicialNet": {
+ "type": "string",
+ "description": "Physicial Network."
+ },
+ "nsId": {
+ "type": "string",
+ "description": "NsId."
+ },
+ "nsName": {
+ "type": "string",
+ "description": "The name of NS."
+ },
+ "description": {
+ "type": "string",
+ "description": "Description."
+ },
+ "networkType": {
+ "type": "string",
+ "description": "Network Type - gre/vlan/vxlan."
+ },
+ "segmentation": {
+ "type": "string",
+ "description": "Segmentation Id just like vlan id."
+ },
+ "mtu": {
+ "type": "string",
+ "description": "MTU value."
+ },
+ "vlanTransparent": {
+ "type": "string",
+ "description": "Support vlan transparent- True/False."
+ },
+ "routerExternal": {
+ "type": "string",
+ "description": "Support External Router - True / False."
+ },
+ "resourceProviderType": {
+ "type": "string",
+ "description": "The location to be deployed in one of the list - VIM/DC/Zone/Host."
+ },
+ "resourceProviderId": {
+ "type": "string",
+ "description": "The location ID to be deployed."
+ }
+ }
+ },
+ "GrantResourceResponse": {
+ "type": "object",
+ "description": "Resource Response.",
+ "required": [
+ "vim",
+ "zone",
+ "zoneGroup",
+ "addResource",
+ "tempResource",
+ "removeResource",
+ "updateResource",
+ "vimAssets",
+ "additionalParam"
+ ],
+ "properties": {
+ "vim": {
+ "$ref": "#/definitions/VimInfo"
+ },
+ "zone": {
+ "type": "string"
+ },
+ "zoneGroup": {
+ "type": "string"
+ },
+ "addResource": {
+ "$ref": "#/definitions/GrantInfo"
+ },
+ "tempResource": {
+ "$ref": "#/definitions/GrantInfo"
+ },
+ "removeResource": {
+ "$ref": "#/definitions/GrantInfo"
+ },
+ "updateResource": {
+ "$ref": "#/definitions/GrantInfo"
+ },
+ "vimAssets": {
+ "type": "string"
+ },
+ "additionalParam": {
+ "type": "string"
+ }
+ }
+ },
+ "VimInfo": {
+ "type": "object",
+ "description": "Information about the VIM that manages this resource.",
+ "required": [
+ "vimInfoId",
+ "vimId",
+ "interfaceInfo",
+ "accessInfo",
+ "interfaceEndpoint"
+ ],
+ "properties": {
+ "vimInfoId": {
+ "type": "string",
+ "description": "The identifier of this VimInfo instance, for the purpose of referencing it from other information elements."
+ },
+ "vimId": {
+ "type": "string",
+ "description": "The identifier of the VIM.."
+ },
+ "interfaceInfo": {
+ "$ref": "#/definitions/interfaceInfo"
+ },
+ "accessInfo": {
+ "$ref": "#/definitions/accessInfo"
+ },
+ "interfaceEndpoint": {
+ "type": "string",
+ "description": "Information about the interface endpoint. An example is a URL."
+ }
+ }
+ },
+ "interfaceInfo": {
+ "type": "object",
+ "description": "Information about the interface to the VIM, including VIM provider type, API version, and protocol type..",
+ "required": [
+ "vimType",
+ "apiVersion",
+ "protocolType"
+ ],
+ "properties": {
+ "vimType": {
+ "type": "string",
+ "description": "vim"
+ },
+ "apiVersion": {
+ "type": "string",
+ "description": "api version"
+ },
+ "protocolType": {
+ "type": "string",
+ "description": "Type of the protocol"
+ }
+ }
+ },
+ "accessInfo": {
+ "type": "object",
+ "description": "Authentication credentials for accessing the VIM. Examples may include those to support different authentication schemes, e.g., OAuth, Token, etc..",
+ "required": [
+ "tenant",
+ "username",
+ "password"
+ ],
+ "properties": {
+ "tenant": {
+ "type": "string",
+ "description": "Tenant Name of tenant"
+ },
+ "username": {
+ "type": "string",
+ "description": "Username for login"
+ },
+ "password": {
+ "type": "string",
+ "description": "Password of login user"
+ }
+ }
+ },
+ "GrantInfo": {
+ "type": "object",
+ "description": "Grant Information.",
+ "required": [
+ "resourceDefinitionId",
+ "reservationId",
+ "vimId",
+ "resourceProviderId",
+ "zoneId"
+ ],
+ "properties": {
+ "resourceDefinitionId": {
+ "type": "string",
+ "description": "Identifier of the related ResourceDefinition information from Grant Request"
+ },
+ "reservationId": {
+ "type": "string",
+ "description": "Reservation Identifier applicable to the VNFC/VL."
+ },
+ "vimId": {
+ "type": "string",
+ "description": "Reference to the identifier of the VimInfo information element defining the VIM under whose control this resource to be placed."
+ },
+ "resourceProviderId": {
+ "type": "string",
+ "description": "Identifies the entity responsible for the management of the virtualized resource."
+ },
+ "zoneId": {
+ "type": "string",
+ "description": "Reference of the identifier of the zoneInfo information element defining the resource zone in which resource to be placed."
+ }
+ }
+ },
+ "GrantResource": {
+ "type": "object",
+ "description": "Grant Resource Request Body.",
+ "required": [
+ "vnfInstanceId",
+ "addResource",
+ "vimId",
+ "additionalParam"
+ ],
+ "properties": {
+ "vnfInstanceId": {
+ "type": "string",
+ "description": "Identifier Instance."
+ },
+ "vimId": {
+ "type": "string",
+ "description": "Identifier vim."
+ },
+ "addResource": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceDefinition"
+ },
+ "description": "Information sufficient to identify the VNF Descriptor which defines the VNF to be created."
+ },
+ "removeResource": {
+ "type": "array",
+ "items": {
+ "$ref": "#/definitions/ResourceDefinition"
+ }
+ },
+ "additionalParam": {
+ "type": "object",
+ "description": "additionalParam.",
+ "required": [
+ "vnfmid"
+ ],
+ "properties": {
+ "vnfmid": {
+ "type": "string"
+ },
+ "vimid": {
+ "type": "string"
+ },
+ "tenant": {
+ "type": "string"
+ }
+ }
+ }
+ }
+ },
+ "ResourceDefinition": {
+ "type": "object",
+ "description": "List of resources to be added / deleted / updated.",
+ "required": [
+ "resourceDefinitionId",
+ "resourceTemplate",
+ "type",
+ "vdu"
+ ],
+ "properties": {
+ "resourceDefinitionId": {
+ "type": "string",
+ "description": "Identifier of this ResourceDefinition information element, unique at least within the scope of the Grant request."
+ },
+ "resourceTemplate": {
+ "$ref": "#/definitions/ResourceTemplate"
+ },
+ "type": {
+ "default": "compute",
+ "enum": [
+ "compute",
+ "VL",
+ "CP",
+ "Storage"
+ ],
+ "description": "Currently only support tosca.nodes.nfv.VDU."
+ },
+ "vdu": {
+ "type": "string",
+ "description": "Reference to the related Vdu applicable to this resource in the VNFD."
+ }
+ }
+ },
+ "ResourceTemplate": {
+ "type": "object",
+ "description": "Resource templates.",
+ "required": [
+ "VirtualComputeDescriptor",
+ "VirtualStorageDescriptor"
+ ],
+ "properties": {
+ "VirtualComputeDescriptor": {
+ "$ref": "#/definitions/VirtualComputeDescriptor"
+ },
+ "VirtualStorageDescriptor": {
+ "$ref": "#/definitions/VirtualStorageDescriptor"
+ }
+ }
+ },
+ "VirtualComputeDescriptor": {
+ "type": "object",
+ "description": "Reference to a resource template.",
+ "required": [
+ "virtualCpu",
+ "virtualMemory"
+ ],
+ "properties": {
+ "virtualCpu": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Number of virtual CPUs"
+ },
+ "virtualMemory": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Amount of virtual Memory"
+ }
+ }
+ },
+ "VirtualStorageDescriptor": {
+ "type": "object",
+ "description": "Reference to a resource template.",
+ "required": [
+ "typeOfStorage",
+ "sizeOfStorage",
+ "swImageDescriptor"
+ ],
+ "properties": {
+ "typeOfStorage": {
+ "type": "string",
+ "description": "Type of virtualized storage resource"
+ },
+ "sizeOfStorage": {
+ "type": "integer",
+ "format": "int32",
+ "description": "Size of virtualized storage resource"
+ },
+ "swImageDescriptor": {
+ "type": "string",
+ "description": "Software image to be loaded on the Virtual Storage"
+ }
+ }
+ },
+ "Error": {
+ "type": "object",
+ "properties": {
+ "code": {
+ "type": "integer",
+ "format": "int32"
+ },
+ "message": {
+ "type": "string"
+ }
+ }
+ }
+ }
+} \ No newline at end of file