at.happyproto.server.createInstance

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

Repository @happyproto.at did:plc:mo7vq4jbioxwafy5zkcc3eux namespace authority
Details · procedure
Kindprocedure
Authorityserver.happyproto.at
Indexed

Procedure

procedure · POST

Input

application/json

idempotencyKey

requiredstring

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

requiredstring

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

slug

requiredstring

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

An acceptance of the beta terms made with this create, as dashboards from before sign-in acceptance send. Optional: the caller's account accepts them once with actor.acceptTerms, and the provisioner refuses a create unless one or the other covers the terms in force (TermsRequired, TermsOutdated), staff included.

Reference

Output

application/json

instance

requiredref
Reference

jobId

requiredstring

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.

TermsRequired

The caller's account hasn't accepted the beta terms (actor.acceptTerms), and the create carried no acceptance of its own, or one without its wording.

TermsOutdated

The caller accepted only older beta terms than the ones in force: accept the current ones and try again.

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.

#availableVersion

object

A newer HappyView release the instance can upgrade to.

Properties

label

string

The HappyView version the release carries, e.g. 3.0.0-alpha.41, when known.

releasedAt

requiredstring · datetime

When HappyProto first offered it.

version

requiredstring

The release to pass to at.happyproto.server.upgradeInstance.

#instance

object

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

Properties

A newer release, when one is on offer.

Reference

createdAt

requiredstring · datetime

id

requiredstring

A UUID.

The change in progress, if any.

Reference

plan

requiredstring

The plan's id.

slug

requiredstring

state

requiredstring
  • knownValues: provisioning | running | stopped | failed | deleting

url

requiredstring · uri

version

requiredstring

The HappyView release it runs.

The HappyView version the release carries, e.g. 3.0.0-alpha.41, when known.

#operation

object

Properties

error

string

The provisioner's error code, when it failed.

id

requiredstring

kind

requiredstring
  • knownValues: create | update | upgrade | stop | start | destroy

status

requiredstring
  • knownValues: pending | running | succeeded | failed

step

string

The step it last reached.

#termsAcceptance

object

An acceptance of the beta terms, recorded append-only by the provisioner with the caller's DID.

Properties

termsVersion

requiredstring

The terms in force, e.g. beta-2026-11. Anything else is TermsOutdated.

  • maxLength: 64

text

requiredstring

The exact wording the caller ticked.

  • maxLength: 1000

textVersion

requiredstring

The version of the checkbox's wording.

  • maxLength: 32

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.