Move one of the caller's instances to another plan or HappyView release, and start a job that follows the change. Customers only.
Input
application/jsonid
string
Required
The instance's UUID.
idempotencyKey
string
Required
A UUID the client generates once per intended change and resends on every retry of it, so a retry gets the original reply instead of acting twice.
plan
string
Optional
The plan's id, from at.happyproto.server.listPlans.
version
string
Optional
The HappyView release to run.
Output
application/jsonjobId
string
Required
The background job following the change. Poll it with at.happyproto.server.getJob.
Errors
AuthRequired
This endpoint requires an authenticated caller. Forbidden
The caller is not a HappyProto customer, or the provisioner refused them. InvalidRequest
id or idempotencyKey is missing or not a UUID, or neither plan nor version is given. NotFound
No such instance, or it is not the caller's. The two are indistinguishable. InvalidSlug
Passed through from the provisioner: it reserves slugs by configuration as well. SlugTaken
Passed through from the provisioner. NotEntitled
Passed through from the provisioner. InstanceLimit
Passed through from the provisioner. NoCapacity
Passed through from the provisioner. OperationInProgress
Passed through from the provisioner: the instance is already changing, or a request with this idempotencyKey is still running. Upstream
The provisioner is unreachable, not configured, or answered with an error it does not explain to callers, or the job could not be started. Try It
Requests are sent directly from your browser. Some servers may block requests due to CORS.
View raw schema
{
"description": "Move one of the caller's instances to another plan or HappyView release, and start a job that follows the change. Customers only.",
"errors": [
{
"description": "This endpoint requires an authenticated caller.",
"name": "AuthRequired"
},
{
"description": "The caller is not a HappyProto customer, or the provisioner refused them.",
"name": "Forbidden"
},
{
"description": "id or idempotencyKey is missing or not a UUID, or neither plan nor version is given.",
"name": "InvalidRequest"
},
{
"description": "No such instance, or it is not the caller's. The two are indistinguishable.",
"name": "NotFound"
},
{
"description": "Passed through from the provisioner: it reserves slugs by configuration as well.",
"name": "InvalidSlug"
},
{
"description": "Passed through from the provisioner.",
"name": "SlugTaken"
},
{
"description": "Passed through from the provisioner.",
"name": "NotEntitled"
},
{
"description": "Passed through from the provisioner.",
"name": "InstanceLimit"
},
{
"description": "Passed through from the provisioner.",
"name": "NoCapacity"
},
{
"description": "Passed through from the provisioner: the instance is already changing, or a request with this idempotencyKey is still running.",
"name": "OperationInProgress"
},
{
"description": "The provisioner is unreachable, not configured, or answered with an error it does not explain to callers, or the job could not be started.",
"name": "Upstream"
}
],
"input": {
"encoding": "application/json",
"schema": {
"properties": {
"id": {
"description": "The instance's UUID.",
"type": "string"
},
"idempotencyKey": {
"description": "A UUID the client generates once per intended change and resends on every retry of it, so a retry gets the original reply instead of acting twice.",
"type": "string"
},
"plan": {
"description": "The plan's id, from at.happyproto.server.listPlans.",
"type": "string"
},
"version": {
"description": "The HappyView release to run.",
"type": "string"
}
},
"required": [
"id",
"idempotencyKey"
],
"type": "object"
}
},
"output": {
"encoding": "application/json",
"schema": {
"properties": {
"jobId": {
"description": "The background job following the change. Poll it with at.happyproto.server.getJob.",
"type": "string"
}
},
"required": [
"jobId"
],
"type": "object"
}
},
"type": "procedure"
}