Applications

Create, configure, start and stop Applications, with their variables, ports, mounts, basic auth, patches and logs.

An Application is a Service built from your code or a Docker image: a web service, a worker, a private web service or a cron job. Deploying one is on the Deployments page; these routes create and configure it.

Every request goes to https://cloudgate.octabyte.app/backend on the Hosted instance, or to your console address followed by /backend when you self-host. Send a Personal key in x-api-key and the Organization in x-organization-id; Authentication shows how to make the key, and Errors explains every refusal. The examples setCLOUDGATE_KEY and CLOUDGATE_ORG_ID in the shell first. To do the same in the console, read Applications in the user guide.

Applications

Create an Application

POST/applications

Who can call it: Owner or Admin. Needs service: create, which a custom role can also grant.

Request body

FieldTypeNotes
namerequiredstring1 to 100 characters.
appNamestring1 to 63 characters. Matches ^[a-zA-Z0-9_][a-zA-Z0-9._-]*$.
descriptionstring
environmentIdrequiredstringNot empty.
serverIdstring or null
gpusintegerAt least 0.
aiModelobject
aiModel.runtimerequiredstringOne of ollama, vllm, llama.cpp.
aiModel.modelrequiredstringUp to 255 characters. Matches ^[A-Za-z0-9][A-Za-z0-9._-]*(\/[A-Za-z0-9._-]+)*(:[A-Za-z0-9._-]+)?$.
aiModel.imageTagstringMatches ^[A-Za-z0-9_][A-Za-z0-9_.-]{0,127}$.
aiModel.hfTokenstring1 to 512 characters. Matches ^\S+$.

Responses

201 Created
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/applications \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "name": "storefront-web",
    "environmentId": "UVFRqyCfWEtSm6NdDvrZc"
  }'

Get an Application

GET/applications/{id}

Who can call it: Any signed-in member. The route names no permission of its own; Cloudgate checks your role and your access to what it touches as it runs.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 You may not reach what it touches; 404 Nothing with that id in this Organization. The error body.
curl https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Update an Application

PATCH/applications/{id}

Who can call it: Any signed-in member. The route names no permission of its own; Cloudgate checks your role and your access to what it touches as it runs.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Request body

FieldTypeNotes
namestring1 to 100 characters.
descriptionstring or null
envstring or null
buildArgsstring or null
buildSecretsstring or null
watchPathsarray of string or null
memoryReservationstring or null
memoryLimitstring or null
cpuReservationstring or null
cpuLimitstring or null
commandstring or null
argsarray of string or null
portinteger1 to 65535.
sourceTypestringOne of docker, git, github, gitlab, bitbucket, gitea, drop.
cleanCacheboolean or null
repositorystring or null
ownerstring or null
branchstring or null
buildPathstring or null
triggerTypestring or nullOne of push, tag, null.
autoDeployboolean or null
githubIdstring or null
gitlabProjectIdinteger or nullAt least -9007199254740991.
gitlabRepositorystring or null
gitlabOwnerstring or null
gitlabBranchstring or null
gitlabBuildPathstring or null
gitlabPathNamespacestring or null
gitlabIdstring or null
giteaRepositorystring or null
giteaOwnerstring or null
giteaBranchstring or null
giteaBuildPathstring or null
giteaIdstring or null
bitbucketRepositorystring or null
bitbucketRepositorySlugstring or null
bitbucketOwnerstring or null
bitbucketBranchstring or null
bitbucketBuildPathstring or null
bitbucketIdstring or null
usernamestring or null
passwordstring or null
dockerImagestring or nullMatches ^(?:(?:(?:(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9])(?:\.(?:[a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]*[a-zA-Z0-9]))*|\[(?:[a-fA-F0-9:]+)\])(?::[0-9]+)?\/)?[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*(?:\/[a-z0-9]+(?:(?:[._]|__|[-]+)[a-z0-9]+)*)*(?::[\w][\w.-]{0,127})?(?:@[A-Za-z][A-Za-z0-9]*(?:[-_+.][A-Za-z][A-Za-z0-9]*)*:[0-9a-fA-F]{32,})?)?$.
registryUrlstring or null
customGitUrlstring
customGitBranchstring or null
customGitBuildPathstring or null
customGitSSHKeyIdstring or null
enableSubmodulesboolean
dockerfilestring or null
dockerContextPathstring or null
dockerBuildStagestring or null
dropBuildPathstring or null
healthCheckSwarmobject or null
healthCheckSwarm.Testarray of string
healthCheckSwarm.Intervalnumber
healthCheckSwarm.Timeoutnumber
healthCheckSwarm.StartPeriodnumber
healthCheckSwarm.Retriesnumber
restartPolicySwarmobject or null
restartPolicySwarm.Conditionstring
restartPolicySwarm.Delaynumber
restartPolicySwarm.MaxAttemptsnumber
restartPolicySwarm.Windownumber
placementSwarmobject or null
placementSwarm.Constraintsarray of string
placementSwarm.Preferencesarray of object
placementSwarm.Preferences[].Spreadrequiredobject
placementSwarm.MaxReplicasnumber
placementSwarm.Platformsarray of object
placementSwarm.Platforms[].Architecturerequiredstring
placementSwarm.Platforms[].OSrequiredstring
updateConfigSwarmobject or null
updateConfigSwarm.Parallelismrequirednumber
updateConfigSwarm.Delaynumber
updateConfigSwarm.FailureActionstring
updateConfigSwarm.Monitornumber
updateConfigSwarm.MaxFailureRationumber
updateConfigSwarm.Orderrequiredstring
rollbackConfigSwarmobject or null
rollbackConfigSwarm.Parallelismrequirednumber
rollbackConfigSwarm.Delaynumber
rollbackConfigSwarm.FailureActionstring
rollbackConfigSwarm.Monitornumber
rollbackConfigSwarm.MaxFailureRationumber
rollbackConfigSwarm.Orderrequiredstring
modeSwarmobject or null
modeSwarm.Replicatedobject
modeSwarm.Replicated.Replicasnumber
modeSwarm.Globalobject
modeSwarm.ReplicatedJobobject
modeSwarm.ReplicatedJob.MaxConcurrentnumber
modeSwarm.ReplicatedJob.TotalCompletionsnumber
modeSwarm.GlobalJobobject
labelsSwarmmap of string or null
networkSwarmarray of object or null
networkSwarm[].Targetstring
networkSwarm[].Aliasesarray of string
networkSwarm[].DriverOptsmap of string
stopGracePeriodSwarmnumber or null
endpointSpecSwarmobject or null
endpointSpecSwarm.Modestring
endpointSpecSwarm.Portsarray of object
endpointSpecSwarm.Ports[].Protocolstring
endpointSpecSwarm.Ports[].TargetPortnumber
endpointSpecSwarm.Ports[].PublishedPortnumber
endpointSpecSwarm.Ports[].PublishModestring
ulimitsSwarmarray of object or null
ulimitsSwarm[].Namerequiredstring
ulimitsSwarm[].Softrequirednumber
ulimitsSwarm[].Hardrequirednumber
rollbackActiveboolean
isPreviewDeploymentsActiveboolean
requestedPreviewsAllowedboolean
previewWildcardstring or nullMatches ^\*\..*.
previewDnsChallengeboolean
previewLimitintegerAt least 0.
requestedPreviewLimitintegerAt least 1.
previewPortinteger1 to 65535.
previewEnvstring or null
previewBuildArgsstring or null
replicasintegerAt least 0.
gpusintegerAt least 0.
aiModelobject or null
aiModel.runtimestringOne of ollama, vllm, llama.cpp.
aiModel.modelstringUp to 255 characters. Matches ^[A-Za-z0-9][A-Za-z0-9._-]*(\/[A-Za-z0-9._-]+)*(:[A-Za-z0-9._-]+)?$.
aiModel.imageTagstring or nullMatches ^[A-Za-z0-9_][A-Za-z0-9_.-]{0,127}$.
aiModel.hfTokenstring
buildTypestringOne of dockerfile, heroku_buildpacks, paketo_buildpacks, nixpacks, static, railpack.
railpackVersionstring or null
herokuVersionstring or null
publishDirectorystring or null
isStaticSpaboolean or null
createEnvFileboolean
registryIdstring or null
buildRegistryIdstring or null
buildServerIdstring or null

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 You may not reach what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X PATCH https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "name": "storefront-web",
    "description": "Storefront for Northwind Labs",
    "env": "NODE_ENV=production"
  }'

Delete an Application

DELETE/applications/{id}

?force=true is the escape hatch for a Server that is gone for good: it drops the row even though Cloudgate could not confirm the swarm service is gone, and the response names what was left behind. Default false, a string query parameter compared to 'true' like compose's deleteVolumes.

Who can call it: Owner or Admin. Needs service: delete, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.
forcerequiredquerystring
deleteVolumesrequiredquerystring

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X DELETE "https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC?force=example&deleteVolumes=example" \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Save the environment variables of an Application

PATCH/applications/{id}/environment

Who can call it: Any signed-in member. The route names no permission of its own; Cloudgate checks your role and your access to what it touches as it runs.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Request body

FieldTypeNotes
envstring
buildArgsstring
buildSecretsstring
createEnvFileboolean

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 You may not reach what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X PATCH https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/environment \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "env": "NODE_ENV=production",
    "buildArgs": "example",
    "buildSecrets": "<secret>"
  }'

List runtime variable names

GET/applications/{id}/variables

The Application's own runtime variables by name, each with the Output it is wired to.

Who can call it: Any signed-in member. The route names no permission of its own; Cloudgate checks your role and your access to what it touches as it runs.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Responses

200 OK
Every variable name the Application has, with the Output each wired one links to; never a value.
Refusals
401 No key, or the key is not valid; 403 You may not reach what it touches; 404 Nothing with that id in this Organization. The error body.
Fields of the 200 answer
FieldTypeNotes
variablesalwaysarray of object
variables[].namealwaysstring
variables[].linkedToalwaysobject or null
variables[].linkedTo.sourcealwaysstring
variables[].linkedTo.outputalwaysstring
curl https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/variables \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Set or unset runtime variables

PATCH/applications/{id}/variables

Sets and unsets named keys, leaving every other one as it was, and answers the names as the GET does. VARIABLE_IS_LINKED (409) for a wired name, VARIABLE_NOT_SET (404) for unsetting a name not set.

Who can call it: Any signed-in member. The route names no permission of its own; Cloudgate checks your role and your access to what it touches as it runs.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Request body

FieldTypeNotes
setmap of string
unsetarray of stringUp to 100 items.

Responses

200 OK
The variable names after the change, as GET answers them; never a value.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 You may not reach what it touches; 404 Nothing with that id in this Organization. The error body.
Fields of the 200 answer
FieldTypeNotes
variablesalwaysarray of object
variables[].namealwaysstring
variables[].linkedToalwaysobject or null
variables[].linkedTo.sourcealwaysstring
variables[].linkedTo.outputalwaysstring
curl -X PATCH https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/variables \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "set": {},
    "unset": [
      "example"
    ]
  }'

Test a registry login

POST/applications/{id}/test-registry-login

Does the registry a Docker-image source pulls from accept this login? 204 when it does, a 400 carrying the registry's own refusal when it does not.

Who can call it: Any signed-in member. The route names no permission of its own; Cloudgate checks your role and your access to what it touches as it runs.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Request body

FieldTypeNotes
registryUrlstring or null
usernamerequiredstringNot empty.
passwordstring or null

Responses

204 No content
Done. The answer has no body.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 You may not reach what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/test-registry-login \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "username": "deploy"
  }'

Upload files for a drop deployment

POST/applications/{id}/drop

The upload half of a drop deployment: the zip arrives as the multipart zip part and is extracted into the application's code directory. Deploying it stays POST /applications/:id/deployments.

Who can call it: Any signed-in member. The route names no permission of its own; Cloudgate checks your role and your access to what it touches as it runs.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Request body

FieldTypeNotes
dropBuildPathstringNot empty.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 You may not reach what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/drop \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "dropBuildPath": "/"
  }'

Compare a folder with the uploaded files

POST/applications/{id}/drop/compare

Who can call it: Owner, Admin or Member. Needs service: update, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Request body

FieldTypeNotes
dropBuildPathstringNot empty.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/drop/compare \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "dropBuildPath": "/"
  }'

Upload only the changed files

POST/applications/{id}/drop/apply

The second half: the multipart files part is the whole folder's file list, the zip part only the files compare asked for, and the fields are /drop's. Answers what /drop answers. Any member who may update the Application may call it; the service scopes it to the caller's organization.

Who can call it: Owner, Admin or Member. Needs service: update, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Request body

FieldTypeNotes
dropBuildPathstringNot empty.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/drop/apply \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "dropBuildPath": "/"
  }'

Start an Application

POST/applications/{id}/start

Who can call it: Owner, Admin or Member. Needs deployment: create, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/start \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Stop an Application

POST/applications/{id}/stop

Who can call it: Owner, Admin or Member. Needs deployment: create, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/stop \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Reload an Application

POST/applications/{id}/reload

Restart the Swarm service without rebuilding the image.

Who can call it: Owner, Admin or Member. Needs deployment: create, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/reload \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Set the copy range

PUT/applications/{id}/copy-range

Who can call it: Owner, Admin or Member. Needs service: update, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Request body

FieldTypeNotes
minCopiesrequiredinteger0 to 1000.
maxCopiesrequiredinteger1 to 1000.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X PUT https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/copy-range \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "minCopies": 0,
    "maxCopies": 1
  }'

Rotate the deploy-webhook token

POST/applications/{id}/refresh-token

Rotate the secret in the deploy-webhook URL.

Who can call it: Any signed-in member. The route names no permission of its own; Cloudgate checks your role and your access to what it touches as it runs.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 You may not reach what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/refresh-token \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Check whether it waits for a GPU

GET/applications/{id}/gpu-wait

"Waiting for a GPU" on the Overview: { waiting: true, free, cards } when the Application reserves GPUs and Swarm has left its task pending for want of a node, else { waiting: false }. Read live; writes nothing.

Who can call it: Any signed-in member. The route names no permission of its own; Cloudgate checks your role and your access to what it touches as it runs.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 You may not reach what it touches; 404 Nothing with that id in this Organization. The error body.
curl https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/gpu-wait \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Retry deleting an Application

POST/applications/{id}/delete/retry

Retry a cloud Service's incomplete Delete: another destroy-only Cloud run from the kept state.

Who can call it: Owner or Admin. Needs service: delete, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/delete/retry \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Forget the incomplete delete of an Application

POST/applications/{id}/delete/forget

Forget a cloud Service's incomplete Delete: the row dropped, what is left in AWS written into the audit entry.

Who can call it: Owner or Admin. Needs service: delete, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredpathstringThe Application's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/delete/forget \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Ports

List ports for an Application

GET/ports

Who can call it: Owner, Admin or Member. Needs service: read, which a custom role can also grant.

Parameters

NameInTypeNotes
applicationIdrequiredquerystringNot empty.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl "https://cloudgate.octabyte.app/backend/ports?applicationId=j9ct9tCzxUD9FjoxV2gtc" \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Create a port

POST/ports

Who can call it: Owner or Admin. Needs service: create, which a custom role can also grant.

Request body

FieldTypeNotes
publishedPortrequiredinteger1 to 65535.
targetPortrequiredinteger1 to 65535.
protocolstringOne of tcp, udp. Default "tcp".
publishModestringOne of ingress, host. Default "ingress".
applicationIdrequiredstringNot empty.

Responses

201 Created
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/ports \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "publishedPort": 3000,
    "targetPort": 3000,
    "applicationId": "j9ct9tCzxUD9FjoxV2gtc"
  }'

Get a port

GET/ports/{portId}

Who can call it: Owner, Admin or Member. Needs service: read, which a custom role can also grant.

Parameters

NameInTypeNotes
portIdrequiredpathstringThe port's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl https://cloudgate.octabyte.app/backend/ports/kyipRhkkXUt2hkNXJE5Gk \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Update a port

PATCH/ports/{portId}

Who can call it: Owner or Admin. Needs service: create, which a custom role can also grant.

Parameters

NameInTypeNotes
portIdrequiredpathstringThe port's id.

Request body

FieldTypeNotes
publishedPortinteger1 to 65535.
targetPortinteger1 to 65535.
protocolstringOne of tcp, udp.
publishModestringOne of ingress, host.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X PATCH https://cloudgate.octabyte.app/backend/ports/kyipRhkkXUt2hkNXJE5Gk \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "publishedPort": 3000,
    "targetPort": 3000,
    "protocol": "tcp"
  }'

Delete a port

DELETE/ports/{portId}

Who can call it: Owner or Admin. Needs service: delete, which a custom role can also grant.

Parameters

NameInTypeNotes
portIdrequiredpathstringThe port's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X DELETE https://cloudgate.octabyte.app/backend/ports/kyipRhkkXUt2hkNXJE5Gk \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Mounts

List mounts for a Service

GET/mounts

Who can call it: Owner, Admin or Member. Needs volume: read, which a custom role can also grant.

Parameters

NameInTypeNotes
serviceIdrequiredquerystringNot empty.
serviceTyperequiredquerystringOne of application, postgres, mysql, mariadb, mongo, redis, compose, libsql.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl "https://cloudgate.octabyte.app/backend/mounts?serviceId=ikGaJLrdLoCZDcimNaVV3&serviceType=application" \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Create a mount

POST/mounts

Who can call it: Owner, Admin or Member. Needs volume: create, which a custom role can also grant.

Request body

FieldTypeNotes
typerequiredstringMust be 'file' when serviceType is 'compose'. Nothing assembles a Compose stack's mount rows into a deploy spec, so a bind or a volume attached to one would never be read; declare those in the stack's own compose file. One of bind, volume, file.
hostPathstring
volumeNamestringNot empty. Matches ^[a-zA-Z0-9][a-zA-Z0-9_.-]*$.
filePathstring
contentstring
mountPathstringRequired unless serviceType is 'compose'. A compose stack's mount rows are never assembled into a deploy spec, so a compose mount has no container target to name; every other serviceType is refused without one. Not empty.
serviceTypestringOne of application, postgres, mysql, mariadb, mongo, redis, compose, libsql. Default "application".
serviceIdrequiredstringNot empty.

Responses

201 Created
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/mounts \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "type": "bind",
    "serviceId": "ikGaJLrdLoCZDcimNaVV3"
  }'

Get a mount

GET/mounts/{mountId}

Who can call it: Owner, Admin or Member. Needs volume: read, which a custom role can also grant.

Parameters

NameInTypeNotes
mountIdrequiredpathstringThe mount's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl https://cloudgate.octabyte.app/backend/mounts/SWLRAHMW7ah3BRmikvVaK \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Update a mount

PATCH/mounts/{mountId}

Who can call it: Owner, Admin or Member. Needs volume: create, which a custom role can also grant.

Parameters

NameInTypeNotes
mountIdrequiredpathstringThe mount's id.

Request body

FieldTypeNotes
typestringMust be 'file' when the mount belongs to a Compose stack. Nothing assembles a Compose stack's mount rows into a deploy spec, so a bind or a volume attached to one would never be read; declare those in the stack's own compose file. One of bind, volume, file.
hostPathstring
volumeNamestringNot empty. Matches ^[a-zA-Z0-9][a-zA-Z0-9_.-]*$.
filePathstring
contentstring
mountPathstringNot empty.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X PATCH https://cloudgate.octabyte.app/backend/mounts/SWLRAHMW7ah3BRmikvVaK \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "type": "bind",
    "hostPath": "/",
    "volumeName": "example"
  }'

Delete a mount

DELETE/mounts/{mountId}

Who can call it: Owner, Admin or Member. Needs volume: delete, which a custom role can also grant.

Parameters

NameInTypeNotes
mountIdrequiredpathstringThe mount's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X DELETE https://cloudgate.octabyte.app/backend/mounts/SWLRAHMW7ah3BRmikvVaK \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Basic auth

List basic-auth users for an Application

GET/security

Who can call it: Owner, Admin or Member. Needs service: read, which a custom role can also grant.

Parameters

NameInTypeNotes
applicationIdrequiredquerystringNot empty.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl "https://cloudgate.octabyte.app/backend/security?applicationId=j9ct9tCzxUD9FjoxV2gtc" \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Create a basic-auth user

POST/security

Who can call it: Owner or Admin. Needs service: create, which a custom role can also grant.

Request body

FieldTypeNotes
usernamerequiredstring1 to 255 characters.
passwordrequiredstringNot empty.
applicationIdrequiredstringNot empty.

Responses

201 Created
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/security \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "username": "deploy",
    "password": "<secret>",
    "applicationId": "j9ct9tCzxUD9FjoxV2gtc"
  }'

Get a basic-auth user

GET/security/{securityId}

Who can call it: Owner, Admin or Member. Needs service: read, which a custom role can also grant.

Parameters

NameInTypeNotes
securityIdrequiredpathstringThe security's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl https://cloudgate.octabyte.app/backend/security/D5MY8hVPgJb9rENJ4nD7Z \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Update a basic-auth user

PATCH/security/{securityId}

Who can call it: Owner or Admin. Needs service: create, which a custom role can also grant.

Parameters

NameInTypeNotes
securityIdrequiredpathstringThe security's id.

Request body

FieldTypeNotes
usernamestring1 to 255 characters.
passwordstringNot empty.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X PATCH https://cloudgate.octabyte.app/backend/security/D5MY8hVPgJb9rENJ4nD7Z \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "username": "deploy",
    "password": "<secret>"
  }'

Delete a basic-auth user

DELETE/security/{securityId}

?force=true is the escape hatch for a Server that is gone for good, as on an Application Delete: without it, a Server that cannot be reached is a 409 naming it and the row is kept; with it, the row goes and the response names the router left in that Server's file. Compared to 'true' like the Application Delete's.

Who can call it: Owner or Admin. Needs service: create, which a custom role can also grant.

Parameters

NameInTypeNotes
securityIdrequiredpathstringThe security's id.
forcerequiredquerystring

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X DELETE "https://cloudgate.octabyte.app/backend/security/D5MY8hVPgJb9rENJ4nD7Z?force=example" \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Patches

List a Service's patches

GET/patches

Who can call it: Owner, Admin or Member. Needs service: read, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredquerystringNot empty.
typerequiredquerystringOne of application, compose.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl "https://cloudgate.octabyte.app/backend/patches?id=example&type=example" \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Create a patch

POST/patches

Who can call it: Owner or Admin. Needs service: create, which a custom role can also grant.

Request body

FieldTypeNotes
filePathrequiredstringA path relative to the repository root, with no ".." segment and none of ", `, $, a backslash, NUL or a line break. Not empty.
contentrequiredstring
typestringOne of create, update, delete.
enabledboolean
applicationIdstringThe owning Application. Exactly one of applicationId or composeId must be sent; a body carrying both is refused.
composeIdstringThe owning Compose stack. Exactly one of applicationId or composeId must be sent; a body carrying both is refused.

Responses

201 Created
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/patches \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "filePath": "/",
    "content": "example"
  }'

Save file as patch

POST/patches/save-file

Who can call it: Owner or Admin. Needs service: create, which a custom role can also grant.

Request body

FieldTypeNotes
idrequiredstringNot empty.
typerequiredstringOne of application, compose.
filePathrequiredstringA path relative to the repository root, with no ".." segment and none of ", `, $, a backslash, NUL or a line break. Not empty.
contentrequiredstring
patchTypestringOne of create, update. Default "update".

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/patches/save-file \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "id": "7x69ERQdJG36GHb5z54Qw",
    "type": "application",
    "filePath": "/",
    "content": "example"
  }'

Mark file for deletion

POST/patches/mark-for-deletion

Who can call it: Owner or Admin. Needs service: create, which a custom role can also grant.

Request body

FieldTypeNotes
idrequiredstringNot empty.
typerequiredstringOne of application, compose.
filePathrequiredstringA path relative to the repository root, with no ".." segment and none of ", `, $, a backslash, NUL or a line break. Not empty.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/patches/mark-for-deletion \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "id": "7x69ERQdJG36GHb5z54Qw",
    "type": "application",
    "filePath": "/"
  }'

Ensure repo

POST/patches/repo/ensure

Who can call it: Owner or Admin. Needs service: create, which a custom role can also grant.

Request body

FieldTypeNotes
idrequiredstringNot empty.
typerequiredstringOne of application, compose.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/patches/repo/ensure \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "id": "7x69ERQdJG36GHb5z54Qw",
    "type": "application"
  }'

Read repo directories

GET/patches/repo/directories

Who can call it: Owner, Admin or Member. Needs service: read, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredquerystringNot empty.
typerequiredquerystringOne of application, compose.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl "https://cloudgate.octabyte.app/backend/patches/repo/directories?id=example&type=example" \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Read repo file

GET/patches/repo/file

Who can call it: Owner, Admin or Member. Needs service: read, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredquerystringNot empty.
typerequiredquerystringOne of application, compose.
filePathrequiredquerystring
sourcequerystringOne of patch, repo. Default "patch".

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches. The error body.
curl "https://cloudgate.octabyte.app/backend/patches/repo/file?id=example&type=example&filePath=example" \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Clean repos

POST/patches/repo/clean

Who can call it: Any signed-in member. The route names no permission of its own; Cloudgate checks your role and your access to what it touches as it runs.

Request body

FieldTypeNotes
serverIdstring or null

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 You may not reach what it touches. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/patches/repo/clean \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "serverId": "Ni7mAbWKjbWy4KErPjtrY"
  }'

Get a patch

GET/patches/{patchId}

Who can call it: Owner, Admin or Member. Needs service: read, which a custom role can also grant.

Parameters

NameInTypeNotes
patchIdrequiredpathstringThe patch's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl https://cloudgate.octabyte.app/backend/patches/aKJKDSmq8mHGaxCdYQwUZ \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Update a patch

PATCH/patches/{patchId}

Who can call it: Owner or Admin. Needs service: create, which a custom role can also grant.

Parameters

NameInTypeNotes
patchIdrequiredpathstringThe patch's id.

Request body

FieldTypeNotes
filePathstringA path relative to the repository root, with no ".." segment and none of ", `, $, a backslash, NUL or a line break. Not empty.
contentstring
typestringOne of create, update, delete.
enabledboolean

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X PATCH https://cloudgate.octabyte.app/backend/patches/aKJKDSmq8mHGaxCdYQwUZ \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "filePath": "/",
    "content": "example",
    "type": "create"
  }'

Delete a patch

DELETE/patches/{patchId}

Who can call it: Owner or Admin. Needs service: delete, which a custom role can also grant.

Parameters

NameInTypeNotes
patchIdrequiredpathstringThe patch's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X DELETE https://cloudgate.octabyte.app/backend/patches/aKJKDSmq8mHGaxCdYQwUZ \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Toggle enabled

POST/patches/{patchId}/toggle

Who can call it: Owner or Admin. Needs service: create, which a custom role can also grant.

Parameters

NameInTypeNotes
patchIdrequiredpathstringThe patch's id.

Request body

FieldTypeNotes
enabledrequiredboolean

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/patches/aKJKDSmq8mHGaxCdYQwUZ/toggle \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "enabled": true
  }'

Runtime log

Read the runtime log

GET/applications/{id}/runtime-log

Every task's lines from since on, merged by time, each naming its task, and the since of the next read.

Who can call it: Any signed-in member. The route names no permission of its own; Cloudgate checks your role and your access to what it touches as it runs.

Parameters

NameInTypeNotes
idrequiredpathstringThe id.
sincequeryintegerAt least 0.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 You may not reach what it touches; 404 Nothing with that id in this Organization. The error body.
curl https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/runtime-log \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Cron runs

Run a cron Service now

POST/applications/{id}/run

Who can call it: Owner, Admin or Member. Needs deployment: create, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredpathstringThe id.

Responses

201 Created
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/run \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Cloud resources

List cloud resources

GET/applications/{id}/cloud-resources

What Cloudgate made for the Service: type, AWS id, region and tags only.

Who can call it: Owner, Admin or Member. Needs service: read, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredpathstringThe cloud resource's id.

Responses

200 OK
The result, as JSON.
Refusals
401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/cloud-resources \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID"

Rebuild a cloud resource

POST/applications/{id}/state/rebuild

Discards an unreadable state and plans an adopt by tag; confirmed by the Service's name.

Who can call it: Owner, Admin or Member. Needs service: update, which a custom role can also grant.

Parameters

NameInTypeNotes
idrequiredpathstringThe cloud resource's id.

Request body

FieldTypeNotes
confirmNamerequiredstringNot empty.

Responses

200 OK
The result, as JSON.
Refusals
400 Validation failed; details names each field; 401 No key, or the key is not valid; 403 Your role does not allow it, or you were not granted what it touches; 404 Nothing with that id in this Organization. The error body.
curl -X POST https://cloudgate.octabyte.app/backend/applications/RAU6yAYUXFRdXdPLyLoPC/state/rebuild \
  -H "x-api-key: $CLOUDGATE_KEY" \
  -H "x-organization-id: $CLOUDGATE_ORG_ID" \
  -H "content-type: application/json" \
  -d '{
    "confirmName": "example"
  }'

Something missing or wrong on this page? Email support@octabyte.io, or start a free trial and try it in the console.