@fleetless/contracts 6.1.0-next.1 → 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 +6 -4
- package/artifacts/openapi.json +112 -56
- package/artifacts/routes.json +1 -1
- package/artifacts/schema/addon-catalogue-entry.schema.json +12 -6
- package/artifacts/schema/admin-plan-change-request.schema.json +24 -6
- package/artifacts/schema/asset-plan-limit-details.schema.json +14 -7
- package/artifacts/schema/org-addons.schema.json +10 -5
- package/artifacts/schema/org-lock.schema.json +4 -2
- package/artifacts/schema/org-locked-details.schema.json +2 -1
- package/artifacts/schema/org-plan-usage.schema.json +12 -6
- package/artifacts/schema/org-plan.schema.json +100 -50
- package/artifacts/schema/pending-plan-change.schema.json +22 -11
- package/artifacts/schema/plan-catalogue-entry.schema.json +46 -23
- package/artifacts/schema/plan-change-keep.schema.json +8 -4
- package/artifacts/schema/plan-change-request.schema.json +12 -6
- package/artifacts/schema/plan-features.schema.json +14 -7
- package/artifacts/schema/plan-limit-details.schema.json +14 -7
- package/artifacts/schema/plan-limits.schema.json +16 -8
- package/artifacts/schema/plan-overrides.schema.json +8 -0
- package/artifacts/schema/plan-prices.schema.json +8 -4
- package/artifacts/schema/plan-required-details.schema.json +6 -3
- package/dist/errors.js +31 -21
- package/dist/plans.d.ts +15 -33
- package/dist/plans.js +128 -83
- package/dist/routes.js +5 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -28,10 +28,12 @@ version.
|
|
|
28
28
|
`overrides`), `features`, fresh `usage` (`orgPlanUsage`), any
|
|
29
29
|
`pending_change` (`pendingPlanChange`), an `orgLock` and, for an
|
|
30
30
|
organization still on the beta, `switch`. `PUT /api/org/plan/change`
|
|
31
|
-
(`planChangeRequest`, Owner tier) records the owner's move to a lower
|
|
32
|
-
everything not named in `keep` (`planChangeKeep`)
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
(`planChangeRequest`, Owner tier) records the owner's move to a lower
|
|
32
|
+
plan or a cancellation; everything not named in `keep` (`planChangeKeep`)
|
|
33
|
+
is deleted when the change takes effect, never before: at
|
|
34
|
+
`period_ends_at`, at once for an org that is locked, or at the switch
|
|
35
|
+
date for an org still on the beta. `DELETE /api/org/plan/change` (Owner
|
|
36
|
+
tier) withdraws one still pending.
|
|
35
37
|
- **The admin plan route.** `PATCH /api/admin/orgs/:id/plan`
|
|
36
38
|
(`adminPlanChangeRequest`) lets the operator change an org's plan,
|
|
37
39
|
add-ons, limit overrides (`planOverrides`), currency or billing period at
|
package/artifacts/openapi.json
CHANGED
|
@@ -17963,14 +17963,16 @@
|
|
|
17963
17963
|
"plus",
|
|
17964
17964
|
"pro",
|
|
17965
17965
|
"enterprise"
|
|
17966
|
-
]
|
|
17966
|
+
],
|
|
17967
|
+
"description": "The org's current plan."
|
|
17967
17968
|
},
|
|
17968
17969
|
"currency": {
|
|
17969
17970
|
"type": "string",
|
|
17970
17971
|
"enum": [
|
|
17971
17972
|
"eur",
|
|
17972
17973
|
"usd"
|
|
17973
|
-
]
|
|
17974
|
+
],
|
|
17975
|
+
"description": "The currency the org's prices are shown and billed in."
|
|
17974
17976
|
},
|
|
17975
17977
|
"period_ends_at": {
|
|
17976
17978
|
"type": "string",
|
|
@@ -17984,27 +17986,32 @@
|
|
|
17984
17986
|
"seats": {
|
|
17985
17987
|
"type": "integer",
|
|
17986
17988
|
"minimum": 0,
|
|
17987
|
-
"maximum": 9007199254740991
|
|
17989
|
+
"maximum": 9007199254740991,
|
|
17990
|
+
"description": "Extra developer seats, one each."
|
|
17988
17991
|
},
|
|
17989
17992
|
"robots": {
|
|
17990
17993
|
"type": "integer",
|
|
17991
17994
|
"minimum": 0,
|
|
17992
|
-
"maximum": 9007199254740991
|
|
17995
|
+
"maximum": 9007199254740991,
|
|
17996
|
+
"description": "Extra robots, one each."
|
|
17993
17997
|
},
|
|
17994
17998
|
"apps": {
|
|
17995
17999
|
"type": "integer",
|
|
17996
18000
|
"minimum": 0,
|
|
17997
|
-
"maximum": 9007199254740991
|
|
18001
|
+
"maximum": 9007199254740991,
|
|
18002
|
+
"description": "Extra apps, one each."
|
|
17998
18003
|
},
|
|
17999
18004
|
"app_user_packs": {
|
|
18000
18005
|
"type": "integer",
|
|
18001
18006
|
"minimum": 0,
|
|
18002
|
-
"maximum": 9007199254740991
|
|
18007
|
+
"maximum": 9007199254740991,
|
|
18008
|
+
"description": "Packs of five extra app users."
|
|
18003
18009
|
},
|
|
18004
18010
|
"live_video_packs": {
|
|
18005
18011
|
"type": "integer",
|
|
18006
18012
|
"minimum": 0,
|
|
18007
|
-
"maximum": 9007199254740991
|
|
18013
|
+
"maximum": 9007199254740991,
|
|
18014
|
+
"description": "Packs of 250 extra hours of app-user live video per month."
|
|
18008
18015
|
}
|
|
18009
18016
|
},
|
|
18010
18017
|
"required": [
|
|
@@ -18014,7 +18021,8 @@
|
|
|
18014
18021
|
"app_user_packs",
|
|
18015
18022
|
"live_video_packs"
|
|
18016
18023
|
],
|
|
18017
|
-
"additionalProperties": false
|
|
18024
|
+
"additionalProperties": false,
|
|
18025
|
+
"description": "The add-ons the org has bought. All zero on a plan without the `addons` feature."
|
|
18018
18026
|
},
|
|
18019
18027
|
"limits": {
|
|
18020
18028
|
"type": "object",
|
|
@@ -18029,7 +18037,8 @@
|
|
|
18029
18037
|
{
|
|
18030
18038
|
"type": "null"
|
|
18031
18039
|
}
|
|
18032
|
-
]
|
|
18040
|
+
],
|
|
18041
|
+
"description": "Developers, owners included, plus pending team invitations."
|
|
18033
18042
|
},
|
|
18034
18043
|
"robots": {
|
|
18035
18044
|
"anyOf": [
|
|
@@ -18041,7 +18050,8 @@
|
|
|
18041
18050
|
{
|
|
18042
18051
|
"type": "null"
|
|
18043
18052
|
}
|
|
18044
|
-
]
|
|
18053
|
+
],
|
|
18054
|
+
"description": "Robots in the org."
|
|
18045
18055
|
},
|
|
18046
18056
|
"apps": {
|
|
18047
18057
|
"anyOf": [
|
|
@@ -18053,7 +18063,8 @@
|
|
|
18053
18063
|
{
|
|
18054
18064
|
"type": "null"
|
|
18055
18065
|
}
|
|
18056
|
-
]
|
|
18066
|
+
],
|
|
18067
|
+
"description": "Apps in the org."
|
|
18057
18068
|
},
|
|
18058
18069
|
"app_users": {
|
|
18059
18070
|
"anyOf": [
|
|
@@ -18065,7 +18076,8 @@
|
|
|
18065
18076
|
{
|
|
18066
18077
|
"type": "null"
|
|
18067
18078
|
}
|
|
18068
|
-
]
|
|
18079
|
+
],
|
|
18080
|
+
"description": "App users across every app of the org, plus pending app-user invitations."
|
|
18069
18081
|
},
|
|
18070
18082
|
"live_video_ms_per_month": {
|
|
18071
18083
|
"anyOf": [
|
|
@@ -18077,7 +18089,8 @@
|
|
|
18077
18089
|
{
|
|
18078
18090
|
"type": "null"
|
|
18079
18091
|
}
|
|
18080
|
-
]
|
|
18092
|
+
],
|
|
18093
|
+
"description": "Live video watched by app users in one UTC calendar month, in milliseconds, across the org. Console sessions do not count."
|
|
18081
18094
|
},
|
|
18082
18095
|
"asset_bytes_per_robot": {
|
|
18083
18096
|
"anyOf": [
|
|
@@ -18089,7 +18102,8 @@
|
|
|
18089
18102
|
{
|
|
18090
18103
|
"type": "null"
|
|
18091
18104
|
}
|
|
18092
|
-
]
|
|
18105
|
+
],
|
|
18106
|
+
"description": "Asset storage per robot, in bytes (decimal: 1 GB = 1,000,000,000). The org stores up to robots × this value in total."
|
|
18093
18107
|
},
|
|
18094
18108
|
"history_days": {
|
|
18095
18109
|
"anyOf": [
|
|
@@ -18101,7 +18115,8 @@
|
|
|
18101
18115
|
{
|
|
18102
18116
|
"type": "null"
|
|
18103
18117
|
}
|
|
18104
|
-
]
|
|
18118
|
+
],
|
|
18119
|
+
"description": "Days the org's robot history is kept."
|
|
18105
18120
|
},
|
|
18106
18121
|
"audit_days": {
|
|
18107
18122
|
"anyOf": [
|
|
@@ -18113,7 +18128,8 @@
|
|
|
18113
18128
|
{
|
|
18114
18129
|
"type": "null"
|
|
18115
18130
|
}
|
|
18116
|
-
]
|
|
18131
|
+
],
|
|
18132
|
+
"description": "Days the org's audit log is kept."
|
|
18117
18133
|
}
|
|
18118
18134
|
},
|
|
18119
18135
|
"required": [
|
|
@@ -18126,31 +18142,39 @@
|
|
|
18126
18142
|
"history_days",
|
|
18127
18143
|
"audit_days"
|
|
18128
18144
|
],
|
|
18129
|
-
"additionalProperties": false
|
|
18145
|
+
"additionalProperties": false,
|
|
18146
|
+
"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`."
|
|
18130
18147
|
},
|
|
18131
18148
|
"features": {
|
|
18132
18149
|
"type": "object",
|
|
18133
18150
|
"properties": {
|
|
18134
18151
|
"app_mcp": {
|
|
18135
|
-
"type": "boolean"
|
|
18152
|
+
"type": "boolean",
|
|
18153
|
+
"description": "An app's own MCP endpoint, for its app users."
|
|
18136
18154
|
},
|
|
18137
18155
|
"two_factor": {
|
|
18138
|
-
"type": "boolean"
|
|
18156
|
+
"type": "boolean",
|
|
18157
|
+
"description": "Two-factor sign-in for developers."
|
|
18139
18158
|
},
|
|
18140
18159
|
"require_two_factor": {
|
|
18141
|
-
"type": "boolean"
|
|
18160
|
+
"type": "boolean",
|
|
18161
|
+
"description": "An owner may require two-factor sign-in for every developer of the org."
|
|
18142
18162
|
},
|
|
18143
18163
|
"app_oidc": {
|
|
18144
|
-
"type": "boolean"
|
|
18164
|
+
"type": "boolean",
|
|
18165
|
+
"description": "An app may let its users sign in through an OpenID Connect identity provider."
|
|
18145
18166
|
},
|
|
18146
18167
|
"hosted_logo": {
|
|
18147
|
-
"type": "boolean"
|
|
18168
|
+
"type": "boolean",
|
|
18169
|
+
"description": "An app's hosted pages show its logo and accent colour, not only its name."
|
|
18148
18170
|
},
|
|
18149
18171
|
"audit_export": {
|
|
18150
|
-
"type": "boolean"
|
|
18172
|
+
"type": "boolean",
|
|
18173
|
+
"description": "The audit log can be exported as CSV."
|
|
18151
18174
|
},
|
|
18152
18175
|
"addons": {
|
|
18153
|
-
"type": "boolean"
|
|
18176
|
+
"type": "boolean",
|
|
18177
|
+
"description": "Add-ons can be bought on top of the plan."
|
|
18154
18178
|
}
|
|
18155
18179
|
},
|
|
18156
18180
|
"required": [
|
|
@@ -18162,7 +18186,8 @@
|
|
|
18162
18186
|
"audit_export",
|
|
18163
18187
|
"addons"
|
|
18164
18188
|
],
|
|
18165
|
-
"additionalProperties": false
|
|
18189
|
+
"additionalProperties": false,
|
|
18190
|
+
"description": "What the org's plan unlocks."
|
|
18166
18191
|
},
|
|
18167
18192
|
"usage": {
|
|
18168
18193
|
"type": "object",
|
|
@@ -18170,32 +18195,38 @@
|
|
|
18170
18195
|
"seats": {
|
|
18171
18196
|
"type": "integer",
|
|
18172
18197
|
"minimum": 0,
|
|
18173
|
-
"maximum": 9007199254740991
|
|
18198
|
+
"maximum": 9007199254740991,
|
|
18199
|
+
"description": "Developers, owners included, plus pending team invitations."
|
|
18174
18200
|
},
|
|
18175
18201
|
"robots": {
|
|
18176
18202
|
"type": "integer",
|
|
18177
18203
|
"minimum": 0,
|
|
18178
|
-
"maximum": 9007199254740991
|
|
18204
|
+
"maximum": 9007199254740991,
|
|
18205
|
+
"description": "Robots in the org."
|
|
18179
18206
|
},
|
|
18180
18207
|
"apps": {
|
|
18181
18208
|
"type": "integer",
|
|
18182
18209
|
"minimum": 0,
|
|
18183
|
-
"maximum": 9007199254740991
|
|
18210
|
+
"maximum": 9007199254740991,
|
|
18211
|
+
"description": "Apps in the org."
|
|
18184
18212
|
},
|
|
18185
18213
|
"app_users": {
|
|
18186
18214
|
"type": "integer",
|
|
18187
18215
|
"minimum": 0,
|
|
18188
|
-
"maximum": 9007199254740991
|
|
18216
|
+
"maximum": 9007199254740991,
|
|
18217
|
+
"description": "App users across every app, plus pending app-user invitations."
|
|
18189
18218
|
},
|
|
18190
18219
|
"live_video_ms_this_month": {
|
|
18191
18220
|
"type": "integer",
|
|
18192
18221
|
"minimum": 0,
|
|
18193
|
-
"maximum": 9007199254740991
|
|
18222
|
+
"maximum": 9007199254740991,
|
|
18223
|
+
"description": "Live video watched by app users in the current UTC calendar month, in milliseconds. Console sessions do not count."
|
|
18194
18224
|
},
|
|
18195
18225
|
"asset_bytes": {
|
|
18196
18226
|
"type": "integer",
|
|
18197
18227
|
"minimum": 0,
|
|
18198
|
-
"maximum": 9007199254740991
|
|
18228
|
+
"maximum": 9007199254740991,
|
|
18229
|
+
"description": "Bytes the assets of every robot of the org occupy, together."
|
|
18199
18230
|
}
|
|
18200
18231
|
},
|
|
18201
18232
|
"required": [
|
|
@@ -18206,7 +18237,8 @@
|
|
|
18206
18237
|
"live_video_ms_this_month",
|
|
18207
18238
|
"asset_bytes"
|
|
18208
18239
|
],
|
|
18209
|
-
"additionalProperties": false
|
|
18240
|
+
"additionalProperties": false,
|
|
18241
|
+
"description": "What the org uses now, counted the way each limit counts it."
|
|
18210
18242
|
},
|
|
18211
18243
|
"pending_change": {
|
|
18212
18244
|
"anyOf": [
|
|
@@ -18220,7 +18252,8 @@
|
|
|
18220
18252
|
"plus",
|
|
18221
18253
|
"pro",
|
|
18222
18254
|
"enterprise"
|
|
18223
|
-
]
|
|
18255
|
+
],
|
|
18256
|
+
"description": "The plan the org moves to."
|
|
18224
18257
|
},
|
|
18225
18258
|
"reason": {
|
|
18226
18259
|
"type": "string",
|
|
@@ -18229,7 +18262,8 @@
|
|
|
18229
18262
|
"cancel",
|
|
18230
18263
|
"migration",
|
|
18231
18264
|
"lock"
|
|
18232
|
-
]
|
|
18265
|
+
],
|
|
18266
|
+
"description": "Why the change is pending: `downgrade`, `cancel`, `migration` or `lock`."
|
|
18233
18267
|
},
|
|
18234
18268
|
"effective_at": {
|
|
18235
18269
|
"anyOf": [
|
|
@@ -18241,7 +18275,8 @@
|
|
|
18241
18275
|
{
|
|
18242
18276
|
"type": "null"
|
|
18243
18277
|
}
|
|
18244
|
-
]
|
|
18278
|
+
],
|
|
18279
|
+
"description": "When the change takes effect. `null` only for a move off the beta whose date is not set yet."
|
|
18245
18280
|
},
|
|
18246
18281
|
"keep": {
|
|
18247
18282
|
"anyOf": [
|
|
@@ -18254,7 +18289,8 @@
|
|
|
18254
18289
|
"type": "string",
|
|
18255
18290
|
"format": "uuid",
|
|
18256
18291
|
"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)$"
|
|
18257
|
-
}
|
|
18292
|
+
},
|
|
18293
|
+
"description": "The robots that stay, by id. Every other robot is deleted when the change takes effect."
|
|
18258
18294
|
},
|
|
18259
18295
|
"apps": {
|
|
18260
18296
|
"type": "array",
|
|
@@ -18262,7 +18298,8 @@
|
|
|
18262
18298
|
"type": "string",
|
|
18263
18299
|
"format": "uuid",
|
|
18264
18300
|
"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)$"
|
|
18265
|
-
}
|
|
18301
|
+
},
|
|
18302
|
+
"description": "The apps that stay, by id. Every other app is deleted when the change takes effect."
|
|
18266
18303
|
},
|
|
18267
18304
|
"app_users": {
|
|
18268
18305
|
"type": "array",
|
|
@@ -18270,7 +18307,8 @@
|
|
|
18270
18307
|
"type": "string",
|
|
18271
18308
|
"format": "uuid",
|
|
18272
18309
|
"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)$"
|
|
18273
|
-
}
|
|
18310
|
+
},
|
|
18311
|
+
"description": "The app users that stay, by id, across every app. Every other app user is deleted when the change takes effect."
|
|
18274
18312
|
},
|
|
18275
18313
|
"developers": {
|
|
18276
18314
|
"type": "array",
|
|
@@ -18278,7 +18316,8 @@
|
|
|
18278
18316
|
"type": "string",
|
|
18279
18317
|
"format": "uuid",
|
|
18280
18318
|
"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)$"
|
|
18281
|
-
}
|
|
18319
|
+
},
|
|
18320
|
+
"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."
|
|
18282
18321
|
}
|
|
18283
18322
|
},
|
|
18284
18323
|
"required": [
|
|
@@ -18292,22 +18331,26 @@
|
|
|
18292
18331
|
{
|
|
18293
18332
|
"type": "null"
|
|
18294
18333
|
}
|
|
18295
|
-
]
|
|
18334
|
+
],
|
|
18335
|
+
"description": "What stays. `null` when the org already fits the target plan and nothing is deleted."
|
|
18296
18336
|
},
|
|
18297
18337
|
"history_days_after": {
|
|
18298
18338
|
"type": "integer",
|
|
18299
18339
|
"exclusiveMinimum": 0,
|
|
18300
|
-
"maximum": 9007199254740991
|
|
18340
|
+
"maximum": 9007199254740991,
|
|
18341
|
+
"description": "Days of history and audit log the org keeps on the target plan."
|
|
18301
18342
|
},
|
|
18302
18343
|
"chosen_by": {
|
|
18303
18344
|
"type": "string",
|
|
18304
18345
|
"format": "uuid",
|
|
18305
|
-
"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)$"
|
|
18346
|
+
"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)$",
|
|
18347
|
+
"description": "The user id of the owner who chose the change, or the nil UUID when Fleetless queued it."
|
|
18306
18348
|
},
|
|
18307
18349
|
"chosen_at": {
|
|
18308
18350
|
"type": "string",
|
|
18309
18351
|
"format": "date-time",
|
|
18310
|
-
"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))$"
|
|
18352
|
+
"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))$",
|
|
18353
|
+
"description": "When the change was chosen."
|
|
18311
18354
|
}
|
|
18312
18355
|
},
|
|
18313
18356
|
"required": [
|
|
@@ -18324,7 +18367,8 @@
|
|
|
18324
18367
|
{
|
|
18325
18368
|
"type": "null"
|
|
18326
18369
|
}
|
|
18327
|
-
]
|
|
18370
|
+
],
|
|
18371
|
+
"description": "A move to a lower plan that has not taken effect yet, or `null`."
|
|
18328
18372
|
},
|
|
18329
18373
|
"lock": {
|
|
18330
18374
|
"anyOf": [
|
|
@@ -18336,12 +18380,14 @@
|
|
|
18336
18380
|
"enum": [
|
|
18337
18381
|
"payment",
|
|
18338
18382
|
"migration"
|
|
18339
|
-
]
|
|
18383
|
+
],
|
|
18384
|
+
"description": "`payment`: a payment is missing. `migration`: the org did not choose what stays when the beta ended."
|
|
18340
18385
|
},
|
|
18341
18386
|
"since": {
|
|
18342
18387
|
"type": "string",
|
|
18343
18388
|
"format": "date-time",
|
|
18344
|
-
"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))$"
|
|
18389
|
+
"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))$",
|
|
18390
|
+
"description": "When the org was locked."
|
|
18345
18391
|
}
|
|
18346
18392
|
},
|
|
18347
18393
|
"required": [
|
|
@@ -18353,7 +18399,8 @@
|
|
|
18353
18399
|
{
|
|
18354
18400
|
"type": "null"
|
|
18355
18401
|
}
|
|
18356
|
-
]
|
|
18402
|
+
],
|
|
18403
|
+
"description": "Why and since when the org is locked, or `null` when it is not."
|
|
18357
18404
|
},
|
|
18358
18405
|
"switch": {
|
|
18359
18406
|
"anyOf": [
|
|
@@ -18370,10 +18417,12 @@
|
|
|
18370
18417
|
{
|
|
18371
18418
|
"type": "null"
|
|
18372
18419
|
}
|
|
18373
|
-
]
|
|
18420
|
+
],
|
|
18421
|
+
"description": "When the org moves from the beta onto its plan. `null` while the date is not set."
|
|
18374
18422
|
},
|
|
18375
18423
|
"needs_choice": {
|
|
18376
|
-
"type": "boolean"
|
|
18424
|
+
"type": "boolean",
|
|
18425
|
+
"description": "Whether the org uses more than Basic allows, so an owner has to choose what stays before `at`."
|
|
18377
18426
|
}
|
|
18378
18427
|
},
|
|
18379
18428
|
"required": [
|
|
@@ -18385,7 +18434,8 @@
|
|
|
18385
18434
|
{
|
|
18386
18435
|
"type": "null"
|
|
18387
18436
|
}
|
|
18388
|
-
]
|
|
18437
|
+
],
|
|
18438
|
+
"description": "Set only while the org is still on the beta; `null` for every other org."
|
|
18389
18439
|
}
|
|
18390
18440
|
},
|
|
18391
18441
|
"required": [
|
|
@@ -18884,7 +18934,8 @@
|
|
|
18884
18934
|
"plus",
|
|
18885
18935
|
"pro",
|
|
18886
18936
|
"enterprise"
|
|
18887
|
-
]
|
|
18937
|
+
],
|
|
18938
|
+
"description": "The lower plan to move to; `basic` cancels."
|
|
18888
18939
|
},
|
|
18889
18940
|
"keep": {
|
|
18890
18941
|
"anyOf": [
|
|
@@ -18897,7 +18948,8 @@
|
|
|
18897
18948
|
"type": "string",
|
|
18898
18949
|
"format": "uuid",
|
|
18899
18950
|
"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)$"
|
|
18900
|
-
}
|
|
18951
|
+
},
|
|
18952
|
+
"description": "The robots that stay, by id. Every other robot is deleted when the change takes effect."
|
|
18901
18953
|
},
|
|
18902
18954
|
"apps": {
|
|
18903
18955
|
"type": "array",
|
|
@@ -18905,7 +18957,8 @@
|
|
|
18905
18957
|
"type": "string",
|
|
18906
18958
|
"format": "uuid",
|
|
18907
18959
|
"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)$"
|
|
18908
|
-
}
|
|
18960
|
+
},
|
|
18961
|
+
"description": "The apps that stay, by id. Every other app is deleted when the change takes effect."
|
|
18909
18962
|
},
|
|
18910
18963
|
"app_users": {
|
|
18911
18964
|
"type": "array",
|
|
@@ -18913,7 +18966,8 @@
|
|
|
18913
18966
|
"type": "string",
|
|
18914
18967
|
"format": "uuid",
|
|
18915
18968
|
"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)$"
|
|
18916
|
-
}
|
|
18969
|
+
},
|
|
18970
|
+
"description": "The app users that stay, by id, across every app. Every other app user is deleted when the change takes effect."
|
|
18917
18971
|
},
|
|
18918
18972
|
"developers": {
|
|
18919
18973
|
"type": "array",
|
|
@@ -18921,7 +18975,8 @@
|
|
|
18921
18975
|
"type": "string",
|
|
18922
18976
|
"format": "uuid",
|
|
18923
18977
|
"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)$"
|
|
18924
|
-
}
|
|
18978
|
+
},
|
|
18979
|
+
"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."
|
|
18925
18980
|
}
|
|
18926
18981
|
},
|
|
18927
18982
|
"required": [
|
|
@@ -18935,7 +18990,8 @@
|
|
|
18935
18990
|
{
|
|
18936
18991
|
"type": "null"
|
|
18937
18992
|
}
|
|
18938
|
-
]
|
|
18993
|
+
],
|
|
18994
|
+
"description": "What stays. `null` when the org already fits the target plan, so nothing is deleted."
|
|
18939
18995
|
}
|
|
18940
18996
|
},
|
|
18941
18997
|
"required": [
|
package/artifacts/routes.json
CHANGED
|
@@ -6467,7 +6467,7 @@
|
|
|
6467
6467
|
"rate_limited"
|
|
6468
6468
|
],
|
|
6469
6469
|
"transport": "http",
|
|
6470
|
-
"notes": "Every public host answers `404 not_found` for every `/api/admin/*` path — this route is reachable only on the cloud's private address — and that same address answers `404` here too while `OPS_API_TOKEN` is not configured, so a door with no key behind it reads exactly like one nobody opened. An unknown `:id` is the same `404`. Applies at once
|
|
6470
|
+
"notes": "Every public host answers `404 not_found` for every `/api/admin/*` path — this route is reachable only on the cloud's private address — and that same address answers `404` here too while `OPS_API_TOKEN` is not configured, so a door with no key behind it reads exactly like one nobody opened. An unknown `:id` is the same `404`. Applies at once, never queued as a `pending_change`, and only when the org's current usage fits the result: `409 plan_limit` when a lower plan, a lowered override or a removed add-on would leave the org over a limit — the operator never deletes an org's things, only the owner's own choice does. On success it also withdraws any `pending_change`, ends a beta org's wait for the switch and lifts a lock. Audited as `org.plan_changed` with the `fleetless` actor, never a developer's — the row names what an operator did, not who in the org asked for it."
|
|
6471
6471
|
},
|
|
6472
6472
|
{
|
|
6473
6473
|
"method": "POST",
|
|
@@ -10,7 +10,8 @@
|
|
|
10
10
|
"apps",
|
|
11
11
|
"app_user_packs",
|
|
12
12
|
"live_video_packs"
|
|
13
|
-
]
|
|
13
|
+
],
|
|
14
|
+
"description": "The add-on."
|
|
14
15
|
},
|
|
15
16
|
"raises": {
|
|
16
17
|
"type": "string",
|
|
@@ -38,22 +39,26 @@
|
|
|
38
39
|
"eur_month": {
|
|
39
40
|
"type": "integer",
|
|
40
41
|
"minimum": 0,
|
|
41
|
-
"maximum": 9007199254740991
|
|
42
|
+
"maximum": 9007199254740991,
|
|
43
|
+
"description": "Per month in euro cents, excluding VAT."
|
|
42
44
|
},
|
|
43
45
|
"usd_month": {
|
|
44
46
|
"type": "integer",
|
|
45
47
|
"minimum": 0,
|
|
46
|
-
"maximum": 9007199254740991
|
|
48
|
+
"maximum": 9007199254740991,
|
|
49
|
+
"description": "Per month in US dollar cents, excluding VAT: the euro price × 1.15, rounded up to a whole dollar."
|
|
47
50
|
},
|
|
48
51
|
"eur_year": {
|
|
49
52
|
"type": "integer",
|
|
50
53
|
"minimum": 0,
|
|
51
|
-
"maximum": 9007199254740991
|
|
54
|
+
"maximum": 9007199254740991,
|
|
55
|
+
"description": "Per year in euro cents, excluding VAT: twelve months less 15 %."
|
|
52
56
|
},
|
|
53
57
|
"usd_year": {
|
|
54
58
|
"type": "integer",
|
|
55
59
|
"minimum": 0,
|
|
56
|
-
"maximum": 9007199254740991
|
|
60
|
+
"maximum": 9007199254740991,
|
|
61
|
+
"description": "Per year in US dollar cents, excluding VAT: the yearly euro price × 1.15, rounded up to a whole dollar."
|
|
57
62
|
}
|
|
58
63
|
},
|
|
59
64
|
"required": [
|
|
@@ -62,7 +67,8 @@
|
|
|
62
67
|
"eur_year",
|
|
63
68
|
"usd_year"
|
|
64
69
|
],
|
|
65
|
-
"additionalProperties": false
|
|
70
|
+
"additionalProperties": false,
|
|
71
|
+
"description": "The price of one unit."
|
|
66
72
|
}
|
|
67
73
|
},
|
|
68
74
|
"required": [
|