blob: 91a782794ce7eeb16ec3bc49a0586afdc1ae874a [file] [log] [blame]
{
"swagger": "2.0",
"info": {
"version": "3.0.3",
"title": "deployment-handler API",
"license": {
"name": "Apache 2.0",
"url": "http://www.apache.org/licenses/LICENSE-2.0.html"
},
"description": "High-level API for deploying/undeploying composed DCAE services using Cloudify Manager.\n"
},
"tags": [
{
"name": "info",
"description": "version and links"
},
{
"name": "dcae-deployments",
"description": "operations on dcae-deployments"
},
{
"name": "policy",
"description": "policy update API consumed by policy-handler and debug API to find policies on components"
}
],
"paths": {
"/": {
"get": {
"tags": [
"info"
],
"description": "Returns version information and links to API operations",
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "Success",
"schema": {
"title": "DispatcherInfo",
"type": "object",
"properties": {
"apiVersion": {
"type": "string",
"description": "version of API supported by this server\n"
},
"serverVersion": {
"type": "string",
"description": "version of software running on this server\n"
},
"links": {
"type": "object",
"description": "Links to API resources\n",
"properties": {
"info": {
"type": "string",
"description": "path for the server information endpoint\n"
},
"events": {
"type": "string",
"description": "path for the events endpoint\n"
}
}
}
}
}
}
}
}
},
"/dcae-deployments": {
"get": {
"tags": [
"dcae-deployments"
],
"description": "List service deployments known to the orchestrator, optionally restricted to a single service type\n",
"parameters": [
{
"name": "serviceTypeId",
"description": "Service type identifier for the type whose deployments are to be listed\n",
"type": "string",
"in": "query",
"required": false
}
],
"responses": {
"200": {
"description": "Success. (Note that if no matching deployments are found, the request is still a success; the\ndeployments array is empty in that case.)\n",
"schema": {
"$ref": "#/definitions/DCAEDeploymentsListResponse"
}
},
"500": {
"description": "Problem on the server side. See the message\nin the response for more details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
},
"502": {
"description": "Error reported to the dispatcher by a downstream system. See the message\nin the response for more details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
},
"504": {
"description": "Error communicating with a downstream system. See the message\nin the response for more details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
}
}
}
},
"/dcae-deployments/{deploymentId}": {
"put": {
"tags": [
"dcae-deployments"
],
"description": "Request deployment of a DCAE service\n",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "deploymentId",
"description": "Unique deployment identifier assigned by the API client.\n",
"in": "path",
"type": "string",
"required": true
},
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/DCAEDeploymentRequest"
},
"required": true
}
],
"responses": {
"202": {
"description": "Success: The content that was posted is valid, the dispatcher has\n found the needed blueprint, created an instance of the topology in the orchestrator,\n and started an installation workflow.\n",
"schema": {
"$ref": "#/definitions/DCAEDeploymentResponse"
}
},
"400": {
"description": "Bad request: See the message in the response for details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
},
"409": {
"description": "A service with the specified deployment Id already exists. Using PUT to update the service is not a supported operation.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
},
"415": {
"description": "Bad request: The Content-Type header does not indicate that the content is\n'application/json'\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
},
"500": {
"description": "Problem on the server side. See the message\nin the response for more details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
},
"502": {
"description": "Error reported to the dispatcher by a downstream system. See the message\nin the response for more details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
},
"504": {
"description": "Error communicating with a downstream system. See the message\nin the response for more details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
}
}
},
"delete": {
"tags": [
"dcae-deployments"
],
"description": "Uninstall the DCAE service and remove all associated data from the orchestrator.\n",
"parameters": [
{
"name": "deploymentId",
"description": "Deployment identifier for the service to be uninstalled.\n",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"202": {
"description": "Success: The dispatcher has initiated the uninstall operation.\n",
"schema": {
"$ref": "#/definitions/DCAEDeploymentResponse"
}
},
"400": {
"description": "Bad request: See the message in the response for details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
},
"500": {
"description": "Problem on the server side. See the message\nin the response for more details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
},
"502": {
"description": "Error reported to the dispatcher by a downstream system. See the message\nin the response for more details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
},
"504": {
"description": "Error communicating with a downstream system. See the message\nin the response for more details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
}
}
}
},
"/dcae-deployments/{deploymentId}/operation/{operationId}": {
"get": {
"tags": [
"dcae-deployments"
],
"description": "Get status of a deployment operation\n",
"parameters": [
{
"name": "deploymentId",
"in": "path",
"type": "string",
"required": true
},
{
"name": "operationId",
"in": "path",
"type": "string",
"required": true
}
],
"responses": {
"200": {
"description": "Status information retrieved successfully",
"schema": {
"$ref": "#/definitions/DCAEOperationStatusResponse"
}
},
"404": {
"description": "The operation information does not exist (possibly because the service has been uninstalled and deleted).",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
},
"500": {
"description": "Problem on the server side. See the message\nin the response for more details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
},
"502": {
"description": "Error reported to the dispatcher by a downstream system. See the message\nin the response for more details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
},
"504": {
"description": "Error communicating with a downstream system. See the message\nin the response for more details.\n",
"schema": {
"$ref": "#/definitions/DCAEErrorResponse"
}
}
}
}
},
"/policy": {
"post": {
"tags": [
"policy"
],
"description": "policy update API consumed by policy-handler",
"consumes": [
"application/json"
],
"produces": [
"application/json"
],
"parameters": [
{
"name": "body",
"in": "body",
"schema": {
"$ref": "#/definitions/DCAEPolicyRequest"
},
"required": true
}
],
"responses": {
"200": {
"description": "deployment-handler always responds with ok to /policy before processing the request"
}
}
}
},
"/policy/components": {
"get": {
"tags": [
"policy"
],
"description": "debug API to find policies on components",
"produces": [
"application/json"
],
"responses": {
"200": {
"description": "deployment-handler found components with or without policies in cloudify"
}
}
}
}
},
"definitions": {
"DCAEDeploymentRequest": {
"description": "Request for deploying a DCAE service.\n",
"type": "object",
"required": [
"serviceTypeId"
],
"properties": {
"serviceTypeId": {
"description": "The service type identifier (a unique ID assigned by DCAE inventory) for the service to be deployed.\n",
"type": "string"
},
"inputs": {
"description": "Object containing inputs needed by the service blueprint to create an instance of the service.\nContent of the object depends on the service being deployed.\n",
"type": "object"
}
}
},
"DCAEDeploymentResponse": {
"description": "Response body for a PUT or DELETE to /dcae-deployments/{deploymentId}\n",
"type": "object",
"required": [
"requestId",
"links"
],
"properties": {
"requestId": {
"type": "string",
"description": "Unique identifier for the request\n"
},
"links": {
"description": "Links that the API client can access.\n",
"type": "object",
"properties": {
"self": {
"type": "string",
"description": "Link used to retrieve information about the service being deployed\n"
},
"status": {
"type": "string",
"description": "Link used to retrieve information about the status of the installation workflow"
}
}
}
}
},
"DCAEOperationStatusResponse": {
"description": "Response body for a request for status of an installation or uninstallation operation.\n",
"type": "object",
"required": [
"requestId",
"operationType",
"status"
],
"properties": {
"requestId": {
"type": "string",
"description": "A unique identifier assigned to the request. Useful for tracing a request through logs.\n"
},
"operationType": {
"description": "Type of operation being reported on. (\"install\" or \"uninstall\")\n",
"type": "string"
},
"status": {
"description": "Status of the installation or uninstallation operation. Possible values are \"processing\",\n\"succeeded\", and \"failed\"\n",
"type": "string"
},
"error": {
"description": "If status is \"failed\", this field will be present and contain additional information about the reason the operation failed.\n",
"type": "string"
},
"links": {
"description": "If the operation succeeded, links that the client can follow to take further action. Note that a successful \"uninstall\" operation removes the DCAE service instance completely, so there are no possible further actions, and no links.\n",
"type": "object",
"properties": {
"self": {
"type": "string",
"description": "Link used to retrieve information about the service.\n"
},
"uninstall": {
"type": "string",
"description": "Link used to trigger an \"uninstall\" operation for the service. (Use the DELETE method.)"
}
}
}
}
},
"DCAEErrorResponse": {
"description": "Object reporting an error.\n",
"type": "object",
"required": [
"status"
],
"properties": {
"status": {
"description": "HTTP status code for the response",
"type": "integer"
},
"message": {
"description": "Human-readable description of the reason for the error",
"type": "string"
}
}
},
"DCAEDeploymentsListResponse": {
"description": "Object providing a list of deployments\n",
"type": "object",
"required": [
"requestId",
"deployments"
],
"properties": {
"requestId": {
"type": "string",
"description": "Unique identifier for the request\n"
},
"deployments": {
"type": "array",
"items": {
"type": "object",
"properties": {
"href": {
"type": "string",
"description": "URL for the service deployment\n"
}
}
}
}
}
},
"DCAEPolicyBody": {
"description": "policy_body - the whole object received from policy-engine",
"type": "object",
"required": [
"policyName",
"policyVersion",
"config"
],
"properties": {
"policyName": {
"description": "unique policy name that contains the version and extension",
"type": "string"
},
"policyVersion": {
"description": "stringified int that is autoincremented by policy-engine",
"type": "string"
},
"config": {
"description": "the policy-config - the config data provided by policy owner",
"type": "object"
}
}
},
"DCAEPolicy": {
"description": "policy object",
"type": "object",
"required": [
"policy_id",
"policy_body"
],
"properties": {
"policy_id": {
"description": "unique identifier of policy regardless of its version",
"type": "string"
},
"policy_body": {
"$ref": "#/definitions/DCAEPolicyBody"
}
}
},
"DCAEPolicyRequest": {
"description": "request to update policies on DCAE components.",
"type": "object",
"required": [
"catch_up",
"latest_policies",
"removed_policies"
],
"properties": {
"catch_up": {
"description": "flag to indicate whether the request contains all the policies in PDP or not",
"type": "boolean",
"default": false
},
"latest_policies": {
"description": "dictionary of (policy_id -> DCAEPolicy object).\nIn example: replace additionalProp1,2,3 with policy_id1,2,3 values\n",
"type": "object",
"default": {},
"additionalProperties": {
"$ref": "#/definitions/DCAEPolicy"
}
},
"removed_policies": {
"description": "whether policy was removed from policy-engine.\ndictionary of (policy_id -> true).\nIn example: replace additionalProp1,2,3 with policy_id1,2,3 values\n",
"type": "object",
"default": {},
"additionalProperties": {
"type": "boolean"
}
},
"errored_policies": {
"description": "whether policy-engine returned an error on the policy.\ndictionary of (policy_id -> true).\nIn example: replace additionalProp1,2,3 with policy_id1,2,3 values\n",
"type": "object",
"default": {},
"additionalProperties": {
"type": "boolean"
}
},
"errored_scopes": {
"description": "on cartchup - list of policy scope_prefix values on wchich the policy-engine experienced an error other than not-found data.\n",
"type": "array",
"items": {
"type": "string"
}
},
"scope_prefixes": {
"description": "on catchup - list of all scope_prefixes used by the policy-handler to retrieve the policies from policy-engine.\n",
"type": "array",
"items": {
"type": "string"
}
}
}
}
}
}