at.happyproto.server.createInstance

happyproto.at

Documentation

Create an instance for the caller, and start a job that follows its provisioning. Customers only.

main procedure

Create an instance for the caller, and start a job that follows its provisioning. Customers only.

Input

Encodingapplication/json
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 Required

The plan's id, from at.happyproto.server.listPlans.

slug string Required

The instance's subdomain: 3 to 32 of a-z, 0-9 and -, starting with a letter.

Output

Encodingapplication/json
instance ref#instance Required

No description available.

jobId 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 slug, plan or idempotencyKey is missing or malformed.
NotFound Passed through from the provisioner.
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.

Base URL for XRPC calls (e.g., https://bsky.social)
Enter valid JSON for the request body
View raw schema
{
  "description": "Create an instance for the caller, and start a job that follows its provisioning. 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": "slug, plan or idempotencyKey is missing or malformed.",
      "name": "InvalidRequest"
    },
    {
      "description": "Passed through from the provisioner.",
      "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": {
        "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"
        },
        "slug": {
          "description": "The instance's subdomain: 3 to 32 of a-z, 0-9 and -, starting with a letter.",
          "type": "string"
        }
      },
      "required": [
        "slug",
        "plan",
        "idempotencyKey"
      ],
      "type": "object"
    }
  },
  "output": {
    "encoding": "application/json",
    "schema": {
      "properties": {
        "instance": {
          "ref": "#instance",
          "type": "ref"
        },
        "jobId": {
          "description": "The background job following the change. Poll it with at.happyproto.server.getJob.",
          "type": "string"
        }
      },
      "required": [
        "instance",
        "jobId"
      ],
      "type": "object"
    }
  },
  "type": "procedure"
}
instance object

A customer's HappyView instance. Never carries the provisioner's placement or internal fields.

Properties

createdAt string datetime Required

An RFC 3339 formatted timestamp.

id string Required

A UUID.

operation ref #operation Optional

The change in progress, if any.

plan string Required

The plan's id.

slug string Required

No description available.

state string Required

No description available.

Known values: provisioning, running, stopped, failed, deleting
url string uri Required

A valid URI.

version string Required

The HappyView release it runs.

View raw schema
{
  "description": "A customer's HappyView instance. Never carries the provisioner's placement or internal fields.",
  "properties": {
    "createdAt": {
      "format": "datetime",
      "type": "string"
    },
    "id": {
      "description": "A UUID.",
      "type": "string"
    },
    "operation": {
      "description": "The change in progress, if any.",
      "ref": "#operation",
      "type": "ref"
    },
    "plan": {
      "description": "The plan's id.",
      "type": "string"
    },
    "slug": {
      "type": "string"
    },
    "state": {
      "knownValues": [
        "provisioning",
        "running",
        "stopped",
        "failed",
        "deleting"
      ],
      "type": "string"
    },
    "url": {
      "format": "uri",
      "type": "string"
    },
    "version": {
      "description": "The HappyView release it runs.",
      "type": "string"
    }
  },
  "required": [
    "id",
    "slug",
    "url",
    "plan",
    "version",
    "state",
    "createdAt"
  ],
  "type": "object"
}
operation object

No description available.

Properties

error string Optional

The provisioner's error code, when it failed.

id string Required

No description available.

kind string Required

No description available.

Known values: create, update, upgrade, stop, start, destroy
status string Required

No description available.

Known values: pending, running, succeeded, failed
step string Optional

The step it last reached.

View raw schema
{
  "properties": {
    "error": {
      "description": "The provisioner's error code, when it failed.",
      "type": "string"
    },
    "id": {
      "type": "string"
    },
    "kind": {
      "knownValues": [
        "create",
        "update",
        "upgrade",
        "stop",
        "start",
        "destroy"
      ],
      "type": "string"
    },
    "status": {
      "knownValues": [
        "pending",
        "running",
        "succeeded",
        "failed"
      ],
      "type": "string"
    },
    "step": {
      "description": "The step it last reached.",
      "type": "string"
    }
  },
  "required": [
    "id",
    "kind",
    "status"
  ],
  "type": "object"
}

Lexicon Garden

@