From
bafyreidwgliw6s6i54osalnflyta7v6spfvrnf2bwnwm3j3bcfblvgxfbm
indexed 2026-10-31 00:18 UTC
View this version
To
bafyreigakakrnhk3yi5bpwuhh645ebm7flak2dqfuka74eiocwxvhrtaka
indexed 2026-11-02 16:13 UTC
View this version
Compatibility
backward compatible No changes detected.
Changes
11
{22
"$type": "com.atproto.lexicon.schema",33
"defs": {44
"availableVersion": {55
"description": "A newer HappyView release the instance can upgrade to.",66
"properties": {77
"label": {88
"description": "The HappyView version the release carries, e.g. 3.0.0-alpha.41, when known.",99
"type": "string"1010
},1111
"releasedAt": {1212
"description": "When HappyProto first offered it.",1313
"format": "datetime",1414
"type": "string"1515
},1616
"version": {1717
"description": "The release to pass to at.happyproto.server.upgradeInstance.",1818
"type": "string"1919
}2020
},2121
"required": [2222
"version",2323
"releasedAt"2424
],2525
"type": "object"2626
},2727
"instance": {2828
"description": "A customer's HappyView instance. Never carries the provisioner's placement or internal fields.",2929
"properties": {3030
"availableVersion": {3131
"description": "A newer release, when one is on offer.",3232
"ref": "#availableVersion",3333
"type": "ref"3434
},3535
"createdAt": {3636
"format": "datetime",3737
"type": "string"3838
},3939
"id": {4040
"description": "A UUID.",4141
"type": "string"4242
},4343
"operation": {4444
"description": "The change in progress, if any.",4545
"ref": "#operation",4646
"type": "ref"4747
},4848
"plan": {4949
"description": "The plan's id.",5050
"type": "string"5151
},5252
"slug": {5353
"type": "string"5454
},5555
"state": {5656
"knownValues": [5757
"provisioning",5858
"running",5959
"stopped",6060
"failed",6161
"deleting"6262
],6363
"type": "string"6464
},6565
"url": {6666
"format": "uri",6767
"type": "string"6868
},6969
"version": {7070
"description": "The HappyView release it runs.",7171
"type": "string"7272
},7373
"versionLabel": {7474
"description": "The HappyView version the release carries, e.g. 3.0.0-alpha.41, when known.",7575
"type": "string"7676
}7777
},7878
"required": [7979
"id",8080
"slug",8181
"url",8282
"plan",8383
"version",8484
"state",8585
"createdAt"8686
],8787
"type": "object"8888
},8989
"main": {9090
"description": "Create an instance for the caller, and start a job that follows its provisioning. Customers only.",9191
"errors": [9292
{9393
"description": "This endpoint requires an authenticated caller.",9494
"name": "AuthRequired"9595
},9696
{9797
"description": "The caller is not a HappyProto customer, or the provisioner refused them.",9898
"name": "Forbidden"9999
},100100
{101101
"description": "slug, plan or idempotencyKey is missing or malformed.",102102
"name": "InvalidRequest"103103
},104104
{105105
"description": "Passed through from the provisioner.",106106
"name": "NotFound"107107
},108108
{109109
"description": "Passed through from the provisioner: it reserves slugs by configuration as well.",110110
"name": "InvalidSlug"111111
},112112
{113113
"description": "Passed through from the provisioner.",114114
"name": "SlugTaken"115115
},116116
{117117
"description": "Passed through from the provisioner.",118118
"name": "NotEntitled"119119
},120120
{121121
"description": "Passed through from the provisioner.",122122
"name": "InstanceLimit"123123
},124124
{125125
"description": "Passed through from the provisioner.",126126
"name": "NoCapacity"127127
},128128
{129129
"description": "Passed through from the provisioner: the instance is already changing, or a request with this idempotencyKey is still running.",130130
"name": "OperationInProgress"131131
},132132
{133
"description": "The create carried no acceptance of the beta terms, or one without its wording.",133
"description": "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.",134134
"name": "TermsRequired"135135
},136136
{137
"description": "The accepted terms are no longer the ones in force: reload and accept the current ones.",137
"description": "The caller accepted only older beta terms than the ones in force: accept the current ones and try again.",138138
"name": "TermsOutdated"139139
},140140
{141141
"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.",142142
"name": "Upstream"143143
}144144
],145145
"input": {146146
"encoding": "application/json",147147
"schema": {148148
"properties": {149149
"idempotencyKey": {150150
"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.",151151
"type": "string"152152
},153153
"plan": {154154
"description": "The plan's id, from at.happyproto.server.listPlans.",155155
"type": "string"156156
},157157
"slug": {158158
"description": "The instance's subdomain: 3 to 32 of a-z, 0-9 and -, starting with a letter.",159159
"type": "string"160160
},161161
"terms": {162
"description": "The beta terms the caller accepted with the create form's checkbox. The provisioner refuses a create without it (TermsRequired), staff included; it is optional here only so clients can start sending it before the provisioner requires it.",162
"description": "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.",163163
"ref": "#termsAcceptance",164164
"type": "ref"165165
}166166
},167167
"required": [168168
"slug",169169
"plan",170170
"idempotencyKey"171171
],172172
"type": "object"173173
}174174
},175175
"output": {176176
"encoding": "application/json",177177
"schema": {178178
"properties": {179179
"instance": {180180
"ref": "#instance",181181
"type": "ref"182182
},183183
"jobId": {184184
"description": "The background job following the change. Poll it with at.happyproto.server.getJob.",185185
"type": "string"186186
}187187
},188188
"required": [189189
"instance",190190
"jobId"191191
],192192
"type": "object"193193
}194194
},195195
"type": "procedure"196196
},197197
"operation": {198198
"properties": {199199
"error": {200200
"description": "The provisioner's error code, when it failed.",201201
"type": "string"202202
},203203
"id": {204204
"type": "string"205205
},206206
"kind": {207207
"knownValues": [208208
"create",209209
"update",210210
"upgrade",211211
"stop",212212
"start",213213
"destroy"214214
],215215
"type": "string"216216
},217217
"status": {218218
"knownValues": [219219
"pending",220220
"running",221221
"succeeded",222222
"failed"223223
],224224
"type": "string"225225
},226226
"step": {227227
"description": "The step it last reached.",228228
"type": "string"229229
}230230
},231231
"required": [232232
"id",233233
"kind",234234
"status"235235
],236236
"type": "object"237237
},238238
"termsAcceptance": {239239
"description": "An acceptance of the beta terms, recorded append-only by the provisioner with the caller's DID.",240240
"properties": {241241
"termsVersion": {242242
"description": "The terms in force, e.g. beta-2026-11. Anything else is TermsOutdated.",243243
"maxLength": 64,244244
"type": "string"245245
},246246
"text": {247247
"description": "The exact wording the caller ticked.",248248
"maxLength": 1000,249249
"type": "string"250250
},251251
"textVersion": {252252
"description": "The version of the checkbox's wording.",253253
"maxLength": 32,254254
"type": "string"255255
}256256
},257257
"required": [258258
"termsVersion",259259
"textVersion",260260
"text"261261
],262262
"type": "object"263263
}264264
},265265
"id": "at.happyproto.server.createInstance",266266
"lexicon": 1267267
}