@epilot/sdk 2.19.3 → 2.19.5
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/definitions/access-token-runtime.json +1 -0
- package/definitions/access-token.json +835 -0
- package/definitions/address-runtime.json +1 -0
- package/definitions/address-suggestions-runtime.json +1 -0
- package/definitions/address-suggestions.json +582 -0
- package/definitions/address.json +578 -0
- package/definitions/ai-agents-runtime.json +1 -0
- package/definitions/ai-agents.json +2863 -0
- package/definitions/app-runtime.json +1 -0
- package/definitions/app.json +5743 -0
- package/definitions/audit-logs-runtime.json +1 -0
- package/definitions/audit-logs.json +305 -0
- package/definitions/automation-runtime.json +1 -0
- package/definitions/automation.json +5557 -0
- package/definitions/billing-runtime.json +1 -0
- package/definitions/billing.json +2386 -0
- package/definitions/blueprint-manifest-runtime.json +1 -0
- package/definitions/blueprint-manifest.json +7718 -0
- package/definitions/calendar-runtime.json +1 -0
- package/definitions/calendar.json +2904 -0
- package/definitions/configuration-hub-runtime.json +1 -0
- package/definitions/configuration-hub.json +2250 -0
- package/definitions/consent-runtime.json +1 -0
- package/definitions/consent.json +344 -0
- package/definitions/customer-portal-runtime.json +1 -0
- package/definitions/customer-portal.json +19945 -0
- package/definitions/dashboard-runtime.json +1 -0
- package/definitions/dashboard.json +1355 -0
- package/definitions/data-governance-runtime.json +1 -0
- package/definitions/data-governance.json +1126 -0
- package/definitions/deduplication-runtime.json +1 -0
- package/definitions/deduplication.json +782 -0
- package/definitions/design-runtime.json +1 -0
- package/definitions/design.json +1827 -0
- package/definitions/document-runtime.json +1 -0
- package/definitions/document.json +758 -0
- package/definitions/email-settings-runtime.json +1 -0
- package/definitions/email-settings.json +3736 -0
- package/definitions/email-template-runtime.json +1 -0
- package/definitions/email-template.json +1441 -0
- package/definitions/entity-mapping-runtime.json +1 -0
- package/definitions/entity-mapping.json +1642 -0
- package/definitions/entity-runtime.json +1 -0
- package/definitions/entity.json +11517 -0
- package/definitions/environments-runtime.json +1 -0
- package/definitions/environments.json +539 -0
- package/definitions/event-catalog-runtime.json +1 -0
- package/definitions/event-catalog.json +1524 -0
- package/definitions/file-runtime.json +1 -0
- package/definitions/file.json +3905 -0
- package/definitions/iban-runtime.json +1 -0
- package/definitions/iban.json +132 -0
- package/definitions/integration-toolkit-runtime.json +1 -0
- package/definitions/integration-toolkit.json +12769 -0
- package/definitions/journey-runtime.json +1 -0
- package/definitions/journey.json +2640 -0
- package/definitions/kanban-runtime.json +1 -0
- package/definitions/kanban.json +1506 -0
- package/definitions/message-runtime.json +1 -0
- package/definitions/message.json +3667 -0
- package/definitions/metering-runtime.json +1 -0
- package/definitions/metering.json +3132 -0
- package/definitions/notes-runtime.json +1 -0
- package/definitions/notes.json +1698 -0
- package/definitions/notification-runtime.json +1 -0
- package/definitions/notification.json +1439 -0
- package/definitions/organization-runtime.json +1 -0
- package/definitions/organization.json +1192 -0
- package/definitions/partner-directory-runtime.json +1 -0
- package/definitions/partner-directory.json +2284 -0
- package/definitions/permissions-runtime.json +1 -0
- package/definitions/permissions.json +1598 -0
- package/definitions/pricing-runtime.json +1 -0
- package/definitions/pricing-tier-runtime.json +1 -0
- package/definitions/pricing-tier.json +105 -0
- package/definitions/pricing.json +11569 -0
- package/definitions/purpose-runtime.json +1 -0
- package/definitions/purpose.json +524 -0
- package/definitions/query-runtime.json +1 -0
- package/definitions/query.json +3178 -0
- package/definitions/sandbox-runtime.json +1 -0
- package/definitions/sandbox.json +453 -0
- package/definitions/sharing-runtime.json +1 -0
- package/definitions/sharing.json +956 -0
- package/definitions/snapshot-runtime.json +1 -0
- package/definitions/snapshot.json +1103 -0
- package/definitions/submission-runtime.json +1 -0
- package/definitions/submission.json +313 -0
- package/definitions/targeting-runtime.json +1 -0
- package/definitions/targeting.json +2222 -0
- package/definitions/template-variables-runtime.json +1 -0
- package/definitions/template-variables.json +1416 -0
- package/definitions/user-runtime.json +1 -0
- package/definitions/user.json +3051 -0
- package/definitions/validation-rules-runtime.json +1 -0
- package/definitions/validation-rules.json +2365 -0
- package/definitions/webhooks-runtime.json +1 -0
- package/definitions/webhooks.json +1875 -0
- package/definitions/workflow-definition-runtime.json +1 -0
- package/definitions/workflow-definition.json +3592 -0
- package/definitions/workflow-runtime.json +1 -0
- package/definitions/workflow.json +4669 -0
- package/dist/apis/access-token.cjs +6 -6
- package/dist/apis/access-token.js +1 -1
- package/dist/apis/address-suggestions.cjs +6 -6
- package/dist/apis/address-suggestions.js +1 -1
- package/dist/apis/address.cjs +6 -6
- package/dist/apis/address.js +1 -1
- package/dist/apis/ai-agents.cjs +6 -6
- package/dist/apis/ai-agents.js +1 -1
- package/dist/apis/app.cjs +6 -6
- package/dist/apis/app.js +1 -1
- package/dist/apis/audit-logs.cjs +6 -6
- package/dist/apis/audit-logs.js +1 -1
- package/dist/apis/automation.cjs +6 -6
- package/dist/apis/automation.js +1 -1
- package/dist/apis/billing.cjs +6 -6
- package/dist/apis/billing.js +1 -1
- package/dist/apis/blueprint-manifest.cjs +6 -6
- package/dist/apis/blueprint-manifest.js +1 -1
- package/dist/apis/calendar.cjs +6 -6
- package/dist/apis/calendar.js +1 -1
- package/dist/apis/configuration-hub.cjs +6 -6
- package/dist/apis/configuration-hub.js +1 -1
- package/dist/apis/consent.cjs +6 -6
- package/dist/apis/consent.js +1 -1
- package/dist/apis/customer-portal.cjs +6 -6
- package/dist/apis/customer-portal.d.cts +2 -2
- package/dist/apis/customer-portal.d.ts +2 -2
- package/dist/apis/customer-portal.js +1 -1
- package/dist/apis/dashboard.cjs +6 -6
- package/dist/apis/dashboard.js +1 -1
- package/dist/apis/data-governance.cjs +6 -6
- package/dist/apis/data-governance.js +1 -1
- package/dist/apis/deduplication.cjs +6 -6
- package/dist/apis/deduplication.js +1 -1
- package/dist/apis/design.cjs +6 -6
- package/dist/apis/design.js +1 -1
- package/dist/apis/document.cjs +6 -6
- package/dist/apis/document.js +1 -1
- package/dist/apis/email-settings.cjs +6 -6
- package/dist/apis/email-settings.js +1 -1
- package/dist/apis/email-template.cjs +6 -6
- package/dist/apis/email-template.js +1 -1
- package/dist/apis/entity-mapping.cjs +6 -6
- package/dist/apis/entity-mapping.js +1 -1
- package/dist/apis/entity.cjs +6 -6
- package/dist/apis/entity.js +1 -1
- package/dist/apis/environments.cjs +6 -6
- package/dist/apis/environments.js +1 -1
- package/dist/apis/event-catalog.cjs +6 -6
- package/dist/apis/event-catalog.js +1 -1
- package/dist/apis/file.cjs +6 -6
- package/dist/apis/file.js +1 -1
- package/dist/apis/iban.cjs +6 -6
- package/dist/apis/iban.js +1 -1
- package/dist/apis/integration-toolkit.cjs +6 -6
- package/dist/apis/integration-toolkit.js +1 -1
- package/dist/apis/journey.cjs +6 -6
- package/dist/apis/journey.js +1 -1
- package/dist/apis/kanban.cjs +6 -6
- package/dist/apis/kanban.js +1 -1
- package/dist/apis/message.cjs +6 -6
- package/dist/apis/message.js +1 -1
- package/dist/apis/metering.cjs +6 -6
- package/dist/apis/metering.js +1 -1
- package/dist/apis/notes.cjs +6 -6
- package/dist/apis/notes.js +1 -1
- package/dist/apis/notification.cjs +6 -6
- package/dist/apis/notification.js +1 -1
- package/dist/apis/organization.cjs +6 -6
- package/dist/apis/organization.js +1 -1
- package/dist/apis/partner-directory.cjs +6 -6
- package/dist/apis/partner-directory.js +1 -1
- package/dist/apis/permissions.cjs +6 -6
- package/dist/apis/permissions.js +1 -1
- package/dist/apis/pricing-tier.cjs +6 -6
- package/dist/apis/pricing-tier.js +1 -1
- package/dist/apis/pricing.cjs +6 -6
- package/dist/apis/pricing.js +1 -1
- package/dist/apis/purpose.cjs +6 -6
- package/dist/apis/purpose.js +1 -1
- package/dist/apis/query.cjs +6 -6
- package/dist/apis/query.js +1 -1
- package/dist/apis/sandbox.cjs +6 -6
- package/dist/apis/sandbox.js +1 -1
- package/dist/apis/sharing.cjs +6 -6
- package/dist/apis/sharing.js +1 -1
- package/dist/apis/snapshot.cjs +6 -6
- package/dist/apis/snapshot.js +1 -1
- package/dist/apis/submission.cjs +6 -6
- package/dist/apis/submission.js +1 -1
- package/dist/apis/target.cjs +6 -6
- package/dist/apis/target.js +1 -1
- package/dist/apis/targeting.cjs +6 -6
- package/dist/apis/targeting.d.cts +2 -2
- package/dist/apis/targeting.d.ts +2 -2
- package/dist/apis/targeting.js +1 -1
- package/dist/apis/template-variables.cjs +6 -6
- package/dist/apis/template-variables.js +1 -1
- package/dist/apis/user.cjs +6 -6
- package/dist/apis/user.js +1 -1
- package/dist/apis/validation-rules.cjs +6 -6
- package/dist/apis/validation-rules.js +1 -1
- package/dist/apis/webhooks.cjs +6 -6
- package/dist/apis/webhooks.js +1 -1
- package/dist/apis/workflow-definition.cjs +6 -6
- package/dist/apis/workflow-definition.js +1 -1
- package/dist/apis/workflow.cjs +6 -6
- package/dist/apis/workflow.js +1 -1
- package/dist/{chunk-UC3IKFHD.js → chunk-HWPPR3IM.js} +2 -2
- package/dist/{chunk-QWWGJOYR.cjs → chunk-VB6VABGZ.cjs} +2 -2
- package/dist/customer-portal-CDFQM72A.js +7 -0
- package/dist/customer-portal-MS6WNXAO.cjs +7 -0
- package/dist/{customer-portal.d-DTnk0yQf.d.cts → customer-portal.d-DJHJY-vb.d.cts} +51 -8
- package/dist/{customer-portal.d-DTnk0yQf.d.ts → customer-portal.d-DJHJY-vb.d.ts} +51 -8
- package/dist/index.cjs +8 -8
- package/dist/index.d.cts +2 -2
- package/dist/index.d.ts +2 -2
- package/dist/index.js +1 -1
- package/dist/targeting-5U4XGOXY.cjs +7 -0
- package/dist/targeting-R3G32HI4.js +7 -0
- package/dist/{targeting.d-16SvPyj4.d.cts → targeting.d-KcawmWBB.d.cts} +8 -0
- package/dist/{targeting.d-16SvPyj4.d.ts → targeting.d-KcawmWBB.d.ts} +8 -0
- package/docs/customer-portal.md +13 -4
- package/docs/targeting.md +9 -1
- package/package.json +1 -1
- package/dist/customer-portal-FCUPDA7V.cjs +0 -7
- package/dist/customer-portal-GRWXQYKT.js +0 -7
- package/dist/targeting-BTVCLYFW.cjs +0 -7
- package/dist/targeting-NWYDE3E7.js +0 -7
|
@@ -0,0 +1,1875 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.0.0",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "Webhooks",
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"description": "Service for configuring webhooks on different events\n"
|
|
7
|
+
},
|
|
8
|
+
"tags": [
|
|
9
|
+
{
|
|
10
|
+
"name": "webhooks",
|
|
11
|
+
"description": "Configure and trigger webhooks"
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
"name": "example",
|
|
15
|
+
"description": "Generate example payloads for webhooks"
|
|
16
|
+
}
|
|
17
|
+
],
|
|
18
|
+
"paths": {
|
|
19
|
+
"/v1/webhooks/.well-known/public-key": {
|
|
20
|
+
"get": {
|
|
21
|
+
"operationId": "getPublicKey",
|
|
22
|
+
"summary": "getPublicKey",
|
|
23
|
+
"parameters": [
|
|
24
|
+
{
|
|
25
|
+
"in": "query",
|
|
26
|
+
"name": "orgId",
|
|
27
|
+
"schema": {
|
|
28
|
+
"type": "string"
|
|
29
|
+
},
|
|
30
|
+
"required": true,
|
|
31
|
+
"description": "Organization ID to retrieve the public key for."
|
|
32
|
+
}
|
|
33
|
+
],
|
|
34
|
+
"description": "Returns the platform-level Ed25519 public key used to verify\nasymmetric (v1a) webhook signatures. This endpoint is unauthenticated since the public key is not a secret, but the orgId parameter is required to ensure clients retrieve the correct key for their organization in case of key rotation.\n",
|
|
35
|
+
"tags": [
|
|
36
|
+
"webhooks"
|
|
37
|
+
],
|
|
38
|
+
"security": [],
|
|
39
|
+
"responses": {
|
|
40
|
+
"200": {
|
|
41
|
+
"description": "Success - public key returned",
|
|
42
|
+
"content": {
|
|
43
|
+
"application/json": {
|
|
44
|
+
"schema": {
|
|
45
|
+
"$ref": "#/components/schemas/PublicKeyResponse"
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
},
|
|
50
|
+
"500": {
|
|
51
|
+
"description": "Internal server error",
|
|
52
|
+
"content": {
|
|
53
|
+
"application/json": {
|
|
54
|
+
"schema": {
|
|
55
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
},
|
|
63
|
+
"/v1/webhooks/configured-events": {
|
|
64
|
+
"get": {
|
|
65
|
+
"operationId": "getConfiguredEvents",
|
|
66
|
+
"summary": "getConfiguredEvents",
|
|
67
|
+
"description": "Retrieve events that can trigger webhooks",
|
|
68
|
+
"tags": [
|
|
69
|
+
"webhooks"
|
|
70
|
+
],
|
|
71
|
+
"responses": {
|
|
72
|
+
"200": {
|
|
73
|
+
"description": "Success - configured events loaded with success. Empty array if no events have been configured.",
|
|
74
|
+
"content": {
|
|
75
|
+
"application/json": {
|
|
76
|
+
"schema": {
|
|
77
|
+
"$ref": "#/components/schemas/EventConfigResp"
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
},
|
|
85
|
+
"/v1/webhooks/configs": {
|
|
86
|
+
"get": {
|
|
87
|
+
"operationId": "getConfigs",
|
|
88
|
+
"summary": "getConfigs",
|
|
89
|
+
"description": "Search Webhook Client Configs",
|
|
90
|
+
"tags": [
|
|
91
|
+
"webhooks"
|
|
92
|
+
],
|
|
93
|
+
"parameters": [
|
|
94
|
+
{
|
|
95
|
+
"in": "query",
|
|
96
|
+
"name": "eventName",
|
|
97
|
+
"schema": {
|
|
98
|
+
"type": "string"
|
|
99
|
+
},
|
|
100
|
+
"required": false,
|
|
101
|
+
"description": "Filter configurations by event Name",
|
|
102
|
+
"example": "customer_request_created"
|
|
103
|
+
}
|
|
104
|
+
],
|
|
105
|
+
"responses": {
|
|
106
|
+
"200": {
|
|
107
|
+
"description": "Success - configs loaded with success. Empty array if org has configs.",
|
|
108
|
+
"content": {
|
|
109
|
+
"application/json": {
|
|
110
|
+
"schema": {
|
|
111
|
+
"type": "array",
|
|
112
|
+
"items": {
|
|
113
|
+
"$ref": "#/components/schemas/WebhookConfig"
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
},
|
|
119
|
+
"500": {
|
|
120
|
+
"description": "Other errors",
|
|
121
|
+
"content": {
|
|
122
|
+
"application/json": {
|
|
123
|
+
"schema": {
|
|
124
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"post": {
|
|
132
|
+
"operationId": "createConfig",
|
|
133
|
+
"summary": "createConfig",
|
|
134
|
+
"description": "Create Webhook Client Config",
|
|
135
|
+
"tags": [
|
|
136
|
+
"webhooks"
|
|
137
|
+
],
|
|
138
|
+
"requestBody": {
|
|
139
|
+
"description": "Webhook config payload",
|
|
140
|
+
"required": true,
|
|
141
|
+
"content": {
|
|
142
|
+
"application/json": {
|
|
143
|
+
"schema": {
|
|
144
|
+
"$ref": "#/components/schemas/WebhookConfig"
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
},
|
|
149
|
+
"responses": {
|
|
150
|
+
"201": {
|
|
151
|
+
"description": "Success - if the config is created successfully",
|
|
152
|
+
"content": {
|
|
153
|
+
"application/json": {
|
|
154
|
+
"schema": {
|
|
155
|
+
"$ref": "#/components/schemas/WebhookConfig"
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
},
|
|
160
|
+
"400": {
|
|
161
|
+
"description": "Validation Errors",
|
|
162
|
+
"content": {
|
|
163
|
+
"application/json": {
|
|
164
|
+
"schema": {
|
|
165
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
166
|
+
}
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"401": {
|
|
171
|
+
"description": "Authentication Errors",
|
|
172
|
+
"content": {
|
|
173
|
+
"application/json": {
|
|
174
|
+
"schema": {
|
|
175
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
"500": {
|
|
181
|
+
"description": "Other errors",
|
|
182
|
+
"content": {
|
|
183
|
+
"application/json": {
|
|
184
|
+
"schema": {
|
|
185
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
},
|
|
193
|
+
"/v1/webhooks/configs/{configId}": {
|
|
194
|
+
"get": {
|
|
195
|
+
"operationId": "getConfig",
|
|
196
|
+
"summary": "getConfig",
|
|
197
|
+
"description": "Get webhook config by id",
|
|
198
|
+
"tags": [
|
|
199
|
+
"webhooks"
|
|
200
|
+
],
|
|
201
|
+
"parameters": [
|
|
202
|
+
{
|
|
203
|
+
"in": "path",
|
|
204
|
+
"name": "configId",
|
|
205
|
+
"schema": {
|
|
206
|
+
"type": "string"
|
|
207
|
+
},
|
|
208
|
+
"required": true,
|
|
209
|
+
"description": "Short uuid to identify the webhook configuration.",
|
|
210
|
+
"example": "7hj28aasgag2gha2"
|
|
211
|
+
}
|
|
212
|
+
],
|
|
213
|
+
"responses": {
|
|
214
|
+
"200": {
|
|
215
|
+
"description": "Success - if the config is updated successfully",
|
|
216
|
+
"content": {
|
|
217
|
+
"application/json": {
|
|
218
|
+
"schema": {
|
|
219
|
+
"$ref": "#/components/schemas/WebhookConfig"
|
|
220
|
+
}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
},
|
|
224
|
+
"404": {
|
|
225
|
+
"description": "No configuration found for this id",
|
|
226
|
+
"content": {
|
|
227
|
+
"application/json": {
|
|
228
|
+
"schema": {
|
|
229
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
}
|
|
233
|
+
},
|
|
234
|
+
"500": {
|
|
235
|
+
"description": "Other errors",
|
|
236
|
+
"content": {
|
|
237
|
+
"application/json": {
|
|
238
|
+
"schema": {
|
|
239
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
240
|
+
}
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
},
|
|
246
|
+
"put": {
|
|
247
|
+
"operationId": "updateConfig",
|
|
248
|
+
"summary": "updateConfig",
|
|
249
|
+
"description": "Update Webhook Client Config",
|
|
250
|
+
"tags": [
|
|
251
|
+
"webhooks"
|
|
252
|
+
],
|
|
253
|
+
"parameters": [
|
|
254
|
+
{
|
|
255
|
+
"in": "path",
|
|
256
|
+
"name": "configId",
|
|
257
|
+
"schema": {
|
|
258
|
+
"type": "string"
|
|
259
|
+
},
|
|
260
|
+
"required": true,
|
|
261
|
+
"description": "Short uuid (length 6) to identify the webhook configuration.",
|
|
262
|
+
"example": "7hj28a"
|
|
263
|
+
}
|
|
264
|
+
],
|
|
265
|
+
"requestBody": {
|
|
266
|
+
"description": "Webhook config payload",
|
|
267
|
+
"required": true,
|
|
268
|
+
"content": {
|
|
269
|
+
"application/json": {
|
|
270
|
+
"schema": {
|
|
271
|
+
"$ref": "#/components/schemas/WebhookConfig"
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
}
|
|
275
|
+
},
|
|
276
|
+
"responses": {
|
|
277
|
+
"200": {
|
|
278
|
+
"description": "Success - if the config is updated successfully",
|
|
279
|
+
"content": {
|
|
280
|
+
"application/json": {
|
|
281
|
+
"schema": {
|
|
282
|
+
"$ref": "#/components/schemas/WebhookConfig"
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
}
|
|
286
|
+
},
|
|
287
|
+
"400": {
|
|
288
|
+
"description": "Validation Errors",
|
|
289
|
+
"content": {
|
|
290
|
+
"application/json": {
|
|
291
|
+
"schema": {
|
|
292
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
"401": {
|
|
298
|
+
"description": "Authentication Errors",
|
|
299
|
+
"content": {
|
|
300
|
+
"application/json": {
|
|
301
|
+
"schema": {
|
|
302
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
},
|
|
307
|
+
"500": {
|
|
308
|
+
"description": "Other errors",
|
|
309
|
+
"content": {
|
|
310
|
+
"application/json": {
|
|
311
|
+
"schema": {
|
|
312
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
}
|
|
316
|
+
}
|
|
317
|
+
}
|
|
318
|
+
},
|
|
319
|
+
"delete": {
|
|
320
|
+
"operationId": "deleteConfig",
|
|
321
|
+
"summary": "deleteConfig",
|
|
322
|
+
"description": "Delete Webhook Client Config",
|
|
323
|
+
"tags": [
|
|
324
|
+
"webhooks"
|
|
325
|
+
],
|
|
326
|
+
"parameters": [
|
|
327
|
+
{
|
|
328
|
+
"in": "path",
|
|
329
|
+
"name": "configId",
|
|
330
|
+
"schema": {
|
|
331
|
+
"type": "string"
|
|
332
|
+
},
|
|
333
|
+
"required": true,
|
|
334
|
+
"description": "Id of the config to de deleted.",
|
|
335
|
+
"example": "CustomerRequest"
|
|
336
|
+
}
|
|
337
|
+
],
|
|
338
|
+
"responses": {
|
|
339
|
+
"204": {
|
|
340
|
+
"description": "Success - if the config is deleted successfully"
|
|
341
|
+
},
|
|
342
|
+
"401": {
|
|
343
|
+
"description": "Failed to authenticate",
|
|
344
|
+
"content": {
|
|
345
|
+
"application/json": {
|
|
346
|
+
"schema": {
|
|
347
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
348
|
+
}
|
|
349
|
+
}
|
|
350
|
+
}
|
|
351
|
+
},
|
|
352
|
+
"404": {
|
|
353
|
+
"description": "No config found"
|
|
354
|
+
}
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
},
|
|
358
|
+
"/v1/webhooks/configs/{configId}/test-oauth": {
|
|
359
|
+
"post": {
|
|
360
|
+
"operationId": "testOAuth",
|
|
361
|
+
"summary": "Test OAuth connection",
|
|
362
|
+
"description": "Tests the OAuth client credentials configuration for a saved webhook by attempting\na token exchange against the configured OAuth endpoint. Returns success with token\nmetadata (e.g. expires_in, token_type) or an error describing why the exchange failed.\nDoes not send the actual webhook.\n",
|
|
363
|
+
"tags": [
|
|
364
|
+
"webhooks"
|
|
365
|
+
],
|
|
366
|
+
"parameters": [
|
|
367
|
+
{
|
|
368
|
+
"in": "path",
|
|
369
|
+
"name": "configId",
|
|
370
|
+
"schema": {
|
|
371
|
+
"type": "string"
|
|
372
|
+
},
|
|
373
|
+
"required": true,
|
|
374
|
+
"description": "Short uuid to identify the webhook configuration.",
|
|
375
|
+
"example": "7hj28aasgag2gha2"
|
|
376
|
+
}
|
|
377
|
+
],
|
|
378
|
+
"responses": {
|
|
379
|
+
"200": {
|
|
380
|
+
"description": "OAuth token exchange succeeded",
|
|
381
|
+
"content": {
|
|
382
|
+
"application/json": {
|
|
383
|
+
"schema": {
|
|
384
|
+
"$ref": "#/components/schemas/TestOAuthResponse"
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
}
|
|
388
|
+
},
|
|
389
|
+
"400": {
|
|
390
|
+
"description": "Webhook does not use OAuth or configuration is invalid",
|
|
391
|
+
"content": {
|
|
392
|
+
"application/json": {
|
|
393
|
+
"schema": {
|
|
394
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
}
|
|
398
|
+
},
|
|
399
|
+
"404": {
|
|
400
|
+
"description": "No config found",
|
|
401
|
+
"content": {
|
|
402
|
+
"application/json": {
|
|
403
|
+
"schema": {
|
|
404
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
}
|
|
408
|
+
},
|
|
409
|
+
"500": {
|
|
410
|
+
"description": "OAuth token exchange failed",
|
|
411
|
+
"content": {
|
|
412
|
+
"application/json": {
|
|
413
|
+
"schema": {
|
|
414
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
},
|
|
422
|
+
"/v1/webhooks/configs/{configId}/trigger": {
|
|
423
|
+
"post": {
|
|
424
|
+
"operationId": "triggerWebhook",
|
|
425
|
+
"summary": "triggers a webhook event either async or sync",
|
|
426
|
+
"description": "Trigger a webhook",
|
|
427
|
+
"tags": [
|
|
428
|
+
"webhooks",
|
|
429
|
+
"trigger"
|
|
430
|
+
],
|
|
431
|
+
"parameters": [
|
|
432
|
+
{
|
|
433
|
+
"in": "query",
|
|
434
|
+
"name": "sync",
|
|
435
|
+
"description": "If set to true, the webhook will be triggered synchronously. Otherwise, it will be triggered asynchronously.",
|
|
436
|
+
"schema": {
|
|
437
|
+
"type": "boolean"
|
|
438
|
+
}
|
|
439
|
+
},
|
|
440
|
+
{
|
|
441
|
+
"in": "path",
|
|
442
|
+
"name": "configId",
|
|
443
|
+
"schema": {
|
|
444
|
+
"type": "string"
|
|
445
|
+
},
|
|
446
|
+
"required": true,
|
|
447
|
+
"description": "Short uuid to identify the webhook configuration.",
|
|
448
|
+
"example": "7hj28aasgag2gha2"
|
|
449
|
+
}
|
|
450
|
+
],
|
|
451
|
+
"requestBody": {
|
|
452
|
+
"description": "Webhook payload",
|
|
453
|
+
"required": true,
|
|
454
|
+
"content": {
|
|
455
|
+
"application/json": {
|
|
456
|
+
"schema": {
|
|
457
|
+
"$ref": "#/components/schemas/ExecutionPayload"
|
|
458
|
+
}
|
|
459
|
+
}
|
|
460
|
+
}
|
|
461
|
+
},
|
|
462
|
+
"responses": {
|
|
463
|
+
"200": {
|
|
464
|
+
"description": "Success - if the webhook is triggered successfully",
|
|
465
|
+
"content": {
|
|
466
|
+
"application/json": {
|
|
467
|
+
"schema": {
|
|
468
|
+
"$ref": "#/components/schemas/TriggerWebhookResp"
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
},
|
|
473
|
+
"400": {
|
|
474
|
+
"description": "Validation Errors",
|
|
475
|
+
"content": {
|
|
476
|
+
"application/json": {
|
|
477
|
+
"schema": {
|
|
478
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
}
|
|
482
|
+
},
|
|
483
|
+
"500": {
|
|
484
|
+
"description": "Other errors",
|
|
485
|
+
"content": {
|
|
486
|
+
"application/json": {
|
|
487
|
+
"schema": {
|
|
488
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
489
|
+
}
|
|
490
|
+
}
|
|
491
|
+
}
|
|
492
|
+
}
|
|
493
|
+
}
|
|
494
|
+
}
|
|
495
|
+
},
|
|
496
|
+
"/v1/webhooks/configs/{configId}/events": {
|
|
497
|
+
"get": {
|
|
498
|
+
"deprecated": true,
|
|
499
|
+
"operationId": "getWehookEvents",
|
|
500
|
+
"summary": "getWehookEvents",
|
|
501
|
+
"description": "This endpoint is deprecated and will be removed on 2025-12-31. Use /v2/webhooks/configs/{configId}/events instead.",
|
|
502
|
+
"tags": [
|
|
503
|
+
"webhooks",
|
|
504
|
+
"events"
|
|
505
|
+
],
|
|
506
|
+
"parameters": [
|
|
507
|
+
{
|
|
508
|
+
"in": "path",
|
|
509
|
+
"name": "configId",
|
|
510
|
+
"schema": {
|
|
511
|
+
"type": "string"
|
|
512
|
+
},
|
|
513
|
+
"required": true,
|
|
514
|
+
"description": "Short uuid to identify the webhook configuration.",
|
|
515
|
+
"example": "7hj28aasgag2gha2"
|
|
516
|
+
},
|
|
517
|
+
{
|
|
518
|
+
"in": "query",
|
|
519
|
+
"name": "status",
|
|
520
|
+
"schema": {
|
|
521
|
+
"type": "string",
|
|
522
|
+
"enum": [
|
|
523
|
+
"succeeded",
|
|
524
|
+
"failed",
|
|
525
|
+
"in_progress"
|
|
526
|
+
]
|
|
527
|
+
},
|
|
528
|
+
"description": "Get all events for a given webhook config id",
|
|
529
|
+
"example": "succeeded"
|
|
530
|
+
},
|
|
531
|
+
{
|
|
532
|
+
"in": "query",
|
|
533
|
+
"name": "cursor",
|
|
534
|
+
"schema": {
|
|
535
|
+
"type": "string"
|
|
536
|
+
},
|
|
537
|
+
"required": false,
|
|
538
|
+
"description": "Base64 encoded cursor to be used for pagination"
|
|
539
|
+
}
|
|
540
|
+
],
|
|
541
|
+
"responses": {
|
|
542
|
+
"200": {
|
|
543
|
+
"description": "Success - list events",
|
|
544
|
+
"content": {
|
|
545
|
+
"application/json": {
|
|
546
|
+
"schema": {
|
|
547
|
+
"type": "object",
|
|
548
|
+
"properties": {
|
|
549
|
+
"data": {
|
|
550
|
+
"type": "array",
|
|
551
|
+
"items": {
|
|
552
|
+
"$ref": "#/components/schemas/WebhookEvent"
|
|
553
|
+
}
|
|
554
|
+
},
|
|
555
|
+
"cursor": {
|
|
556
|
+
"type": "string",
|
|
557
|
+
"description": "Cursor to be used for pagination"
|
|
558
|
+
}
|
|
559
|
+
}
|
|
560
|
+
}
|
|
561
|
+
}
|
|
562
|
+
}
|
|
563
|
+
},
|
|
564
|
+
"404": {
|
|
565
|
+
"description": "No events found",
|
|
566
|
+
"content": {
|
|
567
|
+
"application/json": {
|
|
568
|
+
"schema": {
|
|
569
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
570
|
+
}
|
|
571
|
+
}
|
|
572
|
+
}
|
|
573
|
+
},
|
|
574
|
+
"500": {
|
|
575
|
+
"description": "Other errors",
|
|
576
|
+
"content": {
|
|
577
|
+
"application/json": {
|
|
578
|
+
"schema": {
|
|
579
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
580
|
+
}
|
|
581
|
+
}
|
|
582
|
+
}
|
|
583
|
+
}
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
},
|
|
587
|
+
"/v1/webhooks/configs/{configId}/events/replay-batch": {
|
|
588
|
+
"post": {
|
|
589
|
+
"operationId": "batchReplayEvents",
|
|
590
|
+
"summary": "batchReplayEvents",
|
|
591
|
+
"description": "Replay a batch of webhook events",
|
|
592
|
+
"tags": [
|
|
593
|
+
"webhooks",
|
|
594
|
+
"events"
|
|
595
|
+
],
|
|
596
|
+
"parameters": [
|
|
597
|
+
{
|
|
598
|
+
"in": "path",
|
|
599
|
+
"name": "configId",
|
|
600
|
+
"schema": {
|
|
601
|
+
"type": "string"
|
|
602
|
+
},
|
|
603
|
+
"required": true,
|
|
604
|
+
"description": "Short uuid to identify the webhook configuration.",
|
|
605
|
+
"example": "7hj28aasgag2gha2"
|
|
606
|
+
}
|
|
607
|
+
],
|
|
608
|
+
"requestBody": {
|
|
609
|
+
"description": "Batch replay request payload",
|
|
610
|
+
"required": true,
|
|
611
|
+
"content": {
|
|
612
|
+
"application/json": {
|
|
613
|
+
"schema": {
|
|
614
|
+
"$ref": "#/components/schemas/BatchReplayRequest"
|
|
615
|
+
}
|
|
616
|
+
}
|
|
617
|
+
}
|
|
618
|
+
},
|
|
619
|
+
"responses": {
|
|
620
|
+
"202": {
|
|
621
|
+
"description": "Success - enqueued events for replay",
|
|
622
|
+
"content": {
|
|
623
|
+
"application/json": {
|
|
624
|
+
"schema": {
|
|
625
|
+
"type": "object",
|
|
626
|
+
"properties": {
|
|
627
|
+
"replayed_event_ids": {
|
|
628
|
+
"type": "array",
|
|
629
|
+
"items": {
|
|
630
|
+
"type": "string"
|
|
631
|
+
},
|
|
632
|
+
"description": "List of event ids that were enqueued for replay"
|
|
633
|
+
}
|
|
634
|
+
}
|
|
635
|
+
}
|
|
636
|
+
}
|
|
637
|
+
}
|
|
638
|
+
},
|
|
639
|
+
"400": {
|
|
640
|
+
"description": "Validation Errors",
|
|
641
|
+
"content": {
|
|
642
|
+
"application/json": {
|
|
643
|
+
"schema": {
|
|
644
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
645
|
+
}
|
|
646
|
+
}
|
|
647
|
+
}
|
|
648
|
+
},
|
|
649
|
+
"404": {
|
|
650
|
+
"description": "No webhook config found",
|
|
651
|
+
"content": {
|
|
652
|
+
"application/json": {
|
|
653
|
+
"schema": {
|
|
654
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
},
|
|
659
|
+
"500": {
|
|
660
|
+
"description": "Other errors",
|
|
661
|
+
"content": {
|
|
662
|
+
"application/json": {
|
|
663
|
+
"schema": {
|
|
664
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
665
|
+
}
|
|
666
|
+
}
|
|
667
|
+
}
|
|
668
|
+
}
|
|
669
|
+
}
|
|
670
|
+
}
|
|
671
|
+
},
|
|
672
|
+
"/v1/webhooks/configs/{configId}/events/{eventId}": {
|
|
673
|
+
"get": {
|
|
674
|
+
"operationId": "getEventById",
|
|
675
|
+
"summary": "getEventById",
|
|
676
|
+
"description": "Get a webhook event by its id",
|
|
677
|
+
"tags": [
|
|
678
|
+
"webhooks",
|
|
679
|
+
"event"
|
|
680
|
+
],
|
|
681
|
+
"parameters": [
|
|
682
|
+
{
|
|
683
|
+
"in": "path",
|
|
684
|
+
"name": "configId",
|
|
685
|
+
"schema": {
|
|
686
|
+
"type": "string"
|
|
687
|
+
},
|
|
688
|
+
"required": true,
|
|
689
|
+
"description": "Short uuid to identify the webhook configuration.",
|
|
690
|
+
"example": "7hj28aasgag2gha2"
|
|
691
|
+
},
|
|
692
|
+
{
|
|
693
|
+
"in": "path",
|
|
694
|
+
"name": "eventId",
|
|
695
|
+
"schema": {
|
|
696
|
+
"type": "string"
|
|
697
|
+
},
|
|
698
|
+
"required": true,
|
|
699
|
+
"description": "Event id"
|
|
700
|
+
}
|
|
701
|
+
],
|
|
702
|
+
"responses": {
|
|
703
|
+
"200": {
|
|
704
|
+
"description": "Success - event",
|
|
705
|
+
"content": {
|
|
706
|
+
"application/json": {
|
|
707
|
+
"schema": {
|
|
708
|
+
"$ref": "#/components/schemas/WebhookEvent"
|
|
709
|
+
}
|
|
710
|
+
}
|
|
711
|
+
}
|
|
712
|
+
},
|
|
713
|
+
"404": {
|
|
714
|
+
"description": "No events found",
|
|
715
|
+
"content": {
|
|
716
|
+
"application/json": {
|
|
717
|
+
"schema": {
|
|
718
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
719
|
+
}
|
|
720
|
+
}
|
|
721
|
+
}
|
|
722
|
+
},
|
|
723
|
+
"500": {
|
|
724
|
+
"description": "Other errors",
|
|
725
|
+
"content": {
|
|
726
|
+
"application/json": {
|
|
727
|
+
"schema": {
|
|
728
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
729
|
+
}
|
|
730
|
+
}
|
|
731
|
+
}
|
|
732
|
+
}
|
|
733
|
+
}
|
|
734
|
+
}
|
|
735
|
+
},
|
|
736
|
+
"/v1/webhooks/configs/{configId}/events/{eventId}/replay": {
|
|
737
|
+
"post": {
|
|
738
|
+
"operationId": "replayEvent",
|
|
739
|
+
"summary": "replayEvent",
|
|
740
|
+
"description": "Replay a webhook event",
|
|
741
|
+
"tags": [
|
|
742
|
+
"webhooks",
|
|
743
|
+
"event"
|
|
744
|
+
],
|
|
745
|
+
"parameters": [
|
|
746
|
+
{
|
|
747
|
+
"in": "path",
|
|
748
|
+
"name": "configId",
|
|
749
|
+
"schema": {
|
|
750
|
+
"type": "string"
|
|
751
|
+
},
|
|
752
|
+
"required": true,
|
|
753
|
+
"description": "Short uuid to identify the webhook configuration.",
|
|
754
|
+
"example": "7hj28aasgag2gha2"
|
|
755
|
+
},
|
|
756
|
+
{
|
|
757
|
+
"in": "path",
|
|
758
|
+
"name": "eventId",
|
|
759
|
+
"schema": {
|
|
760
|
+
"type": "string"
|
|
761
|
+
},
|
|
762
|
+
"required": true,
|
|
763
|
+
"description": "Event id"
|
|
764
|
+
}
|
|
765
|
+
],
|
|
766
|
+
"requestBody": {
|
|
767
|
+
"description": "Optional replay options",
|
|
768
|
+
"required": false,
|
|
769
|
+
"content": {
|
|
770
|
+
"application/json": {
|
|
771
|
+
"schema": {
|
|
772
|
+
"$ref": "#/components/schemas/ReplayRequest"
|
|
773
|
+
}
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
},
|
|
777
|
+
"responses": {
|
|
778
|
+
"204": {
|
|
779
|
+
"description": "Success - replay event"
|
|
780
|
+
},
|
|
781
|
+
"404": {
|
|
782
|
+
"description": "No events found",
|
|
783
|
+
"content": {
|
|
784
|
+
"application/json": {
|
|
785
|
+
"schema": {
|
|
786
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
}
|
|
790
|
+
},
|
|
791
|
+
"422": {
|
|
792
|
+
"description": "Re-apply requested but the original (pre-transform) input could not be reconstructed (e.g. dangling catalog reference past retention).",
|
|
793
|
+
"content": {
|
|
794
|
+
"application/json": {
|
|
795
|
+
"schema": {
|
|
796
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
}
|
|
800
|
+
},
|
|
801
|
+
"500": {
|
|
802
|
+
"description": "Other errors",
|
|
803
|
+
"content": {
|
|
804
|
+
"application/json": {
|
|
805
|
+
"schema": {
|
|
806
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
807
|
+
}
|
|
808
|
+
}
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
}
|
|
812
|
+
}
|
|
813
|
+
},
|
|
814
|
+
"/v1/webhooks/configs/{configId}/example": {
|
|
815
|
+
"post": {
|
|
816
|
+
"operationId": "getWebhookExample",
|
|
817
|
+
"summary": "getWebhookExample",
|
|
818
|
+
"description": "Generate an example payload for a webhook configuration based on trigger type",
|
|
819
|
+
"tags": [
|
|
820
|
+
"webhooks",
|
|
821
|
+
"example"
|
|
822
|
+
],
|
|
823
|
+
"parameters": [
|
|
824
|
+
{
|
|
825
|
+
"in": "path",
|
|
826
|
+
"name": "configId",
|
|
827
|
+
"schema": {
|
|
828
|
+
"type": "string"
|
|
829
|
+
},
|
|
830
|
+
"required": true,
|
|
831
|
+
"description": "Short uuid to identify the webhook configuration.",
|
|
832
|
+
"example": "7hj28aasgag2gha2"
|
|
833
|
+
}
|
|
834
|
+
],
|
|
835
|
+
"requestBody": {
|
|
836
|
+
"description": "Example generation parameters",
|
|
837
|
+
"required": true,
|
|
838
|
+
"content": {
|
|
839
|
+
"application/json": {
|
|
840
|
+
"schema": {
|
|
841
|
+
"$ref": "#/components/schemas/ExampleRequest"
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
}
|
|
845
|
+
},
|
|
846
|
+
"responses": {
|
|
847
|
+
"200": {
|
|
848
|
+
"description": "Success - example payload generated",
|
|
849
|
+
"content": {
|
|
850
|
+
"application/json": {
|
|
851
|
+
"schema": {
|
|
852
|
+
"$ref": "#/components/schemas/ExampleResponse"
|
|
853
|
+
}
|
|
854
|
+
}
|
|
855
|
+
}
|
|
856
|
+
},
|
|
857
|
+
"400": {
|
|
858
|
+
"description": "Validation Errors",
|
|
859
|
+
"content": {
|
|
860
|
+
"application/json": {
|
|
861
|
+
"schema": {
|
|
862
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
}
|
|
866
|
+
},
|
|
867
|
+
"404": {
|
|
868
|
+
"description": "No configuration found for this configId",
|
|
869
|
+
"content": {
|
|
870
|
+
"application/json": {
|
|
871
|
+
"schema": {
|
|
872
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
873
|
+
}
|
|
874
|
+
}
|
|
875
|
+
}
|
|
876
|
+
},
|
|
877
|
+
"500": {
|
|
878
|
+
"description": "Other errors",
|
|
879
|
+
"content": {
|
|
880
|
+
"application/json": {
|
|
881
|
+
"schema": {
|
|
882
|
+
"$ref": "#/components/schemas/ErrorResp"
|
|
883
|
+
}
|
|
884
|
+
}
|
|
885
|
+
}
|
|
886
|
+
}
|
|
887
|
+
}
|
|
888
|
+
}
|
|
889
|
+
},
|
|
890
|
+
"/v2/webhooks/configs/{configId}/events": {
|
|
891
|
+
"post": {
|
|
892
|
+
"operationId": "getWebhookEventsV2",
|
|
893
|
+
"summary": "getWebhookEventsV2",
|
|
894
|
+
"description": "List webhook events and filter them by status, timestamp, etc.",
|
|
895
|
+
"tags": [
|
|
896
|
+
"Events"
|
|
897
|
+
],
|
|
898
|
+
"parameters": [
|
|
899
|
+
{
|
|
900
|
+
"in": "path",
|
|
901
|
+
"name": "configId",
|
|
902
|
+
"schema": {
|
|
903
|
+
"type": "string"
|
|
904
|
+
},
|
|
905
|
+
"required": true,
|
|
906
|
+
"description": "Short uuid to identify the webhook configuration.",
|
|
907
|
+
"example": "7hj28aasgag2gha2"
|
|
908
|
+
}
|
|
909
|
+
],
|
|
910
|
+
"requestBody": {
|
|
911
|
+
"content": {
|
|
912
|
+
"application/json": {
|
|
913
|
+
"schema": {
|
|
914
|
+
"$ref": "#/components/schemas/SearchOptions"
|
|
915
|
+
}
|
|
916
|
+
}
|
|
917
|
+
}
|
|
918
|
+
},
|
|
919
|
+
"responses": {
|
|
920
|
+
"200": {
|
|
921
|
+
"description": "Success - events where loaded successfully. Empty array if org has no events.",
|
|
922
|
+
"content": {
|
|
923
|
+
"application/json": {
|
|
924
|
+
"schema": {
|
|
925
|
+
"$ref": "#/components/schemas/EventListResponse"
|
|
926
|
+
}
|
|
927
|
+
}
|
|
928
|
+
}
|
|
929
|
+
}
|
|
930
|
+
}
|
|
931
|
+
}
|
|
932
|
+
}
|
|
933
|
+
},
|
|
934
|
+
"components": {
|
|
935
|
+
"schemas": {
|
|
936
|
+
"PublicKeyResponse": {
|
|
937
|
+
"type": "object",
|
|
938
|
+
"properties": {
|
|
939
|
+
"public_key": {
|
|
940
|
+
"type": "string",
|
|
941
|
+
"description": "PEM-encoded Ed25519 public key for verifying webhook signatures",
|
|
942
|
+
"example": "-----BEGIN PUBLIC KEY-----\nMCowBQYDK2VwAyEA...\n-----END PUBLIC KEY-----\n"
|
|
943
|
+
},
|
|
944
|
+
"algorithm": {
|
|
945
|
+
"type": "string",
|
|
946
|
+
"description": "The signing algorithm used",
|
|
947
|
+
"example": "ed25519"
|
|
948
|
+
},
|
|
949
|
+
"issuer": {
|
|
950
|
+
"type": "string",
|
|
951
|
+
"description": "The issuer of the signing key",
|
|
952
|
+
"example": "epilot"
|
|
953
|
+
}
|
|
954
|
+
},
|
|
955
|
+
"required": [
|
|
956
|
+
"public_key",
|
|
957
|
+
"algorithm"
|
|
958
|
+
]
|
|
959
|
+
},
|
|
960
|
+
"SearchOptions": {
|
|
961
|
+
"type": "object",
|
|
962
|
+
"properties": {
|
|
963
|
+
"limit": {
|
|
964
|
+
"type": "integer",
|
|
965
|
+
"description": "Maximum number of results to return",
|
|
966
|
+
"example": 25,
|
|
967
|
+
"default": 25,
|
|
968
|
+
"minimum": 1,
|
|
969
|
+
"maximum": 25
|
|
970
|
+
},
|
|
971
|
+
"cursor": {
|
|
972
|
+
"type": "object",
|
|
973
|
+
"description": "Cursor for pagination. Use the next_cursor from the previous response to get the next page.",
|
|
974
|
+
"properties": {
|
|
975
|
+
"created_at": {
|
|
976
|
+
"type": "string",
|
|
977
|
+
"format": "date-time",
|
|
978
|
+
"description": "Timestamp from the last event in the previous page",
|
|
979
|
+
"example": "2025-10-31T12:34:56Z"
|
|
980
|
+
},
|
|
981
|
+
"event_id": {
|
|
982
|
+
"type": "string",
|
|
983
|
+
"description": "Event ID from the last event in the previous page",
|
|
984
|
+
"example": "evt_1234567890abcdef"
|
|
985
|
+
}
|
|
986
|
+
}
|
|
987
|
+
},
|
|
988
|
+
"timestamp": {
|
|
989
|
+
"type": "object",
|
|
990
|
+
"description": "Filter events by timestamp range",
|
|
991
|
+
"properties": {
|
|
992
|
+
"from": {
|
|
993
|
+
"type": "string",
|
|
994
|
+
"format": "date-time",
|
|
995
|
+
"description": "Start timestamp in ISO 8601 format",
|
|
996
|
+
"example": "2025-10-01T00:00:00Z"
|
|
997
|
+
},
|
|
998
|
+
"to": {
|
|
999
|
+
"type": "string",
|
|
1000
|
+
"format": "date-time",
|
|
1001
|
+
"description": "End timestamp in ISO 8601 format",
|
|
1002
|
+
"example": "2025-10-31T23:59:59Z"
|
|
1003
|
+
}
|
|
1004
|
+
}
|
|
1005
|
+
},
|
|
1006
|
+
"event_id": {
|
|
1007
|
+
"type": "string",
|
|
1008
|
+
"description": "Filter by specific event ID",
|
|
1009
|
+
"example": "evt_1234567890abcdef"
|
|
1010
|
+
},
|
|
1011
|
+
"status": {
|
|
1012
|
+
"type": "string",
|
|
1013
|
+
"description": "Filter by event outcome",
|
|
1014
|
+
"enum": [
|
|
1015
|
+
"succeeded",
|
|
1016
|
+
"failed",
|
|
1017
|
+
"skipped"
|
|
1018
|
+
],
|
|
1019
|
+
"example": "succeeded"
|
|
1020
|
+
}
|
|
1021
|
+
}
|
|
1022
|
+
},
|
|
1023
|
+
"EventListResponse": {
|
|
1024
|
+
"type": "object",
|
|
1025
|
+
"properties": {
|
|
1026
|
+
"data": {
|
|
1027
|
+
"type": "array",
|
|
1028
|
+
"items": {
|
|
1029
|
+
"$ref": "#/components/schemas/WebhookEvent"
|
|
1030
|
+
},
|
|
1031
|
+
"description": "List of webhook events"
|
|
1032
|
+
},
|
|
1033
|
+
"next_cursor": {
|
|
1034
|
+
"type": "object",
|
|
1035
|
+
"nullable": true,
|
|
1036
|
+
"description": "Cursor to fetch the next page. Null if no more results.",
|
|
1037
|
+
"properties": {
|
|
1038
|
+
"created_at": {
|
|
1039
|
+
"type": "string",
|
|
1040
|
+
"format": "date-time",
|
|
1041
|
+
"example": "2025-10-31T12:34:56Z"
|
|
1042
|
+
},
|
|
1043
|
+
"event_id": {
|
|
1044
|
+
"type": "string",
|
|
1045
|
+
"example": "evt_1234567890abcdef"
|
|
1046
|
+
}
|
|
1047
|
+
}
|
|
1048
|
+
},
|
|
1049
|
+
"has_more": {
|
|
1050
|
+
"type": "boolean",
|
|
1051
|
+
"description": "Indicates if more results are available",
|
|
1052
|
+
"example": true
|
|
1053
|
+
}
|
|
1054
|
+
}
|
|
1055
|
+
},
|
|
1056
|
+
"HttpMethod": {
|
|
1057
|
+
"type": "string",
|
|
1058
|
+
"enum": [
|
|
1059
|
+
"GET",
|
|
1060
|
+
"POST",
|
|
1061
|
+
"PUT",
|
|
1062
|
+
"PATCH",
|
|
1063
|
+
"DELETE",
|
|
1064
|
+
"OPTIONS",
|
|
1065
|
+
"HEAD"
|
|
1066
|
+
]
|
|
1067
|
+
},
|
|
1068
|
+
"AuthType": {
|
|
1069
|
+
"type": "string",
|
|
1070
|
+
"enum": [
|
|
1071
|
+
"BASIC",
|
|
1072
|
+
"OAUTH_CLIENT_CREDENTIALS",
|
|
1073
|
+
"API_KEY",
|
|
1074
|
+
"NONE"
|
|
1075
|
+
]
|
|
1076
|
+
},
|
|
1077
|
+
"Filter": {
|
|
1078
|
+
"type": "object",
|
|
1079
|
+
"properties": {
|
|
1080
|
+
"keyToFilter": {
|
|
1081
|
+
"type": "string"
|
|
1082
|
+
},
|
|
1083
|
+
"supportedValues": {
|
|
1084
|
+
"type": "array",
|
|
1085
|
+
"items": {
|
|
1086
|
+
"type": "string"
|
|
1087
|
+
}
|
|
1088
|
+
}
|
|
1089
|
+
},
|
|
1090
|
+
"required": [
|
|
1091
|
+
"keyToFilter",
|
|
1092
|
+
"supportedValues"
|
|
1093
|
+
]
|
|
1094
|
+
},
|
|
1095
|
+
"WebhookCondition": {
|
|
1096
|
+
"type": "object",
|
|
1097
|
+
"description": "A condition that must be met for the webhook to fire. A condition is EITHER a classic field + operation comparison OR a single jsonata_expression evaluated against the event payload — the two forms are mutually exclusive.",
|
|
1098
|
+
"properties": {
|
|
1099
|
+
"field": {
|
|
1100
|
+
"type": "string",
|
|
1101
|
+
"description": "Dot-notation path to the field in the event payload (e.g. \"entity.status\", \"entity.line_items\"). Supports array indices in either spelling, which resolve identically: \"meter_readings.1.file_id\" or \"meter_readings[1].file_id\"."
|
|
1102
|
+
},
|
|
1103
|
+
"operation": {
|
|
1104
|
+
"type": "string",
|
|
1105
|
+
"description": "Comparison operator. The length_* operations compare the item count of the field value (an array yields its length, a missing or null field yields 0, and any single non-array value yields 1) against values[0], which must be a non-negative integer.",
|
|
1106
|
+
"enum": [
|
|
1107
|
+
"equals",
|
|
1108
|
+
"not_equals",
|
|
1109
|
+
"any_of",
|
|
1110
|
+
"none_of",
|
|
1111
|
+
"contains",
|
|
1112
|
+
"not_contains",
|
|
1113
|
+
"starts_with",
|
|
1114
|
+
"ends_with",
|
|
1115
|
+
"greater_than",
|
|
1116
|
+
"less_than",
|
|
1117
|
+
"greater_than_or_equals",
|
|
1118
|
+
"less_than_or_equals",
|
|
1119
|
+
"is_empty",
|
|
1120
|
+
"is_not_empty",
|
|
1121
|
+
"length_equals",
|
|
1122
|
+
"length_not_equals",
|
|
1123
|
+
"length_greater_than",
|
|
1124
|
+
"length_less_than",
|
|
1125
|
+
"length_greater_than_or_equals",
|
|
1126
|
+
"length_less_than_or_equals"
|
|
1127
|
+
]
|
|
1128
|
+
},
|
|
1129
|
+
"values": {
|
|
1130
|
+
"type": "array",
|
|
1131
|
+
"description": "Values to compare against (not required for is_empty/is_not_empty)",
|
|
1132
|
+
"items": {
|
|
1133
|
+
"type": "string"
|
|
1134
|
+
}
|
|
1135
|
+
},
|
|
1136
|
+
"field_type": {
|
|
1137
|
+
"type": "string",
|
|
1138
|
+
"description": "Type hint for the field (affects comparison logic)",
|
|
1139
|
+
"enum": [
|
|
1140
|
+
"string",
|
|
1141
|
+
"number",
|
|
1142
|
+
"boolean",
|
|
1143
|
+
"date",
|
|
1144
|
+
"datetime"
|
|
1145
|
+
],
|
|
1146
|
+
"default": "string"
|
|
1147
|
+
},
|
|
1148
|
+
"is_array_field": {
|
|
1149
|
+
"type": "boolean",
|
|
1150
|
+
"description": "Whether the target field is an array (repeatable)",
|
|
1151
|
+
"default": false
|
|
1152
|
+
},
|
|
1153
|
+
"repeatable_item_op": {
|
|
1154
|
+
"type": "boolean",
|
|
1155
|
+
"description": "When true, evaluates conditions per-item in repeatable array fields",
|
|
1156
|
+
"default": false
|
|
1157
|
+
},
|
|
1158
|
+
"jsonata_expression": {
|
|
1159
|
+
"type": "string",
|
|
1160
|
+
"maxLength": 15000,
|
|
1161
|
+
"description": "JSONata expression evaluated against the event payload; the condition passes when the result is truthy per JSONata $boolean semantics. Mutually exclusive with field/operation."
|
|
1162
|
+
}
|
|
1163
|
+
}
|
|
1164
|
+
},
|
|
1165
|
+
"WebhookConditionGroup": {
|
|
1166
|
+
"type": "object",
|
|
1167
|
+
"description": "A group of conditions with a logical operator. Multiple conditions are AND-ed by default.",
|
|
1168
|
+
"properties": {
|
|
1169
|
+
"conditions": {
|
|
1170
|
+
"type": "array",
|
|
1171
|
+
"items": {
|
|
1172
|
+
"$ref": "#/components/schemas/WebhookCondition"
|
|
1173
|
+
},
|
|
1174
|
+
"maxItems": 10
|
|
1175
|
+
},
|
|
1176
|
+
"logical_operator": {
|
|
1177
|
+
"type": "string",
|
|
1178
|
+
"enum": [
|
|
1179
|
+
"AND",
|
|
1180
|
+
"OR"
|
|
1181
|
+
],
|
|
1182
|
+
"default": "AND"
|
|
1183
|
+
}
|
|
1184
|
+
}
|
|
1185
|
+
},
|
|
1186
|
+
"Auth": {
|
|
1187
|
+
"type": "object",
|
|
1188
|
+
"properties": {
|
|
1189
|
+
"authType": {
|
|
1190
|
+
"$ref": "#/components/schemas/AuthType"
|
|
1191
|
+
},
|
|
1192
|
+
"basicAuthConfig": {
|
|
1193
|
+
"$ref": "#/components/schemas/BasicAuthConfig"
|
|
1194
|
+
},
|
|
1195
|
+
"oauthConfig": {
|
|
1196
|
+
"$ref": "#/components/schemas/OAuthConfig"
|
|
1197
|
+
},
|
|
1198
|
+
"apiKeyConfig": {
|
|
1199
|
+
"$ref": "#/components/schemas/ApiKeyConfig"
|
|
1200
|
+
}
|
|
1201
|
+
},
|
|
1202
|
+
"required": [
|
|
1203
|
+
"authType"
|
|
1204
|
+
]
|
|
1205
|
+
},
|
|
1206
|
+
"BasicAuthConfig": {
|
|
1207
|
+
"type": "object",
|
|
1208
|
+
"description": "To be sent only if authType is BASIC",
|
|
1209
|
+
"properties": {
|
|
1210
|
+
"username": {
|
|
1211
|
+
"type": "string"
|
|
1212
|
+
},
|
|
1213
|
+
"password": {
|
|
1214
|
+
"type": "string",
|
|
1215
|
+
"nullable": true,
|
|
1216
|
+
"description": "On update: omit to preserve existing, pass null to explicitly clear, pass string to set new value.\n"
|
|
1217
|
+
},
|
|
1218
|
+
"passwordIsEnvVar": {
|
|
1219
|
+
"type": "boolean",
|
|
1220
|
+
"description": "When true, indicates the password value is an environment variable reference (e.g. {{ env.my_secret }})"
|
|
1221
|
+
}
|
|
1222
|
+
},
|
|
1223
|
+
"required": [
|
|
1224
|
+
"username"
|
|
1225
|
+
]
|
|
1226
|
+
},
|
|
1227
|
+
"OAuthConfig": {
|
|
1228
|
+
"type": "object",
|
|
1229
|
+
"description": "To be sent only if authType is OAUTH_CLIENT_CREDENTIALS",
|
|
1230
|
+
"properties": {
|
|
1231
|
+
"clientId": {
|
|
1232
|
+
"type": "string"
|
|
1233
|
+
},
|
|
1234
|
+
"clientSecret": {
|
|
1235
|
+
"type": "string",
|
|
1236
|
+
"nullable": true,
|
|
1237
|
+
"description": "On update: omit to preserve existing, pass null to explicitly clear, pass string to set new value.\n"
|
|
1238
|
+
},
|
|
1239
|
+
"clientSecretIsEnvVar": {
|
|
1240
|
+
"type": "boolean",
|
|
1241
|
+
"description": "When true, indicates the clientSecret value is an environment variable reference (e.g. {{ env.my_secret }})"
|
|
1242
|
+
},
|
|
1243
|
+
"endpoint": {
|
|
1244
|
+
"type": "string",
|
|
1245
|
+
"description": "Https Endpoint for authentication"
|
|
1246
|
+
},
|
|
1247
|
+
"httpMethod": {
|
|
1248
|
+
"$ref": "#/components/schemas/HttpMethod"
|
|
1249
|
+
},
|
|
1250
|
+
"customParameterList": {
|
|
1251
|
+
"type": "array",
|
|
1252
|
+
"items": {
|
|
1253
|
+
"$ref": "#/components/schemas/CustomOAuthParameter"
|
|
1254
|
+
}
|
|
1255
|
+
}
|
|
1256
|
+
},
|
|
1257
|
+
"required": [
|
|
1258
|
+
"clientId",
|
|
1259
|
+
"endpoint",
|
|
1260
|
+
"httpMethod"
|
|
1261
|
+
]
|
|
1262
|
+
},
|
|
1263
|
+
"ApiKeyConfig": {
|
|
1264
|
+
"type": "object",
|
|
1265
|
+
"description": "To be sent only if authType is API_KEY",
|
|
1266
|
+
"properties": {
|
|
1267
|
+
"keyName": {
|
|
1268
|
+
"type": "string"
|
|
1269
|
+
},
|
|
1270
|
+
"keyValue": {
|
|
1271
|
+
"type": "string",
|
|
1272
|
+
"nullable": true,
|
|
1273
|
+
"description": "On update: omit to preserve existing, pass null to explicitly clear, pass string to set new value.\n"
|
|
1274
|
+
},
|
|
1275
|
+
"keyValueIsEnvVar": {
|
|
1276
|
+
"type": "boolean",
|
|
1277
|
+
"description": "When true, indicates the keyValue is an environment variable reference (e.g. {{ env.my_secret }})"
|
|
1278
|
+
}
|
|
1279
|
+
},
|
|
1280
|
+
"required": [
|
|
1281
|
+
"keyName"
|
|
1282
|
+
]
|
|
1283
|
+
},
|
|
1284
|
+
"WebhookConfig": {
|
|
1285
|
+
"type": "object",
|
|
1286
|
+
"properties": {
|
|
1287
|
+
"id": {
|
|
1288
|
+
"type": "string",
|
|
1289
|
+
"readOnly": true
|
|
1290
|
+
},
|
|
1291
|
+
"name": {
|
|
1292
|
+
"type": "string"
|
|
1293
|
+
},
|
|
1294
|
+
"eventName": {
|
|
1295
|
+
"type": "string"
|
|
1296
|
+
},
|
|
1297
|
+
"eventVersion": {
|
|
1298
|
+
"type": "string",
|
|
1299
|
+
"nullable": true,
|
|
1300
|
+
"pattern": "^\\d+\\.\\d+$",
|
|
1301
|
+
"description": "Pinned schema version of the Event Catalog event this webhook is subscribed to.\nOnly applicable when `eventName` refers to an Event Catalog event (prefixed with `event_`).\nWhen omitted on creation, it is backfilled lazily on first delivery to match the\nevent's own `_event_version` (the latest at that time, stamped on the event itself).\nAlways MAJOR.MINOR (e.g. \"1.0\", \"2.0\"), mirroring exactly what event-catalog-api\nstamps as `_event_version` and in its `_downgrades[].to` values. Absent for legacy\nconfigs that have not yet received an event.\n",
|
|
1302
|
+
"example": "1.0"
|
|
1303
|
+
},
|
|
1304
|
+
"url": {
|
|
1305
|
+
"type": "string"
|
|
1306
|
+
},
|
|
1307
|
+
"creationTime": {
|
|
1308
|
+
"type": "string",
|
|
1309
|
+
"description": "Timestamp the webhook was first created. Immutable after creation.",
|
|
1310
|
+
"example": "2021-04-27T12:01:13.000Z"
|
|
1311
|
+
},
|
|
1312
|
+
"updatedTime": {
|
|
1313
|
+
"type": "string",
|
|
1314
|
+
"description": "Timestamp of the most recent update to the webhook. Equals creationTime for never-edited webhooks. May be absent on legacy records written before this field was introduced.",
|
|
1315
|
+
"example": "2021-04-27T12:01:13.000Z"
|
|
1316
|
+
},
|
|
1317
|
+
"httpMethod": {
|
|
1318
|
+
"$ref": "#/components/schemas/HttpMethod"
|
|
1319
|
+
},
|
|
1320
|
+
"enabled": {
|
|
1321
|
+
"type": "boolean"
|
|
1322
|
+
},
|
|
1323
|
+
"auth": {
|
|
1324
|
+
"$ref": "#/components/schemas/Auth"
|
|
1325
|
+
},
|
|
1326
|
+
"filter": {
|
|
1327
|
+
"$ref": "#/components/schemas/Filter"
|
|
1328
|
+
},
|
|
1329
|
+
"payloadConfiguration": {
|
|
1330
|
+
"$ref": "#/components/schemas/PayloadConfiguration"
|
|
1331
|
+
},
|
|
1332
|
+
"enableStaticIP": {
|
|
1333
|
+
"type": "boolean"
|
|
1334
|
+
},
|
|
1335
|
+
"protected": {
|
|
1336
|
+
"type": "boolean",
|
|
1337
|
+
"description": "When true, indicates this webhook configuration is protected and should not be modified without explicit intent."
|
|
1338
|
+
},
|
|
1339
|
+
"secureProxy": {
|
|
1340
|
+
"type": "object",
|
|
1341
|
+
"description": "Routes webhook requests through a secure VPC proxy (ERP integration service). When set, takes precedence over enableStaticIP.",
|
|
1342
|
+
"properties": {
|
|
1343
|
+
"integration_id": {
|
|
1344
|
+
"type": "string",
|
|
1345
|
+
"format": "uuid"
|
|
1346
|
+
},
|
|
1347
|
+
"use_case_slug": {
|
|
1348
|
+
"type": "string"
|
|
1349
|
+
}
|
|
1350
|
+
},
|
|
1351
|
+
"required": [
|
|
1352
|
+
"integration_id",
|
|
1353
|
+
"use_case_slug"
|
|
1354
|
+
]
|
|
1355
|
+
},
|
|
1356
|
+
"status": {
|
|
1357
|
+
"type": "string",
|
|
1358
|
+
"enum": [
|
|
1359
|
+
"active",
|
|
1360
|
+
"inactive",
|
|
1361
|
+
"incomplete"
|
|
1362
|
+
]
|
|
1363
|
+
},
|
|
1364
|
+
"jsonataExpression": {
|
|
1365
|
+
"type": "string",
|
|
1366
|
+
"description": "JSONata expression to transform the payload"
|
|
1367
|
+
},
|
|
1368
|
+
"deliveryMode": {
|
|
1369
|
+
"type": "string",
|
|
1370
|
+
"enum": [
|
|
1371
|
+
"json_base64",
|
|
1372
|
+
"binary_multipart"
|
|
1373
|
+
],
|
|
1374
|
+
"description": "Controls how file data is delivered to the endpoint. Only relevant when the webhook is triggered by a file event. Absent for non-file-event webhooks."
|
|
1375
|
+
},
|
|
1376
|
+
"multipartConfig": {
|
|
1377
|
+
"type": "object",
|
|
1378
|
+
"description": "Configuration for `binary_multipart` delivery mode. Describes the\nshape of the multipart/form-data body the receiver expects — pick\nthe attachment(s) via a JSONata expression and add scalar form\nparts on the side.\n",
|
|
1379
|
+
"properties": {
|
|
1380
|
+
"fileFieldName": {
|
|
1381
|
+
"type": "string",
|
|
1382
|
+
"description": "Name of the binary form part(s). Default `\"file\"`. The same\nname is reused when `fileFieldStrategy=\"multi\"` produces\nmultiple file parts.\n"
|
|
1383
|
+
},
|
|
1384
|
+
"fileFieldStrategy": {
|
|
1385
|
+
"type": "string",
|
|
1386
|
+
"enum": [
|
|
1387
|
+
"single",
|
|
1388
|
+
"multi"
|
|
1389
|
+
],
|
|
1390
|
+
"description": "Assertion on the picker result. `single` (default) fails the\ndelivery when `fileSource` resolves to more than one\nattachment. `multi` accepts any non-empty count.\n"
|
|
1391
|
+
},
|
|
1392
|
+
"fileSource": {
|
|
1393
|
+
"type": "string",
|
|
1394
|
+
"description": "JSONata expression evaluated against the event payload that\npicks the attachment(s) to send. Default `\"event_attachments\"`\n(all attachments). When the result is `undefined`, `null`, or\nan empty array, the event is silently skipped (no HTTP\nrequest, no error notification). Validated for syntax at\nconfig-save time.\n"
|
|
1395
|
+
},
|
|
1396
|
+
"extraFields": {
|
|
1397
|
+
"type": "object",
|
|
1398
|
+
"additionalProperties": {
|
|
1399
|
+
"type": "string"
|
|
1400
|
+
},
|
|
1401
|
+
"description": "Map of `formFieldName → JSONata expression`. Each value is\nevaluated against the event payload, then passed through\nenv-resolution (same as `custom_headers`). Static literals\nmust be JSONata-quoted: a bare `\"business_partner\"` is\ntreated as a path lookup and yields `undefined`; for a\nliteral value, single-quote inside the JSON string:\n`\"'business_partner'\"`. Expressions yielding `undefined` or\n`null` silently omit the field. Object/array results are\nJSON-stringified before being appended. Values are not part\nof the signed payload.\n"
|
|
1402
|
+
}
|
|
1403
|
+
}
|
|
1404
|
+
},
|
|
1405
|
+
"retryPolicy": {
|
|
1406
|
+
"type": "object",
|
|
1407
|
+
"description": "Automatic-retry policy for transient delivery failures (5xx, 429,\nconnection-level errors). Newly-created webhooks are materialized\nwith defaults (`enabled: true`, `maxAttempts: 3`). Webhooks created\nbefore this feature have no policy and are treated as disabled — on\nupdate, omit this field to preserve the existing value. The backoff\ncurve is a fixed Standard Webhooks schedule (5s, 5m, 30m, 2h, 5h);\nonly the first `maxAttempts` intervals are used.\n",
|
|
1408
|
+
"properties": {
|
|
1409
|
+
"enabled": {
|
|
1410
|
+
"type": "boolean",
|
|
1411
|
+
"description": "Master on/off switch for automatic retries."
|
|
1412
|
+
},
|
|
1413
|
+
"maxAttempts": {
|
|
1414
|
+
"type": "integer",
|
|
1415
|
+
"minimum": 1,
|
|
1416
|
+
"maximum": 5,
|
|
1417
|
+
"default": 3,
|
|
1418
|
+
"description": "Maximum number of automatic retries after the initial delivery attempt."
|
|
1419
|
+
}
|
|
1420
|
+
},
|
|
1421
|
+
"required": [
|
|
1422
|
+
"enabled"
|
|
1423
|
+
]
|
|
1424
|
+
},
|
|
1425
|
+
"filterConditions": {
|
|
1426
|
+
"$ref": "#/components/schemas/WebhookConditionGroup"
|
|
1427
|
+
},
|
|
1428
|
+
"_manifest": {
|
|
1429
|
+
"type": "array",
|
|
1430
|
+
"description": "Manifest ID used to create/update the webhook resource",
|
|
1431
|
+
"items": {
|
|
1432
|
+
"type": "string",
|
|
1433
|
+
"format": "uuid",
|
|
1434
|
+
"example": "123e4567-e89b-12d3-a456-426614174000"
|
|
1435
|
+
}
|
|
1436
|
+
},
|
|
1437
|
+
"signingSecret": {
|
|
1438
|
+
"type": "string",
|
|
1439
|
+
"readOnly": true,
|
|
1440
|
+
"description": "Per-webhook signing secret following the Standard Webhooks specification.\nOnly returned once during webhook creation. Use this secret to verify\nwebhook signatures using the `webhook-id`, `webhook-timestamp`, and\n`webhook-signature` headers.\n",
|
|
1441
|
+
"example": "whsec_C2FVsBQIhrscChlQIMV+b5sSYspob7oD"
|
|
1442
|
+
}
|
|
1443
|
+
},
|
|
1444
|
+
"required": [
|
|
1445
|
+
"name",
|
|
1446
|
+
"eventName"
|
|
1447
|
+
],
|
|
1448
|
+
"example": {
|
|
1449
|
+
"eventName": "CustomerRequest_Created",
|
|
1450
|
+
"url": "https://my-partner-service.api.com",
|
|
1451
|
+
"httpMethod": "POST",
|
|
1452
|
+
"enabled": true,
|
|
1453
|
+
"auth": {
|
|
1454
|
+
"authType": "BASIC",
|
|
1455
|
+
"basicAuthConfig": {
|
|
1456
|
+
"username": "secretUsername",
|
|
1457
|
+
"password": "secret7825@!"
|
|
1458
|
+
}
|
|
1459
|
+
},
|
|
1460
|
+
"filter": {
|
|
1461
|
+
"keyToFilter": "customer_request.productId",
|
|
1462
|
+
"supportedValues": [
|
|
1463
|
+
"2324245",
|
|
1464
|
+
"5253642"
|
|
1465
|
+
]
|
|
1466
|
+
}
|
|
1467
|
+
}
|
|
1468
|
+
},
|
|
1469
|
+
"EventConfigResp": {
|
|
1470
|
+
"type": "array",
|
|
1471
|
+
"items": {
|
|
1472
|
+
"$ref": "#/components/schemas/EventConfigEntry"
|
|
1473
|
+
},
|
|
1474
|
+
"example": [
|
|
1475
|
+
{
|
|
1476
|
+
"eventName": "customer_request_created",
|
|
1477
|
+
"eventLabel": "Customer Request Created"
|
|
1478
|
+
}
|
|
1479
|
+
]
|
|
1480
|
+
},
|
|
1481
|
+
"EventConfigEntry": {
|
|
1482
|
+
"type": "object",
|
|
1483
|
+
"properties": {
|
|
1484
|
+
"eventName": {
|
|
1485
|
+
"type": "string",
|
|
1486
|
+
"description": "Name for identifying the event. Unique."
|
|
1487
|
+
},
|
|
1488
|
+
"eventLabel": {
|
|
1489
|
+
"type": "string",
|
|
1490
|
+
"description": "Either a user friendly label, or the eventName itself."
|
|
1491
|
+
}
|
|
1492
|
+
}
|
|
1493
|
+
},
|
|
1494
|
+
"ErrorResp": {
|
|
1495
|
+
"type": "object",
|
|
1496
|
+
"properties": {
|
|
1497
|
+
"message": {
|
|
1498
|
+
"type": "string"
|
|
1499
|
+
}
|
|
1500
|
+
}
|
|
1501
|
+
},
|
|
1502
|
+
"TriggerWebhookResp": {
|
|
1503
|
+
"type": "object",
|
|
1504
|
+
"required": [
|
|
1505
|
+
"event_id"
|
|
1506
|
+
],
|
|
1507
|
+
"properties": {
|
|
1508
|
+
"status_code": {
|
|
1509
|
+
"type": "string",
|
|
1510
|
+
"description": "The HTTP status returned by the customer endpoint (or the upstream gateway). ABSENT for epilot-internal errors (code INTERNAL_ERROR / INTERNAL_RESPONSE_TOO_LARGE), which are not customer HTTP outcomes; PRESENT only for real HTTP/upstream results. When the response was delivered but too large to record, a recovered delivered status may still be present."
|
|
1511
|
+
},
|
|
1512
|
+
"message": {
|
|
1513
|
+
"type": "string"
|
|
1514
|
+
},
|
|
1515
|
+
"body": {
|
|
1516
|
+
"type": "object"
|
|
1517
|
+
},
|
|
1518
|
+
"code": {
|
|
1519
|
+
"type": "string",
|
|
1520
|
+
"description": "Machine-readable classification of the outcome. Known values: OAuthTokenExchangeError (OAuth token exchange / upstream gateway failure), DataLimitExceeded (legacy oversized-response marker), INTERNAL_RESPONSE_TOO_LARGE (request delivered but the response was too large for epilot to record), INTERNAL_ERROR (epilot-internal processing failure — not a customer HTTP outcome)."
|
|
1521
|
+
},
|
|
1522
|
+
"status": {
|
|
1523
|
+
"type": "string",
|
|
1524
|
+
"enum": [
|
|
1525
|
+
"succeeded",
|
|
1526
|
+
"failed"
|
|
1527
|
+
]
|
|
1528
|
+
},
|
|
1529
|
+
"start_date": {
|
|
1530
|
+
"type": "string"
|
|
1531
|
+
},
|
|
1532
|
+
"end_date": {
|
|
1533
|
+
"type": "string"
|
|
1534
|
+
},
|
|
1535
|
+
"event_id": {
|
|
1536
|
+
"type": "string"
|
|
1537
|
+
}
|
|
1538
|
+
}
|
|
1539
|
+
},
|
|
1540
|
+
"PayloadConfiguration": {
|
|
1541
|
+
"type": "object",
|
|
1542
|
+
"description": "Configuration for the webhook payload",
|
|
1543
|
+
"properties": {
|
|
1544
|
+
"hydrate_entity": {
|
|
1545
|
+
"type": "boolean"
|
|
1546
|
+
},
|
|
1547
|
+
"include_relations": {
|
|
1548
|
+
"type": "boolean"
|
|
1549
|
+
},
|
|
1550
|
+
"include_activity": {
|
|
1551
|
+
"type": "boolean"
|
|
1552
|
+
},
|
|
1553
|
+
"include_changed_attributes": {
|
|
1554
|
+
"type": "boolean"
|
|
1555
|
+
},
|
|
1556
|
+
"apply_changesets": {
|
|
1557
|
+
"type": "boolean",
|
|
1558
|
+
"description": "When true, entity fields show proposed changeset values instead of current values"
|
|
1559
|
+
},
|
|
1560
|
+
"custom_headers": {
|
|
1561
|
+
"$ref": "#/components/schemas/CustomHeader"
|
|
1562
|
+
}
|
|
1563
|
+
}
|
|
1564
|
+
},
|
|
1565
|
+
"CustomHeader": {
|
|
1566
|
+
"type": "object",
|
|
1567
|
+
"description": "Object representing custom headers as key-value pairs.",
|
|
1568
|
+
"additionalProperties": {
|
|
1569
|
+
"type": "string",
|
|
1570
|
+
"description": "Header value"
|
|
1571
|
+
}
|
|
1572
|
+
},
|
|
1573
|
+
"CustomOAuthParameter": {
|
|
1574
|
+
"type": "object",
|
|
1575
|
+
"description": "Custom key/value pair of either type body, query or header",
|
|
1576
|
+
"properties": {
|
|
1577
|
+
"type": {
|
|
1578
|
+
"type": "string",
|
|
1579
|
+
"enum": [
|
|
1580
|
+
"body",
|
|
1581
|
+
"query",
|
|
1582
|
+
"header"
|
|
1583
|
+
]
|
|
1584
|
+
},
|
|
1585
|
+
"key": {
|
|
1586
|
+
"type": "string"
|
|
1587
|
+
},
|
|
1588
|
+
"value": {
|
|
1589
|
+
"type": "string"
|
|
1590
|
+
}
|
|
1591
|
+
},
|
|
1592
|
+
"required": [
|
|
1593
|
+
"type",
|
|
1594
|
+
"key",
|
|
1595
|
+
"value"
|
|
1596
|
+
]
|
|
1597
|
+
},
|
|
1598
|
+
"Metadata": {
|
|
1599
|
+
"type": "object",
|
|
1600
|
+
"description": "Contains the metadata about the configured event",
|
|
1601
|
+
"properties": {
|
|
1602
|
+
"action": {
|
|
1603
|
+
"type": "string",
|
|
1604
|
+
"description": "Action that triggered the event",
|
|
1605
|
+
"example": "Manual triggered by user with id 123456"
|
|
1606
|
+
},
|
|
1607
|
+
"origin": {
|
|
1608
|
+
"type": "string",
|
|
1609
|
+
"description": "Origin of the event"
|
|
1610
|
+
},
|
|
1611
|
+
"creation_timestamp": {
|
|
1612
|
+
"type": "string",
|
|
1613
|
+
"description": "Time of event creation"
|
|
1614
|
+
},
|
|
1615
|
+
"webhook_id": {
|
|
1616
|
+
"type": "string",
|
|
1617
|
+
"description": "The ID of the webhook configuration"
|
|
1618
|
+
},
|
|
1619
|
+
"webhook_name": {
|
|
1620
|
+
"type": "string",
|
|
1621
|
+
"description": "The name of the webhook configuration"
|
|
1622
|
+
},
|
|
1623
|
+
"automation_name": {
|
|
1624
|
+
"type": "string",
|
|
1625
|
+
"description": "The name of the automation that triggered the event"
|
|
1626
|
+
},
|
|
1627
|
+
"organization_id": {
|
|
1628
|
+
"type": "string",
|
|
1629
|
+
"description": "The ID of the given organization"
|
|
1630
|
+
},
|
|
1631
|
+
"user_id": {
|
|
1632
|
+
"type": "string",
|
|
1633
|
+
"description": "The ID of the user for manual triggered events"
|
|
1634
|
+
},
|
|
1635
|
+
"correlation_id": {
|
|
1636
|
+
"type": "string",
|
|
1637
|
+
"description": "ID used to track the event"
|
|
1638
|
+
},
|
|
1639
|
+
"execution_id": {
|
|
1640
|
+
"type": "string",
|
|
1641
|
+
"description": "When triggered by an automation this is its execution id"
|
|
1642
|
+
},
|
|
1643
|
+
"action_id": {
|
|
1644
|
+
"type": "string",
|
|
1645
|
+
"description": "When triggered by an automation this is the id of the action"
|
|
1646
|
+
}
|
|
1647
|
+
},
|
|
1648
|
+
"required": [
|
|
1649
|
+
"organization_id"
|
|
1650
|
+
]
|
|
1651
|
+
},
|
|
1652
|
+
"ExecutionPayload": {
|
|
1653
|
+
"type": "object",
|
|
1654
|
+
"description": "Payload for triggering a webhook",
|
|
1655
|
+
"additionalProperties": true,
|
|
1656
|
+
"properties": {
|
|
1657
|
+
"metadata": {
|
|
1658
|
+
"$ref": "#/components/schemas/Metadata"
|
|
1659
|
+
}
|
|
1660
|
+
},
|
|
1661
|
+
"required": [
|
|
1662
|
+
"metadata"
|
|
1663
|
+
]
|
|
1664
|
+
},
|
|
1665
|
+
"WebhookEvent": {
|
|
1666
|
+
"type": "object",
|
|
1667
|
+
"properties": {
|
|
1668
|
+
"event_id": {
|
|
1669
|
+
"type": "string"
|
|
1670
|
+
},
|
|
1671
|
+
"org_id": {
|
|
1672
|
+
"type": "string"
|
|
1673
|
+
},
|
|
1674
|
+
"webhook_config_id": {
|
|
1675
|
+
"type": "string"
|
|
1676
|
+
},
|
|
1677
|
+
"url": {
|
|
1678
|
+
"type": "string"
|
|
1679
|
+
},
|
|
1680
|
+
"created_at": {
|
|
1681
|
+
"type": "string",
|
|
1682
|
+
"example": "2021-04-27T12:01:13.000Z"
|
|
1683
|
+
},
|
|
1684
|
+
"event_name": {
|
|
1685
|
+
"type": "string"
|
|
1686
|
+
},
|
|
1687
|
+
"http_response": {
|
|
1688
|
+
"type": "object",
|
|
1689
|
+
"properties": {
|
|
1690
|
+
"status_code": {
|
|
1691
|
+
"type": "integer",
|
|
1692
|
+
"description": "The HTTP status returned by the customer endpoint (or the upstream gateway). ABSENT for epilot-internal errors (code INTERNAL_ERROR / INTERNAL_RESPONSE_TOO_LARGE), which are not customer HTTP outcomes; PRESENT only for real HTTP/upstream results. When the response was delivered but too large to record, a recovered delivered status may still be present."
|
|
1693
|
+
},
|
|
1694
|
+
"message": {
|
|
1695
|
+
"type": "string"
|
|
1696
|
+
},
|
|
1697
|
+
"body": {
|
|
1698
|
+
"type": "object"
|
|
1699
|
+
},
|
|
1700
|
+
"code": {
|
|
1701
|
+
"type": "string",
|
|
1702
|
+
"description": "Machine-readable classification of the outcome. Known values: OAuthTokenExchangeError (OAuth token exchange / upstream gateway failure), DataLimitExceeded (legacy oversized-response marker), INTERNAL_RESPONSE_TOO_LARGE (request delivered but the response was too large for epilot to record), INTERNAL_ERROR (epilot-internal processing failure — not a customer HTTP outcome)."
|
|
1703
|
+
}
|
|
1704
|
+
}
|
|
1705
|
+
},
|
|
1706
|
+
"metadata": {
|
|
1707
|
+
"$ref": "#/components/schemas/Metadata"
|
|
1708
|
+
},
|
|
1709
|
+
"status": {
|
|
1710
|
+
"type": "string",
|
|
1711
|
+
"enum": [
|
|
1712
|
+
"succeeded",
|
|
1713
|
+
"failed",
|
|
1714
|
+
"in_progress",
|
|
1715
|
+
"skipped"
|
|
1716
|
+
]
|
|
1717
|
+
},
|
|
1718
|
+
"http_method": {
|
|
1719
|
+
"type": "string",
|
|
1720
|
+
"enum": [
|
|
1721
|
+
"GET",
|
|
1722
|
+
"POST",
|
|
1723
|
+
"PUT"
|
|
1724
|
+
]
|
|
1725
|
+
},
|
|
1726
|
+
"payload": {
|
|
1727
|
+
"type": "string",
|
|
1728
|
+
"description": "stringified payload of the webhook request"
|
|
1729
|
+
},
|
|
1730
|
+
"original_payload": {
|
|
1731
|
+
"type": "string",
|
|
1732
|
+
"description": "Stringified pre-transform original payload — the raw input captured before any JSONata transform was applied. Returned by getEventById for non-catalog events that have a locally stored original source (inline or claim-checked to S3, hydrated here). Omitted when no original source exists or when the payload would exceed the inline response size limit. Catalog-backed events (event_-prefixed) do not carry a local original — their pre-transform payload is sourced from the event catalog instead."
|
|
1733
|
+
},
|
|
1734
|
+
"retry_attempt": {
|
|
1735
|
+
"type": "integer",
|
|
1736
|
+
"description": "Number of automatic delivery retries that preceded this terminal outcome. 0 means the event was delivered (or finally failed) on the first attempt."
|
|
1737
|
+
},
|
|
1738
|
+
"can_reapply_transform": {
|
|
1739
|
+
"type": "boolean",
|
|
1740
|
+
"description": "Whether this event can be replayed with the JSONata transform re-applied. True only when the webhook config has a non-empty jsonataExpression AND a usable original source exists (a catalog reference or a locally stored original payload). Computed without a synchronous catalog round-trip."
|
|
1741
|
+
},
|
|
1742
|
+
"can_reapply_transform_reason": {
|
|
1743
|
+
"type": "string",
|
|
1744
|
+
"enum": [
|
|
1745
|
+
"available",
|
|
1746
|
+
"no_transform_configured",
|
|
1747
|
+
"no_original_source"
|
|
1748
|
+
],
|
|
1749
|
+
"description": "Reason explaining the can_reapply_transform value."
|
|
1750
|
+
}
|
|
1751
|
+
},
|
|
1752
|
+
"required": [
|
|
1753
|
+
"event_id",
|
|
1754
|
+
"webhook_config_id",
|
|
1755
|
+
"org_id"
|
|
1756
|
+
]
|
|
1757
|
+
},
|
|
1758
|
+
"ExampleRequest": {
|
|
1759
|
+
"type": "object",
|
|
1760
|
+
"properties": {
|
|
1761
|
+
"automation_id": {
|
|
1762
|
+
"type": "string",
|
|
1763
|
+
"description": "ID of the automation, if applicable",
|
|
1764
|
+
"example": "automation_123"
|
|
1765
|
+
}
|
|
1766
|
+
}
|
|
1767
|
+
},
|
|
1768
|
+
"ExampleResponse": {
|
|
1769
|
+
"type": "object",
|
|
1770
|
+
"properties": {
|
|
1771
|
+
"metadata": {
|
|
1772
|
+
"$ref": "#/components/schemas/Metadata"
|
|
1773
|
+
},
|
|
1774
|
+
"entity": {
|
|
1775
|
+
"type": "object",
|
|
1776
|
+
"description": "Example payload for the webhook event",
|
|
1777
|
+
"additionalProperties": true
|
|
1778
|
+
},
|
|
1779
|
+
"relations": {
|
|
1780
|
+
"type": "array",
|
|
1781
|
+
"description": "Example relations for the webhook event",
|
|
1782
|
+
"items": {
|
|
1783
|
+
"type": "object",
|
|
1784
|
+
"additionalProperties": true
|
|
1785
|
+
}
|
|
1786
|
+
}
|
|
1787
|
+
},
|
|
1788
|
+
"additionalProperties": true
|
|
1789
|
+
},
|
|
1790
|
+
"TestOAuthResponse": {
|
|
1791
|
+
"type": "object",
|
|
1792
|
+
"properties": {
|
|
1793
|
+
"success": {
|
|
1794
|
+
"type": "boolean",
|
|
1795
|
+
"description": "Whether the OAuth token exchange succeeded",
|
|
1796
|
+
"example": true
|
|
1797
|
+
},
|
|
1798
|
+
"expires_in": {
|
|
1799
|
+
"type": "number",
|
|
1800
|
+
"description": "Token validity in seconds as reported by the OAuth provider",
|
|
1801
|
+
"example": 3600
|
|
1802
|
+
},
|
|
1803
|
+
"token_type": {
|
|
1804
|
+
"type": "string",
|
|
1805
|
+
"description": "Token type returned by the OAuth provider",
|
|
1806
|
+
"example": "Bearer"
|
|
1807
|
+
},
|
|
1808
|
+
"message": {
|
|
1809
|
+
"type": "string",
|
|
1810
|
+
"description": "Human-readable result message",
|
|
1811
|
+
"example": "OAuth token exchange successful"
|
|
1812
|
+
}
|
|
1813
|
+
},
|
|
1814
|
+
"required": [
|
|
1815
|
+
"success",
|
|
1816
|
+
"message"
|
|
1817
|
+
]
|
|
1818
|
+
},
|
|
1819
|
+
"ReplayRequest": {
|
|
1820
|
+
"type": "object",
|
|
1821
|
+
"properties": {
|
|
1822
|
+
"reapply_transform": {
|
|
1823
|
+
"type": "boolean",
|
|
1824
|
+
"default": false,
|
|
1825
|
+
"description": "When true, reconstruct the original (pre-transform) event input and re-run the full delivery pipeline (file-loading + JSONata). When false or omitted, resend the previously delivered (post-transform) payload verbatim (backward-compatible default)."
|
|
1826
|
+
}
|
|
1827
|
+
}
|
|
1828
|
+
},
|
|
1829
|
+
"BatchReplayRequest": {
|
|
1830
|
+
"type": "object",
|
|
1831
|
+
"properties": {
|
|
1832
|
+
"eventIds": {
|
|
1833
|
+
"type": "array",
|
|
1834
|
+
"items": {
|
|
1835
|
+
"type": "string"
|
|
1836
|
+
},
|
|
1837
|
+
"description": "List of event IDs to replay",
|
|
1838
|
+
"minItems": 1,
|
|
1839
|
+
"maxItems": 100,
|
|
1840
|
+
"example": [
|
|
1841
|
+
"2f1b7cf8-ff55-4359-966f-e56f39a52c94",
|
|
1842
|
+
"48c984bf-466b-470b-b743-d07cea168243"
|
|
1843
|
+
]
|
|
1844
|
+
},
|
|
1845
|
+
"reapply_transform": {
|
|
1846
|
+
"type": "boolean",
|
|
1847
|
+
"default": false,
|
|
1848
|
+
"description": "When true, reconstruct the original (pre-transform) input for each event and re-run the full delivery pipeline (file-loading + JSONata). When false or omitted, resend the previously delivered (post-transform) payload verbatim (backward-compatible default)."
|
|
1849
|
+
}
|
|
1850
|
+
},
|
|
1851
|
+
"required": [
|
|
1852
|
+
"eventIds"
|
|
1853
|
+
]
|
|
1854
|
+
}
|
|
1855
|
+
},
|
|
1856
|
+
"securitySchemes": {
|
|
1857
|
+
"EpilotAuth": {
|
|
1858
|
+
"type": "http",
|
|
1859
|
+
"scheme": "bearer",
|
|
1860
|
+
"description": "Authorization header with epilot OAuth2 bearer token",
|
|
1861
|
+
"bearerFormat": "JWT"
|
|
1862
|
+
}
|
|
1863
|
+
}
|
|
1864
|
+
},
|
|
1865
|
+
"security": [
|
|
1866
|
+
{
|
|
1867
|
+
"EpilotAuth": []
|
|
1868
|
+
}
|
|
1869
|
+
],
|
|
1870
|
+
"servers": [
|
|
1871
|
+
{
|
|
1872
|
+
"url": "https://webhooks.sls.epilot.io"
|
|
1873
|
+
}
|
|
1874
|
+
]
|
|
1875
|
+
}
|