Clusters
Clusters, their nodes and agents, and the commands that install, join and upgrade them. Each operation lists its method and path, parameters, request body, responses and an example call.
/api/v1/cluster-eventsAn 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
Opaque cursor from a previous response's nextCursor. Omit for the first page.
How many items to return.
int641 <= value <= 20050Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/cluster-events"{ "$schema": "https://example.com/PageOrganizationEventBody.json", "items": [ { "at": "2019-08-24T14:15:22Z", "clusterId": "string", "environmentId": "string", "id": "string", "kind": "string", "payload": null, "releaseId": "string", "serviceId": "string" } ], "nextCursor": "string"}/api/v1/clustersAn 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
Opaque cursor from a previous response's nextCursor. Omit for the first page.
How many items to return.
int641 <= value <= 20050Set to "summary" to include per-cluster fleet summary fields.
Value in
- "summary"
Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/clusters"{ "$schema": "https://example.com/PageClusterBody.json", "items": [ { "$schema": "https://example.com/ClusterBody.json", "agentVersion": "string", "apiServerUrl": "string", "appliedRevision": 0, "capabilities": { "buildOptions": true, "buildRegistry": true, "builderAuto": true, "certificateSecrets": true, "cloudNativePG": true, "cloudNativePGBackupPlugin": true, "databaseRestore": true, "defaultStorageClass": "string", "edgeFronting": true, "edgeIngressIPs": [ "string" ], "expandableStorageClasses": [ "string" ], "fileMounts": true, "heldSpecs": true, "heldSuspend": true, "ingressIPs": [ "string" ], "kindMetrics": true, "metricsServer": true, "nodeTailscale": true, "processArgs": true, "railpackBuilds": true, "releaseCommand": true, "storageClasses": [ "string" ], "tailscale": true, "tailscaleEgressProxyGroup": "string", "traefik": true, "traefikCertResolvers": [ "string" ], "trafficMetrics": true }, "compileError": "string", "createdAt": "2019-08-24T14:15:22Z", "desiredRevision": 0, "haState": "single", "highlyAvailable": true, "id": "string", "k3sUpdate": { "current": "string", "minor": { "version": "string" }, "patch": { "version": "string" } }, "k3sVersion": "string", "lastHeartbeatAt": "2019-08-24T14:15:22Z", "meshIndex": 0, "name": "string", "nodeCount": 0, "podCidr": "string", "reconcileError": "string", "region": "string", "schedulable": true, "serverCount": 0, "serviceCidr": "string", "slug": "string", "status": "awaiting-agent", "summary": { "agentUpdateAvailable": true, "nodesReady": 0, "nodesTotal": 0, "workloads": 0 } } ], "nextCursor": "string"}/api/v1/clustersAn 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/clusters" \ -H "Content-Type: application/json" \ -d '{ "name": "string" }'{ "$schema": "https://example.com/CreateClusterBody.json", "cluster": { "$schema": "https://example.com/ClusterBody.json", "agentVersion": "string", "apiServerUrl": "string", "appliedRevision": 0, "capabilities": { "buildOptions": true, "buildRegistry": true, "builderAuto": true, "certificateSecrets": true, "cloudNativePG": true, "cloudNativePGBackupPlugin": true, "databaseRestore": true, "defaultStorageClass": "string", "edgeFronting": true, "edgeIngressIPs": [ "string" ], "expandableStorageClasses": [ "string" ], "fileMounts": true, "heldSpecs": true, "heldSuspend": true, "ingressIPs": [ "string" ], "kindMetrics": true, "metricsServer": true, "nodeTailscale": true, "processArgs": true, "railpackBuilds": true, "releaseCommand": true, "storageClasses": [ "string" ], "tailscale": true, "tailscaleEgressProxyGroup": "string", "traefik": true, "traefikCertResolvers": [ "string" ], "trafficMetrics": true }, "compileError": "string", "createdAt": "2019-08-24T14:15:22Z", "desiredRevision": 0, "haState": "single", "highlyAvailable": true, "id": "string", "k3sUpdate": { "current": "string", "minor": { "version": "string" }, "patch": { "version": "string" } }, "k3sVersion": "string", "lastHeartbeatAt": "2019-08-24T14:15:22Z", "meshIndex": 0, "name": "string", "nodeCount": 0, "podCidr": "string", "reconcileError": "string", "region": "string", "schedulable": true, "serverCount": 0, "serviceCidr": "string", "slug": "string", "status": "awaiting-agent", "summary": { "agentUpdateAvailable": true, "nodesReady": 0, "nodesTotal": 0, "workloads": 0 } }, "expiresAt": "2019-08-24T14:15:22Z", "installCommand": "string", "token": "string"}/api/v1/clusters/ssh-keyAn 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
Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/clusters/ssh-key"{ "$schema": "https://example.com/SshKeyBody.json", "publicKey": "string"}/api/v1/clusters/{id}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
Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/clusters/string"{ "$schema": "https://example.com/ClusterBody.json", "agentVersion": "string", "apiServerUrl": "string", "appliedRevision": 0, "capabilities": { "buildOptions": true, "buildRegistry": true, "builderAuto": true, "certificateSecrets": true, "cloudNativePG": true, "cloudNativePGBackupPlugin": true, "databaseRestore": true, "defaultStorageClass": "string", "edgeFronting": true, "edgeIngressIPs": [ "string" ], "expandableStorageClasses": [ "string" ], "fileMounts": true, "heldSpecs": true, "heldSuspend": true, "ingressIPs": [ "string" ], "kindMetrics": true, "metricsServer": true, "nodeTailscale": true, "processArgs": true, "railpackBuilds": true, "releaseCommand": true, "storageClasses": [ "string" ], "tailscale": true, "tailscaleEgressProxyGroup": "string", "traefik": true, "traefikCertResolvers": [ "string" ], "trafficMetrics": true }, "compileError": "string", "createdAt": "2019-08-24T14:15:22Z", "desiredRevision": 0, "haState": "single", "highlyAvailable": true, "id": "string", "k3sUpdate": { "current": "string", "minor": { "version": "string" }, "patch": { "version": "string" } }, "k3sVersion": "string", "lastHeartbeatAt": "2019-08-24T14:15:22Z", "meshIndex": 0, "name": "string", "nodeCount": 0, "podCidr": "string", "reconcileError": "string", "region": "string", "schedulable": true, "serverCount": 0, "serviceCidr": "string", "slug": "string", "status": "awaiting-agent", "summary": { "agentUpdateAvailable": true, "nodesReady": 0, "nodesTotal": 0, "workloads": 0 }}/api/v1/clusters/{id}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
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/clusters/string" \ -H "Content-Type: application/json" \ -d '{}'{ "$schema": "https://example.com/ClusterBody.json", "agentVersion": "string", "apiServerUrl": "string", "appliedRevision": 0, "capabilities": { "buildOptions": true, "buildRegistry": true, "builderAuto": true, "certificateSecrets": true, "cloudNativePG": true, "cloudNativePGBackupPlugin": true, "databaseRestore": true, "defaultStorageClass": "string", "edgeFronting": true, "edgeIngressIPs": [ "string" ], "expandableStorageClasses": [ "string" ], "fileMounts": true, "heldSpecs": true, "heldSuspend": true, "ingressIPs": [ "string" ], "kindMetrics": true, "metricsServer": true, "nodeTailscale": true, "processArgs": true, "railpackBuilds": true, "releaseCommand": true, "storageClasses": [ "string" ], "tailscale": true, "tailscaleEgressProxyGroup": "string", "traefik": true, "traefikCertResolvers": [ "string" ], "trafficMetrics": true }, "compileError": "string", "createdAt": "2019-08-24T14:15:22Z", "desiredRevision": 0, "haState": "single", "highlyAvailable": true, "id": "string", "k3sUpdate": { "current": "string", "minor": { "version": "string" }, "patch": { "version": "string" } }, "k3sVersion": "string", "lastHeartbeatAt": "2019-08-24T14:15:22Z", "meshIndex": 0, "name": "string", "nodeCount": 0, "podCidr": "string", "reconcileError": "string", "region": "string", "schedulable": true, "serverCount": 0, "serviceCidr": "string", "slug": "string", "status": "awaiting-agent", "summary": { "agentUpdateAvailable": true, "nodesReady": 0, "nodesTotal": 0, "workloads": 0 }}/api/v1/clusters/{id}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
Response Body
application/problem+json
curl -X DELETE "https://example.com/api/v1/clusters/string"/api/v1/clusters/{id}/agentAn 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
Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/clusters/string/agent"{ "$schema": "https://example.com/AgentStatusBody.json", "availableImage": "string", "currentImage": "string", "currentVersion": "string", "history": [ { "$schema": "https://example.com/AgentUpdateAttemptBody.json", "finishedAt": "2019-08-24T14:15:22Z", "fromImage": "string", "id": "string", "kind": "string", "message": "string", "startedAt": "2019-08-24T14:15:22Z", "status": "string", "toImage": "string" } ], "inProgress": { "id": "string", "startedAt": "2019-08-24T14:15:22Z", "toImage": "string" }, "updateAvailable": true}/api/v1/clusters/{id}/agent/rollbackAn 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
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/clusters/string/agent/rollback" \ -H "Content-Type: application/json" \ -d '{ "image": "string" }'{ "$schema": "https://example.com/AgentUpdateAttemptBody.json", "finishedAt": "2019-08-24T14:15:22Z", "fromImage": "string", "id": "string", "kind": "string", "message": "string", "startedAt": "2019-08-24T14:15:22Z", "status": "string", "toImage": "string"}/api/v1/clusters/{id}/agent/updateAn 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
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/clusters/string/agent/update" \ -H "Content-Type: application/json" \ -d '{}'{ "$schema": "https://example.com/AgentUpdateAttemptBody.json", "finishedAt": "2019-08-24T14:15:22Z", "fromImage": "string", "id": "string", "kind": "string", "message": "string", "startedAt": "2019-08-24T14:15:22Z", "status": "string", "toImage": "string"}/api/v1/clusters/{id}/cnpgAn 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
Response Body
application/json
application/problem+json
curl -X POST "https://example.com/api/v1/clusters/string/cnpg"{ "$schema": "https://example.com/HostScriptCommandBody.json", "command": "string", "expiresAt": "2019-08-24T14:15:22Z", "token": "string"}/api/v1/clusters/{id}/enrollment-tokenAn 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
Response Body
application/json
application/problem+json
curl -X POST "https://example.com/api/v1/clusters/string/enrollment-token"{ "$schema": "https://example.com/EnrollmentTokenBody.json", "expiresAt": "2019-08-24T14:15:22Z", "installCommand": "string", "token": "string"}/api/v1/clusters/{id}/eventsAn 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
Query Parameters
Opaque cursor from a previous response's nextCursor. Omit for the first page.
How many items to return.
int641 <= value <= 20050Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/clusters/string/events"{ "$schema": "https://example.com/PageEventBody.json", "items": [ { "at": "2019-08-24T14:15:22Z", "environmentId": "string", "id": "string", "kind": "string", "payload": null, "releaseId": "string", "serviceId": "string" } ], "nextCursor": "string"}/api/v1/clusters/{id}/high-availabilityAn 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
Response Body
application/json
application/problem+json
curl -X POST "https://example.com/api/v1/clusters/string/high-availability"{ "$schema": "https://example.com/HighAvailabilityBody.json", "retrofit": { "$schema": "https://example.com/HostScriptCommandBody.json", "command": "string", "expiresAt": "2019-08-24T14:15:22Z", "token": "string" }, "serverJoins": [ { "expiresAt": "2019-08-24T14:15:22Z", "installCommand": "string", "token": "string" }, { "expiresAt": "2019-08-24T14:15:22Z", "installCommand": "string", "token": "string" } ]}/api/v1/clusters/{id}/installAn 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
Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/clusters/string/install"{ "$schema": "https://example.com/InstallStepsBody.json", "steps": [ { "logTail": "string", "message": "string", "nodeName": "string", "status": "string", "step": "string", "updatedAt": "2019-08-24T14:15:22Z" } ]}/api/v1/clusters/{id}/join-commandAn 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
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/clusters/string/join-command" \ -H "Content-Type: application/json" \ -d '{}'{ "$schema": "https://example.com/JoinCommandBody.json", "expiresAt": "2019-08-24T14:15:22Z", "installCommand": "string", "joinTokenId": "string", "token": "string"}/api/v1/clusters/{id}/k3s-upgradeAn 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
Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/clusters/string/k3s-upgrade"{ "$schema": "https://example.com/K3sUpgradeBody.json", "checkError": "string", "checkedAt": "2019-08-24T14:15:22Z", "checks": [ { "detail": "string", "name": "string", "state": "ok" } ], "current": "string", "minor": { "version": "string" }, "minorSteps": [ { "command": "string", "detail": "string", "title": "string" } ], "minorsBehindStable": 0, "nodes": [ { "name": "string", "ready": true, "role": "server", "version": "string" } ], "patch": { "version": "string" }, "patchSteps": [ { "command": "string", "detail": "string", "title": "string" } ]}/api/v1/clusters/{id}/metricsAn 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
Query Parameters
Trailing window to report.
Value in
- "1h"
- "6h"
- "24h"
Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/clusters/string/metrics"{ "$schema": "https://example.com/ClusterMetricsBody.json", "samples": [ { "allocatableCpuMilli": 0, "allocatableMemoryBytes": 0, "allocatedCpuMilli": 0, "allocatedMemoryBytes": 0, "at": "2019-08-24T14:15:22Z" } ]}/api/v1/clusters/{id}/nodesAn 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
Query Parameters
Opaque cursor from a previous response's nextCursor. Omit for the first page.
How many items to return.
int641 <= value <= 20050Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/clusters/string/nodes"{ "$schema": "https://example.com/PageNodeBody.json", "items": [ { "address": "string", "allocatable": { "cpuMilli": 0, "ephemeralBytes": 0, "memoryBytes": 0, "pods": 0 }, "allocated": { "cpuMilli": 0, "ephemeralBytes": 0, "memoryBytes": 0, "pods": 0 }, "conditions": [ { "lastTransition": "2019-08-24T14:15:22Z", "message": "string", "reason": "string", "status": "string", "type": "string" } ], "containerRuntime": "string", "createdAt": "2019-08-24T14:15:22Z", "labels": { "property1": "string", "property2": "string" }, "name": "string", "ready": true, "region": "string", "roles": [ "string" ], "taints": [ { "effect": "string", "key": "string", "value": "string" } ], "unschedulable": true, "updatedAt": "2019-08-24T14:15:22Z" } ], "nextCursor": "string"}/api/v1/clusters/{id}/nodes/{name}/cordonAn 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
Response Body
application/json
application/problem+json
curl -X POST "https://example.com/api/v1/clusters/string/nodes/string/cordon"{ "$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" } }}/api/v1/clusters/{id}/nodes/{name}/drainAn 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
Response Body
application/json
application/problem+json
curl -X POST "https://example.com/api/v1/clusters/string/nodes/string/drain"{ "$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" } }}/api/v1/clusters/{id}/nodes/{name}/uncordonAn 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
Response Body
application/json
application/problem+json
curl -X POST "https://example.com/api/v1/clusters/string/nodes/string/uncordon"{ "$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" } }}/api/v1/clusters/{id}/ssh-installsAn 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
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/clusters/string/ssh-installs" \ -H "Content-Type: application/json" \ -d '{ "host": "string", "username": "string" }'{ "$schema": "https://example.com/SshInstallBody.json", "clusterId": "string", "createdAt": "2019-08-24T14:15:22Z", "fingerprint": "string", "host": "string", "hostKeyType": "string", "id": "string", "joinTokenId": "string", "labels": { "property1": "string", "property2": "string" }, "message": "string", "port": 0, "status": "fingerprint", "updatedAt": "2019-08-24T14:15:22Z", "username": "string"}/api/v1/clusters/{id}/tailscaleAn 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
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/clusters/string/tailscale" \ -H "Content-Type: application/json" \ -d '{ "clientId": "string", "clientSecret": "string" }'{ "$schema": "https://example.com/TailscaleConnectBody.json", "command": "string", "expiresAt": "2019-08-24T14:15:22Z", "token": "string"}/api/v1/clusters/{id}/workloadsAn 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
Query Parameters
Opaque cursor from a previous response's nextCursor. Omit for the first page.
How many items to return.
int641 <= value <= 20050Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/clusters/string/workloads"{ "$schema": "https://example.com/PageWorkloadBody.json", "items": [ { "environmentId": "string", "environmentSlug": "string", "namespace": "string", "production": true, "serviceId": "string", "serviceName": "string", "serviceSlug": "string" } ], "nextCursor": "string"}/api/v1/join-tokensAn 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
Opaque cursor from a previous response's nextCursor. Omit for the first page.
How many items to return.
int641 <= value <= 20050Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/join-tokens"{ "$schema": "https://example.com/PageJoinTokenBody.json", "items": [ { "$schema": "https://example.com/JoinTokenBody.json", "clusterId": "string", "createdAt": "2019-08-24T14:15:22Z", "createdBy": "string", "expiresAt": "2019-08-24T14:15:22Z", "gateway": true, "id": "string", "labels": { "property1": "string", "property2": "string" }, "prefix": "string", "purpose": "join", "revokedAt": "2019-08-24T14:15:22Z", "role": "worker", "status": "active", "usedAt": "2019-08-24T14:15:22Z", "usedByNode": "string" } ], "nextCursor": "string"}/api/v1/join-tokens/{id}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
Response Body
application/json
application/problem+json
curl -X DELETE "https://example.com/api/v1/join-tokens/string"{ "$schema": "https://example.com/JoinTokenBody.json", "clusterId": "string", "createdAt": "2019-08-24T14:15:22Z", "createdBy": "string", "expiresAt": "2019-08-24T14:15:22Z", "gateway": true, "id": "string", "labels": { "property1": "string", "property2": "string" }, "prefix": "string", "purpose": "join", "revokedAt": "2019-08-24T14:15:22Z", "role": "worker", "status": "active", "usedAt": "2019-08-24T14:15:22Z", "usedByNode": "string"}/api/v1/ssh-installs/{id}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
Response Body
application/json
application/problem+json
curl -X GET "https://example.com/api/v1/ssh-installs/string"{ "$schema": "https://example.com/SshInstallBody.json", "clusterId": "string", "createdAt": "2019-08-24T14:15:22Z", "fingerprint": "string", "host": "string", "hostKeyType": "string", "id": "string", "joinTokenId": "string", "labels": { "property1": "string", "property2": "string" }, "message": "string", "port": 0, "status": "fingerprint", "updatedAt": "2019-08-24T14:15:22Z", "username": "string"}/api/v1/ssh-installs/{id}/confirmAn 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
Response Body
application/json
application/problem+json
curl -X POST "https://example.com/api/v1/ssh-installs/string/confirm"{ "$schema": "https://example.com/SshInstallBody.json", "clusterId": "string", "createdAt": "2019-08-24T14:15:22Z", "fingerprint": "string", "host": "string", "hostKeyType": "string", "id": "string", "joinTokenId": "string", "labels": { "property1": "string", "property2": "string" }, "message": "string", "port": 0, "status": "fingerprint", "updatedAt": "2019-08-24T14:15:22Z", "username": "string"}Previews
Pull request preview environments of a project. Each operation lists its method and path, parameters, request body, responses and an example call.
Mesh
The WireGuard mesh between machines, and the access grants between environments. Each operation lists its method and path, parameters, request body, responses and an example call.