Skip to content
NebulaCtrldocs
HTTP APIEndpoints

Releases

Releases and deployments: deploy an image, watch a deployment, cancel it, roll back or promote. Each operation lists its method and path, parameters, request body, responses and an example call.

GET/api/v1/deployments/per-day

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Query Parameters

days?integer

How many trailing UTC calendar days to report, today inclusive.

Formatint64
Range1 <= value <= 400
Default371

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/deployments/per-day"
{  "$schema": "https://example.com/ListDeploymentsPerDayOutputBody.json",  "days": [    {      "date": "string",      "deployments": 0    }  ]}
GET/api/v1/deployments/stats

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Query Parameters

since?string

Inclusive lower time bound on when a counted deployment was created. Omit for the last 30 days.

Formatdate-time

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/deployments/stats"
{  "$schema": "https://example.com/DeploymentStatsOutputBody.json",  "medianSeconds": 0.1,  "p95Seconds": 0.1,  "sampleSize": 0}
GET/api/v1/deployments/{id}

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/deployments/string"
{  "$schema": "https://example.com/DeploymentDTO.json",  "approvalId": "string",  "blocker": "string",  "changeSetId": "string",  "changeSetMessage": "string",  "createdAt": "2019-08-24T14:15:22Z",  "downtimeAccepted": true,  "environmentId": "string",  "finishedAt": "2019-08-24T14:15:22Z",  "id": "string",  "kind": "string",  "message": "string",  "releaseId": "string",  "requestedBy": "string",  "serviceId": "string",  "stages": [    {      "detail": "string",      "endedAt": "2019-08-24T14:15:22Z",      "stage": "string",      "startedAt": "2019-08-24T14:15:22Z"    }  ],  "state": "string"}
POST/api/v1/deployments/{id}/cancel

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/v1/deployments/string/cancel"
{  "$schema": "https://example.com/DeploymentDTO.json",  "approvalId": "string",  "blocker": "string",  "changeSetId": "string",  "changeSetMessage": "string",  "createdAt": "2019-08-24T14:15:22Z",  "downtimeAccepted": true,  "environmentId": "string",  "finishedAt": "2019-08-24T14:15:22Z",  "id": "string",  "kind": "string",  "message": "string",  "releaseId": "string",  "requestedBy": "string",  "serviceId": "string",  "stages": [    {      "detail": "string",      "endedAt": "2019-08-24T14:15:22Z",      "stage": "string",      "startedAt": "2019-08-24T14:15:22Z"    }  ],  "state": "string"}
GET/api/v1/deployments/{id}/events

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Query Parameters

cursor?string

Opaque cursor from a previous response's nextCursor. Omit for the first page.

limit?integer

How many items to return.

Formatint64
Range1 <= value <= 200
Default50

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/deployments/string/events"
{  "$schema": "https://example.com/PageDeploymentEventDTO.json",  "items": [    {      "at": "2019-08-24T14:15:22Z",      "blocker": "string",      "decidedBy": "string",      "decision": "string",      "id": "string",      "kind": "string",      "message": "string",      "stage": "string"    }  ],  "nextCursor": "string"}
GET/api/v1/deployments/{id}/stream

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Response Body

text/event-stream

application/problem+json

curl -X GET "https://example.com/api/v1/deployments/string/stream"
[  {    "data": {      "blocker": "string",      "message": "string",      "stages": [        {          "detail": "string",          "endedAt": "2019-08-24T14:15:22Z",          "stage": "string",          "startedAt": "2019-08-24T14:15:22Z"        }      ],      "state": "string"    },    "event": "state",    "id": 0,    "retry": 0  }]
GET/api/v1/releases/{id}

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/releases/string"
{  "$schema": "https://example.com/GetReleaseOutputBody.json",  "deployment": {    "$schema": "https://example.com/DeploymentDTO.json",    "approvalId": "string",    "blocker": "string",    "changeSetId": "string",    "changeSetMessage": "string",    "createdAt": "2019-08-24T14:15:22Z",    "downtimeAccepted": true,    "environmentId": "string",    "finishedAt": "2019-08-24T14:15:22Z",    "id": "string",    "kind": "string",    "message": "string",    "releaseId": "string",    "requestedBy": "string",    "serviceId": "string",    "stages": [      {        "detail": "string",        "endedAt": "2019-08-24T14:15:22Z",        "stage": "string",        "startedAt": "2019-08-24T14:15:22Z"      }    ],    "state": "string"  },  "release": {    "buildId": "string",    "configRevision": 0,    "createdAt": "2019-08-24T14:15:22Z",    "createdBy": "string",    "gitCommitSha": "string",    "id": "string",    "imageRef": "string",    "number": 0,    "promotedFromReleaseId": "string",    "repositoryConfig": {      "commit": "string",      "effective": {        "buildArgs": {          "property1": "string",          "property2": "string"        },        "builder": "string",        "dependsOn": [          "string"        ],        "dockerfile": "string",        "env": {          "property1": "string",          "property2": "string"        },        "hasProcesses": true,        "mounts": [          {            "destination": "string",            "initialSize": 0,            "processes": [              "string"            ],            "source": "string"          }        ],        "processes": [          {            "checks": {              "liveness": "string",              "readiness": "string",              "startup": "string"            },            "cmd": [              "string"            ],            "cpu": {              "limit": 0,              "request": 0            },            "drainSeconds": 0,            "entrypoint": [              "string"            ],            "kind": "string",            "memory": {              "limit": 0,              "request": 0            },            "metrics": {              "enabled": true,              "path": "string",              "port": 0            },            "name": "string",            "port": 0,            "replicas": 0,            "runAsUser": 0,            "schedule": "string",            "stabilizationSeconds": 0          }        ],        "releaseCommand": [          "string"        ],        "releaseCommandTimeoutSeconds": 0,        "target": "string"      },      "path": "string"    },    "retiredAt": "2019-08-24T14:15:22Z",    "variableKeys": [      "string"    ]  }}
POST/api/v1/releases/{id}/rollback

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/v1/releases/string/rollback"
{  "$schema": "https://example.com/CreateResultDTO.json",  "approval": {    "$schema": "https://example.com/ApprovalDTO.json",    "changeSetId": "string",    "createdAt": "2019-08-24T14:15:22Z",    "decidedAt": "2019-08-24T14:15:22Z",    "decidedBy": "string",    "decision": "string",    "diff": null,    "environmentId": "string",    "expiresAt": "2019-08-24T14:15:22Z",    "id": "string",    "impact": null,    "kind": "deploy",    "reason": "string",    "requestedBy": "string",    "target": null  },  "deployment": {    "$schema": "https://example.com/DeploymentDTO.json",    "approvalId": "string",    "blocker": "string",    "changeSetId": "string",    "changeSetMessage": "string",    "createdAt": "2019-08-24T14:15:22Z",    "downtimeAccepted": true,    "environmentId": "string",    "finishedAt": "2019-08-24T14:15:22Z",    "id": "string",    "kind": "string",    "message": "string",    "releaseId": "string",    "requestedBy": "string",    "serviceId": "string",    "stages": [      {        "detail": "string",        "endedAt": "2019-08-24T14:15:22Z",        "stage": "string",        "startedAt": "2019-08-24T14:15:22Z"      }    ],    "state": "string"  },  "release": {    "buildId": "string",    "configRevision": 0,    "createdAt": "2019-08-24T14:15:22Z",    "createdBy": "string",    "gitCommitSha": "string",    "id": "string",    "imageRef": "string",    "number": 0,    "promotedFromReleaseId": "string",    "repositoryConfig": {      "commit": "string",      "effective": {        "buildArgs": {          "property1": "string",          "property2": "string"        },        "builder": "string",        "dependsOn": [          "string"        ],        "dockerfile": "string",        "env": {          "property1": "string",          "property2": "string"        },        "hasProcesses": true,        "mounts": [          {            "destination": "string",            "initialSize": 0,            "processes": [              "string"            ],            "source": "string"          }        ],        "processes": [          {            "checks": {              "liveness": "string",              "readiness": "string",              "startup": "string"            },            "cmd": [              "string"            ],            "cpu": {              "limit": 0,              "request": 0            },            "drainSeconds": 0,            "entrypoint": [              "string"            ],            "kind": "string",            "memory": {              "limit": 0,              "request": 0            },            "metrics": {              "enabled": true,              "path": "string",              "port": 0            },            "name": "string",            "port": 0,            "replicas": 0,            "runAsUser": 0,            "schedule": "string",            "stabilizationSeconds": 0          }        ],        "releaseCommand": [          "string"        ],        "releaseCommandTimeoutSeconds": 0,        "target": "string"      },      "path": "string"    },    "retiredAt": "2019-08-24T14:15:22Z",    "variableKeys": [      "string"    ]  },  "superseded": [    {      "deploymentId": "string",      "releaseNumber": 0,      "state": "string"    }  ]}
GET/api/v1/services/{id}/image-config

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Query Parameters

environmentId*string

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/services/string/image-config?environmentId=string"
{  "$schema": "https://example.com/ImageConfigBody.json",  "cmd": [    "string"  ],  "entrypoint": [    "string"  ],  "imageRef": "string",  "user": "string",  "workingDir": "string"}
POST/api/v1/services/{id}/promote

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/v1/services/string/promote" \  -H "Content-Type: application/json" \  -d '{    "releaseId": "string",    "toEnvironmentId": "string"  }'
{  "$schema": "https://example.com/CreateResultDTO.json",  "approval": {    "$schema": "https://example.com/ApprovalDTO.json",    "changeSetId": "string",    "createdAt": "2019-08-24T14:15:22Z",    "decidedAt": "2019-08-24T14:15:22Z",    "decidedBy": "string",    "decision": "string",    "diff": null,    "environmentId": "string",    "expiresAt": "2019-08-24T14:15:22Z",    "id": "string",    "impact": null,    "kind": "deploy",    "reason": "string",    "requestedBy": "string",    "target": null  },  "deployment": {    "$schema": "https://example.com/DeploymentDTO.json",    "approvalId": "string",    "blocker": "string",    "changeSetId": "string",    "changeSetMessage": "string",    "createdAt": "2019-08-24T14:15:22Z",    "downtimeAccepted": true,    "environmentId": "string",    "finishedAt": "2019-08-24T14:15:22Z",    "id": "string",    "kind": "string",    "message": "string",    "releaseId": "string",    "requestedBy": "string",    "serviceId": "string",    "stages": [      {        "detail": "string",        "endedAt": "2019-08-24T14:15:22Z",        "stage": "string",        "startedAt": "2019-08-24T14:15:22Z"      }    ],    "state": "string"  },  "release": {    "buildId": "string",    "configRevision": 0,    "createdAt": "2019-08-24T14:15:22Z",    "createdBy": "string",    "gitCommitSha": "string",    "id": "string",    "imageRef": "string",    "number": 0,    "promotedFromReleaseId": "string",    "repositoryConfig": {      "commit": "string",      "effective": {        "buildArgs": {          "property1": "string",          "property2": "string"        },        "builder": "string",        "dependsOn": [          "string"        ],        "dockerfile": "string",        "env": {          "property1": "string",          "property2": "string"        },        "hasProcesses": true,        "mounts": [          {            "destination": "string",            "initialSize": 0,            "processes": [              "string"            ],            "source": "string"          }        ],        "processes": [          {            "checks": {              "liveness": "string",              "readiness": "string",              "startup": "string"            },            "cmd": [              "string"            ],            "cpu": {              "limit": 0,              "request": 0            },            "drainSeconds": 0,            "entrypoint": [              "string"            ],            "kind": "string",            "memory": {              "limit": 0,              "request": 0            },            "metrics": {              "enabled": true,              "path": "string",              "port": 0            },            "name": "string",            "port": 0,            "replicas": 0,            "runAsUser": 0,            "schedule": "string",            "stabilizationSeconds": 0          }        ],        "releaseCommand": [          "string"        ],        "releaseCommandTimeoutSeconds": 0,        "target": "string"      },      "path": "string"    },    "retiredAt": "2019-08-24T14:15:22Z",    "variableKeys": [      "string"    ]  },  "superseded": [    {      "deploymentId": "string",      "releaseNumber": 0,      "state": "string"    }  ]}
POST/api/v1/services/{id}/redeploy

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/v1/services/string/redeploy" \  -H "Content-Type: application/json" \  -d '{    "environmentId": "string"  }'
{  "$schema": "https://example.com/CreateResultDTO.json",  "approval": {    "$schema": "https://example.com/ApprovalDTO.json",    "changeSetId": "string",    "createdAt": "2019-08-24T14:15:22Z",    "decidedAt": "2019-08-24T14:15:22Z",    "decidedBy": "string",    "decision": "string",    "diff": null,    "environmentId": "string",    "expiresAt": "2019-08-24T14:15:22Z",    "id": "string",    "impact": null,    "kind": "deploy",    "reason": "string",    "requestedBy": "string",    "target": null  },  "deployment": {    "$schema": "https://example.com/DeploymentDTO.json",    "approvalId": "string",    "blocker": "string",    "changeSetId": "string",    "changeSetMessage": "string",    "createdAt": "2019-08-24T14:15:22Z",    "downtimeAccepted": true,    "environmentId": "string",    "finishedAt": "2019-08-24T14:15:22Z",    "id": "string",    "kind": "string",    "message": "string",    "releaseId": "string",    "requestedBy": "string",    "serviceId": "string",    "stages": [      {        "detail": "string",        "endedAt": "2019-08-24T14:15:22Z",        "stage": "string",        "startedAt": "2019-08-24T14:15:22Z"      }    ],    "state": "string"  },  "release": {    "buildId": "string",    "configRevision": 0,    "createdAt": "2019-08-24T14:15:22Z",    "createdBy": "string",    "gitCommitSha": "string",    "id": "string",    "imageRef": "string",    "number": 0,    "promotedFromReleaseId": "string",    "repositoryConfig": {      "commit": "string",      "effective": {        "buildArgs": {          "property1": "string",          "property2": "string"        },        "builder": "string",        "dependsOn": [          "string"        ],        "dockerfile": "string",        "env": {          "property1": "string",          "property2": "string"        },        "hasProcesses": true,        "mounts": [          {            "destination": "string",            "initialSize": 0,            "processes": [              "string"            ],            "source": "string"          }        ],        "processes": [          {            "checks": {              "liveness": "string",              "readiness": "string",              "startup": "string"            },            "cmd": [              "string"            ],            "cpu": {              "limit": 0,              "request": 0            },            "drainSeconds": 0,            "entrypoint": [              "string"            ],            "kind": "string",            "memory": {              "limit": 0,              "request": 0            },            "metrics": {              "enabled": true,              "path": "string",              "port": 0            },            "name": "string",            "port": 0,            "replicas": 0,            "runAsUser": 0,            "schedule": "string",            "stabilizationSeconds": 0          }        ],        "releaseCommand": [          "string"        ],        "releaseCommandTimeoutSeconds": 0,        "target": "string"      },      "path": "string"    },    "retiredAt": "2019-08-24T14:15:22Z",    "variableKeys": [      "string"    ]  },  "superseded": [    {      "deploymentId": "string",      "releaseNumber": 0,      "state": "string"    }  ]}
GET/api/v1/services/{id}/releases

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Query Parameters

cursor?string

Opaque cursor from a previous response's nextCursor. Omit for the first page.

limit?integer

How many items to return.

Formatint64
Range1 <= value <= 200
Default50
environmentId*string

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/services/string/releases?environmentId=string"
{  "$schema": "https://example.com/PageReleaseDTO.json",  "items": [    {      "buildId": "string",      "configRevision": 0,      "createdAt": "2019-08-24T14:15:22Z",      "createdBy": "string",      "gitCommitSha": "string",      "id": "string",      "imageRef": "string",      "number": 0,      "promotedFromReleaseId": "string",      "repositoryConfig": {        "commit": "string",        "effective": {          "buildArgs": {            "property1": "string",            "property2": "string"          },          "builder": "string",          "dependsOn": [            "string"          ],          "dockerfile": "string",          "env": {            "property1": "string",            "property2": "string"          },          "hasProcesses": true,          "mounts": [            {              "destination": "string",              "initialSize": 0,              "processes": [                "string"              ],              "source": "string"            }          ],          "processes": [            {              "checks": {                "liveness": "string",                "readiness": "string",                "startup": "string"              },              "cmd": [                "string"              ],              "cpu": {                "limit": 0,                "request": 0              },              "drainSeconds": 0,              "entrypoint": [                "string"              ],              "kind": "string",              "memory": {                "limit": 0,                "request": 0              },              "metrics": {                "enabled": true,                "path": "string",                "port": 0              },              "name": "string",              "port": 0,              "replicas": 0,              "runAsUser": 0,              "schedule": "string",              "stabilizationSeconds": 0            }          ],          "releaseCommand": [            "string"          ],          "releaseCommandTimeoutSeconds": 0,          "target": "string"        },        "path": "string"      },      "retiredAt": "2019-08-24T14:15:22Z",      "variableKeys": [        "string"      ]    }  ],  "nextCursor": "string"}
POST/api/v1/services/{id}/releases

Authorization

AuthorizationBearer <token>

An API token, sent as Authorization: Bearer <token>. A token belongs to one organization and has the role it was created with, so it needs no X-Nebula-Organization header; if you send one, it must name the token's organization.

In: header

Path Parameters

id*string

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/v1/services/string/releases" \  -H "Content-Type: application/json" \  -d '{    "environmentId": "string",    "reference": "string"  }'
{  "$schema": "https://example.com/CreateResultDTO.json",  "approval": {    "$schema": "https://example.com/ApprovalDTO.json",    "changeSetId": "string",    "createdAt": "2019-08-24T14:15:22Z",    "decidedAt": "2019-08-24T14:15:22Z",    "decidedBy": "string",    "decision": "string",    "diff": null,    "environmentId": "string",    "expiresAt": "2019-08-24T14:15:22Z",    "id": "string",    "impact": null,    "kind": "deploy",    "reason": "string",    "requestedBy": "string",    "target": null  },  "deployment": {    "$schema": "https://example.com/DeploymentDTO.json",    "approvalId": "string",    "blocker": "string",    "changeSetId": "string",    "changeSetMessage": "string",    "createdAt": "2019-08-24T14:15:22Z",    "downtimeAccepted": true,    "environmentId": "string",    "finishedAt": "2019-08-24T14:15:22Z",    "id": "string",    "kind": "string",    "message": "string",    "releaseId": "string",    "requestedBy": "string",    "serviceId": "string",    "stages": [      {        "detail": "string",        "endedAt": "2019-08-24T14:15:22Z",        "stage": "string",        "startedAt": "2019-08-24T14:15:22Z"      }    ],    "state": "string"  },  "release": {    "buildId": "string",    "configRevision": 0,    "createdAt": "2019-08-24T14:15:22Z",    "createdBy": "string",    "gitCommitSha": "string",    "id": "string",    "imageRef": "string",    "number": 0,    "promotedFromReleaseId": "string",    "repositoryConfig": {      "commit": "string",      "effective": {        "buildArgs": {          "property1": "string",          "property2": "string"        },        "builder": "string",        "dependsOn": [          "string"        ],        "dockerfile": "string",        "env": {          "property1": "string",          "property2": "string"        },        "hasProcesses": true,        "mounts": [          {            "destination": "string",            "initialSize": 0,            "processes": [              "string"            ],            "source": "string"          }        ],        "processes": [          {            "checks": {              "liveness": "string",              "readiness": "string",              "startup": "string"            },            "cmd": [              "string"            ],            "cpu": {              "limit": 0,              "request": 0            },            "drainSeconds": 0,            "entrypoint": [              "string"            ],            "kind": "string",            "memory": {              "limit": 0,              "request": 0            },            "metrics": {              "enabled": true,              "path": "string",              "port": 0            },            "name": "string",            "port": 0,            "replicas": 0,            "runAsUser": 0,            "schedule": "string",            "stabilizationSeconds": 0          }        ],        "releaseCommand": [          "string"        ],        "releaseCommandTimeoutSeconds": 0,        "target": "string"      },      "path": "string"    },    "retiredAt": "2019-08-24T14:15:22Z",    "variableKeys": [      "string"    ]  },  "superseded": [    {      "deploymentId": "string",      "releaseNumber": 0,      "state": "string"    }  ]}