Skip to content
NebulaCtrldocs
HTTP APIEndpoints

Organizations

Organizations, members, invitations, API tokens, registry credentials and the organization's sign-in and delivery policy. Each operation lists its method and path, parameters, request body, responses and an example call.

List API tokens.

GET/api/v1/api-tokens

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/api-tokens"
{  "$schema": "https://example.com/PageAPIToken.json",  "items": [    {      "createdAt": "2019-08-24T14:15:22Z",      "createdBy": "string",      "expiresAt": "2019-08-24T14:15:22Z",      "id": "string",      "lastUsedAt": "2019-08-24T14:15:22Z",      "name": "string",      "organizationId": "string",      "projectIds": [        "string"      ],      "projectRestricted": true,      "revokedAt": "2019-08-24T14:15:22Z",      "role": "string",      "tokenId": "string"    }  ],  "nextCursor": "string"}

Create an API token.

POST/api/v1/api-tokens

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/api-tokens" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "role": "viewer"  }'
{  "$schema": "https://example.com/CreateApiTokenResponse.json",  "secret": "string",  "shownOnce": true,  "token": {    "createdAt": "2019-08-24T14:15:22Z",    "createdBy": "string",    "expiresAt": "2019-08-24T14:15:22Z",    "id": "string",    "lastUsedAt": "2019-08-24T14:15:22Z",    "name": "string",    "organizationId": "string",    "projectIds": [      "string"    ],    "projectRestricted": true,    "revokedAt": "2019-08-24T14:15:22Z",    "role": "string",    "tokenId": "string"  }}

Revoke an API token.

DELETE/api/v1/api-tokens/{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/api-tokens/string"
Empty

Revoke an invitation.

DELETE/api/v1/invitations/{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/invitations/string"
Empty
GET/api/v1/invitations/{token}

Path Parameters

token*string

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/invitations/string"
{  "$schema": "https://example.com/PublicInvitation.json",  "acceptedAt": "2019-08-24T14:15:22Z",  "createdAt": "2019-08-24T14:15:22Z",  "email": "string",  "expiresAt": "2019-08-24T14:15:22Z",  "id": "string",  "invitedByName": "string",  "organizationId": "string",  "organizationName": "string",  "role": "string"}

Accept an invitation.

POST/api/v1/invitations/{token}/accept

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

token*string

Response Body

application/problem+json

curl -X POST "https://example.com/api/v1/invitations/string/accept"
Empty
GET/api/v1/organizations

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/organizations"
{  "$schema": "https://example.com/PageMembership.json",  "items": [    {      "name": "string",      "organizationId": "string",      "requireMfa": true,      "role": "string",      "slug": "string"    }  ],  "nextCursor": "string"}

Create an organization.

POST/api/v1/organizations

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/organizations" \  -H "Content-Type: application/json" \  -d '{    "name": "string",    "slug": "string"  }'
{  "$schema": "https://example.com/Organization.json",  "buildRegistryCredentialId": "string",  "buildRepositoryPrefix": "string",  "createdAt": "2019-08-24T14:15:22Z",  "defaultClusterId": "string",  "id": "string",  "name": "string",  "requireMfa": true,  "slug": "string"}

Show an organization.

GET/api/v1/organizations/{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/organizations/string"
{  "$schema": "https://example.com/Organization.json",  "buildRegistryCredentialId": "string",  "buildRepositoryPrefix": "string",  "createdAt": "2019-08-24T14:15:22Z",  "defaultClusterId": "string",  "id": "string",  "name": "string",  "requireMfa": true,  "slug": "string"}

Update an organization.

PATCH/api/v1/organizations/{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/organizations/string" \  -H "Content-Type: application/json" \  -d '{}'
{  "$schema": "https://example.com/Organization.json",  "buildRegistryCredentialId": "string",  "buildRepositoryPrefix": "string",  "createdAt": "2019-08-24T14:15:22Z",  "defaultClusterId": "string",  "id": "string",  "name": "string",  "requireMfa": true,  "slug": "string"}

Delete an organization.

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

curl -X DELETE "https://example.com/api/v1/organizations/string" \  -H "Content-Type: application/json" \  -d '{    "confirmSlug": "string"  }'
Empty
GET/api/v1/organizations/{id}/invitations

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/organizations/string/invitations"
{  "$schema": "https://example.com/PageInvitation.json",  "items": [    {      "acceptedAt": "2019-08-24T14:15:22Z",      "createdAt": "2019-08-24T14:15:22Z",      "email": "string",      "expiresAt": "2019-08-24T14:15:22Z",      "id": "string",      "organizationId": "string",      "role": "string"    }  ],  "nextCursor": "string"}
POST/api/v1/organizations/{id}/invitations

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/organizations/string/invitations" \  -H "Content-Type: application/json" \  -d '{    "email": "string",    "role": "string"  }'
{  "$schema": "https://example.com/CreateInvitationResponse.json",  "invitation": {    "acceptedAt": "2019-08-24T14:15:22Z",    "createdAt": "2019-08-24T14:15:22Z",    "email": "string",    "expiresAt": "2019-08-24T14:15:22Z",    "id": "string",    "organizationId": "string",    "role": "string"  },  "token": "string"}
GET/api/v1/organizations/{id}/join-token-ttl

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/organizations/string/join-token-ttl"
{  "$schema": "https://example.com/JoinTokenTTLBody.json",  "seconds": 300}
PUT/api/v1/organizations/{id}/join-token-ttl

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/organizations/string/join-token-ttl" \  -H "Content-Type: application/json" \  -d '{    "seconds": 300  }'
{  "$schema": "https://example.com/JoinTokenTTLBody.json",  "seconds": 300}

Leave an organization.

POST/api/v1/organizations/{id}/leave

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 POST "https://example.com/api/v1/organizations/string/leave"
Empty
GET/api/v1/organizations/{id}/members

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/organizations/string/members"
{  "$schema": "https://example.com/PageMember.json",  "items": [    {      "$schema": "https://example.com/Member.json",      "createdAt": "2019-08-24T14:15:22Z",      "email": "string",      "lastActiveAt": "2019-08-24T14:15:22Z",      "mfa": true,      "name": "string",      "picture": "string",      "role": "string",      "teams": [        {          "id": "string",          "name": "string"        }      ],      "userId": "string"    }  ],  "nextCursor": "string"}
GET/api/v1/organizations/{id}/members/{userId}

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
userId*string

Response Body

application/json

application/problem+json

curl -X GET "https://example.com/api/v1/organizations/string/members/string"
{  "$schema": "https://example.com/Member.json",  "createdAt": "2019-08-24T14:15:22Z",  "email": "string",  "lastActiveAt": "2019-08-24T14:15:22Z",  "mfa": true,  "name": "string",  "picture": "string",  "role": "string",  "teams": [    {      "id": "string",      "name": "string"    }  ],  "userId": "string"}

Change a member's role.

PATCH/api/v1/organizations/{id}/members/{userId}

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
userId*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/organizations/string/members/string" \  -H "Content-Type: application/json" \  -d '{    "role": "string"  }'
{  "$schema": "https://example.com/Member.json",  "createdAt": "2019-08-24T14:15:22Z",  "email": "string",  "lastActiveAt": "2019-08-24T14:15:22Z",  "mfa": true,  "name": "string",  "picture": "string",  "role": "string",  "teams": [    {      "id": "string",      "name": "string"    }  ],  "userId": "string"}
DELETE/api/v1/organizations/{id}/members/{userId}

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
userId*string

Response Body

application/problem+json

curl -X DELETE "https://example.com/api/v1/organizations/string/members/string"
Empty
GET/api/v1/organizations/{id}/policy

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/organizations/string/policy"
{  "$schema": "https://example.com/PolicyBody.json",  "forbidSelfApproval": true,  "freeze": {    "enabled": true,    "timezone": "string",    "windows": [      {        "fromDay": 0,        "fromTime": "string",        "toDay": 0,        "toTime": "string"      }    ]  },  "frozenUntil": "2019-08-24T14:15:22Z",  "rollbacksSkipApproval": true}
PUT/api/v1/organizations/{id}/policy

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/organizations/string/policy" \  -H "Content-Type: application/json" \  -d '{    "forbidSelfApproval": true,    "freeze": {      "enabled": true,      "timezone": "string",      "windows": [        {          "fromDay": 0,          "fromTime": "string",          "toDay": 0,          "toTime": "string"        }      ]    },    "rollbacksSkipApproval": true  }'
{  "$schema": "https://example.com/PolicyBody.json",  "forbidSelfApproval": true,  "freeze": {    "enabled": true,    "timezone": "string",    "windows": [      {        "fromDay": 0,        "fromTime": "string",        "toDay": 0,        "toTime": "string"      }    ]  },  "frozenUntil": "2019-08-24T14:15:22Z",  "rollbacksSkipApproval": true}
POST/api/v1/organizations/{id}/scim-token

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/organizations/string/scim-token"
{  "$schema": "https://example.com/ScimTokenOutputBody.json",  "createdAt": "2019-08-24T14:15:22Z",  "endpoint": "string",  "token": "string"}
DELETE/api/v1/organizations/{id}/scim-token

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/organizations/string/scim-token"
Empty
GET/api/v1/organizations/{id}/security

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/organizations/string/security"
{  "$schema": "https://example.com/Security.json",  "issuer": "string",  "membersMfaNotReported": 0,  "membersWithoutMfa": 0,  "providerName": "string",  "requireMfa": true,  "scimEnabled": true}
PUT/api/v1/organizations/{id}/security

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/organizations/string/security" \  -H "Content-Type: application/json" \  -d '{    "requireMfa": true  }'
{  "$schema": "https://example.com/Security.json",  "issuer": "string",  "membersMfaNotReported": 0,  "membersWithoutMfa": 0,  "providerName": "string",  "requireMfa": true,  "scimEnabled": true}
POST/api/v1/organizations/{id}/transfer

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 POST "https://example.com/api/v1/organizations/string/transfer" \  -H "Content-Type: application/json" \  -d '{    "userId": "string"  }'
Empty
GET/api/v1/registry-credentials

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/registry-credentials"
{  "$schema": "https://example.com/PageRegistryCredential.json",  "items": [    {      "$schema": "https://example.com/RegistryCredential.json",      "checkedAt": "2019-08-24T14:15:22Z",      "createdAt": "2019-08-24T14:15:22Z",      "host": "string",      "id": "string",      "organizationId": "string",      "reachable": true,      "username": "string"    }  ],  "nextCursor": "string"}
POST/api/v1/registry-credentials

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/registry-credentials" \  -H "Content-Type: application/json" \  -d '{    "host": "string",    "password": "string",    "username": "string"  }'
{  "$schema": "https://example.com/RegistryCredential.json",  "checkedAt": "2019-08-24T14:15:22Z",  "createdAt": "2019-08-24T14:15:22Z",  "host": "string",  "id": "string",  "organizationId": "string",  "reachable": true,  "username": "string"}
DELETE/api/v1/registry-credentials/{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/registry-credentials/string"
Empty