Skip to content
NebulaCtrldocs
HTTP APIEndpoints

Services

Services, their processes, pods and volumes, and how a service is suspended, resumed and restarted. Each operation lists its method and path, parameters, request body, responses and an example call.

PATCH/api/v1/processes/{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/processes/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "$schema": "https://example.com/ProcessBody.json",  "args": [    "string"  ],  "command": [    "string"  ],  "cpuLimitMilli": 0,  "cpuRequestMilli": 0,  "createdAt": "2019-08-24T14:15:22Z",  "drainSeconds": 0,  "id": "string",  "kind": "string",  "livenessPath": "string",  "memoryLimitBytes": 0,  "memoryRequestBytes": 0,  "metricsEnabled": true,  "metricsPath": "string",  "metricsPort": 0,  "name": "string",  "nodeTailscale": true,  "port": 0,  "readinessPath": "string",  "replicas": 0,  "runAsUser": 0,  "schedule": "string",  "serviceId": "string",  "stabilizationSeconds": 0,  "startupPath": "string",  "upstream": "string"}

Delete a process.

DELETE/api/v1/processes/{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/processes/string"
Empty
POST/api/v1/processes/{id}/restart

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

Environment whose live release runs this process.

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/v1/processes/string/restart?environmentId=string"
{  "$schema": "https://example.com/Command.json",  "buildId": "string",  "database": {    "maxRows": 0,    "query": "string",    "target": {      "database": "string",      "engine": "string",      "image": "string",      "namespace": "string",      "password": "string",      "port": 0,      "runAsUser": 0,      "serviceSlug": "string",      "username": "string"    },    "timeoutMillis": 0  },  "environmentId": "string",  "id": "string",  "image": "string",  "kind": "string",  "node": "string",  "pod": "string",  "process": "string",  "releaseId": "string",  "role": "string",  "serviceId": "string",  "volume": {    "database": {      "database": "string",      "engine": "string",      "image": "string",      "namespace": "string",      "password": "string",      "port": 0,      "runAsUser": 0,      "serviceSlug": "string",      "username": "string"    },    "environmentId": "string",    "expectedSha256": "string",    "jobId": "string",    "method": "string",    "namespace": "string",    "objectKey": "string",    "quiesce": true,    "serviceId": "string",    "serviceSlug": "string",    "store": {      "accessKeyId": "string",      "bucket": "string",      "endpoint": "string",      "forcePathStyle": true,      "region": "string",      "secretAccessKey": "string"    },    "volume": {      "mountPath": "string",      "name": "string",      "sizeBytes": 0,      "storageClass": "string"    }  }}
GET/api/v1/processes/{id}/volumes

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

Environment whose claim usage to report.

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/processes/string/volumes"
{  "$schema": "https://example.com/PageVolumeBody.json",  "items": [    {      "$schema": "https://example.com/VolumeBody.json",      "createdAt": "2019-08-24T14:15:22Z",      "id": "string",      "mountPath": "string",      "name": "string",      "processId": "string",      "sizeBytes": 0,      "storageClass": "string",      "usage": {        "capacityBytes": 0,        "filesystem": {          "availableBytes": 0,          "capacityBytes": 0        },        "observedAt": "2019-08-24T14:15:22Z",        "sizeEnforced": true,        "usedBytes": 0      }    }  ],  "nextCursor": "string"}
POST/api/v1/processes/{id}/volumes

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/processes/string/volumes" \  -H "Content-Type: application/json" \  -d '{    "mountPath": "string",    "name": "string",    "sizeBytes": 1  }'
{  "$schema": "https://example.com/VolumeBody.json",  "createdAt": "2019-08-24T14:15:22Z",  "id": "string",  "mountPath": "string",  "name": "string",  "processId": "string",  "sizeBytes": 0,  "storageClass": "string",  "usage": {    "capacityBytes": 0,    "filesystem": {      "availableBytes": 0,      "capacityBytes": 0    },    "observedAt": "2019-08-24T14:15:22Z",    "sizeEnforced": true,    "usedBytes": 0  }}
DELETE/api/v1/projects/{id}/canvas

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/canvas"
Empty
PUT/api/v1/projects/{id}/canvas

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/problem+json

curl -X PUT "https://example.com/api/v1/projects/string/canvas" \  -H "Content-Type: application/json" \  -d '{    "positions": [      {        "serviceId": "string",        "x": 0,        "y": 0      }    ]  }'
Empty
GET/api/v1/projects/{id}/services

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/services"
{  "$schema": "https://example.com/PageServiceBody.json",  "items": [    {      "$schema": "https://example.com/ServiceBody.json",      "canvasX": 0,      "canvasY": 0,      "createdAt": "2019-08-24T14:15:22Z",      "dependsOn": [        "string"      ],      "dependsOnFromFile": {        "commit": "string",        "path": "string",        "slugs": [          "string"        ]      },      "deployAfter": [        {          "id": "string",          "keys": [            "string"          ],          "kind": "service",          "name": "string",          "slug": "string",          "via": "reference"        }      ],      "files": [        {          "path": "string",          "variable": "string"        }      ],      "id": "string",      "name": "string",      "projectId": "string",      "releaseCommand": [        "string"      ],      "releaseCommandTimeoutSeconds": 0,      "skipProductionApproval": true,      "skipProductionApprovalAt": "2019-08-24T14:15:22Z",      "skipProductionApprovalBy": "string",      "slug": "string",      "source": {        "builder": "auto",        "context": "string",        "dockerfile": "string",        "gitConnectionId": "string",        "gitUrl": "string",        "imageRepository": "string",        "kind": "string",        "registryCredentialId": "string",        "repository": "string",        "target": "string",        "trigger": {          "gitConnectionId": "string",          "repository": "string",          "tagTemplate": "string"        }      },      "stagedIn": {        "changeSetId": "string",        "environmentId": "string",        "stagedBy": {          "id": "string",          "name": "string"        }      },      "template": "postgres"    }  ],  "nextCursor": "string"}
POST/api/v1/projects/{id}/services

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/services" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "source": {      "kind": "image"    }  }'
{  "$schema": "https://example.com/CreateServiceBody.json",  "changeSet": {    "$schema": "https://example.com/ViewBody.json",    "changeSet": {      "appliedAt": "2019-08-24T14:15:22Z",      "approvalId": "string",      "createdAt": "2019-08-24T14:15:22Z",      "downtimeAccepted": true,      "environmentId": "string",      "id": "string",      "message": "string",      "reason": "string",      "source": "console",      "sourceCommit": "string",      "state": "draft"    },    "environmentId": "string",    "items": [      {        "createdAt": "2019-08-24T14:15:22Z",        "from": "string",        "id": "string",        "key": "string",        "kind": "string",        "label": "string",        "managed": true,        "processId": "string",        "secret": true,        "serviceId": "string",        "serviceSlug": "string",        "to": "string",        "toEmpty": true,        "volumeId": "string"      }    ],    "projectConfig": {      "changeSet": {        "appliedAt": "2019-08-24T14:15:22Z",        "approvalId": "string",        "createdAt": "2019-08-24T14:15:22Z",        "downtimeAccepted": true,        "environmentId": "string",        "id": "string",        "message": "string",        "reason": "string",        "source": "console",        "sourceCommit": "string",        "state": "draft"      },      "items": [        {          "createdAt": "2019-08-24T14:15:22Z",          "from": "string",          "id": "string",          "key": "string",          "kind": "string",          "label": "string",          "managed": true,          "processId": "string",          "secret": true,          "serviceId": "string",          "serviceSlug": "string",          "to": "string",          "toEmpty": true,          "volumeId": "string"        }      ],      "summary": {        "affectedServiceIds": [          "string"        ],        "needsApproval": true,        "requiresDowntime": true      }    },    "summary": {      "affectedServiceIds": [        "string"      ],      "needsApproval": true,      "requiresDowntime": true    }  },  "defaultProcessCreated": true,  "processes": [    {      "$schema": "https://example.com/ProcessBody.json",      "args": [        "string"      ],      "command": [        "string"      ],      "cpuLimitMilli": 0,      "cpuRequestMilli": 0,      "createdAt": "2019-08-24T14:15:22Z",      "drainSeconds": 0,      "id": "string",      "kind": "string",      "livenessPath": "string",      "memoryLimitBytes": 0,      "memoryRequestBytes": 0,      "metricsEnabled": true,      "metricsPath": "string",      "metricsPort": 0,      "name": "string",      "nodeTailscale": true,      "port": 0,      "readinessPath": "string",      "replicas": 0,      "runAsUser": 0,      "schedule": "string",      "serviceId": "string",      "stabilizationSeconds": 0,      "startupPath": "string",      "upstream": "string"    }  ],  "service": {    "$schema": "https://example.com/ServiceBody.json",    "canvasX": 0,    "canvasY": 0,    "createdAt": "2019-08-24T14:15:22Z",    "dependsOn": [      "string"    ],    "dependsOnFromFile": {      "commit": "string",      "path": "string",      "slugs": [        "string"      ]    },    "deployAfter": [      {        "id": "string",        "keys": [          "string"        ],        "kind": "service",        "name": "string",        "slug": "string",        "via": "reference"      }    ],    "files": [      {        "path": "string",        "variable": "string"      }    ],    "id": "string",    "name": "string",    "projectId": "string",    "releaseCommand": [      "string"    ],    "releaseCommandTimeoutSeconds": 0,    "skipProductionApproval": true,    "skipProductionApprovalAt": "2019-08-24T14:15:22Z",    "skipProductionApprovalBy": "string",    "slug": "string",    "source": {      "builder": "auto",      "context": "string",      "dockerfile": "string",      "gitConnectionId": "string",      "gitUrl": "string",      "imageRepository": "string",      "kind": "string",      "registryCredentialId": "string",      "repository": "string",      "target": "string",      "trigger": {        "gitConnectionId": "string",        "repository": "string",        "tagTemplate": "string"      }    },    "stagedIn": {      "changeSetId": "string",      "environmentId": "string",      "stagedBy": {        "id": "string",        "name": "string"      }    },    "template": "postgres"  }}
GET/api/v1/services

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/services"
{  "$schema": "https://example.com/PageFleetServiceBody.json",  "items": [    {      "activeReleaseDigest": "string",      "activeReleaseId": "string",      "activeReleaseNumber": 0,      "blocker": "string",      "clusterBound": true,      "domainCount": 0,      "environmentId": "string",      "environmentName": "string",      "environmentSlug": "string",      "failedDeployment": {        "blocker": "string",        "finishedAt": "2019-08-24T14:15:22Z",        "id": "string",        "message": "string",        "releaseNumber": 0      },      "health": "string",      "lastDeployedAt": "2019-08-24T14:15:22Z",      "lastDeploymentId": "string",      "lastDeploymentKind": "string",      "message": "string",      "pendingDeployment": {        "id": "string",        "kind": "string",        "releaseNumber": 0,        "state": "string"      },      "production": true,      "projectId": "string",      "projectName": "string",      "projectSlug": "string",      "replicasDesired": 0,      "replicasReady": 0,      "serviceId": "string",      "serviceName": "string",      "serviceSlug": "string"    }  ],  "nextCursor": "string"}

Get one service.

GET/api/v1/services/{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

Query Parameters

environmentId?string

An environment of the service's project, for deployAfter and dependsOnFromFile. Defaults to the project's oldest persistent environment.

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/services/string"
{  "$schema": "https://example.com/ServiceBody.json",  "canvasX": 0,  "canvasY": 0,  "createdAt": "2019-08-24T14:15:22Z",  "dependsOn": [    "string"  ],  "dependsOnFromFile": {    "commit": "string",    "path": "string",    "slugs": [      "string"    ]  },  "deployAfter": [    {      "id": "string",      "keys": [        "string"      ],      "kind": "service",      "name": "string",      "slug": "string",      "via": "reference"    }  ],  "files": [    {      "path": "string",      "variable": "string"    }  ],  "id": "string",  "name": "string",  "projectId": "string",  "releaseCommand": [    "string"  ],  "releaseCommandTimeoutSeconds": 0,  "skipProductionApproval": true,  "skipProductionApprovalAt": "2019-08-24T14:15:22Z",  "skipProductionApprovalBy": "string",  "slug": "string",  "source": {    "builder": "auto",    "context": "string",    "dockerfile": "string",    "gitConnectionId": "string",    "gitUrl": "string",    "imageRepository": "string",    "kind": "string",    "registryCredentialId": "string",    "repository": "string",    "target": "string",    "trigger": {      "gitConnectionId": "string",      "repository": "string",      "tagTemplate": "string"    }  },  "stagedIn": {    "changeSetId": "string",    "environmentId": "string",    "stagedBy": {      "id": "string",      "name": "string"    }  },  "template": "postgres"}
PATCH/api/v1/services/{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

Query Parameters

environmentId?string

An environment of the service's project, for deployAfter and dependsOnFromFile in the response. Defaults to the project's oldest persistent environment.

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/services/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "$schema": "https://example.com/ServiceBody.json",  "canvasX": 0,  "canvasY": 0,  "createdAt": "2019-08-24T14:15:22Z",  "dependsOn": [    "string"  ],  "dependsOnFromFile": {    "commit": "string",    "path": "string",    "slugs": [      "string"    ]  },  "deployAfter": [    {      "id": "string",      "keys": [        "string"      ],      "kind": "service",      "name": "string",      "slug": "string",      "via": "reference"    }  ],  "files": [    {      "path": "string",      "variable": "string"    }  ],  "id": "string",  "name": "string",  "projectId": "string",  "releaseCommand": [    "string"  ],  "releaseCommandTimeoutSeconds": 0,  "skipProductionApproval": true,  "skipProductionApprovalAt": "2019-08-24T14:15:22Z",  "skipProductionApprovalBy": "string",  "slug": "string",  "source": {    "builder": "auto",    "context": "string",    "dockerfile": "string",    "gitConnectionId": "string",    "gitUrl": "string",    "imageRepository": "string",    "kind": "string",    "registryCredentialId": "string",    "repository": "string",    "target": "string",    "trigger": {      "gitConnectionId": "string",      "repository": "string",      "tagTemplate": "string"    }  },  "stagedIn": {    "changeSetId": "string",    "environmentId": "string",    "stagedBy": {      "id": "string",      "name": "string"    }  },  "template": "postgres"}
DELETE/api/v1/services/{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/services/string"
Empty
GET/api/v1/services/{id}/environments/{environmentId}/settings

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

Service id.

environmentId*string

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/services/string/environments/string/settings"
{  "$schema": "https://example.com/EnvironmentSettingsBody.json",  "autoDeploy": {    "default": true,    "overridden": true,    "value": true  },  "environmentId": "string",  "processes": [    {      "cpuLimitMilli": {        "default": 0,        "overridden": true,        "value": 0      },      "cpuRequestMilli": {        "default": 0,        "overridden": true,        "value": 0      },      "kind": "string",      "memoryLimitBytes": {        "default": 0,        "overridden": true,        "value": 0      },      "memoryRequestBytes": {        "default": 0,        "overridden": true,        "value": 0      },      "name": "string",      "processId": "string",      "replicas": {        "default": 0,        "overridden": true,        "value": 0      }    }  ],  "serviceId": "string",  "suspended": true,  "volumes": [    {      "mountPath": "string",      "name": "string",      "processId": "string",      "processName": "string",      "sizeBytes": {        "default": 0,        "overridden": true,        "value": 0      },      "volumeId": "string"    }  ]}
POST/api/v1/services/{id}/pods/{name}/restart

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

Service id.

name*string

Pod name, as reported by the environment's runtime view.

Query Parameters

environmentId*string

Environment the pod is running in.

Response Body

application/json

application/problem+json

curl -X POST "https://example.com/api/v1/services/string/pods/string/restart?environmentId=string"
{  "$schema": "https://example.com/Command.json",  "buildId": "string",  "database": {    "maxRows": 0,    "query": "string",    "target": {      "database": "string",      "engine": "string",      "image": "string",      "namespace": "string",      "password": "string",      "port": 0,      "runAsUser": 0,      "serviceSlug": "string",      "username": "string"    },    "timeoutMillis": 0  },  "environmentId": "string",  "id": "string",  "image": "string",  "kind": "string",  "node": "string",  "pod": "string",  "process": "string",  "releaseId": "string",  "role": "string",  "serviceId": "string",  "volume": {    "database": {      "database": "string",      "engine": "string",      "image": "string",      "namespace": "string",      "password": "string",      "port": 0,      "runAsUser": 0,      "serviceSlug": "string",      "username": "string"    },    "environmentId": "string",    "expectedSha256": "string",    "jobId": "string",    "method": "string",    "namespace": "string",    "objectKey": "string",    "quiesce": true,    "serviceId": "string",    "serviceSlug": "string",    "store": {      "accessKeyId": "string",      "bucket": "string",      "endpoint": "string",      "forcePathStyle": true,      "region": "string",      "secretAccessKey": "string"    },    "volume": {      "mountPath": "string",      "name": "string",      "sizeBytes": 0,      "storageClass": "string"    }  }}
GET/api/v1/services/{id}/processes

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/services/string/processes"
{  "$schema": "https://example.com/PageProcessBody.json",  "items": [    {      "$schema": "https://example.com/ProcessBody.json",      "args": [        "string"      ],      "command": [        "string"      ],      "cpuLimitMilli": 0,      "cpuRequestMilli": 0,      "createdAt": "2019-08-24T14:15:22Z",      "drainSeconds": 0,      "id": "string",      "kind": "string",      "livenessPath": "string",      "memoryLimitBytes": 0,      "memoryRequestBytes": 0,      "metricsEnabled": true,      "metricsPath": "string",      "metricsPort": 0,      "name": "string",      "nodeTailscale": true,      "port": 0,      "readinessPath": "string",      "replicas": 0,      "runAsUser": 0,      "schedule": "string",      "serviceId": "string",      "stabilizationSeconds": 0,      "startupPath": "string",      "upstream": "string"    }  ],  "nextCursor": "string"}
POST/api/v1/services/{id}/processes

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/processes" \  -H "Content-Type: application/json" \  -d '{    "cpuLimitMilli": 0,    "cpuRequestMilli": 0,    "drainSeconds": 0,    "memoryLimitBytes": 0,    "memoryRequestBytes": 0,    "replicas": 0,    "stabilizationSeconds": 0  }'
{  "$schema": "https://example.com/ProcessBody.json",  "args": [    "string"  ],  "command": [    "string"  ],  "cpuLimitMilli": 0,  "cpuRequestMilli": 0,  "createdAt": "2019-08-24T14:15:22Z",  "drainSeconds": 0,  "id": "string",  "kind": "string",  "livenessPath": "string",  "memoryLimitBytes": 0,  "memoryRequestBytes": 0,  "metricsEnabled": true,  "metricsPath": "string",  "metricsPort": 0,  "name": "string",  "nodeTailscale": true,  "port": 0,  "readinessPath": "string",  "replicas": 0,  "runAsUser": 0,  "schedule": "string",  "serviceId": "string",  "stabilizationSeconds": 0,  "startupPath": "string",  "upstream": "string"}
PUT/api/v1/services/{id}/production-approval

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 PUT "https://example.com/api/v1/services/string/production-approval" \  -H "Content-Type: application/json" \  -d '{    "skip": true  }'
{  "$schema": "https://example.com/ServiceBody.json",  "canvasX": 0,  "canvasY": 0,  "createdAt": "2019-08-24T14:15:22Z",  "dependsOn": [    "string"  ],  "dependsOnFromFile": {    "commit": "string",    "path": "string",    "slugs": [      "string"    ]  },  "deployAfter": [    {      "id": "string",      "keys": [        "string"      ],      "kind": "service",      "name": "string",      "slug": "string",      "via": "reference"    }  ],  "files": [    {      "path": "string",      "variable": "string"    }  ],  "id": "string",  "name": "string",  "projectId": "string",  "releaseCommand": [    "string"  ],  "releaseCommandTimeoutSeconds": 0,  "skipProductionApproval": true,  "skipProductionApprovalAt": "2019-08-24T14:15:22Z",  "skipProductionApprovalBy": "string",  "slug": "string",  "source": {    "builder": "auto",    "context": "string",    "dockerfile": "string",    "gitConnectionId": "string",    "gitUrl": "string",    "imageRepository": "string",    "kind": "string",    "registryCredentialId": "string",    "repository": "string",    "target": "string",    "trigger": {      "gitConnectionId": "string",      "repository": "string",      "tagTemplate": "string"    }  },  "stagedIn": {    "changeSetId": "string",    "environmentId": "string",    "stagedBy": {      "id": "string",      "name": "string"    }  },  "template": "postgres"}
POST/api/v1/services/{id}/restart

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

Service id.

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/restart" \  -H "Content-Type: application/json" \  -d '{    "environmentId": "string"  }'
{  "$schema": "https://example.com/CommandsOutputBody.json",  "commands": [    {      "$schema": "https://example.com/Command.json",      "buildId": "string",      "database": {        "maxRows": 0,        "query": "string",        "target": {          "database": "string",          "engine": "string",          "image": "string",          "namespace": "string",          "password": "string",          "port": 0,          "runAsUser": 0,          "serviceSlug": "string",          "username": "string"        },        "timeoutMillis": 0      },      "environmentId": "string",      "id": "string",      "image": "string",      "kind": "string",      "node": "string",      "pod": "string",      "process": "string",      "releaseId": "string",      "role": "string",      "serviceId": "string",      "volume": {        "database": {          "database": "string",          "engine": "string",          "image": "string",          "namespace": "string",          "password": "string",          "port": 0,          "runAsUser": 0,          "serviceSlug": "string",          "username": "string"        },        "environmentId": "string",        "expectedSha256": "string",        "jobId": "string",        "method": "string",        "namespace": "string",        "objectKey": "string",        "quiesce": true,        "serviceId": "string",        "serviceSlug": "string",        "store": {          "accessKeyId": "string",          "bucket": "string",          "endpoint": "string",          "forcePathStyle": true,          "region": "string",          "secretAccessKey": "string"        },        "volume": {          "mountPath": "string",          "name": "string",          "sizeBytes": 0,          "storageClass": "string"        }      }    }  ]}
POST/api/v1/services/{id}/resume

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/resume" \  -H "Content-Type: application/json" \  -d '{    "environmentId": "string"  }'
{  "$schema": "https://example.com/SuspendBody.json",  "settings": {    "$schema": "https://example.com/EnvironmentSettingsBody.json",    "autoDeploy": {      "default": true,      "overridden": true,      "value": true    },    "environmentId": "string",    "processes": [      {        "cpuLimitMilli": {          "default": 0,          "overridden": true,          "value": 0        },        "cpuRequestMilli": {          "default": 0,          "overridden": true,          "value": 0        },        "kind": "string",        "memoryLimitBytes": {          "default": 0,          "overridden": true,          "value": 0        },        "memoryRequestBytes": {          "default": 0,          "overridden": true,          "value": 0        },        "name": "string",        "processId": "string",        "replicas": {          "default": 0,          "overridden": true,          "value": 0        }      }    ],    "serviceId": "string",    "suspended": true,    "volumes": [      {        "mountPath": "string",        "name": "string",        "processId": "string",        "processName": "string",        "sizeBytes": {          "default": 0,          "overridden": true,          "value": 0        },        "volumeId": "string"      }    ]  }}
POST/api/v1/services/{id}/suspend

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/suspend" \  -H "Content-Type: application/json" \  -d '{    "environmentId": "string"  }'
{  "$schema": "https://example.com/SuspendBody.json",  "settings": {    "$schema": "https://example.com/EnvironmentSettingsBody.json",    "autoDeploy": {      "default": true,      "overridden": true,      "value": true    },    "environmentId": "string",    "processes": [      {        "cpuLimitMilli": {          "default": 0,          "overridden": true,          "value": 0        },        "cpuRequestMilli": {          "default": 0,          "overridden": true,          "value": 0        },        "kind": "string",        "memoryLimitBytes": {          "default": 0,          "overridden": true,          "value": 0        },        "memoryRequestBytes": {          "default": 0,          "overridden": true,          "value": 0        },        "name": "string",        "processId": "string",        "replicas": {          "default": 0,          "overridden": true,          "value": 0        }      }    ],    "serviceId": "string",    "suspended": true,    "volumes": [      {        "mountPath": "string",        "name": "string",        "processId": "string",        "processName": "string",        "sizeBytes": {          "default": 0,          "overridden": true,          "value": 0        },        "volumeId": "string"      }    ]  }}
DELETE/api/v1/volumes/{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/volumes/string"
Empty