@shipeasy/openapi 2.1.0 → 2.3.0

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.
Files changed (52) hide show
  1. package/dist/{chunk-EPLLHLZN.js → chunk-LYNWK55D.js} +23 -1
  2. package/dist/chunk-LYNWK55D.js.map +1 -0
  3. package/dist/{chunk-SPH5HWCD.js → chunk-PRN4AEAM.js} +396 -187
  4. package/dist/chunk-PRN4AEAM.js.map +1 -0
  5. package/dist/{client-pVkoo3Bf.d.ts → client-DO5HTb_L.d.ts} +886 -241
  6. package/dist/client.d.ts +1 -1
  7. package/dist/client.js +7 -1
  8. package/dist/custom.d.ts +23 -1
  9. package/dist/custom.js +12 -4
  10. package/dist/custom.js.map +1 -1
  11. package/dist/index.d.ts +2 -2
  12. package/dist/index.js +8 -2
  13. package/dist/index.js.map +1 -1
  14. package/dist/schemas.d.ts +770 -104
  15. package/dist/schemas.js +57 -5
  16. package/openapi.json +2177 -775
  17. package/openapi.yaml +1373 -409
  18. package/package.json +1 -1
  19. package/spec/components/errors.yaml +30 -1
  20. package/spec/components/parameters.yaml +8 -0
  21. package/spec/components/responses.yaml +15 -0
  22. package/spec/components/schemas/common.yaml +11 -0
  23. package/spec/components/schemas/connectors.yaml +5 -11
  24. package/spec/components/schemas/errors-api.yaml +66 -3
  25. package/spec/components/schemas/experiment-api-row.yaml +293 -0
  26. package/spec/components/schemas/experiments.yaml +54 -299
  27. package/spec/components/schemas/gate-templates.yaml +41 -2
  28. package/spec/components/schemas/gates.yaml +19 -0
  29. package/spec/components/schemas/keys.yaml +2 -1
  30. package/spec/components/schemas/metrics.yaml +17 -17
  31. package/spec/components/schemas/ops.yaml +105 -2
  32. package/spec/components/schemas/projects.yaml +119 -1
  33. package/spec/components/schemas/universes.yaml +83 -1
  34. package/spec/openapi.yaml +35 -2
  35. package/spec/paths/alert-rules.yaml +11 -2
  36. package/spec/paths/attributes.yaml +14 -3
  37. package/spec/paths/configs.yaml +24 -9
  38. package/spec/paths/connectors.yaml +42 -8
  39. package/spec/paths/errors.yaml +100 -6
  40. package/spec/paths/events.yaml +19 -4
  41. package/spec/paths/experiments.yaml +45 -11
  42. package/spec/paths/gate-templates.yaml +9 -5
  43. package/spec/paths/gates.yaml +21 -6
  44. package/spec/paths/i18n.yaml +18 -5
  45. package/spec/paths/keys.yaml +3 -1
  46. package/spec/paths/killswitches.yaml +24 -6
  47. package/spec/paths/metrics.yaml +15 -3
  48. package/spec/paths/ops.yaml +114 -3
  49. package/spec/paths/projects.yaml +3 -3
  50. package/spec/paths/universes.yaml +11 -2
  51. package/dist/chunk-EPLLHLZN.js.map +0 -1
  52. package/dist/chunk-SPH5HWCD.js.map +0 -1
@@ -12,6 +12,7 @@
12
12
  - $ref: ../components/parameters.yaml#/ProjectId
13
13
  - $ref: ../components/parameters.yaml#/PaginationLimit
14
14
  - $ref: ../components/parameters.yaml#/PaginationCursor
15
+ - $ref: ../components/parameters.yaml#/Q
15
16
  responses:
16
17
  "200":
17
18
  description: List feature gates
@@ -163,6 +164,19 @@
163
164
  example:
164
165
  id: gat_01j7w7m9q4hxbf6npe6s9zr3vc
165
166
  name: checkout_v2
167
+ links:
168
+ UpdateGate:
169
+ operationId: updateGate
170
+ parameters: { id: $response.body#/id }
171
+ EnableGate:
172
+ operationId: enableGate
173
+ parameters: { id: $response.body#/id }
174
+ DisableGate:
175
+ operationId: disableGate
176
+ parameters: { id: $response.body#/id }
177
+ DeleteGate:
178
+ operationId: deleteGate
179
+ parameters: { id: $response.body#/id }
166
180
  "400":
167
181
  $ref: ../components/responses.yaml#/BadRequest
168
182
  "401":
@@ -181,6 +195,7 @@
181
195
  - FORBIDDEN
182
196
  - ALREADY_EXISTS
183
197
  - VALIDATION
198
+ - PLAN_LIMIT
184
199
  x-cli:
185
200
  name: create
186
201
  positional:
@@ -211,7 +226,7 @@
211
226
  required: true
212
227
  description: Stable opaque gate id (`gat_…`) or the gate's `name`.
213
228
  schema:
214
- type: string
229
+ $ref: ../components/schemas/common.yaml#/ResourceId
215
230
  requestBody:
216
231
  required: true
217
232
  content:
@@ -317,7 +332,7 @@
317
332
  required: true
318
333
  description: Stable opaque gate id (`gat_…`) or the gate's `name`.
319
334
  schema:
320
- type: string
335
+ $ref: ../components/schemas/common.yaml#/ResourceId
321
336
  responses:
322
337
  "200":
323
338
  description: Delete a feature gate
@@ -366,9 +381,9 @@
366
381
  required: true
367
382
  description: Stable opaque gate id (`gat_…`) or the gate's `name`.
368
383
  schema:
369
- type: string
384
+ $ref: ../components/schemas/common.yaml#/ResourceId
370
385
  responses:
371
- "201":
386
+ "200":
372
387
  description: Enable a gate
373
388
  content:
374
389
  application/json:
@@ -416,9 +431,9 @@
416
431
  required: true
417
432
  description: Stable opaque gate id (`gat_…`) or the gate's `name`.
418
433
  schema:
419
- type: string
434
+ $ref: ../components/schemas/common.yaml#/ResourceId
420
435
  responses:
421
- "201":
436
+ "200":
422
437
  description: Disable a gate
423
438
  content:
424
439
  application/json:
@@ -73,6 +73,10 @@
73
73
  example:
74
74
  id: i18n_01j7w8a1b2c4
75
75
  name: fr:prod
76
+ links:
77
+ PublishI18nProfile:
78
+ operationId: publishI18nProfile
79
+ parameters: { profileId: $response.body#/id }
76
80
  "400":
77
81
  $ref: ../components/responses.yaml#/BadRequest
78
82
  "401":
@@ -120,9 +124,10 @@
120
124
  - name: q
121
125
  in: query
122
126
  required: false
123
- description: Free-text search — matches keys whose name OR value contains this substring (case-insensitive). Use it to find the key behind a piece of on-screen copy.
127
+ description: Free-text search — matches keys whose name, value, OR description contains this substring (case-insensitive). Use it to find the key behind a piece of on-screen copy.
124
128
  schema:
125
129
  type: string
130
+ maxLength: 100
126
131
  - name: limit
127
132
  in: query
128
133
  required: false
@@ -131,6 +136,14 @@
131
136
  type: integer
132
137
  minimum: 1
133
138
  maximum: 500
139
+ - name: offset
140
+ in: query
141
+ required: false
142
+ description: Number of keys to skip before returning `limit` rows (offset pagination).
143
+ schema:
144
+ type: integer
145
+ minimum: 0
146
+ default: 0
134
147
  responses:
135
148
  "200":
136
149
  description: List i18n keys
@@ -235,7 +248,7 @@
235
248
  required: true
236
249
  description: The key's id.
237
250
  schema:
238
- type: string
251
+ $ref: ../components/schemas/common.yaml#/ResourceId
239
252
  requestBody:
240
253
  required: true
241
254
  content:
@@ -383,7 +396,7 @@
383
396
  required: true
384
397
  description: The draft id to update.
385
398
  schema:
386
- type: string
399
+ $ref: ../components/schemas/common.yaml#/ResourceId
387
400
  requestBody:
388
401
  required: true
389
402
  content:
@@ -441,7 +454,7 @@
441
454
  required: true
442
455
  description: The profile id to publish.
443
456
  schema:
444
- type: string
457
+ $ref: ../components/schemas/common.yaml#/ResourceId
445
458
  requestBody:
446
459
  required: true
447
460
  content:
@@ -451,7 +464,7 @@
451
464
  example:
452
465
  chunk: default
453
466
  responses:
454
- "201":
467
+ "200":
455
468
  description: Publish a profile chunk
456
469
  content:
457
470
  application/json:
@@ -14,6 +14,7 @@
14
14
  - $ref: ../components/parameters.yaml#/ProjectId
15
15
  - $ref: ../components/parameters.yaml#/PaginationLimit
16
16
  - $ref: ../components/parameters.yaml#/PaginationCursor
17
+ - $ref: ../components/parameters.yaml#/Q
17
18
  responses:
18
19
  "200":
19
20
  description: List API keys
@@ -127,6 +128,7 @@
127
128
  - UNAUTHORIZED
128
129
  - FORBIDDEN
129
130
  - VALIDATION
131
+ - PLAN_LIMIT
130
132
  x-cli:
131
133
  name: create
132
134
  /api/admin/keys/{id}/revoke:
@@ -148,7 +150,7 @@
148
150
  required: true
149
151
  description: Stable opaque key id (UUID) returned by `create` / `list`.
150
152
  schema:
151
- type: string
153
+ $ref: ../components/schemas/common.yaml#/ResourceId
152
154
  responses:
153
155
  "200":
154
156
  description: Revoke an API key
@@ -12,6 +12,7 @@
12
12
  - $ref: ../components/parameters.yaml#/ProjectId
13
13
  - $ref: ../components/parameters.yaml#/PaginationLimit
14
14
  - $ref: ../components/parameters.yaml#/PaginationCursor
15
+ - $ref: ../components/parameters.yaml#/Q
15
16
  responses:
16
17
  "200":
17
18
  description: List killswitches
@@ -114,6 +115,22 @@
114
115
  example:
115
116
  id: ksw_01j7w9d8h2k4m6n8p0q2r4s6t8
116
117
  name: payments.checkout
118
+ links:
119
+ GetKillswitch:
120
+ operationId: getKillswitch
121
+ parameters: { id: $response.body#/id }
122
+ UpdateKillswitch:
123
+ operationId: updateKillswitch
124
+ parameters: { id: $response.body#/id }
125
+ SetKillswitchSwitch:
126
+ operationId: setKillswitchSwitch
127
+ parameters: { id: $response.body#/id }
128
+ SetKillswitchValue:
129
+ operationId: setKillswitchValue
130
+ parameters: { id: $response.body#/id }
131
+ DeleteKillswitch:
132
+ operationId: deleteKillswitch
133
+ parameters: { id: $response.body#/id }
117
134
  "400":
118
135
  $ref: ../components/responses.yaml#/BadRequest
119
136
  "401":
@@ -132,6 +149,7 @@
132
149
  - FORBIDDEN
133
150
  - ALREADY_EXISTS
134
151
  - VALIDATION
152
+ - PLAN_LIMIT
135
153
  x-cli:
136
154
  name: create
137
155
  positional:
@@ -153,7 +171,7 @@
153
171
  required: true
154
172
  description: Stable opaque killswitch id (`ksw_…`) or the killswitch's `name`.
155
173
  schema:
156
- type: string
174
+ $ref: ../components/schemas/common.yaml#/ResourceId
157
175
  responses:
158
176
  "200":
159
177
  description: Get one killswitch
@@ -225,7 +243,7 @@
225
243
  required: true
226
244
  description: Stable opaque killswitch id (`ksw_…`) or the killswitch's `name`.
227
245
  schema:
228
- type: string
246
+ $ref: ../components/schemas/common.yaml#/ResourceId
229
247
  requestBody:
230
248
  required: true
231
249
  content:
@@ -302,7 +320,7 @@
302
320
  required: true
303
321
  description: Stable opaque killswitch id (`ksw_…`) or the killswitch's `name`.
304
322
  schema:
305
- type: string
323
+ $ref: ../components/schemas/common.yaml#/ResourceId
306
324
  responses:
307
325
  "200":
308
326
  description: Delete a killswitch
@@ -355,7 +373,7 @@
355
373
  required: true
356
374
  description: Stable opaque killswitch id (`ksw_…`) or the killswitch's `name`.
357
375
  schema:
358
- type: string
376
+ $ref: ../components/schemas/common.yaml#/ResourceId
359
377
  requestBody:
360
378
  required: true
361
379
  content:
@@ -429,7 +447,7 @@
429
447
  required: true
430
448
  description: Stable opaque killswitch id (`ksw_…`) or the killswitch's `name`.
431
449
  schema:
432
- type: string
450
+ $ref: ../components/schemas/common.yaml#/ResourceId
433
451
  requestBody:
434
452
  required: true
435
453
  content:
@@ -498,7 +516,7 @@
498
516
  required: true
499
517
  description: Stable opaque killswitch id (`ksw_…`) or the killswitch's `name`.
500
518
  schema:
501
- type: string
519
+ $ref: ../components/schemas/common.yaml#/ResourceId
502
520
  requestBody:
503
521
  required: true
504
522
  content:
@@ -10,6 +10,7 @@
10
10
  - Metrics
11
11
  parameters:
12
12
  - $ref: ../components/parameters.yaml#/ProjectId
13
+ - $ref: ../components/parameters.yaml#/Q
13
14
  responses:
14
15
  "200":
15
16
  description: List metrics
@@ -110,6 +111,16 @@
110
111
  example:
111
112
  id: met_01j7w8a1b2c3d4e5f6g7h8i9j0
112
113
  name: checkouts
114
+ links:
115
+ GetMetric:
116
+ operationId: getMetric
117
+ parameters: { id: $response.body#/id }
118
+ UpdateMetric:
119
+ operationId: updateMetric
120
+ parameters: { id: $response.body#/id }
121
+ DeleteMetric:
122
+ operationId: deleteMetric
123
+ parameters: { id: $response.body#/id }
113
124
  "400":
114
125
  $ref: ../components/responses.yaml#/BadRequest
115
126
  "401":
@@ -130,6 +141,7 @@
130
141
  - EVENT_PENDING
131
142
  - REFERENCED_NOT_FOUND
132
143
  - VALIDATION
144
+ - PLAN_LIMIT
133
145
  x-cli:
134
146
  name: create
135
147
  positional:
@@ -151,7 +163,7 @@
151
163
  required: true
152
164
  description: Stable opaque metric id (`met_…`) or the metric's `name`.
153
165
  schema:
154
- type: string
166
+ $ref: ../components/schemas/common.yaml#/ResourceId
155
167
  responses:
156
168
  "200":
157
169
  description: Get a metric
@@ -209,7 +221,7 @@
209
221
  required: true
210
222
  description: Stable opaque metric id (`met_…`) or the metric's `name`.
211
223
  schema:
212
- type: string
224
+ $ref: ../components/schemas/common.yaml#/ResourceId
213
225
  requestBody:
214
226
  required: true
215
227
  content:
@@ -268,7 +280,7 @@
268
280
  required: true
269
281
  description: Stable opaque metric id (`met_…`) or the metric's `name`.
270
282
  schema:
271
- type: string
283
+ $ref: ../components/schemas/common.yaml#/ResourceId
272
284
  responses:
273
285
  "200":
274
286
  description: Archive a metric
@@ -176,7 +176,7 @@
176
176
  required: true
177
177
  description: Per-project item number (e.g. `7`) or the full ops item id.
178
178
  schema:
179
- type: string
179
+ $ref: ../components/schemas/common.yaml#/ResourceId
180
180
  responses:
181
181
  "200":
182
182
  description: Get one queue item
@@ -235,7 +235,7 @@
235
235
  required: true
236
236
  description: Per-project item number (e.g. `7`) or the full ops item id.
237
237
  schema:
238
- type: string
238
+ $ref: ../components/schemas/common.yaml#/ResourceId
239
239
  requestBody:
240
240
  required: true
241
241
  content:
@@ -303,7 +303,7 @@
303
303
  required: true
304
304
  description: Per-project item number (e.g. `7`) or the full ops item id.
305
305
  schema:
306
- type: string
306
+ $ref: ../components/schemas/common.yaml#/ResourceId
307
307
  requestBody:
308
308
  required: true
309
309
  content:
@@ -344,6 +344,117 @@
344
344
  name: link-pr
345
345
  positional:
346
346
  - handle
347
+ /api/admin/ops/{handle}/comments:
348
+ get:
349
+ operationId: listOpsComments
350
+ summary: List an item's comments
351
+ description: |-
352
+ List the comment thread on a queue item, oldest first. Each comment
353
+ carries its author (a teammate email, or `system` for a comment authored by
354
+ Jarvis — the AI agent), its markdown body, and `parentId` for the single
355
+ level of threaded replies. Removed comments are omitted.
356
+
357
+ **Use case:** Read the discussion on an item before replying or acting on it.
358
+ tags:
359
+ - Comments
360
+ parameters:
361
+ - $ref: ../components/parameters.yaml#/ProjectId
362
+ - name: handle
363
+ in: path
364
+ required: true
365
+ description: Per-project item number (e.g. `7`) or the full ops item id.
366
+ schema:
367
+ $ref: ../components/schemas/common.yaml#/ResourceId
368
+ responses:
369
+ "200":
370
+ description: List an item's comments
371
+ content:
372
+ application/json:
373
+ schema:
374
+ $ref: ../components/schemas/ops.yaml#/ListOpsCommentsResponse
375
+ "400":
376
+ $ref: ../components/responses.yaml#/BadRequest
377
+ "401":
378
+ $ref: ../components/responses.yaml#/Unauthorized
379
+ "403":
380
+ $ref: ../components/responses.yaml#/Forbidden
381
+ "404":
382
+ $ref: ../components/responses.yaml#/NotFound
383
+ x-error-codes:
384
+ - BAD_REQUEST
385
+ - UNAUTHORIZED
386
+ - FORBIDDEN
387
+ - NOT_FOUND
388
+ x-cli:
389
+ name: list
390
+ positional:
391
+ - handle
392
+ post:
393
+ operationId: createOpsComment
394
+ summary: Comment on an item
395
+ description: |-
396
+ Append a comment to a queue item's thread. The body is markdown (mentions
397
+ like `@teammate` notify that person; `@shipeasy` asks Jarvis, the AI agent,
398
+ to reply). Pass `parentId` to reply under an existing top-level comment
399
+ (one level of threading — a reply to a reply attaches to the same parent).
400
+
401
+ Create-only and append-only, so it is safe for restricted ops keys — the
402
+ same channel the ops loop and Jarvis use to leave a note on an item.
403
+ tags:
404
+ - Comments
405
+ parameters:
406
+ - $ref: ../components/parameters.yaml#/ProjectId
407
+ - name: handle
408
+ in: path
409
+ required: true
410
+ description: Per-project item number (e.g. `7`) or the full ops item id.
411
+ schema:
412
+ $ref: ../components/schemas/common.yaml#/ResourceId
413
+ requestBody:
414
+ required: true
415
+ content:
416
+ application/json:
417
+ schema:
418
+ $ref: ../components/schemas/ops.yaml#/CreateOpsCommentRequest
419
+ examples:
420
+ comment:
421
+ summary: Leave a comment
422
+ value:
423
+ body: "Repro'd on iOS Safari 17 — the button overflows its container. cc @alice"
424
+ reply:
425
+ summary: Reply under an existing comment
426
+ value:
427
+ body: "Agreed, let's ship the fix behind @shipeasy's suggested flag."
428
+ parentId: cm_01j7w8a1b2c3d4e5f6g7h8i9j0
429
+ responses:
430
+ "201":
431
+ description: Comment on an item
432
+ content:
433
+ application/json:
434
+ schema:
435
+ $ref: ../components/schemas/ops.yaml#/CreateOpsCommentResponse
436
+ example:
437
+ id: cm_01j7w8a1b2c3d4e5f6g7h8i9j0
438
+ "400":
439
+ $ref: ../components/responses.yaml#/BadRequest
440
+ "401":
441
+ $ref: ../components/responses.yaml#/Unauthorized
442
+ "403":
443
+ $ref: ../components/responses.yaml#/Forbidden
444
+ "404":
445
+ $ref: ../components/responses.yaml#/NotFound
446
+ "422":
447
+ $ref: ../components/responses.yaml#/UnprocessableEntity
448
+ x-error-codes:
449
+ - BAD_REQUEST
450
+ - UNAUTHORIZED
451
+ - FORBIDDEN
452
+ - NOT_FOUND
453
+ - VALIDATION
454
+ x-cli:
455
+ name: create
456
+ positional:
457
+ - handle
347
458
  /api/admin/notifications:
348
459
  post:
349
460
  operationId: notifyOps
@@ -22,7 +22,7 @@
22
22
  name: Acme
23
23
  domain: acme.com
24
24
  ownerEmail: owner@acme.com
25
- plan: paid
25
+ plan: pro
26
26
  status: active
27
27
  subscriptionStatus: active
28
28
  billingInterval: monthly
@@ -144,7 +144,7 @@
144
144
  required: true
145
145
  description: Stable opaque project id. Must match the caller's own project.
146
146
  schema:
147
- type: string
147
+ $ref: ../components/schemas/common.yaml#/ResourceId
148
148
  requestBody:
149
149
  required: true
150
150
  content:
@@ -172,7 +172,7 @@
172
172
  name: Acme Rockets
173
173
  domain: acme.com
174
174
  ownerEmail: owner@acme.com
175
- plan: paid
175
+ plan: pro
176
176
  status: active
177
177
  subscriptionStatus: active
178
178
  billingInterval: monthly
@@ -12,6 +12,7 @@
12
12
  - $ref: ../components/parameters.yaml#/ProjectId
13
13
  - $ref: ../components/parameters.yaml#/PaginationLimit
14
14
  - $ref: ../components/parameters.yaml#/PaginationCursor
15
+ - $ref: ../components/parameters.yaml#/Q
15
16
  responses:
16
17
  "200":
17
18
  description: List universes
@@ -100,6 +101,13 @@
100
101
  example:
101
102
  id: uni_01j7w8a1b2c3d4e5f6g7h8i9j0
102
103
  name: primary_users
104
+ links:
105
+ UpdateUniverse:
106
+ operationId: updateUniverse
107
+ parameters: { id: $response.body#/id }
108
+ DeleteUniverse:
109
+ operationId: deleteUniverse
110
+ parameters: { id: $response.body#/id }
103
111
  "400":
104
112
  $ref: ../components/responses.yaml#/BadRequest
105
113
  "401":
@@ -119,6 +127,7 @@
119
127
  - PLAN_REQUIRED
120
128
  - ALREADY_EXISTS
121
129
  - VALIDATION
130
+ - PLAN_LIMIT
122
131
  x-cli:
123
132
  name: create
124
133
  positional:
@@ -145,7 +154,7 @@
145
154
  required: true
146
155
  description: Stable opaque universe id (`uni_…`) or the universe's `name`.
147
156
  schema:
148
- type: string
157
+ $ref: ../components/schemas/common.yaml#/ResourceId
149
158
  requestBody:
150
159
  required: true
151
160
  content:
@@ -213,7 +222,7 @@
213
222
  required: true
214
223
  description: Stable opaque universe id (`uni_…`) or the universe's `name`.
215
224
  schema:
216
- type: string
225
+ $ref: ../components/schemas/common.yaml#/ResourceId
217
226
  responses:
218
227
  "200":
219
228
  description: Delete a universe