Skip to content

UI Cloud Platform Deployment Type Registry v1.2.0

This schema defines the REST API for the Deployment Type registry, which stores deployment type definitions. Deployment Types are used to describe deployments which are managed by the Deployment Management.

Contact: Cloud Operations

Operations

Tag: deploymentTypeRegistry

get-deploymentTypes

Operation Id: get-deploymentTypes

Action: GET /deployment-types

Summary: Retrieve list of existing deployment types

Parameters

Name In Type Required Description
byType query array[string] false 'Filter deployment types by deployment type identifier'

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Status Code 200

Name Type Required Restrictions Description
anonymous [DeploymentType] false none none
» id DeploymentTypeId true none The unique identifier of a deployment type
» displayName string false none none
» dependsOn DeploymentTypeDependencyList false none none
»» operator DeploymentTypeDependencyListOperator false none The operator to use while checking if a deployment has all required,
dependencies specified.

- allOf -> all specified dependencies must be included (specified) in a deployment
- anyOf -> at least one of the dependencies must be included (specified) in a deployment
- oneOf -> exactly one of the dependencies must be included (specified) in a deployment
»» items [DeploymentTypeId] true none [The unique identifier of a deployment type]
» disabled boolean false none none
» isConnector boolean false none Does this type connect at least two other deployment types.
» isContainer boolean false none Does this type act as a container in which other types can be deployed.
» parameters [DeploymentTypeParameter] false none Parameters for a deployment type. At least one parameter with isIdentifier=true must be specified,
which must be of type string.
»» type string true none none
»» name string true none none
»» readonly boolean false none A readonly parameter can only be set while creating a new deployment.
»» required boolean false none none
»» allowedValues [any] false none none
»» isIdentifier boolean false none none
»» default any false none none

Enumerated Values

Property Value
operator anyOf
operator allOf
operator oneOf

Example responses

200 Response

[
  {
    "id": "workspace.v1",
    "displayName": "Cloud Workspace",
    "isContainer": true,
    "parameters": [
      {
        "type": "string",
        "name": "name",
        "isIdentifier": true
      }
    ]
  },
  {
    "id": "environment.v1",
    "displayName": "Cloud Workspace Environment",
    "dependsOn": {
      "items": [
        "workspace.v1"
      ]
    },
    "isContainer": true,
    "parameters": [
      {
        "type": "string",
        "name": "name",
        "isIdentifier": true
      }
    ]
  }
]

400 Response

{
  "type": "/some/uri-reference",
  "title": "some title for the error situation",
  "status": 100,
  "detail": "some description for the error situation",
  "instance": "/some/uri-reference#specific-occurrence-context",
  "cause": {
    "code": "string",
    "message": "string",
    "target": "string",
    "details": [
      {
        "code": "string",
        "message": "string",
        "target": "string",
        "details": [
          {
            "code": null,
            "message": null,
            "target": null,
            "details": null,
            "innererror": null
          }
        ],
        "innererror": {
          "code": "string",
          "innererror": {}
        }
      }
    ],
    "innererror": {
      "code": "string",
      "innererror": {
        "code": "string",
        "innererror": {
          "code": null,
          "innererror": null
        }
      }
    }
  }
}

Note

This operation does not require authentication

Code samples

GET http://localhost:3000/deployment-types HTTP/1.1
Host: localhost:3000
Accept: application/json
# You can also use wget
curl -X GET http://localhost:3000/deployment-types \
  -H 'Accept: application/json'
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:3000/deployment-types', headers = headers)

print(r.json())

create-deploymentType

Operation Id: create-deploymentType

Action: POST /deployment-types

Summary: Create a new deployment type

Body parameter

{
  "id": "string",
  "displayName": "string",
  "dependsOn": {
    "operator": "anyOf",
    "items": [
      "string"
    ]
  },
  "disabled": false,
  "isConnector": false,
  "isContainer": false,
  "parameters": [
    {
      "type": "string",
      "name": "string",
      "readonly": false,
      "required": false,
      "allowedValues": [
        null
      ],
      "isIdentifier": false,
      "default": null
    }
  ]
}

Parameters

Name In Type Required Description
body body DeploymentType true none

Responses

Status Meaning Description Schema
201 Created Created Inline
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Status Code 201

Name Type Required Restrictions Description
» id DeploymentTypeId true none The unique identifier of a deployment type

Example responses

201 Response

{
  "id": "example.v1-alpha"
}

Note

This operation does not require authentication

Code samples

POST http://localhost:3000/deployment-types HTTP/1.1
Host: localhost:3000
Content-Type: application/json
Accept: application/json
# You can also use wget
curl -X POST http://localhost:3000/deployment-types \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('http://localhost:3000/deployment-types', headers = headers)

print(r.json())

get-deploymentType

Operation Id: get-deploymentType

Action: GET /deployment-types/{id}

Summary: Retrieve existing deployment type

Parameters

Name In Type Required Description
id path DeploymentTypeId true none

Responses

Status Meaning Description Schema
200 OK OK DeploymentType
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
404 Not Found The specified resource was not found Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Note

This operation does not require authentication

Code samples

GET http://localhost:3000/deployment-types/{id} HTTP/1.1
Host: localhost:3000
Accept: application/json
# You can also use wget
curl -X GET http://localhost:3000/deployment-types/{id} \
  -H 'Accept: application/json'
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:3000/deployment-types/{id}', headers = headers)

print(r.json())

update-deploymentType

Operation Id: update-deploymentType

Action: PATCH /deployment-types/{id}

Summary: Update deployment type

Body parameter

{
  "id": "string",
  "displayName": "string",
  "dependsOn": {
    "operator": "anyOf",
    "items": [
      "string"
    ]
  },
  "disabled": false,
  "isConnector": false,
  "isContainer": false,
  "parameters": [
    {
      "type": "string",
      "name": "string",
      "readonly": false,
      "required": false,
      "allowedValues": [
        null
      ],
      "isIdentifier": false,
      "default": null
    }
  ]
}

Parameters

Name In Type Required Description
id path DeploymentTypeId true none
body body DeploymentType true none

Responses

Status Meaning Description Schema
200 OK OK DeploymentType
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
404 Not Found The specified resource was not found Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Note

This operation does not require authentication

Code samples

PATCH http://localhost:3000/deployment-types/{id} HTTP/1.1
Host: localhost:3000
Content-Type: application/json
Accept: application/json
# You can also use wget
curl -X PATCH http://localhost:3000/deployment-types/{id} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.patch('http://localhost:3000/deployment-types/{id}', headers = headers)

print(r.json())

delete-deploymentType

Operation Id: delete-deploymentType

Action: DELETE /deployment-types/{id}

Summary: Delete deployment type

Parameters

Name In Type Required Description
id path DeploymentTypeId true none

Responses

Status Meaning Description Schema
204 No Content No Content None
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
404 Not Found The specified resource was not found Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Note

This operation does not require authentication

Code samples

DELETE http://localhost:3000/deployment-types/{id} HTTP/1.1
Host: localhost:3000
Accept: application/problem+json
# You can also use wget
curl -X DELETE http://localhost:3000/deployment-types/{id} \
  -H 'Accept: application/problem+json'
import requests
headers = {
  'Accept': 'application/problem+json'
}

r = requests.delete('http://localhost:3000/deployment-types/{id}', headers = headers)

print(r.json())

get-deploymentTypeHandlers

Operation Id: get-deploymentTypeHandlers

Action: GET /deployment-type-handlers

Summary: Retrieve list of existing deployment type handlers

Parameters

Name In Type Required Description
byType query array[string] false Filter deployment type handlers by deployment type identifier

Responses

Status Meaning Description Schema
200 OK OK Inline
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Status Code 200

Name Type Required Restrictions Description
anonymous [DeploymentTypeHandler] false none none
» deploymentTypeId DeploymentTypeId true none The unique identifier of a deployment type
» handlerType DeploymentTypeHandlerType true none none
» parameters [DeploymentTypeHandlerParameter] false none none
»» name string true none none
»» value any true none none

Example responses

200 Response

[
  {
    "deploymentTypeId": "workspace.v1",
    "handlerType": "webhook",
    "parameters": [
      {
        "name": "p1",
        "value": [
          1,
          2,
          3
        ]
      },
      {
        "name": "obj",
        "value": {
          "name": "Name",
          "item": "v1",
          "url": "http://localhost"
        }
      }
    ]
  },
  {
    "deploymentTypeId": "environment.v1",
    "handlerType": "container",
    "parameters": [
      {
        "name": "image",
        "value": "environment.handler:v1"
      },
      {
        "name": "obj",
        "value": {
          "name": "Name",
          "item": "v1",
          "url": "http://localhost"
        }
      }
    ]
  }
]

400 Response

{
  "type": "/some/uri-reference",
  "title": "some title for the error situation",
  "status": 100,
  "detail": "some description for the error situation",
  "instance": "/some/uri-reference#specific-occurrence-context",
  "cause": {
    "code": "string",
    "message": "string",
    "target": "string",
    "details": [
      {
        "code": "string",
        "message": "string",
        "target": "string",
        "details": [
          {
            "code": null,
            "message": null,
            "target": null,
            "details": null,
            "innererror": null
          }
        ],
        "innererror": {
          "code": "string",
          "innererror": {}
        }
      }
    ],
    "innererror": {
      "code": "string",
      "innererror": {
        "code": "string",
        "innererror": {
          "code": null,
          "innererror": null
        }
      }
    }
  }
}

Note

This operation does not require authentication

Code samples

GET http://localhost:3000/deployment-type-handlers HTTP/1.1
Host: localhost:3000
Accept: application/json
# You can also use wget
curl -X GET http://localhost:3000/deployment-type-handlers \
  -H 'Accept: application/json'
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:3000/deployment-type-handlers', headers = headers)

print(r.json())

create-deploymentTypeHandler

Operation Id: create-deploymentTypeHandler

Action: POST /deployment-type-handlers

Summary: Create a handler for a deployment type

Body parameter

{
  "deploymentTypeId": "string",
  "handlerType": "string",
  "parameters": [
    {
      "name": "string",
      "value": null
    }
  ]
}

Parameters

Name In Type Required Description
body body DeploymentTypeHandler true none

Responses

Status Meaning Description Schema
201 Created Created Inline
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Status Code 201

Name Type Required Restrictions Description
» id DeploymentTypeId true none The unique identifier of a deployment type

Example responses

201 Response

{
  "id": "example.v1-alpha"
}

Note

This operation does not require authentication

Code samples

POST http://localhost:3000/deployment-type-handlers HTTP/1.1
Host: localhost:3000
Content-Type: application/json
Accept: application/json
# You can also use wget
curl -X POST http://localhost:3000/deployment-type-handlers \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.post('http://localhost:3000/deployment-type-handlers', headers = headers)

print(r.json())

get-deploymentTypeHandler

Operation Id: get-deploymentTypeHandler

Action: GET /deployment-type-handlers/{deploymentType}

Summary: Retrieve existing deployment type handler

Parameters

Name In Type Required Description
deploymentType path DeploymentTypeId true none

Responses

Status Meaning Description Schema
200 OK OK DeploymentTypeHandler
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
404 Not Found The specified resource was not found Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Note

This operation does not require authentication

Code samples

GET http://localhost:3000/deployment-type-handlers/{deploymentType} HTTP/1.1
Host: localhost:3000
Accept: application/json
# You can also use wget
curl -X GET http://localhost:3000/deployment-type-handlers/{deploymentType} \
  -H 'Accept: application/json'
import requests
headers = {
  'Accept': 'application/json'
}

r = requests.get('http://localhost:3000/deployment-type-handlers/{deploymentType}', headers = headers)

print(r.json())

update-deploymentTypeHandler

Operation Id: update-deploymentTypeHandler

Action: PATCH /deployment-type-handlers/{deploymentType}

Summary: Update deployment type handler

Body parameter

{
  "deploymentTypeId": "string",
  "handlerType": "string",
  "parameters": [
    {
      "name": "string",
      "value": null
    }
  ]
}

Parameters

Name In Type Required Description
deploymentType path DeploymentTypeId true none
body body DeploymentTypeHandler true none

Responses

Status Meaning Description Schema
200 OK OK DeploymentTypeHandler
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
404 Not Found The specified resource was not found Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Note

This operation does not require authentication

Code samples

PATCH http://localhost:3000/deployment-type-handlers/{deploymentType} HTTP/1.1
Host: localhost:3000
Content-Type: application/json
Accept: application/json
# You can also use wget
curl -X PATCH http://localhost:3000/deployment-type-handlers/{deploymentType} \
  -H 'Content-Type: application/json' \
  -H 'Accept: application/json'
import requests
headers = {
  'Content-Type': 'application/json',
  'Accept': 'application/json'
}

r = requests.patch('http://localhost:3000/deployment-type-handlers/{deploymentType}', headers = headers)

print(r.json())

delete-deploymentTypeHandler

Operation Id: delete-deploymentTypeHandler

Action: DELETE /deployment-type-handlers/{deploymentType}

Summary: Delete deployment type handler

Parameters

Name In Type Required Description
deploymentType path DeploymentTypeId true none

Responses

Status Meaning Description Schema
204 No Content No Content None
400 Bad Request Bad Request Problem
401 Unauthorized Unauthorized Problem
404 Not Found The specified resource was not found Problem
422 Unprocessable Entity Unprocessable Entity Problem
500 Internal Server Error Internal Server Error Problem

Note

This operation does not require authentication

Code samples

DELETE http://localhost:3000/deployment-type-handlers/{deploymentType} HTTP/1.1
Host: localhost:3000
Accept: application/problem+json
# You can also use wget
curl -X DELETE http://localhost:3000/deployment-type-handlers/{deploymentType} \
  -H 'Accept: application/problem+json'
import requests
headers = {
  'Accept': 'application/problem+json'
}

r = requests.delete('http://localhost:3000/deployment-type-handlers/{deploymentType}', headers = headers)

print(r.json())

Schemas

InnerError

{
  "code": "string",
  "innererror": {
    "code": "string",
    "innererror": {
      "code": "string",
      "innererror": {
        "code": "string",
        "innererror": {
          "code": null,
          "innererror": null
        }
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
code string false none none
innererror InnerError false none none

Error

{
  "code": "string",
  "message": "string",
  "target": "string",
  "details": [
    {
      "code": "string",
      "message": "string",
      "target": "string",
      "details": [
        {
          "code": "string",
          "message": "string",
          "target": "string",
          "details": [
            {}
          ],
          "innererror": {
            "code": null,
            "innererror": null
          }
        }
      ],
      "innererror": {
        "code": "string",
        "innererror": {
          "code": "string",
          "innererror": {}
        }
      }
    }
  ],
  "innererror": {
    "code": "string",
    "innererror": {
      "code": "string",
      "innererror": {
        "code": "string",
        "innererror": {
          "code": null,
          "innererror": null
        }
      }
    }
  }
}

Properties

Name Type Required Restrictions Description
code string false none none
message string false none none
target string false none none
details [Error] false none none
innererror InnerError false none none

Problem

{
  "type": "/some/uri-reference",
  "title": "some title for the error situation",
  "status": 100,
  "detail": "some description for the error situation",
  "instance": "/some/uri-reference#specific-occurrence-context",
  "cause": {
    "code": "string",
    "message": "string",
    "target": "string",
    "details": [
      {
        "code": "string",
        "message": "string",
        "target": "string",
        "details": [
          {
            "code": null,
            "message": null,
            "target": null,
            "details": null,
            "innererror": null
          }
        ],
        "innererror": {
          "code": "string",
          "innererror": {}
        }
      }
    ],
    "innererror": {
      "code": "string",
      "innererror": {
        "code": "string",
        "innererror": {
          "code": null,
          "innererror": null
        }
      }
    }
  }
}

https://datatracker.ietf.org/doc/html/rfc7807

Properties

Name Type Required Restrictions Description
type string(uri) true none A URI reference that uniquely identifies the problem type only in the context of the provided API. Opposed to the specification in RFC-7807, it is neither recommended to be dereferenceable and point to a human-readable documentation nor globally unique for the problem type.
title string false none A short summary of the problem type. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
status integer(int32) false none The HTTP status code generated by the origin server for this occurrence of the problem.
detail string false none A human readable explanation specific to this occurrence of the problem that is helpful to locate the problem and give advice on how to proceed. Written in English and readable for engineers, usually not suited for non technical stakeholders and not localized.
instance string(uri-reference) false none A URI reference that identifies the specific occurrence of the problem, e.g. by adding a fragment identifier or sub-path to the problem type. May be used to locate the root of this problem in the source code.
cause Error false none none

DeploymentTypeId

"string"

The unique identifier of a deployment type

Properties

Name Type Required Restrictions Description
anonymous string false none The unique identifier of a deployment type

DeploymentTypeParameter

{
  "type": "string",
  "name": "string",
  "readonly": false,
  "required": false,
  "allowedValues": [
    null
  ],
  "isIdentifier": false,
  "default": null
}

Properties

Name Type Required Restrictions Description
type string true none none
name string true none none
readonly boolean false none A readonly parameter can only be set while creating a new deployment.
required boolean false none none
allowedValues [any] false none none
isIdentifier boolean false none none
default any false none none

DeploymentTypeDependencyListOperator

"anyOf"

The operator to use while checking if a deployment has all required, dependencies specified.

  • allOf -> all specified dependencies must be included (specified) in a deployment
  • anyOf -> at least one of the dependencies must be included (specified) in a deployment
  • oneOf -> exactly one of the dependencies must be included (specified) in a deployment

Properties

Name Type Required Restrictions Description
anonymous string false none The operator to use while checking if a deployment has all required,
dependencies specified.

- allOf -> all specified dependencies must be included (specified) in a deployment
- anyOf -> at least one of the dependencies must be included (specified) in a deployment
- oneOf -> exactly one of the dependencies must be included (specified) in a deployment

Enumerated Values

Property Value
anonymous anyOf
anonymous allOf
anonymous oneOf

DeploymentTypeDependencyList

{
  "operator": "anyOf",
  "items": [
    "string"
  ]
}

Properties

Name Type Required Restrictions Description
operator DeploymentTypeDependencyListOperator false none The operator to use while checking if a deployment has all required,
dependencies specified.

- allOf -> all specified dependencies must be included (specified) in a deployment
- anyOf -> at least one of the dependencies must be included (specified) in a deployment
- oneOf -> exactly one of the dependencies must be included (specified) in a deployment
items [DeploymentTypeId] true none [The unique identifier of a deployment type]

DeploymentType

{
  "id": "string",
  "displayName": "string",
  "dependsOn": {
    "operator": "anyOf",
    "items": [
      "string"
    ]
  },
  "disabled": false,
  "isConnector": false,
  "isContainer": false,
  "parameters": [
    {
      "type": "string",
      "name": "string",
      "readonly": false,
      "required": false,
      "allowedValues": [
        null
      ],
      "isIdentifier": false,
      "default": null
    }
  ]
}

Properties

Name Type Required Restrictions Description
id DeploymentTypeId true none The unique identifier of a deployment type
displayName string false none none
dependsOn DeploymentTypeDependencyList false none none
disabled boolean false none none
isConnector boolean false none Does this type connect at least two other deployment types.
isContainer boolean false none Does this type act as a container in which other types can be deployed.
parameters [DeploymentTypeParameter] false none Parameters for a deployment type. At least one parameter with isIdentifier=true must be specified,
which must be of type string.

DeploymentTypeHandlerType

"string"

Properties

Name Type Required Restrictions Description
anonymous string false none none

DeploymentTypeHandlerParameter

{
  "name": "string",
  "value": null
}

Properties

Name Type Required Restrictions Description
name string true none none
value any true none none

DeploymentTypeHandler

{
  "deploymentTypeId": "string",
  "handlerType": "string",
  "parameters": [
    {
      "name": "string",
      "value": null
    }
  ]
}

Properties

Name Type Required Restrictions Description
deploymentTypeId DeploymentTypeId true none The unique identifier of a deployment type
handlerType DeploymentTypeHandlerType true none none
parameters [DeploymentTypeHandlerParameter] false none none