Skip to content
NebulaCtrldocs
HTTP APIEndpoints

Projects

Projects and their environments. Each operation lists its method and path, parameters, request body, responses and an example call.

Get one environment.

GET/api/v1/environments/{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/environments/string"
{  "$schema": "https://example.com/EnvironmentBody.json",  "autoDeploy": true,  "clusterId": "string",  "createdAt": "2019-08-24T14:15:22Z",  "gitBranch": "string",  "id": "string",  "kind": "persistent",  "name": "string",  "namespace": "string",  "preview": {    "author": "string",    "baseEnvironmentId": "string",    "expiresAfterSeconds": 0,    "expiresAt": "2019-08-24T14:15:22Z",    "headRef": "string",    "headSha": "string",    "lastActivityAt": "2019-08-24T14:15:22Z",    "number": 0,    "title": "string",    "url": "string"  },  "production": true,  "projectId": "string",  "slug": "string"}
PATCH/api/v1/environments/{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

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X PATCH "https://example.com/api/v1/environments/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "$schema": "https://example.com/EnvironmentBody.json",  "autoDeploy": true,  "clusterId": "string",  "createdAt": "2019-08-24T14:15:22Z",  "gitBranch": "string",  "id": "string",  "kind": "persistent",  "name": "string",  "namespace": "string",  "preview": {    "author": "string",    "baseEnvironmentId": "string",    "expiresAfterSeconds": 0,    "expiresAt": "2019-08-24T14:15:22Z",    "headRef": "string",    "headSha": "string",    "lastActivityAt": "2019-08-24T14:15:22Z",    "number": 0,    "title": "string",    "url": "string"  },  "production": true,  "projectId": "string",  "slug": "string"}

Delete an environment.

DELETE/api/v1/environments/{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/problem+json

curl -X DELETE "https://example.com/api/v1/environments/string"
Empty
GET/api/v1/environments/{id}/deletion-impact

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/environments/string/deletion-impact"
{  "$schema": "https://example.com/EnvironmentDeletionImpactBody.json",  "archives": 0,  "backups": {    "count": 0,    "sizeBytes": 0  },  "cluster": {    "id": "string",    "name": "string",    "removesNamespace": true  },  "databases": [    {      "engine": "string",      "id": "string",      "name": "string"    }  ],  "domains": [    {      "exposure": "string",      "hostname": "string"    }  ],  "environment": {    "id": "string",    "name": "string",    "production": true,    "slug": "string"  },  "inFlightDeployments": 0,  "lastEnvironment": true,  "namespace": "string",  "pendingApprovals": 0,  "previewBase": true,  "previews": 0,  "services": [    {      "id": "string",      "name": "string"    }  ],  "stagedServices": [    {      "id": "string",      "name": "string"    }  ],  "variables": 0,  "volumes": {    "count": 0,    "sizeBytes": 0  }}
GET/api/v1/environments/{id}/overview

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/environments/string/overview"
{  "$schema": "https://example.com/OverviewOutputBody.json",  "services": [    {      "activeDeployedAt": "2019-08-24T14:15:22Z",      "activeReleaseDigest": "string",      "activeReleaseId": "string",      "activeReleaseNumber": 0,      "blocker": "string",      "domainCount": 0,      "failedDeployment": {        "blocker": "string",        "finishedAt": "2019-08-24T14:15:22Z",        "id": "string",        "message": "string",        "releaseNumber": 0      },      "health": "string",      "lastDeploymentId": "string",      "lastDeploymentKind": "string",      "message": "string",      "pendingDeployment": {        "id": "string",        "kind": "string",        "releaseNumber": 0,        "state": "string"      },      "replicasDesired": 0,      "replicasReady": 0,      "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"      },      "serviceId": "string",      "serviceName": "string",      "serviceSlug": "string",      "stagedIn": {        "changeSetId": "string",        "environmentId": "string",        "stagedBy": {          "id": "string",          "name": "string"        }      },      "stages": [        {          "detail": "string",          "endedAt": "2019-08-24T14:15:22Z",          "stage": "string",          "startedAt": "2019-08-24T14:15:22Z"        }      ],      "suspended": true    }  ]}
GET/api/v1/projects

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

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/projects"
{  "$schema": "https://example.com/PageProjectBody.json",  "items": [    {      "$schema": "https://example.com/ProjectBody.json",      "createdAt": "2019-08-24T14:15:22Z",      "deployConcurrency": 0,      "description": "string",      "id": "string",      "name": "string",      "owner": {        "email": "string",        "id": "string",        "name": "string",        "picture": "string"      },      "slug": "string",      "team": {        "id": "string",        "name": "string"      }    }  ],  "nextCursor": "string"}
POST/api/v1/projects

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

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/projects" \  -H "Content-Type: application/json" \  -d '{    "name": "string"  }'
{  "$schema": "https://example.com/CreateProjectBody.json",  "defaultEnvironmentsCreated": true,  "environments": [    {      "$schema": "https://example.com/EnvironmentBody.json",      "autoDeploy": true,      "clusterId": "string",      "createdAt": "2019-08-24T14:15:22Z",      "gitBranch": "string",      "id": "string",      "kind": "persistent",      "name": "string",      "namespace": "string",      "preview": {        "author": "string",        "baseEnvironmentId": "string",        "expiresAfterSeconds": 0,        "expiresAt": "2019-08-24T14:15:22Z",        "headRef": "string",        "headSha": "string",        "lastActivityAt": "2019-08-24T14:15:22Z",        "number": 0,        "title": "string",        "url": "string"      },      "production": true,      "projectId": "string",      "slug": "string"    }  ],  "project": {    "$schema": "https://example.com/ProjectBody.json",    "createdAt": "2019-08-24T14:15:22Z",    "deployConcurrency": 0,    "description": "string",    "id": "string",    "name": "string",    "owner": {      "email": "string",      "id": "string",      "name": "string",      "picture": "string"    },    "slug": "string",    "team": {      "id": "string",      "name": "string"    }  }}

Get one project.

GET/api/v1/projects/{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/projects/string"
{  "$schema": "https://example.com/ProjectBody.json",  "createdAt": "2019-08-24T14:15:22Z",  "deployConcurrency": 0,  "description": "string",  "id": "string",  "name": "string",  "owner": {    "email": "string",    "id": "string",    "name": "string",    "picture": "string"  },  "slug": "string",  "team": {    "id": "string",    "name": "string"  }}
PATCH/api/v1/projects/{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

Request Body

application/json

TypeScript Definitions

Use the request body type in TypeScript.

Response Body

application/json

application/problem+json

curl -X PATCH "https://example.com/api/v1/projects/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "$schema": "https://example.com/ProjectBody.json",  "createdAt": "2019-08-24T14:15:22Z",  "deployConcurrency": 0,  "description": "string",  "id": "string",  "name": "string",  "owner": {    "email": "string",    "id": "string",    "name": "string",    "picture": "string"  },  "slug": "string",  "team": {    "id": "string",    "name": "string"  }}
DELETE/api/v1/projects/{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/problem+json

curl -X DELETE "https://example.com/api/v1/projects/string"
Empty
GET/api/v1/projects/{id}/cluster-recommendation

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/projects/string/cluster-recommendation"
{  "$schema": "https://example.com/ClusterRecommendationBody.json",  "clusterId": "string",  "clusterName": "string",  "clusterSlug": "string",  "reason": "string"}
GET/api/v1/projects/{id}/deletion-impact

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/projects/string/deletion-impact"
{  "$schema": "https://example.com/ProjectDeletionImpactBody.json",  "archives": 0,  "backups": {    "count": 0,    "sizeBytes": 0  },  "databases": 0,  "domains": 0,  "environments": [    {      "id": "string",      "name": "string",      "production": true,      "slug": "string"    }  ],  "project": {    "id": "string",    "name": "string",    "slug": "string"  },  "services": 0,  "volumes": {    "count": 0,    "sizeBytes": 0  }}
GET/api/v1/projects/{id}/environments

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/projects/string/environments"
{  "$schema": "https://example.com/PageEnvironmentBody.json",  "items": [    {      "$schema": "https://example.com/EnvironmentBody.json",      "autoDeploy": true,      "clusterId": "string",      "createdAt": "2019-08-24T14:15:22Z",      "gitBranch": "string",      "id": "string",      "kind": "persistent",      "name": "string",      "namespace": "string",      "preview": {        "author": "string",        "baseEnvironmentId": "string",        "expiresAfterSeconds": 0,        "expiresAt": "2019-08-24T14:15:22Z",        "headRef": "string",        "headSha": "string",        "lastActivityAt": "2019-08-24T14:15:22Z",        "number": 0,        "title": "string",        "url": "string"      },      "production": true,      "projectId": "string",      "slug": "string"    }  ],  "nextCursor": "string"}
POST/api/v1/projects/{id}/environments

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/projects/string/environments" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "production": true  }'
{  "$schema": "https://example.com/EnvironmentBody.json",  "autoDeploy": true,  "clusterId": "string",  "createdAt": "2019-08-24T14:15:22Z",  "gitBranch": "string",  "id": "string",  "kind": "persistent",  "name": "string",  "namespace": "string",  "preview": {    "author": "string",    "baseEnvironmentId": "string",    "expiresAfterSeconds": 0,    "expiresAt": "2019-08-24T14:15:22Z",    "headRef": "string",    "headSha": "string",    "lastActivityAt": "2019-08-24T14:15:22Z",    "number": 0,    "title": "string",    "url": "string"  },  "production": true,  "projectId": "string",  "slug": "string"}