@celigo/api-specs 0.2.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.
- package/LICENSE +21 -0
- package/README.md +119 -0
- package/dist/account.yml +592 -0
- package/dist/agent.yml +908 -0
- package/dist/ai-agent.yml +5471 -0
- package/dist/api.yml +4140 -0
- package/dist/apim.yml +1286 -0
- package/dist/asynchelper.yml +3391 -0
- package/dist/audit.yml +2006 -0
- package/dist/connection.yml +8665 -0
- package/dist/connector.yml +1406 -0
- package/dist/ediprofile.yml +911 -0
- package/dist/editransaction.yml +1210 -0
- package/dist/enduser.yml +1724 -0
- package/dist/environment.yml +568 -0
- package/dist/eventreport.yml +692 -0
- package/dist/export.yml +17610 -0
- package/dist/filedefinition.yml +1396 -0
- package/dist/filestorage.yml +3102 -0
- package/dist/flow.yml +7928 -0
- package/dist/guardrail.yml +2763 -0
- package/dist/httpconnector.yml +2277 -0
- package/dist/httpconnectorendpoint.yml +722 -0
- package/dist/httpconnectorresource.yml +396 -0
- package/dist/iclient.yml +4452 -0
- package/dist/import.yml +15381 -0
- package/dist/integration.yml +4406 -0
- package/dist/job.yml +2014 -0
- package/dist/lookupcache.yml +1325 -0
- package/dist/marketplace.yml +685 -0
- package/dist/mcp-oauth-provider.yml +590 -0
- package/dist/mcp-server.yml +2656 -0
- package/dist/notification.yml +488 -0
- package/dist/processor.yml +1253 -0
- package/dist/profile.yml +455 -0
- package/dist/recyclebin.yml +768 -0
- package/dist/script.yml +1128 -0
- package/dist/stack.yml +1291 -0
- package/dist/state.yml +894 -0
- package/dist/subscription.yml +1405 -0
- package/dist/sync.yml +4857 -0
- package/dist/tag.yml +553 -0
- package/dist/template.yml +897 -0
- package/dist/tool.yml +33656 -0
- package/dist/tradingpartnerconnector.yml +1490 -0
- package/dist/user.yml +831 -0
- package/package.json +41 -0
- package/schemas.json +8420 -0
|
@@ -0,0 +1,2763 @@
|
|
|
1
|
+
openapi: 3.2.0
|
|
2
|
+
info:
|
|
3
|
+
version: 1.0.0
|
|
4
|
+
title: Guardrails
|
|
5
|
+
description: Manage guardrail safety and compliance checks for integrations.
|
|
6
|
+
servers:
|
|
7
|
+
- url: https://api.integrator.io
|
|
8
|
+
description: Production (US / default region)
|
|
9
|
+
- url: https://api.eu.integrator.io
|
|
10
|
+
description: Production (EU region)
|
|
11
|
+
- url: https://api.au.integrator.io
|
|
12
|
+
description: Production (AU region)
|
|
13
|
+
- url: https://api.ca.integrator.io
|
|
14
|
+
description: Production (CA region)
|
|
15
|
+
security:
|
|
16
|
+
- bearerAuth: []
|
|
17
|
+
tags:
|
|
18
|
+
- name: Guardrails
|
|
19
|
+
description: |-
|
|
20
|
+
Guardrails are safety and compliance checks that evaluate data flowing
|
|
21
|
+
through integrations — detecting PII, moderating content, or applying
|
|
22
|
+
custom AI-powered rules.
|
|
23
|
+
|
|
24
|
+
Guardrails are import resources with `adaptorType: GuardrailImport`. All
|
|
25
|
+
CRUD operations use the `/v1/imports` endpoints. The `guardrail` object
|
|
26
|
+
holds the type-specific configuration.
|
|
27
|
+
|
|
28
|
+
## Guardrail schema
|
|
29
|
+
|
|
30
|
+
{% openapi-schemas spec="guardrail" schemas="Guardrail" grouped="true" %}
|
|
31
|
+
paths:
|
|
32
|
+
/v1/imports:
|
|
33
|
+
get:
|
|
34
|
+
x-internal: false
|
|
35
|
+
summary: List guardrails
|
|
36
|
+
description: |-
|
|
37
|
+
Returns all imports in the account, not just guardrails. Filter
|
|
38
|
+
client-side by `adaptorType: "GuardrailImport"` to isolate
|
|
39
|
+
guardrails.
|
|
40
|
+
operationId: listGuardrails
|
|
41
|
+
tags:
|
|
42
|
+
- Guardrails
|
|
43
|
+
parameters:
|
|
44
|
+
- $ref: '#/components/parameters/Include'
|
|
45
|
+
- $ref: '#/components/parameters/Exclude'
|
|
46
|
+
responses:
|
|
47
|
+
'200':
|
|
48
|
+
description: Successfully retrieved list of imports
|
|
49
|
+
headers:
|
|
50
|
+
Link:
|
|
51
|
+
description: |
|
|
52
|
+
RFC-5988 pagination links. When more pages remain, includes a `<...>; rel="next"` entry;
|
|
53
|
+
absent on the final page.
|
|
54
|
+
schema:
|
|
55
|
+
type: string
|
|
56
|
+
content:
|
|
57
|
+
application/json:
|
|
58
|
+
schema:
|
|
59
|
+
type: array
|
|
60
|
+
items:
|
|
61
|
+
$ref: '#/components/schemas/Guardrail'
|
|
62
|
+
examples:
|
|
63
|
+
guardrail-list:
|
|
64
|
+
summary: Response filtered to guardrails
|
|
65
|
+
value:
|
|
66
|
+
- _id: 69eb9f5078dbae2f1bb05f89
|
|
67
|
+
createdAt: '2026-04-24T16:50:24.073Z'
|
|
68
|
+
lastModified: '2026-05-02T15:46:24.249Z'
|
|
69
|
+
name: PII Scanner
|
|
70
|
+
apiIdentifier: i39ee734f7
|
|
71
|
+
sandbox: false
|
|
72
|
+
lookups: []
|
|
73
|
+
adaptorType: GuardrailImport
|
|
74
|
+
guardrail:
|
|
75
|
+
type: pii
|
|
76
|
+
confidenceThreshold: 0.7
|
|
77
|
+
pii:
|
|
78
|
+
entities:
|
|
79
|
+
- email_address
|
|
80
|
+
- phone_number
|
|
81
|
+
- us_social_security_number
|
|
82
|
+
mask: true
|
|
83
|
+
- _id: 69eb9f666fbf339ed3bc66c3
|
|
84
|
+
createdAt: '2026-04-24T16:50:46.439Z'
|
|
85
|
+
lastModified: '2026-04-24T16:50:53.525Z'
|
|
86
|
+
name: Content Moderator
|
|
87
|
+
_connectionId: 68ae48d6b5f755d2dd38c294
|
|
88
|
+
apiIdentifier: i6a7acf995
|
|
89
|
+
sandbox: false
|
|
90
|
+
lookups: []
|
|
91
|
+
adaptorType: GuardrailImport
|
|
92
|
+
guardrail:
|
|
93
|
+
type: moderation
|
|
94
|
+
confidenceThreshold: 0.7
|
|
95
|
+
moderation:
|
|
96
|
+
categories:
|
|
97
|
+
- hate
|
|
98
|
+
- violence
|
|
99
|
+
- harassment
|
|
100
|
+
'204':
|
|
101
|
+
description: No imports exist in the account
|
|
102
|
+
'401':
|
|
103
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
104
|
+
post:
|
|
105
|
+
x-internal: false
|
|
106
|
+
summary: Create a guardrail
|
|
107
|
+
description: |-
|
|
108
|
+
Creates a new guardrail import. `_connectionId` is only needed for
|
|
109
|
+
BYOK `ai_agent` guardrails.
|
|
110
|
+
operationId: createGuardrail
|
|
111
|
+
tags:
|
|
112
|
+
- Guardrails
|
|
113
|
+
requestBody:
|
|
114
|
+
required: true
|
|
115
|
+
content:
|
|
116
|
+
application/json:
|
|
117
|
+
schema:
|
|
118
|
+
$ref: '#/components/schemas/Request'
|
|
119
|
+
examples:
|
|
120
|
+
pii-guardrail:
|
|
121
|
+
summary: PII detection with masking
|
|
122
|
+
value:
|
|
123
|
+
name: PII Scanner
|
|
124
|
+
adaptorType: GuardrailImport
|
|
125
|
+
guardrail:
|
|
126
|
+
type: pii
|
|
127
|
+
confidenceThreshold: 0.7
|
|
128
|
+
pii:
|
|
129
|
+
entities:
|
|
130
|
+
- email_address
|
|
131
|
+
- phone_number
|
|
132
|
+
- us_social_security_number
|
|
133
|
+
mask: true
|
|
134
|
+
moderation-guardrail:
|
|
135
|
+
summary: Content moderation
|
|
136
|
+
value:
|
|
137
|
+
name: Content Moderator
|
|
138
|
+
adaptorType: GuardrailImport
|
|
139
|
+
guardrail:
|
|
140
|
+
type: moderation
|
|
141
|
+
confidenceThreshold: 0.7
|
|
142
|
+
moderation:
|
|
143
|
+
categories:
|
|
144
|
+
- hate
|
|
145
|
+
- violence
|
|
146
|
+
- harassment
|
|
147
|
+
ai-agent-guardrail:
|
|
148
|
+
summary: AI agent with BYOK connection
|
|
149
|
+
value:
|
|
150
|
+
name: Custom Validator
|
|
151
|
+
adaptorType: GuardrailImport
|
|
152
|
+
_connectionId: 68ae48d6b5f755d2dd38c294
|
|
153
|
+
guardrail:
|
|
154
|
+
type: ai_agent
|
|
155
|
+
confidenceThreshold: 0.7
|
|
156
|
+
aiAgent:
|
|
157
|
+
provider: openai
|
|
158
|
+
openai:
|
|
159
|
+
instructions: Validate that each record has a non-empty email field and a valid country code.
|
|
160
|
+
model: gpt-4.1-mini
|
|
161
|
+
responses:
|
|
162
|
+
'201':
|
|
163
|
+
description: Guardrail created successfully
|
|
164
|
+
content:
|
|
165
|
+
application/json:
|
|
166
|
+
schema:
|
|
167
|
+
$ref: '#/components/schemas/Guardrail'
|
|
168
|
+
examples:
|
|
169
|
+
pii-created:
|
|
170
|
+
summary: Newly created PII guardrail
|
|
171
|
+
value:
|
|
172
|
+
_id: 6a1cfd72c7867992e6d5b021
|
|
173
|
+
createdAt: '2026-06-01T03:33:06.758Z'
|
|
174
|
+
lastModified: '2026-06-01T03:33:06.851Z'
|
|
175
|
+
name: PII Scanner
|
|
176
|
+
apiIdentifier: i894602e87
|
|
177
|
+
lookups: []
|
|
178
|
+
adaptorType: GuardrailImport
|
|
179
|
+
guardrail:
|
|
180
|
+
type: pii
|
|
181
|
+
confidenceThreshold: 0.7
|
|
182
|
+
pii:
|
|
183
|
+
entities:
|
|
184
|
+
- email_address
|
|
185
|
+
- phone_number
|
|
186
|
+
mask: true
|
|
187
|
+
'400':
|
|
188
|
+
$ref: '#/components/responses/400-bad-request'
|
|
189
|
+
'401':
|
|
190
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
191
|
+
'422':
|
|
192
|
+
$ref: '#/components/responses/422-unprocessable-entity'
|
|
193
|
+
/v1/imports/{_id}:
|
|
194
|
+
get:
|
|
195
|
+
x-internal: false
|
|
196
|
+
summary: Get a guardrail
|
|
197
|
+
description: |-
|
|
198
|
+
Returns the complete configuration of a specific guardrail import.
|
|
199
|
+
The `_id` is from the imports collection — the same ID used for any
|
|
200
|
+
import type.
|
|
201
|
+
operationId: getGuardrailById
|
|
202
|
+
tags:
|
|
203
|
+
- Guardrails
|
|
204
|
+
parameters:
|
|
205
|
+
- name: _id
|
|
206
|
+
in: path
|
|
207
|
+
description: The unique identifier of the guardrail import
|
|
208
|
+
required: true
|
|
209
|
+
schema:
|
|
210
|
+
type: string
|
|
211
|
+
format: objectId
|
|
212
|
+
x-celigo-refModel: imports
|
|
213
|
+
examples:
|
|
214
|
+
- 5f8d43a1b9e5a80011a35f2c
|
|
215
|
+
responses:
|
|
216
|
+
'200':
|
|
217
|
+
description: Guardrail retrieved successfully
|
|
218
|
+
content:
|
|
219
|
+
application/json:
|
|
220
|
+
schema:
|
|
221
|
+
$ref: '#/components/schemas/Guardrail'
|
|
222
|
+
examples:
|
|
223
|
+
ai-agent-guardrail:
|
|
224
|
+
summary: AI agent guardrail with BYOK
|
|
225
|
+
value:
|
|
226
|
+
_id: 69eb9f666fbf339ed3bc66c3
|
|
227
|
+
createdAt: '2026-04-24T16:50:46.439Z'
|
|
228
|
+
lastModified: '2026-04-24T16:50:53.525Z'
|
|
229
|
+
name: Custom Validator
|
|
230
|
+
_connectionId: 68ae48d6b5f755d2dd38c294
|
|
231
|
+
apiIdentifier: i6a7acf995
|
|
232
|
+
sandbox: false
|
|
233
|
+
lookups: []
|
|
234
|
+
adaptorType: GuardrailImport
|
|
235
|
+
guardrail:
|
|
236
|
+
type: ai_agent
|
|
237
|
+
confidenceThreshold: 0.7
|
|
238
|
+
aiAgent:
|
|
239
|
+
provider: openai
|
|
240
|
+
openai:
|
|
241
|
+
instructions: Validate that each record has a non-empty email field.
|
|
242
|
+
model: gpt-4.1-mini-2025-04-14
|
|
243
|
+
tools: []
|
|
244
|
+
'401':
|
|
245
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
246
|
+
'404':
|
|
247
|
+
$ref: '#/components/responses/404-not-found'
|
|
248
|
+
put:
|
|
249
|
+
x-internal: false
|
|
250
|
+
summary: Update a guardrail
|
|
251
|
+
description: |-
|
|
252
|
+
Replaces the guardrail import with the provided configuration.
|
|
253
|
+
This is a full replace -- include all fields you want to keep.
|
|
254
|
+
`adaptorType` must remain `GuardrailImport`.
|
|
255
|
+
operationId: updateGuardrail
|
|
256
|
+
tags:
|
|
257
|
+
- Guardrails
|
|
258
|
+
parameters:
|
|
259
|
+
- name: _id
|
|
260
|
+
in: path
|
|
261
|
+
description: The unique identifier of the guardrail import
|
|
262
|
+
required: true
|
|
263
|
+
schema:
|
|
264
|
+
type: string
|
|
265
|
+
format: objectId
|
|
266
|
+
x-celigo-refModel: imports
|
|
267
|
+
examples:
|
|
268
|
+
- 5f8d43a1b9e5a80011a35f2c
|
|
269
|
+
requestBody:
|
|
270
|
+
required: true
|
|
271
|
+
content:
|
|
272
|
+
application/json:
|
|
273
|
+
schema:
|
|
274
|
+
$ref: '#/components/schemas/Request'
|
|
275
|
+
examples:
|
|
276
|
+
update-pii:
|
|
277
|
+
summary: Update PII guardrail to add masking
|
|
278
|
+
value:
|
|
279
|
+
name: PII Scanner
|
|
280
|
+
adaptorType: GuardrailImport
|
|
281
|
+
guardrail:
|
|
282
|
+
type: pii
|
|
283
|
+
confidenceThreshold: 0.8
|
|
284
|
+
pii:
|
|
285
|
+
entities:
|
|
286
|
+
- email_address
|
|
287
|
+
- phone_number
|
|
288
|
+
- credit_card_number
|
|
289
|
+
mask: true
|
|
290
|
+
responses:
|
|
291
|
+
'200':
|
|
292
|
+
description: Guardrail updated successfully
|
|
293
|
+
content:
|
|
294
|
+
application/json:
|
|
295
|
+
schema:
|
|
296
|
+
$ref: '#/components/schemas/Guardrail'
|
|
297
|
+
examples:
|
|
298
|
+
pii-updated:
|
|
299
|
+
summary: PII guardrail after adding credit card masking
|
|
300
|
+
value:
|
|
301
|
+
_id: 69eb9f5078dbae2f1bb05f89
|
|
302
|
+
createdAt: '2026-04-24T16:50:24.073Z'
|
|
303
|
+
lastModified: '2026-05-02T16:12:08.114Z'
|
|
304
|
+
name: PII Scanner
|
|
305
|
+
apiIdentifier: i39ee734f7
|
|
306
|
+
sandbox: false
|
|
307
|
+
lookups: []
|
|
308
|
+
adaptorType: GuardrailImport
|
|
309
|
+
guardrail:
|
|
310
|
+
type: pii
|
|
311
|
+
confidenceThreshold: 0.8
|
|
312
|
+
pii:
|
|
313
|
+
entities:
|
|
314
|
+
- email_address
|
|
315
|
+
- phone_number
|
|
316
|
+
- credit_card_number
|
|
317
|
+
mask: true
|
|
318
|
+
'400':
|
|
319
|
+
$ref: '#/components/responses/400-bad-request'
|
|
320
|
+
'401':
|
|
321
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
322
|
+
'404':
|
|
323
|
+
$ref: '#/components/responses/404-not-found'
|
|
324
|
+
'422':
|
|
325
|
+
$ref: '#/components/responses/422-unprocessable-entity'
|
|
326
|
+
delete:
|
|
327
|
+
x-internal: false
|
|
328
|
+
summary: Delete a guardrail
|
|
329
|
+
description: |-
|
|
330
|
+
Deletes a guardrail import. Soft-deleted and retained in the recycle
|
|
331
|
+
bin for 30 days before permanent removal.
|
|
332
|
+
operationId: deleteGuardrail
|
|
333
|
+
tags:
|
|
334
|
+
- Guardrails
|
|
335
|
+
parameters:
|
|
336
|
+
- name: _id
|
|
337
|
+
in: path
|
|
338
|
+
description: The unique identifier of the guardrail import
|
|
339
|
+
required: true
|
|
340
|
+
schema:
|
|
341
|
+
type: string
|
|
342
|
+
format: objectId
|
|
343
|
+
x-celigo-refModel: imports
|
|
344
|
+
examples:
|
|
345
|
+
- 5f8d43a1b9e5a80011a35f2c
|
|
346
|
+
responses:
|
|
347
|
+
'204':
|
|
348
|
+
description: Guardrail deleted successfully
|
|
349
|
+
'401':
|
|
350
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
351
|
+
'404':
|
|
352
|
+
$ref: '#/components/responses/404-not-found'
|
|
353
|
+
'422':
|
|
354
|
+
$ref: '#/components/responses/422-dependency-conflict'
|
|
355
|
+
/v1/imports/{_id}/dependencies:
|
|
356
|
+
get:
|
|
357
|
+
x-internal: false
|
|
358
|
+
operationId: listGuardrailDependencies
|
|
359
|
+
tags:
|
|
360
|
+
- Guardrails
|
|
361
|
+
summary: List dependencies of a guardrail
|
|
362
|
+
description: |-
|
|
363
|
+
Returns the set of resources that depend on the specified guardrail import.
|
|
364
|
+
The response is an object whose keys are dependent-resource types
|
|
365
|
+
(e.g. `flows`, `imports`) and whose values are arrays of dependency entries.
|
|
366
|
+
|
|
367
|
+
An empty object `{}` means no other resources depend on the target.
|
|
368
|
+
This is also returned for a well-formatted but nonexistent id.
|
|
369
|
+
parameters:
|
|
370
|
+
- name: _id
|
|
371
|
+
in: path
|
|
372
|
+
required: true
|
|
373
|
+
description: Resource ID.
|
|
374
|
+
schema:
|
|
375
|
+
type: string
|
|
376
|
+
format: objectId
|
|
377
|
+
x-celigo-refModel: imports
|
|
378
|
+
examples:
|
|
379
|
+
- 66a1f2c3b4d5e6f7a8b9c0d1
|
|
380
|
+
responses:
|
|
381
|
+
'200':
|
|
382
|
+
description: |
|
|
383
|
+
Dependency map. Keys are resource-type strings; values are arrays
|
|
384
|
+
of dependency entries. Returns `{}` when no dependents exist.
|
|
385
|
+
content:
|
|
386
|
+
application/json:
|
|
387
|
+
schema:
|
|
388
|
+
$ref: '#/components/schemas/DependencyResponse'
|
|
389
|
+
examples:
|
|
390
|
+
none:
|
|
391
|
+
summary: No dependents (also returned for a nonexistent ID)
|
|
392
|
+
value: {}
|
|
393
|
+
'401':
|
|
394
|
+
$ref: '#/components/responses/401-unauthorized'
|
|
395
|
+
components:
|
|
396
|
+
securitySchemes:
|
|
397
|
+
bearerAuth:
|
|
398
|
+
type: http
|
|
399
|
+
scheme: bearer
|
|
400
|
+
parameters:
|
|
401
|
+
Include:
|
|
402
|
+
name: include
|
|
403
|
+
in: query
|
|
404
|
+
required: false
|
|
405
|
+
description: |-
|
|
406
|
+
Comma-separated list of fields to project into each returned record.
|
|
407
|
+
Triggers summary projection: the response contains a minimal identity
|
|
408
|
+
set (`_id`, `name`, plus resource-specific fields) with the requested
|
|
409
|
+
fields added on top. Supports dot notation for nested fields.
|
|
410
|
+
Mutually exclusive with `exclude`.
|
|
411
|
+
schema:
|
|
412
|
+
type: string
|
|
413
|
+
example: _integrationId,disabled,lastModified
|
|
414
|
+
Exclude:
|
|
415
|
+
name: exclude
|
|
416
|
+
in: query
|
|
417
|
+
required: false
|
|
418
|
+
description: |-
|
|
419
|
+
Comma-separated list of fields to strip from the default response.
|
|
420
|
+
Unlike `include`, does not trigger summary projection — returns the
|
|
421
|
+
full record with the named fields removed. Protected identity fields
|
|
422
|
+
(e.g. `name`) cannot be stripped. Mutually exclusive with `include`.
|
|
423
|
+
schema:
|
|
424
|
+
type: string
|
|
425
|
+
example: createdAt,lastModified
|
|
426
|
+
schemas:
|
|
427
|
+
ResourceResponse:
|
|
428
|
+
type: object
|
|
429
|
+
description: Response
|
|
430
|
+
x-celigo-ai-guidance:
|
|
431
|
+
- Core response fields shared by all Celigo resources
|
|
432
|
+
properties:
|
|
433
|
+
_id:
|
|
434
|
+
type: string
|
|
435
|
+
format: objectId
|
|
436
|
+
readOnly: true
|
|
437
|
+
description: Unique identifier for the resource. Format is a 24-character hexadecimal string.
|
|
438
|
+
x-celigo-ai-guidance:
|
|
439
|
+
- |-
|
|
440
|
+
The _id is used in:
|
|
441
|
+
- API endpoints that operate on a specific resource (e.g., GET, PUT, DELETE)
|
|
442
|
+
- References from other resources (e.g., flows that use this resource)
|
|
443
|
+
- Job history and error tracking
|
|
444
|
+
examples:
|
|
445
|
+
- 5f8d43a1b9e5a80011a35f2c
|
|
446
|
+
createdAt:
|
|
447
|
+
type: string
|
|
448
|
+
format: date-time
|
|
449
|
+
readOnly: true
|
|
450
|
+
description: Timestamp when the resource was created. Set automatically and cannot be modified.
|
|
451
|
+
x-celigo-ai-guidance:
|
|
452
|
+
- Recorded in ISO 8601 with a UTC timezone (Z suffix).
|
|
453
|
+
examples:
|
|
454
|
+
- '2023-04-01T09:15:32Z'
|
|
455
|
+
lastModified:
|
|
456
|
+
type: string
|
|
457
|
+
format: date-time
|
|
458
|
+
readOnly: true
|
|
459
|
+
description: Timestamp when the resource was last updated. Changes whenever any property is modified.
|
|
460
|
+
x-celigo-ai-guidance:
|
|
461
|
+
- Recorded in ISO 8601 with a UTC timezone (Z suffix); always equal to or later than `createdAt`.
|
|
462
|
+
examples:
|
|
463
|
+
- '2023-04-15T14:30:15Z'
|
|
464
|
+
deletedAt:
|
|
465
|
+
type:
|
|
466
|
+
- string
|
|
467
|
+
- 'null'
|
|
468
|
+
format: date-time
|
|
469
|
+
readOnly: true
|
|
470
|
+
description: Timestamp when the resource was soft-deleted. When null or absent, the resource is active.
|
|
471
|
+
x-celigo-ai-guidance:
|
|
472
|
+
- Non-null means the resource is soft-deleted (in the recycle bin) — recoverable within the retention period before permanent removal.
|
|
473
|
+
examples:
|
|
474
|
+
- '2023-05-20T11:45:32Z'
|
|
475
|
+
required:
|
|
476
|
+
- _id
|
|
477
|
+
IAResourceResponse:
|
|
478
|
+
type: object
|
|
479
|
+
description: Integration app response fields for resources that are part of integration apps
|
|
480
|
+
properties:
|
|
481
|
+
_integrationId:
|
|
482
|
+
type: string
|
|
483
|
+
format: objectId
|
|
484
|
+
x-celigo-refModel: integrations
|
|
485
|
+
readOnly: true
|
|
486
|
+
description: |
|
|
487
|
+
Reference to the specific integration instance that contains this resource.
|
|
488
|
+
|
|
489
|
+
This field is only populated for resources that are part of an integration app
|
|
490
|
+
installation. It contains the unique identifier (_id) of the integration
|
|
491
|
+
resource that was installed in the account.
|
|
492
|
+
|
|
493
|
+
The integration instance represents a specific installed instance of an
|
|
494
|
+
integration app, with its own configuration, settings, and runtime environment.
|
|
495
|
+
|
|
496
|
+
This reference enables:
|
|
497
|
+
- Tracing the resource back to its parent integration instance
|
|
498
|
+
- Permission and access control based on integration ownership
|
|
499
|
+
- Lifecycle management (enabling/disabling, updating, or uninstalling)
|
|
500
|
+
examples:
|
|
501
|
+
- 5f9a7b2c3d4e5f6a7b8c9d0e
|
|
502
|
+
_connectorId:
|
|
503
|
+
type: string
|
|
504
|
+
format: objectId
|
|
505
|
+
x-celigo-refModel: connectors
|
|
506
|
+
readOnly: true
|
|
507
|
+
description: |
|
|
508
|
+
Reference to the integration app that defines this resource.
|
|
509
|
+
|
|
510
|
+
This field is only populated for resources that are part of an integration app.
|
|
511
|
+
It contains the unique identifier (_id) of the integration app (connector)
|
|
512
|
+
that defines the structure, behavior, and templates for this resource.
|
|
513
|
+
|
|
514
|
+
The integration app is the published template that can be installed
|
|
515
|
+
multiple times across different accounts, with each installation creating
|
|
516
|
+
a separate integration instance (referenced by _integrationId).
|
|
517
|
+
|
|
518
|
+
This reference enables:
|
|
519
|
+
- Identifying the source integration app for this resource
|
|
520
|
+
- Determining which template version is being used
|
|
521
|
+
- Linking to documentation, support, and marketplace information
|
|
522
|
+
examples:
|
|
523
|
+
- 5e8d43a1b9e5a80011a35f1b
|
|
524
|
+
x-celigo-ai-guidance:
|
|
525
|
+
- |-
|
|
526
|
+
Read-only connector (Integration App template) reference; present only on
|
|
527
|
+
connector-owned resources. Never set or modify it when authoring resources.
|
|
528
|
+
McpResources:
|
|
529
|
+
type: array
|
|
530
|
+
description: |-
|
|
531
|
+
Governed MCP resources — read-only reference content (policies, schemas, documentation)
|
|
532
|
+
pulled from connected MCP servers and made available to the agent as a consistent source
|
|
533
|
+
of truth. Each entry references one MCP connection and the specific resources allowed from it.
|
|
534
|
+
items:
|
|
535
|
+
type: object
|
|
536
|
+
required:
|
|
537
|
+
- type
|
|
538
|
+
- mcp
|
|
539
|
+
properties:
|
|
540
|
+
type:
|
|
541
|
+
type: string
|
|
542
|
+
enum:
|
|
543
|
+
- mcp
|
|
544
|
+
x-enumDescriptions:
|
|
545
|
+
mcp: Reference read-only resources exposed by an MCP server.
|
|
546
|
+
description: Type of resource entry. Always "mcp".
|
|
547
|
+
mcp:
|
|
548
|
+
type: object
|
|
549
|
+
required:
|
|
550
|
+
- _mcpConnectionId
|
|
551
|
+
- allowedResources
|
|
552
|
+
description: MCP server resource configuration.
|
|
553
|
+
properties:
|
|
554
|
+
_mcpConnectionId:
|
|
555
|
+
type: string
|
|
556
|
+
format: objectId
|
|
557
|
+
x-celigo-refModel: connections
|
|
558
|
+
description: Connection to the MCP server that exposes the resources.
|
|
559
|
+
allowedResources:
|
|
560
|
+
type: array
|
|
561
|
+
minItems: 1
|
|
562
|
+
description: |-
|
|
563
|
+
Resources to expose to the agent from the MCP server. Must contain at least one
|
|
564
|
+
entry; each entry identifies one resource by name and URI.
|
|
565
|
+
items:
|
|
566
|
+
type: object
|
|
567
|
+
required:
|
|
568
|
+
- name
|
|
569
|
+
- uri
|
|
570
|
+
properties:
|
|
571
|
+
name:
|
|
572
|
+
type: string
|
|
573
|
+
description: Display name of the MCP resource.
|
|
574
|
+
examples:
|
|
575
|
+
- Data Retention Policy
|
|
576
|
+
uri:
|
|
577
|
+
type: string
|
|
578
|
+
description: URI that identifies the resource on the MCP server.
|
|
579
|
+
examples:
|
|
580
|
+
- resource://policies/data-retention
|
|
581
|
+
AiAgentConfig:
|
|
582
|
+
type: object
|
|
583
|
+
description: |
|
|
584
|
+
AI Agent configuration used by both AiAgentImport and GuardrailImport (ai_agent type).
|
|
585
|
+
|
|
586
|
+
Configures which AI provider and model to use, along with instructions, parameter
|
|
587
|
+
tuning, output format, and available tools. Three providers are supported:
|
|
588
|
+
|
|
589
|
+
- **openai**: OpenAI models (GPT-4, GPT-4o, GPT-4o-mini, GPT-5, etc.). Configure via the `openai` object.
|
|
590
|
+
- **gemini**: Google Gemini models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.gemini`.
|
|
591
|
+
- **anthropic**: Anthropic Claude models via the LiteLLM proxy. Configure via `litellm` with overrides in `litellm._overrides.anthropic`.
|
|
592
|
+
|
|
593
|
+
A `_connectionId` is optional (BYOK). If not provided on the parent import,
|
|
594
|
+
platform-managed credentials are used.
|
|
595
|
+
required:
|
|
596
|
+
- provider
|
|
597
|
+
properties:
|
|
598
|
+
provider:
|
|
599
|
+
type: string
|
|
600
|
+
enum:
|
|
601
|
+
- openai
|
|
602
|
+
- gemini
|
|
603
|
+
- anthropic
|
|
604
|
+
x-enumDescriptions:
|
|
605
|
+
openai: Use OpenAI models via the OpenAI Responses API.
|
|
606
|
+
gemini: Use Google Gemini models via the LiteLLM proxy.
|
|
607
|
+
anthropic: Use Anthropic Claude models via the LiteLLM proxy.
|
|
608
|
+
description: AI provider to use.
|
|
609
|
+
x-celigo-ai-guidance:
|
|
610
|
+
- |-
|
|
611
|
+
- **openai**: Uses OpenAI Responses API. Configure via the `openai` object.
|
|
612
|
+
- **gemini**: Uses Google Gemini via LiteLLM. Configure via `litellm` with
|
|
613
|
+
Gemini-specific overrides in `litellm._overrides.gemini`.
|
|
614
|
+
- **anthropic**: Uses Anthropic Claude via LiteLLM. Configure via `litellm` with
|
|
615
|
+
Claude-specific overrides in `litellm._overrides.anthropic`.
|
|
616
|
+
openai:
|
|
617
|
+
type: object
|
|
618
|
+
description: |
|
|
619
|
+
OpenAI-specific configuration. Used when `provider` is "openai".
|
|
620
|
+
required:
|
|
621
|
+
- model
|
|
622
|
+
- instructions
|
|
623
|
+
properties:
|
|
624
|
+
instructions:
|
|
625
|
+
type: string
|
|
626
|
+
maxLength: 1000000
|
|
627
|
+
description: |
|
|
628
|
+
System prompt that defines the AI agent's behavior, goals, and constraints.
|
|
629
|
+
examples:
|
|
630
|
+
- You are a data validation agent. Check each record for completeness.
|
|
631
|
+
x-celigo-ui-override: Required by the AI agent configuration form (the model's system prompt). Encoded here to mirror the form so builders produce connectable configurations.
|
|
632
|
+
model:
|
|
633
|
+
type: string
|
|
634
|
+
description: OpenAI model identifier. Open string (not an enum) — model names change frequently.
|
|
635
|
+
examples:
|
|
636
|
+
- gpt-5.4
|
|
637
|
+
- gpt-5.4-pro
|
|
638
|
+
- gpt-5-mini
|
|
639
|
+
- gpt-5-nano
|
|
640
|
+
- gpt-4.1-mini
|
|
641
|
+
- gpt-4o
|
|
642
|
+
x-celigo-ui-override: Required by the AI agent configuration form. Encoded here to mirror the form so builders produce connectable configurations.
|
|
643
|
+
x-celigo-ai-guidance:
|
|
644
|
+
- |-
|
|
645
|
+
With platform-managed credentials (no `_connectionId` on the parent
|
|
646
|
+
import), the model must be on the platform's allowlist — an
|
|
647
|
+
unlisted model fails the save with 422. A BYOK connection bypasses
|
|
648
|
+
the allowlist and the model string is passed through to the
|
|
649
|
+
provider as-is.
|
|
650
|
+
reasoning:
|
|
651
|
+
type: object
|
|
652
|
+
description: Controls depth of reasoning for complex tasks.
|
|
653
|
+
x-celigo-ai-guidance:
|
|
654
|
+
- |-
|
|
655
|
+
Supported on reasoning-capable OpenAI models only (currently the GPT-5 family and the o-series).
|
|
656
|
+
Setting `reasoning` on a non-reasoning model (e.g.
|
|
657
|
+
`gpt-4.1-mini`) is rejected by the provider at runtime — omit the field on those models.
|
|
658
|
+
properties:
|
|
659
|
+
effort:
|
|
660
|
+
type: string
|
|
661
|
+
enum:
|
|
662
|
+
- none
|
|
663
|
+
- minimal
|
|
664
|
+
- low
|
|
665
|
+
- medium
|
|
666
|
+
- high
|
|
667
|
+
- xhigh
|
|
668
|
+
x-enumDescriptions:
|
|
669
|
+
none: No additional reasoning effort.
|
|
670
|
+
minimal: Least reasoning effort for simple, straightforward tasks.
|
|
671
|
+
low: Light reasoning for moderately simple tasks.
|
|
672
|
+
medium: Balanced reasoning effort for typical tasks.
|
|
673
|
+
high: Maximum reasoning effort for complex, multi-step tasks.
|
|
674
|
+
xhigh: Highest reasoning effort for the most demanding, multi-step tasks.
|
|
675
|
+
description: How much reasoning effort the model should invest
|
|
676
|
+
x-celigo-ai-guidance:
|
|
677
|
+
- |-
|
|
678
|
+
How much reasoning effort the model should invest.
|
|
679
|
+
Reasoning- capable models only — see `reasoning` for the gating rule.
|
|
680
|
+
summary:
|
|
681
|
+
type: string
|
|
682
|
+
enum:
|
|
683
|
+
- concise
|
|
684
|
+
- auto
|
|
685
|
+
- detailed
|
|
686
|
+
x-enumDescriptions:
|
|
687
|
+
concise: Brief, high-level reasoning summary.
|
|
688
|
+
auto: Let the model decide the appropriate level of detail.
|
|
689
|
+
detailed: Comprehensive reasoning summary with full explanations.
|
|
690
|
+
description: Level of detail in reasoning summaries
|
|
691
|
+
x-celigo-ai-guidance:
|
|
692
|
+
- |-
|
|
693
|
+
Level of detail in reasoning summaries.
|
|
694
|
+
Reasoning-capable models only — see `reasoning` for the gating rule.
|
|
695
|
+
temperature:
|
|
696
|
+
type: number
|
|
697
|
+
minimum: 0
|
|
698
|
+
maximum: 2
|
|
699
|
+
description: |
|
|
700
|
+
Sampling temperature. Higher values (e.g. 1.5) produce more creative output,
|
|
701
|
+
lower values (e.g. 0.2) produce more focused and deterministic output.
|
|
702
|
+
topP:
|
|
703
|
+
type: number
|
|
704
|
+
minimum: 0.1
|
|
705
|
+
maximum: 1
|
|
706
|
+
description: Nucleus sampling parameter
|
|
707
|
+
topLogprobs:
|
|
708
|
+
type: number
|
|
709
|
+
minimum: 0
|
|
710
|
+
maximum: 20
|
|
711
|
+
description: Number of most likely tokens to return log probabilities for at each output position.
|
|
712
|
+
maxOutputTokens:
|
|
713
|
+
type: number
|
|
714
|
+
minimum: 100
|
|
715
|
+
maximum: 128000
|
|
716
|
+
default: 5000
|
|
717
|
+
description: Maximum number of tokens in the model's response (server default observed live on create)
|
|
718
|
+
serviceTier:
|
|
719
|
+
type: string
|
|
720
|
+
enum:
|
|
721
|
+
- auto
|
|
722
|
+
- default
|
|
723
|
+
- priority
|
|
724
|
+
x-enumDescriptions:
|
|
725
|
+
auto: Let OpenAI automatically select the appropriate service tier.
|
|
726
|
+
default: Standard service tier with normal rate limits and latency.
|
|
727
|
+
priority: Premium tier with higher rate limits and lower latency at increased cost.
|
|
728
|
+
default: default
|
|
729
|
+
description: |-
|
|
730
|
+
OpenAI service tier. "priority" provides higher rate limits and
|
|
731
|
+
lower latency at increased cost.
|
|
732
|
+
x-celigo-ai-guidance:
|
|
733
|
+
- |-
|
|
734
|
+
BYOK only.
|
|
735
|
+
Platform-managed credentials (no `_connectionId` on the parent import) always
|
|
736
|
+
run at `default` regardless of what's set here.
|
|
737
|
+
output:
|
|
738
|
+
type: object
|
|
739
|
+
description: Output format configuration
|
|
740
|
+
properties:
|
|
741
|
+
format:
|
|
742
|
+
type: object
|
|
743
|
+
description: |
|
|
744
|
+
Controls the structure of the model's output.
|
|
745
|
+
properties:
|
|
746
|
+
type:
|
|
747
|
+
type: string
|
|
748
|
+
enum:
|
|
749
|
+
- text
|
|
750
|
+
- json_schema
|
|
751
|
+
- blob
|
|
752
|
+
x-enumDescriptions:
|
|
753
|
+
text: Free-form text response from the model.
|
|
754
|
+
json_schema: Structured JSON output conforming to a defined schema.
|
|
755
|
+
blob: Binary data output for non-text content.
|
|
756
|
+
default: text
|
|
757
|
+
description: Output format type.
|
|
758
|
+
schemaMode:
|
|
759
|
+
type: string
|
|
760
|
+
enum:
|
|
761
|
+
- manual
|
|
762
|
+
- json
|
|
763
|
+
x-enumDescriptions:
|
|
764
|
+
manual: The schema was built field-by-field in the visual editor.
|
|
765
|
+
json: The schema was pasted or edited as raw JSON.
|
|
766
|
+
description: |-
|
|
767
|
+
How the structured-output schema was authored in the UI.
|
|
768
|
+
Editor state only — it does not change how `jsonSchema` is
|
|
769
|
+
sent to the provider.
|
|
770
|
+
name:
|
|
771
|
+
type: string
|
|
772
|
+
description: Name for the output format (used with json_schema)
|
|
773
|
+
x-celigo-ui-override: Required by the AI agent form when output format type is json_schema. Encoded here to mirror the form so builders produce connectable configurations.
|
|
774
|
+
strict:
|
|
775
|
+
type: boolean
|
|
776
|
+
default: false
|
|
777
|
+
description: When true, enforces strict schema validation on output.
|
|
778
|
+
x-celigo-ai-guidance:
|
|
779
|
+
- Whether to enforce strict schema validation on output
|
|
780
|
+
jsonSchema:
|
|
781
|
+
type: object
|
|
782
|
+
description: |
|
|
783
|
+
JSON Schema for structured output. Required when `format.type` is "json_schema".
|
|
784
|
+
x-celigo-ui-override: Required by the AI agent form when output format type is json_schema. Encoded here to mirror the form so builders produce connectable configurations.
|
|
785
|
+
properties:
|
|
786
|
+
type:
|
|
787
|
+
type: string
|
|
788
|
+
description: Root JSON Schema type of the structured output; use "object" for record-shaped results.
|
|
789
|
+
enum:
|
|
790
|
+
- object
|
|
791
|
+
- array
|
|
792
|
+
- string
|
|
793
|
+
- number
|
|
794
|
+
- integer
|
|
795
|
+
- boolean
|
|
796
|
+
x-enumDescriptions:
|
|
797
|
+
object: JSON object with named properties.
|
|
798
|
+
array: Ordered list of values.
|
|
799
|
+
string: Text string value.
|
|
800
|
+
number: Numeric value including decimals.
|
|
801
|
+
integer: Whole number value without decimals.
|
|
802
|
+
boolean: True or false value.
|
|
803
|
+
properties:
|
|
804
|
+
type: object
|
|
805
|
+
additionalProperties: true
|
|
806
|
+
description: JSON Schema definitions for each field the structured output may contain.
|
|
807
|
+
required:
|
|
808
|
+
type: array
|
|
809
|
+
description: Property names the model must include in the structured output.
|
|
810
|
+
items:
|
|
811
|
+
type: string
|
|
812
|
+
additionalproperties:
|
|
813
|
+
type: boolean
|
|
814
|
+
description: When true, the structured output may include properties beyond those defined in `properties`.
|
|
815
|
+
if:
|
|
816
|
+
properties:
|
|
817
|
+
type:
|
|
818
|
+
const: json_schema
|
|
819
|
+
required:
|
|
820
|
+
- type
|
|
821
|
+
then:
|
|
822
|
+
required:
|
|
823
|
+
- name
|
|
824
|
+
- jsonSchema
|
|
825
|
+
verbose:
|
|
826
|
+
type: string
|
|
827
|
+
enum:
|
|
828
|
+
- low
|
|
829
|
+
- medium
|
|
830
|
+
- high
|
|
831
|
+
x-enumDescriptions:
|
|
832
|
+
low: Minimal detail in the model's response.
|
|
833
|
+
medium: Moderate detail in the model's response, the default level.
|
|
834
|
+
high: Maximum detail and verbosity in the model's response.
|
|
835
|
+
default: medium
|
|
836
|
+
description: Level of detail in the model's response
|
|
837
|
+
x-celigo-ai-guidance:
|
|
838
|
+
- |-
|
|
839
|
+
Supported on the GPT-5 family only. Other OpenAI models (e.g.
|
|
840
|
+
`gpt-4.1`, `gpt-4.1-mini`,
|
|
841
|
+
`gpt-4.1-nano`) accept only `medium` (the no-op default) — `low` and `high` are
|
|
842
|
+
rejected by the provider at runtime.
|
|
843
|
+
Omit the field entirely on non-GPT-5 models rather than relying on the default.
|
|
844
|
+
tools:
|
|
845
|
+
type: array
|
|
846
|
+
description: |
|
|
847
|
+
Tools available to the AI agent during processing.
|
|
848
|
+
items:
|
|
849
|
+
type: object
|
|
850
|
+
properties:
|
|
851
|
+
type:
|
|
852
|
+
type: string
|
|
853
|
+
enum:
|
|
854
|
+
- web_search
|
|
855
|
+
- mcp
|
|
856
|
+
- image_generation
|
|
857
|
+
- tool
|
|
858
|
+
x-enumDescriptions:
|
|
859
|
+
web_search: Search the web for real-time information.
|
|
860
|
+
mcp: Connect to an MCP server for additional external tools.
|
|
861
|
+
image_generation: Generate images using an AI image model.
|
|
862
|
+
tool: Reference a reusable Celigo Tool resource.
|
|
863
|
+
description: Type of tool.
|
|
864
|
+
webSearch:
|
|
865
|
+
type: object
|
|
866
|
+
description: Web search configuration (empty object to enable)
|
|
867
|
+
imageGeneration:
|
|
868
|
+
type: object
|
|
869
|
+
description: Image generation configuration
|
|
870
|
+
properties:
|
|
871
|
+
background:
|
|
872
|
+
type: string
|
|
873
|
+
description: Controls whether generated images have a transparent or opaque background; use transparent only with output formats that support it (png, webp).
|
|
874
|
+
enum:
|
|
875
|
+
- transparent
|
|
876
|
+
- opaque
|
|
877
|
+
x-enumDescriptions:
|
|
878
|
+
transparent: Generate an image with a transparent background.
|
|
879
|
+
opaque: Generate an image with a solid, non-transparent background.
|
|
880
|
+
quality:
|
|
881
|
+
type: string
|
|
882
|
+
description: Rendering quality of generated images, trading detail for generation speed and file size.
|
|
883
|
+
enum:
|
|
884
|
+
- low
|
|
885
|
+
- medium
|
|
886
|
+
- high
|
|
887
|
+
x-enumDescriptions:
|
|
888
|
+
low: Lower quality for faster generation and smaller file size.
|
|
889
|
+
medium: Balanced quality and generation speed.
|
|
890
|
+
high: Highest quality output with more detail.
|
|
891
|
+
size:
|
|
892
|
+
type: string
|
|
893
|
+
description: Pixel dimensions of generated images; choose square, portrait, or landscape to match the intended use.
|
|
894
|
+
enum:
|
|
895
|
+
- 1024x1024
|
|
896
|
+
- 1024x1536
|
|
897
|
+
- 1536x1024
|
|
898
|
+
x-enumDescriptions:
|
|
899
|
+
1024x1024: Square image at 1024 by 1024 pixels.
|
|
900
|
+
1024x1536: Portrait image at 1024 by 1536 pixels.
|
|
901
|
+
1536x1024: Landscape image at 1536 by 1024 pixels.
|
|
902
|
+
outputFormat:
|
|
903
|
+
type: string
|
|
904
|
+
description: File format of generated images; use png or webp when transparency is needed.
|
|
905
|
+
enum:
|
|
906
|
+
- png
|
|
907
|
+
- webp
|
|
908
|
+
- jpeg
|
|
909
|
+
x-enumDescriptions:
|
|
910
|
+
png: PNG format with lossless compression, supports transparency.
|
|
911
|
+
webp: WebP format with efficient compression for web use.
|
|
912
|
+
jpeg: JPEG format with lossy compression for smaller file sizes.
|
|
913
|
+
mcp:
|
|
914
|
+
type: object
|
|
915
|
+
description: MCP server tool configuration
|
|
916
|
+
properties:
|
|
917
|
+
_mcpConnectionId:
|
|
918
|
+
type: string
|
|
919
|
+
format: objectId
|
|
920
|
+
x-celigo-refModel: connections
|
|
921
|
+
description: Connection to the MCP server
|
|
922
|
+
allowedTools:
|
|
923
|
+
type: array
|
|
924
|
+
description: |-
|
|
925
|
+
Specific tools to allow from the MCP server (all if
|
|
926
|
+
omitted). Each entry is either a plain tool name (legacy
|
|
927
|
+
form) or an object carrying display metadata.
|
|
928
|
+
items:
|
|
929
|
+
type:
|
|
930
|
+
- string
|
|
931
|
+
- object
|
|
932
|
+
properties:
|
|
933
|
+
name:
|
|
934
|
+
type: string
|
|
935
|
+
maxLength: 256
|
|
936
|
+
description: Tool name as exposed by the MCP server.
|
|
937
|
+
title:
|
|
938
|
+
type: string
|
|
939
|
+
maxLength: 300
|
|
940
|
+
description: Display title shown for the tool.
|
|
941
|
+
description:
|
|
942
|
+
type: string
|
|
943
|
+
maxLength: 1000
|
|
944
|
+
description: Display description shown for the tool.
|
|
945
|
+
required:
|
|
946
|
+
- name
|
|
947
|
+
x-celigo-ai-guidance:
|
|
948
|
+
- |-
|
|
949
|
+
Object entries accept only name/title/description — any
|
|
950
|
+
other key fails validation with "unknown field(s)", and
|
|
951
|
+
an object without a non-empty name fails with a
|
|
952
|
+
missing-required-field error. String entries are the
|
|
953
|
+
legacy form and stay valid.
|
|
954
|
+
allowedPrompts:
|
|
955
|
+
type: array
|
|
956
|
+
description: Specific prompts to allow from the MCP server (used for MCP prompt entries; all if omitted).
|
|
957
|
+
items:
|
|
958
|
+
type: string
|
|
959
|
+
tool:
|
|
960
|
+
type: object
|
|
961
|
+
description: |
|
|
962
|
+
Reference to a Celigo Tool resource.
|
|
963
|
+
properties:
|
|
964
|
+
_toolId:
|
|
965
|
+
type: string
|
|
966
|
+
format: objectId
|
|
967
|
+
x-celigo-refModel: tools
|
|
968
|
+
description: Reference to the Tool resource
|
|
969
|
+
overrides:
|
|
970
|
+
type: object
|
|
971
|
+
description: Per-agent overrides for the tool's internal resources
|
|
972
|
+
properties:
|
|
973
|
+
connections:
|
|
974
|
+
type: array
|
|
975
|
+
description: |
|
|
976
|
+
Remaps the tool's abstract connections for this agent. Each entry pairs
|
|
977
|
+
the tool's abstract connection placeholder (`_abstractId`) with the
|
|
978
|
+
concrete connection (`_id`) to use for this agent; entries without
|
|
979
|
+
`_id` keep the tool's own default connection.
|
|
980
|
+
items:
|
|
981
|
+
type:
|
|
982
|
+
- object
|
|
983
|
+
- 'null'
|
|
984
|
+
required:
|
|
985
|
+
- _abstractId
|
|
986
|
+
properties:
|
|
987
|
+
_abstractId:
|
|
988
|
+
type: string
|
|
989
|
+
format: objectId
|
|
990
|
+
description: The tool's abstract connection placeholder being overridden.
|
|
991
|
+
_id:
|
|
992
|
+
type: string
|
|
993
|
+
format: objectId
|
|
994
|
+
x-celigo-refModel: connections
|
|
995
|
+
description: Concrete connection to use in place of the abstract placeholder.
|
|
996
|
+
prompts:
|
|
997
|
+
type: array
|
|
998
|
+
description: |
|
|
999
|
+
MCP prompt entries available to the agent. Each item references one MCP connection
|
|
1000
|
+
and the prompt names allowed from it. Configured alongside `tools` in the form but
|
|
1001
|
+
stored separately; an entry's `allowedPrompts` is what distinguishes a prompt entry
|
|
1002
|
+
from an MCP tool entry (which carries `allowedTools`).
|
|
1003
|
+
items:
|
|
1004
|
+
type: object
|
|
1005
|
+
properties:
|
|
1006
|
+
type:
|
|
1007
|
+
type: string
|
|
1008
|
+
enum:
|
|
1009
|
+
- mcp
|
|
1010
|
+
x-enumDescriptions:
|
|
1011
|
+
mcp: Connect to an MCP server to use its exposed prompts.
|
|
1012
|
+
description: Type of prompt entry. Always "mcp".
|
|
1013
|
+
mcp:
|
|
1014
|
+
type: object
|
|
1015
|
+
description: MCP server prompt configuration.
|
|
1016
|
+
properties:
|
|
1017
|
+
_mcpConnectionId:
|
|
1018
|
+
type: string
|
|
1019
|
+
format: objectId
|
|
1020
|
+
x-celigo-refModel: connections
|
|
1021
|
+
description: Connection to the MCP server.
|
|
1022
|
+
allowedPrompts:
|
|
1023
|
+
type: array
|
|
1024
|
+
description: Prompt names to allow from the MCP server.
|
|
1025
|
+
items:
|
|
1026
|
+
type: string
|
|
1027
|
+
resources:
|
|
1028
|
+
$ref: '#/components/schemas/McpResources'
|
|
1029
|
+
litellm:
|
|
1030
|
+
type: object
|
|
1031
|
+
description: |
|
|
1032
|
+
LiteLLM proxy configuration. Used when `provider` is "gemini" or "anthropic".
|
|
1033
|
+
|
|
1034
|
+
LiteLLM provides a unified interface to multiple AI providers. Gemini-specific
|
|
1035
|
+
settings are in `_overrides.gemini`; Claude-specific settings are in
|
|
1036
|
+
`_overrides.anthropic`.
|
|
1037
|
+
|
|
1038
|
+
`model` is required when litellm is the active provider path.
|
|
1039
|
+
properties:
|
|
1040
|
+
model:
|
|
1041
|
+
type: string
|
|
1042
|
+
description: |-
|
|
1043
|
+
LiteLLM model identifier. For Gemini, models are stored without the `gemini/`
|
|
1044
|
+
prefix; for Anthropic, use the Claude model id (e.g. `claude-sonnet-4-6`).
|
|
1045
|
+
examples:
|
|
1046
|
+
- gemini-2.5-flash
|
|
1047
|
+
- gemini-2.5-pro
|
|
1048
|
+
- gemini-2.5-flash-lite
|
|
1049
|
+
- claude-sonnet-4-6
|
|
1050
|
+
- claude-opus-4-7
|
|
1051
|
+
x-celigo-ui-override: Required by the AI agent configuration form. Encoded here to mirror the form so builders produce connectable configurations.
|
|
1052
|
+
temperature:
|
|
1053
|
+
type: number
|
|
1054
|
+
minimum: 0
|
|
1055
|
+
maximum: 2
|
|
1056
|
+
description: Sampling temperature
|
|
1057
|
+
x-celigo-ai-guidance:
|
|
1058
|
+
- |-
|
|
1059
|
+
When `provider` is "anthropic", the value must be between 0 and 1 — a higher value
|
|
1060
|
+
fails the save with 422 `invalid_field_value`. Gemini accepts the full 0-2 range.
|
|
1061
|
+
maxCompletionTokens:
|
|
1062
|
+
type: number
|
|
1063
|
+
minimum: 100
|
|
1064
|
+
maximum: 128000
|
|
1065
|
+
default: 5000
|
|
1066
|
+
description: Maximum number of tokens in the response
|
|
1067
|
+
topP:
|
|
1068
|
+
type: number
|
|
1069
|
+
minimum: 0.1
|
|
1070
|
+
maximum: 1
|
|
1071
|
+
description: Nucleus sampling parameter
|
|
1072
|
+
seed:
|
|
1073
|
+
type: number
|
|
1074
|
+
description: Random seed for reproducible outputs
|
|
1075
|
+
responseFormat:
|
|
1076
|
+
type: object
|
|
1077
|
+
description: Output format configuration
|
|
1078
|
+
x-celigo-ai-guidance:
|
|
1079
|
+
- |-
|
|
1080
|
+
When `provider` is "anthropic", `type` must be "text" or "json_schema" — "blob" is
|
|
1081
|
+
rejected with 422 `invalid_response_format`. As with the other providers, "json_schema"
|
|
1082
|
+
requires `name` and `jsonSchema`.
|
|
1083
|
+
properties:
|
|
1084
|
+
type:
|
|
1085
|
+
type: string
|
|
1086
|
+
description: Output format type.
|
|
1087
|
+
enum:
|
|
1088
|
+
- text
|
|
1089
|
+
- json_schema
|
|
1090
|
+
- blob
|
|
1091
|
+
x-enumDescriptions:
|
|
1092
|
+
text: Free-form text response from the model.
|
|
1093
|
+
json_schema: Structured JSON output conforming to a defined schema.
|
|
1094
|
+
blob: Binary data output for non-text content.
|
|
1095
|
+
default: text
|
|
1096
|
+
schemaMode:
|
|
1097
|
+
type: string
|
|
1098
|
+
enum:
|
|
1099
|
+
- manual
|
|
1100
|
+
- json
|
|
1101
|
+
x-enumDescriptions:
|
|
1102
|
+
manual: The schema was built field-by-field in the visual editor.
|
|
1103
|
+
json: The schema was pasted or edited as raw JSON.
|
|
1104
|
+
description: |-
|
|
1105
|
+
How the structured-output schema was authored in the UI. Editor
|
|
1106
|
+
state only — it does not change how `jsonSchema` is sent to the
|
|
1107
|
+
provider.
|
|
1108
|
+
name:
|
|
1109
|
+
type: string
|
|
1110
|
+
description: Name for the output format (used with json_schema).
|
|
1111
|
+
x-celigo-ui-override: Required by the AI agent form when output format type is json_schema. Encoded here to mirror the form so builders produce connectable configurations.
|
|
1112
|
+
strict:
|
|
1113
|
+
type: boolean
|
|
1114
|
+
description: When true, enforces strict schema validation on output.
|
|
1115
|
+
default: false
|
|
1116
|
+
jsonSchema:
|
|
1117
|
+
type: object
|
|
1118
|
+
description: JSON Schema for structured output. Required when `responseFormat.type` is "json_schema".
|
|
1119
|
+
x-celigo-ui-override: Required by the AI agent form when output format type is json_schema. Encoded here to mirror the form so builders produce connectable configurations.
|
|
1120
|
+
properties:
|
|
1121
|
+
type:
|
|
1122
|
+
type: string
|
|
1123
|
+
description: Root JSON Schema type of the structured output; use "object" for record-shaped results.
|
|
1124
|
+
enum:
|
|
1125
|
+
- object
|
|
1126
|
+
- array
|
|
1127
|
+
- string
|
|
1128
|
+
- number
|
|
1129
|
+
- integer
|
|
1130
|
+
- boolean
|
|
1131
|
+
x-enumDescriptions:
|
|
1132
|
+
object: JSON object with named properties.
|
|
1133
|
+
array: Ordered list of values.
|
|
1134
|
+
string: Text string value.
|
|
1135
|
+
number: Numeric value including decimals.
|
|
1136
|
+
integer: Whole number value without decimals.
|
|
1137
|
+
boolean: True or false value.
|
|
1138
|
+
properties:
|
|
1139
|
+
type: object
|
|
1140
|
+
additionalProperties: true
|
|
1141
|
+
description: JSON Schema definitions for each field the structured output may contain.
|
|
1142
|
+
required:
|
|
1143
|
+
type: array
|
|
1144
|
+
description: Property names the model must include in the structured output.
|
|
1145
|
+
items:
|
|
1146
|
+
type: string
|
|
1147
|
+
additionalProperties:
|
|
1148
|
+
type: boolean
|
|
1149
|
+
description: When true, the structured output may include properties beyond those defined in `properties`.
|
|
1150
|
+
if:
|
|
1151
|
+
properties:
|
|
1152
|
+
type:
|
|
1153
|
+
const: json_schema
|
|
1154
|
+
required:
|
|
1155
|
+
- type
|
|
1156
|
+
then:
|
|
1157
|
+
required:
|
|
1158
|
+
- name
|
|
1159
|
+
- jsonSchema
|
|
1160
|
+
_overrides:
|
|
1161
|
+
type: object
|
|
1162
|
+
description: Provider-specific overrides
|
|
1163
|
+
properties:
|
|
1164
|
+
gemini:
|
|
1165
|
+
type: object
|
|
1166
|
+
description: |
|
|
1167
|
+
Gemini-specific configuration overrides.
|
|
1168
|
+
required:
|
|
1169
|
+
- systemInstruction
|
|
1170
|
+
properties:
|
|
1171
|
+
systemInstruction:
|
|
1172
|
+
type: string
|
|
1173
|
+
maxLength: 1000000
|
|
1174
|
+
description: |
|
|
1175
|
+
System instruction for Gemini models. Equivalent to OpenAI's `instructions`.
|
|
1176
|
+
Maximum 1,000,000 characters.
|
|
1177
|
+
x-celigo-ui-override: Required by the AI agent configuration form (the model's system prompt, the Gemini equivalent of `instructions`). Encoded here to mirror the form so builders produce connectable configurations.
|
|
1178
|
+
tools:
|
|
1179
|
+
type: array
|
|
1180
|
+
description: Gemini-specific tools
|
|
1181
|
+
items:
|
|
1182
|
+
type: object
|
|
1183
|
+
properties:
|
|
1184
|
+
type:
|
|
1185
|
+
type: string
|
|
1186
|
+
enum:
|
|
1187
|
+
- googleSearch
|
|
1188
|
+
- urlContext
|
|
1189
|
+
- fileSearch
|
|
1190
|
+
- mcp
|
|
1191
|
+
- tool
|
|
1192
|
+
x-enumDescriptions:
|
|
1193
|
+
googleSearch: Use Google Search for real-time information grounding.
|
|
1194
|
+
urlContext: Retrieve and use content from specified URLs.
|
|
1195
|
+
fileSearch: Search through previously uploaded files.
|
|
1196
|
+
mcp: Connect to an MCP server for additional external tools.
|
|
1197
|
+
tool: Reference a reusable Celigo Tool resource.
|
|
1198
|
+
description: Type of Gemini tool.
|
|
1199
|
+
googleSearch:
|
|
1200
|
+
type: object
|
|
1201
|
+
description: Google Search configuration (empty object to enable)
|
|
1202
|
+
urlContext:
|
|
1203
|
+
type: object
|
|
1204
|
+
description: URL context configuration (empty object to enable)
|
|
1205
|
+
fileSearch:
|
|
1206
|
+
type: object
|
|
1207
|
+
description: File search configuration, used when type is "fileSearch".
|
|
1208
|
+
properties:
|
|
1209
|
+
fileSearchStoreNames:
|
|
1210
|
+
type: array
|
|
1211
|
+
description: Names of the file search stores the model can query.
|
|
1212
|
+
items:
|
|
1213
|
+
type: string
|
|
1214
|
+
mcp:
|
|
1215
|
+
type: object
|
|
1216
|
+
description: MCP server tool configuration, used when type is "mcp".
|
|
1217
|
+
properties:
|
|
1218
|
+
_mcpConnectionId:
|
|
1219
|
+
type: string
|
|
1220
|
+
format: objectId
|
|
1221
|
+
x-celigo-refModel: connections
|
|
1222
|
+
description: Connection to the MCP server.
|
|
1223
|
+
allowedTools:
|
|
1224
|
+
type: array
|
|
1225
|
+
description: |-
|
|
1226
|
+
Specific tools to allow from the MCP server (all if
|
|
1227
|
+
omitted). Each entry is either a plain tool name
|
|
1228
|
+
(legacy form) or an object carrying display metadata
|
|
1229
|
+
— same contract as the OpenAI `allowedTools`.
|
|
1230
|
+
items:
|
|
1231
|
+
type:
|
|
1232
|
+
- string
|
|
1233
|
+
- object
|
|
1234
|
+
properties:
|
|
1235
|
+
name:
|
|
1236
|
+
type: string
|
|
1237
|
+
maxLength: 256
|
|
1238
|
+
description: Tool name as exposed by the MCP server.
|
|
1239
|
+
title:
|
|
1240
|
+
type: string
|
|
1241
|
+
maxLength: 300
|
|
1242
|
+
description: Display title shown for the tool.
|
|
1243
|
+
description:
|
|
1244
|
+
type: string
|
|
1245
|
+
maxLength: 1000
|
|
1246
|
+
description: Display description shown for the tool.
|
|
1247
|
+
required:
|
|
1248
|
+
- name
|
|
1249
|
+
allowedPrompts:
|
|
1250
|
+
type: array
|
|
1251
|
+
description: Specific prompts to allow from the MCP server (used for MCP prompt entries; all if omitted).
|
|
1252
|
+
items:
|
|
1253
|
+
type: string
|
|
1254
|
+
tool:
|
|
1255
|
+
type: object
|
|
1256
|
+
description: Reference to a Celigo Tool resource, used when type is "tool".
|
|
1257
|
+
properties:
|
|
1258
|
+
_toolId:
|
|
1259
|
+
type: string
|
|
1260
|
+
format: objectId
|
|
1261
|
+
x-celigo-refModel: tools
|
|
1262
|
+
description: Reference to the Tool resource.
|
|
1263
|
+
overrides:
|
|
1264
|
+
type: object
|
|
1265
|
+
description: Per-agent overrides for the tool's internal resources.
|
|
1266
|
+
properties:
|
|
1267
|
+
connections:
|
|
1268
|
+
type: array
|
|
1269
|
+
description: |
|
|
1270
|
+
Remaps the tool's abstract connections for this agent. Each entry
|
|
1271
|
+
pairs the tool's abstract connection placeholder (`_abstractId`)
|
|
1272
|
+
with the concrete connection (`_id`) to use for this agent;
|
|
1273
|
+
entries without `_id` keep the tool's own default connection.
|
|
1274
|
+
items:
|
|
1275
|
+
type:
|
|
1276
|
+
- object
|
|
1277
|
+
- 'null'
|
|
1278
|
+
required:
|
|
1279
|
+
- _abstractId
|
|
1280
|
+
properties:
|
|
1281
|
+
_abstractId:
|
|
1282
|
+
type: string
|
|
1283
|
+
format: objectId
|
|
1284
|
+
description: The tool's abstract connection placeholder being overridden.
|
|
1285
|
+
_id:
|
|
1286
|
+
type: string
|
|
1287
|
+
format: objectId
|
|
1288
|
+
x-celigo-refModel: connections
|
|
1289
|
+
description: Concrete connection to use in place of the abstract placeholder.
|
|
1290
|
+
prompts:
|
|
1291
|
+
type: array
|
|
1292
|
+
description: |
|
|
1293
|
+
MCP prompt entries available to the Gemini agent. Each item references one
|
|
1294
|
+
MCP connection and the prompt names allowed from it. The presence of
|
|
1295
|
+
`allowedPrompts` distinguishes a prompt entry from an MCP tool entry.
|
|
1296
|
+
items:
|
|
1297
|
+
type: object
|
|
1298
|
+
properties:
|
|
1299
|
+
type:
|
|
1300
|
+
type: string
|
|
1301
|
+
enum:
|
|
1302
|
+
- mcp
|
|
1303
|
+
x-enumDescriptions:
|
|
1304
|
+
mcp: Connect to an MCP server to use its exposed prompts.
|
|
1305
|
+
description: Type of prompt entry. Always "mcp".
|
|
1306
|
+
mcp:
|
|
1307
|
+
type: object
|
|
1308
|
+
description: MCP server prompt configuration.
|
|
1309
|
+
properties:
|
|
1310
|
+
_mcpConnectionId:
|
|
1311
|
+
type: string
|
|
1312
|
+
format: objectId
|
|
1313
|
+
x-celigo-refModel: connections
|
|
1314
|
+
description: Connection to the MCP server.
|
|
1315
|
+
allowedPrompts:
|
|
1316
|
+
type: array
|
|
1317
|
+
description: Prompt names to allow from the MCP server.
|
|
1318
|
+
items:
|
|
1319
|
+
type: string
|
|
1320
|
+
resources:
|
|
1321
|
+
$ref: '#/components/schemas/McpResources'
|
|
1322
|
+
responseModalities:
|
|
1323
|
+
type: array
|
|
1324
|
+
description: Response output modalities
|
|
1325
|
+
x-celigo-ai-guidance:
|
|
1326
|
+
- |-
|
|
1327
|
+
`["image"]` requires an image-capable Gemini model (currently `gemini-2.5-flash-image`).
|
|
1328
|
+
Selecting it on a text-only model is rejected by the provider — pair image
|
|
1329
|
+
output with the right model or omit.
|
|
1330
|
+
items:
|
|
1331
|
+
type: string
|
|
1332
|
+
enum:
|
|
1333
|
+
- text
|
|
1334
|
+
- image
|
|
1335
|
+
x-enumDescriptions:
|
|
1336
|
+
text: Generate text content in the response.
|
|
1337
|
+
image: Generate image content in the response.
|
|
1338
|
+
default:
|
|
1339
|
+
- text
|
|
1340
|
+
topK:
|
|
1341
|
+
type: number
|
|
1342
|
+
description: Top-K sampling parameter for Gemini
|
|
1343
|
+
thinkingConfig:
|
|
1344
|
+
type: object
|
|
1345
|
+
description: Controls Gemini's extended thinking capabilities
|
|
1346
|
+
x-celigo-ai-guidance:
|
|
1347
|
+
- |-
|
|
1348
|
+
Supported on reasoning-capable Gemini models only (currently `gemini-2.5-pro`
|
|
1349
|
+
and `gemini-2.5-flash`).
|
|
1350
|
+
Setting `thinkingConfig` on a non-thinking model (e.g.
|
|
1351
|
+
`gemini-2.5-flash-lite`,
|
|
1352
|
+
`gemini-2.5-flash-image`) is rejected by the provider at runtime — omit the
|
|
1353
|
+
field on those models.
|
|
1354
|
+
properties:
|
|
1355
|
+
includeThoughts:
|
|
1356
|
+
type: boolean
|
|
1357
|
+
description: When true, includes the model's thinking steps in the response.
|
|
1358
|
+
x-celigo-ai-guidance:
|
|
1359
|
+
- Whether to include thinking steps in the response
|
|
1360
|
+
thinkingBudget:
|
|
1361
|
+
type: number
|
|
1362
|
+
minimum: 100
|
|
1363
|
+
maximum: 4000
|
|
1364
|
+
description: Maximum tokens allocated for thinking
|
|
1365
|
+
thinkingLevel:
|
|
1366
|
+
type: string
|
|
1367
|
+
description: Controls how much thinking effort the model applies; use higher levels for complex, multi-step tasks at the cost of latency and tokens.
|
|
1368
|
+
enum:
|
|
1369
|
+
- minimal
|
|
1370
|
+
- low
|
|
1371
|
+
- medium
|
|
1372
|
+
- high
|
|
1373
|
+
x-enumDescriptions:
|
|
1374
|
+
minimal: Least thinking effort for simple tasks.
|
|
1375
|
+
low: Light thinking for moderately simple tasks.
|
|
1376
|
+
medium: Balanced thinking effort for typical tasks.
|
|
1377
|
+
high: Maximum thinking effort for complex, multi-step tasks.
|
|
1378
|
+
imageConfig:
|
|
1379
|
+
type: object
|
|
1380
|
+
description: Gemini image generation configuration
|
|
1381
|
+
properties:
|
|
1382
|
+
aspectRatio:
|
|
1383
|
+
type: string
|
|
1384
|
+
description: Aspect ratio of generated images; choose a ratio matching the intended display format.
|
|
1385
|
+
enum:
|
|
1386
|
+
- '1:1'
|
|
1387
|
+
- '2:3'
|
|
1388
|
+
- '3:2'
|
|
1389
|
+
- '3:4'
|
|
1390
|
+
- '4:3'
|
|
1391
|
+
- '4:5'
|
|
1392
|
+
- '5:4'
|
|
1393
|
+
- '9:16'
|
|
1394
|
+
- '16:9'
|
|
1395
|
+
- '21:9'
|
|
1396
|
+
x-enumDescriptions:
|
|
1397
|
+
'1:1': Square aspect ratio.
|
|
1398
|
+
'2:3': Portrait aspect ratio (2 wide by 3 tall).
|
|
1399
|
+
'3:2': Landscape aspect ratio (3 wide by 2 tall).
|
|
1400
|
+
'3:4': Portrait aspect ratio (3 wide by 4 tall).
|
|
1401
|
+
'4:3': Standard landscape aspect ratio (4 wide by 3 tall).
|
|
1402
|
+
'4:5': Portrait aspect ratio (4 wide by 5 tall).
|
|
1403
|
+
'5:4': Landscape aspect ratio (5 wide by 4 tall).
|
|
1404
|
+
'9:16': Tall portrait aspect ratio for mobile screens.
|
|
1405
|
+
'16:9': Widescreen landscape aspect ratio.
|
|
1406
|
+
'21:9': Ultra-widescreen cinematic aspect ratio.
|
|
1407
|
+
imageSize:
|
|
1408
|
+
type: string
|
|
1409
|
+
description: Output resolution of generated images; higher resolutions increase detail and file size.
|
|
1410
|
+
enum:
|
|
1411
|
+
- 1K
|
|
1412
|
+
- 2K
|
|
1413
|
+
- 4K
|
|
1414
|
+
x-enumDescriptions:
|
|
1415
|
+
1K: Standard resolution output around 1024 pixels.
|
|
1416
|
+
2K: High resolution output around 2048 pixels.
|
|
1417
|
+
4K: Ultra-high resolution output around 4096 pixels.
|
|
1418
|
+
mediaResolution:
|
|
1419
|
+
type: string
|
|
1420
|
+
enum:
|
|
1421
|
+
- low
|
|
1422
|
+
- medium
|
|
1423
|
+
- high
|
|
1424
|
+
x-enumDescriptions:
|
|
1425
|
+
low: Low resolution for faster processing and reduced token usage.
|
|
1426
|
+
medium: Balanced resolution for typical media processing.
|
|
1427
|
+
high: High resolution for maximum detail in media inputs.
|
|
1428
|
+
description: Resolution for media inputs (images, video)
|
|
1429
|
+
anthropic:
|
|
1430
|
+
type: object
|
|
1431
|
+
description: |
|
|
1432
|
+
Claude-specific configuration overrides. Used when `provider` is "anthropic".
|
|
1433
|
+
required:
|
|
1434
|
+
- systemInstruction
|
|
1435
|
+
properties:
|
|
1436
|
+
systemInstruction:
|
|
1437
|
+
type: string
|
|
1438
|
+
maxLength: 1000000
|
|
1439
|
+
description: |
|
|
1440
|
+
System instruction for Claude models. Equivalent to OpenAI's `instructions`.
|
|
1441
|
+
Maximum 1,000,000 characters.
|
|
1442
|
+
x-celigo-ui-override: Required by the AI agent configuration form (the model's system prompt, the Claude equivalent of `instructions`). Encoded here to mirror the form so builders produce connectable configurations.
|
|
1443
|
+
topK:
|
|
1444
|
+
type: number
|
|
1445
|
+
minimum: 0
|
|
1446
|
+
description: |-
|
|
1447
|
+
Top-K sampling parameter. Deprecated on Claude models released after Claude Opus
|
|
1448
|
+
4.6, which reject any value at runtime; set it only on older models.
|
|
1449
|
+
thinkingConfig:
|
|
1450
|
+
type: object
|
|
1451
|
+
description: Controls Claude's extended thinking capabilities.
|
|
1452
|
+
properties:
|
|
1453
|
+
type:
|
|
1454
|
+
type: string
|
|
1455
|
+
enum:
|
|
1456
|
+
- enabled
|
|
1457
|
+
- disabled
|
|
1458
|
+
- adaptive
|
|
1459
|
+
x-enumDescriptions:
|
|
1460
|
+
enabled: Turn on extended thinking with an explicit token budget.
|
|
1461
|
+
disabled: Turn off extended thinking.
|
|
1462
|
+
adaptive: Let the model decide how much to think based on task complexity.
|
|
1463
|
+
default: disabled
|
|
1464
|
+
description: Extended thinking mode.
|
|
1465
|
+
budgetTokens:
|
|
1466
|
+
type: number
|
|
1467
|
+
minimum: 1024
|
|
1468
|
+
description: |-
|
|
1469
|
+
Maximum tokens allocated for thinking. Required when `type` is "enabled" —
|
|
1470
|
+
omitting it fails the save with 422 `invalid_thinking_config`.
|
|
1471
|
+
x-celigo-ui-override: Required by the AI agent form when thinkingConfig.type is "enabled". Encoded here to mirror the form so builders produce connectable configurations.
|
|
1472
|
+
display:
|
|
1473
|
+
type: string
|
|
1474
|
+
enum:
|
|
1475
|
+
- summarized
|
|
1476
|
+
- omitted
|
|
1477
|
+
x-enumDescriptions:
|
|
1478
|
+
summarized: Include a summarized view of the model's thinking in the response.
|
|
1479
|
+
omitted: Exclude the model's thinking from the response.
|
|
1480
|
+
default: summarized
|
|
1481
|
+
description: How thinking output is surfaced in the response.
|
|
1482
|
+
effort:
|
|
1483
|
+
type: string
|
|
1484
|
+
enum:
|
|
1485
|
+
- low
|
|
1486
|
+
- medium
|
|
1487
|
+
- high
|
|
1488
|
+
- xhigh
|
|
1489
|
+
- max
|
|
1490
|
+
x-enumDescriptions:
|
|
1491
|
+
low: Light thinking effort for moderately simple tasks.
|
|
1492
|
+
medium: Balanced thinking effort for typical tasks.
|
|
1493
|
+
high: Maximum standard thinking effort for complex tasks.
|
|
1494
|
+
xhigh: Extended thinking effort beyond high for demanding tasks.
|
|
1495
|
+
max: Highest available thinking effort.
|
|
1496
|
+
description: |-
|
|
1497
|
+
How much thinking effort the model applies; use with `type` "adaptive". Higher
|
|
1498
|
+
values (`xhigh`, `max`) may be gated to specific Claude models by the provider.
|
|
1499
|
+
if:
|
|
1500
|
+
properties:
|
|
1501
|
+
type:
|
|
1502
|
+
const: enabled
|
|
1503
|
+
required:
|
|
1504
|
+
- type
|
|
1505
|
+
then:
|
|
1506
|
+
required:
|
|
1507
|
+
- budgetTokens
|
|
1508
|
+
serviceTier:
|
|
1509
|
+
type: string
|
|
1510
|
+
enum:
|
|
1511
|
+
- auto
|
|
1512
|
+
- standard_only
|
|
1513
|
+
x-enumDescriptions:
|
|
1514
|
+
auto: Let Anthropic select the appropriate service tier.
|
|
1515
|
+
standard_only: Restrict processing to the standard service tier.
|
|
1516
|
+
default: auto
|
|
1517
|
+
description: Anthropic service tier for the request.
|
|
1518
|
+
tools:
|
|
1519
|
+
type: array
|
|
1520
|
+
description: Claude-specific tools.
|
|
1521
|
+
items:
|
|
1522
|
+
type: object
|
|
1523
|
+
properties:
|
|
1524
|
+
type:
|
|
1525
|
+
type: string
|
|
1526
|
+
enum:
|
|
1527
|
+
- tool
|
|
1528
|
+
- mcp
|
|
1529
|
+
- webSearch
|
|
1530
|
+
x-enumDescriptions:
|
|
1531
|
+
tool: Reference a reusable Celigo Tool resource.
|
|
1532
|
+
mcp: Connect to an MCP server for additional external tools.
|
|
1533
|
+
webSearch: Search the web for real-time information.
|
|
1534
|
+
description: Type of Claude tool.
|
|
1535
|
+
tool:
|
|
1536
|
+
type: object
|
|
1537
|
+
description: Reference to a Celigo Tool resource, used when type is "tool".
|
|
1538
|
+
properties:
|
|
1539
|
+
_toolId:
|
|
1540
|
+
type: string
|
|
1541
|
+
format: objectId
|
|
1542
|
+
x-celigo-refModel: tools
|
|
1543
|
+
description: Reference to the Tool resource.
|
|
1544
|
+
overrides:
|
|
1545
|
+
type: object
|
|
1546
|
+
description: Per-agent overrides for the tool's internal resources.
|
|
1547
|
+
properties:
|
|
1548
|
+
connections:
|
|
1549
|
+
type: array
|
|
1550
|
+
description: |
|
|
1551
|
+
Remaps the tool's abstract connections for this agent. Each entry
|
|
1552
|
+
pairs the tool's abstract connection placeholder (`_abstractId`)
|
|
1553
|
+
with the concrete connection (`_id`) to use for this agent;
|
|
1554
|
+
entries without `_id` keep the tool's own default connection.
|
|
1555
|
+
items:
|
|
1556
|
+
type:
|
|
1557
|
+
- object
|
|
1558
|
+
- 'null'
|
|
1559
|
+
required:
|
|
1560
|
+
- _abstractId
|
|
1561
|
+
properties:
|
|
1562
|
+
_abstractId:
|
|
1563
|
+
type: string
|
|
1564
|
+
format: objectId
|
|
1565
|
+
description: The tool's abstract connection placeholder being overridden.
|
|
1566
|
+
_id:
|
|
1567
|
+
type: string
|
|
1568
|
+
format: objectId
|
|
1569
|
+
x-celigo-refModel: connections
|
|
1570
|
+
description: Concrete connection to use in place of the abstract placeholder.
|
|
1571
|
+
mcp:
|
|
1572
|
+
type: object
|
|
1573
|
+
description: MCP server tool configuration, used when type is "mcp".
|
|
1574
|
+
properties:
|
|
1575
|
+
_mcpConnectionId:
|
|
1576
|
+
type: string
|
|
1577
|
+
format: objectId
|
|
1578
|
+
x-celigo-refModel: connections
|
|
1579
|
+
description: Connection to the MCP server.
|
|
1580
|
+
allowedTools:
|
|
1581
|
+
type: array
|
|
1582
|
+
description: Specific tools to allow from the MCP server (all if omitted).
|
|
1583
|
+
items:
|
|
1584
|
+
type: string
|
|
1585
|
+
webSearch:
|
|
1586
|
+
type: object
|
|
1587
|
+
description: Web search configuration, used when type is "webSearch".
|
|
1588
|
+
x-celigo-ai-guidance:
|
|
1589
|
+
- |-
|
|
1590
|
+
`allowedDomains` and `blockedDomains` are mutually exclusive — set at most
|
|
1591
|
+
one. Sending both fails with 422 `invalid_hosted_tool`.
|
|
1592
|
+
- |-
|
|
1593
|
+
When `userLocation` is present, set at least one of `city`, `country`,
|
|
1594
|
+
`region`, or `timezone`; an empty `userLocation` fails with 422
|
|
1595
|
+
`missing_required_field`.
|
|
1596
|
+
properties:
|
|
1597
|
+
version:
|
|
1598
|
+
type: string
|
|
1599
|
+
pattern: ^\d{8}$
|
|
1600
|
+
description: |-
|
|
1601
|
+
Anthropic web search tool version (YYYYMMDD). Selects the tool version sent
|
|
1602
|
+
on the wire; unsupported versions surface as an Anthropic 400.
|
|
1603
|
+
examples:
|
|
1604
|
+
- '20250305'
|
|
1605
|
+
allowedDomains:
|
|
1606
|
+
type: array
|
|
1607
|
+
description: Domains the search may return results from. Mutually exclusive with `blockedDomains`.
|
|
1608
|
+
items:
|
|
1609
|
+
type: string
|
|
1610
|
+
blockedDomains:
|
|
1611
|
+
type: array
|
|
1612
|
+
description: Domains to exclude from search results. Mutually exclusive with `allowedDomains`.
|
|
1613
|
+
items:
|
|
1614
|
+
type: string
|
|
1615
|
+
userLocation:
|
|
1616
|
+
type: object
|
|
1617
|
+
description: |-
|
|
1618
|
+
Approximate user location used to localize search results. When present, at
|
|
1619
|
+
least one of `city`, `country`, `region`, or `timezone` must be set.
|
|
1620
|
+
properties:
|
|
1621
|
+
type:
|
|
1622
|
+
type: string
|
|
1623
|
+
enum:
|
|
1624
|
+
- approximate
|
|
1625
|
+
x-enumDescriptions:
|
|
1626
|
+
approximate: Localize results to an approximate user location.
|
|
1627
|
+
description: Location type. Always "approximate".
|
|
1628
|
+
city:
|
|
1629
|
+
type: string
|
|
1630
|
+
maxLength: 256
|
|
1631
|
+
description: City name for localizing search results.
|
|
1632
|
+
country:
|
|
1633
|
+
type: string
|
|
1634
|
+
maxLength: 8
|
|
1635
|
+
description: ISO 3166-1 alpha-2 country code for localizing search results.
|
|
1636
|
+
region:
|
|
1637
|
+
type: string
|
|
1638
|
+
maxLength: 256
|
|
1639
|
+
description: Region or state for localizing search results.
|
|
1640
|
+
timezone:
|
|
1641
|
+
type: string
|
|
1642
|
+
maxLength: 64
|
|
1643
|
+
description: IANA timezone for localizing search results.
|
|
1644
|
+
prompts:
|
|
1645
|
+
type: array
|
|
1646
|
+
description: |
|
|
1647
|
+
MCP prompt entries available to the Claude agent. Each item references one MCP
|
|
1648
|
+
connection and the prompt names allowed from it. The presence of `allowedPrompts`
|
|
1649
|
+
distinguishes a prompt entry from an MCP tool entry.
|
|
1650
|
+
items:
|
|
1651
|
+
type: object
|
|
1652
|
+
properties:
|
|
1653
|
+
type:
|
|
1654
|
+
type: string
|
|
1655
|
+
enum:
|
|
1656
|
+
- mcp
|
|
1657
|
+
x-enumDescriptions:
|
|
1658
|
+
mcp: Connect to an MCP server to use its exposed prompts.
|
|
1659
|
+
description: Type of prompt entry. Always "mcp".
|
|
1660
|
+
mcp:
|
|
1661
|
+
type: object
|
|
1662
|
+
description: MCP server prompt configuration.
|
|
1663
|
+
properties:
|
|
1664
|
+
_mcpConnectionId:
|
|
1665
|
+
type: string
|
|
1666
|
+
format: objectId
|
|
1667
|
+
x-celigo-refModel: connections
|
|
1668
|
+
description: Connection to the MCP server.
|
|
1669
|
+
allowedPrompts:
|
|
1670
|
+
type: array
|
|
1671
|
+
description: Prompt names to allow from the MCP server.
|
|
1672
|
+
items:
|
|
1673
|
+
type: string
|
|
1674
|
+
resources:
|
|
1675
|
+
$ref: '#/components/schemas/McpResources'
|
|
1676
|
+
if:
|
|
1677
|
+
properties:
|
|
1678
|
+
provider:
|
|
1679
|
+
const: openai
|
|
1680
|
+
required:
|
|
1681
|
+
- provider
|
|
1682
|
+
then:
|
|
1683
|
+
required:
|
|
1684
|
+
- openai
|
|
1685
|
+
properties:
|
|
1686
|
+
openai:
|
|
1687
|
+
required:
|
|
1688
|
+
- model
|
|
1689
|
+
- instructions
|
|
1690
|
+
else:
|
|
1691
|
+
if:
|
|
1692
|
+
properties:
|
|
1693
|
+
provider:
|
|
1694
|
+
enum:
|
|
1695
|
+
- gemini
|
|
1696
|
+
- anthropic
|
|
1697
|
+
required:
|
|
1698
|
+
- provider
|
|
1699
|
+
then:
|
|
1700
|
+
required:
|
|
1701
|
+
- litellm
|
|
1702
|
+
properties:
|
|
1703
|
+
litellm:
|
|
1704
|
+
required:
|
|
1705
|
+
- model
|
|
1706
|
+
GuardrailConfig:
|
|
1707
|
+
type: object
|
|
1708
|
+
description: |-
|
|
1709
|
+
Configuration for GuardrailImport adaptor type.
|
|
1710
|
+
|
|
1711
|
+
Guardrails evaluate data flowing through integrations for safety and
|
|
1712
|
+
compliance. The `type` field selects which check to apply, and the
|
|
1713
|
+
corresponding sub-object (`aiAgent`, `pii`, or `moderation`) provides
|
|
1714
|
+
the configuration.
|
|
1715
|
+
|
|
1716
|
+
A `_connectionId` on the parent import is only needed for BYOK
|
|
1717
|
+
`ai_agent` guardrails. In responses the server echoes the active type's
|
|
1718
|
+
sub-object and applies the `confidenceThreshold` default; it also
|
|
1719
|
+
returns inactive sibling sub-objects (e.g. `moderation: {categories: []}`
|
|
1720
|
+
on a `pii` guardrail, or a populated `pii` left over from a type switch),
|
|
1721
|
+
but only the active type's sub-object is meaningful. Legacy documents
|
|
1722
|
+
may carry a server-written default `aiAgent` stub on `pii`/`moderation`
|
|
1723
|
+
guardrails; current servers strip the inactive `aiAgent` on write.
|
|
1724
|
+
x-celigo-ai-guidance:
|
|
1725
|
+
- |-
|
|
1726
|
+
Guardrails are safety and compliance checks that can be applied
|
|
1727
|
+
to data flowing through integrations. Three mutually-exclusive
|
|
1728
|
+
types are supported — see `type` below for the full decision
|
|
1729
|
+
rule on which to pick:
|
|
1730
|
+
|
|
1731
|
+
- **pii**: Detect (and optionally mask) personally identifiable
|
|
1732
|
+
information. Local deterministic classifier; fixed enum of
|
|
1733
|
+
entity types (`pii.entities`).
|
|
1734
|
+
- **moderation**: Detect harmful / inappropriate / policy-
|
|
1735
|
+
violating CONTENT. Local deterministic classifier; fixed enum
|
|
1736
|
+
of categories (`moderation.categories` — `sexual`, `hate`,
|
|
1737
|
+
`harassment`, `self_harm`, `violence`, `illicit`, etc.). Use
|
|
1738
|
+
category names exactly as listed in the enum — e.g. `hate`
|
|
1739
|
+
(not "hate speech"), `violence` (not "violent content"). Map
|
|
1740
|
+
natural-language synonyms ("explicit" → `sexual`, "toxic" →
|
|
1741
|
+
`harassment`, etc.) to the closest enum value rather than
|
|
1742
|
+
falling back to `ai_agent`.
|
|
1743
|
+
- **ai_agent**: LLM-evaluated judgement against custom
|
|
1744
|
+
instructions. Catch-all for intents that don't fit `pii` or
|
|
1745
|
+
`moderation` — domain-specific compliance, business-policy
|
|
1746
|
+
checks, data-quality assertions, etc. Pick this LAST, not as
|
|
1747
|
+
the default.
|
|
1748
|
+
- |-
|
|
1749
|
+
Prefer the cheaper / more deterministic types (`pii` > `moderation` >
|
|
1750
|
+
`ai_agent`) whenever the brief's intent fits.
|
|
1751
|
+
- Guardrail imports do not require a `_connectionId` (unless using BYOK for `ai_agent` type).
|
|
1752
|
+
properties:
|
|
1753
|
+
type:
|
|
1754
|
+
type: string
|
|
1755
|
+
enum:
|
|
1756
|
+
- ai_agent
|
|
1757
|
+
- pii
|
|
1758
|
+
- moderation
|
|
1759
|
+
x-enumDescriptions:
|
|
1760
|
+
ai_agent: Evaluate data using an AI model with custom instructions.
|
|
1761
|
+
pii: Detect personally identifiable information in data fields.
|
|
1762
|
+
moderation: Check content for harmful or inappropriate categories.
|
|
1763
|
+
description: |-
|
|
1764
|
+
The type of guardrail to apply. Each type requires its corresponding
|
|
1765
|
+
sub-configuration object (`aiAgent`, `pii`, or `moderation`).
|
|
1766
|
+
x-celigo-ai-guidance:
|
|
1767
|
+
- |-
|
|
1768
|
+
The type of guardrail to apply.
|
|
1769
|
+
Pick exactly one — `pii` / `moderation` / `ai_agent` are mutually exclusive at
|
|
1770
|
+
the type level (a brief that wants both runs as two guardrails in sequence,
|
|
1771
|
+
not one).
|
|
1772
|
+
- |-
|
|
1773
|
+
## How to choose
|
|
1774
|
+
|
|
1775
|
+
Apply these rules **in order** and pick the first match. Do
|
|
1776
|
+
NOT skip ahead to `ai_agent` just because the brief is in
|
|
1777
|
+
natural language — `pii` and `moderation` are also expressed
|
|
1778
|
+
as natural-language briefs. The decision is about WHAT the
|
|
1779
|
+
brief asks the guardrail to detect, not how the brief is
|
|
1780
|
+
worded.
|
|
1781
|
+
|
|
1782
|
+
1. **`pii`** — pick this when the brief names ANY personally
|
|
1783
|
+
identifiable information, OR when the brief names entity
|
|
1784
|
+
categories (SSN, email, phone, credit card, address, name,
|
|
1785
|
+
passport, license, account number, etc.) that match
|
|
1786
|
+
`pii.entities`. Examples that route here:
|
|
1787
|
+
"detect SSN and credit card numbers", "mask customer
|
|
1788
|
+
emails and phone numbers", "scan for PII".
|
|
1789
|
+
|
|
1790
|
+
2. **`moderation`** — pick this when the brief asks the
|
|
1791
|
+
guardrail to detect harmful, inappropriate, unsafe, or
|
|
1792
|
+
policy-violating CONTENT (as opposed to PII data fields)
|
|
1793
|
+
AND the intent maps to any value in `moderation.categories`
|
|
1794
|
+
(`sexual`, `hate`, `harassment`, `self_harm`, `violence`,
|
|
1795
|
+
`illicit`, etc.) — including via close synonyms. Apply
|
|
1796
|
+
the synonym mapping liberally:
|
|
1797
|
+
- "explicit", "obscene", "vulgar", "profane",
|
|
1798
|
+
"inappropriate language", "swearing", "NSFW" → typically
|
|
1799
|
+
maps to `sexual` and/or `harassment`
|
|
1800
|
+
- "abusive", "insulting", "bullying", "toxic" → `harassment`
|
|
1801
|
+
- "hateful", "discriminatory", "racist", "sexist" → `hate`
|
|
1802
|
+
- "threatening", "intimidating" → `harassment_threatening`
|
|
1803
|
+
or `violence`
|
|
1804
|
+
- "graphic violence", "gore" → `violence_graphic`
|
|
1805
|
+
- "suicide", "self-injury" → `self_harm`
|
|
1806
|
+
- "drugs", "weapons", "illegal activity" → `illicit`
|
|
1807
|
+
Briefs like "screen email body for explicit language",
|
|
1808
|
+
"block toxic chat messages", "flag harassment in support
|
|
1809
|
+
tickets", "moderate user-generated content for unsafe
|
|
1810
|
+
material" all route to `moderation`. When the brief uses
|
|
1811
|
+
a synonym, populate `moderation.categories` with the
|
|
1812
|
+
closest enum value(s) — do NOT invent new category
|
|
1813
|
+
strings; the enum is fixed.
|
|
1814
|
+
|
|
1815
|
+
3. **`ai_agent`** — pick this ONLY when the brief asks for
|
|
1816
|
+
judgement that doesn't fit `pii` or `moderation`. Typical
|
|
1817
|
+
triggers: domain-specific compliance checks (HIPAA / SOX
|
|
1818
|
+
rule evaluation), business-policy validation (price
|
|
1819
|
+
bounds, approval thresholds), data-quality assertions
|
|
1820
|
+
(required fields populated, values plausible), or any
|
|
1821
|
+
"evaluate against these custom rules" framing where the
|
|
1822
|
+
rules are domain-specific and have no `pii.entities` /
|
|
1823
|
+
`moderation.categories` analogue. If you can map the
|
|
1824
|
+
brief's intent to a moderation category (even via a
|
|
1825
|
+
synonym above), use `moderation` instead — `ai_agent` is
|
|
1826
|
+
the catch-all, not the default.
|
|
1827
|
+
|
|
1828
|
+
Tie-breaker for borderline cases: prefer the more specific
|
|
1829
|
+
type (`pii` > `moderation` > `ai_agent`). `pii` and
|
|
1830
|
+
`moderation` are local deterministic classifiers with fixed
|
|
1831
|
+
enums — they're cheaper, faster, and more predictable than
|
|
1832
|
+
`ai_agent` (which calls a real LLM per record). Default to
|
|
1833
|
+
the cheaper path whenever the intent fits.
|
|
1834
|
+
- |-
|
|
1835
|
+
## Sub-configuration requirements (one per type)
|
|
1836
|
+
|
|
1837
|
+
- **ai_agent** requires the `aiAgent` sub-configuration.
|
|
1838
|
+
- **pii** requires the `pii` sub-configuration with at least
|
|
1839
|
+
one entity from `pii.entities`.
|
|
1840
|
+
- **moderation** requires the `moderation` sub-configuration
|
|
1841
|
+
with at least one category from `moderation.categories`.
|
|
1842
|
+
confidenceThreshold:
|
|
1843
|
+
type: number
|
|
1844
|
+
minimum: 0
|
|
1845
|
+
maximum: 1
|
|
1846
|
+
default: 0.7
|
|
1847
|
+
x-celigo-ui-override: Required by the guardrail form (confidenceThreshold is required:true once a type is selected, default 0.7). Encoded to mirror the form so builders produce connectable configurations.
|
|
1848
|
+
description: |-
|
|
1849
|
+
Confidence threshold (0 to 1). Detections below this threshold are
|
|
1850
|
+
ignored. Lower values catch more issues but increase false positives.
|
|
1851
|
+
x-celigo-ai-guidance:
|
|
1852
|
+
- Confidence threshold for guardrail detection (0 to 1).
|
|
1853
|
+
- |-
|
|
1854
|
+
Only detections with confidence at or above this threshold will be flagged.
|
|
1855
|
+
Lower values catch more potential issues but may increase false positives.
|
|
1856
|
+
examples:
|
|
1857
|
+
- 0.7
|
|
1858
|
+
- 0.5
|
|
1859
|
+
- 0.9
|
|
1860
|
+
aiAgent:
|
|
1861
|
+
type: object
|
|
1862
|
+
description: |-
|
|
1863
|
+
AI agent check configuration; set when `type` is `ai_agent`. On
|
|
1864
|
+
`pii`/`moderation` guardrails a legacy server-written stub may
|
|
1865
|
+
appear here — it is inert, and current servers strip it on write.
|
|
1866
|
+
pii:
|
|
1867
|
+
type: object
|
|
1868
|
+
required:
|
|
1869
|
+
- entities
|
|
1870
|
+
description: PII detection configuration. Required when `type` is `pii`.
|
|
1871
|
+
x-celigo-ai-guidance:
|
|
1872
|
+
- Configuration for PII (Personally Identifiable Information) detection.
|
|
1873
|
+
- |-
|
|
1874
|
+
Required when `guardrail.type` is "pii".
|
|
1875
|
+
At least one entity type must be specified.
|
|
1876
|
+
properties:
|
|
1877
|
+
entities:
|
|
1878
|
+
type: array
|
|
1879
|
+
description: |-
|
|
1880
|
+
PII entity types to detect. When `type` is `pii`, at least one
|
|
1881
|
+
entry is required; the inactive sibling on other guardrail types
|
|
1882
|
+
may be served with an empty list.
|
|
1883
|
+
x-celigo-ai-guidance:
|
|
1884
|
+
- PII entity types to detect in the data.
|
|
1885
|
+
- At least one entity must be specified when using PII guardrails.
|
|
1886
|
+
items:
|
|
1887
|
+
type: string
|
|
1888
|
+
enum:
|
|
1889
|
+
- credit_card_number
|
|
1890
|
+
- card_security_code_cvv_cvc
|
|
1891
|
+
- cryptocurrency_wallet_address
|
|
1892
|
+
- date_and_time
|
|
1893
|
+
- email_address
|
|
1894
|
+
- iban_code
|
|
1895
|
+
- bic_swift_bank_identifier_code
|
|
1896
|
+
- ip_address
|
|
1897
|
+
- location
|
|
1898
|
+
- medical_license_number
|
|
1899
|
+
- national_registration_number
|
|
1900
|
+
- persons_name
|
|
1901
|
+
- phone_number
|
|
1902
|
+
- url
|
|
1903
|
+
- us_bank_account_number
|
|
1904
|
+
- us_drivers_license
|
|
1905
|
+
- us_itin
|
|
1906
|
+
- us_passport_number
|
|
1907
|
+
- us_social_security_number
|
|
1908
|
+
- uk_nhs_number
|
|
1909
|
+
- uk_national_insurance_number
|
|
1910
|
+
- spanish_nif
|
|
1911
|
+
- spanish_nie
|
|
1912
|
+
- italian_fiscal_code
|
|
1913
|
+
- italian_drivers_license
|
|
1914
|
+
- italian_vat_code
|
|
1915
|
+
- italian_passport
|
|
1916
|
+
- italian_identity_card
|
|
1917
|
+
- polish_pesel
|
|
1918
|
+
- finnish_personal_identity_code
|
|
1919
|
+
- singapore_nric_fin
|
|
1920
|
+
- singapore_uen
|
|
1921
|
+
- australian_abn
|
|
1922
|
+
- australian_acn
|
|
1923
|
+
- australian_tfn
|
|
1924
|
+
- australian_medicare
|
|
1925
|
+
- indian_pan
|
|
1926
|
+
- indian_aadhaar
|
|
1927
|
+
- indian_vehicle_registration
|
|
1928
|
+
- indian_voter_id
|
|
1929
|
+
- indian_passport
|
|
1930
|
+
- korean_resident_registration_number
|
|
1931
|
+
x-enumDescriptions:
|
|
1932
|
+
credit_card_number: Credit or debit card number (e.g., Visa, Mastercard, Amex).
|
|
1933
|
+
card_security_code_cvv_cvc: Card security code printed on credit or debit cards (CVV/CVC).
|
|
1934
|
+
cryptocurrency_wallet_address: Cryptocurrency wallet address (e.g., Bitcoin, Ethereum).
|
|
1935
|
+
date_and_time: Date and/or time values that could identify an individual.
|
|
1936
|
+
email_address: Email address in standard format.
|
|
1937
|
+
iban_code: International Bank Account Number used for cross-border payments.
|
|
1938
|
+
bic_swift_bank_identifier_code: BIC/SWIFT code identifying a specific bank for international transfers.
|
|
1939
|
+
ip_address: IPv4 or IPv6 network address.
|
|
1940
|
+
location: Physical location or geographic coordinates.
|
|
1941
|
+
medical_license_number: Medical professional license or registration number.
|
|
1942
|
+
national_registration_number: National identification or registration number.
|
|
1943
|
+
persons_name: Full or partial name of a person.
|
|
1944
|
+
phone_number: Telephone number in any format.
|
|
1945
|
+
url: Web URL or URI.
|
|
1946
|
+
us_bank_account_number: United States bank account number.
|
|
1947
|
+
us_drivers_license: United States driver's license number.
|
|
1948
|
+
us_itin: United States Individual Taxpayer Identification Number.
|
|
1949
|
+
us_passport_number: United States passport number.
|
|
1950
|
+
us_social_security_number: United States Social Security Number (SSN).
|
|
1951
|
+
uk_nhs_number: United Kingdom National Health Service number.
|
|
1952
|
+
uk_national_insurance_number: United Kingdom National Insurance number.
|
|
1953
|
+
spanish_nif: Spanish tax identification number (NIF).
|
|
1954
|
+
spanish_nie: Spanish foreigner identification number (NIE).
|
|
1955
|
+
italian_fiscal_code: Italian fiscal code (Codice Fiscale).
|
|
1956
|
+
italian_drivers_license: Italian driver's license number.
|
|
1957
|
+
italian_vat_code: Italian VAT identification number (Partita IVA).
|
|
1958
|
+
italian_passport: Italian passport number.
|
|
1959
|
+
italian_identity_card: Italian national identity card number.
|
|
1960
|
+
polish_pesel: Polish national identification number (PESEL).
|
|
1961
|
+
finnish_personal_identity_code: Finnish personal identity code (henkilotunnus).
|
|
1962
|
+
singapore_nric_fin: Singapore National Registration Identity Card or Foreign Identification Number.
|
|
1963
|
+
singapore_uen: Singapore Unique Entity Number for business registration.
|
|
1964
|
+
australian_abn: Australian Business Number.
|
|
1965
|
+
australian_acn: Australian Company Number.
|
|
1966
|
+
australian_tfn: Australian Tax File Number.
|
|
1967
|
+
australian_medicare: Australian Medicare card number.
|
|
1968
|
+
indian_pan: Indian Permanent Account Number for tax purposes.
|
|
1969
|
+
indian_aadhaar: Indian Aadhaar unique identity number.
|
|
1970
|
+
indian_vehicle_registration: Indian vehicle registration number.
|
|
1971
|
+
indian_voter_id: Indian voter identification card number.
|
|
1972
|
+
indian_passport: Indian passport number.
|
|
1973
|
+
korean_resident_registration_number: South Korean resident registration number.
|
|
1974
|
+
examples:
|
|
1975
|
+
- - email_address
|
|
1976
|
+
- phone_number
|
|
1977
|
+
- persons_name
|
|
1978
|
+
- - us_social_security_number
|
|
1979
|
+
- credit_card_number
|
|
1980
|
+
mask:
|
|
1981
|
+
type: boolean
|
|
1982
|
+
default: false
|
|
1983
|
+
description: |-
|
|
1984
|
+
When true, detected PII is replaced with masked values.
|
|
1985
|
+
When false, PII is flagged without modification.
|
|
1986
|
+
x-celigo-ai-guidance:
|
|
1987
|
+
- Whether to mask detected PII values in the output.
|
|
1988
|
+
moderation:
|
|
1989
|
+
type: object
|
|
1990
|
+
required:
|
|
1991
|
+
- categories
|
|
1992
|
+
description: Content moderation configuration. Required when `type` is `moderation`.
|
|
1993
|
+
x-celigo-ai-guidance:
|
|
1994
|
+
- |-
|
|
1995
|
+
Required when `guardrail.type` is "moderation".
|
|
1996
|
+
At least one category must be specified.
|
|
1997
|
+
properties:
|
|
1998
|
+
categories:
|
|
1999
|
+
type: array
|
|
2000
|
+
description: |-
|
|
2001
|
+
Content moderation categories to check. When `type` is
|
|
2002
|
+
`moderation`, at least one entry is required; the inactive
|
|
2003
|
+
sibling on other guardrail types may be served with an empty
|
|
2004
|
+
list.
|
|
2005
|
+
x-celigo-ai-guidance:
|
|
2006
|
+
- At least one category must be specified when using moderation guardrails.
|
|
2007
|
+
items:
|
|
2008
|
+
type: string
|
|
2009
|
+
enum:
|
|
2010
|
+
- sexual
|
|
2011
|
+
- sexual_minors
|
|
2012
|
+
- hate
|
|
2013
|
+
- hate_threatening
|
|
2014
|
+
- harassment
|
|
2015
|
+
- harassment_threatening
|
|
2016
|
+
- self_harm
|
|
2017
|
+
- self_harm_intent
|
|
2018
|
+
- self_harm_instructions
|
|
2019
|
+
- violence
|
|
2020
|
+
- violence_graphic
|
|
2021
|
+
- illicit
|
|
2022
|
+
- illicit_violent
|
|
2023
|
+
x-enumDescriptions:
|
|
2024
|
+
sexual: Content depicting sexual activity or explicit sexual material.
|
|
2025
|
+
sexual_minors: Sexual content involving minors.
|
|
2026
|
+
hate: Content expressing hatred toward a group based on protected characteristics.
|
|
2027
|
+
hate_threatening: Hateful content that includes threats of violence or serious harm.
|
|
2028
|
+
harassment: Content that targets, intimidates, or bullies an individual.
|
|
2029
|
+
harassment_threatening: Harassment content that includes threats of violence or serious harm.
|
|
2030
|
+
self_harm: Content that promotes or depicts self-harm behaviors.
|
|
2031
|
+
self_harm_intent: Content expressing intent to engage in self-harm.
|
|
2032
|
+
self_harm_instructions: Content providing instructions for self-harm methods.
|
|
2033
|
+
violence: Content depicting or promoting physical violence.
|
|
2034
|
+
violence_graphic: Graphic or gory depictions of violence or injury.
|
|
2035
|
+
illicit: Content promoting illegal activities or unlawful behavior.
|
|
2036
|
+
illicit_violent: Content promoting illegal activities that involve violence.
|
|
2037
|
+
examples:
|
|
2038
|
+
- - hate
|
|
2039
|
+
- violence
|
|
2040
|
+
- harassment
|
|
2041
|
+
- - sexual
|
|
2042
|
+
- self_harm
|
|
2043
|
+
- illicit
|
|
2044
|
+
required:
|
|
2045
|
+
- type
|
|
2046
|
+
- confidenceThreshold
|
|
2047
|
+
if:
|
|
2048
|
+
required:
|
|
2049
|
+
- type
|
|
2050
|
+
properties:
|
|
2051
|
+
type:
|
|
2052
|
+
const: pii
|
|
2053
|
+
then:
|
|
2054
|
+
required:
|
|
2055
|
+
- pii
|
|
2056
|
+
properties:
|
|
2057
|
+
pii:
|
|
2058
|
+
required:
|
|
2059
|
+
- entities
|
|
2060
|
+
properties:
|
|
2061
|
+
entities:
|
|
2062
|
+
minItems: 1
|
|
2063
|
+
else:
|
|
2064
|
+
if:
|
|
2065
|
+
required:
|
|
2066
|
+
- type
|
|
2067
|
+
properties:
|
|
2068
|
+
type:
|
|
2069
|
+
const: moderation
|
|
2070
|
+
then:
|
|
2071
|
+
required:
|
|
2072
|
+
- moderation
|
|
2073
|
+
properties:
|
|
2074
|
+
moderation:
|
|
2075
|
+
required:
|
|
2076
|
+
- categories
|
|
2077
|
+
properties:
|
|
2078
|
+
categories:
|
|
2079
|
+
minItems: 1
|
|
2080
|
+
else:
|
|
2081
|
+
required:
|
|
2082
|
+
- aiAgent
|
|
2083
|
+
properties:
|
|
2084
|
+
aiAgent:
|
|
2085
|
+
$ref: '#/components/schemas/AiAgentConfig'
|
|
2086
|
+
MappingField:
|
|
2087
|
+
type: object
|
|
2088
|
+
description: One Mapper 1.0 field-mapping entry.
|
|
2089
|
+
properties:
|
|
2090
|
+
generate:
|
|
2091
|
+
type: string
|
|
2092
|
+
description: Target field path to write on the destination record.
|
|
2093
|
+
examples:
|
|
2094
|
+
- billingAddress.city
|
|
2095
|
+
x-celigo-ai-guidance:
|
|
2096
|
+
- |-
|
|
2097
|
+
Destination field path on the target record. Use the target
|
|
2098
|
+
system's raw field id — for Salesforce the API name (e.g.
|
|
2099
|
+
``AccountId``, ``CustomField__c``); for HTTP/REST the JSON
|
|
2100
|
+
key the endpoint expects; for NetSuite the internal field id
|
|
2101
|
+
(lowercase, no spaces).
|
|
2102
|
+
|
|
2103
|
+
Mapper 1.0 expands two notations into the destination
|
|
2104
|
+
structure at write time:
|
|
2105
|
+
|
|
2106
|
+
- **Dot notation** — ``customer.email`` builds nested
|
|
2107
|
+
objects, writing ``{customer: {email: value}}``. Use it
|
|
2108
|
+
freely for any depth of nested object on adaptors whose
|
|
2109
|
+
payloads are JSON (HTTP, REST, Shopify-style, etc.).
|
|
2110
|
+
NetSuite body fields are flat — do not use dot notation
|
|
2111
|
+
there.
|
|
2112
|
+
- **Bracket-star notation** — ``addresses[*].company`` is the
|
|
2113
|
+
idiomatic V1 expression for "this scalar belongs to every
|
|
2114
|
+
element of the destination array as it is being
|
|
2115
|
+
constructed." Two or more ``[*]``-suffixed fields with the
|
|
2116
|
+
same array prefix collaborate to populate a single element
|
|
2117
|
+
per source record, e.g. pairing
|
|
2118
|
+
``customer.addresses[*].company`` with
|
|
2119
|
+
``customer.addresses[*].city`` produces one address object
|
|
2120
|
+
carrying both fields.
|
|
2121
|
+
- **Numeric bracket notation** — ``addresses[0].company``
|
|
2122
|
+
writes to a specific index. It works, but hardcodes the
|
|
2123
|
+
slot and is only appropriate when the destination genuinely
|
|
2124
|
+
targets a fixed position (rare). Prefer ``[*]`` whenever
|
|
2125
|
+
the user describes "an address" / "a line" / "an entry";
|
|
2126
|
+
reserve ``[N]`` for "the second address" and similar
|
|
2127
|
+
explicit-index intents.
|
|
2128
|
+
|
|
2129
|
+
customer.email → {"customer": {"email": ...}}
|
|
2130
|
+
customer.addresses[*].company → {"customer": {"addresses": [{"company": ...}]}}
|
|
2131
|
+
customer.addresses[*].city ↑ adds "city" to the same address element
|
|
2132
|
+
extract:
|
|
2133
|
+
type: string
|
|
2134
|
+
description: |
|
|
2135
|
+
Source expression. Accepts:
|
|
2136
|
+
- JSONPath starting with `$.` (e.g. `$.customer.firstName`).
|
|
2137
|
+
- Handlebars template (contains `{{`) for concatenation /
|
|
2138
|
+
formatting / conditional logic (e.g.
|
|
2139
|
+
`{{record.firstName}} {{record.lastName}}`).
|
|
2140
|
+
- A literal string (any value not starting with `$.` and not
|
|
2141
|
+
containing `{{`) — treated as a hardcoded value.
|
|
2142
|
+
|
|
2143
|
+
Omit when using `hardCodedValue`.
|
|
2144
|
+
examples:
|
|
2145
|
+
- address.city
|
|
2146
|
+
hardCodedValue:
|
|
2147
|
+
type:
|
|
2148
|
+
- string
|
|
2149
|
+
- 'null'
|
|
2150
|
+
description: Static value written to `generate` instead of extracting from the source record.
|
|
2151
|
+
x-celigo-ai-guidance:
|
|
2152
|
+
- |-
|
|
2153
|
+
Static value written verbatim. Equivalent to setting ``extract``
|
|
2154
|
+
to a literal string; choose whichever reads more clearly. Mutually
|
|
2155
|
+
exclusive with ``extract``.
|
|
2156
|
+
dataType:
|
|
2157
|
+
type: string
|
|
2158
|
+
enum:
|
|
2159
|
+
- string
|
|
2160
|
+
- number
|
|
2161
|
+
- boolean
|
|
2162
|
+
- numberarray
|
|
2163
|
+
- stringarray
|
|
2164
|
+
- json
|
|
2165
|
+
x-lowercase: true
|
|
2166
|
+
x-enumDescriptions:
|
|
2167
|
+
string: Text string data type.
|
|
2168
|
+
number: Numeric data type including integers and decimals.
|
|
2169
|
+
boolean: True or false data type.
|
|
2170
|
+
numberarray: Array of numeric values.
|
|
2171
|
+
stringarray: Array of text string values.
|
|
2172
|
+
json: Arbitrary JSON object or structure.
|
|
2173
|
+
description: Data type coercion applied to the mapped value.
|
|
2174
|
+
discardIfEmpty:
|
|
2175
|
+
type: boolean
|
|
2176
|
+
description: When true, the field is omitted from the output when the extracted value is empty.
|
|
2177
|
+
x-celigo-ai-guidance:
|
|
2178
|
+
- |-
|
|
2179
|
+
When true, skip this field entirely when ``extract`` / lookup
|
|
2180
|
+
produces empty / null. Without this flag the destination field
|
|
2181
|
+
receives null and may overwrite existing data.
|
|
2182
|
+
immutable:
|
|
2183
|
+
type: boolean
|
|
2184
|
+
description: When true, the mapped value cannot be overwritten by later mapping steps.
|
|
2185
|
+
lookupName:
|
|
2186
|
+
type: string
|
|
2187
|
+
description: Name of an entry in the import's `lookups` array used to translate the value.
|
|
2188
|
+
x-celigo-ai-guidance:
|
|
2189
|
+
- |-
|
|
2190
|
+
Name of a lookup defined on ``resource.lookups`` whose result
|
|
2191
|
+
replaces the extracted value. The looked-up record's
|
|
2192
|
+
``resultField`` (or full record, depending on lookup shape)
|
|
2193
|
+
becomes the mapped value.
|
|
2194
|
+
default:
|
|
2195
|
+
type:
|
|
2196
|
+
- string
|
|
2197
|
+
- 'null'
|
|
2198
|
+
description: Fallback value used when the extract yields no value.
|
|
2199
|
+
extractDateFormat:
|
|
2200
|
+
type: string
|
|
2201
|
+
description: Date format of the source value, used to parse it before conversion.
|
|
2202
|
+
x-celigo-ai-guidance:
|
|
2203
|
+
- |-
|
|
2204
|
+
Moment.js-style format describing how the source date string is
|
|
2205
|
+
structured (e.g. ``MM/DD/YYYY``, ``YYYY-MM-DDTHH:mm:ssZ``).
|
|
2206
|
+
extractDateTimezone:
|
|
2207
|
+
type: string
|
|
2208
|
+
description: Timezone applied when parsing the source date value.
|
|
2209
|
+
x-celigo-ai-guidance:
|
|
2210
|
+
- |-
|
|
2211
|
+
IANA timezone of the source value (e.g. ``America/New_York``).
|
|
2212
|
+
Set together with ``generateDateTimezone`` only when a real
|
|
2213
|
+
timezone conversion is required.
|
|
2214
|
+
generateDateFormat:
|
|
2215
|
+
type: string
|
|
2216
|
+
description: Date format applied to the value written to the destination.
|
|
2217
|
+
generateDateTimezone:
|
|
2218
|
+
type: string
|
|
2219
|
+
description: Timezone applied when formatting the destination date value.
|
|
2220
|
+
conditional:
|
|
2221
|
+
type: object
|
|
2222
|
+
description: |
|
|
2223
|
+
Only apply this mapping entry when the given condition is satisfied.
|
|
2224
|
+
properties:
|
|
2225
|
+
when:
|
|
2226
|
+
type: string
|
|
2227
|
+
enum:
|
|
2228
|
+
- record_created
|
|
2229
|
+
- record_updated
|
|
2230
|
+
- extract_not_empty
|
|
2231
|
+
- lookup_not_empty
|
|
2232
|
+
- lookup_empty
|
|
2233
|
+
- expression
|
|
2234
|
+
x-enumDescriptions:
|
|
2235
|
+
record_created: Apply only when creating a new record.
|
|
2236
|
+
record_updated: Apply only when updating an existing record.
|
|
2237
|
+
extract_not_empty: Apply only when `extract` produces a non-empty value.
|
|
2238
|
+
lookup_not_empty: Apply only when the paired lookup returns a value.
|
|
2239
|
+
lookup_empty: Apply only when the paired lookup returns no value.
|
|
2240
|
+
expression: Apply only when the accompanying `expression` evaluates truthy.
|
|
2241
|
+
description: |
|
|
2242
|
+
Condition that gates whether this mapping entry is applied.
|
|
2243
|
+
`lookup_not_empty` / `lookup_empty` evaluate the lookup named by the
|
|
2244
|
+
sibling `lookupName`; `expression` evaluates the sibling `expression`.
|
|
2245
|
+
lookupName:
|
|
2246
|
+
type: string
|
|
2247
|
+
description: |
|
|
2248
|
+
Lookup to evaluate for the `lookup_not_empty` / `lookup_empty`
|
|
2249
|
+
conditions.
|
|
2250
|
+
expression:
|
|
2251
|
+
type: string
|
|
2252
|
+
description: |
|
|
2253
|
+
Expression evaluated when `when` is `expression`.
|
|
2254
|
+
x-celigo-ai-guidance:
|
|
2255
|
+
- |-
|
|
2256
|
+
One Mapper 1.0 body field assignment. Exactly one of ``extract`` or
|
|
2257
|
+
``hardCodedValue`` should carry the value; setting both is
|
|
2258
|
+
rejected by the mapper processor.
|
|
2259
|
+
AIDescription:
|
|
2260
|
+
type: object
|
|
2261
|
+
description: |
|
|
2262
|
+
AI-generated descriptions and documentation for the resource.
|
|
2263
|
+
|
|
2264
|
+
This object contains automatically generated content that helps users
|
|
2265
|
+
understand the purpose, behavior, and configuration of the resource without
|
|
2266
|
+
requiring them to analyze the technical details. The AI-generated content
|
|
2267
|
+
is sanitized and safe for display in the UI.
|
|
2268
|
+
properties:
|
|
2269
|
+
summary:
|
|
2270
|
+
type:
|
|
2271
|
+
- string
|
|
2272
|
+
- 'null'
|
|
2273
|
+
description: |
|
|
2274
|
+
Brief AI-generated summary of the resource's purpose and functionality.
|
|
2275
|
+
|
|
2276
|
+
This concise description provides a quick overview of what the resource does,
|
|
2277
|
+
what systems it interacts with, and its primary role in the integration.
|
|
2278
|
+
The summary is suitable for display in list views, dashboards, and other
|
|
2279
|
+
contexts where space is limited.
|
|
2280
|
+
|
|
2281
|
+
Maximum length: 10KB
|
|
2282
|
+
examples:
|
|
2283
|
+
- AI-generated overview of what this resource does and the systems it interacts with.
|
|
2284
|
+
detailed:
|
|
2285
|
+
type:
|
|
2286
|
+
- string
|
|
2287
|
+
- 'null'
|
|
2288
|
+
description: |
|
|
2289
|
+
Comprehensive AI-generated description of the resource's functionality.
|
|
2290
|
+
|
|
2291
|
+
This detailed explanation covers the resource's purpose, configuration details,
|
|
2292
|
+
data flow patterns, filtering logic, and other technical aspects. It provides
|
|
2293
|
+
in-depth information suitable for documentation, tooltips, or detailed views
|
|
2294
|
+
in the administration interface.
|
|
2295
|
+
|
|
2296
|
+
The content may include HTML formatting for improved readability.
|
|
2297
|
+
|
|
2298
|
+
Maximum length: 10KB
|
|
2299
|
+
examples:
|
|
2300
|
+
- <p>A detailed AI-generated explanation of this resource's purpose, configuration, and behavior.</p><p>The text is regenerated when the resource's configuration changes.</p>
|
|
2301
|
+
generatedOn:
|
|
2302
|
+
type:
|
|
2303
|
+
- string
|
|
2304
|
+
- 'null'
|
|
2305
|
+
format: date-time
|
|
2306
|
+
description: |
|
|
2307
|
+
Timestamp indicating when the AI description was generated.
|
|
2308
|
+
|
|
2309
|
+
This field helps track the freshness of the AI-generated content and
|
|
2310
|
+
determine when it might need to be regenerated due to changes in the
|
|
2311
|
+
resource's configuration or behavior.
|
|
2312
|
+
|
|
2313
|
+
The timestamp is recorded in ISO 8601 format with UTC timezone (Z suffix).
|
|
2314
|
+
examples:
|
|
2315
|
+
- '2023-05-10T13:25:42Z'
|
|
2316
|
+
Guardrail:
|
|
2317
|
+
type: object
|
|
2318
|
+
description: Guardrail import object as returned by the API.
|
|
2319
|
+
required:
|
|
2320
|
+
- _id
|
|
2321
|
+
- name
|
|
2322
|
+
- adaptorType
|
|
2323
|
+
- guardrail
|
|
2324
|
+
- apiIdentifier
|
|
2325
|
+
- lookups
|
|
2326
|
+
- createdAt
|
|
2327
|
+
- lastModified
|
|
2328
|
+
allOf:
|
|
2329
|
+
- $ref: '#/components/schemas/ResourceResponse'
|
|
2330
|
+
- $ref: '#/components/schemas/IAResourceResponse'
|
|
2331
|
+
- type: object
|
|
2332
|
+
properties:
|
|
2333
|
+
name:
|
|
2334
|
+
type: string
|
|
2335
|
+
maxLength: 100
|
|
2336
|
+
description: Display name for the guardrail. May be empty if created without one.
|
|
2337
|
+
examples:
|
|
2338
|
+
- PII Scanner
|
|
2339
|
+
description:
|
|
2340
|
+
type: string
|
|
2341
|
+
maxLength: 5120
|
|
2342
|
+
description: Free-text note describing the guardrail's purpose.
|
|
2343
|
+
examples:
|
|
2344
|
+
- Scans records for PII and masks detected values before import.
|
|
2345
|
+
adaptorType:
|
|
2346
|
+
type: string
|
|
2347
|
+
enum:
|
|
2348
|
+
- GuardrailImport
|
|
2349
|
+
x-enumDescriptions:
|
|
2350
|
+
GuardrailImport: Guardrail import adaptor for safety and compliance checks.
|
|
2351
|
+
description: Always `GuardrailImport` for guardrails.
|
|
2352
|
+
examples:
|
|
2353
|
+
- GuardrailImport
|
|
2354
|
+
_connectionId:
|
|
2355
|
+
type: string
|
|
2356
|
+
format: objectId
|
|
2357
|
+
x-celigo-refModel: connections
|
|
2358
|
+
description: BYOK connection backing an `ai_agent` guardrail. Absent when platform-managed credentials are used.
|
|
2359
|
+
examples:
|
|
2360
|
+
- 68ae48d6b5f755d2dd38c294
|
|
2361
|
+
_sourceId:
|
|
2362
|
+
type: string
|
|
2363
|
+
format: objectId
|
|
2364
|
+
readOnly: true
|
|
2365
|
+
x-celigo-refModel: imports
|
|
2366
|
+
description: Source guardrail this one was cloned from. Present only on clones.
|
|
2367
|
+
examples:
|
|
2368
|
+
- 69a886183b213b3ac90860fe
|
|
2369
|
+
guardrail:
|
|
2370
|
+
$ref: '#/components/schemas/GuardrailConfig'
|
|
2371
|
+
mapping:
|
|
2372
|
+
type: object
|
|
2373
|
+
description: |-
|
|
2374
|
+
Mapper 1.0 input mapping. Served only when populated — a
|
|
2375
|
+
guardrail created without one has no `mapping` in responses.
|
|
2376
|
+
properties:
|
|
2377
|
+
fields:
|
|
2378
|
+
type: array
|
|
2379
|
+
description: Field-level mapping entries; `generate` targets the guardrail input (typically `text`).
|
|
2380
|
+
items:
|
|
2381
|
+
$ref: '#/components/schemas/MappingField'
|
|
2382
|
+
lists:
|
|
2383
|
+
type: array
|
|
2384
|
+
description: List-level mappings, each generating a sublist. Rarely used on guardrails.
|
|
2385
|
+
items:
|
|
2386
|
+
type: object
|
|
2387
|
+
properties:
|
|
2388
|
+
generate:
|
|
2389
|
+
type: string
|
|
2390
|
+
description: Target sublist or array path to generate.
|
|
2391
|
+
fields:
|
|
2392
|
+
type: array
|
|
2393
|
+
description: Field mappings applied within each generated list item.
|
|
2394
|
+
items:
|
|
2395
|
+
$ref: '#/components/schemas/MappingField'
|
|
2396
|
+
examples:
|
|
2397
|
+
- fields:
|
|
2398
|
+
- extract: employeeSummary
|
|
2399
|
+
generate: text
|
|
2400
|
+
inputContext:
|
|
2401
|
+
type: string
|
|
2402
|
+
enum:
|
|
2403
|
+
- record
|
|
2404
|
+
- envelope
|
|
2405
|
+
x-enumDescriptions:
|
|
2406
|
+
record: The guardrail receives each record directly (default behavior).
|
|
2407
|
+
envelope: The guardrail receives records wrapped in an envelope with metadata.
|
|
2408
|
+
description: Input shape for the guardrail's processing pipeline. Present when set; absence means `record`.
|
|
2409
|
+
examples:
|
|
2410
|
+
- record
|
|
2411
|
+
apiIdentifier:
|
|
2412
|
+
type: string
|
|
2413
|
+
readOnly: true
|
|
2414
|
+
description: Ten-character hex identifier used to invoke the guardrail over HTTP.
|
|
2415
|
+
examples:
|
|
2416
|
+
- i894602e87
|
|
2417
|
+
lookups:
|
|
2418
|
+
type: array
|
|
2419
|
+
description: Static lookup configurations. Guardrail (AI agent) imports support static lookups only; defaults to an empty array.
|
|
2420
|
+
items:
|
|
2421
|
+
type: object
|
|
2422
|
+
examples:
|
|
2423
|
+
- []
|
|
2424
|
+
mappings:
|
|
2425
|
+
type: array
|
|
2426
|
+
description: Import field mappings. Each entry requires a `status` field. Typically empty for guardrails.
|
|
2427
|
+
items:
|
|
2428
|
+
type: object
|
|
2429
|
+
examples:
|
|
2430
|
+
- []
|
|
2431
|
+
mockResponse:
|
|
2432
|
+
type: array
|
|
2433
|
+
description: Sample evaluation results stored with the guardrail. The UI populates these from a preview run; accepted on create and update.
|
|
2434
|
+
items:
|
|
2435
|
+
type: object
|
|
2436
|
+
properties:
|
|
2437
|
+
statusCode:
|
|
2438
|
+
type: integer
|
|
2439
|
+
description: HTTP-style status code of the sample evaluation.
|
|
2440
|
+
examples:
|
|
2441
|
+
- 200
|
|
2442
|
+
flagged:
|
|
2443
|
+
type: boolean
|
|
2444
|
+
description: When true, the sample input tripped the guardrail.
|
|
2445
|
+
examples:
|
|
2446
|
+
- true
|
|
2447
|
+
ignored:
|
|
2448
|
+
type: boolean
|
|
2449
|
+
description: When true, the result fell below `confidenceThreshold` and was disregarded.
|
|
2450
|
+
examples:
|
|
2451
|
+
- false
|
|
2452
|
+
masked:
|
|
2453
|
+
type: string
|
|
2454
|
+
description: Sample input with detected values masked. Populated for `pii` guardrails with masking enabled.
|
|
2455
|
+
examples:
|
|
2456
|
+
- The email is ***** and the phone number is *****
|
|
2457
|
+
dataURI:
|
|
2458
|
+
type: string
|
|
2459
|
+
description: Data URI of any artifact produced by the sample evaluation.
|
|
2460
|
+
errors:
|
|
2461
|
+
type: array
|
|
2462
|
+
description: Errors raised during the sample evaluation.
|
|
2463
|
+
items:
|
|
2464
|
+
type: object
|
|
2465
|
+
examples:
|
|
2466
|
+
- []
|
|
2467
|
+
aiDescription:
|
|
2468
|
+
$ref: '#/components/schemas/AIDescription'
|
|
2469
|
+
Request:
|
|
2470
|
+
type: object
|
|
2471
|
+
description: |-
|
|
2472
|
+
Configuration for a guardrail import. `_connectionId` is only
|
|
2473
|
+
required for BYOK `ai_agent` guardrails.
|
|
2474
|
+
properties:
|
|
2475
|
+
name:
|
|
2476
|
+
type: string
|
|
2477
|
+
maxLength: 100
|
|
2478
|
+
description: Display name for the guardrail.
|
|
2479
|
+
examples:
|
|
2480
|
+
- PII Scanner
|
|
2481
|
+
- Content Moderator
|
|
2482
|
+
description:
|
|
2483
|
+
type: string
|
|
2484
|
+
maxLength: 5120
|
|
2485
|
+
description: Optional description of the guardrail's purpose.
|
|
2486
|
+
examples:
|
|
2487
|
+
- Scans records for PII and masks detected values before import.
|
|
2488
|
+
_connectionId:
|
|
2489
|
+
type: string
|
|
2490
|
+
format: objectId
|
|
2491
|
+
x-celigo-refModel: connections
|
|
2492
|
+
description: Connection for BYOK (bring your own key). Only needed for `ai_agent` type guardrails. Optional — platform-managed credentials are used when omitted.
|
|
2493
|
+
examples:
|
|
2494
|
+
- 68ae48d6b5f755d2dd38c294
|
|
2495
|
+
adaptorType:
|
|
2496
|
+
type: string
|
|
2497
|
+
enum:
|
|
2498
|
+
- GuardrailImport
|
|
2499
|
+
x-enumDescriptions:
|
|
2500
|
+
GuardrailImport: Guardrail import adaptor for safety and compliance checks.
|
|
2501
|
+
description: Must be `GuardrailImport`.
|
|
2502
|
+
examples:
|
|
2503
|
+
- GuardrailImport
|
|
2504
|
+
guardrail:
|
|
2505
|
+
$ref: '#/components/schemas/GuardrailConfig'
|
|
2506
|
+
mapping:
|
|
2507
|
+
type: object
|
|
2508
|
+
description: |-
|
|
2509
|
+
Mapper 1.0 mapping that selects the guardrail's input from the
|
|
2510
|
+
incoming record. The UI writes a single field entry that maps a
|
|
2511
|
+
record field to the `text` input (e.g.
|
|
2512
|
+
`{"fields": [{"extract": "employeeSummary", "generate": "text"}]}`).
|
|
2513
|
+
Optional — when omitted the whole record is evaluated. The server
|
|
2514
|
+
serves this field only when populated.
|
|
2515
|
+
properties:
|
|
2516
|
+
fields:
|
|
2517
|
+
type: array
|
|
2518
|
+
description: Field-level mapping entries; `generate` targets the guardrail input (typically `text`).
|
|
2519
|
+
items:
|
|
2520
|
+
$ref: '#/components/schemas/MappingField'
|
|
2521
|
+
lists:
|
|
2522
|
+
type: array
|
|
2523
|
+
description: List-level mappings, each generating a sublist. Rarely used on guardrails.
|
|
2524
|
+
items:
|
|
2525
|
+
type: object
|
|
2526
|
+
properties:
|
|
2527
|
+
generate:
|
|
2528
|
+
type: string
|
|
2529
|
+
description: Target sublist or array path to generate.
|
|
2530
|
+
fields:
|
|
2531
|
+
type: array
|
|
2532
|
+
description: Field mappings applied within each generated list item.
|
|
2533
|
+
items:
|
|
2534
|
+
$ref: '#/components/schemas/MappingField'
|
|
2535
|
+
examples:
|
|
2536
|
+
- fields:
|
|
2537
|
+
- extract: employeeSummary
|
|
2538
|
+
generate: text
|
|
2539
|
+
inputContext:
|
|
2540
|
+
type: string
|
|
2541
|
+
enum:
|
|
2542
|
+
- record
|
|
2543
|
+
- envelope
|
|
2544
|
+
x-enumDescriptions:
|
|
2545
|
+
record: The guardrail receives each record directly (default behavior).
|
|
2546
|
+
envelope: The guardrail receives records wrapped in an envelope with metadata.
|
|
2547
|
+
description: |-
|
|
2548
|
+
Controls the shape of the input passed to the guardrail's
|
|
2549
|
+
processing pipeline, exactly as on other imports. The UI writes
|
|
2550
|
+
`record` explicitly on new guardrails; when the field is absent
|
|
2551
|
+
the platform behaves as `record`.
|
|
2552
|
+
examples:
|
|
2553
|
+
- record
|
|
2554
|
+
required:
|
|
2555
|
+
- name
|
|
2556
|
+
- adaptorType
|
|
2557
|
+
- guardrail
|
|
2558
|
+
Error:
|
|
2559
|
+
type: object
|
|
2560
|
+
description: Standard error response envelope returned by integrator.io APIs.
|
|
2561
|
+
properties:
|
|
2562
|
+
errors:
|
|
2563
|
+
type: array
|
|
2564
|
+
description: List of errors that occurred while processing the request.
|
|
2565
|
+
items:
|
|
2566
|
+
type: object
|
|
2567
|
+
properties:
|
|
2568
|
+
code:
|
|
2569
|
+
oneOf:
|
|
2570
|
+
- type: string
|
|
2571
|
+
- type: integer
|
|
2572
|
+
description: |-
|
|
2573
|
+
Machine-readable error code. Usually a string like
|
|
2574
|
+
`invalid_ref`, `missing_required_field`, or `unauthorized`;
|
|
2575
|
+
may be an **integer** when the error mirrors an upstream HTTP
|
|
2576
|
+
status (e.g. `500`) — most commonly returned by connection-ping
|
|
2577
|
+
and adaptor-proxy responses.
|
|
2578
|
+
message:
|
|
2579
|
+
type: string
|
|
2580
|
+
description: Human-readable description of the error.
|
|
2581
|
+
field:
|
|
2582
|
+
type: string
|
|
2583
|
+
description: |-
|
|
2584
|
+
Optional pointer to the document field that caused the error.
|
|
2585
|
+
Used by structural validation errors (`missing_required_field`,
|
|
2586
|
+
`invalid_ref`) to indicate which field is at fault
|
|
2587
|
+
(e.g. `_id`, `type`, `http.baseURI`).
|
|
2588
|
+
source:
|
|
2589
|
+
type: string
|
|
2590
|
+
description: |-
|
|
2591
|
+
Optional origin layer for the error — e.g. `application` when
|
|
2592
|
+
the error came from the remote system the adaptor called,
|
|
2593
|
+
`connector` when the adaptor itself rejected the request.
|
|
2594
|
+
required:
|
|
2595
|
+
- message
|
|
2596
|
+
required:
|
|
2597
|
+
- errors
|
|
2598
|
+
DependencyEntry:
|
|
2599
|
+
type: object
|
|
2600
|
+
description: A single resource that depends on the queried resource.
|
|
2601
|
+
properties:
|
|
2602
|
+
id:
|
|
2603
|
+
type: string
|
|
2604
|
+
description: Unique identifier of the dependent resource.
|
|
2605
|
+
examples:
|
|
2606
|
+
- 61f92026dd053843b5d72350
|
|
2607
|
+
name:
|
|
2608
|
+
type: string
|
|
2609
|
+
description: Display name of the dependent resource.
|
|
2610
|
+
examples:
|
|
2611
|
+
- Import Orders to NetSuite
|
|
2612
|
+
paths:
|
|
2613
|
+
type: array
|
|
2614
|
+
description: |-
|
|
2615
|
+
Dot-notation paths within the dependent resource that reference
|
|
2616
|
+
the target resource. `[*]` denotes array elements.
|
|
2617
|
+
items:
|
|
2618
|
+
type: string
|
|
2619
|
+
examples:
|
|
2620
|
+
- - hooks.preSavePage._scriptId
|
|
2621
|
+
accessLevel:
|
|
2622
|
+
type: string
|
|
2623
|
+
description: The caller's access level on the dependent resource.
|
|
2624
|
+
examples:
|
|
2625
|
+
- manage
|
|
2626
|
+
dependencyIds:
|
|
2627
|
+
type: object
|
|
2628
|
+
description: |-
|
|
2629
|
+
Map of resource types to arrays of IDs that this dependent
|
|
2630
|
+
resource references on the target. Keys are singular or plural
|
|
2631
|
+
resource type strings; values are arrays of ID strings.
|
|
2632
|
+
additionalProperties:
|
|
2633
|
+
type: array
|
|
2634
|
+
items:
|
|
2635
|
+
type: string
|
|
2636
|
+
example:
|
|
2637
|
+
script:
|
|
2638
|
+
- 64ff4b21612a134bd2f45531
|
|
2639
|
+
required:
|
|
2640
|
+
- id
|
|
2641
|
+
- name
|
|
2642
|
+
- paths
|
|
2643
|
+
- accessLevel
|
|
2644
|
+
- dependencyIds
|
|
2645
|
+
DependencyResponse:
|
|
2646
|
+
type: object
|
|
2647
|
+
description: |
|
|
2648
|
+
Map of dependent-resource types to arrays of dependency entries.
|
|
2649
|
+
Keys are plural resource type strings (e.g. `flows`, `imports`,
|
|
2650
|
+
`connections`). An empty object `{}` means no dependents.
|
|
2651
|
+
additionalProperties:
|
|
2652
|
+
type: array
|
|
2653
|
+
items:
|
|
2654
|
+
$ref: '#/components/schemas/DependencyEntry'
|
|
2655
|
+
example:
|
|
2656
|
+
exports:
|
|
2657
|
+
- id: 64ff4b21612a134bd2f45534
|
|
2658
|
+
name: Bank FTP Export
|
|
2659
|
+
paths:
|
|
2660
|
+
- hooks.preSavePage._scriptId
|
|
2661
|
+
accessLevel: manage
|
|
2662
|
+
dependencyIds:
|
|
2663
|
+
script:
|
|
2664
|
+
- 64ff4b21612a134bd2f45531
|
|
2665
|
+
flows:
|
|
2666
|
+
- id: 64ff4b22612a134bd2f45538
|
|
2667
|
+
name: CAMT-053 to Celigo CAM Format
|
|
2668
|
+
paths:
|
|
2669
|
+
- pageGenerators[*]._exportId
|
|
2670
|
+
accessLevel: manage
|
|
2671
|
+
dependencyIds:
|
|
2672
|
+
export:
|
|
2673
|
+
- 64ff4b21612a134bd2f45534
|
|
2674
|
+
responses:
|
|
2675
|
+
401-unauthorized:
|
|
2676
|
+
description: |-
|
|
2677
|
+
Unauthorized. The request lacks a valid bearer token, or the provided token
|
|
2678
|
+
failed to authenticate.
|
|
2679
|
+
|
|
2680
|
+
Note: the 401 response is produced by the auth middleware **before** the
|
|
2681
|
+
request reaches the endpoint handler, so it does **not** follow the
|
|
2682
|
+
standard `{errors: [...]}` envelope. Instead the body is a bare
|
|
2683
|
+
`{message: string}` object with no `code`, no `errors` array. Callers
|
|
2684
|
+
handling 401s should key off the HTTP status and the `message` string,
|
|
2685
|
+
not try to destructure an `errors[]`.
|
|
2686
|
+
content:
|
|
2687
|
+
application/json:
|
|
2688
|
+
schema:
|
|
2689
|
+
type: object
|
|
2690
|
+
properties:
|
|
2691
|
+
message:
|
|
2692
|
+
type: string
|
|
2693
|
+
description: |-
|
|
2694
|
+
Human-readable description of the auth failure. Known values:
|
|
2695
|
+
- `"Unauthorized"` — no `Authorization` header on the request.
|
|
2696
|
+
- `"Bearer Authentication Failed"` — header present but token
|
|
2697
|
+
is invalid, revoked, or expired.
|
|
2698
|
+
required:
|
|
2699
|
+
- message
|
|
2700
|
+
examples:
|
|
2701
|
+
missing_token:
|
|
2702
|
+
summary: No Authorization header sent
|
|
2703
|
+
value:
|
|
2704
|
+
message: Unauthorized
|
|
2705
|
+
invalid_token:
|
|
2706
|
+
summary: Bearer token invalid or revoked
|
|
2707
|
+
value:
|
|
2708
|
+
message: Bearer Authentication Failed
|
|
2709
|
+
400-bad-request:
|
|
2710
|
+
description: |
|
|
2711
|
+
Bad request. The server could not understand the request because of malformed syntax or invalid parameters.
|
|
2712
|
+
content:
|
|
2713
|
+
application/json:
|
|
2714
|
+
schema:
|
|
2715
|
+
$ref: '#/components/schemas/Error'
|
|
2716
|
+
examples:
|
|
2717
|
+
default:
|
|
2718
|
+
value:
|
|
2719
|
+
errors:
|
|
2720
|
+
- code: invalid_request
|
|
2721
|
+
message: The request body failed validation.
|
|
2722
|
+
422-unprocessable-entity:
|
|
2723
|
+
description: |
|
|
2724
|
+
Unprocessable entity. The request was well-formed but was unable to be followed due to semantic errors.
|
|
2725
|
+
content:
|
|
2726
|
+
application/json:
|
|
2727
|
+
schema:
|
|
2728
|
+
$ref: '#/components/schemas/Error'
|
|
2729
|
+
examples:
|
|
2730
|
+
default:
|
|
2731
|
+
value:
|
|
2732
|
+
errors:
|
|
2733
|
+
- code: unprocessable_entity
|
|
2734
|
+
message: The request could not be processed due to a semantic error.
|
|
2735
|
+
404-not-found:
|
|
2736
|
+
description: |
|
|
2737
|
+
Not found. The requested resource does not exist or is not visible to the caller.
|
|
2738
|
+
content:
|
|
2739
|
+
application/json:
|
|
2740
|
+
schema:
|
|
2741
|
+
$ref: '#/components/schemas/Error'
|
|
2742
|
+
examples:
|
|
2743
|
+
default:
|
|
2744
|
+
value:
|
|
2745
|
+
errors:
|
|
2746
|
+
- code: not_found
|
|
2747
|
+
message: The requested resource was not found.
|
|
2748
|
+
422-dependency-conflict:
|
|
2749
|
+
description: |-
|
|
2750
|
+
The resource has dependents that must be deleted first. Each entry
|
|
2751
|
+
in the `errors` array names one blocking resource.
|
|
2752
|
+
content:
|
|
2753
|
+
application/json:
|
|
2754
|
+
schema:
|
|
2755
|
+
$ref: '#/components/schemas/Error'
|
|
2756
|
+
examples:
|
|
2757
|
+
default:
|
|
2758
|
+
value:
|
|
2759
|
+
errors:
|
|
2760
|
+
- code: dependencies_not_deleted
|
|
2761
|
+
message: export 6902d88c10b42b2eaac9b2a1 must be deleted before you can delete connection 6398ddf316be761fb16a6523
|
|
2762
|
+
x-enable-proxy: true
|
|
2763
|
+
x-internal: false
|