@shipeasy/openapi 1.6.0 → 2.1.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 (151) hide show
  1. package/README.md +37 -0
  2. package/dist/chunk-EPLLHLZN.js +1616 -0
  3. package/dist/chunk-EPLLHLZN.js.map +1 -0
  4. package/dist/chunk-SPH5HWCD.js +3326 -0
  5. package/dist/chunk-SPH5HWCD.js.map +1 -0
  6. package/dist/client-pVkoo3Bf.d.ts +11186 -0
  7. package/dist/client.d.ts +1 -0
  8. package/dist/client.js +215 -0
  9. package/dist/client.js.map +1 -0
  10. package/dist/custom.d.ts +64 -0
  11. package/dist/custom.js +292 -0
  12. package/dist/custom.js.map +1 -0
  13. package/dist/index.d.ts +29 -41
  14. package/dist/index.js +258 -4375
  15. package/dist/index.js.map +1 -0
  16. package/dist/node-context.d.ts +81 -33
  17. package/dist/node-context.js +98 -44
  18. package/dist/node-context.js.map +1 -0
  19. package/dist/schemas.d.ts +7920 -0
  20. package/dist/schemas.js +1083 -0
  21. package/dist/schemas.js.map +1 -0
  22. package/openapi.json +15297 -3044
  23. package/openapi.yaml +13979 -0
  24. package/package.json +33 -26
  25. package/spec/components/errors.yaml +53 -0
  26. package/spec/components/parameters.yaml +24 -0
  27. package/spec/components/responses.yaml +107 -0
  28. package/spec/components/schemas/alert-rules.yaml +175 -0
  29. package/spec/components/schemas/attributes.yaml +157 -0
  30. package/spec/components/schemas/common.yaml +87 -0
  31. package/spec/components/schemas/configs.yaml +371 -0
  32. package/spec/components/schemas/connectors.yaml +593 -0
  33. package/spec/components/schemas/errors-api.yaml +209 -0
  34. package/spec/components/schemas/events.yaml +321 -0
  35. package/spec/components/schemas/experiments.yaml +865 -0
  36. package/spec/components/schemas/gate-templates.yaml +198 -0
  37. package/spec/components/schemas/gates.yaml +890 -0
  38. package/spec/components/schemas/i18n.yaml +478 -0
  39. package/spec/components/schemas/keys.yaml +186 -0
  40. package/spec/components/schemas/killswitches.yaml +309 -0
  41. package/spec/components/schemas/metrics.yaml +547 -0
  42. package/spec/components/schemas/ops.yaml +1011 -0
  43. package/spec/components/schemas/projects.yaml +222 -0
  44. package/spec/components/schemas/search.yaml +46 -0
  45. package/spec/components/schemas/universes.yaml +127 -0
  46. package/spec/openapi.yaml +348 -0
  47. package/spec/paths/alert-rules.yaml +250 -0
  48. package/spec/paths/attributes.yaml +261 -0
  49. package/spec/paths/configs.yaml +744 -0
  50. package/spec/paths/connectors.yaml +748 -0
  51. package/spec/paths/errors.yaml +382 -0
  52. package/spec/paths/events.yaml +366 -0
  53. package/spec/paths/experiments.yaml +777 -0
  54. package/spec/paths/gate-templates.yaml +263 -0
  55. package/spec/paths/gates.yaml +451 -0
  56. package/spec/paths/i18n.yaml +544 -0
  57. package/spec/paths/keys.yaml +181 -0
  58. package/spec/paths/killswitches.yaml +557 -0
  59. package/spec/paths/metrics.yaml +302 -0
  60. package/spec/paths/ops.yaml +446 -0
  61. package/spec/paths/projects.yaml +210 -0
  62. package/spec/paths/search.yaml +62 -0
  63. package/spec/paths/universes.yaml +247 -0
  64. package/dist/operations/attributes.d.ts +0 -33
  65. package/dist/operations/attributes.js +0 -16
  66. package/dist/operations/cli-adapter.d.ts +0 -35
  67. package/dist/operations/cli-adapter.js +0 -91
  68. package/dist/operations/coerce.d.ts +0 -32
  69. package/dist/operations/coerce.js +0 -53
  70. package/dist/operations/configs.d.ts +0 -28
  71. package/dist/operations/configs.js +0 -119
  72. package/dist/operations/docs.d.ts +0 -37
  73. package/dist/operations/docs.js +0 -39
  74. package/dist/operations/events.d.ts +0 -28
  75. package/dist/operations/events.js +0 -121
  76. package/dist/operations/experiments.d.ts +0 -28
  77. package/dist/operations/experiments.js +0 -280
  78. package/dist/operations/gates.d.ts +0 -28
  79. package/dist/operations/gates.js +0 -132
  80. package/dist/operations/i18n.d.ts +0 -28
  81. package/dist/operations/i18n.js +0 -121
  82. package/dist/operations/index.d.ts +0 -63
  83. package/dist/operations/index.js +0 -1751
  84. package/dist/operations/killswitches.d.ts +0 -28
  85. package/dist/operations/killswitches.js +0 -126
  86. package/dist/operations/mcp-adapter.d.ts +0 -35
  87. package/dist/operations/mcp-adapter.js +0 -94
  88. package/dist/operations/metrics.d.ts +0 -30
  89. package/dist/operations/metrics.js +0 -114
  90. package/dist/operations/ops.d.ts +0 -28
  91. package/dist/operations/ops.js +0 -313
  92. package/dist/operations/projects.d.ts +0 -28
  93. package/dist/operations/projects.js +0 -36
  94. package/dist/operations/sdk-docs.d.ts +0 -28
  95. package/dist/operations/sdk-docs.js +0 -160
  96. package/dist/operations/types.d.ts +0 -138
  97. package/dist/operations/types.js +0 -9
  98. package/dist/operations/universes.d.ts +0 -28
  99. package/dist/operations/universes.js +0 -93
  100. package/dist/operations/util.d.ts +0 -33
  101. package/dist/operations/util.js +0 -9
  102. package/dist/resources/alert-rules.d.ts +0 -50
  103. package/dist/resources/alert-rules.js +0 -75
  104. package/dist/resources/attributes.d.ts +0 -19
  105. package/dist/resources/attributes.js +0 -10
  106. package/dist/resources/configs.d.ts +0 -681
  107. package/dist/resources/configs.js +0 -509
  108. package/dist/resources/events.d.ts +0 -61
  109. package/dist/resources/events.js +0 -42
  110. package/dist/resources/experiments.d.ts +0 -849
  111. package/dist/resources/experiments.js +0 -707
  112. package/dist/resources/gates.d.ts +0 -808
  113. package/dist/resources/gates.js +0 -522
  114. package/dist/resources/i18n.d.ts +0 -84
  115. package/dist/resources/i18n.js +0 -60
  116. package/dist/resources/index.d.ts +0 -2767
  117. package/dist/resources/index.js +0 -2563
  118. package/dist/resources/killswitches.d.ts +0 -436
  119. package/dist/resources/killswitches.js +0 -514
  120. package/dist/resources/metrics.d.ts +0 -54
  121. package/dist/resources/metrics.js +0 -40
  122. package/dist/resources/ops.d.ts +0 -88
  123. package/dist/resources/ops.js +0 -36
  124. package/dist/resources/projects.d.ts +0 -54
  125. package/dist/resources/projects.js +0 -14
  126. package/dist/resources/universes.d.ts +0 -185
  127. package/dist/resources/universes.js +0 -234
  128. package/dist/schemas/alert-rules.d.ts +0 -65
  129. package/dist/schemas/alert-rules.js +0 -37
  130. package/dist/schemas/configs.d.ts +0 -154
  131. package/dist/schemas/configs.js +0 -134
  132. package/dist/schemas/constants.d.ts +0 -6
  133. package/dist/schemas/constants.js +0 -7
  134. package/dist/schemas/experiments.d.ts +0 -229
  135. package/dist/schemas/experiments.js +0 -221
  136. package/dist/schemas/folder.d.ts +0 -10
  137. package/dist/schemas/folder.js +0 -8
  138. package/dist/schemas/gates.d.ts +0 -386
  139. package/dist/schemas/gates.js +0 -190
  140. package/dist/schemas/index.d.ts +0 -11
  141. package/dist/schemas/index.js +0 -762
  142. package/dist/schemas/killswitches.d.ts +0 -110
  143. package/dist/schemas/killswitches.js +0 -226
  144. package/dist/schemas/metric-name.d.ts +0 -5
  145. package/dist/schemas/metric-name.js +0 -6
  146. package/dist/schemas/pagination.d.ts +0 -37
  147. package/dist/schemas/pagination.js +0 -44
  148. package/dist/schemas/universes.d.ts +0 -35
  149. package/dist/schemas/universes.js +0 -55
  150. package/dist/transport.d.ts +0 -30
  151. package/dist/transport.js +0 -44
@@ -0,0 +1,593 @@
1
+ ConnectorEvent:
2
+ type: string
3
+ enum:
4
+ - bug.created
5
+ - feature_request.created
6
+ description: "Lifecycle event a connector subscribes to. `bug.created` fires when a new bug report lands in the feedback inbox; `feature_request.created` fires for a new feature request. A connector dispatches (posts to Slack / appends a Sheets row / files a GitHub Issue) — or, for trigger connectors, auto-fires a coding-agent run — once per subscribed event."
7
+ ConnectorProvider:
8
+ type: string
9
+ enum:
10
+ - google_sheets
11
+ - github
12
+ - slack
13
+ - claude_trigger
14
+ - cursor_trigger
15
+ - copilot_trigger
16
+ - jules_trigger
17
+ description: "Connector destination. OAuth/app providers (`google_sheets`, `github`, `slack`) dispatch the event payload to an external destination. Trigger providers (`claude_trigger`, `cursor_trigger`, `copilot_trigger`, `jules_trigger`) instead kick a coding-agent run that burns down the operational queue."
18
+ ConnectorRecord:
19
+ type: object
20
+ properties:
21
+ id:
22
+ type: string
23
+ description: Stable opaque connector id (a UUID).
24
+ projectId:
25
+ type: string
26
+ description: Id of the project the connector belongs to.
27
+ provider:
28
+ $ref: "#/ConnectorProvider"
29
+ name:
30
+ type: string
31
+ maxLength: 80
32
+ description: Human-readable connector label shown in the dashboard.
33
+ enabled:
34
+ type: boolean
35
+ description: Whether the connector is active. OAuth providers are created `false` and flip to `true` only after the OAuth/config flow completes; trigger providers default to `true` on create. A disabled connector never dispatches and never auto-fires.
36
+ events:
37
+ type: array
38
+ items:
39
+ $ref: "#/ConnectorEvent"
40
+ description: Events this connector is subscribed to. Empty array = no auto-dispatch / no auto-fire (the connector can still be fired/tested manually).
41
+ config:
42
+ type: object
43
+ additionalProperties: true
44
+ description: "Provider-specific, non-secret configuration (e.g. a Google Sheets `spreadsheetId`/`sheetTitle`, a Slack channel ref, or a trigger's repo coordinates + routine id). Secrets are never stored here — they live in an encrypted credentials cipher that is never returned by the API."
45
+ accountLabel:
46
+ anyOf:
47
+ - type: string
48
+ - type: "null"
49
+ description: "Display label for the connected account / target (e.g. the OAuth account email, or a trigger's idempotency key such as its repo url or routine id). `null` until the connector is authenticated/configured."
50
+ lastError:
51
+ anyOf:
52
+ - type: string
53
+ - type: "null"
54
+ description: Error message from the most recent failed dispatch/fire attempt, or `null` if the last attempt succeeded (or none has run).
55
+ lastAttemptAt:
56
+ anyOf:
57
+ - type: string
58
+ - type: "null"
59
+ description: ISO-8601 timestamp of the most recent dispatch/fire attempt, or `null` if none has run.
60
+ lastSuccessAt:
61
+ anyOf:
62
+ - type: string
63
+ - type: "null"
64
+ description: ISO-8601 timestamp of the most recent successful dispatch/fire, or `null` if none has succeeded. Preserved across later failures.
65
+ createdAt:
66
+ type: string
67
+ description: ISO-8601 timestamp of creation.
68
+ updatedAt:
69
+ type: string
70
+ description: ISO-8601 timestamp of last mutation.
71
+ required:
72
+ - id
73
+ - projectId
74
+ - provider
75
+ - name
76
+ - enabled
77
+ - events
78
+ - config
79
+ - accountLabel
80
+ - lastError
81
+ - lastAttemptAt
82
+ - lastSuccessAt
83
+ - createdAt
84
+ - updatedAt
85
+ additionalProperties: false
86
+ description: "A connector row. The encrypted credentials cipher backing the connector is intentionally never serialised."
87
+ ListConnectorsResponse:
88
+ type: array
89
+ items:
90
+ $ref: "#/ConnectorRecord"
91
+ description: Bare array of every connector in the project (no pagination envelope).
92
+ GetConnectorResponse:
93
+ $ref: "#/ConnectorRecord"
94
+ CreateConnectorRequest:
95
+ oneOf:
96
+ - $ref: "#/CreateOAuthConnectorRequest"
97
+ - $ref: "#/CreateClaudeTriggerRequest"
98
+ - $ref: "#/CreateCursorTriggerRequest"
99
+ - $ref: "#/CreateCopilotTriggerRequest"
100
+ - $ref: "#/CreateJulesTriggerRequest"
101
+ discriminator:
102
+ propertyName: provider
103
+ mapping:
104
+ google_sheets: "#/CreateOAuthConnectorRequest"
105
+ github: "#/CreateOAuthConnectorRequest"
106
+ slack: "#/CreateOAuthConnectorRequest"
107
+ claude_trigger: "#/CreateClaudeTriggerRequest"
108
+ cursor_trigger: "#/CreateCursorTriggerRequest"
109
+ copilot_trigger: "#/CreateCopilotTriggerRequest"
110
+ jules_trigger: "#/CreateJulesTriggerRequest"
111
+ description: "Body for `POST /api/admin/connectors`, discriminated on `provider`. The OAuth providers (`google_sheets`/`github`/`slack`) create a disabled stub that is finished via the provider's OAuth flow. The trigger providers (`claude_trigger`/`cursor_trigger`/`copilot_trigger`/`jules_trigger`) arrive config + credentials together and are fireable immediately."
112
+ CreateOAuthConnectorRequest:
113
+ type: object
114
+ properties:
115
+ provider:
116
+ type: string
117
+ enum:
118
+ - google_sheets
119
+ - github
120
+ - slack
121
+ description: OAuth/app connector destination.
122
+ name:
123
+ type: string
124
+ minLength: 1
125
+ maxLength: 80
126
+ description: Human-readable connector label.
127
+ events:
128
+ type: array
129
+ minItems: 1
130
+ items:
131
+ $ref: "#/ConnectorEvent"
132
+ description: Events to subscribe to. At least one is required.
133
+ required:
134
+ - provider
135
+ - name
136
+ - events
137
+ additionalProperties: false
138
+ description: "Create an OAuth/app connector stub. The connector is created `enabled: false` with empty `config` and no credentials; the provider's OAuth flow then attaches credentials and enables it."
139
+ CreateClaudeTriggerRequest:
140
+ type: object
141
+ properties:
142
+ provider:
143
+ type: string
144
+ enum:
145
+ - claude_trigger
146
+ description: Discriminator. Claude Code scheduled-routine trigger.
147
+ name:
148
+ type: string
149
+ minLength: 1
150
+ maxLength: 80
151
+ default: Claude trigger
152
+ description: Human-readable connector label.
153
+ events:
154
+ type: array
155
+ default: []
156
+ items:
157
+ $ref: "#/ConnectorEvent"
158
+ description: Events that auto-fire the routine. Defaults to empty so the trigger does not auto-fire paid runs until events are subscribed.
159
+ config:
160
+ $ref: "#/ClaudeTriggerConfig"
161
+ token:
162
+ type: string
163
+ minLength: 1
164
+ description: "The routine's fire bearer token (secret). **Optional** — a tokenless trigger is recorded but not fireable until a token is added later. Encrypted into the credentials cipher; never persisted in `config` or returned."
165
+ enabled:
166
+ type: boolean
167
+ default: true
168
+ description: Whether the trigger is active on create.
169
+ required:
170
+ - provider
171
+ - config
172
+ additionalProperties: false
173
+ description: "Create a Claude Code routine trigger in one shot. Idempotent by `config.routineId` — re-creating with the same routine id updates the existing row."
174
+ CreateCursorTriggerRequest:
175
+ type: object
176
+ properties:
177
+ provider:
178
+ type: string
179
+ enum:
180
+ - cursor_trigger
181
+ description: Discriminator. Cursor cloud-agent trigger.
182
+ name:
183
+ type: string
184
+ minLength: 1
185
+ maxLength: 80
186
+ default: Cursor trigger
187
+ description: Human-readable connector label.
188
+ events:
189
+ type: array
190
+ default: []
191
+ items:
192
+ $ref: "#/ConnectorEvent"
193
+ description: Events that auto-fire a cold cloud-agent run. Defaults to empty.
194
+ config:
195
+ $ref: "#/CursorTriggerConfig"
196
+ apiKey:
197
+ type: string
198
+ minLength: 1
199
+ description: Cursor API key that launches the run (secret). Encrypted into the credentials cipher; never returned.
200
+ opsKey:
201
+ type: string
202
+ minLength: 1
203
+ description: Restricted Shipeasy ops key, injected into the run as `SHIPEASY_CLI_TOKEN` via the launch envVars (secret). Encrypted; never returned.
204
+ enabled:
205
+ type: boolean
206
+ default: true
207
+ description: Whether the trigger is active on create.
208
+ required:
209
+ - provider
210
+ - config
211
+ - apiKey
212
+ - opsKey
213
+ additionalProperties: false
214
+ description: "Create a Cursor cloud-agent trigger. Both keys are required up front (never tokenless). Idempotent by `config.repoUrl`."
215
+ CreateCopilotTriggerRequest:
216
+ type: object
217
+ properties:
218
+ provider:
219
+ type: string
220
+ enum:
221
+ - copilot_trigger
222
+ description: Discriminator. GitHub Copilot coding-agent trigger.
223
+ name:
224
+ type: string
225
+ minLength: 1
226
+ maxLength: 80
227
+ default: Copilot trigger
228
+ description: Human-readable connector label.
229
+ events:
230
+ type: array
231
+ default: []
232
+ items:
233
+ $ref: "#/ConnectorEvent"
234
+ description: Events that auto-fire a Copilot agent task. Defaults to empty.
235
+ config:
236
+ $ref: "#/CopilotTriggerConfig"
237
+ token:
238
+ type: string
239
+ minLength: 1
240
+ description: "Copilot-licensed user PAT (secret). The ops key lives in the repo's GitHub \"Agents\" secret store and is never sent through Shipeasy. Encrypted; never returned."
241
+ enabled:
242
+ type: boolean
243
+ default: true
244
+ description: Whether the trigger is active on create.
245
+ required:
246
+ - provider
247
+ - config
248
+ - token
249
+ additionalProperties: false
250
+ description: "Create a GitHub Copilot coding-agent trigger. Idempotent by `config.owner/config.repo`."
251
+ CreateJulesTriggerRequest:
252
+ type: object
253
+ properties:
254
+ provider:
255
+ type: string
256
+ enum:
257
+ - jules_trigger
258
+ description: Discriminator. Google Jules trigger.
259
+ name:
260
+ type: string
261
+ minLength: 1
262
+ maxLength: 80
263
+ default: Jules trigger
264
+ description: Human-readable connector label.
265
+ events:
266
+ type: array
267
+ default: []
268
+ items:
269
+ $ref: "#/ConnectorEvent"
270
+ description: Events that auto-fire a Jules session. Defaults to empty.
271
+ config:
272
+ $ref: "#/JulesTriggerConfig"
273
+ apiKey:
274
+ type: string
275
+ minLength: 1
276
+ description: Jules API key that launches the session (secret). Encrypted into the credentials cipher; never returned.
277
+ opsKey:
278
+ type: string
279
+ minLength: 1
280
+ description: Restricted Shipeasy ops key, embedded in the prompt (Jules exposes no env channel) (secret). Encrypted; never returned.
281
+ enabled:
282
+ type: boolean
283
+ default: true
284
+ description: Whether the trigger is active on create.
285
+ required:
286
+ - provider
287
+ - config
288
+ - apiKey
289
+ - opsKey
290
+ additionalProperties: false
291
+ description: "Create a Google Jules trigger. Both keys are required up front. Idempotent by `config.source`."
292
+ ClaudeTriggerConfig:
293
+ type: object
294
+ properties:
295
+ routineId:
296
+ type: string
297
+ minLength: 1
298
+ description: The Claude Code routine id this connector fires (the id recorded at setup). Idempotency key for the connector.
299
+ fireText:
300
+ type: string
301
+ minLength: 1
302
+ description: Optional default prompt sent on a manual fire / when no event text applies.
303
+ required:
304
+ - routineId
305
+ additionalProperties: false
306
+ description: Non-secret config for a Claude trigger.
307
+ CursorTriggerConfig:
308
+ type: object
309
+ properties:
310
+ repoUrl:
311
+ type: string
312
+ format: uri
313
+ description: Repo the cloud agent runs against, e.g. `https://github.com/owner/repo`. Idempotency key for the connector.
314
+ startingRef:
315
+ type: string
316
+ minLength: 1
317
+ description: Optional git ref the run starts from.
318
+ projectId:
319
+ type: string
320
+ minLength: 1
321
+ description: Shipeasy project id the run targets.
322
+ required:
323
+ - repoUrl
324
+ - projectId
325
+ additionalProperties: false
326
+ description: Non-secret config for a Cursor trigger.
327
+ CopilotTriggerConfig:
328
+ type: object
329
+ properties:
330
+ owner:
331
+ type: string
332
+ minLength: 1
333
+ description: GitHub repo owner. Together with `repo` forms the connector's idempotency key (`owner/repo`).
334
+ repo:
335
+ type: string
336
+ minLength: 1
337
+ description: GitHub repo name.
338
+ baseRef:
339
+ type: string
340
+ minLength: 1
341
+ description: Optional base ref the agent branches from.
342
+ projectId:
343
+ type: string
344
+ minLength: 1
345
+ description: Shipeasy project id the run targets.
346
+ required:
347
+ - owner
348
+ - repo
349
+ - projectId
350
+ additionalProperties: false
351
+ description: Non-secret config for a Copilot trigger.
352
+ JulesTriggerConfig:
353
+ type: object
354
+ properties:
355
+ source:
356
+ type: string
357
+ minLength: 1
358
+ description: Jules source for the connected repo, e.g. `sources/github/owner/repo`. Idempotency key for the connector.
359
+ startingBranch:
360
+ type: string
361
+ minLength: 1
362
+ description: Optional branch the session starts from.
363
+ projectId:
364
+ type: string
365
+ minLength: 1
366
+ description: Shipeasy project id the run targets.
367
+ required:
368
+ - source
369
+ - projectId
370
+ additionalProperties: false
371
+ description: Non-secret config for a Jules trigger.
372
+ CreateTriggerConnectorRequest:
373
+ oneOf:
374
+ - $ref: "#/CreateClaudeTriggerRequest"
375
+ - $ref: "#/CreateCursorTriggerRequest"
376
+ - $ref: "#/CreateCopilotTriggerRequest"
377
+ - $ref: "#/CreateJulesTriggerRequest"
378
+ discriminator:
379
+ propertyName: provider
380
+ mapping:
381
+ claude_trigger: "#/CreateClaudeTriggerRequest"
382
+ cursor_trigger: "#/CreateCursorTriggerRequest"
383
+ copilot_trigger: "#/CreateCopilotTriggerRequest"
384
+ jules_trigger: "#/CreateJulesTriggerRequest"
385
+ description: "Body for `POST /api/admin/connectors/trigger`, discriminated on `provider` — the trigger-provider subset of `CreateConnectorRequest` (no OAuth stubs). Config + credentials arrive together and the connector is usable immediately; creates are idempotent by each provider's natural key (`config.routineId` / `config.repoUrl` / `config.owner`+`config.repo` / `config.source`)."
386
+ UpdateTriggerConnectorRequest:
387
+ oneOf:
388
+ - $ref: "#/UpdateClaudeTriggerRequest"
389
+ - $ref: "#/UpdateCursorTriggerRequest"
390
+ - $ref: "#/UpdateCopilotTriggerRequest"
391
+ - $ref: "#/UpdateJulesTriggerRequest"
392
+ discriminator:
393
+ propertyName: provider
394
+ mapping:
395
+ claude_trigger: "#/UpdateClaudeTriggerRequest"
396
+ cursor_trigger: "#/UpdateCursorTriggerRequest"
397
+ copilot_trigger: "#/UpdateCopilotTriggerRequest"
398
+ jules_trigger: "#/UpdateJulesTriggerRequest"
399
+ description: "Body for `PATCH /api/admin/connectors/{id}/trigger`, discriminated on `provider`. Edits an existing trigger connector: the non-secret `config` is always supplied and replaces the stored config wholesale; `name` and the credential secret(s) are optional (a supplied secret rotates just that key, a blank/omitted one leaves the stored cipher untouched)."
400
+ UpdateClaudeTriggerRequest:
401
+ type: object
402
+ properties:
403
+ provider:
404
+ type: string
405
+ enum:
406
+ - claude_trigger
407
+ description: Discriminator. Claude Code scheduled-routine trigger.
408
+ name:
409
+ type: string
410
+ minLength: 1
411
+ maxLength: 80
412
+ description: New connector label. Optional — omit to leave it unchanged.
413
+ config:
414
+ $ref: "#/ClaudeTriggerConfig"
415
+ token:
416
+ type: string
417
+ minLength: 1
418
+ description: "New fire bearer token (secret). Optional — a blank/omitted token leaves the stored cipher untouched; a supplied one replaces it. Encrypted; never returned."
419
+ required:
420
+ - provider
421
+ - config
422
+ additionalProperties: false
423
+ description: "Per-provider PATCH body for editing an existing `claude_trigger` connector (the dashboard \"Triggers\" tab). The non-secret `config` is always supplied and replaces the stored config wholesale; `name` and `token` are optional."
424
+ UpdateCursorTriggerRequest:
425
+ type: object
426
+ properties:
427
+ provider:
428
+ type: string
429
+ enum:
430
+ - cursor_trigger
431
+ description: Discriminator. Cursor cloud-agent trigger.
432
+ name:
433
+ type: string
434
+ minLength: 1
435
+ maxLength: 80
436
+ description: New connector label. Optional — omit to leave it unchanged.
437
+ config:
438
+ $ref: "#/CursorTriggerConfig"
439
+ apiKey:
440
+ type: string
441
+ minLength: 1
442
+ description: "New Cursor launch key (secret). Optional — omit to leave the stored key untouched. Rotatable independently of `opsKey`. Encrypted; never returned."
443
+ opsKey:
444
+ type: string
445
+ minLength: 1
446
+ description: "New restricted Shipeasy ops key (secret). Optional — omit to leave the stored key untouched. Rotatable independently of `apiKey`. Encrypted; never returned."
447
+ required:
448
+ - provider
449
+ - config
450
+ additionalProperties: false
451
+ description: "Per-provider PATCH body for editing an existing `cursor_trigger` connector. `config` replaces the stored config wholesale; `name` and either credential are optional (a supplied credential rotates just that key)."
452
+ UpdateCopilotTriggerRequest:
453
+ type: object
454
+ properties:
455
+ provider:
456
+ type: string
457
+ enum:
458
+ - copilot_trigger
459
+ description: Discriminator. GitHub Copilot coding-agent trigger.
460
+ name:
461
+ type: string
462
+ minLength: 1
463
+ maxLength: 80
464
+ description: New connector label. Optional — omit to leave it unchanged.
465
+ config:
466
+ $ref: "#/CopilotTriggerConfig"
467
+ token:
468
+ type: string
469
+ minLength: 1
470
+ description: "New Copilot-licensed user PAT (secret). Optional — omit to leave the stored cipher untouched. Encrypted; never returned."
471
+ required:
472
+ - provider
473
+ - config
474
+ additionalProperties: false
475
+ description: "Per-provider PATCH body for editing an existing `copilot_trigger` connector. `config` replaces the stored config wholesale; `name` and `token` are optional."
476
+ UpdateJulesTriggerRequest:
477
+ type: object
478
+ properties:
479
+ provider:
480
+ type: string
481
+ enum:
482
+ - jules_trigger
483
+ description: Discriminator. Google Jules trigger.
484
+ name:
485
+ type: string
486
+ minLength: 1
487
+ maxLength: 80
488
+ description: New connector label. Optional — omit to leave it unchanged.
489
+ config:
490
+ $ref: "#/JulesTriggerConfig"
491
+ apiKey:
492
+ type: string
493
+ minLength: 1
494
+ description: "New Jules launch key (secret). Optional — omit to leave the stored key untouched. Rotatable independently of `opsKey`. Encrypted; never returned."
495
+ opsKey:
496
+ type: string
497
+ minLength: 1
498
+ description: "New restricted Shipeasy ops key (secret). Optional — omit to leave the stored key untouched. Rotatable independently of `apiKey`. Encrypted; never returned."
499
+ required:
500
+ - provider
501
+ - config
502
+ additionalProperties: false
503
+ description: "Per-provider PATCH body for editing an existing `jules_trigger` connector. `config` replaces the stored config wholesale; `name` and either credential are optional."
504
+ CreateConnectorResponse:
505
+ type: object
506
+ properties:
507
+ id:
508
+ type: string
509
+ description: Newly assigned connector id.
510
+ required:
511
+ - id
512
+ additionalProperties: false
513
+ UpdateConnectorRequest:
514
+ type: object
515
+ properties:
516
+ name:
517
+ type: string
518
+ minLength: 1
519
+ maxLength: 80
520
+ description: New connector label.
521
+ enabled:
522
+ type: boolean
523
+ description: Toggle the connector on/off.
524
+ events:
525
+ type: array
526
+ items:
527
+ $ref: "#/ConnectorEvent"
528
+ description: "Replaces the subscribed-events list wholesale. An empty array unsubscribes the connector from every event (e.g. turning off a trigger's auto-fire)."
529
+ config:
530
+ type: object
531
+ additionalProperties: true
532
+ description: "Replaces the non-secret config wholesale. Secrets are never set through this endpoint."
533
+ additionalProperties: false
534
+ description: "Body for `PATCH /api/admin/connectors/{id}`. Partial — only supplied fields change. Array/object fields (`events`, `config`) replace, not merge."
535
+ UpdateConnectorResponse:
536
+ type: object
537
+ properties:
538
+ id:
539
+ type: string
540
+ description: Connector id that was updated.
541
+ required:
542
+ - id
543
+ additionalProperties: false
544
+ description: Update returns only the id — re-fetch via `GET /api/admin/connectors/{id}` for the full row.
545
+ DeleteConnectorResponse:
546
+ type: object
547
+ properties:
548
+ ok:
549
+ type: boolean
550
+ const: true
551
+ required:
552
+ - ok
553
+ additionalProperties: false
554
+ FireConnectorRequest:
555
+ type: object
556
+ properties:
557
+ text:
558
+ type: string
559
+ description: "Optional prompt override for the run. When omitted, each provider falls back to its own default (Claude → the configured `fireText`; the others → their built cold-start prompt)."
560
+ additionalProperties: false
561
+ description: "Body for `POST /api/admin/connectors/{id}/fire`. Entirely optional — an empty body kicks the run with the provider default."
562
+ FireConnectorResponse:
563
+ type: object
564
+ properties:
565
+ ok:
566
+ type: boolean
567
+ description: "`true` when the trigger run was successfully kicked off; `false` when the dispatch itself failed (still HTTP 200, with `error` set)."
568
+ error:
569
+ type: string
570
+ description: "Failure reason. Present only when `ok` is `false` — the fire reached the handler but the underlying dispatch to the provider failed."
571
+ required:
572
+ - ok
573
+ additionalProperties: false
574
+ description: "Result of firing a trigger connector. `{ ok: true }` on success; `{ ok: false, error }` when the dispatch fails (the request still returns HTTP 200)."
575
+ TestConnectorResponse:
576
+ type: object
577
+ properties:
578
+ ok:
579
+ type: boolean
580
+ description: "`true` when the test dispatch reached the destination; `false` when the dispatch itself failed (still HTTP 200, with `error` set)."
581
+ issueUrl:
582
+ anyOf:
583
+ - type: string
584
+ - type: "null"
585
+ description: "URL of the artifact the test produced (e.g. the GitHub Issue created by a `github` connector), or `null` when the provider produces no linkable artifact (or the dispatch failed)."
586
+ error:
587
+ type: string
588
+ description: "Failure reason. Present only when `ok` is `false` — the test reached the handler but the underlying dispatch to the provider failed."
589
+ required:
590
+ - ok
591
+ - issueUrl
592
+ additionalProperties: false
593
+ description: "Result of testing a connector. `{ ok: true, issueUrl }` on success; `{ ok: false, issueUrl: null, error }` when the dispatch fails (the request still returns HTTP 200)."