Overview
HTTP verbs
RESTful notes tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP verbs.
Verb | Usage |
---|---|
|
Used to retrieve a resource |
|
Used to create a new resource |
|
Used to update an existing resource, including partial updates |
|
Used to delete an existing resource |
HTTP status codes
RESTful notes tries to adhere as closely as possible to standard HTTP and REST conventions in its use of HTTP status codes.
Status code | Usage |
---|---|
|
The request completed successfully |
|
A new resource has been created successfully. The resource’s URI is available from response body will include the location of the resource |
|
An update to an existing resource has been accepted successfully |
|
The request has been applied successfully |
|
The request was malformed. The response body will include an error providing further information |
|
The request requires user authentication. The response body and the headers will include an error providing further information |
|
The server understood the request, but is refusing to fulfill it. The response body and the headers will include an error providing further information |
|
The requested resource did not exist |
|
The request generated a conflict. The response body will include an error providing further information |
|
The request generated a server error. The response body will include an error providing further information |
Errors
Whenever an error response (status code >= 400) is returned, the body will contain a JSON object that describes the problem. The error object has the following structure:
Path | Type | Description |
---|---|---|
|
|
The HTTP status code |
|
|
The HTTP status name |
|
|
A displayable message describing the error |
For example, a request that attempts to apply a not existing deployment will produce a
404 Not Found
response:
HTTP/1.1 404 Not Found
Content-Type: application/json;charset=UTF-8
Content-Length: 68
{
"code" : 404,
"title" : "Not Found",
"message" : "Message"
}
Metadata
The Orchestrator adds hypermedia and pagination metadata in the responses.
Hypermedia
The Orchestrator uses hypermedia links (atom link) to other resources in the responses. Atom link element defines a reference from an entry or feed to a Web resource.
Path | Type | Description |
---|---|---|
|
|
means relationship. In this case, it’s a self-referencing hyperlink.More complex systems might include other relationships. |
|
|
Is a complete URL that uniquely defines the resource. |
Links to other resource:
Relation | Description |
---|---|
|
Self-referencing hyperlink |
|
Template reference hyperlink |
|
Resources reference hyperlink |
When the response is paginated, the response can include also this links:
Relation | Description |
---|---|
|
Hyperlink to the first page |
|
Hyperlink to the previous page |
|
Self-referencing hyperlink |
|
Self-referencing hyperlink |
|
Hyperlink to the last page |
Pagination
Rather than return everything from a large result, the Orchestrator response are paginated:
Path | Type | Description |
---|---|---|
|
|
The size of the page |
|
|
The total number of elements |
|
|
The total number of the page |
|
|
The current page |
Authentication
In order to use this APIs the REST client must authenticate via OAuth2 bearer token (RFC 6750)
Example request
$ curl 'http://localhost:8080/deployments?createdBy=498ea41d-3d48-4fda-b706-cd3fc0e065a4@https://iam-test.indigo-datacloud.eu/&userGroup=beta-testers&excludedStatus=DELETE_COMPLETE' -i -H 'Accept: application/json' -H 'Authorization: Bearer <access token>'
Authentication header
Name | Description |
---|---|
|
OAuth2 bearer token |
Deployment
This resource represents a TOSCA template deployment.
Get deployments
A GET
request is used to list all the deployments.
Request parameters
Parameter | Description |
---|---|
|
Optional parameter to filter the deployments based on who created them. The following values can be used:
|
|
Optional parameter to filter the deployments based on the user group |
|
Optional parameter to filter the deployments based on the status |
Example request
$ curl 'http://localhost:8080/deployments?createdBy=498ea41d-3d48-4fda-b706-cd3fc0e065a4@https://iam-test.indigo-datacloud.eu/&userGroup=beta-testers&excludedStatus=DELETE_COMPLETE' -i -H 'Accept: application/json' -H 'Authorization: Bearer <access token>'
GET /deployments?createdBy=498ea41d-3d48-4fda-b706-cd3fc0e065a4@https://iam-test.indigo-datacloud.eu/&userGroup=beta-testers&excludedStatus=DELETE_COMPLETE HTTP/1.1
Accept: application/json
Authorization: Bearer <access token>
Host: localhost:8080
Response structure
Path | Type | Description |
---|---|---|
|
|
The unique identifier of a resource |
|
|
Creation date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
Update date-time |
|
|
The status of the deployment. (http://infn-datacloud.github.io/orchestrator/apidocs/it/reply/orchestrator/enums/Status.html) |
|
|
Verbose explanation of reason that lead to the deployment status (Present only if the deploy is in some error status) |
|
|
The current step of the deployment process. (http://infn-datacloud.github.io/orchestrator/apidocs/it/reply/orchestrator/enums/Task.html) |
|
|
The OIDC info of the deployment’s creator. |
|
|
The user group of the deployment. |
|
|
The endpoint used by the orchestrator to notify the progress of the deployment process. |
|
|
The outputs of the TOSCA document |
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 3025
{
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/deployments?createdBy=498ea41d-3d48-4fda-b706-cd3fc0e065a4@https://iam-test.indigo-datacloud.eu/&userGroup=beta-testers&excludedStatus=DELETE_COMPLETE"
} ],
"content" : [ {
"uuid" : "decbda79-4b06-4985-a836-b4cf921d32f6",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"status" : "CREATE_FAILED",
"statusReason" : "Some reason",
"outputs" : { },
"task" : "NONE",
"callback" : "http://localhost",
"userGroup" : "beta-testers",
"createdBy" : {
"issuer" : "https://iam-test.indigo-datacloud.eu/",
"subject" : "498ea41d-3d48-4fda-b706-cd3fc0e065a4"
},
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/deployments/decbda79-4b06-4985-a836-b4cf921d32f6"
}, {
"rel" : "resources",
"href" : "http://localhost:8080/deployments/decbda79-4b06-4985-a836-b4cf921d32f6/resources?type={type}"
}, {
"rel" : "template",
"href" : "http://localhost:8080/deployments/decbda79-4b06-4985-a836-b4cf921d32f6/template"
} ]
}, {
"uuid" : "69b50cbd-2f96-49ea-b7ed-c504a06fd2cb",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"status" : "CREATE_COMPLETE",
"statusReason" : "deployment error",
"outputs" : { },
"task" : "NONE",
"callback" : "http://localhost",
"userGroup" : "beta-testers",
"createdBy" : {
"issuer" : "https://iam-test.indigo-datacloud.eu/",
"subject" : "498ea41d-3d48-4fda-b706-cd3fc0e065a4"
},
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/deployments/69b50cbd-2f96-49ea-b7ed-c504a06fd2cb"
}, {
"rel" : "resources",
"href" : "http://localhost:8080/deployments/69b50cbd-2f96-49ea-b7ed-c504a06fd2cb/resources?type={type}"
}, {
"rel" : "template",
"href" : "http://localhost:8080/deployments/69b50cbd-2f96-49ea-b7ed-c504a06fd2cb/template"
} ]
}, {
"uuid" : "ebdc6304-4908-4c93-8366-28b9da2d0fb0",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"status" : "DELETE_COMPLETE",
"statusReason" : "deployment error",
"outputs" : { },
"task" : "NONE",
"callback" : "http://localhost",
"userGroup" : "beta-testers",
"createdBy" : {
"issuer" : "https://iam-test.indigo-datacloud.eu/",
"subject" : "498ea41d-3d48-4fda-b706-cd3fc0e065a4"
},
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/deployments/ebdc6304-4908-4c93-8366-28b9da2d0fb0"
}, {
"rel" : "resources",
"href" : "http://localhost:8080/deployments/ebdc6304-4908-4c93-8366-28b9da2d0fb0/resources?type={type}"
}, {
"rel" : "template",
"href" : "http://localhost:8080/deployments/ebdc6304-4908-4c93-8366-28b9da2d0fb0/template"
} ]
} ],
"page" : {
"size" : 10,
"totalElements" : 3,
"totalPages" : 1,
"number" : 0
}
}
Create deployment
A POST
request is used to create a deployment.
Request Fields
Path | Type | Description |
---|---|---|
|
|
A string containing a TOSCA YAML-formatted template |
|
|
The input parameters of the deployment(Map of String, Object) |
|
|
The user group for which the deployment will be created (Optional, default empty string) |
|
|
The deployment callback URL (optional) |
|
|
The maximum number Cloud providers on which attempt to create the deployment (Optional, default unbounded) |
|
|
Overall timeout value, if provided, must be at least of 1 minute (Optional, default infinite) |
|
|
Provider timeout value, if provided, must be at least of 1 minute and equal or less than timeoutMins (Optional, default 14400 mins |
|
|
Whether the Orchestrator, in case of failure, will keep the resources of the last deploy attempt or not (Optional, default false) |
Example request
$ curl 'http://localhost:8080/deployments' -i -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer <access token>' -d '{
"template" : "template",
"parameters" : {
"cpus" : 1
},
"callback" : "http://localhost:8080/callback",
"timeoutMins" : 5,
"providerTimeoutMins" : 10,
"maxProvidersRetry" : 1,
"keepLastAttempt" : false,
"userGroup" : "beta-testers"
}'
POST /deployments HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access token>
Host: localhost:8080
Content-Length: 256
{
"template" : "template",
"parameters" : {
"cpus" : 1
},
"callback" : "http://localhost:8080/callback",
"timeoutMins" : 5,
"providerTimeoutMins" : 10,
"maxProvidersRetry" : 1,
"keepLastAttempt" : false,
"userGroup" : "beta-testers"
}
Response structure
Path | Type | Description |
---|---|---|
|
|
The unique identifier of a resource |
|
|
Creation date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
Update date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
The user group the deployment has been created for. |
|
|
The status of the deployment. (http://infn-datacloud.github.io/orchestrator/apidocs/it/reply/orchestrator/enums/Status.html) |
|
|
Contains error information for deployment |
|
|
The current step of the deployment process. (http://infn-datacloud.github.io/orchestrator/apidocs/it/reply/orchestrator/enums/Task.html) |
|
|
The outputs of the TOSCA document |
|
|
The endpoint used by the orchestrator to notify the progress of the deployment process. |
Example response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
Content-Length: 727
{
"uuid" : "0f21f18b-3dba-4b97-bbb9-4c9c2da6f008",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"status" : "CREATE_IN_PROGRESS",
"statusReason" : "deployment error",
"outputs" : { },
"task" : "NONE",
"callback" : "http://localhost:8080/callback",
"userGroup" : "beta-testers",
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/deployments/0f21f18b-3dba-4b97-bbb9-4c9c2da6f008"
}, {
"rel" : "resources",
"href" : "http://localhost:8080/deployments/0f21f18b-3dba-4b97-bbb9-4c9c2da6f008/resources?type={type}"
}, {
"rel" : "template",
"href" : "http://localhost:8080/deployments/0f21f18b-3dba-4b97-bbb9-4c9c2da6f008/template"
} ]
}
Get deployment
A GET
request is used to retrieve the deployment from the id.
Example request
$ curl 'http://localhost:8080/deployments/34483-d937-4578-bfdb-ebe196bf82dd' -i -H 'Authorization: Bearer <access token>'
GET /deployments/34483-d937-4578-bfdb-ebe196bf82dd HTTP/1.1
Authorization: Bearer <access token>
Host: localhost:8080
Response structure
Path | Type | Description |
---|---|---|
|
|
The unique identifier of a resource |
|
|
Creation date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
Update date-time |
|
|
The status of the deployment. (http://infn-datacloud.github.io/orchestrator/apidocs/it/reply/orchestrator/enums/Status.html) |
|
|
Verbose explanation of reason that lead to the deployment status (Present only if the deploy is in some error status) |
|
|
The user group the deployment was created for (as specified at creation time). |
|
|
The current step of the deployment process. (http://infn-datacloud.github.io/orchestrator/apidocs/it/reply/orchestrator/enums/Task.html) |
|
|
The endpoint used by the orchestrator to notify the progress of the deployment process. |
|
|
The outputs of the TOSCA document |
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 722
{
"uuid" : "34483-d937-4578-bfdb-ebe196bf82dd",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"status" : "CREATE_FAILED",
"statusReason" : "Some reason",
"outputs" : {
"server_ip" : "10.0.0.1"
},
"task" : "NONE",
"callback" : "http://localhost",
"userGroup" : "beta-testers",
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/deployments/34483-d937-4578-bfdb-ebe196bf82dd"
}, {
"rel" : "resources",
"href" : "http://localhost:8080/deployments/34483-d937-4578-bfdb-ebe196bf82dd/resources?type={type}"
}, {
"rel" : "template",
"href" : "http://localhost:8080/deployments/34483-d937-4578-bfdb-ebe196bf82dd/template"
} ]
}
Update deployment
A PUT
request is used to update the deployment from the id.
Example request
$ curl 'http://localhost:8080/deployments/34483-d937-4578-bfdb-ebe196bf82dd' -i -X PUT -H 'Content-Type: application/json' -H 'Authorization: Bearer <access token>' -d '{
"template" : "template",
"parameters" : {
"cpus" : 1
},
"callback" : "http://localhost:8080/callback",
"timeoutMins" : 5,
"providerTimeoutMins" : 10,
"maxProvidersRetry" : 1,
"keepLastAttempt" : false
}'
PUT /deployments/34483-d937-4578-bfdb-ebe196bf82dd HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access token>
Host: localhost:8080
Content-Length: 224
{
"template" : "template",
"parameters" : {
"cpus" : 1
},
"callback" : "http://localhost:8080/callback",
"timeoutMins" : 5,
"providerTimeoutMins" : 10,
"maxProvidersRetry" : 1,
"keepLastAttempt" : false
}
Example response
HTTP/1.1 202 Accepted
Reset deployment
A PATCH
request is used to reset the deployment state given the deployment id.
Usage tips: If a deployment remains stuck in DELETE_IN_PROGRESS, you can use this PATCH request to manually reset the state of the deployment to the DELETE_FAILED state. You can then try to delete the deployment again.
Request Fields
Path | Type | Description |
---|---|---|
|
|
State of the deployment to be set forcefully. Allowed values: DELETE_FAILED |
Example request
$ curl 'http://localhost:8080/deployments/34483-d937-4578-bfdb-ebe196bf82dd' -i -X PATCH -H 'Content-Type: application/json' -H 'Authorization: Bearer <access token>' -d '{
"status" : "DELETE_FAILED"
}'
PATCH /deployments/34483-d937-4578-bfdb-ebe196bf82dd HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access token>
Host: localhost:8080
Content-Length: 32
{
"status" : "DELETE_FAILED"
}
Example response
HTTP/1.1 204 No Content
Delete deployment
A DELETE
request is used to delete the deployment from the id.
Request parameters
Parameter | Description |
---|---|
|
Force the deletion of a deployment. Some of the resources created may not be removed. Optional, default false |
Example request
$ curl 'http://localhost:8080/deployments/34483-d937-4578-bfdb-ebe196bf82dd?force=false' -i -X DELETE -H 'Authorization: Bearer <access token>'
DELETE /deployments/34483-d937-4578-bfdb-ebe196bf82dd?force=false HTTP/1.1
Authorization: Bearer <access token>
Host: localhost:8080
Example response
HTTP/1.1 204 No Content
Get deployment extended info
A GET
request is used to retrieve the extended informations associated to a deployment.
This may be VM information for cloud deployments or JOB information for QCG
Example request
$ curl 'http://localhost:8080/deployments/34483-d937-4578-bfdb-ebe196bf82dd/extrainfo' -i -H 'Authorization: Bearer <access token>'
GET /deployments/34483-d937-4578-bfdb-ebe196bf82dd/extrainfo HTTP/1.1
Authorization: Bearer <access token>
Host: localhost:8080
Example response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 1092
{
"vmProperties" : [ {
"class" : "network",
"id" : "pub_network",
"outbound" : "yes",
"provider_id" : "external"
}, {
"class" : "network",
"id" : "priv_network",
"provider_id" : "provider-2099"
}, {
"class" : "system",
"id" : "simple_node1",
"instance_name" : "simple_node1-158799480931",
"disk.0.os.flavour" : "ubuntu",
"disk.0.image.url" : "ost://api.cloud.test.com/f46f7387-a371-44ec-9a2d-16a8f2a85786",
"cpu.count" : 1,
"memory.size" : 2097152000,
"instance_type" : "m1.small",
"net_interface.1.connection" : "pub_network",
"net_interface.0.connection" : "priv_network",
"cpu.arch" : "x86_64",
"disk.0.free_size" : 10737418240,
"disk.0.os.credentials.username" : "cloudadm",
"provider.type" : "OpenStack",
"provider.host" : "api.cloud.test.com",
"provider.port" : 5000,
"disk.0.os.credentials.private_key" : "",
"state" : "configured",
"instance_id" : "11d647dc-97f1-4347-8ede-ec83e2b64976",
"net_interface.0.ip" : "192.168.1.1",
"net_interface.1.ip" : "1.2.3.4"
} ]
}
Get deployment log
A GET
request is used to retrieve the infrastructure log associated to a deployment.
Example request
$ curl 'http://localhost:8080/deployments/34483-d937-4578-bfdb-ebe196bf82dd/log' -i -H 'Authorization: Bearer <access token>'
GET /deployments/34483-d937-4578-bfdb-ebe196bf82dd/log HTTP/1.1
Authorization: Bearer <access token>
Host: localhost:8080
Example response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 14
deployment log
Get template
A GET
request is used to retrieve the template associated to a deployment.
Example request
$ curl 'http://localhost:8080/deployments/082b066e-8cc1-4058-a13f-fc33d7883a5c/template' -i -H 'Authorization: Bearer <access token>'
GET /deployments/082b066e-8cc1-4058-a13f-fc33d7883a5c/template HTTP/1.1
Authorization: Bearer <access token>
Host: localhost:8080
Example response
HTTP/1.1 200 OK
Content-Type: text/plain;charset=UTF-8
Content-Length: 1267
tosca_definitions_version: tosca_simple_yaml_1_0
repositories:
indigo_repository:
description: INDIGO Custom types repository
url: https://raw.githubusercontent.com/indigo-dc/tosca-types/master/
imports:
- indigo_custom_types:
file: custom_types.yaml
repository: indigo_repository
description: >
TOSCA test for launching a Galaxy Server also configuring the bowtie2
tool using Galaxy Tool Shed.
topology_template:
node_templates:
bowtie2_galaxy_tool:
type: tosca.nodes.indigo.GalaxyShedTool
properties:
name: bowtie2
owner: devteam
tool_panel_section_id: ngs_mapping
requirements:
- host: galaxy
galaxy:
type: tosca.nodes.indigo.GalaxyPortal
requirements:
- lrms: local_lrms
local_lrms:
type: tosca.nodes.indigo.LRMS.FrontEnd.Local
requirements:
- host: galaxy_server
galaxy_server:
type: tosca.nodes.indigo.Compute
properties:
public_ip: yes
capabilities:
host:
properties:
num_cpus: 1
mem_size: 1 GB
os:
properties:
type: linux
outputs:
galaxy_url:
value: { get_attribute: [ galaxy_server, public_address ] }
Resource
This REST resource represents a TOSCA node of the template.
Get Resources
A GET
request is used to list all the resources of a deployment.
Resources can be filtered by tosca node type using the query parameter type
(see below).
Example request
$ curl 'http://localhost:8080/deployments/5b4d7fa8-20a9-4619-86f2-4349db108191/resources' -i -H 'Accept: application/json' -H 'Authorization: Bearer <access token>'
GET /deployments/5b4d7fa8-20a9-4619-86f2-4349db108191/resources HTTP/1.1
Accept: application/json
Authorization: Bearer <access token>
Host: localhost:8080
Response structure
Path | Type | Description |
---|---|---|
|
|
The unique identifier of a resource |
|
|
Creation date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
Update date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
The status of the resource. (http://infn-datacloud.github.io/orchestrator/apidocs/it/reply/orchestrator/enums/NodeStates.html) |
|
|
The type of the represented TOSCA node |
|
|
The name of the represented TOSCA node |
|
|
The Infrastructure ID of the object |
|
|
A list of nodes that require this resource |
|
|
Additional information |
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 5177
{
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/deployments/5b4d7fa8-20a9-4619-86f2-4349db108191/resources?page=0&size=10&sort=createdAt,desc"
} ],
"content" : [ {
"uuid" : "2b6f1d42-7243-4c37-a675-0b2b07c4c115",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"state" : "STARTED",
"toscaNodeType" : "tosca.nodes.network.Port",
"toscaNodeName" : "server_port1",
"requiredBy" : [ ],
"metadata" : { },
"links" : [ {
"rel" : "deployment",
"href" : "http://localhost:8080/deployments/5b4d7fa8-20a9-4619-86f2-4349db108191"
}, {
"rel" : "self",
"href" : "http://localhost:8080/deployments/5b4d7fa8-20a9-4619-86f2-4349db108191/resources/2b6f1d42-7243-4c37-a675-0b2b07c4c115"
} ]
}, {
"uuid" : "f52a3b7a-0448-42a0-ad6c-e554c43a3171",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"state" : "STARTED",
"toscaNodeType" : "tosca.nodes.network.Port",
"toscaNodeName" : "server_port2",
"requiredBy" : [ ],
"metadata" : { },
"links" : [ {
"rel" : "deployment",
"href" : "http://localhost:8080/deployments/5b4d7fa8-20a9-4619-86f2-4349db108191"
}, {
"rel" : "self",
"href" : "http://localhost:8080/deployments/5b4d7fa8-20a9-4619-86f2-4349db108191/resources/f52a3b7a-0448-42a0-ad6c-e554c43a3171"
} ]
}, {
"uuid" : "a09a8c3f-be6c-401e-b839-c374fab6675c",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"physicalId" : "0",
"state" : "STARTED",
"toscaNodeType" : "tosca.nodes.Compute",
"toscaNodeName" : "server",
"requiredBy" : [ ],
"metadata" : {
"VirtualMachineInfo" : "{\"vmProperties\":[{\"class\":\"network\",\"id\":\"pub_network\",\"outbound\":\"yes\",\"outports\":\"22/tcp-22/tcp\",\"provider_id\":\"public\"},{\"class\":\"network\",\"id\":\"priv_network\",\"provider_id\":\"INFN_Cloud_HSMDIS-net\"},{\"class\":\"system\",\"id\":\"simple_node\",\"instance_name\":\"simple-node-85d7d822-8ab3-11ed-b5a4-fa163ed94b64\",\"instance_tags\":\"PAAS_URL=http://localhost:8080,PAAS_DEP_UUID=11ed8ab3-6a40-968a-82b7-62f0862dbe46,PAAS_DEP_USER_EMAIL=Marica.Antonacci@ba.infn.it\",\"disk.0.os.flavour\":\"ubuntu\",\"disk.0.os.version\":\"20.04\",\"disk.0.image.url\":\"ost://keystone.cloud.infn.it/2b25c2c6-6398-45c6-9e00-3e7c58dbd750\",\"cpu.count\":1,\"memory.size\":2147483648,\"instance_type\":\"small\",\"net_interface.1.connection\":\"pub_network\",\"net_interface.0.connection\":\"priv_network\",\"cpu.arch\":\"x86_64\",\"disk.0.free_size\":10737418240,\"disk.0.os.credentials.username\":\"cloudadm\",\"provider.type\":\"OpenStack\",\"provider.host\":\"keystone.cloud.infn.it\",\"disk.0.os.credentials.private_key\":\"-----BEGIN RSA PRIVATE KEY-----\\nMIIEowIBAAKCAQEAxTIykFKQKLinzT8QqeJplp2VwegWZGCs07Yn9Su/veJYKdpq\\ny0S/6LKyNikCwYGu2o6ZRIEtj7Per3SexalK94fGLok+HwBkoLLYP3DJu93dgarB\\nM8ze/71gQhEj1YqhWj8ff31/M40/Wf7T91fv0FUNj/aBnpQS83UKDdUp5m5criRt\\n5s7Ji3vexmZN2a6peZytbzvUChlzJKH+vVaWAkte+H5QK7kVldyRjSiOsmArk4ng\\n4xoJtW3KvVDJTR5XHgmJgPmQv7lHGZVMSxcy9tUyZxGJ7Vj4wUIqR86VadgQ8Uez\\nR/khvIIB/yNyKkuLMOMc5MhFq/FkEctqXvZKvQIDAQABAoIBADQKFjvt/esxJ99L\\nSEt8256Kwa2lYNtmg9VvGcZioDwtElUhNdOktfxjxBH06qxEW++DeEES0gI9VoP5\\nA7ln/seqBgvb3g/yW5vo9pZvXl18pGsGs+vGogbdZByrR0igSAp35AkSBlKFcPWA\\nAVIh28Cf4W9ffz9pFkM3XMrfuSn8+TF21l2bZgRFxp2BnxUR7wm9jf9+IegaHYsN\\nHMPCslV1TMX3qFQsVNh/2OUAa/cER2ADmt6uF2QfpySXdPdvhvo8TKx3APqBgHEd\\nL7xXKACvsEb/X/sshC7G7QgZ6Hug/w0Dt2Nb57WbSKJMp5BNPgoPHlcTjFI2+Xf9\\n19tEbmUCgYEA1jsBxkuJs1/bN6btGR2QQ8B4sJ6b+W6QS2KvEl0VI8b86A+qE2/U\\nVonRbV506dqhuLoIOg6vUjI7ir69IWD+k1a7O3RS8esgCopWzp7GA9gACC0nEzeB\\nF9ZAeku35V44+CEyAS+PJ/rIU0wTYVmHmyvYNvuYZW6RSGbNk1Yk/QsCgYEA66Tx\\ni1fOVgQjk+93mUJyQ4GBijPeo1GZgH4wzFx5bQTilZcKtD9eoBlAXQYy6WYin16e\\n7oLuv9P4T6a7qEtDiPWDdcgIoeqhsHMnzT2dZPFWBD/AxFLetjmLUabBlSCiF3c3\\nmd0J+BOYWEbmiIya7lt/ntgA6xBBMQNLpDAkZFcCgYEAthaBc6JQ8H3RPoRLksVm\\nEbBO5RBrUp9/VhQS6nDjvv0ribOGw+6RdNy/fU6D4SFLxE+bHn3M1viLU2q8Jtri\\nhyl5CxfcSHOpUEw1bHnXpPy7SjfWtqa+uxwIweoJ7JMhqQXOEuPxsfGew+4tqtkG\\nQgYKSPGgntZT9k4q/ciCt/ECgYBv8fYF+nq9hk3Yk6S/nD9oLnf5zdZww+0mi8xm\\n6W+OCQoTgqPFKW2spRJcnvtEwg6ko3DhYjZFz09hl5YCx26X+/qt04+2TB7wEmTQ\\nLfs93yC7+AV9vtiqvP+glJXWYKBggXRalhWMUtLG7TfLmvBnV/Ry467b/Obbf/NJ\\nVs2TFQKBgH/VMnMItvJZNouemf0OxePr5nsQKc9eQvRlcXqwhvaHgFjPVzvhUKbN\\nEHSf2PpegkPodrqHgW4l9QezO2xHNkx4LMbHZE1R6dmzi6YYkEar9JuYyzvpwpC/\\nnXxK1hrvni/13VoWc2zZUn0YcEi8HXVBby7Y8hIkrg9GAgVzbt2k\\n-----END RSA PRIVATE KEY-----\\n\",\"state\":\"stopped\",\"instance_id\":\"38e9014e-a303-4f40-92a2-fae26e1fddfa\",\"net_interface.0.dns_name\":\"vnode-0\",\"net_interface.0.ip\":\"192.168.163.69\",\"net_interface.1.ip\":\"90.147.174.56\"}]}"
},
"links" : [ {
"rel" : "deployment",
"href" : "http://localhost:8080/deployments/5b4d7fa8-20a9-4619-86f2-4349db108191"
}, {
"rel" : "self",
"href" : "http://localhost:8080/deployments/5b4d7fa8-20a9-4619-86f2-4349db108191/resources/a09a8c3f-be6c-401e-b839-c374fab6675c"
} ]
} ],
"page" : {
"size" : 10,
"totalElements" : 3,
"totalPages" : 1,
"number" : 0
}
}
Request parameters
Parameter | Description |
---|---|
|
Optional parameter to filter the resources by tosca type. It can be the exact type of the node or a parent type. |
Example request
$ curl 'http://localhost:8080/deployments/31a62d0c-8a06-4fc6-bf89-84d06b3d51b7/resources?type=tosca.nodes.Compute' -i -H 'Accept: application/json' -H 'Authorization: Bearer <access token>'
GET /deployments/31a62d0c-8a06-4fc6-bf89-84d06b3d51b7/resources?type=tosca.nodes.Compute HTTP/1.1
Accept: application/json
Authorization: Bearer <access token>
Host: localhost:8080
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 3968
{
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/deployments/31a62d0c-8a06-4fc6-bf89-84d06b3d51b7/resources?type=tosca.nodes.Compute&page=0&size=10&sort=createdAt,desc"
} ],
"content" : [ {
"uuid" : "b0bb91a3-bcd7-4b65-8e33-5fbf2c2ac3ab",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"physicalId" : "0",
"state" : "STARTED",
"toscaNodeType" : "tosca.nodes.Compute",
"toscaNodeName" : "server",
"requiredBy" : [ ],
"metadata" : {
"VirtualMachineInfo" : "{\"vmProperties\":[{\"class\":\"network\",\"id\":\"pub_network\",\"outbound\":\"yes\",\"outports\":\"22/tcp-22/tcp\",\"provider_id\":\"public\"},{\"class\":\"network\",\"id\":\"priv_network\",\"provider_id\":\"INFN_Cloud_HSMDIS-net\"},{\"class\":\"system\",\"id\":\"simple_node\",\"instance_name\":\"simple-node-85d7d822-8ab3-11ed-b5a4-fa163ed94b64\",\"instance_tags\":\"PAAS_URL=http://localhost:8080,PAAS_DEP_UUID=11ed8ab3-6a40-968a-82b7-62f0862dbe46,PAAS_DEP_USER_EMAIL=Marica.Antonacci@ba.infn.it\",\"disk.0.os.flavour\":\"ubuntu\",\"disk.0.os.version\":\"20.04\",\"disk.0.image.url\":\"ost://keystone.cloud.infn.it/2b25c2c6-6398-45c6-9e00-3e7c58dbd750\",\"cpu.count\":1,\"memory.size\":2147483648,\"instance_type\":\"small\",\"net_interface.1.connection\":\"pub_network\",\"net_interface.0.connection\":\"priv_network\",\"cpu.arch\":\"x86_64\",\"disk.0.free_size\":10737418240,\"disk.0.os.credentials.username\":\"cloudadm\",\"provider.type\":\"OpenStack\",\"provider.host\":\"keystone.cloud.infn.it\",\"disk.0.os.credentials.private_key\":\"-----BEGIN RSA PRIVATE KEY-----\\nMIIEowIBAAKCAQEAxTIykFKQKLinzT8QqeJplp2VwegWZGCs07Yn9Su/veJYKdpq\\ny0S/6LKyNikCwYGu2o6ZRIEtj7Per3SexalK94fGLok+HwBkoLLYP3DJu93dgarB\\nM8ze/71gQhEj1YqhWj8ff31/M40/Wf7T91fv0FUNj/aBnpQS83UKDdUp5m5criRt\\n5s7Ji3vexmZN2a6peZytbzvUChlzJKH+vVaWAkte+H5QK7kVldyRjSiOsmArk4ng\\n4xoJtW3KvVDJTR5XHgmJgPmQv7lHGZVMSxcy9tUyZxGJ7Vj4wUIqR86VadgQ8Uez\\nR/khvIIB/yNyKkuLMOMc5MhFq/FkEctqXvZKvQIDAQABAoIBADQKFjvt/esxJ99L\\nSEt8256Kwa2lYNtmg9VvGcZioDwtElUhNdOktfxjxBH06qxEW++DeEES0gI9VoP5\\nA7ln/seqBgvb3g/yW5vo9pZvXl18pGsGs+vGogbdZByrR0igSAp35AkSBlKFcPWA\\nAVIh28Cf4W9ffz9pFkM3XMrfuSn8+TF21l2bZgRFxp2BnxUR7wm9jf9+IegaHYsN\\nHMPCslV1TMX3qFQsVNh/2OUAa/cER2ADmt6uF2QfpySXdPdvhvo8TKx3APqBgHEd\\nL7xXKACvsEb/X/sshC7G7QgZ6Hug/w0Dt2Nb57WbSKJMp5BNPgoPHlcTjFI2+Xf9\\n19tEbmUCgYEA1jsBxkuJs1/bN6btGR2QQ8B4sJ6b+W6QS2KvEl0VI8b86A+qE2/U\\nVonRbV506dqhuLoIOg6vUjI7ir69IWD+k1a7O3RS8esgCopWzp7GA9gACC0nEzeB\\nF9ZAeku35V44+CEyAS+PJ/rIU0wTYVmHmyvYNvuYZW6RSGbNk1Yk/QsCgYEA66Tx\\ni1fOVgQjk+93mUJyQ4GBijPeo1GZgH4wzFx5bQTilZcKtD9eoBlAXQYy6WYin16e\\n7oLuv9P4T6a7qEtDiPWDdcgIoeqhsHMnzT2dZPFWBD/AxFLetjmLUabBlSCiF3c3\\nmd0J+BOYWEbmiIya7lt/ntgA6xBBMQNLpDAkZFcCgYEAthaBc6JQ8H3RPoRLksVm\\nEbBO5RBrUp9/VhQS6nDjvv0ribOGw+6RdNy/fU6D4SFLxE+bHn3M1viLU2q8Jtri\\nhyl5CxfcSHOpUEw1bHnXpPy7SjfWtqa+uxwIweoJ7JMhqQXOEuPxsfGew+4tqtkG\\nQgYKSPGgntZT9k4q/ciCt/ECgYBv8fYF+nq9hk3Yk6S/nD9oLnf5zdZww+0mi8xm\\n6W+OCQoTgqPFKW2spRJcnvtEwg6ko3DhYjZFz09hl5YCx26X+/qt04+2TB7wEmTQ\\nLfs93yC7+AV9vtiqvP+glJXWYKBggXRalhWMUtLG7TfLmvBnV/Ry467b/Obbf/NJ\\nVs2TFQKBgH/VMnMItvJZNouemf0OxePr5nsQKc9eQvRlcXqwhvaHgFjPVzvhUKbN\\nEHSf2PpegkPodrqHgW4l9QezO2xHNkx4LMbHZE1R6dmzi6YYkEar9JuYyzvpwpC/\\nnXxK1hrvni/13VoWc2zZUn0YcEi8HXVBby7Y8hIkrg9GAgVzbt2k\\n-----END RSA PRIVATE KEY-----\\n\",\"state\":\"stopped\",\"instance_id\":\"38e9014e-a303-4f40-92a2-fae26e1fddfa\",\"net_interface.0.dns_name\":\"vnode-0\",\"net_interface.0.ip\":\"192.168.163.69\",\"net_interface.1.ip\":\"90.147.174.56\"}]}"
},
"links" : [ {
"rel" : "deployment",
"href" : "http://localhost:8080/deployments/31a62d0c-8a06-4fc6-bf89-84d06b3d51b7"
}, {
"rel" : "self",
"href" : "http://localhost:8080/deployments/31a62d0c-8a06-4fc6-bf89-84d06b3d51b7/resources/b0bb91a3-bcd7-4b65-8e33-5fbf2c2ac3ab"
} ]
} ],
"page" : {
"size" : 10,
"totalElements" : 1,
"totalPages" : 1,
"number" : 0
}
}
Get resource
A GET
request is used to retrieve the resource from the id.
Example request
$ curl 'http://localhost:8080/deployments/769d7702-2ec7-4ba5-8735-91da0ade6400/resources/dd1b5536-ff18-449f-bb2d-5fb133f013f5' -i -H 'Authorization: Bearer <access token>'
GET /deployments/769d7702-2ec7-4ba5-8735-91da0ade6400/resources/dd1b5536-ff18-449f-bb2d-5fb133f013f5 HTTP/1.1
Authorization: Bearer <access token>
Host: localhost:8080
Response structure
Path | Type | Description |
---|---|---|
|
|
The unique identifier of a resource |
|
|
Creation date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
Update date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
The status of the resource. (http://infn-datacloud.github.io/orchestrator/apidocs/it/reply/orchestrator/enums/NodeStates.html) |
|
|
The type of the represented TOSCA node |
|
|
The name of the represented TOSCA node |
|
|
The Infrastructure ID of the object |
|
|
A list of nodes that require this resource |
|
|
Additional information |
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 665
{
"uuid" : "dd1b5536-ff18-449f-bb2d-5fb133f013f5",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"physicalId" : "30a8d2d7-4c4b-42ad-b09a-b4a45d23fe9a",
"state" : "CREATING",
"toscaNodeType" : "tosca.nodes.Compute",
"toscaNodeName" : "node_30a8d2d7-4c4b-42ad-b09a-b4a45d23fe9a",
"requiredBy" : [ ],
"metadata" : { },
"links" : [ {
"rel" : "deployment",
"href" : "http://localhost:8080/deployments/769d7702-2ec7-4ba5-8735-91da0ade6400"
}, {
"rel" : "self",
"href" : "http://localhost:8080/deployments/769d7702-2ec7-4ba5-8735-91da0ade6400/resources/dd1b5536-ff18-449f-bb2d-5fb133f013f5"
} ]
}
Execute action on a resource
A POST
request is used to perform a specific action on the resource.
Currently the supported action types are: start
and stop
; these can be executed only on compute nodes (i.e. resources of types derived by tosca.nodes.Compute
) of cloud deployments.
Request Fields
Path | Type | Description |
---|---|---|
|
|
The type of action to perform. Allowed values: start, stop |
Example request
$ curl 'http://localhost:8080/deployments/11ed8ab3-6a40-968a-82b7-62f0862dbe46/resources/11ed8ab3-6b3a-5fdc-82b7-62f0862dbe46/actions' -i -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer <access token>' -d '{
"type" : "stop"
}'
POST /deployments/11ed8ab3-6a40-968a-82b7-62f0862dbe46/resources/11ed8ab3-6b3a-5fdc-82b7-62f0862dbe46/actions HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access token>
Host: localhost:8080
Content-Length: 21
{
"type" : "stop"
}
Example response
HTTP/1.1 202 Accepted
Configuration
This REST resource represents a TOSCA node of the template.
Get configuration
A GET
request is used to retrieve the endpoints of the services used by the Orchestrator.
Example request
$ curl 'http://localhost:8080/configuration' -i -H 'Accept: application/json'
GET /configuration HTTP/1.1
Accept: application/json
Host: localhost:8080
Response structure
Path | Type | Description |
---|---|---|
|
|
The URI of the Cloud Provider Ranker |
|
|
The URI of the SLAM (Service Level Agreement Manager) |
|
|
The URI of the CMDB (Change Management DataBase) |
|
|
The URI of the IM (Infrastructure Manager) |
|
|
The URI of the Monitoring Service |
|
|
The URI of the Vault Server (optional) |
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 342
{
"cpr_url" : "http://deep-cpr.test.infn.it:8080",
"slam_url" : "https://deep-slam.test.infn.it:8443/rest/slam",
"cmdb_url" : "https://deep-paas-dev.test.infn.it/cmdb",
"im_url" : "https://deep-paas.test.infn.it/im",
"monitoring_url" : "https://deep-paas.test.infn.it/monitoring",
"vault_url" : "https://vault.test.infn.it:8200"
}
Deployment Schedules
This REST resource represents a deployment Schedule.
Get deployment schedules
A GET
request is used to list all the deployment schedules.
Request parameters
Parameter | Description |
---|---|
|
Optional parameter to filter the deployments based on who created them. The following values can be used:
|
Example request
$ curl 'http://localhost:8080/schedules?createdBy=ee46889c-4427-469f-8fc3-f22b7e032fc4@https://iam-test.indigo-datacloud.eu/' -i -H 'Accept: application/json' -H 'Authorization: Bearer <access token>'
GET /schedules?createdBy=ee46889c-4427-469f-8fc3-f22b7e032fc4@https://iam-test.indigo-datacloud.eu/ HTTP/1.1
Accept: application/json
Authorization: Bearer <access token>
Host: localhost:8080
Response structure
Path | Type | Description |
---|---|---|
|
|
The unique identifier of a resource |
|
|
The replication expression of the main replication rule |
|
|
The file expression to match newly created files |
|
|
The number of replicas of the main replication rule |
|
|
Creation date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
Update date-time |
|
|
The status of the deployment schedule. (http://infn-datacloud.github.io/orchestrator/apidocs/it/reply/orchestrator/enums/DeploymentScheduleStatus.html) |
|
|
The OIDC info of the deployment schedule’s creator. |
|
|
The endpoint used by the orchestrator to notify the progress of the deployment schedule event process. |
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1492
{
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/schedules?createdBy=ee46889c-4427-469f-8fc3-f22b7e032fc4@https://iam-test.indigo-datacloud.eu/"
} ],
"content" : [ {
"uuid" : "55f5bf38-45a7-4c84-9657-d42ce3e52f44",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"status" : "RUNNING",
"replicationExpression" : "RSE_RECAS",
"fileExpression" : "scope:name*",
"callback" : "http://localhost",
"numberOfReplicas" : 1,
"createdBy" : {
"issuer" : "https://iam-test.indigo-datacloud.eu/",
"subject" : "ee46889c-4427-469f-8fc3-f22b7e032fc4"
},
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/schedules/55f5bf38-45a7-4c84-9657-d42ce3e52f44"
} ]
}, {
"uuid" : "eb6a4329-f77a-40d9-9acd-0295a47c80a0",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"status" : "SUSPENDED",
"replicationExpression" : "RSE_RECAS",
"fileExpression" : "scope:name*",
"callback" : "http://localhost",
"numberOfReplicas" : 1,
"createdBy" : {
"issuer" : "https://iam-test.indigo-datacloud.eu/",
"subject" : "ee46889c-4427-469f-8fc3-f22b7e032fc4"
},
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/schedules/eb6a4329-f77a-40d9-9acd-0295a47c80a0"
} ]
} ],
"page" : {
"size" : 10,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}
Create deployment schedule
A POST
request is used to create a deployment schedule.
Request Fields
Path | Type | Description |
---|---|---|
|
|
A string containing a TOSCA YAML-formatted template |
|
|
The input parameters of the deployment(Map of String, Object) |
|
|
The deployment callback URL (optional) |
|
|
The maximum number Cloud providers on which attempt to create the deployment (Optional, default unbounded) |
|
|
Overall timeout value, if provided, must be at least of 1 minute (Optional, default infinite) |
|
|
Provider timeout value, if provided, must be at least of 1 minute and equal or less than timeoutMins (Optional, default 14400 mins |
|
|
Whether the Orchestrator, in case of failure, will keep the resources of the last deploy attempt or not (Optional, default false) |
|
|
The replication expression of the main replication rule |
|
|
The file expression to match newly created files |
|
|
The number of replicas of the main replication rule |
Example request
$ curl 'http://localhost:8080/schedules' -i -X POST -H 'Content-Type: application/json' -H 'Authorization: Bearer <access token>' -d '{
"template" : "template",
"parameters" : {
"cpus" : 1
},
"callback" : "http://localhost:8080/callback",
"timeoutMins" : 5,
"providerTimeoutMins" : 10,
"maxProvidersRetry" : 1,
"keepLastAttempt" : false,
"fileExpression" : "scope:name*",
"replicationExpression" : "RSE_RECAS",
"numberOfReplicas" : 1
}'
POST /schedules HTTP/1.1
Content-Type: application/json
Authorization: Bearer <access token>
Host: localhost:8080
Content-Length: 327
{
"template" : "template",
"parameters" : {
"cpus" : 1
},
"callback" : "http://localhost:8080/callback",
"timeoutMins" : 5,
"providerTimeoutMins" : 10,
"maxProvidersRetry" : 1,
"keepLastAttempt" : false,
"fileExpression" : "scope:name*",
"replicationExpression" : "RSE_RECAS",
"numberOfReplicas" : 1
}
Response structure
Path | Type | Description |
---|---|---|
|
|
The replication expression of the main replication rule |
|
|
The file expression to match newly created files |
|
|
The number of replicas of the main replication rule |
|
|
The unique identifier of a resource |
|
|
Creation date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
Update date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
The status of the deployment. (http://infn-datacloud.github.io/orchestrator/apidocs/it/reply/orchestrator/enums/Status.html) |
|
|
The endpoint used by the orchestrator to notify the progress of the deployment process. |
Example response
HTTP/1.1 201 Created
Content-Type: application/json;charset=UTF-8
Content-Length: 442
{
"uuid" : "76692a84-a859-4b02-bb7b-a5c82750598e",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"status" : "RUNNING",
"replicationExpression" : "RSE_RECAS",
"fileExpression" : "scope:name*",
"callback" : "http://localhost:8080/callback",
"numberOfReplicas" : 1,
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/schedules/76692a84-a859-4b02-bb7b-a5c82750598e"
} ]
}
Get deployment schedule
A GET
request is used to retrieve a deployment schedule from the id.
Example request
$ curl 'http://localhost:8080/schedules/mmd34483-d937-4578-bfdb-ebe196bf82dd' -i -H 'Authorization: Bearer <access token>'
GET /schedules/mmd34483-d937-4578-bfdb-ebe196bf82dd HTTP/1.1
Authorization: Bearer <access token>
Host: localhost:8080
Response structure
Path | Type | Description |
---|---|---|
|
|
The unique identifier of a resource |
|
|
The replication expression of the main replication rule |
|
|
The file expression to match newly created files |
|
|
The number of replicas of the main replication rule |
|
|
Creation date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
Update date-time |
|
|
The status of the deployment schedule. (http://infn-datacloud.github.io/orchestrator/apidocs/it/reply/orchestrator/enums/DeploymentScheduleStatus.html) |
|
|
The endpoint used by the orchestrator to notify the progress of the deployment schedule event process. |
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 428
{
"uuid" : "mmd34483-d937-4578-bfdb-ebe196bf82dd",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"status" : "RUNNING",
"replicationExpression" : "RSE_RECAS",
"fileExpression" : "scope:name*",
"callback" : "http://localhost",
"numberOfReplicas" : 1,
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/schedules/mmd34483-d937-4578-bfdb-ebe196bf82dd"
} ]
}
Deployment Schedule Event
This REST resource represents a fired event of a deployment schedule.
Get Deployment Schedule Events
A GET
request is used to list all the events of a deployment schedule.
Example request
$ curl 'http://localhost:8080/schedules/mmd34483-d937-4578-bfdb-ebe196bf82dd/events' -i -H 'Authorization: Bearer <access token>'
GET /schedules/mmd34483-d937-4578-bfdb-ebe196bf82dd/events HTTP/1.1
Authorization: Bearer <access token>
Host: localhost:8080
Response structure
Path | Type | Description |
---|---|---|
|
|
The deployment created because of this event |
|
|
The unique identifier of the event |
|
|
Creation date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
Update date-time (http://xml2rfc.ietf.org/public/rfc/html/rfc3339.html#anchor14) |
|
|
The scope of the file triggering the event |
|
|
The name of the file triggering the event |
|
|
The replication status of the main replication rule |
Example response
HTTP/1.1 200 OK
Content-Type: application/json;charset=UTF-8
Content-Length: 1542
{
"links" : [ {
"rel" : "self",
"href" : "http://localhost:8080/schedules/mmd34483-d937-4578-bfdb-ebe196bf82dd/events?page=0&size=10&sort=createdAt,desc"
} ],
"content" : [ {
"uuid" : "a2c8674b-8c0c-4778-8c2d-27433e703202",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"deployment" : {
"uuid" : "c2706d20-430c-4887-bae4-4c5519c81848",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"status" : "CREATE_IN_PROGRESS",
"statusReason" : "deployment error",
"outputs" : { },
"task" : "NONE",
"callback" : "http://localhost",
"links" : [ ]
},
"scope" : "file-scope",
"name" : "file-name",
"replicationStatus" : "REPLICATING",
"links" : [ ]
}, {
"uuid" : "b3bddfad-849a-4c1c-aefa-fb3af275fb68",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"deployment" : {
"uuid" : "807d3b00-8c63-4a48-b06d-02ccdebf6fe6",
"creationTime" : "2025-06-23T13:26+0000",
"updateTime" : "2025-06-23T13:26+0000",
"status" : "CREATE_IN_PROGRESS",
"statusReason" : "deployment error",
"outputs" : { },
"task" : "NONE",
"callback" : "http://localhost",
"links" : [ ]
},
"scope" : "file-scope",
"name" : "file-name",
"replicationStatus" : "REPLICATING",
"links" : [ ]
} ],
"page" : {
"size" : 10,
"totalElements" : 2,
"totalPages" : 1,
"number" : 0
}
}