@shipeasy/openapi 2.1.0 → 2.2.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.
- package/dist/{chunk-EPLLHLZN.js → chunk-643YSMLU.js} +1 -1
- package/dist/{chunk-EPLLHLZN.js.map → chunk-643YSMLU.js.map} +1 -1
- package/dist/{chunk-SPH5HWCD.js → chunk-MRW3DJ57.js} +147 -88
- package/dist/chunk-MRW3DJ57.js.map +1 -0
- package/dist/{client-pVkoo3Bf.d.ts → client-K0ShmsC7.d.ts} +196 -98
- package/dist/client.d.ts +1 -1
- package/dist/client.js +1 -1
- package/dist/custom.d.ts +23 -1
- package/dist/custom.js +8 -0
- package/dist/custom.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/schemas.d.ts +85 -32
- package/dist/schemas.js +17 -1
- package/openapi.json +533 -96
- package/openapi.yaml +390 -92
- package/package.json +1 -1
- package/spec/components/parameters.yaml +8 -0
- package/spec/components/responses.yaml +15 -0
- package/spec/components/schemas/common.yaml +5 -0
- package/spec/components/schemas/connectors.yaml +5 -11
- package/spec/components/schemas/gate-templates.yaml +41 -2
- package/spec/components/schemas/ops.yaml +4 -2
- package/spec/openapi.yaml +21 -2
- package/spec/paths/alert-rules.yaml +10 -2
- package/spec/paths/attributes.yaml +14 -3
- package/spec/paths/configs.yaml +23 -9
- package/spec/paths/connectors.yaml +42 -8
- package/spec/paths/errors.yaml +4 -4
- package/spec/paths/events.yaml +18 -4
- package/spec/paths/experiments.yaml +37 -11
- package/spec/paths/gate-templates.yaml +9 -5
- package/spec/paths/gates.yaml +20 -6
- package/spec/paths/i18n.yaml +18 -5
- package/spec/paths/keys.yaml +2 -1
- package/spec/paths/killswitches.yaml +23 -6
- package/spec/paths/metrics.yaml +14 -3
- package/spec/paths/ops.yaml +3 -3
- package/spec/paths/projects.yaml +1 -1
- package/spec/paths/universes.yaml +10 -2
- package/dist/chunk-SPH5HWCD.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@shipeasy/openapi",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.2.0",
|
|
4
4
|
"description": "Shipeasy admin OpenAPI 3.2 spec (hand-authored, single source of truth) + the generated TypeScript client, Zod schemas, and types. Consumed by @shipeasy/cli and @shipeasy/mcp.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.js",
|
|
@@ -22,3 +22,11 @@ PaginationCursor:
|
|
|
22
22
|
description: Opaque cursor returned in the previous page's `next_cursor`. Omit for the first page.
|
|
23
23
|
schema:
|
|
24
24
|
type: string
|
|
25
|
+
Q:
|
|
26
|
+
name: q
|
|
27
|
+
in: query
|
|
28
|
+
required: false
|
|
29
|
+
description: Case-insensitive substring filter across the resource's human-readable text columns (e.g. `name`, `title`, `description`). OR-matched across those columns; omit to return everything.
|
|
30
|
+
schema:
|
|
31
|
+
type: string
|
|
32
|
+
maxLength: 100
|
|
@@ -105,3 +105,18 @@ UnprocessableEntity:
|
|
|
105
105
|
value:
|
|
106
106
|
error: The referenced event is still pending review and cannot back a metric yet.
|
|
107
107
|
code: EVENT_PENDING
|
|
108
|
+
BadGateway:
|
|
109
|
+
description: |-
|
|
110
|
+
The request was well-formed and the resource exists, but a downstream provider
|
|
111
|
+
the endpoint delegates to (e.g. a connector's Slack/GitHub/cloud-agent dispatch)
|
|
112
|
+
failed. The failure is upstream of this API, not a client error. No stable
|
|
113
|
+
`ErrorCode` is assigned to upstream failures, so `code` is omitted.
|
|
114
|
+
content:
|
|
115
|
+
application/json:
|
|
116
|
+
schema:
|
|
117
|
+
$ref: ./errors.yaml#/Error
|
|
118
|
+
examples:
|
|
119
|
+
UPSTREAM_FAILURE:
|
|
120
|
+
summary: Downstream provider dispatch failed
|
|
121
|
+
value:
|
|
122
|
+
error: "GitHub API responded 403: resource not accessible by integration."
|
|
@@ -1,4 +1,9 @@
|
|
|
1
1
|
# Cross-cutting shared schemas referenced from multiple resources.
|
|
2
|
+
ResourceId:
|
|
3
|
+
type: string
|
|
4
|
+
minLength: 1
|
|
5
|
+
maxLength: 128
|
|
6
|
+
description: A resource path identifier — an opaque `xxx_<ULID>` id (~30 chars) or the resource's `name`/`key`. 1–128 characters; the upper bound matches the longest name/key any resource accepts, so an over-long value can never name a real row.
|
|
2
7
|
Env:
|
|
3
8
|
type: string
|
|
4
9
|
enum:
|
|
@@ -564,30 +564,24 @@ FireConnectorResponse:
|
|
|
564
564
|
properties:
|
|
565
565
|
ok:
|
|
566
566
|
type: boolean
|
|
567
|
-
description: "`true`
|
|
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."
|
|
567
|
+
description: "Always `true` — a successful fire returns HTTP 200. A dispatch failure returns HTTP 502 with the `Error` envelope, not this body."
|
|
571
568
|
required:
|
|
572
569
|
- ok
|
|
573
570
|
additionalProperties: false
|
|
574
|
-
description: "Result of
|
|
571
|
+
description: "Result of a successful trigger fire: `{ ok: true }`. When the downstream dispatch fails the endpoint returns HTTP 502 (see the `Error` response), never `ok: false`."
|
|
575
572
|
TestConnectorResponse:
|
|
576
573
|
type: object
|
|
577
574
|
properties:
|
|
578
575
|
ok:
|
|
579
576
|
type: boolean
|
|
580
|
-
description: "`true`
|
|
577
|
+
description: "Always `true` — a successful test returns HTTP 200. A dispatch failure returns HTTP 502 with the `Error` envelope, not this body."
|
|
581
578
|
issueUrl:
|
|
582
579
|
anyOf:
|
|
583
580
|
- type: string
|
|
584
581
|
- 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
|
|
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."
|
|
582
|
+
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."
|
|
589
583
|
required:
|
|
590
584
|
- ok
|
|
591
585
|
- issueUrl
|
|
592
586
|
additionalProperties: false
|
|
593
|
-
description: "Result of
|
|
587
|
+
description: "Result of a successful connector test: `{ ok: true, issueUrl }`. When the downstream dispatch fails the endpoint returns HTTP 502 (see the `Error` response), never `ok: false`."
|
|
@@ -25,13 +25,52 @@ GateTemplateRule:
|
|
|
25
25
|
- exp_in
|
|
26
26
|
description: "Comparison operator. Equality: `eq`/`neq`. Set membership: `in`/`not_in` (value is an array). Numeric order: `gt`/`gte`/`lt`/`lte`. Semver order: `semver_gt`/`semver_gte`/`semver_lt`/`semver_lte`. String: `contains` (substring), `regex` (JS-flavour pattern). Cross-resource: `gate_pass` (value is another gate's name), `exp_in` (attr is an experiment name, value is a variant / `\"$holdout\"` / `\"$any\"`)."
|
|
27
27
|
value:
|
|
28
|
-
description: 'Operand. Shape depends on `op`: scalar for `eq/neq/gt/gte/lt/lte/contains/semver_*`; array of scalars for `in/not_in`; string pattern for `regex`; referenced gate name for `gate_pass`; variant selector for `exp_in`.'
|
|
28
|
+
description: 'Operand. Shape depends on `op`: scalar for `eq/neq/gt/gte/lt/lte/contains/semver_*`; array of scalars for `in/not_in`; string pattern for `regex`; referenced gate name for `gate_pass`; variant selector for `exp_in`. Required on every request rule (value-ops need it; the valueless built-in presets are read-only and never created via the API).'
|
|
29
|
+
anyOf:
|
|
30
|
+
- type: string
|
|
31
|
+
- type: number
|
|
32
|
+
- type: boolean
|
|
33
|
+
- type: array
|
|
34
|
+
items: {}
|
|
29
35
|
required:
|
|
30
36
|
- attr
|
|
31
37
|
- op
|
|
32
38
|
- value
|
|
33
39
|
additionalProperties: false
|
|
34
40
|
description: Single targeting predicate. Copy a template's rules, substitute the concrete `value`(s), and pass them as the `rules` arg of `release_flags_create`.
|
|
41
|
+
GateTemplateRuleResponse:
|
|
42
|
+
type: object
|
|
43
|
+
properties:
|
|
44
|
+
attr:
|
|
45
|
+
type: string
|
|
46
|
+
description: Attribute key on the evaluation context (e.g. `country`, `plan`, `email`). Matched case-sensitively against `Shipeasy.checkGate(user, name)` input. May be empty on a built-in template whose attribute is supplied at substitution time (e.g. the `exp_in` "in any experiment" preset — you fill in the experiment name).
|
|
47
|
+
op:
|
|
48
|
+
type: string
|
|
49
|
+
enum:
|
|
50
|
+
- eq
|
|
51
|
+
- neq
|
|
52
|
+
- in
|
|
53
|
+
- not_in
|
|
54
|
+
- gt
|
|
55
|
+
- gte
|
|
56
|
+
- lt
|
|
57
|
+
- lte
|
|
58
|
+
- contains
|
|
59
|
+
- regex
|
|
60
|
+
- semver_gt
|
|
61
|
+
- semver_gte
|
|
62
|
+
- semver_lt
|
|
63
|
+
- semver_lte
|
|
64
|
+
- gate_pass
|
|
65
|
+
- exp_in
|
|
66
|
+
description: "Comparison operator. Equality: `eq`/`neq`. Set membership: `in`/`not_in` (value is an array). Numeric order: `gt`/`gte`/`lt`/`lte`. Semver order: `semver_gt`/`semver_gte`/`semver_lt`/`semver_lte`. String: `contains` (substring), `regex` (JS-flavour pattern). Cross-resource: `gate_pass` (value is another gate's name), `exp_in` (attr is an experiment name, value is a variant / `\"$holdout\"` / `\"$any\"`)."
|
|
67
|
+
value:
|
|
68
|
+
description: 'Operand. Shape depends on `op`: scalar for `eq/neq/gt/gte/lt/lte/contains/semver_*`; array of scalars for `in/not_in`; string pattern for `regex`; referenced gate name for `gate_pass`; variant selector for `exp_in`.'
|
|
69
|
+
required:
|
|
70
|
+
- attr
|
|
71
|
+
- op
|
|
72
|
+
additionalProperties: false
|
|
73
|
+
description: Single targeting predicate as returned by the API. `value` is optional here — read-only built-in templates (e.g. `@owner`, or presets whose operand is supplied at substitution time) legitimately omit it. Request bodies still require `value`.
|
|
35
74
|
GateTemplate:
|
|
36
75
|
type: object
|
|
37
76
|
description: "A reusable targeting-rule template. Built-ins are read-only (`builtin: true`, stable slug `id`); per-project customer templates are `builtin: false` with a `gtpl_…` id."
|
|
@@ -65,7 +104,7 @@ GateTemplate:
|
|
|
65
104
|
rules:
|
|
66
105
|
type: array
|
|
67
106
|
items:
|
|
68
|
-
$ref: "#/
|
|
107
|
+
$ref: "#/GateTemplateRuleResponse"
|
|
69
108
|
description: The rule definition — copy, substitute the value(s), pass as `rules`.
|
|
70
109
|
createdAt:
|
|
71
110
|
anyOf:
|
|
@@ -946,8 +946,10 @@ NotifyOpsRequest:
|
|
|
946
946
|
items:
|
|
947
947
|
type: string
|
|
948
948
|
href:
|
|
949
|
-
description: Dashboard-relative deep link to the related item.
|
|
950
|
-
|
|
949
|
+
description: Dashboard-relative deep link to the related item. `null` is accepted and treated as "no link".
|
|
950
|
+
anyOf:
|
|
951
|
+
- type: string
|
|
952
|
+
- type: "null"
|
|
951
953
|
dedupeKey:
|
|
952
954
|
description: Stable per-escalation key (e.g. `feedback:7`) so re-runs dedupe to one row.
|
|
953
955
|
type: string
|
package/spec/openapi.yaml
CHANGED
|
@@ -21,9 +21,28 @@ security:
|
|
|
21
21
|
- bearerSdkKey: []
|
|
22
22
|
tags:
|
|
23
23
|
- name: Release
|
|
24
|
-
summary:
|
|
24
|
+
summary: >-
|
|
25
|
+
Feature delivery — flags, kill switches, dynamic configs, A/B experiments,
|
|
26
|
+
and the universes they bucket in.
|
|
25
27
|
kind: nav
|
|
26
|
-
description:
|
|
28
|
+
description: |-
|
|
29
|
+
Release: the feature-delivery surface. One roof over the five resources
|
|
30
|
+
that decide which code path a user gets — feature gates (flags), kill
|
|
31
|
+
switches, dynamic configs, A/B/n experiments, and the universes that bucket
|
|
32
|
+
them — each exposed as its own subcommand group.
|
|
33
|
+
|
|
34
|
+
**Groups.**
|
|
35
|
+
- `flags` — boolean feature gates: AND-combined targeting rules + a percentage rollout (basis points), evaluated on the SDK hot path.
|
|
36
|
+
- `killswitch` (`ks`) — per-env boolean overrides for incident response; no rules, no rollout, versioned per environment.
|
|
37
|
+
- `configs` — JSON-Schema-validated structured values with a draft → publish workflow, delivered per environment.
|
|
38
|
+
- `experiments` — randomised A/B/n assignment plus the analysis pipeline (t-test, sequential testing, SRM detection); `universes` hold the shared bucketing space and holdouts the experiments draw from.
|
|
39
|
+
|
|
40
|
+
**Delivery model.** Every write rebuilds the project's KV blob and purges
|
|
41
|
+
the CDN — SDKs poll at the plan interval and never touch the database on
|
|
42
|
+
the hot path. The destructive verb is `archive` (soft-delete), never
|
|
43
|
+
`delete`.
|
|
44
|
+
|
|
45
|
+
Run `shipeasy release <group> --help` for the full contract of each group.
|
|
27
46
|
- name: Flags
|
|
28
47
|
parent: Release
|
|
29
48
|
description: |-
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
- Alerts
|
|
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 alert rules
|
|
@@ -103,6 +104,13 @@
|
|
|
103
104
|
$ref: ../components/schemas/alert-rules.yaml#/CreateAlertRuleResponse
|
|
104
105
|
example:
|
|
105
106
|
id: ar_01j7w8a1b2c3d4e5f6g7h8i9j0
|
|
107
|
+
links:
|
|
108
|
+
UpdateAlertRule:
|
|
109
|
+
operationId: updateAlertRule
|
|
110
|
+
parameters: { id: $response.body#/id }
|
|
111
|
+
DeleteAlertRule:
|
|
112
|
+
operationId: deleteAlertRule
|
|
113
|
+
parameters: { id: $response.body#/id }
|
|
106
114
|
"400":
|
|
107
115
|
$ref: ../components/responses.yaml#/BadRequest
|
|
108
116
|
"401":
|
|
@@ -146,7 +154,7 @@
|
|
|
146
154
|
required: true
|
|
147
155
|
description: Stable opaque alert-rule id (`ar_…`) or the rule's `name`.
|
|
148
156
|
schema:
|
|
149
|
-
|
|
157
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
150
158
|
requestBody:
|
|
151
159
|
required: true
|
|
152
160
|
content:
|
|
@@ -217,7 +225,7 @@
|
|
|
217
225
|
required: true
|
|
218
226
|
description: Stable opaque alert-rule id (`ar_…`) or the rule's `name`.
|
|
219
227
|
schema:
|
|
220
|
-
|
|
228
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
221
229
|
responses:
|
|
222
230
|
"200":
|
|
223
231
|
description: Delete an alert rule
|
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
- Attributes
|
|
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 targeting attributes
|
|
@@ -76,6 +77,16 @@
|
|
|
76
77
|
example:
|
|
77
78
|
id: attr_01j7w8a1b2c3
|
|
78
79
|
name: plan
|
|
80
|
+
links:
|
|
81
|
+
GetAttribute:
|
|
82
|
+
operationId: getAttribute
|
|
83
|
+
parameters: { id: $response.body#/id }
|
|
84
|
+
UpdateAttribute:
|
|
85
|
+
operationId: updateAttribute
|
|
86
|
+
parameters: { id: $response.body#/id }
|
|
87
|
+
DeleteAttribute:
|
|
88
|
+
operationId: deleteAttribute
|
|
89
|
+
parameters: { id: $response.body#/id }
|
|
79
90
|
"400":
|
|
80
91
|
$ref: ../components/responses.yaml#/BadRequest
|
|
81
92
|
"401":
|
|
@@ -115,7 +126,7 @@
|
|
|
115
126
|
required: true
|
|
116
127
|
description: The attribute id.
|
|
117
128
|
schema:
|
|
118
|
-
|
|
129
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
119
130
|
responses:
|
|
120
131
|
"200":
|
|
121
132
|
description: Get a targeting attribute
|
|
@@ -169,7 +180,7 @@
|
|
|
169
180
|
required: true
|
|
170
181
|
description: The attribute id.
|
|
171
182
|
schema:
|
|
172
|
-
|
|
183
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
173
184
|
requestBody:
|
|
174
185
|
required: true
|
|
175
186
|
content:
|
|
@@ -228,7 +239,7 @@
|
|
|
228
239
|
required: true
|
|
229
240
|
description: The attribute id.
|
|
230
241
|
schema:
|
|
231
|
-
|
|
242
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
232
243
|
responses:
|
|
233
244
|
"200":
|
|
234
245
|
description: Archive a targeting attribute
|
package/spec/paths/configs.yaml
CHANGED
|
@@ -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 dynamic configs
|
|
@@ -160,6 +161,19 @@
|
|
|
160
161
|
example:
|
|
161
162
|
id: cfg_01j7wae5h6j7k8l9m0n1p2q3r4
|
|
162
163
|
name: pricing.tiers
|
|
164
|
+
links:
|
|
165
|
+
GetConfig:
|
|
166
|
+
operationId: getConfig
|
|
167
|
+
parameters: { id: $response.body#/id }
|
|
168
|
+
UpdateConfig:
|
|
169
|
+
operationId: updateConfig
|
|
170
|
+
parameters: { id: $response.body#/id }
|
|
171
|
+
PublishConfigDraft:
|
|
172
|
+
operationId: publishConfigDraft
|
|
173
|
+
parameters: { id: $response.body#/id }
|
|
174
|
+
DeleteConfig:
|
|
175
|
+
operationId: deleteConfig
|
|
176
|
+
parameters: { id: $response.body#/id }
|
|
163
177
|
"400":
|
|
164
178
|
$ref: ../components/responses.yaml#/BadRequest
|
|
165
179
|
"401":
|
|
@@ -199,7 +213,7 @@
|
|
|
199
213
|
required: true
|
|
200
214
|
description: Stable opaque config id (`cfg_…`) or the config's `name`.
|
|
201
215
|
schema:
|
|
202
|
-
|
|
216
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
203
217
|
responses:
|
|
204
218
|
"200":
|
|
205
219
|
description: Get one config
|
|
@@ -301,7 +315,7 @@
|
|
|
301
315
|
required: true
|
|
302
316
|
description: Stable opaque config id (`cfg_…`) or the config's `name`.
|
|
303
317
|
schema:
|
|
304
|
-
|
|
318
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
305
319
|
requestBody:
|
|
306
320
|
required: true
|
|
307
321
|
content:
|
|
@@ -377,7 +391,7 @@
|
|
|
377
391
|
required: true
|
|
378
392
|
description: Stable opaque config id (`cfg_…`) or the config's `name`.
|
|
379
393
|
schema:
|
|
380
|
-
|
|
394
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
381
395
|
responses:
|
|
382
396
|
"200":
|
|
383
397
|
description: Delete a dynamic config
|
|
@@ -427,7 +441,7 @@
|
|
|
427
441
|
required: true
|
|
428
442
|
description: Stable opaque config id (`cfg_…`) or the config's `name`.
|
|
429
443
|
schema:
|
|
430
|
-
|
|
444
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
431
445
|
requestBody:
|
|
432
446
|
required: true
|
|
433
447
|
content:
|
|
@@ -495,7 +509,7 @@
|
|
|
495
509
|
required: true
|
|
496
510
|
description: Stable opaque config id (`cfg_…`) or the config's `name`.
|
|
497
511
|
schema:
|
|
498
|
-
|
|
512
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
499
513
|
requestBody:
|
|
500
514
|
required: true
|
|
501
515
|
content:
|
|
@@ -557,7 +571,7 @@
|
|
|
557
571
|
required: true
|
|
558
572
|
description: Stable opaque config id (`cfg_…`) or the config's `name`.
|
|
559
573
|
schema:
|
|
560
|
-
|
|
574
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
561
575
|
requestBody:
|
|
562
576
|
required: true
|
|
563
577
|
content:
|
|
@@ -576,7 +590,7 @@
|
|
|
576
590
|
value:
|
|
577
591
|
env: prod
|
|
578
592
|
responses:
|
|
579
|
-
"
|
|
593
|
+
"200":
|
|
580
594
|
description: Publish a draft
|
|
581
595
|
content:
|
|
582
596
|
application/json:
|
|
@@ -626,7 +640,7 @@
|
|
|
626
640
|
required: true
|
|
627
641
|
description: Stable opaque config id (`cfg_…`) or the config's `name`.
|
|
628
642
|
schema:
|
|
629
|
-
|
|
643
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
630
644
|
- name: limit
|
|
631
645
|
in: query
|
|
632
646
|
required: false
|
|
@@ -690,7 +704,7 @@
|
|
|
690
704
|
required: true
|
|
691
705
|
description: Stable opaque config id (`cfg_…`) or the config's `name`.
|
|
692
706
|
schema:
|
|
693
|
-
|
|
707
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
694
708
|
requestBody:
|
|
695
709
|
required: true
|
|
696
710
|
content:
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
- Connectors
|
|
13
13
|
parameters:
|
|
14
14
|
- $ref: ../components/parameters.yaml#/ProjectId
|
|
15
|
+
- $ref: ../components/parameters.yaml#/Q
|
|
15
16
|
responses:
|
|
16
17
|
"200":
|
|
17
18
|
description: List connectors
|
|
@@ -130,6 +131,19 @@
|
|
|
130
131
|
$ref: ../components/schemas/connectors.yaml#/CreateConnectorResponse
|
|
131
132
|
example:
|
|
132
133
|
id: 9b0e7c2a-1f3d-4a8e-bf21-0c6a2e5d7f10
|
|
134
|
+
links:
|
|
135
|
+
GetConnector:
|
|
136
|
+
operationId: getConnector
|
|
137
|
+
parameters: { id: $response.body#/id }
|
|
138
|
+
UpdateConnector:
|
|
139
|
+
operationId: updateConnector
|
|
140
|
+
parameters: { id: $response.body#/id }
|
|
141
|
+
TestConnector:
|
|
142
|
+
operationId: testConnector
|
|
143
|
+
parameters: { id: $response.body#/id }
|
|
144
|
+
DeleteConnector:
|
|
145
|
+
operationId: deleteConnector
|
|
146
|
+
parameters: { id: $response.body#/id }
|
|
133
147
|
"400":
|
|
134
148
|
$ref: ../components/responses.yaml#/BadRequest
|
|
135
149
|
"401":
|
|
@@ -165,7 +179,7 @@
|
|
|
165
179
|
required: true
|
|
166
180
|
description: Stable opaque connector id.
|
|
167
181
|
schema:
|
|
168
|
-
|
|
182
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
169
183
|
responses:
|
|
170
184
|
"200":
|
|
171
185
|
description: Get a connector
|
|
@@ -233,7 +247,7 @@
|
|
|
233
247
|
required: true
|
|
234
248
|
description: Stable opaque connector id.
|
|
235
249
|
schema:
|
|
236
|
-
|
|
250
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
237
251
|
requestBody:
|
|
238
252
|
required: true
|
|
239
253
|
content:
|
|
@@ -306,7 +320,7 @@
|
|
|
306
320
|
required: true
|
|
307
321
|
description: Stable opaque connector id.
|
|
308
322
|
schema:
|
|
309
|
-
|
|
323
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
310
324
|
responses:
|
|
311
325
|
"200":
|
|
312
326
|
description: Delete a connector
|
|
@@ -355,7 +369,7 @@
|
|
|
355
369
|
required: true
|
|
356
370
|
description: Stable opaque connector id.
|
|
357
371
|
schema:
|
|
358
|
-
|
|
372
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
359
373
|
requestBody:
|
|
360
374
|
required: false
|
|
361
375
|
content:
|
|
@@ -373,7 +387,7 @@
|
|
|
373
387
|
text: Triage only the P0 bugs reported in the last 24h.
|
|
374
388
|
responses:
|
|
375
389
|
"200":
|
|
376
|
-
description:
|
|
390
|
+
description: The trigger run was successfully kicked off.
|
|
377
391
|
content:
|
|
378
392
|
application/json:
|
|
379
393
|
schema:
|
|
@@ -392,6 +406,8 @@
|
|
|
392
406
|
$ref: ../components/responses.yaml#/Conflict
|
|
393
407
|
"422":
|
|
394
408
|
$ref: ../components/responses.yaml#/UnprocessableEntity
|
|
409
|
+
"502":
|
|
410
|
+
$ref: ../components/responses.yaml#/BadGateway
|
|
395
411
|
x-error-codes:
|
|
396
412
|
- UNAUTHORIZED
|
|
397
413
|
- FORBIDDEN
|
|
@@ -419,10 +435,10 @@
|
|
|
419
435
|
required: true
|
|
420
436
|
description: Stable opaque connector id.
|
|
421
437
|
schema:
|
|
422
|
-
|
|
438
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
423
439
|
responses:
|
|
424
440
|
"200":
|
|
425
|
-
description:
|
|
441
|
+
description: The test dispatch reached the destination.
|
|
426
442
|
content:
|
|
427
443
|
application/json:
|
|
428
444
|
schema:
|
|
@@ -442,6 +458,8 @@
|
|
|
442
458
|
$ref: ../components/responses.yaml#/Conflict
|
|
443
459
|
"422":
|
|
444
460
|
$ref: ../components/responses.yaml#/UnprocessableEntity
|
|
461
|
+
"502":
|
|
462
|
+
$ref: ../components/responses.yaml#/BadGateway
|
|
445
463
|
x-error-codes:
|
|
446
464
|
- UNAUTHORIZED
|
|
447
465
|
- FORBIDDEN
|
|
@@ -471,7 +489,7 @@
|
|
|
471
489
|
required: true
|
|
472
490
|
description: Stable opaque connector id. Its stored `provider` must match the body's `provider`.
|
|
473
491
|
schema:
|
|
474
|
-
|
|
492
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
475
493
|
requestBody:
|
|
476
494
|
required: true
|
|
477
495
|
content:
|
|
@@ -577,6 +595,22 @@
|
|
|
577
595
|
$ref: ../components/schemas/connectors.yaml#/CreateConnectorResponse
|
|
578
596
|
example:
|
|
579
597
|
id: 9b0e7c2a-1f3d-4a8e-bf21-0c6a2e5d7f10
|
|
598
|
+
links:
|
|
599
|
+
FireConnector:
|
|
600
|
+
operationId: fireConnector
|
|
601
|
+
parameters: { id: $response.body#/id }
|
|
602
|
+
TestConnector:
|
|
603
|
+
operationId: testConnector
|
|
604
|
+
parameters: { id: $response.body#/id }
|
|
605
|
+
GetConnector:
|
|
606
|
+
operationId: getConnector
|
|
607
|
+
parameters: { id: $response.body#/id }
|
|
608
|
+
UpdateTriggerConnector:
|
|
609
|
+
operationId: updateTriggerConnector
|
|
610
|
+
parameters: { id: $response.body#/id }
|
|
611
|
+
DeleteConnector:
|
|
612
|
+
operationId: deleteConnector
|
|
613
|
+
parameters: { id: $response.body#/id }
|
|
580
614
|
"400":
|
|
581
615
|
$ref: ../components/responses.yaml#/BadRequest
|
|
582
616
|
"401":
|
package/spec/paths/errors.yaml
CHANGED
|
@@ -108,7 +108,7 @@
|
|
|
108
108
|
required: true
|
|
109
109
|
description: Stable opaque error id (`err_…`).
|
|
110
110
|
schema:
|
|
111
|
-
|
|
111
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
112
112
|
responses:
|
|
113
113
|
"200":
|
|
114
114
|
description: Get a tracked error
|
|
@@ -183,7 +183,7 @@
|
|
|
183
183
|
required: true
|
|
184
184
|
description: Stable opaque error id (`err_…`).
|
|
185
185
|
schema:
|
|
186
|
-
|
|
186
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
187
187
|
requestBody:
|
|
188
188
|
required: true
|
|
189
189
|
content:
|
|
@@ -272,7 +272,7 @@
|
|
|
272
272
|
required: true
|
|
273
273
|
description: Stable opaque error id (`err_…`).
|
|
274
274
|
schema:
|
|
275
|
-
|
|
275
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
276
276
|
responses:
|
|
277
277
|
"201":
|
|
278
278
|
description: File a feedback ticket for an error
|
|
@@ -320,7 +320,7 @@
|
|
|
320
320
|
required: true
|
|
321
321
|
description: Stable opaque error id (`err_…`).
|
|
322
322
|
schema:
|
|
323
|
-
|
|
323
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
324
324
|
requestBody:
|
|
325
325
|
required: true
|
|
326
326
|
content:
|
package/spec/paths/events.yaml
CHANGED
|
@@ -10,6 +10,7 @@
|
|
|
10
10
|
- Events
|
|
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 events
|
|
@@ -95,6 +96,19 @@
|
|
|
95
96
|
example:
|
|
96
97
|
id: evt_01j7w8a1b2c3d4e5f6g7h8i9j0
|
|
97
98
|
name: checkout_completed
|
|
99
|
+
links:
|
|
100
|
+
GetEvent:
|
|
101
|
+
operationId: getEvent
|
|
102
|
+
parameters: { id: $response.body#/id }
|
|
103
|
+
UpdateEvent:
|
|
104
|
+
operationId: updateEvent
|
|
105
|
+
parameters: { id: $response.body#/id }
|
|
106
|
+
ApproveEvent:
|
|
107
|
+
operationId: approveEvent
|
|
108
|
+
parameters: { id: $response.body#/id }
|
|
109
|
+
DeleteEvent:
|
|
110
|
+
operationId: deleteEvent
|
|
111
|
+
parameters: { id: $response.body#/id }
|
|
98
112
|
"400":
|
|
99
113
|
$ref: ../components/responses.yaml#/BadRequest
|
|
100
114
|
"401":
|
|
@@ -134,7 +148,7 @@
|
|
|
134
148
|
required: true
|
|
135
149
|
description: Stable opaque event id (`evt_…`) or the event's `name`.
|
|
136
150
|
schema:
|
|
137
|
-
|
|
151
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
138
152
|
responses:
|
|
139
153
|
"200":
|
|
140
154
|
description: Get an event
|
|
@@ -193,7 +207,7 @@
|
|
|
193
207
|
required: true
|
|
194
208
|
description: Stable opaque event id (`evt_…`) or the event's `name`.
|
|
195
209
|
schema:
|
|
196
|
-
|
|
210
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
197
211
|
requestBody:
|
|
198
212
|
required: true
|
|
199
213
|
content:
|
|
@@ -261,7 +275,7 @@
|
|
|
261
275
|
required: true
|
|
262
276
|
description: Stable opaque event id (`evt_…`) or the event's `name`.
|
|
263
277
|
schema:
|
|
264
|
-
|
|
278
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
265
279
|
responses:
|
|
266
280
|
"200":
|
|
267
281
|
description: Archive an event
|
|
@@ -312,7 +326,7 @@
|
|
|
312
326
|
required: true
|
|
313
327
|
description: Stable opaque event id (`evt_…`) or the event's `name`.
|
|
314
328
|
schema:
|
|
315
|
-
|
|
329
|
+
$ref: ../components/schemas/common.yaml#/ResourceId
|
|
316
330
|
requestBody:
|
|
317
331
|
required: true
|
|
318
332
|
content:
|