@epilot/sdk 2.19.3 → 2.19.4
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 +19919 -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.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-QWWGJOYR.cjs → chunk-AD5FK5LK.cjs} +1 -1
- package/dist/{chunk-UC3IKFHD.js → chunk-PHOP6DMJ.js} +1 -1
- package/dist/index.cjs +8 -8
- package/dist/index.d.cts +1 -1
- package/dist/index.d.ts +1 -1
- 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/targeting.md +9 -1
- package/package.json +1 -1
- package/dist/targeting-BTVCLYFW.cjs +0 -7
- package/dist/targeting-NWYDE3E7.js +0 -7
|
@@ -0,0 +1,1355 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.0.0",
|
|
3
|
+
"info": {
|
|
4
|
+
"title": "Dashboard API",
|
|
5
|
+
"version": "0.0.1",
|
|
6
|
+
"description": "API to store the dashboard configuration for the epilot 360 dashboard\n"
|
|
7
|
+
},
|
|
8
|
+
"security": [
|
|
9
|
+
{
|
|
10
|
+
"EpilotAuth": []
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"EpilotOrg": []
|
|
14
|
+
}
|
|
15
|
+
],
|
|
16
|
+
"tags": [
|
|
17
|
+
{
|
|
18
|
+
"name": "Dashboards"
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
"name": "Insights"
|
|
22
|
+
},
|
|
23
|
+
{
|
|
24
|
+
"name": "Visualisations"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "Examples"
|
|
28
|
+
}
|
|
29
|
+
],
|
|
30
|
+
"paths": {
|
|
31
|
+
"/v1/dashboard/dashboards": {
|
|
32
|
+
"get": {
|
|
33
|
+
"operationId": "listDashboards",
|
|
34
|
+
"summary": "listDashboards",
|
|
35
|
+
"description": "List dashboards available to the user",
|
|
36
|
+
"tags": [
|
|
37
|
+
"Dashboards"
|
|
38
|
+
],
|
|
39
|
+
"parameters": [
|
|
40
|
+
{
|
|
41
|
+
"$ref": "#/components/parameters/Search"
|
|
42
|
+
},
|
|
43
|
+
{
|
|
44
|
+
"$ref": "#/components/parameters/CreatedBy"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"$ref": "#/components/parameters/CreatedAfter"
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
"$ref": "#/components/parameters/CreatedBefore"
|
|
51
|
+
},
|
|
52
|
+
{
|
|
53
|
+
"$ref": "#/components/parameters/UpdatedAfter"
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
"$ref": "#/components/parameters/UpdatedBefore"
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"$ref": "#/components/parameters/SharedWith"
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
"$ref": "#/components/parameters/Owner"
|
|
63
|
+
},
|
|
64
|
+
{
|
|
65
|
+
"$ref": "#/components/parameters/AccessibleTo"
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
"$ref": "#/components/parameters/Favorite"
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
"$ref": "#/components/parameters/FavoritesFirst"
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
"$ref": "#/components/parameters/Sort"
|
|
75
|
+
},
|
|
76
|
+
{
|
|
77
|
+
"$ref": "#/components/parameters/Order"
|
|
78
|
+
},
|
|
79
|
+
{
|
|
80
|
+
"$ref": "#/components/parameters/Limit"
|
|
81
|
+
},
|
|
82
|
+
{
|
|
83
|
+
"$ref": "#/components/parameters/Offset"
|
|
84
|
+
}
|
|
85
|
+
],
|
|
86
|
+
"responses": {
|
|
87
|
+
"200": {
|
|
88
|
+
"description": "List of dashboards available to the user",
|
|
89
|
+
"content": {
|
|
90
|
+
"application/json": {
|
|
91
|
+
"schema": {
|
|
92
|
+
"type": "object",
|
|
93
|
+
"properties": {
|
|
94
|
+
"results": {
|
|
95
|
+
"type": "array",
|
|
96
|
+
"items": {
|
|
97
|
+
"$ref": "#/components/schemas/Dashboard"
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"pagination": {
|
|
101
|
+
"$ref": "#/components/schemas/Pagination"
|
|
102
|
+
}
|
|
103
|
+
},
|
|
104
|
+
"required": [
|
|
105
|
+
"results",
|
|
106
|
+
"pagination"
|
|
107
|
+
]
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
},
|
|
114
|
+
"post": {
|
|
115
|
+
"operationId": "createDashboard",
|
|
116
|
+
"summary": "createDashboard",
|
|
117
|
+
"description": "Create new dashboard",
|
|
118
|
+
"tags": [
|
|
119
|
+
"Dashboards"
|
|
120
|
+
],
|
|
121
|
+
"requestBody": {
|
|
122
|
+
"description": "The dashboard to create",
|
|
123
|
+
"content": {
|
|
124
|
+
"application/json": {
|
|
125
|
+
"schema": {
|
|
126
|
+
"$ref": "#/components/schemas/Dashboard"
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"responses": {
|
|
132
|
+
"201": {
|
|
133
|
+
"description": "The created dashboard",
|
|
134
|
+
"content": {
|
|
135
|
+
"application/json": {
|
|
136
|
+
"schema": {
|
|
137
|
+
"$ref": "#/components/schemas/Dashboard"
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"/v1/dashboard/dashboards/favorites": {
|
|
146
|
+
"get": {
|
|
147
|
+
"operationId": "listFavoriteDashboardIds",
|
|
148
|
+
"summary": "listFavoriteDashboardIds",
|
|
149
|
+
"description": "Returns the current user's favorited dashboard ids, with no dashboard metadata. Lets a\nclient decide whether to default to a favorites-only view without first fetching the full\ndashboards list.\n",
|
|
150
|
+
"tags": [
|
|
151
|
+
"Dashboards"
|
|
152
|
+
],
|
|
153
|
+
"responses": {
|
|
154
|
+
"200": {
|
|
155
|
+
"description": "The current user's favorited dashboard ids",
|
|
156
|
+
"content": {
|
|
157
|
+
"application/json": {
|
|
158
|
+
"schema": {
|
|
159
|
+
"type": "object",
|
|
160
|
+
"properties": {
|
|
161
|
+
"dashboard_ids": {
|
|
162
|
+
"type": "array",
|
|
163
|
+
"items": {
|
|
164
|
+
"$ref": "#/components/schemas/DashboardID"
|
|
165
|
+
}
|
|
166
|
+
},
|
|
167
|
+
"total": {
|
|
168
|
+
"type": "integer"
|
|
169
|
+
}
|
|
170
|
+
},
|
|
171
|
+
"required": [
|
|
172
|
+
"dashboard_ids",
|
|
173
|
+
"total"
|
|
174
|
+
]
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
},
|
|
182
|
+
"/v1/dashboard/dashboards/{id}/favorite": {
|
|
183
|
+
"parameters": [
|
|
184
|
+
{
|
|
185
|
+
"name": "id",
|
|
186
|
+
"in": "path",
|
|
187
|
+
"required": true,
|
|
188
|
+
"schema": {
|
|
189
|
+
"$ref": "#/components/schemas/DashboardID"
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
],
|
|
193
|
+
"put": {
|
|
194
|
+
"operationId": "favoriteDashboard",
|
|
195
|
+
"summary": "favoriteDashboard",
|
|
196
|
+
"description": "Marks the dashboard as favorited by the current user. Idempotent — favoriting an\nalready-favorited dashboard is not an error. Requires only view-level access to the\ndashboard (unlike the edit-level check on `PATCH .../dashboards/{id}`).\n",
|
|
197
|
+
"tags": [
|
|
198
|
+
"Dashboards"
|
|
199
|
+
],
|
|
200
|
+
"responses": {
|
|
201
|
+
"204": {
|
|
202
|
+
"description": "The dashboard is now favorited by the current user"
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
},
|
|
206
|
+
"delete": {
|
|
207
|
+
"operationId": "unfavoriteDashboard",
|
|
208
|
+
"summary": "unfavoriteDashboard",
|
|
209
|
+
"description": "Removes the current user's favorite for the dashboard. Idempotent — unfavoriting a\ndashboard that was not favorited is not an error, and neither is unfavoriting one that no\nlonger exists or is no longer shared with you. Requires no access to the dashboard, so that\na stale favorite always remains removable.\n",
|
|
210
|
+
"tags": [
|
|
211
|
+
"Dashboards"
|
|
212
|
+
],
|
|
213
|
+
"responses": {
|
|
214
|
+
"204": {
|
|
215
|
+
"description": "The dashboard is no longer favorited by the current user"
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
},
|
|
220
|
+
"/v1/dashboard/dashboards/{id}": {
|
|
221
|
+
"parameters": [
|
|
222
|
+
{
|
|
223
|
+
"name": "id",
|
|
224
|
+
"in": "path",
|
|
225
|
+
"required": true,
|
|
226
|
+
"schema": {
|
|
227
|
+
"$ref": "#/components/schemas/DashboardID"
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
],
|
|
231
|
+
"get": {
|
|
232
|
+
"operationId": "getDashboard",
|
|
233
|
+
"summary": "getDashboard",
|
|
234
|
+
"description": "Get dashboard by ID",
|
|
235
|
+
"tags": [
|
|
236
|
+
"Dashboards"
|
|
237
|
+
],
|
|
238
|
+
"responses": {
|
|
239
|
+
"200": {
|
|
240
|
+
"description": "The dashboard with the passed ID",
|
|
241
|
+
"content": {
|
|
242
|
+
"application/json": {
|
|
243
|
+
"schema": {
|
|
244
|
+
"$ref": "#/components/schemas/Dashboard"
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
},
|
|
251
|
+
"put": {
|
|
252
|
+
"operationId": "putDashboard",
|
|
253
|
+
"summary": "putDashboard",
|
|
254
|
+
"description": "Update a dashboard by ID",
|
|
255
|
+
"tags": [
|
|
256
|
+
"Dashboards"
|
|
257
|
+
],
|
|
258
|
+
"requestBody": {
|
|
259
|
+
"description": "The updated dashboard",
|
|
260
|
+
"content": {
|
|
261
|
+
"application/json": {
|
|
262
|
+
"schema": {
|
|
263
|
+
"$ref": "#/components/schemas/Dashboard"
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
},
|
|
268
|
+
"responses": {
|
|
269
|
+
"200": {
|
|
270
|
+
"description": "The dashboard with the passed ID",
|
|
271
|
+
"content": {
|
|
272
|
+
"application/json": {
|
|
273
|
+
"schema": {
|
|
274
|
+
"$ref": "#/components/schemas/Dashboard"
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
},
|
|
281
|
+
"patch": {
|
|
282
|
+
"operationId": "patchDashboard",
|
|
283
|
+
"summary": "patchDashboard",
|
|
284
|
+
"description": "Partially update a dashboard by ID. Update content (title/tiles) and/or manage sharing\n(owners, shared_with, org_access) — only owners may change sharing.\n`owners` and `shared_with` replace the whole array (send the complete list); omit them to leave\nsharing unchanged, or send `shared_with: []` to revoke all per-user grants.\n",
|
|
285
|
+
"tags": [
|
|
286
|
+
"Dashboards"
|
|
287
|
+
],
|
|
288
|
+
"requestBody": {
|
|
289
|
+
"description": "The dashboard fields to update",
|
|
290
|
+
"content": {
|
|
291
|
+
"application/json": {
|
|
292
|
+
"schema": {
|
|
293
|
+
"$ref": "#/components/schemas/DashboardPatch"
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
}
|
|
297
|
+
},
|
|
298
|
+
"responses": {
|
|
299
|
+
"200": {
|
|
300
|
+
"description": "The updated dashboard",
|
|
301
|
+
"content": {
|
|
302
|
+
"application/json": {
|
|
303
|
+
"schema": {
|
|
304
|
+
"$ref": "#/components/schemas/Dashboard"
|
|
305
|
+
}
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
}
|
|
310
|
+
},
|
|
311
|
+
"delete": {
|
|
312
|
+
"operationId": "deleteDashboard",
|
|
313
|
+
"summary": "deleteDashboard",
|
|
314
|
+
"description": "Delete a dashboard by ID",
|
|
315
|
+
"tags": [
|
|
316
|
+
"Dashboards"
|
|
317
|
+
],
|
|
318
|
+
"responses": {
|
|
319
|
+
"200": {
|
|
320
|
+
"description": "The deleted dashboard",
|
|
321
|
+
"content": {
|
|
322
|
+
"application/json": {
|
|
323
|
+
"schema": {
|
|
324
|
+
"$ref": "#/components/schemas/Dashboard"
|
|
325
|
+
}
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
},
|
|
332
|
+
"/v1/dashboard/insights": {
|
|
333
|
+
"get": {
|
|
334
|
+
"operationId": "listInsights",
|
|
335
|
+
"summary": "listInsights",
|
|
336
|
+
"description": "List insights (saved charts) available to the user",
|
|
337
|
+
"tags": [
|
|
338
|
+
"Insights"
|
|
339
|
+
],
|
|
340
|
+
"parameters": [
|
|
341
|
+
{
|
|
342
|
+
"$ref": "#/components/parameters/Search"
|
|
343
|
+
},
|
|
344
|
+
{
|
|
345
|
+
"$ref": "#/components/parameters/VisualisationIdFilter"
|
|
346
|
+
},
|
|
347
|
+
{
|
|
348
|
+
"$ref": "#/components/parameters/TagsFilter"
|
|
349
|
+
},
|
|
350
|
+
{
|
|
351
|
+
"$ref": "#/components/parameters/TagsMatch"
|
|
352
|
+
},
|
|
353
|
+
{
|
|
354
|
+
"$ref": "#/components/parameters/CreatedBy"
|
|
355
|
+
},
|
|
356
|
+
{
|
|
357
|
+
"$ref": "#/components/parameters/CreatedAfter"
|
|
358
|
+
},
|
|
359
|
+
{
|
|
360
|
+
"$ref": "#/components/parameters/CreatedBefore"
|
|
361
|
+
},
|
|
362
|
+
{
|
|
363
|
+
"$ref": "#/components/parameters/UpdatedAfter"
|
|
364
|
+
},
|
|
365
|
+
{
|
|
366
|
+
"$ref": "#/components/parameters/UpdatedBefore"
|
|
367
|
+
},
|
|
368
|
+
{
|
|
369
|
+
"$ref": "#/components/parameters/SharedWith"
|
|
370
|
+
},
|
|
371
|
+
{
|
|
372
|
+
"$ref": "#/components/parameters/Owner"
|
|
373
|
+
},
|
|
374
|
+
{
|
|
375
|
+
"$ref": "#/components/parameters/AccessibleTo"
|
|
376
|
+
},
|
|
377
|
+
{
|
|
378
|
+
"$ref": "#/components/parameters/Sort"
|
|
379
|
+
},
|
|
380
|
+
{
|
|
381
|
+
"$ref": "#/components/parameters/Order"
|
|
382
|
+
},
|
|
383
|
+
{
|
|
384
|
+
"$ref": "#/components/parameters/Limit"
|
|
385
|
+
},
|
|
386
|
+
{
|
|
387
|
+
"$ref": "#/components/parameters/Offset"
|
|
388
|
+
}
|
|
389
|
+
],
|
|
390
|
+
"responses": {
|
|
391
|
+
"200": {
|
|
392
|
+
"description": "List of insights available to the user",
|
|
393
|
+
"content": {
|
|
394
|
+
"application/json": {
|
|
395
|
+
"schema": {
|
|
396
|
+
"type": "object",
|
|
397
|
+
"properties": {
|
|
398
|
+
"results": {
|
|
399
|
+
"type": "array",
|
|
400
|
+
"items": {
|
|
401
|
+
"$ref": "#/components/schemas/Insight"
|
|
402
|
+
}
|
|
403
|
+
},
|
|
404
|
+
"pagination": {
|
|
405
|
+
"$ref": "#/components/schemas/Pagination"
|
|
406
|
+
}
|
|
407
|
+
},
|
|
408
|
+
"required": [
|
|
409
|
+
"results",
|
|
410
|
+
"pagination"
|
|
411
|
+
]
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
}
|
|
416
|
+
}
|
|
417
|
+
},
|
|
418
|
+
"post": {
|
|
419
|
+
"operationId": "createInsight",
|
|
420
|
+
"summary": "createInsight",
|
|
421
|
+
"description": "Create a new insight (saved chart). The caller becomes the owner.",
|
|
422
|
+
"tags": [
|
|
423
|
+
"Insights"
|
|
424
|
+
],
|
|
425
|
+
"requestBody": {
|
|
426
|
+
"description": "The insight to create",
|
|
427
|
+
"content": {
|
|
428
|
+
"application/json": {
|
|
429
|
+
"schema": {
|
|
430
|
+
"$ref": "#/components/schemas/Insight"
|
|
431
|
+
}
|
|
432
|
+
}
|
|
433
|
+
}
|
|
434
|
+
},
|
|
435
|
+
"responses": {
|
|
436
|
+
"201": {
|
|
437
|
+
"description": "The created insight",
|
|
438
|
+
"content": {
|
|
439
|
+
"application/json": {
|
|
440
|
+
"schema": {
|
|
441
|
+
"$ref": "#/components/schemas/Insight"
|
|
442
|
+
}
|
|
443
|
+
}
|
|
444
|
+
}
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
}
|
|
448
|
+
},
|
|
449
|
+
"/v1/dashboard/insights/tags": {
|
|
450
|
+
"get": {
|
|
451
|
+
"operationId": "listInsightTags",
|
|
452
|
+
"summary": "listInsightTags",
|
|
453
|
+
"description": "List the distinct tags used by insights in the organization (for filter facets)",
|
|
454
|
+
"tags": [
|
|
455
|
+
"Insights"
|
|
456
|
+
],
|
|
457
|
+
"responses": {
|
|
458
|
+
"200": {
|
|
459
|
+
"description": "Distinct tags used by insights in the organization",
|
|
460
|
+
"content": {
|
|
461
|
+
"application/json": {
|
|
462
|
+
"schema": {
|
|
463
|
+
"type": "object",
|
|
464
|
+
"properties": {
|
|
465
|
+
"results": {
|
|
466
|
+
"type": "array",
|
|
467
|
+
"items": {
|
|
468
|
+
"type": "string"
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
}
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
}
|
|
476
|
+
}
|
|
477
|
+
}
|
|
478
|
+
},
|
|
479
|
+
"/v1/dashboard/insights/{id}": {
|
|
480
|
+
"parameters": [
|
|
481
|
+
{
|
|
482
|
+
"name": "id",
|
|
483
|
+
"in": "path",
|
|
484
|
+
"required": true,
|
|
485
|
+
"schema": {
|
|
486
|
+
"$ref": "#/components/schemas/InsightID"
|
|
487
|
+
}
|
|
488
|
+
}
|
|
489
|
+
],
|
|
490
|
+
"get": {
|
|
491
|
+
"operationId": "getInsight",
|
|
492
|
+
"summary": "getInsight",
|
|
493
|
+
"description": "Get insight by ID",
|
|
494
|
+
"tags": [
|
|
495
|
+
"Insights"
|
|
496
|
+
],
|
|
497
|
+
"responses": {
|
|
498
|
+
"200": {
|
|
499
|
+
"description": "The insight with the passed ID",
|
|
500
|
+
"content": {
|
|
501
|
+
"application/json": {
|
|
502
|
+
"schema": {
|
|
503
|
+
"$ref": "#/components/schemas/Insight"
|
|
504
|
+
}
|
|
505
|
+
}
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
}
|
|
509
|
+
},
|
|
510
|
+
"put": {
|
|
511
|
+
"operationId": "putInsight",
|
|
512
|
+
"summary": "putInsight",
|
|
513
|
+
"description": "Replace an insight's content by ID. Sharing is managed via patchInsight.",
|
|
514
|
+
"tags": [
|
|
515
|
+
"Insights"
|
|
516
|
+
],
|
|
517
|
+
"requestBody": {
|
|
518
|
+
"description": "The updated insight",
|
|
519
|
+
"content": {
|
|
520
|
+
"application/json": {
|
|
521
|
+
"schema": {
|
|
522
|
+
"$ref": "#/components/schemas/Insight"
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
}
|
|
526
|
+
},
|
|
527
|
+
"responses": {
|
|
528
|
+
"200": {
|
|
529
|
+
"description": "The insight with the passed ID",
|
|
530
|
+
"content": {
|
|
531
|
+
"application/json": {
|
|
532
|
+
"schema": {
|
|
533
|
+
"$ref": "#/components/schemas/Insight"
|
|
534
|
+
}
|
|
535
|
+
}
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
},
|
|
540
|
+
"patch": {
|
|
541
|
+
"operationId": "patchInsight",
|
|
542
|
+
"summary": "patchInsight",
|
|
543
|
+
"description": "Partially update an insight by ID. Update content (name/description/visualisation/tags) and/or\nmanage sharing (owners, shared_with, org_access) — only owners may change sharing.\n`owners` and `shared_with` replace the whole array (send the complete list); omit them to leave\nsharing unchanged, or send `shared_with: []` to revoke all per-user grants.\n",
|
|
544
|
+
"tags": [
|
|
545
|
+
"Insights"
|
|
546
|
+
],
|
|
547
|
+
"requestBody": {
|
|
548
|
+
"description": "The insight fields to update",
|
|
549
|
+
"content": {
|
|
550
|
+
"application/json": {
|
|
551
|
+
"schema": {
|
|
552
|
+
"$ref": "#/components/schemas/InsightPatch"
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
}
|
|
556
|
+
},
|
|
557
|
+
"responses": {
|
|
558
|
+
"200": {
|
|
559
|
+
"description": "The updated insight",
|
|
560
|
+
"content": {
|
|
561
|
+
"application/json": {
|
|
562
|
+
"schema": {
|
|
563
|
+
"$ref": "#/components/schemas/Insight"
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
}
|
|
567
|
+
}
|
|
568
|
+
}
|
|
569
|
+
},
|
|
570
|
+
"delete": {
|
|
571
|
+
"operationId": "deleteInsight",
|
|
572
|
+
"summary": "deleteInsight",
|
|
573
|
+
"description": "Delete an insight by ID. Only owners may delete.",
|
|
574
|
+
"tags": [
|
|
575
|
+
"Insights"
|
|
576
|
+
],
|
|
577
|
+
"responses": {
|
|
578
|
+
"200": {
|
|
579
|
+
"description": "The deleted insight",
|
|
580
|
+
"content": {
|
|
581
|
+
"application/json": {
|
|
582
|
+
"schema": {
|
|
583
|
+
"$ref": "#/components/schemas/Insight"
|
|
584
|
+
}
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
}
|
|
588
|
+
}
|
|
589
|
+
}
|
|
590
|
+
},
|
|
591
|
+
"/v1/dashboard/visualisations": {
|
|
592
|
+
"get": {
|
|
593
|
+
"operationId": "listAvailableVisualisations",
|
|
594
|
+
"summary": "listAvailableVisualisations",
|
|
595
|
+
"description": "Returns list of available Visualisations to configure new dashboard tiles",
|
|
596
|
+
"tags": [
|
|
597
|
+
"Visualisations"
|
|
598
|
+
],
|
|
599
|
+
"responses": {
|
|
600
|
+
"200": {
|
|
601
|
+
"description": "List of available Visualisations to configure new dashboard tiles",
|
|
602
|
+
"content": {
|
|
603
|
+
"application/json": {
|
|
604
|
+
"schema": {
|
|
605
|
+
"type": "object",
|
|
606
|
+
"properties": {
|
|
607
|
+
"results": {
|
|
608
|
+
"type": "array",
|
|
609
|
+
"items": {
|
|
610
|
+
"$ref": "#/components/schemas/Visualisation"
|
|
611
|
+
},
|
|
612
|
+
"example": [
|
|
613
|
+
{
|
|
614
|
+
"visualisation": "timechart",
|
|
615
|
+
"title": "Time Series Visualisation",
|
|
616
|
+
"description": "Visualise your metrics with respect to time series",
|
|
617
|
+
"package_name": "@epilot360/highcharts"
|
|
618
|
+
},
|
|
619
|
+
{
|
|
620
|
+
"visualisation": "kpi",
|
|
621
|
+
"title": "KPI Visualisation",
|
|
622
|
+
"description": "Visualise your key performance indicators",
|
|
623
|
+
"package_name": "@epilot360/kpi"
|
|
624
|
+
}
|
|
625
|
+
]
|
|
626
|
+
}
|
|
627
|
+
}
|
|
628
|
+
}
|
|
629
|
+
}
|
|
630
|
+
}
|
|
631
|
+
}
|
|
632
|
+
}
|
|
633
|
+
}
|
|
634
|
+
},
|
|
635
|
+
"/v1/dashboard/examples": {
|
|
636
|
+
"get": {
|
|
637
|
+
"operationId": "listAvailableExamples",
|
|
638
|
+
"summary": "listAvailableExamples",
|
|
639
|
+
"description": "Returns list of available exampless for visualisations to configure new dashboard tiles",
|
|
640
|
+
"tags": [
|
|
641
|
+
"Examples"
|
|
642
|
+
],
|
|
643
|
+
"responses": {
|
|
644
|
+
"200": {
|
|
645
|
+
"description": "List of available exampless for visualisations to configure new dashboard tiles",
|
|
646
|
+
"content": {
|
|
647
|
+
"application/json": {
|
|
648
|
+
"schema": {
|
|
649
|
+
"type": "object",
|
|
650
|
+
"properties": {
|
|
651
|
+
"results": {
|
|
652
|
+
"type": "array",
|
|
653
|
+
"items": {
|
|
654
|
+
"$ref": "#/components/schemas/Example"
|
|
655
|
+
}
|
|
656
|
+
}
|
|
657
|
+
}
|
|
658
|
+
}
|
|
659
|
+
}
|
|
660
|
+
}
|
|
661
|
+
}
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
},
|
|
666
|
+
"components": {
|
|
667
|
+
"schemas": {
|
|
668
|
+
"DashboardID": {
|
|
669
|
+
"description": "Unique identifier for dashboard",
|
|
670
|
+
"type": "string",
|
|
671
|
+
"format": "uuid",
|
|
672
|
+
"example": "3fa85f64-5717-4562-b3fc-2c963f66afa6"
|
|
673
|
+
},
|
|
674
|
+
"Dashboard": {
|
|
675
|
+
"description": "A dashboard configuration. A dashboard is a canvas whose tiles arrange and\nposition insights (saved charts). Tiles may reference an insight by `insight_id`\nor, for backwards compatibility, embed a visualisation inline.\n",
|
|
676
|
+
"allOf": [
|
|
677
|
+
{
|
|
678
|
+
"$ref": "#/components/schemas/AccessControl"
|
|
679
|
+
},
|
|
680
|
+
{
|
|
681
|
+
"type": "object",
|
|
682
|
+
"properties": {
|
|
683
|
+
"id": {
|
|
684
|
+
"$ref": "#/components/schemas/DashboardID"
|
|
685
|
+
},
|
|
686
|
+
"title": {
|
|
687
|
+
"type": "string",
|
|
688
|
+
"example": "Employee Dashboard"
|
|
689
|
+
},
|
|
690
|
+
"tiles": {
|
|
691
|
+
"type": "array",
|
|
692
|
+
"items": {
|
|
693
|
+
"$ref": "#/components/schemas/DashboardTile"
|
|
694
|
+
},
|
|
695
|
+
"example": [
|
|
696
|
+
{
|
|
697
|
+
"id": "e4af1297-1fd6-440f-9846-f475f580d40f",
|
|
698
|
+
"coordinates": {},
|
|
699
|
+
"insight_id": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e"
|
|
700
|
+
}
|
|
701
|
+
]
|
|
702
|
+
},
|
|
703
|
+
"favorited": {
|
|
704
|
+
"description": "Whether the requesting user has favorited this dashboard.",
|
|
705
|
+
"type": "boolean",
|
|
706
|
+
"readOnly": true,
|
|
707
|
+
"example": false
|
|
708
|
+
}
|
|
709
|
+
},
|
|
710
|
+
"required": [
|
|
711
|
+
"title",
|
|
712
|
+
"tiles"
|
|
713
|
+
]
|
|
714
|
+
}
|
|
715
|
+
]
|
|
716
|
+
},
|
|
717
|
+
"DashboardTileID": {
|
|
718
|
+
"description": "Unique identifier for a tile in a dashboard",
|
|
719
|
+
"type": "string",
|
|
720
|
+
"format": "uuid",
|
|
721
|
+
"example": "e4af1297-1fd6-440f-9846-f475f580d40f"
|
|
722
|
+
},
|
|
723
|
+
"SharePermission": {
|
|
724
|
+
"description": "Permission level granted to a user (or the whole organization) on a shared resource.\n`view` allows read-only access; `edit` additionally allows updating the content.\nFull control (delete and managing sharing) is reserved for owners.\n",
|
|
725
|
+
"type": "string",
|
|
726
|
+
"enum": [
|
|
727
|
+
"view",
|
|
728
|
+
"edit"
|
|
729
|
+
],
|
|
730
|
+
"example": "view"
|
|
731
|
+
},
|
|
732
|
+
"ShareGrant": {
|
|
733
|
+
"description": "Grants a single user a permission level on a resource",
|
|
734
|
+
"type": "object",
|
|
735
|
+
"properties": {
|
|
736
|
+
"user_id": {
|
|
737
|
+
"description": "The id of the user the resource is shared with",
|
|
738
|
+
"type": "string",
|
|
739
|
+
"example": "10598"
|
|
740
|
+
},
|
|
741
|
+
"permission": {
|
|
742
|
+
"$ref": "#/components/schemas/SharePermission"
|
|
743
|
+
}
|
|
744
|
+
},
|
|
745
|
+
"required": [
|
|
746
|
+
"user_id",
|
|
747
|
+
"permission"
|
|
748
|
+
]
|
|
749
|
+
},
|
|
750
|
+
"OrgAccess": {
|
|
751
|
+
"description": "Optional organization-wide grant. When set, every user in the resource's organization\nis granted this permission level. `null` (or omitted) means the resource is not shared\norg-wide.\n",
|
|
752
|
+
"anyOf": [
|
|
753
|
+
{
|
|
754
|
+
"type": "string",
|
|
755
|
+
"enum": [
|
|
756
|
+
"view",
|
|
757
|
+
"edit"
|
|
758
|
+
]
|
|
759
|
+
},
|
|
760
|
+
{
|
|
761
|
+
"enum": [
|
|
762
|
+
null
|
|
763
|
+
]
|
|
764
|
+
}
|
|
765
|
+
],
|
|
766
|
+
"example": "view"
|
|
767
|
+
},
|
|
768
|
+
"AccessControl": {
|
|
769
|
+
"description": "Ownership and sharing metadata common to dashboards and insights. `created_*`/`updated_*`\nfields are managed by the server. `owners`, `shared_with` and `org_access` describe who\nmay access the resource. New resources are private to their creator until shared.\n",
|
|
770
|
+
"type": "object",
|
|
771
|
+
"properties": {
|
|
772
|
+
"created_by": {
|
|
773
|
+
"description": "Id of the user who created the resource",
|
|
774
|
+
"type": "string",
|
|
775
|
+
"readOnly": true,
|
|
776
|
+
"example": "10598"
|
|
777
|
+
},
|
|
778
|
+
"created_at": {
|
|
779
|
+
"type": "string",
|
|
780
|
+
"format": "date-time",
|
|
781
|
+
"readOnly": true
|
|
782
|
+
},
|
|
783
|
+
"updated_by": {
|
|
784
|
+
"description": "Id of the user who last updated the resource",
|
|
785
|
+
"type": "string",
|
|
786
|
+
"readOnly": true,
|
|
787
|
+
"example": "10598"
|
|
788
|
+
},
|
|
789
|
+
"updated_at": {
|
|
790
|
+
"type": "string",
|
|
791
|
+
"format": "date-time",
|
|
792
|
+
"readOnly": true
|
|
793
|
+
},
|
|
794
|
+
"owner_org_id": {
|
|
795
|
+
"description": "Id of the organisation that owns the resource. Set at creation time and immutable.",
|
|
796
|
+
"type": "string",
|
|
797
|
+
"readOnly": true,
|
|
798
|
+
"example": "739224"
|
|
799
|
+
},
|
|
800
|
+
"owners": {
|
|
801
|
+
"description": "User ids with full control over the resource (view, edit, delete and manage sharing).\nThe creator is always an owner. There must always be at least one owner.\n",
|
|
802
|
+
"type": "array",
|
|
803
|
+
"items": {
|
|
804
|
+
"type": "string"
|
|
805
|
+
},
|
|
806
|
+
"example": [
|
|
807
|
+
"10598"
|
|
808
|
+
]
|
|
809
|
+
},
|
|
810
|
+
"shared_with": {
|
|
811
|
+
"description": "Per-user sharing grants",
|
|
812
|
+
"type": "array",
|
|
813
|
+
"items": {
|
|
814
|
+
"$ref": "#/components/schemas/ShareGrant"
|
|
815
|
+
}
|
|
816
|
+
},
|
|
817
|
+
"org_access": {
|
|
818
|
+
"$ref": "#/components/schemas/OrgAccess"
|
|
819
|
+
}
|
|
820
|
+
}
|
|
821
|
+
},
|
|
822
|
+
"AccessControlUpdate": {
|
|
823
|
+
"description": "Sharing fields that can be mutated via PATCH (owners only). `owners` and `shared_with` are\nfull replacements of their arrays, not merges — omit a field to leave it unchanged.\n",
|
|
824
|
+
"type": "object",
|
|
825
|
+
"properties": {
|
|
826
|
+
"owners": {
|
|
827
|
+
"description": "Replaces the entire list of owner user ids. Must keep at least one owner (else 400).\nOmit to leave owners unchanged.\n",
|
|
828
|
+
"type": "array",
|
|
829
|
+
"items": {
|
|
830
|
+
"type": "string"
|
|
831
|
+
}
|
|
832
|
+
},
|
|
833
|
+
"shared_with": {
|
|
834
|
+
"description": "Replaces the entire list of per-user grants — any existing grant not included is removed.\nOmit to leave sharing unchanged; send an empty array to revoke all per-user grants.\n",
|
|
835
|
+
"type": "array",
|
|
836
|
+
"items": {
|
|
837
|
+
"$ref": "#/components/schemas/ShareGrant"
|
|
838
|
+
}
|
|
839
|
+
},
|
|
840
|
+
"org_access": {
|
|
841
|
+
"$ref": "#/components/schemas/OrgAccess"
|
|
842
|
+
}
|
|
843
|
+
}
|
|
844
|
+
},
|
|
845
|
+
"DashboardPatch": {
|
|
846
|
+
"description": "Fields that can be partially updated on a dashboard",
|
|
847
|
+
"allOf": [
|
|
848
|
+
{
|
|
849
|
+
"$ref": "#/components/schemas/AccessControlUpdate"
|
|
850
|
+
},
|
|
851
|
+
{
|
|
852
|
+
"type": "object",
|
|
853
|
+
"properties": {
|
|
854
|
+
"title": {
|
|
855
|
+
"type": "string",
|
|
856
|
+
"example": "Employee Dashboard"
|
|
857
|
+
},
|
|
858
|
+
"tiles": {
|
|
859
|
+
"type": "array",
|
|
860
|
+
"items": {
|
|
861
|
+
"$ref": "#/components/schemas/DashboardTile"
|
|
862
|
+
}
|
|
863
|
+
}
|
|
864
|
+
}
|
|
865
|
+
}
|
|
866
|
+
]
|
|
867
|
+
},
|
|
868
|
+
"InsightID": {
|
|
869
|
+
"description": "Unique identifier for an insight (a saved chart / visualisation)",
|
|
870
|
+
"type": "string",
|
|
871
|
+
"format": "uuid",
|
|
872
|
+
"example": "8d2e1c7a-3b4f-4a2e-9c1d-2f3a4b5c6d7e"
|
|
873
|
+
},
|
|
874
|
+
"Insight": {
|
|
875
|
+
"description": "An insight is a saved, reusable chart definition (a visualisation plus its query/options).\nInsights exist independently of dashboards: they can be created, shared and edited on their\nown, and referenced by one or more dashboard tiles via `insight_id`.\n",
|
|
876
|
+
"allOf": [
|
|
877
|
+
{
|
|
878
|
+
"$ref": "#/components/schemas/AccessControl"
|
|
879
|
+
},
|
|
880
|
+
{
|
|
881
|
+
"type": "object",
|
|
882
|
+
"properties": {
|
|
883
|
+
"id": {
|
|
884
|
+
"$ref": "#/components/schemas/InsightID"
|
|
885
|
+
},
|
|
886
|
+
"name": {
|
|
887
|
+
"description": "Human readable name of the insight",
|
|
888
|
+
"type": "string",
|
|
889
|
+
"example": "Opportunities created by journeys every month"
|
|
890
|
+
},
|
|
891
|
+
"description": {
|
|
892
|
+
"type": "string",
|
|
893
|
+
"example": "Monthly count of opportunities grouped by source journey"
|
|
894
|
+
},
|
|
895
|
+
"visualisation_id": {
|
|
896
|
+
"$ref": "#/components/schemas/VisualisationId"
|
|
897
|
+
},
|
|
898
|
+
"visualisation_config": {
|
|
899
|
+
"$ref": "#/components/schemas/VisualisationConfig"
|
|
900
|
+
},
|
|
901
|
+
"tags": {
|
|
902
|
+
"$ref": "#/components/schemas/Tags"
|
|
903
|
+
}
|
|
904
|
+
},
|
|
905
|
+
"required": [
|
|
906
|
+
"name",
|
|
907
|
+
"visualisation_id"
|
|
908
|
+
]
|
|
909
|
+
}
|
|
910
|
+
]
|
|
911
|
+
},
|
|
912
|
+
"InsightPatch": {
|
|
913
|
+
"description": "Fields that can be partially updated on an insight",
|
|
914
|
+
"allOf": [
|
|
915
|
+
{
|
|
916
|
+
"$ref": "#/components/schemas/AccessControlUpdate"
|
|
917
|
+
},
|
|
918
|
+
{
|
|
919
|
+
"type": "object",
|
|
920
|
+
"properties": {
|
|
921
|
+
"name": {
|
|
922
|
+
"type": "string"
|
|
923
|
+
},
|
|
924
|
+
"description": {
|
|
925
|
+
"type": "string"
|
|
926
|
+
},
|
|
927
|
+
"visualisation_id": {
|
|
928
|
+
"$ref": "#/components/schemas/VisualisationId"
|
|
929
|
+
},
|
|
930
|
+
"visualisation_config": {
|
|
931
|
+
"$ref": "#/components/schemas/VisualisationConfig"
|
|
932
|
+
},
|
|
933
|
+
"tags": {
|
|
934
|
+
"$ref": "#/components/schemas/Tags"
|
|
935
|
+
}
|
|
936
|
+
}
|
|
937
|
+
}
|
|
938
|
+
]
|
|
939
|
+
},
|
|
940
|
+
"Tags": {
|
|
941
|
+
"description": "Free-form labels for grouping and filtering insights",
|
|
942
|
+
"type": "array",
|
|
943
|
+
"items": {
|
|
944
|
+
"type": "string"
|
|
945
|
+
},
|
|
946
|
+
"example": [
|
|
947
|
+
"revenue",
|
|
948
|
+
"marketing"
|
|
949
|
+
]
|
|
950
|
+
},
|
|
951
|
+
"Pagination": {
|
|
952
|
+
"description": "Offset-based pagination metadata for list responses",
|
|
953
|
+
"type": "object",
|
|
954
|
+
"properties": {
|
|
955
|
+
"total": {
|
|
956
|
+
"description": "Total number of results matching the query (ignoring limit/offset)",
|
|
957
|
+
"type": "integer"
|
|
958
|
+
},
|
|
959
|
+
"limit": {
|
|
960
|
+
"description": "Page size used for this response",
|
|
961
|
+
"type": "integer"
|
|
962
|
+
},
|
|
963
|
+
"offset": {
|
|
964
|
+
"description": "Number of results skipped before this page",
|
|
965
|
+
"type": "integer"
|
|
966
|
+
},
|
|
967
|
+
"has_more": {
|
|
968
|
+
"description": "Whether more results exist beyond this page",
|
|
969
|
+
"type": "boolean"
|
|
970
|
+
}
|
|
971
|
+
},
|
|
972
|
+
"required": [
|
|
973
|
+
"total",
|
|
974
|
+
"limit",
|
|
975
|
+
"offset",
|
|
976
|
+
"has_more"
|
|
977
|
+
]
|
|
978
|
+
},
|
|
979
|
+
"DashboardTile": {
|
|
980
|
+
"type": "object",
|
|
981
|
+
"description": "A positioned tile on a dashboard canvas. A tile references a saved insight via\n`insight_id`. Inline `visualisation_id`/`visualisation_config` remain supported for\nbackwards compatibility (ad-hoc tiles that are not backed by a shared insight).\n",
|
|
982
|
+
"properties": {
|
|
983
|
+
"id": {
|
|
984
|
+
"$ref": "#/components/schemas/DashboardTileID"
|
|
985
|
+
},
|
|
986
|
+
"coordinates": {
|
|
987
|
+
"type": "object"
|
|
988
|
+
},
|
|
989
|
+
"title": {
|
|
990
|
+
"type": "string",
|
|
991
|
+
"example": "Number of opportunities created by journeys every month"
|
|
992
|
+
},
|
|
993
|
+
"insight_id": {
|
|
994
|
+
"description": "Reference to a saved insight rendered by this tile",
|
|
995
|
+
"$ref": "#/components/schemas/InsightID"
|
|
996
|
+
},
|
|
997
|
+
"visualisation_id": {
|
|
998
|
+
"$ref": "#/components/schemas/VisualisationId"
|
|
999
|
+
},
|
|
1000
|
+
"visualisation_config": {
|
|
1001
|
+
"$ref": "#/components/schemas/VisualisationConfig"
|
|
1002
|
+
}
|
|
1003
|
+
}
|
|
1004
|
+
},
|
|
1005
|
+
"VisualisationConfig": {
|
|
1006
|
+
"anyOf": [
|
|
1007
|
+
{
|
|
1008
|
+
"$ref": "#/components/schemas/timechartVisualisationConfig"
|
|
1009
|
+
}
|
|
1010
|
+
]
|
|
1011
|
+
},
|
|
1012
|
+
"timechartVisualisationConfig": {
|
|
1013
|
+
"type": "object",
|
|
1014
|
+
"properties": {
|
|
1015
|
+
"query": {
|
|
1016
|
+
"$ref": "#/components/schemas/DatalakeQuery"
|
|
1017
|
+
},
|
|
1018
|
+
"options": {
|
|
1019
|
+
"type": "object",
|
|
1020
|
+
"additionalProperties": true,
|
|
1021
|
+
"example": {
|
|
1022
|
+
"type": "bar"
|
|
1023
|
+
}
|
|
1024
|
+
}
|
|
1025
|
+
}
|
|
1026
|
+
},
|
|
1027
|
+
"ExampleID": {
|
|
1028
|
+
"description": "Unique identifier for a visualisation examples for tiles in a dashboard",
|
|
1029
|
+
"type": "string",
|
|
1030
|
+
"format": "uuid",
|
|
1031
|
+
"example": "e4af1297-1fd6-440f-9846-f475f580d40f"
|
|
1032
|
+
},
|
|
1033
|
+
"Example": {
|
|
1034
|
+
"type": "object",
|
|
1035
|
+
"properties": {
|
|
1036
|
+
"id": {
|
|
1037
|
+
"$ref": "#/components/schemas/ExampleID"
|
|
1038
|
+
},
|
|
1039
|
+
"title": {
|
|
1040
|
+
"type": "string",
|
|
1041
|
+
"example": "Number of opportunities created by journeys every month"
|
|
1042
|
+
},
|
|
1043
|
+
"visualisation": {
|
|
1044
|
+
"$ref": "#/components/schemas/VisualisationId"
|
|
1045
|
+
},
|
|
1046
|
+
"query": {
|
|
1047
|
+
"$ref": "#/components/schemas/DatalakeQuery"
|
|
1048
|
+
}
|
|
1049
|
+
}
|
|
1050
|
+
},
|
|
1051
|
+
"DatalakeQuery": {
|
|
1052
|
+
"type": "object",
|
|
1053
|
+
"properties": {
|
|
1054
|
+
"dataset": {
|
|
1055
|
+
"type": "string",
|
|
1056
|
+
"example": "entity_operations"
|
|
1057
|
+
},
|
|
1058
|
+
"measure": {
|
|
1059
|
+
"type": "string",
|
|
1060
|
+
"example": "count_operations"
|
|
1061
|
+
},
|
|
1062
|
+
"dimensions": {
|
|
1063
|
+
"type": "array",
|
|
1064
|
+
"items": {
|
|
1065
|
+
"type": "object",
|
|
1066
|
+
"additionalProperties": true,
|
|
1067
|
+
"example": {
|
|
1068
|
+
"time_with_granularity": "year-month"
|
|
1069
|
+
}
|
|
1070
|
+
}
|
|
1071
|
+
},
|
|
1072
|
+
"filters": {
|
|
1073
|
+
"type": "array",
|
|
1074
|
+
"items": {
|
|
1075
|
+
"type": "object",
|
|
1076
|
+
"additionalProperties": true,
|
|
1077
|
+
"example": {
|
|
1078
|
+
"entity_schema": "opportunity"
|
|
1079
|
+
}
|
|
1080
|
+
}
|
|
1081
|
+
}
|
|
1082
|
+
},
|
|
1083
|
+
"additionalProperties": true
|
|
1084
|
+
},
|
|
1085
|
+
"VisualisationId": {
|
|
1086
|
+
"description": "Unique identifier for a Visualisation",
|
|
1087
|
+
"type": "string",
|
|
1088
|
+
"example": "timechart",
|
|
1089
|
+
"enum": [
|
|
1090
|
+
"kpi",
|
|
1091
|
+
"funnel",
|
|
1092
|
+
"toplist",
|
|
1093
|
+
"timechart",
|
|
1094
|
+
"pie",
|
|
1095
|
+
"bar",
|
|
1096
|
+
"entity_list",
|
|
1097
|
+
"markdown",
|
|
1098
|
+
"news_feed",
|
|
1099
|
+
"workflow"
|
|
1100
|
+
]
|
|
1101
|
+
},
|
|
1102
|
+
"Visualisation": {
|
|
1103
|
+
"type": "object",
|
|
1104
|
+
"description": "A Visualisation that can be used to configure tiles in dashboards",
|
|
1105
|
+
"properties": {
|
|
1106
|
+
"visualisation": {
|
|
1107
|
+
"$ref": "#/components/schemas/VisualisationId"
|
|
1108
|
+
},
|
|
1109
|
+
"title": {
|
|
1110
|
+
"type": "string",
|
|
1111
|
+
"example": "Time Series Visualisation"
|
|
1112
|
+
},
|
|
1113
|
+
"description": {
|
|
1114
|
+
"type": "string"
|
|
1115
|
+
},
|
|
1116
|
+
"package_name": {
|
|
1117
|
+
"type": "string",
|
|
1118
|
+
"description": "Package name of the Visualisation MFE bundle to import",
|
|
1119
|
+
"example": "@epilot360/highcharts"
|
|
1120
|
+
},
|
|
1121
|
+
"import_url": {
|
|
1122
|
+
"type": "string",
|
|
1123
|
+
"format": "uri",
|
|
1124
|
+
"description": "URL to Visualisation MFE bundle to import",
|
|
1125
|
+
"example": "https://epilot-dashboard-visualisations.epilot.io/epilot360-datalake-visualisation/bundle.js?version=1650592827"
|
|
1126
|
+
}
|
|
1127
|
+
}
|
|
1128
|
+
}
|
|
1129
|
+
},
|
|
1130
|
+
"parameters": {
|
|
1131
|
+
"Search": {
|
|
1132
|
+
"name": "q",
|
|
1133
|
+
"in": "query",
|
|
1134
|
+
"required": false,
|
|
1135
|
+
"description": "Free-text search over name/title and description (case-insensitive substring).",
|
|
1136
|
+
"schema": {
|
|
1137
|
+
"type": "string"
|
|
1138
|
+
}
|
|
1139
|
+
},
|
|
1140
|
+
"VisualisationIdFilter": {
|
|
1141
|
+
"name": "visualisation_id",
|
|
1142
|
+
"in": "query",
|
|
1143
|
+
"required": false,
|
|
1144
|
+
"description": "Filter insights by one or more visualisation ids.",
|
|
1145
|
+
"style": "form",
|
|
1146
|
+
"explode": true,
|
|
1147
|
+
"schema": {
|
|
1148
|
+
"type": "array",
|
|
1149
|
+
"items": {
|
|
1150
|
+
"$ref": "#/components/schemas/VisualisationId"
|
|
1151
|
+
}
|
|
1152
|
+
}
|
|
1153
|
+
},
|
|
1154
|
+
"TagsFilter": {
|
|
1155
|
+
"name": "tags",
|
|
1156
|
+
"in": "query",
|
|
1157
|
+
"required": false,
|
|
1158
|
+
"description": "Filter by one or more tags (see tags_match for any/all semantics).",
|
|
1159
|
+
"style": "form",
|
|
1160
|
+
"explode": true,
|
|
1161
|
+
"schema": {
|
|
1162
|
+
"type": "array",
|
|
1163
|
+
"items": {
|
|
1164
|
+
"type": "string"
|
|
1165
|
+
}
|
|
1166
|
+
}
|
|
1167
|
+
},
|
|
1168
|
+
"TagsMatch": {
|
|
1169
|
+
"name": "tags_match",
|
|
1170
|
+
"in": "query",
|
|
1171
|
+
"required": false,
|
|
1172
|
+
"description": "Whether a result must match any (default) or all of the given tags.",
|
|
1173
|
+
"schema": {
|
|
1174
|
+
"type": "string",
|
|
1175
|
+
"enum": [
|
|
1176
|
+
"any",
|
|
1177
|
+
"all"
|
|
1178
|
+
],
|
|
1179
|
+
"default": "any"
|
|
1180
|
+
}
|
|
1181
|
+
},
|
|
1182
|
+
"CreatedBy": {
|
|
1183
|
+
"name": "created_by",
|
|
1184
|
+
"in": "query",
|
|
1185
|
+
"required": false,
|
|
1186
|
+
"description": "Filter by the id of the creating user.",
|
|
1187
|
+
"schema": {
|
|
1188
|
+
"type": "string"
|
|
1189
|
+
}
|
|
1190
|
+
},
|
|
1191
|
+
"CreatedAfter": {
|
|
1192
|
+
"name": "created_after",
|
|
1193
|
+
"in": "query",
|
|
1194
|
+
"required": false,
|
|
1195
|
+
"schema": {
|
|
1196
|
+
"type": "string",
|
|
1197
|
+
"format": "date-time"
|
|
1198
|
+
}
|
|
1199
|
+
},
|
|
1200
|
+
"CreatedBefore": {
|
|
1201
|
+
"name": "created_before",
|
|
1202
|
+
"in": "query",
|
|
1203
|
+
"required": false,
|
|
1204
|
+
"schema": {
|
|
1205
|
+
"type": "string",
|
|
1206
|
+
"format": "date-time"
|
|
1207
|
+
}
|
|
1208
|
+
},
|
|
1209
|
+
"UpdatedAfter": {
|
|
1210
|
+
"name": "updated_after",
|
|
1211
|
+
"in": "query",
|
|
1212
|
+
"required": false,
|
|
1213
|
+
"schema": {
|
|
1214
|
+
"type": "string",
|
|
1215
|
+
"format": "date-time"
|
|
1216
|
+
}
|
|
1217
|
+
},
|
|
1218
|
+
"UpdatedBefore": {
|
|
1219
|
+
"name": "updated_before",
|
|
1220
|
+
"in": "query",
|
|
1221
|
+
"required": false,
|
|
1222
|
+
"schema": {
|
|
1223
|
+
"type": "string",
|
|
1224
|
+
"format": "date-time"
|
|
1225
|
+
}
|
|
1226
|
+
},
|
|
1227
|
+
"SharedWith": {
|
|
1228
|
+
"name": "shared_with",
|
|
1229
|
+
"in": "query",
|
|
1230
|
+
"required": false,
|
|
1231
|
+
"description": "Filter to resources shared with any of the given user ids.",
|
|
1232
|
+
"style": "form",
|
|
1233
|
+
"explode": true,
|
|
1234
|
+
"schema": {
|
|
1235
|
+
"type": "array",
|
|
1236
|
+
"items": {
|
|
1237
|
+
"type": "string"
|
|
1238
|
+
}
|
|
1239
|
+
}
|
|
1240
|
+
},
|
|
1241
|
+
"Owner": {
|
|
1242
|
+
"name": "owner",
|
|
1243
|
+
"in": "query",
|
|
1244
|
+
"required": false,
|
|
1245
|
+
"description": "Filter to resources owned by any of the given user ids.",
|
|
1246
|
+
"style": "form",
|
|
1247
|
+
"explode": true,
|
|
1248
|
+
"schema": {
|
|
1249
|
+
"type": "array",
|
|
1250
|
+
"items": {
|
|
1251
|
+
"type": "string"
|
|
1252
|
+
}
|
|
1253
|
+
}
|
|
1254
|
+
},
|
|
1255
|
+
"AccessibleTo": {
|
|
1256
|
+
"name": "accessible_to",
|
|
1257
|
+
"in": "query",
|
|
1258
|
+
"required": false,
|
|
1259
|
+
"description": "Filter to resources the given user id may view (owner, shared, org-wide or legacy).",
|
|
1260
|
+
"schema": {
|
|
1261
|
+
"type": "string"
|
|
1262
|
+
}
|
|
1263
|
+
},
|
|
1264
|
+
"Favorite": {
|
|
1265
|
+
"name": "favorite",
|
|
1266
|
+
"in": "query",
|
|
1267
|
+
"required": false,
|
|
1268
|
+
"description": "Dashboards only. Filter to only (`true`) or exclude (`false`) the requesting user's\nfavorited dashboards. A user with zero favorites and `favorite=true` gets an empty page,\nnot the unfiltered list.\n",
|
|
1269
|
+
"schema": {
|
|
1270
|
+
"type": "boolean"
|
|
1271
|
+
}
|
|
1272
|
+
},
|
|
1273
|
+
"FavoritesFirst": {
|
|
1274
|
+
"name": "favorites_first",
|
|
1275
|
+
"in": "query",
|
|
1276
|
+
"required": false,
|
|
1277
|
+
"description": "Dashboards only. No filtering — sorts the requesting user's favorited dashboards first,\npreserving the existing secondary ordering (`sort`/`order`) otherwise.\n",
|
|
1278
|
+
"schema": {
|
|
1279
|
+
"type": "boolean"
|
|
1280
|
+
}
|
|
1281
|
+
},
|
|
1282
|
+
"Sort": {
|
|
1283
|
+
"name": "sort",
|
|
1284
|
+
"in": "query",
|
|
1285
|
+
"required": false,
|
|
1286
|
+
"description": "Field to sort by. `name` and `title` are aliases for the resource's display name and are normalised per resource: dashboards sort by `title` and insights by `name`, whichever of the two values is sent. String sorts are case-insensitive.",
|
|
1287
|
+
"schema": {
|
|
1288
|
+
"type": "string",
|
|
1289
|
+
"enum": [
|
|
1290
|
+
"created_at",
|
|
1291
|
+
"updated_at",
|
|
1292
|
+
"name",
|
|
1293
|
+
"title"
|
|
1294
|
+
],
|
|
1295
|
+
"default": "updated_at"
|
|
1296
|
+
}
|
|
1297
|
+
},
|
|
1298
|
+
"Order": {
|
|
1299
|
+
"name": "order",
|
|
1300
|
+
"in": "query",
|
|
1301
|
+
"required": false,
|
|
1302
|
+
"description": "Sort direction. Defaults to ascending (preserving the pre-migration order).",
|
|
1303
|
+
"schema": {
|
|
1304
|
+
"type": "string",
|
|
1305
|
+
"enum": [
|
|
1306
|
+
"asc",
|
|
1307
|
+
"desc"
|
|
1308
|
+
],
|
|
1309
|
+
"default": "asc"
|
|
1310
|
+
}
|
|
1311
|
+
},
|
|
1312
|
+
"Limit": {
|
|
1313
|
+
"name": "limit",
|
|
1314
|
+
"in": "query",
|
|
1315
|
+
"required": false,
|
|
1316
|
+
"description": "Maximum results to return (max 200). Omit to return all matching results (pagination is opt-in).",
|
|
1317
|
+
"schema": {
|
|
1318
|
+
"type": "integer",
|
|
1319
|
+
"minimum": 1,
|
|
1320
|
+
"maximum": 200
|
|
1321
|
+
}
|
|
1322
|
+
},
|
|
1323
|
+
"Offset": {
|
|
1324
|
+
"name": "offset",
|
|
1325
|
+
"in": "query",
|
|
1326
|
+
"required": false,
|
|
1327
|
+
"description": "Number of results to skip, for pagination. Use with limit (page N = offset N*limit).",
|
|
1328
|
+
"schema": {
|
|
1329
|
+
"type": "integer",
|
|
1330
|
+
"minimum": 0,
|
|
1331
|
+
"default": 0
|
|
1332
|
+
}
|
|
1333
|
+
}
|
|
1334
|
+
},
|
|
1335
|
+
"securitySchemes": {
|
|
1336
|
+
"EpilotAuth": {
|
|
1337
|
+
"type": "http",
|
|
1338
|
+
"scheme": "bearer",
|
|
1339
|
+
"description": "Authorization header with epilot OAuth2 bearer token",
|
|
1340
|
+
"bearerFormat": "JWT"
|
|
1341
|
+
},
|
|
1342
|
+
"EpilotOrg": {
|
|
1343
|
+
"description": "Overrides the target organization to allow shared tenantaccess",
|
|
1344
|
+
"name": "x-epilot-org-id",
|
|
1345
|
+
"in": "header",
|
|
1346
|
+
"type": "apiKey"
|
|
1347
|
+
}
|
|
1348
|
+
}
|
|
1349
|
+
},
|
|
1350
|
+
"servers": [
|
|
1351
|
+
{
|
|
1352
|
+
"url": "https://dashboard.sls.epilot.io"
|
|
1353
|
+
}
|
|
1354
|
+
]
|
|
1355
|
+
}
|