@epilot/sdk 2.4.0 → 2.4.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (216) hide show
  1. package/definitions/access-token-runtime.json +1 -0
  2. package/definitions/access-token.json +663 -0
  3. package/definitions/address-runtime.json +1 -0
  4. package/definitions/address-suggestions-runtime.json +1 -0
  5. package/definitions/address-suggestions.json +582 -0
  6. package/definitions/address.json +578 -0
  7. package/definitions/ai-agents-runtime.json +1 -0
  8. package/definitions/ai-agents.json +1711 -0
  9. package/definitions/app-runtime.json +1 -0
  10. package/definitions/app.json +4493 -0
  11. package/definitions/audit-logs-runtime.json +1 -0
  12. package/definitions/audit-logs.json +305 -0
  13. package/definitions/automation-runtime.json +1 -0
  14. package/definitions/automation.json +5028 -0
  15. package/definitions/billing-runtime.json +1 -0
  16. package/definitions/billing.json +837 -0
  17. package/definitions/blueprint-manifest-runtime.json +1 -0
  18. package/definitions/blueprint-manifest.json +4846 -0
  19. package/definitions/configuration-hub-runtime.json +1 -0
  20. package/definitions/configuration-hub.json +611 -0
  21. package/definitions/consent-runtime.json +1 -0
  22. package/definitions/consent.json +344 -0
  23. package/definitions/customer-portal-runtime.json +1 -0
  24. package/definitions/customer-portal.json +16045 -0
  25. package/definitions/dashboard-runtime.json +1 -0
  26. package/definitions/dashboard.json +484 -0
  27. package/definitions/data-governance-runtime.json +1 -0
  28. package/definitions/data-governance.json +1126 -0
  29. package/definitions/deduplication-runtime.json +1 -0
  30. package/definitions/deduplication.json +314 -0
  31. package/definitions/design-runtime.json +1 -0
  32. package/definitions/design.json +1722 -0
  33. package/definitions/document-runtime.json +1 -0
  34. package/definitions/document.json +758 -0
  35. package/definitions/email-settings-runtime.json +1 -0
  36. package/definitions/email-settings.json +2777 -0
  37. package/definitions/email-template-runtime.json +1 -0
  38. package/definitions/email-template.json +1441 -0
  39. package/definitions/entity-mapping-runtime.json +1 -0
  40. package/definitions/entity-mapping.json +1642 -0
  41. package/definitions/entity-runtime.json +1 -0
  42. package/definitions/entity.json +10861 -0
  43. package/definitions/environments-runtime.json +1 -0
  44. package/definitions/environments.json +539 -0
  45. package/definitions/event-catalog-runtime.json +1 -0
  46. package/definitions/event-catalog.json +1051 -0
  47. package/definitions/file-runtime.json +1 -0
  48. package/definitions/file.json +2842 -0
  49. package/definitions/iban-runtime.json +1 -0
  50. package/definitions/iban.json +132 -0
  51. package/definitions/integration-toolkit-runtime.json +1 -0
  52. package/definitions/integration-toolkit.json +7998 -0
  53. package/definitions/journey-runtime.json +1 -0
  54. package/definitions/journey.json +2603 -0
  55. package/definitions/kanban-runtime.json +1 -0
  56. package/definitions/kanban.json +1505 -0
  57. package/definitions/message-runtime.json +1 -0
  58. package/definitions/message.json +2872 -0
  59. package/definitions/metering-runtime.json +1 -0
  60. package/definitions/metering.json +2321 -0
  61. package/definitions/notes-runtime.json +1 -0
  62. package/definitions/notes.json +1531 -0
  63. package/definitions/notification-runtime.json +1 -0
  64. package/definitions/notification.json +1425 -0
  65. package/definitions/organization-runtime.json +1 -0
  66. package/definitions/organization.json +1192 -0
  67. package/definitions/partner-directory-runtime.json +1 -0
  68. package/definitions/partner-directory.json +2284 -0
  69. package/definitions/permissions-runtime.json +1 -0
  70. package/definitions/permissions.json +1515 -0
  71. package/definitions/pricing-runtime.json +1 -0
  72. package/definitions/pricing-tier-runtime.json +1 -0
  73. package/definitions/pricing-tier.json +105 -0
  74. package/definitions/pricing.json +9884 -0
  75. package/definitions/purpose-runtime.json +1 -0
  76. package/definitions/purpose.json +524 -0
  77. package/definitions/query-runtime.json +1 -0
  78. package/definitions/query.json +3178 -0
  79. package/definitions/sandbox-runtime.json +1 -0
  80. package/definitions/sandbox.json +453 -0
  81. package/definitions/sharing-runtime.json +1 -0
  82. package/definitions/sharing.json +956 -0
  83. package/definitions/submission-runtime.json +1 -0
  84. package/definitions/submission.json +313 -0
  85. package/definitions/targeting-runtime.json +1 -0
  86. package/definitions/targeting.json +1474 -0
  87. package/definitions/template-variables-runtime.json +1 -0
  88. package/definitions/template-variables.json +1416 -0
  89. package/definitions/user-runtime.json +1 -0
  90. package/definitions/user.json +2460 -0
  91. package/definitions/validation-rules-runtime.json +1 -0
  92. package/definitions/validation-rules.json +1491 -0
  93. package/definitions/webhooks-runtime.json +1 -0
  94. package/definitions/webhooks.json +1634 -0
  95. package/definitions/workflow-definition-runtime.json +1 -0
  96. package/definitions/workflow-definition.json +3354 -0
  97. package/definitions/workflow-runtime.json +1 -0
  98. package/definitions/workflow.json +4272 -0
  99. package/dist/apis/access-token.cjs +6 -6
  100. package/dist/apis/access-token.js +1 -1
  101. package/dist/apis/address-suggestions.cjs +6 -6
  102. package/dist/apis/address-suggestions.js +1 -1
  103. package/dist/apis/address.cjs +6 -6
  104. package/dist/apis/address.js +1 -1
  105. package/dist/apis/ai-agents.cjs +6 -6
  106. package/dist/apis/ai-agents.js +1 -1
  107. package/dist/apis/app.cjs +6 -6
  108. package/dist/apis/app.js +1 -1
  109. package/dist/apis/audit-logs.cjs +6 -6
  110. package/dist/apis/audit-logs.js +1 -1
  111. package/dist/apis/automation.cjs +6 -6
  112. package/dist/apis/automation.js +1 -1
  113. package/dist/apis/billing.cjs +6 -6
  114. package/dist/apis/billing.js +1 -1
  115. package/dist/apis/blueprint-manifest.cjs +6 -6
  116. package/dist/apis/blueprint-manifest.js +1 -1
  117. package/dist/apis/configuration-hub.cjs +6 -6
  118. package/dist/apis/configuration-hub.js +1 -1
  119. package/dist/apis/consent.cjs +6 -6
  120. package/dist/apis/consent.js +1 -1
  121. package/dist/apis/customer-portal.cjs +6 -6
  122. package/dist/apis/customer-portal.js +1 -1
  123. package/dist/apis/dashboard.cjs +6 -6
  124. package/dist/apis/dashboard.js +1 -1
  125. package/dist/apis/data-governance.cjs +6 -6
  126. package/dist/apis/data-governance.js +1 -1
  127. package/dist/apis/deduplication.cjs +6 -6
  128. package/dist/apis/deduplication.js +1 -1
  129. package/dist/apis/design.cjs +6 -6
  130. package/dist/apis/design.js +1 -1
  131. package/dist/apis/document.cjs +6 -6
  132. package/dist/apis/document.js +1 -1
  133. package/dist/apis/email-settings.cjs +6 -6
  134. package/dist/apis/email-settings.js +1 -1
  135. package/dist/apis/email-template.cjs +6 -6
  136. package/dist/apis/email-template.js +1 -1
  137. package/dist/apis/entity-mapping.cjs +6 -6
  138. package/dist/apis/entity-mapping.js +1 -1
  139. package/dist/apis/entity.cjs +6 -6
  140. package/dist/apis/entity.d.cts +2 -2
  141. package/dist/apis/entity.d.ts +2 -2
  142. package/dist/apis/entity.js +1 -1
  143. package/dist/apis/environments.cjs +6 -6
  144. package/dist/apis/environments.js +1 -1
  145. package/dist/apis/event-catalog.cjs +6 -6
  146. package/dist/apis/event-catalog.js +1 -1
  147. package/dist/apis/file.cjs +6 -6
  148. package/dist/apis/file.js +1 -1
  149. package/dist/apis/iban.cjs +6 -6
  150. package/dist/apis/iban.js +1 -1
  151. package/dist/apis/integration-toolkit.cjs +6 -6
  152. package/dist/apis/integration-toolkit.js +1 -1
  153. package/dist/apis/journey.cjs +6 -6
  154. package/dist/apis/journey.js +1 -1
  155. package/dist/apis/kanban.cjs +6 -6
  156. package/dist/apis/kanban.js +1 -1
  157. package/dist/apis/message.cjs +6 -6
  158. package/dist/apis/message.js +1 -1
  159. package/dist/apis/metering.cjs +6 -6
  160. package/dist/apis/metering.js +1 -1
  161. package/dist/apis/notes.cjs +6 -6
  162. package/dist/apis/notes.js +1 -1
  163. package/dist/apis/notification.cjs +6 -6
  164. package/dist/apis/notification.js +1 -1
  165. package/dist/apis/organization.cjs +6 -6
  166. package/dist/apis/organization.js +1 -1
  167. package/dist/apis/partner-directory.cjs +6 -6
  168. package/dist/apis/partner-directory.js +1 -1
  169. package/dist/apis/permissions.cjs +6 -6
  170. package/dist/apis/permissions.js +1 -1
  171. package/dist/apis/pricing-tier.cjs +6 -6
  172. package/dist/apis/pricing-tier.js +1 -1
  173. package/dist/apis/pricing.cjs +6 -6
  174. package/dist/apis/pricing.js +1 -1
  175. package/dist/apis/purpose.cjs +6 -6
  176. package/dist/apis/purpose.js +1 -1
  177. package/dist/apis/query.cjs +6 -6
  178. package/dist/apis/query.js +1 -1
  179. package/dist/apis/sandbox.cjs +6 -6
  180. package/dist/apis/sandbox.js +1 -1
  181. package/dist/apis/sharing.cjs +6 -6
  182. package/dist/apis/sharing.js +1 -1
  183. package/dist/apis/submission.cjs +6 -6
  184. package/dist/apis/submission.js +1 -1
  185. package/dist/apis/target.cjs +6 -6
  186. package/dist/apis/target.js +1 -1
  187. package/dist/apis/targeting.cjs +6 -6
  188. package/dist/apis/targeting.js +1 -1
  189. package/dist/apis/template-variables.cjs +6 -6
  190. package/dist/apis/template-variables.js +1 -1
  191. package/dist/apis/user.cjs +6 -6
  192. package/dist/apis/user.js +1 -1
  193. package/dist/apis/validation-rules.cjs +6 -6
  194. package/dist/apis/validation-rules.js +1 -1
  195. package/dist/apis/webhooks.cjs +6 -6
  196. package/dist/apis/webhooks.js +1 -1
  197. package/dist/apis/workflow-definition.cjs +6 -6
  198. package/dist/apis/workflow-definition.js +1 -1
  199. package/dist/apis/workflow.cjs +6 -6
  200. package/dist/apis/workflow.js +1 -1
  201. package/dist/bin/cli.js +1 -1
  202. package/dist/{chunk-DAFBUTK6.js → chunk-O2AUZKUD.js} +1 -1
  203. package/dist/{chunk-Z33PZNHV.cjs → chunk-OK74PNHY.cjs} +1 -1
  204. package/dist/entity-H6ESUH3Y.js +7 -0
  205. package/dist/entity-ZVDKWQSF.cjs +7 -0
  206. package/dist/{entity.d-B43ezu-V.d.cts → entity.d-BHR9dEon.d.cts} +843 -165
  207. package/dist/{entity.d-B43ezu-V.d.ts → entity.d-BHR9dEon.d.ts} +843 -165
  208. package/dist/index.cjs +8 -8
  209. package/dist/index.d.cts +1 -1
  210. package/dist/index.d.ts +1 -1
  211. package/dist/index.js +1 -1
  212. package/dist/{js-yaml-DLCVPJ7G.js → js-yaml-UPZKYVRY.js} +15 -17
  213. package/docs/entity.md +202 -12
  214. package/package.json +1 -1
  215. package/dist/entity-VDUN7SYC.cjs +0 -7
  216. package/dist/entity-WWM2Z7BU.js +0 -7
@@ -0,0 +1,956 @@
1
+ {
2
+ "openapi": "3.0.3",
3
+ "info": {
4
+ "title": "Sharing API",
5
+ "description": "REST API for managing partner sharing configurations and entity sharing.",
6
+ "version": "1.0.0",
7
+ "contact": {
8
+ "name": "epilot",
9
+ "url": "https://docs.epilot.io",
10
+ "email": "engineering@epilot.cloud"
11
+ }
12
+ },
13
+ "servers": [
14
+ {
15
+ "url": "https://sharing-api.sls.epilot.io"
16
+ }
17
+ ],
18
+ "tags": [
19
+ {
20
+ "name": "Sharing Configuration",
21
+ "description": "Manage partner sharing configurations"
22
+ },
23
+ {
24
+ "name": "Entity Sharing",
25
+ "description": "Share and unshare entities with partners"
26
+ },
27
+ {
28
+ "name": "Entity Offering",
29
+ "description": "Offer entities to partners (First Come First Served)"
30
+ }
31
+ ],
32
+ "security": [
33
+ {
34
+ "EpilotAuth": []
35
+ }
36
+ ],
37
+ "paths": {
38
+ "/v1/sharing/configurations/{partner_org_id}": {
39
+ "get": {
40
+ "operationId": "getSharingConfiguration",
41
+ "summary": "Get sharing configuration for a partner",
42
+ "description": "Returns the sharing configuration for a specific partner organization, including shared entities, offered entities, and assigned users.",
43
+ "tags": [
44
+ "Sharing Configuration"
45
+ ],
46
+ "parameters": [
47
+ {
48
+ "$ref": "#/components/parameters/PartnerOrgIdPath"
49
+ }
50
+ ],
51
+ "responses": {
52
+ "200": {
53
+ "description": "Sharing configuration for the partner",
54
+ "content": {
55
+ "application/json": {
56
+ "schema": {
57
+ "$ref": "#/components/schemas/PartnerSharingConfig"
58
+ }
59
+ }
60
+ }
61
+ },
62
+ "401": {
63
+ "description": "Unauthorized"
64
+ },
65
+ "404": {
66
+ "description": "No configuration found for the given partner"
67
+ }
68
+ }
69
+ },
70
+ "patch": {
71
+ "operationId": "updateSharingConfiguration",
72
+ "summary": "Update sharing configuration for a partner",
73
+ "description": "Updates the sharing configuration for a partner, such as the user limit. Also patches the internal role if the user limit changes.",
74
+ "tags": [
75
+ "Sharing Configuration"
76
+ ],
77
+ "parameters": [
78
+ {
79
+ "$ref": "#/components/parameters/PartnerOrgIdPath"
80
+ }
81
+ ],
82
+ "requestBody": {
83
+ "required": true,
84
+ "content": {
85
+ "application/json": {
86
+ "schema": {
87
+ "$ref": "#/components/schemas/UpdateSharingConfigurationPayload"
88
+ }
89
+ }
90
+ }
91
+ },
92
+ "responses": {
93
+ "200": {
94
+ "description": "Updated sharing configuration",
95
+ "content": {
96
+ "application/json": {
97
+ "schema": {
98
+ "$ref": "#/components/schemas/PartnerSharingConfig"
99
+ }
100
+ }
101
+ }
102
+ },
103
+ "400": {
104
+ "description": "Bad request"
105
+ },
106
+ "401": {
107
+ "description": "Unauthorized"
108
+ }
109
+ }
110
+ },
111
+ "delete": {
112
+ "operationId": "deleteSharingConfiguration",
113
+ "summary": "Delete sharing configuration for a partner",
114
+ "description": "Deletes the sharing configuration for a partner, removing all shared and offered entity access.",
115
+ "tags": [
116
+ "Sharing Configuration"
117
+ ],
118
+ "parameters": [
119
+ {
120
+ "$ref": "#/components/parameters/PartnerOrgIdPath"
121
+ }
122
+ ],
123
+ "responses": {
124
+ "200": {
125
+ "description": "Deleted sharing configuration",
126
+ "content": {
127
+ "application/json": {
128
+ "schema": {
129
+ "$ref": "#/components/schemas/PartnerSharingConfig"
130
+ }
131
+ }
132
+ }
133
+ },
134
+ "401": {
135
+ "description": "Unauthorized"
136
+ }
137
+ }
138
+ }
139
+ },
140
+ "/v1/sharing/configurations/{partner_org_id}/role": {
141
+ "put": {
142
+ "operationId": "assignRoleToConfiguration",
143
+ "summary": "Assign a template role to a partner sharing configuration",
144
+ "description": "Assigns a template role to a partner sharing configuration. The role grants are copied into the configuration for entity access control.",
145
+ "tags": [
146
+ "Sharing Configuration"
147
+ ],
148
+ "parameters": [
149
+ {
150
+ "$ref": "#/components/parameters/PartnerOrgIdPath"
151
+ }
152
+ ],
153
+ "requestBody": {
154
+ "required": true,
155
+ "content": {
156
+ "application/json": {
157
+ "schema": {
158
+ "$ref": "#/components/schemas/AssignRolePayload"
159
+ }
160
+ }
161
+ }
162
+ },
163
+ "responses": {
164
+ "200": {
165
+ "description": "Sharing configuration with assigned role",
166
+ "content": {
167
+ "application/json": {
168
+ "schema": {
169
+ "$ref": "#/components/schemas/PartnerSharingConfig"
170
+ }
171
+ }
172
+ }
173
+ },
174
+ "400": {
175
+ "description": "Bad request"
176
+ },
177
+ "401": {
178
+ "description": "Unauthorized"
179
+ }
180
+ }
181
+ }
182
+ },
183
+ "/v1/sharing/configurations": {
184
+ "get": {
185
+ "operationId": "getSharingConfigurations",
186
+ "summary": "Get sharing configurations for multiple partners",
187
+ "description": "Returns sharing configurations for multiple partner organizations in a single batch request.",
188
+ "tags": [
189
+ "Sharing Configuration"
190
+ ],
191
+ "parameters": [
192
+ {
193
+ "name": "partner_org_ids",
194
+ "in": "query",
195
+ "required": true,
196
+ "description": "Comma-separated list of partner organization IDs",
197
+ "schema": {
198
+ "type": "array",
199
+ "items": {
200
+ "type": "string"
201
+ }
202
+ },
203
+ "style": "form",
204
+ "explode": false
205
+ }
206
+ ],
207
+ "responses": {
208
+ "200": {
209
+ "description": "List of sharing configurations",
210
+ "content": {
211
+ "application/json": {
212
+ "schema": {
213
+ "type": "array",
214
+ "items": {
215
+ "$ref": "#/components/schemas/PartnerSharingConfig"
216
+ }
217
+ }
218
+ }
219
+ }
220
+ },
221
+ "401": {
222
+ "description": "Unauthorized"
223
+ }
224
+ }
225
+ }
226
+ },
227
+ "/v1/sharing/configurations:search": {
228
+ "post": {
229
+ "operationId": "searchPartnerSharingConfigurations",
230
+ "summary": "Search partner sharing configurations by entities",
231
+ "description": "Searches for partner sharing configurations that have access to the given entities. Returns configurations with their shared and offered entity lists.",
232
+ "tags": [
233
+ "Sharing Configuration"
234
+ ],
235
+ "requestBody": {
236
+ "required": true,
237
+ "content": {
238
+ "application/json": {
239
+ "schema": {
240
+ "$ref": "#/components/schemas/SearchSharingConfigurationsPayload"
241
+ }
242
+ }
243
+ }
244
+ },
245
+ "responses": {
246
+ "200": {
247
+ "description": "Matching sharing configurations",
248
+ "content": {
249
+ "application/json": {
250
+ "schema": {
251
+ "type": "array",
252
+ "items": {
253
+ "$ref": "#/components/schemas/PartnerSharingConfig"
254
+ }
255
+ }
256
+ }
257
+ }
258
+ },
259
+ "401": {
260
+ "description": "Unauthorized"
261
+ }
262
+ }
263
+ }
264
+ },
265
+ "/v1/sharing/configurations/by-role/{template_role_id}": {
266
+ "get": {
267
+ "operationId": "getConfigurationsByTemplateRole",
268
+ "summary": "Get sharing configurations that use a specific template role",
269
+ "description": "Returns all partner sharing configurations that reference the given template role ID. Useful for checking role usage before deletion.",
270
+ "tags": [
271
+ "Sharing Configuration"
272
+ ],
273
+ "parameters": [
274
+ {
275
+ "name": "template_role_id",
276
+ "in": "path",
277
+ "required": true,
278
+ "description": "Template role ID to search for",
279
+ "schema": {
280
+ "type": "string"
281
+ }
282
+ }
283
+ ],
284
+ "responses": {
285
+ "200": {
286
+ "description": "List of sharing configurations using this role",
287
+ "content": {
288
+ "application/json": {
289
+ "schema": {
290
+ "type": "array",
291
+ "items": {
292
+ "$ref": "#/components/schemas/PartnerSharingConfig"
293
+ }
294
+ }
295
+ }
296
+ }
297
+ },
298
+ "401": {
299
+ "description": "Unauthorized"
300
+ },
301
+ "403": {
302
+ "description": "Forbidden"
303
+ }
304
+ }
305
+ }
306
+ },
307
+ "/v1/sharing/entities:share": {
308
+ "post": {
309
+ "operationId": "shareEntityWithPartners",
310
+ "summary": "Share or unshare entities with partners",
311
+ "description": "Shares or unshares top-level entities with one or more partner organizations. Publishes sharing events for downstream processing.",
312
+ "tags": [
313
+ "Entity Sharing"
314
+ ],
315
+ "requestBody": {
316
+ "required": true,
317
+ "content": {
318
+ "application/json": {
319
+ "schema": {
320
+ "$ref": "#/components/schemas/SharingEntityPayload"
321
+ }
322
+ }
323
+ }
324
+ },
325
+ "responses": {
326
+ "200": {
327
+ "description": "Updated partner sharing configurations",
328
+ "content": {
329
+ "application/json": {
330
+ "schema": {
331
+ "type": "array",
332
+ "items": {
333
+ "$ref": "#/components/schemas/PartnerSharingConfig"
334
+ }
335
+ }
336
+ }
337
+ }
338
+ },
339
+ "400": {
340
+ "description": "Bad request"
341
+ },
342
+ "401": {
343
+ "description": "Unauthorized"
344
+ }
345
+ }
346
+ }
347
+ },
348
+ "/v1/sharing/entities:share-child": {
349
+ "post": {
350
+ "operationId": "shareChildEntityWithPartners",
351
+ "summary": "Share or unshare child entities with partners",
352
+ "description": "Shares or unshares child entities (entities that belong to an already-shared parent) with partner organizations.",
353
+ "tags": [
354
+ "Entity Sharing"
355
+ ],
356
+ "requestBody": {
357
+ "required": true,
358
+ "content": {
359
+ "application/json": {
360
+ "schema": {
361
+ "$ref": "#/components/schemas/ShareChildEntityPayload"
362
+ }
363
+ }
364
+ }
365
+ },
366
+ "responses": {
367
+ "200": {
368
+ "description": "Updated partner sharing configurations",
369
+ "content": {
370
+ "application/json": {
371
+ "schema": {
372
+ "type": "array",
373
+ "items": {
374
+ "$ref": "#/components/schemas/PartnerSharingConfig"
375
+ }
376
+ }
377
+ }
378
+ }
379
+ },
380
+ "400": {
381
+ "description": "Bad request"
382
+ },
383
+ "401": {
384
+ "description": "Unauthorized"
385
+ }
386
+ }
387
+ }
388
+ },
389
+ "/v1/sharing/entities:offer": {
390
+ "post": {
391
+ "operationId": "offerEntityToPartners",
392
+ "summary": "Offer or unoffer entities to partners (First Come First Served)",
393
+ "description": "Offers or unoffers entities to partner organizations using a First Come First Served model. Only one partner can accept each offered entity.",
394
+ "tags": [
395
+ "Entity Offering"
396
+ ],
397
+ "requestBody": {
398
+ "required": true,
399
+ "content": {
400
+ "application/json": {
401
+ "schema": {
402
+ "$ref": "#/components/schemas/OfferEntityPayload"
403
+ }
404
+ }
405
+ }
406
+ },
407
+ "responses": {
408
+ "200": {
409
+ "description": "Updated partner sharing configurations",
410
+ "content": {
411
+ "application/json": {
412
+ "schema": {
413
+ "type": "array",
414
+ "items": {
415
+ "$ref": "#/components/schemas/PartnerSharingConfig"
416
+ }
417
+ }
418
+ }
419
+ }
420
+ },
421
+ "400": {
422
+ "description": "Bad request"
423
+ },
424
+ "401": {
425
+ "description": "Unauthorized"
426
+ }
427
+ }
428
+ }
429
+ },
430
+ "/v1/sharing/offers/status": {
431
+ "get": {
432
+ "operationId": "getOfferStatus",
433
+ "summary": "Get the status of an entity offer (public, no auth required)",
434
+ "description": "Returns the current status of an entity offer (pending, accepted, expired). This is a public endpoint used from partner-facing pages without authentication.",
435
+ "tags": [
436
+ "Entity Offering"
437
+ ],
438
+ "security": [],
439
+ "parameters": [
440
+ {
441
+ "name": "partner_org_id",
442
+ "in": "query",
443
+ "required": true,
444
+ "schema": {
445
+ "type": "string"
446
+ }
447
+ },
448
+ {
449
+ "name": "sharing_org_id",
450
+ "in": "query",
451
+ "required": true,
452
+ "schema": {
453
+ "type": "string"
454
+ }
455
+ },
456
+ {
457
+ "name": "entity_id",
458
+ "in": "query",
459
+ "required": true,
460
+ "schema": {
461
+ "type": "string"
462
+ }
463
+ }
464
+ ],
465
+ "responses": {
466
+ "200": {
467
+ "description": "Offer status",
468
+ "content": {
469
+ "application/json": {
470
+ "schema": {
471
+ "$ref": "#/components/schemas/OfferStatus"
472
+ }
473
+ }
474
+ }
475
+ },
476
+ "400": {
477
+ "description": "Bad request"
478
+ }
479
+ }
480
+ }
481
+ },
482
+ "/v1/sharing/offers:accept": {
483
+ "post": {
484
+ "operationId": "acceptOffer",
485
+ "summary": "Accept an entity offer (public, no auth required)",
486
+ "description": "Accepts an entity offer on behalf of a partner organization. This is a public endpoint used from partner-facing pages without authentication. Only one partner can accept each offer.",
487
+ "tags": [
488
+ "Entity Offering"
489
+ ],
490
+ "security": [],
491
+ "requestBody": {
492
+ "required": true,
493
+ "content": {
494
+ "application/json": {
495
+ "schema": {
496
+ "$ref": "#/components/schemas/AcceptOfferPayload"
497
+ }
498
+ }
499
+ }
500
+ },
501
+ "responses": {
502
+ "200": {
503
+ "description": "Partner sharing configuration after accepting the offer",
504
+ "content": {
505
+ "application/json": {
506
+ "schema": {
507
+ "$ref": "#/components/schemas/PartnerSharingConfig"
508
+ }
509
+ }
510
+ }
511
+ },
512
+ "400": {
513
+ "description": "Bad request"
514
+ }
515
+ }
516
+ }
517
+ }
518
+ },
519
+ "components": {
520
+ "securitySchemes": {
521
+ "EpilotAuth": {
522
+ "type": "http",
523
+ "scheme": "bearer",
524
+ "bearerFormat": "JWT"
525
+ }
526
+ },
527
+ "parameters": {
528
+ "PartnerOrgIdPath": {
529
+ "name": "partner_org_id",
530
+ "in": "path",
531
+ "required": true,
532
+ "description": "Partner organization ID",
533
+ "schema": {
534
+ "type": "string"
535
+ }
536
+ }
537
+ },
538
+ "schemas": {
539
+ "PartnerSharingConfig": {
540
+ "type": "object",
541
+ "required": [
542
+ "sharing_org_id",
543
+ "partner_org_id"
544
+ ],
545
+ "properties": {
546
+ "sharing_org_id": {
547
+ "type": "string",
548
+ "description": "ID of the organization that is sharing the entities"
549
+ },
550
+ "partner_org_id": {
551
+ "type": "string",
552
+ "description": "ID of the organization that receives access to the entities"
553
+ },
554
+ "users": {
555
+ "type": "array",
556
+ "items": {
557
+ "type": "string"
558
+ }
559
+ },
560
+ "partner_status": {
561
+ "$ref": "#/components/schemas/PartnerStatus"
562
+ },
563
+ "entities": {
564
+ "type": "array",
565
+ "items": {
566
+ "$ref": "#/components/schemas/EntityResource"
567
+ }
568
+ },
569
+ "offered_entities": {
570
+ "type": "array",
571
+ "items": {
572
+ "$ref": "#/components/schemas/OfferEntityResource"
573
+ }
574
+ },
575
+ "template_role_id": {
576
+ "type": "string"
577
+ },
578
+ "template_role_grants": {
579
+ "type": "array",
580
+ "items": {
581
+ "$ref": "#/components/schemas/TemplateRoleGrant"
582
+ }
583
+ },
584
+ "generated_role_id": {
585
+ "type": "string"
586
+ },
587
+ "user_limit": {
588
+ "type": "integer",
589
+ "nullable": true
590
+ },
591
+ "created_at": {
592
+ "type": "string"
593
+ },
594
+ "updated_at": {
595
+ "type": "string"
596
+ }
597
+ }
598
+ },
599
+ "PartnerStatus": {
600
+ "type": "string",
601
+ "enum": [
602
+ "REGISTERED",
603
+ "UNREGISTERED"
604
+ ]
605
+ },
606
+ "EntityResource": {
607
+ "type": "object",
608
+ "required": [
609
+ "schema",
610
+ "entity_id"
611
+ ],
612
+ "properties": {
613
+ "schema": {
614
+ "type": "string"
615
+ },
616
+ "entity_id": {
617
+ "type": "string"
618
+ },
619
+ "parent_entity_id": {
620
+ "type": "string",
621
+ "nullable": true
622
+ },
623
+ "offer_accepted": {
624
+ "type": "boolean"
625
+ },
626
+ "updated_at": {
627
+ "type": "string"
628
+ },
629
+ "created_at": {
630
+ "type": "string"
631
+ }
632
+ }
633
+ },
634
+ "OfferEntityResource": {
635
+ "type": "object",
636
+ "required": [
637
+ "schema",
638
+ "entity_id",
639
+ "offer_status"
640
+ ],
641
+ "properties": {
642
+ "schema": {
643
+ "type": "string"
644
+ },
645
+ "entity_id": {
646
+ "type": "string"
647
+ },
648
+ "parent_entity_id": {
649
+ "type": "string",
650
+ "nullable": true
651
+ },
652
+ "offer_status": {
653
+ "$ref": "#/components/schemas/OfferStatusEnum"
654
+ },
655
+ "offered_by_user_id": {
656
+ "type": "string"
657
+ },
658
+ "updated_at": {
659
+ "type": "string"
660
+ },
661
+ "created_at": {
662
+ "type": "string"
663
+ }
664
+ }
665
+ },
666
+ "TemplateRoleGrant": {
667
+ "type": "object",
668
+ "required": [
669
+ "action",
670
+ "resource"
671
+ ],
672
+ "properties": {
673
+ "action": {
674
+ "type": "string"
675
+ },
676
+ "resource": {
677
+ "type": "string"
678
+ },
679
+ "effect": {
680
+ "type": "string",
681
+ "description": "allow or deny"
682
+ }
683
+ }
684
+ },
685
+ "OfferStatus": {
686
+ "type": "object",
687
+ "required": [
688
+ "entity",
689
+ "offer_status"
690
+ ],
691
+ "properties": {
692
+ "entity": {
693
+ "$ref": "#/components/schemas/PartialEntity"
694
+ },
695
+ "offer_status": {
696
+ "$ref": "#/components/schemas/OfferStatusEnum"
697
+ },
698
+ "status_changed_at": {
699
+ "type": "string"
700
+ },
701
+ "offered_at": {
702
+ "type": "string"
703
+ },
704
+ "accepted_by_org_id": {
705
+ "type": "string"
706
+ }
707
+ }
708
+ },
709
+ "PartialEntity": {
710
+ "type": "object",
711
+ "required": [
712
+ "_schema",
713
+ "_id",
714
+ "_title",
715
+ "_created_at",
716
+ "_updated_at"
717
+ ],
718
+ "properties": {
719
+ "_schema": {
720
+ "type": "string"
721
+ },
722
+ "_id": {
723
+ "type": "string"
724
+ },
725
+ "_title": {
726
+ "type": "string"
727
+ },
728
+ "_created_at": {
729
+ "type": "string"
730
+ },
731
+ "_updated_at": {
732
+ "type": "string"
733
+ }
734
+ }
735
+ },
736
+ "OfferStatusEnum": {
737
+ "type": "string",
738
+ "enum": [
739
+ "EXPIRED",
740
+ "UNAVAILABLE",
741
+ "PENDING",
742
+ "DECLINED",
743
+ "ACCEPTED"
744
+ ]
745
+ },
746
+ "EntityResourceInput": {
747
+ "type": "object",
748
+ "required": [
749
+ "schema",
750
+ "entity_id"
751
+ ],
752
+ "properties": {
753
+ "schema": {
754
+ "type": "string"
755
+ },
756
+ "entity_id": {
757
+ "type": "string"
758
+ },
759
+ "parent_entity_id": {
760
+ "type": "string",
761
+ "nullable": true
762
+ },
763
+ "offer_accepted": {
764
+ "type": "boolean"
765
+ }
766
+ }
767
+ },
768
+ "OfferEntityResourceInput": {
769
+ "type": "object",
770
+ "required": [
771
+ "schema",
772
+ "entity_id"
773
+ ],
774
+ "properties": {
775
+ "schema": {
776
+ "type": "string"
777
+ },
778
+ "entity_id": {
779
+ "type": "string"
780
+ },
781
+ "parent_entity_id": {
782
+ "type": "string",
783
+ "nullable": true
784
+ }
785
+ }
786
+ },
787
+ "UpdateSharingConfigurationPayload": {
788
+ "type": "object",
789
+ "properties": {
790
+ "user_limit": {
791
+ "type": "integer",
792
+ "nullable": true
793
+ }
794
+ }
795
+ },
796
+ "AssignRolePayload": {
797
+ "type": "object",
798
+ "required": [
799
+ "template_role_id"
800
+ ],
801
+ "properties": {
802
+ "template_role_id": {
803
+ "type": "string"
804
+ }
805
+ }
806
+ },
807
+ "SearchSharingConfigurationsPayload": {
808
+ "type": "object",
809
+ "required": [
810
+ "entities"
811
+ ],
812
+ "properties": {
813
+ "entities": {
814
+ "type": "array",
815
+ "items": {
816
+ "$ref": "#/components/schemas/EntityResourceInput"
817
+ }
818
+ }
819
+ }
820
+ },
821
+ "SharingEntityPayload": {
822
+ "type": "object",
823
+ "required": [
824
+ "share",
825
+ "unshare"
826
+ ],
827
+ "properties": {
828
+ "share": {
829
+ "type": "array",
830
+ "items": {
831
+ "$ref": "#/components/schemas/PartnerEntitiesInput"
832
+ }
833
+ },
834
+ "unshare": {
835
+ "type": "array",
836
+ "items": {
837
+ "$ref": "#/components/schemas/PartnerEntitiesInput"
838
+ }
839
+ }
840
+ }
841
+ },
842
+ "PartnerEntitiesInput": {
843
+ "type": "object",
844
+ "required": [
845
+ "partner_org_id",
846
+ "entities"
847
+ ],
848
+ "properties": {
849
+ "partner_org_id": {
850
+ "type": "string"
851
+ },
852
+ "entities": {
853
+ "type": "array",
854
+ "items": {
855
+ "$ref": "#/components/schemas/EntityResourceInput"
856
+ }
857
+ }
858
+ }
859
+ },
860
+ "ShareChildEntityPayload": {
861
+ "type": "object",
862
+ "required": [
863
+ "share",
864
+ "unshare"
865
+ ],
866
+ "properties": {
867
+ "share": {
868
+ "type": "array",
869
+ "items": {
870
+ "$ref": "#/components/schemas/PartnerEntityInput"
871
+ }
872
+ },
873
+ "unshare": {
874
+ "type": "array",
875
+ "items": {
876
+ "$ref": "#/components/schemas/PartnerEntityInput"
877
+ }
878
+ }
879
+ }
880
+ },
881
+ "PartnerEntityInput": {
882
+ "type": "object",
883
+ "required": [
884
+ "entity",
885
+ "partner_org_id"
886
+ ],
887
+ "properties": {
888
+ "entity": {
889
+ "$ref": "#/components/schemas/EntityResourceInput"
890
+ },
891
+ "partner_org_id": {
892
+ "type": "string"
893
+ }
894
+ }
895
+ },
896
+ "OfferEntityPayload": {
897
+ "type": "object",
898
+ "required": [
899
+ "offer",
900
+ "unoffer"
901
+ ],
902
+ "properties": {
903
+ "offer": {
904
+ "type": "array",
905
+ "items": {
906
+ "$ref": "#/components/schemas/PartnerOfferedEntitiesInput"
907
+ }
908
+ },
909
+ "unoffer": {
910
+ "type": "array",
911
+ "items": {
912
+ "$ref": "#/components/schemas/PartnerOfferedEntitiesInput"
913
+ }
914
+ }
915
+ }
916
+ },
917
+ "PartnerOfferedEntitiesInput": {
918
+ "type": "object",
919
+ "required": [
920
+ "partner_org_id",
921
+ "offered_entities"
922
+ ],
923
+ "properties": {
924
+ "partner_org_id": {
925
+ "type": "string"
926
+ },
927
+ "offered_entities": {
928
+ "type": "array",
929
+ "items": {
930
+ "$ref": "#/components/schemas/OfferEntityResourceInput"
931
+ }
932
+ }
933
+ }
934
+ },
935
+ "AcceptOfferPayload": {
936
+ "type": "object",
937
+ "required": [
938
+ "partner_org_id",
939
+ "sharing_org_id",
940
+ "entity_id"
941
+ ],
942
+ "properties": {
943
+ "partner_org_id": {
944
+ "type": "string"
945
+ },
946
+ "sharing_org_id": {
947
+ "type": "string"
948
+ },
949
+ "entity_id": {
950
+ "type": "string"
951
+ }
952
+ }
953
+ }
954
+ }
955
+ }
956
+ }