at.happyproto.server.listDomains
Schema Diff
+16 -0
Compatibility Analysis
Backward Compatible
Backward compatible. 2 non-breaking changes.
Non-Breaking Changes (2)
- AddedVertex AddedVertex { vertex_id: "at.happyproto.server.listDomains:output.requestedPrimary" }
- AddedEdge AddedEdge { src: "at.happyproto.server.listDomains:output", tgt: "at.happyproto.server.listDomains:output.requestedPrimary", kind: "prop", name: Some("requestedPrimary") }
Migration Guidance
Added Elements
AddedVertex { vertex_id: "at.happyproto.server.listDomains:output.requestedPrimary" }
Additional Notes
- Non-breaking: AddedEdge { src: "at.happyproto.server.listDomains:output", tgt: "at.happyproto.server.listDomains:output.requestedPrimary", kind: "prop", name: Some("requestedPrimary") }
1
1
{
2
2
"$type": "com.atproto.lexicon.schema",
3
3
"defs": {
4
4
"altRecord": {
5
5
"properties": {
6
6
"type": {
7
7
"description": "A.",
8
8
"type": "string"
9
9
},
10
10
"value": {
11
11
"description": "The instance host's public IPv4.",
12
12
"type": "string"
13
13
}
14
14
},
15
15
"required": [
16
16
"type",
17
17
"value"
18
18
],
19
19
"type": "object"
20
20
},
21
21
"checks": {
22
22
"properties": {
23
23
"checkedAt": {
24
24
"description": "When the check ran.",
25
25
"type": "string"
26
26
},
27
27
"ownership": {
28
28
"description": "Whether the TXT record carries this claim's token.",
29
29
"knownValues": [
30
30
"ok",
31
31
"missing",
32
32
"error"
33
33
],
34
34
"type": "string"
35
35
},
36
36
"pointing": {
37
37
"description": "Whether the hostname resolves to the instance's host. Absent when the check didn't get that far, such as when the TXT record was missing.",
38
38
"knownValues": [
39
39
"ok",
40
40
"elsewhere",
41
41
"error"
42
42
],
43
43
"type": "string"
44
44
}
45
45
},
46
46
"required": [
47
47
"ownership",
48
48
"checkedAt"
49
49
],
50
50
"type": "object"
51
51
},
52
52
"domain": {
53
53
"description": "A custom domain on one of the caller's instances.",
54
54
"properties": {
55
55
"checks": {
56
56
"description": "The latest DNS check. Absent until the first check has run.",
57
57
"ref": "#checks",
58
58
"type": "ref"
59
59
},
60
60
"createdAt": {
61
61
"description": "When the domain was added.",
62
62
"type": "string"
63
63
},
64
64
"expiresAt": {
65
65
"description": "When a pending claim expires if it is never verified. Absent once verified.",
66
66
"type": "string"
67
67
},
68
68
"hostname": {
69
69
"description": "The hostname, lowercase, internationalized names in punycode.",
70
70
"type": "string"
71
71
},
72
72
"id": {
73
73
"description": "The domain's UUID.",
74
74
"type": "string"
75
75
},
76
76
"lapsesAt": {
77
77
"description": "When HappyProto stops serving the domain if its TXT record stays missing. Absent while the record is present.",
78
78
"type": "string"
79
79
},
80
80
"primary": {
81
81
"description": "Whether this is the instance's primary domain, the one its PUBLIC_URL follows.",
82
82
"type": "boolean"
83
83
},
84
84
"records": {
85
85
"description": "The DNS records the customer publishes: the TXT that proves ownership, then the CNAME that points the hostname at the instance.",
86
86
"items": {
87
87
"ref": "#record",
88
88
"type": "ref"
89
89
},
90
90
"type": "array"
91
91
},
92
92
"serving": {
93
93
"description": "Whether the domain actually works: off until it is verified, issuing while its certificate is ordered, live once it serves over HTTPS.",
94
94
"knownValues": [
95
95
"routing",
96
96
"issuing",
97
97
"live",
98
98
"failed",
99
99
"off"
100
100
],
101
101
"type": "string"
102
102
},
103
103
"state": {
104
104
"description": "pending: waiting for the DNS records. verified: proven and served. lapsed: the TXT record went missing, and HappyProto stopped serving it; it recovers if the record comes back before expiresAt.",
105
105
"knownValues": [
106
106
"pending",
107
107
"verified",
108
108
"lapsed"
109
109
],
110
110
"type": "string"
111
111
},
112
112
"verifiedAt": {
113
113
"description": "When the domain was first verified.",
114
114
"type": "string"
115
115
}
116
116
},
117
117
"required": [
118
118
"id",
119
119
"hostname",
120
120
"state",
121
121
"primary",
122
122
"records",
123
123
"serving",
124
124
"createdAt"
125
125
],
126
126
"type": "object"
127
127
},
128
128
"main": {
129
129
"description": "The domains of one of the caller's instances: its platform subdomain and any custom domain. Customers only.",
130
130
"errors": [
131
131
{
132
132
"description": "This endpoint requires an authenticated caller.",
133
133
"name": "AuthRequired"
134
134
},
135
135
{
136
136
"description": "The caller is not a HappyProto customer, or the provisioner refused them.",
137
137
"name": "Forbidden"
138
138
},
139
139
{
140
140
"description": "instanceId is not a UUID.",
141
141
"name": "InvalidRequest"
142
142
},
143
143
{
144
144
"description": "No such instance or domain, or it is not the caller's. The cases are indistinguishable.",
145
145
"name": "NotFound"
146
146
},
147
147
{
148
148
"description": "Custom domains are not switched on yet.",
149
149
"name": "NotAvailable"
150
150
},
151
151
{
152
152
"description": "Passed through from the provisioner.",
153
153
"name": "InvalidSlug"
154
154
},
155
155
{
156
156
"description": "Passed through from the provisioner.",
157
157
"name": "SlugTaken"
158
158
},
159
159
{
160
160
"description": "Passed through from the provisioner.",
161
161
"name": "NotEntitled"
162
162
},
163
163
{
164
164
"description": "Passed through from the provisioner.",
165
165
"name": "InstanceLimit"
166
166
},
167
167
{
168
168
"description": "Passed through from the provisioner.",
169
169
"name": "NoCapacity"
170
170
},
171
171
{
172
172
"description": "Passed through from the provisioner: the instance is already changing, or a request with this idempotencyKey is still running.",
173
173
"name": "OperationInProgress"
174
174
},
175
175
{
176
176
"description": "Passed through from the provisioner.",
177
177
"name": "InvalidHostname"
178
178
},
179
179
{
180
180
"description": "Passed through from the provisioner.",
181
181
"name": "PlatformHostname"
182
182
},
183
183
{
184
184
"description": "Passed through from the provisioner.",
185
185
"name": "DomainExists"
186
186
},
187
187
{
188
188
"description": "Passed through from the provisioner.",
189
189
"name": "DomainLimit"
190
190
},
191
191
{
192
192
"description": "Passed through from the provisioner.",
193
193
"name": "TooSoon"
194
194
},
195
195
{
196
196
"description": "Passed through from the provisioner.",
197
197
"name": "DomainIsPrimary"
198
198
},
199
199
{
200
+
"description": "Passed through from the provisioner.",
201
+
"name": "NotVerified"
202
+
},
203
+
{
204
+
"description": "Passed through from the provisioner.",
205
+
"name": "CertificateNotReady"
206
+
},
207
+
{
208
+
"description": "Passed through from the provisioner.",
209
+
"name": "VersionTooOld"
210
+
},
211
+
{
200
212
"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.",
201
213
"name": "Upstream"
202
214
}
203
215
],
204
216
"output": {
205
217
"encoding": "application/json",
206
218
"schema": {
207
219
"properties": {
208
220
"domains": {
209
221
"description": "The custom domains, at most one today.",
210
222
"items": {
211
223
"ref": "#domain",
212
224
"type": "ref"
213
225
},
214
226
"type": "array"
215
227
},
216
228
"platform": {
217
229
"ref": "#platformDomain",
218
230
"type": "ref"
231
+
},
232
+
"requestedPrimary": {
233
+
"description": "The hostname the primary is switching to, while a switch is in flight. Absent otherwise. The primary flags keep describing the live primary until the instance has restarted onto it.",
234
+
"type": "string"
219
235
}
220
236
},
221
237
"required": [
222
238
"platform",
223
239
"domains"
224
240
],
225
241
"type": "object"
226
242
}
227
243
},
228
244
"parameters": {
229
245
"properties": {
230
246
"instanceId": {
231
247
"description": "The instance's UUID.",
232
248
"type": "string"
233
249
}
234
250
},
235
251
"required": [
236
252
"instanceId"
237
253
],
238
254
"type": "params"
239
255
},
240
256
"type": "query"
241
257
},
242
258
"platformDomain": {
243
259
"properties": {
244
260
"hostname": {
245
261
"description": "The instance's own <slug>.hpy.at hostname, which always serves it.",
246
262
"type": "string"
247
263
},
248
264
"primary": {
249
265
"description": "Whether it is the instance's primary domain.",
250
266
"type": "boolean"
251
267
}
252
268
},
253
269
"required": [
254
270
"hostname",
255
271
"primary"
256
272
],
257
273
"type": "object"
258
274
},
259
275
"record": {
260
276
"properties": {
261
277
"alt": {
262
278
"description": "For an apex name, which cannot hold a CNAME: the A record to publish instead. Absent when the instance's host has no public IPv4.",
263
279
"ref": "#altRecord",
264
280
"type": "ref"
265
281
},
266
282
"name": {
267
283
"description": "The record's name.",
268
284
"type": "string"
269
285
},
270
286
"type": {
271
287
"description": "TXT or CNAME.",
272
288
"type": "string"
273
289
},
274
290
"value": {
275
291
"description": "The record's value.",
276
292
"type": "string"
277
293
}
278
294
},
279
295
"required": [
280
296
"type",
281
297
"name",
282
298
"value"
283
299
],
284
300
"type": "object"
285
301
}
286
302
},
287
303
"id": "at.happyproto.server.listDomains",
288
304
"lexicon": 1
289
305
}