@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,782 @@
|
|
|
1
|
+
{
|
|
2
|
+
"openapi": "3.0.2",
|
|
3
|
+
"info": {
|
|
4
|
+
"version": "3.0.0",
|
|
5
|
+
"title": "Deduplication API",
|
|
6
|
+
"description": "Backend for Epilot Deduplication feature"
|
|
7
|
+
},
|
|
8
|
+
"security": [
|
|
9
|
+
{
|
|
10
|
+
"EpilotAuth": []
|
|
11
|
+
}
|
|
12
|
+
],
|
|
13
|
+
"paths": {
|
|
14
|
+
"/v1/deduplicate": {
|
|
15
|
+
"post": {
|
|
16
|
+
"operationId": "deduplicate",
|
|
17
|
+
"summary": "deduplicate",
|
|
18
|
+
"description": "Deduplicates Entities",
|
|
19
|
+
"tags": [],
|
|
20
|
+
"requestBody": {
|
|
21
|
+
"content": {
|
|
22
|
+
"application/json": {
|
|
23
|
+
"schema": {
|
|
24
|
+
"$ref": "#/components/schemas/DeduplicateRequestBody"
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
"responses": {
|
|
30
|
+
"200": {
|
|
31
|
+
"description": "Successful response with Deduplication content",
|
|
32
|
+
"content": {
|
|
33
|
+
"application/json": {
|
|
34
|
+
"schema": {
|
|
35
|
+
"$ref": "#/components/schemas/DeduplicateRequestResponse"
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
},
|
|
43
|
+
"/v1/deduplicate/job": {
|
|
44
|
+
"post": {
|
|
45
|
+
"operationId": "deduplicateAsync",
|
|
46
|
+
"summary": "deduplicateAsync",
|
|
47
|
+
"description": "Submits an async deduplication job. Returns a job ID immediately. Poll GET /v1/deduplicate/jobs/{jobId} for status.",
|
|
48
|
+
"tags": [],
|
|
49
|
+
"requestBody": {
|
|
50
|
+
"content": {
|
|
51
|
+
"application/json": {
|
|
52
|
+
"schema": {
|
|
53
|
+
"$ref": "#/components/schemas/DeduplicateRequestBody"
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
},
|
|
58
|
+
"responses": {
|
|
59
|
+
"202": {
|
|
60
|
+
"description": "Job accepted. Use the returned jobId to poll for status.",
|
|
61
|
+
"content": {
|
|
62
|
+
"application/json": {
|
|
63
|
+
"schema": {
|
|
64
|
+
"$ref": "#/components/schemas/DeduplicateAsyncResponse"
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
},
|
|
72
|
+
"/v1/deduplicate/jobs/{jobId}": {
|
|
73
|
+
"get": {
|
|
74
|
+
"operationId": "getDeduplicationJob",
|
|
75
|
+
"summary": "getDeduplicationJob",
|
|
76
|
+
"description": "Returns the current status of an async deduplication job",
|
|
77
|
+
"tags": [],
|
|
78
|
+
"parameters": [
|
|
79
|
+
{
|
|
80
|
+
"name": "jobId",
|
|
81
|
+
"in": "path",
|
|
82
|
+
"required": true,
|
|
83
|
+
"schema": {
|
|
84
|
+
"type": "string"
|
|
85
|
+
},
|
|
86
|
+
"description": "The job ID returned by POST /v1/deduplicate/job"
|
|
87
|
+
}
|
|
88
|
+
],
|
|
89
|
+
"responses": {
|
|
90
|
+
"200": {
|
|
91
|
+
"description": "Current job status",
|
|
92
|
+
"content": {
|
|
93
|
+
"application/json": {
|
|
94
|
+
"schema": {
|
|
95
|
+
"$ref": "#/components/schemas/DeduplicationJob"
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
"404": {
|
|
101
|
+
"description": "Job not found"
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
},
|
|
106
|
+
"/v1/detect-duplicates": {
|
|
107
|
+
"post": {
|
|
108
|
+
"operationId": "detectDuplicates",
|
|
109
|
+
"summary": "detectDuplicates",
|
|
110
|
+
"description": "Detects potential duplicate entities for the given entity using the schema's prioritized uniqueness rules. Returns matches with a confidence score.",
|
|
111
|
+
"tags": [],
|
|
112
|
+
"requestBody": {
|
|
113
|
+
"content": {
|
|
114
|
+
"application/json": {
|
|
115
|
+
"schema": {
|
|
116
|
+
"$ref": "#/components/schemas/DetectDuplicatesRequestBody"
|
|
117
|
+
}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
},
|
|
121
|
+
"responses": {
|
|
122
|
+
"200": {
|
|
123
|
+
"description": "Potential duplicates ranked by rule priority",
|
|
124
|
+
"content": {
|
|
125
|
+
"application/json": {
|
|
126
|
+
"schema": {
|
|
127
|
+
"$ref": "#/components/schemas/DetectDuplicatesResponse"
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"/v1/duplicates/dismiss": {
|
|
136
|
+
"post": {
|
|
137
|
+
"operationId": "dismissDuplicates",
|
|
138
|
+
"summary": "dismissDuplicates",
|
|
139
|
+
"description": "Confirms entities as NOT duplicates: clears the internal duplicate-detection flags (_matching_entities) on each given entity, so they stop appearing as open duplicate sets. The records themselves are not modified otherwise.",
|
|
140
|
+
"tags": [],
|
|
141
|
+
"requestBody": {
|
|
142
|
+
"content": {
|
|
143
|
+
"application/json": {
|
|
144
|
+
"schema": {
|
|
145
|
+
"$ref": "#/components/schemas/DismissDuplicatesRequestBody"
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
"responses": {
|
|
151
|
+
"200": {
|
|
152
|
+
"description": "Flags cleared",
|
|
153
|
+
"content": {
|
|
154
|
+
"application/json": {
|
|
155
|
+
"schema": {
|
|
156
|
+
"$ref": "#/components/schemas/DismissDuplicatesResponse"
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
},
|
|
164
|
+
"/v1/uniqueness-criteria": {
|
|
165
|
+
"get": {
|
|
166
|
+
"operationId": "listUniquenessCriteria",
|
|
167
|
+
"summary": "listUniquenessCriteria",
|
|
168
|
+
"description": "Lists UniquenessCriteria for the requesting organization. Optionally filtered by schema.",
|
|
169
|
+
"tags": [],
|
|
170
|
+
"parameters": [
|
|
171
|
+
{
|
|
172
|
+
"name": "schema",
|
|
173
|
+
"in": "query",
|
|
174
|
+
"required": false,
|
|
175
|
+
"schema": {
|
|
176
|
+
"type": "string"
|
|
177
|
+
},
|
|
178
|
+
"description": "Filter results to a specific entity schema."
|
|
179
|
+
}
|
|
180
|
+
],
|
|
181
|
+
"responses": {
|
|
182
|
+
"200": {
|
|
183
|
+
"description": "Array of UniquenessCriteria records",
|
|
184
|
+
"content": {
|
|
185
|
+
"application/json": {
|
|
186
|
+
"schema": {
|
|
187
|
+
"$ref": "#/components/schemas/UniquenessCriteriaListResponse"
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
"post": {
|
|
195
|
+
"operationId": "createUniquenessCriteria",
|
|
196
|
+
"summary": "createUniquenessCriteria",
|
|
197
|
+
"description": "Creates a new UniquenessCriteria record.",
|
|
198
|
+
"tags": [],
|
|
199
|
+
"requestBody": {
|
|
200
|
+
"content": {
|
|
201
|
+
"application/json": {
|
|
202
|
+
"schema": {
|
|
203
|
+
"$ref": "#/components/schemas/UniquenessCriteriaCreateBody"
|
|
204
|
+
}
|
|
205
|
+
}
|
|
206
|
+
}
|
|
207
|
+
},
|
|
208
|
+
"responses": {
|
|
209
|
+
"201": {
|
|
210
|
+
"description": "Created record",
|
|
211
|
+
"content": {
|
|
212
|
+
"application/json": {
|
|
213
|
+
"schema": {
|
|
214
|
+
"$ref": "#/components/schemas/UniquenessCriteria"
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
}
|
|
220
|
+
}
|
|
221
|
+
},
|
|
222
|
+
"/v1/uniqueness-criteria/{schema}": {
|
|
223
|
+
"get": {
|
|
224
|
+
"operationId": "getUniquenessCriteria",
|
|
225
|
+
"summary": "getUniquenessCriteria",
|
|
226
|
+
"description": "Fetch a single UniquenessCriteria record.",
|
|
227
|
+
"tags": [],
|
|
228
|
+
"parameters": [
|
|
229
|
+
{
|
|
230
|
+
"name": "schema",
|
|
231
|
+
"in": "path",
|
|
232
|
+
"required": true,
|
|
233
|
+
"schema": {
|
|
234
|
+
"type": "string"
|
|
235
|
+
},
|
|
236
|
+
"description": "Entity schema slug."
|
|
237
|
+
}
|
|
238
|
+
],
|
|
239
|
+
"responses": {
|
|
240
|
+
"200": {
|
|
241
|
+
"description": "The criteria record",
|
|
242
|
+
"content": {
|
|
243
|
+
"application/json": {
|
|
244
|
+
"schema": {
|
|
245
|
+
"$ref": "#/components/schemas/UniquenessCriteria"
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
},
|
|
250
|
+
"404": {
|
|
251
|
+
"description": "Record not found"
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
},
|
|
255
|
+
"put": {
|
|
256
|
+
"operationId": "updateUniquenessCriteria",
|
|
257
|
+
"summary": "updateUniquenessCriteria",
|
|
258
|
+
"description": "Replace the matchRules on an existing UniquenessCriteria record.",
|
|
259
|
+
"tags": [],
|
|
260
|
+
"parameters": [
|
|
261
|
+
{
|
|
262
|
+
"name": "schema",
|
|
263
|
+
"in": "path",
|
|
264
|
+
"required": true,
|
|
265
|
+
"schema": {
|
|
266
|
+
"type": "string"
|
|
267
|
+
},
|
|
268
|
+
"description": "Entity schema slug."
|
|
269
|
+
}
|
|
270
|
+
],
|
|
271
|
+
"requestBody": {
|
|
272
|
+
"content": {
|
|
273
|
+
"application/json": {
|
|
274
|
+
"schema": {
|
|
275
|
+
"$ref": "#/components/schemas/UniquenessCriteriaUpdateBody"
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
}
|
|
279
|
+
},
|
|
280
|
+
"responses": {
|
|
281
|
+
"200": {
|
|
282
|
+
"description": "Updated record",
|
|
283
|
+
"content": {
|
|
284
|
+
"application/json": {
|
|
285
|
+
"schema": {
|
|
286
|
+
"$ref": "#/components/schemas/UniquenessCriteria"
|
|
287
|
+
}
|
|
288
|
+
}
|
|
289
|
+
}
|
|
290
|
+
},
|
|
291
|
+
"404": {
|
|
292
|
+
"description": "Record not found"
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
},
|
|
296
|
+
"delete": {
|
|
297
|
+
"operationId": "deleteUniquenessCriteria",
|
|
298
|
+
"summary": "deleteUniquenessCriteria",
|
|
299
|
+
"description": "Delete a UniquenessCriteria record.",
|
|
300
|
+
"tags": [],
|
|
301
|
+
"parameters": [
|
|
302
|
+
{
|
|
303
|
+
"name": "schema",
|
|
304
|
+
"in": "path",
|
|
305
|
+
"required": true,
|
|
306
|
+
"schema": {
|
|
307
|
+
"type": "string"
|
|
308
|
+
},
|
|
309
|
+
"description": "Entity schema slug."
|
|
310
|
+
}
|
|
311
|
+
],
|
|
312
|
+
"responses": {
|
|
313
|
+
"204": {
|
|
314
|
+
"description": "Record deleted"
|
|
315
|
+
},
|
|
316
|
+
"404": {
|
|
317
|
+
"description": "Record not found"
|
|
318
|
+
}
|
|
319
|
+
}
|
|
320
|
+
}
|
|
321
|
+
}
|
|
322
|
+
},
|
|
323
|
+
"components": {
|
|
324
|
+
"securitySchemes": {
|
|
325
|
+
"EpilotAuth": {
|
|
326
|
+
"type": "http",
|
|
327
|
+
"scheme": "bearer",
|
|
328
|
+
"description": "Authorization header with epilot OAuth2 bearer token",
|
|
329
|
+
"bearerFormat": "JWT"
|
|
330
|
+
}
|
|
331
|
+
},
|
|
332
|
+
"schemas": {
|
|
333
|
+
"DeduplicateRequestBody": {
|
|
334
|
+
"type": "array",
|
|
335
|
+
"items": {
|
|
336
|
+
"type": "object",
|
|
337
|
+
"properties": {
|
|
338
|
+
"toKeep": {
|
|
339
|
+
"type": "string",
|
|
340
|
+
"minLength": 1,
|
|
341
|
+
"description": "Entity id to keep and merge the duplicates into"
|
|
342
|
+
},
|
|
343
|
+
"toDelete": {
|
|
344
|
+
"type": "array",
|
|
345
|
+
"items": {
|
|
346
|
+
"type": "string",
|
|
347
|
+
"minLength": 1
|
|
348
|
+
},
|
|
349
|
+
"minItems": 1,
|
|
350
|
+
"description": "Non-empty list of duplicate entity ids to merge into toKeep and delete"
|
|
351
|
+
}
|
|
352
|
+
},
|
|
353
|
+
"required": [
|
|
354
|
+
"toKeep",
|
|
355
|
+
"toDelete"
|
|
356
|
+
]
|
|
357
|
+
},
|
|
358
|
+
"minItems": 1
|
|
359
|
+
},
|
|
360
|
+
"DeduplicateRequestResponse": {
|
|
361
|
+
"type": "object",
|
|
362
|
+
"properties": {
|
|
363
|
+
"deduplicatedEntities": {
|
|
364
|
+
"type": "array",
|
|
365
|
+
"items": {
|
|
366
|
+
"$ref": "#/components/schemas/Entity"
|
|
367
|
+
},
|
|
368
|
+
"description": "The merged survivor entity of each processed set"
|
|
369
|
+
}
|
|
370
|
+
},
|
|
371
|
+
"required": [
|
|
372
|
+
"deduplicatedEntities"
|
|
373
|
+
]
|
|
374
|
+
},
|
|
375
|
+
"Entity": {
|
|
376
|
+
"type": "object",
|
|
377
|
+
"properties": {
|
|
378
|
+
"_id": {
|
|
379
|
+
"type": "string",
|
|
380
|
+
"description": "Entity ID of the Deduplication entry"
|
|
381
|
+
},
|
|
382
|
+
"_org": {
|
|
383
|
+
"type": "string",
|
|
384
|
+
"description": "ID of the Organization that owns this Deduplication"
|
|
385
|
+
},
|
|
386
|
+
"_schema": {
|
|
387
|
+
"type": "string",
|
|
388
|
+
"description": "The Entity schema of this Deduplication"
|
|
389
|
+
},
|
|
390
|
+
"_created_at": {
|
|
391
|
+
"type": "string",
|
|
392
|
+
"description": "The timestamp of when this Deduplication was created",
|
|
393
|
+
"format": "date-time"
|
|
394
|
+
},
|
|
395
|
+
"_updated_at": {
|
|
396
|
+
"type": "string",
|
|
397
|
+
"description": "The timestamp of when this Deduplication was last updated",
|
|
398
|
+
"format": "date-time"
|
|
399
|
+
},
|
|
400
|
+
"_created_by": {
|
|
401
|
+
"anyOf": [
|
|
402
|
+
{
|
|
403
|
+
"type": "string"
|
|
404
|
+
},
|
|
405
|
+
{
|
|
406
|
+
"type": "number"
|
|
407
|
+
}
|
|
408
|
+
],
|
|
409
|
+
"description": "The Entity ID of the User that created this Deduplication"
|
|
410
|
+
},
|
|
411
|
+
"created_by": {
|
|
412
|
+
"anyOf": [
|
|
413
|
+
{
|
|
414
|
+
"type": "string"
|
|
415
|
+
},
|
|
416
|
+
{
|
|
417
|
+
"type": "number"
|
|
418
|
+
}
|
|
419
|
+
],
|
|
420
|
+
"description": "The Entity ID of the User that created this Deduplication"
|
|
421
|
+
},
|
|
422
|
+
"_tags": {
|
|
423
|
+
"type": "array",
|
|
424
|
+
"items": {
|
|
425
|
+
"type": "string"
|
|
426
|
+
},
|
|
427
|
+
"description": "Tags associated with this Deduplication"
|
|
428
|
+
},
|
|
429
|
+
"_acl": {
|
|
430
|
+
"type": "object",
|
|
431
|
+
"additionalProperties": {
|
|
432
|
+
"type": "array",
|
|
433
|
+
"items": {
|
|
434
|
+
"type": "string"
|
|
435
|
+
}
|
|
436
|
+
},
|
|
437
|
+
"description": "Access Control List for this Deduplication entry"
|
|
438
|
+
},
|
|
439
|
+
"_owners": {
|
|
440
|
+
"type": "array",
|
|
441
|
+
"items": {
|
|
442
|
+
"type": "object",
|
|
443
|
+
"properties": {
|
|
444
|
+
"org_id": {
|
|
445
|
+
"type": "string"
|
|
446
|
+
},
|
|
447
|
+
"user_id": {
|
|
448
|
+
"type": "string"
|
|
449
|
+
}
|
|
450
|
+
},
|
|
451
|
+
"required": [
|
|
452
|
+
"org_id",
|
|
453
|
+
"user_id"
|
|
454
|
+
]
|
|
455
|
+
}
|
|
456
|
+
},
|
|
457
|
+
"type": {
|
|
458
|
+
"type": "string",
|
|
459
|
+
"description": "Entity ID of the Deduplication entry"
|
|
460
|
+
}
|
|
461
|
+
},
|
|
462
|
+
"required": [
|
|
463
|
+
"_id"
|
|
464
|
+
],
|
|
465
|
+
"description": "Base Entity schema"
|
|
466
|
+
},
|
|
467
|
+
"DeduplicateAsyncResponse": {
|
|
468
|
+
"type": "object",
|
|
469
|
+
"properties": {
|
|
470
|
+
"jobId": {
|
|
471
|
+
"type": "string",
|
|
472
|
+
"description": "Job ID to poll for status via GET /v1/deduplicate/jobs/{jobId}"
|
|
473
|
+
},
|
|
474
|
+
"status": {
|
|
475
|
+
"$ref": "#/components/schemas/JobStatus"
|
|
476
|
+
},
|
|
477
|
+
"message": {
|
|
478
|
+
"type": "string",
|
|
479
|
+
"description": "Initial status message"
|
|
480
|
+
}
|
|
481
|
+
},
|
|
482
|
+
"required": [
|
|
483
|
+
"jobId",
|
|
484
|
+
"status",
|
|
485
|
+
"message"
|
|
486
|
+
],
|
|
487
|
+
"description": "Response returned immediately when a deduplication job is submitted"
|
|
488
|
+
},
|
|
489
|
+
"JobStatus": {
|
|
490
|
+
"type": "string",
|
|
491
|
+
"enum": [
|
|
492
|
+
"pending",
|
|
493
|
+
"processing",
|
|
494
|
+
"completed",
|
|
495
|
+
"failed"
|
|
496
|
+
]
|
|
497
|
+
},
|
|
498
|
+
"DeduplicationJob": {
|
|
499
|
+
"type": "object",
|
|
500
|
+
"properties": {
|
|
501
|
+
"jobId": {
|
|
502
|
+
"type": "string",
|
|
503
|
+
"description": "Unique identifier for the deduplication job"
|
|
504
|
+
},
|
|
505
|
+
"status": {
|
|
506
|
+
"$ref": "#/components/schemas/JobStatus"
|
|
507
|
+
},
|
|
508
|
+
"message": {
|
|
509
|
+
"type": "string",
|
|
510
|
+
"description": "Human-readable status message (e.g. progress info or error details)"
|
|
511
|
+
},
|
|
512
|
+
"result": {
|
|
513
|
+
"type": "array",
|
|
514
|
+
"items": {
|
|
515
|
+
"$ref": "#/components/schemas/Entity"
|
|
516
|
+
},
|
|
517
|
+
"description": "Array of deduplicated entities, present when status is completed"
|
|
518
|
+
},
|
|
519
|
+
"createdAt": {
|
|
520
|
+
"type": "string",
|
|
521
|
+
"description": "ISO 8601 timestamp of job creation",
|
|
522
|
+
"format": "date-time"
|
|
523
|
+
},
|
|
524
|
+
"updatedAt": {
|
|
525
|
+
"type": "string",
|
|
526
|
+
"description": "ISO 8601 timestamp of last update",
|
|
527
|
+
"format": "date-time"
|
|
528
|
+
}
|
|
529
|
+
},
|
|
530
|
+
"required": [
|
|
531
|
+
"jobId",
|
|
532
|
+
"status",
|
|
533
|
+
"createdAt",
|
|
534
|
+
"updatedAt"
|
|
535
|
+
],
|
|
536
|
+
"description": "Represents an async deduplication job"
|
|
537
|
+
},
|
|
538
|
+
"DetectDuplicatesRequestBody": {
|
|
539
|
+
"type": "object",
|
|
540
|
+
"properties": {
|
|
541
|
+
"schema": {
|
|
542
|
+
"type": "string",
|
|
543
|
+
"minLength": 1,
|
|
544
|
+
"description": "Entity schema to search (e.g. 'contact'). Must have UniquenessCriteria configured for the calling org."
|
|
545
|
+
},
|
|
546
|
+
"entity": {
|
|
547
|
+
"type": "object",
|
|
548
|
+
"additionalProperties": {},
|
|
549
|
+
"description": "The entity to look up potential duplicates for. Attribute values are extracted from this entity per the schema's match rules; system fields such as '_id' are supported. A rule is evaluated when at least one of its attributes resolves to a non-empty value on this entity; attributes without a value require candidates to also lack a value for them."
|
|
550
|
+
}
|
|
551
|
+
},
|
|
552
|
+
"required": [
|
|
553
|
+
"schema",
|
|
554
|
+
"entity"
|
|
555
|
+
]
|
|
556
|
+
},
|
|
557
|
+
"DetectDuplicatesResponse": {
|
|
558
|
+
"type": "object",
|
|
559
|
+
"properties": {
|
|
560
|
+
"matches": {
|
|
561
|
+
"type": "array",
|
|
562
|
+
"items": {
|
|
563
|
+
"$ref": "#/components/schemas/DetectedDuplicateMatch"
|
|
564
|
+
}
|
|
565
|
+
}
|
|
566
|
+
},
|
|
567
|
+
"required": [
|
|
568
|
+
"matches"
|
|
569
|
+
]
|
|
570
|
+
},
|
|
571
|
+
"DetectedDuplicateMatch": {
|
|
572
|
+
"type": "object",
|
|
573
|
+
"properties": {
|
|
574
|
+
"entity": {
|
|
575
|
+
"$ref": "#/components/schemas/Entity"
|
|
576
|
+
},
|
|
577
|
+
"confidence": {
|
|
578
|
+
"type": "number",
|
|
579
|
+
"minimum": 0,
|
|
580
|
+
"maximum": 1,
|
|
581
|
+
"description": "Confidence score for the match, between 0 and 1."
|
|
582
|
+
},
|
|
583
|
+
"matched_attributes": {
|
|
584
|
+
"type": "array",
|
|
585
|
+
"items": {
|
|
586
|
+
"type": "string"
|
|
587
|
+
},
|
|
588
|
+
"minItems": 1,
|
|
589
|
+
"description": "Names of the attributes that matched on the rule that produced this hit."
|
|
590
|
+
}
|
|
591
|
+
},
|
|
592
|
+
"required": [
|
|
593
|
+
"entity",
|
|
594
|
+
"confidence",
|
|
595
|
+
"matched_attributes"
|
|
596
|
+
]
|
|
597
|
+
},
|
|
598
|
+
"DismissDuplicatesRequestBody": {
|
|
599
|
+
"type": "object",
|
|
600
|
+
"properties": {
|
|
601
|
+
"schema": {
|
|
602
|
+
"type": "string",
|
|
603
|
+
"minLength": 1
|
|
604
|
+
},
|
|
605
|
+
"entityIds": {
|
|
606
|
+
"type": "array",
|
|
607
|
+
"items": {
|
|
608
|
+
"type": "string",
|
|
609
|
+
"minLength": 1
|
|
610
|
+
},
|
|
611
|
+
"minItems": 1,
|
|
612
|
+
"maxItems": 100,
|
|
613
|
+
"description": "Entities whose duplicate flags (_matching_entities) are cleared — the records are confirmed as NOT duplicates and stay separate"
|
|
614
|
+
}
|
|
615
|
+
},
|
|
616
|
+
"required": [
|
|
617
|
+
"schema",
|
|
618
|
+
"entityIds"
|
|
619
|
+
]
|
|
620
|
+
},
|
|
621
|
+
"DismissDuplicatesResponse": {
|
|
622
|
+
"type": "object",
|
|
623
|
+
"properties": {
|
|
624
|
+
"dismissed": {
|
|
625
|
+
"type": "array",
|
|
626
|
+
"items": {
|
|
627
|
+
"type": "string"
|
|
628
|
+
},
|
|
629
|
+
"description": "Entity ids whose duplicate flags were cleared"
|
|
630
|
+
}
|
|
631
|
+
},
|
|
632
|
+
"required": [
|
|
633
|
+
"dismissed"
|
|
634
|
+
]
|
|
635
|
+
},
|
|
636
|
+
"UniquenessCriteriaListResponse": {
|
|
637
|
+
"type": "object",
|
|
638
|
+
"properties": {
|
|
639
|
+
"items": {
|
|
640
|
+
"type": "array",
|
|
641
|
+
"items": {
|
|
642
|
+
"$ref": "#/components/schemas/UniquenessCriteria"
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
},
|
|
646
|
+
"required": [
|
|
647
|
+
"items"
|
|
648
|
+
]
|
|
649
|
+
},
|
|
650
|
+
"UniquenessCriteria": {
|
|
651
|
+
"type": "object",
|
|
652
|
+
"properties": {
|
|
653
|
+
"id": {
|
|
654
|
+
"type": "string",
|
|
655
|
+
"format": "uuid",
|
|
656
|
+
"description": "Unique identifier of the criteria record."
|
|
657
|
+
},
|
|
658
|
+
"orgId": {
|
|
659
|
+
"type": "string",
|
|
660
|
+
"description": "Organization the criteria belong to."
|
|
661
|
+
},
|
|
662
|
+
"schema": {
|
|
663
|
+
"type": "string",
|
|
664
|
+
"minLength": 1,
|
|
665
|
+
"description": "Entity schema these criteria apply to (e.g. 'contact')."
|
|
666
|
+
},
|
|
667
|
+
"matchRules": {
|
|
668
|
+
"type": "array",
|
|
669
|
+
"items": {
|
|
670
|
+
"$ref": "#/components/schemas/MatchRule"
|
|
671
|
+
},
|
|
672
|
+
"minItems": 1,
|
|
673
|
+
"description": "Ordered list of match rules. Order is the evaluation priority."
|
|
674
|
+
},
|
|
675
|
+
"createdAt": {
|
|
676
|
+
"type": "string",
|
|
677
|
+
"description": "ISO 8601 timestamp of record creation.",
|
|
678
|
+
"format": "date-time"
|
|
679
|
+
},
|
|
680
|
+
"updatedAt": {
|
|
681
|
+
"type": "string",
|
|
682
|
+
"description": "ISO 8601 timestamp of last update.",
|
|
683
|
+
"format": "date-time"
|
|
684
|
+
}
|
|
685
|
+
},
|
|
686
|
+
"required": [
|
|
687
|
+
"id",
|
|
688
|
+
"orgId",
|
|
689
|
+
"schema",
|
|
690
|
+
"matchRules",
|
|
691
|
+
"createdAt",
|
|
692
|
+
"updatedAt"
|
|
693
|
+
],
|
|
694
|
+
"description": "Defines what makes an entity of a given schema unique within an organization."
|
|
695
|
+
},
|
|
696
|
+
"MatchRule": {
|
|
697
|
+
"type": "object",
|
|
698
|
+
"properties": {
|
|
699
|
+
"name": {
|
|
700
|
+
"type": "string",
|
|
701
|
+
"maxLength": 100,
|
|
702
|
+
"description": "Optional human-readable label for the rule. Purely descriptive; not used during matching."
|
|
703
|
+
},
|
|
704
|
+
"attributes": {
|
|
705
|
+
"type": "array",
|
|
706
|
+
"items": {
|
|
707
|
+
"$ref": "#/components/schemas/MatchAttribute"
|
|
708
|
+
},
|
|
709
|
+
"minItems": 1,
|
|
710
|
+
"description": "Attributes that must all match for this rule to fire. Attributes without a value on the source entity must also have no value on a matching candidate."
|
|
711
|
+
},
|
|
712
|
+
"confidence": {
|
|
713
|
+
"type": "number",
|
|
714
|
+
"minimum": 0,
|
|
715
|
+
"maximum": 1,
|
|
716
|
+
"description": "Confidence assigned to matches produced by this rule, between 0 and 1."
|
|
717
|
+
}
|
|
718
|
+
},
|
|
719
|
+
"required": [
|
|
720
|
+
"attributes",
|
|
721
|
+
"confidence"
|
|
722
|
+
],
|
|
723
|
+
"description": "One way to identify the same entity. Evaluated in order; first rule whose attributes are all available and that returns hits wins."
|
|
724
|
+
},
|
|
725
|
+
"MatchAttribute": {
|
|
726
|
+
"type": "object",
|
|
727
|
+
"properties": {
|
|
728
|
+
"attribute": {
|
|
729
|
+
"type": "string",
|
|
730
|
+
"minLength": 1,
|
|
731
|
+
"description": "Name of the entity attribute to match on. Its query path is resolved from the entity schema at query time."
|
|
732
|
+
}
|
|
733
|
+
},
|
|
734
|
+
"required": [
|
|
735
|
+
"attribute"
|
|
736
|
+
],
|
|
737
|
+
"description": "One attribute participating in a match rule. Wrapped as an object so per-attribute options can be added later."
|
|
738
|
+
},
|
|
739
|
+
"UniquenessCriteriaCreateBody": {
|
|
740
|
+
"type": "object",
|
|
741
|
+
"properties": {
|
|
742
|
+
"schema": {
|
|
743
|
+
"type": "string",
|
|
744
|
+
"minLength": 1,
|
|
745
|
+
"description": "Entity schema these criteria apply to."
|
|
746
|
+
},
|
|
747
|
+
"matchRules": {
|
|
748
|
+
"type": "array",
|
|
749
|
+
"items": {
|
|
750
|
+
"$ref": "#/components/schemas/MatchRule"
|
|
751
|
+
},
|
|
752
|
+
"minItems": 1
|
|
753
|
+
}
|
|
754
|
+
},
|
|
755
|
+
"required": [
|
|
756
|
+
"schema",
|
|
757
|
+
"matchRules"
|
|
758
|
+
]
|
|
759
|
+
},
|
|
760
|
+
"UniquenessCriteriaUpdateBody": {
|
|
761
|
+
"type": "object",
|
|
762
|
+
"properties": {
|
|
763
|
+
"matchRules": {
|
|
764
|
+
"type": "array",
|
|
765
|
+
"items": {
|
|
766
|
+
"$ref": "#/components/schemas/MatchRule"
|
|
767
|
+
},
|
|
768
|
+
"minItems": 1
|
|
769
|
+
}
|
|
770
|
+
},
|
|
771
|
+
"required": [
|
|
772
|
+
"matchRules"
|
|
773
|
+
]
|
|
774
|
+
}
|
|
775
|
+
}
|
|
776
|
+
},
|
|
777
|
+
"servers": [
|
|
778
|
+
{
|
|
779
|
+
"url": "https://deduplication.sls.epilot.io"
|
|
780
|
+
}
|
|
781
|
+
]
|
|
782
|
+
}
|