@fleetless/contracts 6.0.0 → 6.1.0-next.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -0
- package/artifacts/openapi.json +692 -1
- package/artifacts/routes.json +101 -0
- package/artifacts/schema/addon-catalogue-entry.schema.json +81 -0
- package/artifacts/schema/addon-key.schema.json +11 -0
- package/artifacts/schema/admin-plan-change-request.schema.json +189 -0
- package/artifacts/schema/asset-plan-limit-details.schema.json +115 -0
- package/artifacts/schema/audit-actor.schema.json +2 -1
- package/artifacts/schema/audit-event.schema.json +2 -1
- package/artifacts/schema/audit-list-response.schema.json +2 -1
- package/artifacts/schema/org-addons.schema.json +44 -0
- package/artifacts/schema/org-lock.schema.json +25 -0
- package/artifacts/schema/org-locked-details.schema.json +18 -0
- package/artifacts/schema/org-plan-usage.schema.json +51 -0
- package/artifacts/schema/org-plan.schema.json +500 -0
- package/artifacts/schema/pending-plan-change.schema.json +123 -0
- package/artifacts/schema/plan-catalogue-entry.schema.json +249 -0
- package/artifacts/schema/plan-change-keep.schema.json +49 -0
- package/artifacts/schema/plan-change-reason.schema.json +10 -0
- package/artifacts/schema/plan-change-request.schema.json +77 -0
- package/artifacts/schema/plan-currency.schema.json +8 -0
- package/artifacts/schema/plan-features.schema.json +44 -0
- package/artifacts/schema/plan-id.schema.json +10 -0
- package/artifacts/schema/plan-limit-details.schema.json +94 -0
- package/artifacts/schema/plan-limits.schema.json +121 -0
- package/artifacts/schema/plan-overrides.schema.json +111 -0
- package/artifacts/schema/plan-prices.schema.json +37 -0
- package/artifacts/schema/plan-required-details.schema.json +45 -0
- package/dist/audit.d.ts +10 -0
- package/dist/audit.js +8 -1
- package/dist/errors.d.ts +138 -1
- package/dist/errors.js +104 -0
- package/dist/index.d.ts +6 -2
- package/dist/index.js +11 -1
- package/dist/plans.d.ts +507 -0
- package/dist/plans.js +487 -0
- package/dist/realtime.d.ts +2 -0
- package/dist/realtime.js +6 -0
- package/dist/routes.d.ts +5 -1
- package/dist/routes.js +59 -0
- package/package.json +1 -1
|
@@ -0,0 +1,500 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"plan": {
|
|
6
|
+
"type": "string",
|
|
7
|
+
"enum": [
|
|
8
|
+
"basic",
|
|
9
|
+
"plus",
|
|
10
|
+
"pro",
|
|
11
|
+
"enterprise"
|
|
12
|
+
],
|
|
13
|
+
"description": "The org's current plan."
|
|
14
|
+
},
|
|
15
|
+
"currency": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"enum": [
|
|
18
|
+
"eur",
|
|
19
|
+
"usd"
|
|
20
|
+
],
|
|
21
|
+
"description": "The currency the org's prices are shown and billed in."
|
|
22
|
+
},
|
|
23
|
+
"period_ends_at": {
|
|
24
|
+
"type": "string",
|
|
25
|
+
"format": "date-time",
|
|
26
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
|
|
27
|
+
"description": "The end of the organization's current billing period; while no payment period exists yet, the end of the current UTC calendar month. A pending downward plan change normally takes effect at this exact instant — except one chosen while the org was locked, which lands at once, and the platform's own move off the beta, which lands at its switch date instead."
|
|
28
|
+
},
|
|
29
|
+
"addons": {
|
|
30
|
+
"type": "object",
|
|
31
|
+
"properties": {
|
|
32
|
+
"seats": {
|
|
33
|
+
"type": "integer",
|
|
34
|
+
"minimum": 0,
|
|
35
|
+
"maximum": 9007199254740991,
|
|
36
|
+
"description": "Extra developer seats, one each."
|
|
37
|
+
},
|
|
38
|
+
"robots": {
|
|
39
|
+
"type": "integer",
|
|
40
|
+
"minimum": 0,
|
|
41
|
+
"maximum": 9007199254740991,
|
|
42
|
+
"description": "Extra robots, one each."
|
|
43
|
+
},
|
|
44
|
+
"apps": {
|
|
45
|
+
"type": "integer",
|
|
46
|
+
"minimum": 0,
|
|
47
|
+
"maximum": 9007199254740991,
|
|
48
|
+
"description": "Extra apps, one each."
|
|
49
|
+
},
|
|
50
|
+
"app_user_packs": {
|
|
51
|
+
"type": "integer",
|
|
52
|
+
"minimum": 0,
|
|
53
|
+
"maximum": 9007199254740991,
|
|
54
|
+
"description": "Packs of five extra app users."
|
|
55
|
+
},
|
|
56
|
+
"live_video_packs": {
|
|
57
|
+
"type": "integer",
|
|
58
|
+
"minimum": 0,
|
|
59
|
+
"maximum": 9007199254740991,
|
|
60
|
+
"description": "Packs of 250 extra hours of app-user live video per month."
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"required": [
|
|
64
|
+
"seats",
|
|
65
|
+
"robots",
|
|
66
|
+
"apps",
|
|
67
|
+
"app_user_packs",
|
|
68
|
+
"live_video_packs"
|
|
69
|
+
],
|
|
70
|
+
"additionalProperties": false,
|
|
71
|
+
"description": "The add-ons the org has bought. All zero on a plan without the `addons` feature."
|
|
72
|
+
},
|
|
73
|
+
"limits": {
|
|
74
|
+
"type": "object",
|
|
75
|
+
"properties": {
|
|
76
|
+
"seats": {
|
|
77
|
+
"anyOf": [
|
|
78
|
+
{
|
|
79
|
+
"type": "integer",
|
|
80
|
+
"exclusiveMinimum": 0,
|
|
81
|
+
"maximum": 9007199254740991
|
|
82
|
+
},
|
|
83
|
+
{
|
|
84
|
+
"type": "null"
|
|
85
|
+
}
|
|
86
|
+
],
|
|
87
|
+
"description": "Developers, owners included, plus pending team invitations."
|
|
88
|
+
},
|
|
89
|
+
"robots": {
|
|
90
|
+
"anyOf": [
|
|
91
|
+
{
|
|
92
|
+
"type": "integer",
|
|
93
|
+
"exclusiveMinimum": 0,
|
|
94
|
+
"maximum": 9007199254740991
|
|
95
|
+
},
|
|
96
|
+
{
|
|
97
|
+
"type": "null"
|
|
98
|
+
}
|
|
99
|
+
],
|
|
100
|
+
"description": "Robots in the org."
|
|
101
|
+
},
|
|
102
|
+
"apps": {
|
|
103
|
+
"anyOf": [
|
|
104
|
+
{
|
|
105
|
+
"type": "integer",
|
|
106
|
+
"exclusiveMinimum": 0,
|
|
107
|
+
"maximum": 9007199254740991
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
"type": "null"
|
|
111
|
+
}
|
|
112
|
+
],
|
|
113
|
+
"description": "Apps in the org."
|
|
114
|
+
},
|
|
115
|
+
"app_users": {
|
|
116
|
+
"anyOf": [
|
|
117
|
+
{
|
|
118
|
+
"type": "integer",
|
|
119
|
+
"exclusiveMinimum": 0,
|
|
120
|
+
"maximum": 9007199254740991
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
"type": "null"
|
|
124
|
+
}
|
|
125
|
+
],
|
|
126
|
+
"description": "App users across every app of the org, plus pending app-user invitations."
|
|
127
|
+
},
|
|
128
|
+
"live_video_ms_per_month": {
|
|
129
|
+
"anyOf": [
|
|
130
|
+
{
|
|
131
|
+
"type": "integer",
|
|
132
|
+
"exclusiveMinimum": 0,
|
|
133
|
+
"maximum": 9007199254740991
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
"type": "null"
|
|
137
|
+
}
|
|
138
|
+
],
|
|
139
|
+
"description": "Live video watched by app users in one UTC calendar month, in milliseconds, across the org. Console sessions do not count."
|
|
140
|
+
},
|
|
141
|
+
"asset_bytes_per_robot": {
|
|
142
|
+
"anyOf": [
|
|
143
|
+
{
|
|
144
|
+
"type": "integer",
|
|
145
|
+
"exclusiveMinimum": 0,
|
|
146
|
+
"maximum": 9007199254740991
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
"type": "null"
|
|
150
|
+
}
|
|
151
|
+
],
|
|
152
|
+
"description": "Asset storage per robot, in bytes (decimal: 1 GB = 1,000,000,000). The org stores up to robots × this value in total."
|
|
153
|
+
},
|
|
154
|
+
"history_days": {
|
|
155
|
+
"anyOf": [
|
|
156
|
+
{
|
|
157
|
+
"type": "integer",
|
|
158
|
+
"exclusiveMinimum": 0,
|
|
159
|
+
"maximum": 9007199254740991
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
"type": "null"
|
|
163
|
+
}
|
|
164
|
+
],
|
|
165
|
+
"description": "Days the org's robot history is kept."
|
|
166
|
+
},
|
|
167
|
+
"audit_days": {
|
|
168
|
+
"anyOf": [
|
|
169
|
+
{
|
|
170
|
+
"type": "integer",
|
|
171
|
+
"exclusiveMinimum": 0,
|
|
172
|
+
"maximum": 9007199254740991
|
|
173
|
+
},
|
|
174
|
+
{
|
|
175
|
+
"type": "null"
|
|
176
|
+
}
|
|
177
|
+
],
|
|
178
|
+
"description": "Days the org's audit log is kept."
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"required": [
|
|
182
|
+
"seats",
|
|
183
|
+
"robots",
|
|
184
|
+
"apps",
|
|
185
|
+
"app_users",
|
|
186
|
+
"live_video_ms_per_month",
|
|
187
|
+
"asset_bytes_per_robot",
|
|
188
|
+
"history_days",
|
|
189
|
+
"audit_days"
|
|
190
|
+
],
|
|
191
|
+
"additionalProperties": false,
|
|
192
|
+
"description": "The org's effective limits: the plan's, raised by its add-ons, or an operator's override in their place. `null` means unlimited for a count, and 90 days for `history_days` and `audit_days`."
|
|
193
|
+
},
|
|
194
|
+
"features": {
|
|
195
|
+
"type": "object",
|
|
196
|
+
"properties": {
|
|
197
|
+
"app_mcp": {
|
|
198
|
+
"type": "boolean",
|
|
199
|
+
"description": "An app's own MCP endpoint, for its app users."
|
|
200
|
+
},
|
|
201
|
+
"two_factor": {
|
|
202
|
+
"type": "boolean",
|
|
203
|
+
"description": "Two-factor sign-in for developers."
|
|
204
|
+
},
|
|
205
|
+
"require_two_factor": {
|
|
206
|
+
"type": "boolean",
|
|
207
|
+
"description": "An owner may require two-factor sign-in for every developer of the org."
|
|
208
|
+
},
|
|
209
|
+
"app_oidc": {
|
|
210
|
+
"type": "boolean",
|
|
211
|
+
"description": "An app may let its users sign in through an OpenID Connect identity provider."
|
|
212
|
+
},
|
|
213
|
+
"hosted_logo": {
|
|
214
|
+
"type": "boolean",
|
|
215
|
+
"description": "An app's hosted pages show its logo and accent colour, not only its name."
|
|
216
|
+
},
|
|
217
|
+
"audit_export": {
|
|
218
|
+
"type": "boolean",
|
|
219
|
+
"description": "The audit log can be exported as CSV."
|
|
220
|
+
},
|
|
221
|
+
"addons": {
|
|
222
|
+
"type": "boolean",
|
|
223
|
+
"description": "Add-ons can be bought on top of the plan."
|
|
224
|
+
}
|
|
225
|
+
},
|
|
226
|
+
"required": [
|
|
227
|
+
"app_mcp",
|
|
228
|
+
"two_factor",
|
|
229
|
+
"require_two_factor",
|
|
230
|
+
"app_oidc",
|
|
231
|
+
"hosted_logo",
|
|
232
|
+
"audit_export",
|
|
233
|
+
"addons"
|
|
234
|
+
],
|
|
235
|
+
"additionalProperties": false,
|
|
236
|
+
"description": "What the org's plan unlocks."
|
|
237
|
+
},
|
|
238
|
+
"usage": {
|
|
239
|
+
"type": "object",
|
|
240
|
+
"properties": {
|
|
241
|
+
"seats": {
|
|
242
|
+
"type": "integer",
|
|
243
|
+
"minimum": 0,
|
|
244
|
+
"maximum": 9007199254740991,
|
|
245
|
+
"description": "Developers, owners included, plus pending team invitations."
|
|
246
|
+
},
|
|
247
|
+
"robots": {
|
|
248
|
+
"type": "integer",
|
|
249
|
+
"minimum": 0,
|
|
250
|
+
"maximum": 9007199254740991,
|
|
251
|
+
"description": "Robots in the org."
|
|
252
|
+
},
|
|
253
|
+
"apps": {
|
|
254
|
+
"type": "integer",
|
|
255
|
+
"minimum": 0,
|
|
256
|
+
"maximum": 9007199254740991,
|
|
257
|
+
"description": "Apps in the org."
|
|
258
|
+
},
|
|
259
|
+
"app_users": {
|
|
260
|
+
"type": "integer",
|
|
261
|
+
"minimum": 0,
|
|
262
|
+
"maximum": 9007199254740991,
|
|
263
|
+
"description": "App users across every app, plus pending app-user invitations."
|
|
264
|
+
},
|
|
265
|
+
"live_video_ms_this_month": {
|
|
266
|
+
"type": "integer",
|
|
267
|
+
"minimum": 0,
|
|
268
|
+
"maximum": 9007199254740991,
|
|
269
|
+
"description": "Live video watched by app users in the current UTC calendar month, in milliseconds. Console sessions do not count."
|
|
270
|
+
},
|
|
271
|
+
"asset_bytes": {
|
|
272
|
+
"type": "integer",
|
|
273
|
+
"minimum": 0,
|
|
274
|
+
"maximum": 9007199254740991,
|
|
275
|
+
"description": "Bytes the assets of every robot of the org occupy, together."
|
|
276
|
+
}
|
|
277
|
+
},
|
|
278
|
+
"required": [
|
|
279
|
+
"seats",
|
|
280
|
+
"robots",
|
|
281
|
+
"apps",
|
|
282
|
+
"app_users",
|
|
283
|
+
"live_video_ms_this_month",
|
|
284
|
+
"asset_bytes"
|
|
285
|
+
],
|
|
286
|
+
"additionalProperties": false,
|
|
287
|
+
"description": "What the org uses now, counted the way each limit counts it."
|
|
288
|
+
},
|
|
289
|
+
"pending_change": {
|
|
290
|
+
"anyOf": [
|
|
291
|
+
{
|
|
292
|
+
"type": "object",
|
|
293
|
+
"properties": {
|
|
294
|
+
"target_plan": {
|
|
295
|
+
"type": "string",
|
|
296
|
+
"enum": [
|
|
297
|
+
"basic",
|
|
298
|
+
"plus",
|
|
299
|
+
"pro",
|
|
300
|
+
"enterprise"
|
|
301
|
+
],
|
|
302
|
+
"description": "The plan the org moves to."
|
|
303
|
+
},
|
|
304
|
+
"reason": {
|
|
305
|
+
"type": "string",
|
|
306
|
+
"enum": [
|
|
307
|
+
"downgrade",
|
|
308
|
+
"cancel",
|
|
309
|
+
"migration",
|
|
310
|
+
"lock"
|
|
311
|
+
],
|
|
312
|
+
"description": "Why the change is pending: `downgrade`, `cancel`, `migration` or `lock`."
|
|
313
|
+
},
|
|
314
|
+
"effective_at": {
|
|
315
|
+
"anyOf": [
|
|
316
|
+
{
|
|
317
|
+
"type": "string",
|
|
318
|
+
"format": "date-time",
|
|
319
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
|
|
320
|
+
},
|
|
321
|
+
{
|
|
322
|
+
"type": "null"
|
|
323
|
+
}
|
|
324
|
+
],
|
|
325
|
+
"description": "When the change takes effect. `null` only for a move off the beta whose date is not set yet."
|
|
326
|
+
},
|
|
327
|
+
"keep": {
|
|
328
|
+
"anyOf": [
|
|
329
|
+
{
|
|
330
|
+
"type": "object",
|
|
331
|
+
"properties": {
|
|
332
|
+
"robots": {
|
|
333
|
+
"type": "array",
|
|
334
|
+
"items": {
|
|
335
|
+
"type": "string",
|
|
336
|
+
"format": "uuid",
|
|
337
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
|
|
338
|
+
},
|
|
339
|
+
"description": "The robots that stay, by id. Every other robot is deleted when the change takes effect."
|
|
340
|
+
},
|
|
341
|
+
"apps": {
|
|
342
|
+
"type": "array",
|
|
343
|
+
"items": {
|
|
344
|
+
"type": "string",
|
|
345
|
+
"format": "uuid",
|
|
346
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
|
|
347
|
+
},
|
|
348
|
+
"description": "The apps that stay, by id. Every other app is deleted when the change takes effect."
|
|
349
|
+
},
|
|
350
|
+
"app_users": {
|
|
351
|
+
"type": "array",
|
|
352
|
+
"items": {
|
|
353
|
+
"type": "string",
|
|
354
|
+
"format": "uuid",
|
|
355
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
|
|
356
|
+
},
|
|
357
|
+
"description": "The app users that stay, by id, across every app. Every other app user is deleted when the change takes effect."
|
|
358
|
+
},
|
|
359
|
+
"developers": {
|
|
360
|
+
"type": "array",
|
|
361
|
+
"items": {
|
|
362
|
+
"type": "string",
|
|
363
|
+
"format": "uuid",
|
|
364
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
|
|
365
|
+
},
|
|
366
|
+
"description": "The developers that stay, by user id, owners never among them: every owner stays. Every other developer is removed from the org when the change takes effect."
|
|
367
|
+
}
|
|
368
|
+
},
|
|
369
|
+
"required": [
|
|
370
|
+
"robots",
|
|
371
|
+
"apps",
|
|
372
|
+
"app_users",
|
|
373
|
+
"developers"
|
|
374
|
+
],
|
|
375
|
+
"additionalProperties": false
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"type": "null"
|
|
379
|
+
}
|
|
380
|
+
],
|
|
381
|
+
"description": "What stays. `null` when the org already fits the target plan and nothing is deleted."
|
|
382
|
+
},
|
|
383
|
+
"history_days_after": {
|
|
384
|
+
"type": "integer",
|
|
385
|
+
"exclusiveMinimum": 0,
|
|
386
|
+
"maximum": 9007199254740991,
|
|
387
|
+
"description": "Days of history and audit log the org keeps on the target plan."
|
|
388
|
+
},
|
|
389
|
+
"chosen_by": {
|
|
390
|
+
"type": "string",
|
|
391
|
+
"format": "uuid",
|
|
392
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
393
|
+
"description": "The user id of the owner who chose the change, or the nil UUID when Fleetless queued it."
|
|
394
|
+
},
|
|
395
|
+
"chosen_at": {
|
|
396
|
+
"type": "string",
|
|
397
|
+
"format": "date-time",
|
|
398
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
|
|
399
|
+
"description": "When the change was chosen."
|
|
400
|
+
}
|
|
401
|
+
},
|
|
402
|
+
"required": [
|
|
403
|
+
"target_plan",
|
|
404
|
+
"reason",
|
|
405
|
+
"effective_at",
|
|
406
|
+
"keep",
|
|
407
|
+
"history_days_after",
|
|
408
|
+
"chosen_by",
|
|
409
|
+
"chosen_at"
|
|
410
|
+
],
|
|
411
|
+
"additionalProperties": false
|
|
412
|
+
},
|
|
413
|
+
{
|
|
414
|
+
"type": "null"
|
|
415
|
+
}
|
|
416
|
+
],
|
|
417
|
+
"description": "A move to a lower plan that has not taken effect yet, or `null`."
|
|
418
|
+
},
|
|
419
|
+
"lock": {
|
|
420
|
+
"anyOf": [
|
|
421
|
+
{
|
|
422
|
+
"type": "object",
|
|
423
|
+
"properties": {
|
|
424
|
+
"reason": {
|
|
425
|
+
"type": "string",
|
|
426
|
+
"enum": [
|
|
427
|
+
"payment",
|
|
428
|
+
"migration"
|
|
429
|
+
],
|
|
430
|
+
"description": "`payment`: a payment is missing. `migration`: the org did not choose what stays when the beta ended."
|
|
431
|
+
},
|
|
432
|
+
"since": {
|
|
433
|
+
"type": "string",
|
|
434
|
+
"format": "date-time",
|
|
435
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
|
|
436
|
+
"description": "When the org was locked."
|
|
437
|
+
}
|
|
438
|
+
},
|
|
439
|
+
"required": [
|
|
440
|
+
"reason",
|
|
441
|
+
"since"
|
|
442
|
+
],
|
|
443
|
+
"additionalProperties": false
|
|
444
|
+
},
|
|
445
|
+
{
|
|
446
|
+
"type": "null"
|
|
447
|
+
}
|
|
448
|
+
],
|
|
449
|
+
"description": "Why and since when the org is locked, or `null` when it is not."
|
|
450
|
+
},
|
|
451
|
+
"switch": {
|
|
452
|
+
"anyOf": [
|
|
453
|
+
{
|
|
454
|
+
"type": "object",
|
|
455
|
+
"properties": {
|
|
456
|
+
"at": {
|
|
457
|
+
"anyOf": [
|
|
458
|
+
{
|
|
459
|
+
"type": "string",
|
|
460
|
+
"format": "date-time",
|
|
461
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
|
|
462
|
+
},
|
|
463
|
+
{
|
|
464
|
+
"type": "null"
|
|
465
|
+
}
|
|
466
|
+
],
|
|
467
|
+
"description": "When the org moves from the beta onto its plan. `null` while the date is not set."
|
|
468
|
+
},
|
|
469
|
+
"needs_choice": {
|
|
470
|
+
"type": "boolean",
|
|
471
|
+
"description": "Whether the org uses more than Basic allows, so an owner has to choose what stays before `at`."
|
|
472
|
+
}
|
|
473
|
+
},
|
|
474
|
+
"required": [
|
|
475
|
+
"at",
|
|
476
|
+
"needs_choice"
|
|
477
|
+
],
|
|
478
|
+
"additionalProperties": false
|
|
479
|
+
},
|
|
480
|
+
{
|
|
481
|
+
"type": "null"
|
|
482
|
+
}
|
|
483
|
+
],
|
|
484
|
+
"description": "Set only while the org is still on the beta; `null` for every other org."
|
|
485
|
+
}
|
|
486
|
+
},
|
|
487
|
+
"required": [
|
|
488
|
+
"plan",
|
|
489
|
+
"currency",
|
|
490
|
+
"period_ends_at",
|
|
491
|
+
"addons",
|
|
492
|
+
"limits",
|
|
493
|
+
"features",
|
|
494
|
+
"usage",
|
|
495
|
+
"pending_change",
|
|
496
|
+
"lock",
|
|
497
|
+
"switch"
|
|
498
|
+
],
|
|
499
|
+
"additionalProperties": false
|
|
500
|
+
}
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"type": "object",
|
|
4
|
+
"properties": {
|
|
5
|
+
"target_plan": {
|
|
6
|
+
"type": "string",
|
|
7
|
+
"enum": [
|
|
8
|
+
"basic",
|
|
9
|
+
"plus",
|
|
10
|
+
"pro",
|
|
11
|
+
"enterprise"
|
|
12
|
+
],
|
|
13
|
+
"description": "The plan the org moves to."
|
|
14
|
+
},
|
|
15
|
+
"reason": {
|
|
16
|
+
"type": "string",
|
|
17
|
+
"enum": [
|
|
18
|
+
"downgrade",
|
|
19
|
+
"cancel",
|
|
20
|
+
"migration",
|
|
21
|
+
"lock"
|
|
22
|
+
],
|
|
23
|
+
"description": "Why the change is pending: `downgrade`, `cancel`, `migration` or `lock`."
|
|
24
|
+
},
|
|
25
|
+
"effective_at": {
|
|
26
|
+
"anyOf": [
|
|
27
|
+
{
|
|
28
|
+
"type": "string",
|
|
29
|
+
"format": "date-time",
|
|
30
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$"
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
"type": "null"
|
|
34
|
+
}
|
|
35
|
+
],
|
|
36
|
+
"description": "When the change takes effect. `null` only for a move off the beta whose date is not set yet."
|
|
37
|
+
},
|
|
38
|
+
"keep": {
|
|
39
|
+
"anyOf": [
|
|
40
|
+
{
|
|
41
|
+
"type": "object",
|
|
42
|
+
"properties": {
|
|
43
|
+
"robots": {
|
|
44
|
+
"type": "array",
|
|
45
|
+
"items": {
|
|
46
|
+
"type": "string",
|
|
47
|
+
"format": "uuid",
|
|
48
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
|
|
49
|
+
},
|
|
50
|
+
"description": "The robots that stay, by id. Every other robot is deleted when the change takes effect."
|
|
51
|
+
},
|
|
52
|
+
"apps": {
|
|
53
|
+
"type": "array",
|
|
54
|
+
"items": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"format": "uuid",
|
|
57
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
|
|
58
|
+
},
|
|
59
|
+
"description": "The apps that stay, by id. Every other app is deleted when the change takes effect."
|
|
60
|
+
},
|
|
61
|
+
"app_users": {
|
|
62
|
+
"type": "array",
|
|
63
|
+
"items": {
|
|
64
|
+
"type": "string",
|
|
65
|
+
"format": "uuid",
|
|
66
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
|
|
67
|
+
},
|
|
68
|
+
"description": "The app users that stay, by id, across every app. Every other app user is deleted when the change takes effect."
|
|
69
|
+
},
|
|
70
|
+
"developers": {
|
|
71
|
+
"type": "array",
|
|
72
|
+
"items": {
|
|
73
|
+
"type": "string",
|
|
74
|
+
"format": "uuid",
|
|
75
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"
|
|
76
|
+
},
|
|
77
|
+
"description": "The developers that stay, by user id, owners never among them: every owner stays. Every other developer is removed from the org when the change takes effect."
|
|
78
|
+
}
|
|
79
|
+
},
|
|
80
|
+
"required": [
|
|
81
|
+
"robots",
|
|
82
|
+
"apps",
|
|
83
|
+
"app_users",
|
|
84
|
+
"developers"
|
|
85
|
+
],
|
|
86
|
+
"additionalProperties": false
|
|
87
|
+
},
|
|
88
|
+
{
|
|
89
|
+
"type": "null"
|
|
90
|
+
}
|
|
91
|
+
],
|
|
92
|
+
"description": "What stays. `null` when the org already fits the target plan and nothing is deleted."
|
|
93
|
+
},
|
|
94
|
+
"history_days_after": {
|
|
95
|
+
"type": "integer",
|
|
96
|
+
"exclusiveMinimum": 0,
|
|
97
|
+
"maximum": 9007199254740991,
|
|
98
|
+
"description": "Days of history and audit log the org keeps on the target plan."
|
|
99
|
+
},
|
|
100
|
+
"chosen_by": {
|
|
101
|
+
"type": "string",
|
|
102
|
+
"format": "uuid",
|
|
103
|
+
"pattern": "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$",
|
|
104
|
+
"description": "The user id of the owner who chose the change, or the nil UUID when Fleetless queued it."
|
|
105
|
+
},
|
|
106
|
+
"chosen_at": {
|
|
107
|
+
"type": "string",
|
|
108
|
+
"format": "date-time",
|
|
109
|
+
"pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
|
|
110
|
+
"description": "When the change was chosen."
|
|
111
|
+
}
|
|
112
|
+
},
|
|
113
|
+
"required": [
|
|
114
|
+
"target_plan",
|
|
115
|
+
"reason",
|
|
116
|
+
"effective_at",
|
|
117
|
+
"keep",
|
|
118
|
+
"history_days_after",
|
|
119
|
+
"chosen_by",
|
|
120
|
+
"chosen_at"
|
|
121
|
+
],
|
|
122
|
+
"additionalProperties": false
|
|
123
|
+
}
|