@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.
Files changed (48) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +119 -0
  3. package/dist/account.yml +592 -0
  4. package/dist/agent.yml +908 -0
  5. package/dist/ai-agent.yml +5471 -0
  6. package/dist/api.yml +4140 -0
  7. package/dist/apim.yml +1286 -0
  8. package/dist/asynchelper.yml +3391 -0
  9. package/dist/audit.yml +2006 -0
  10. package/dist/connection.yml +8665 -0
  11. package/dist/connector.yml +1406 -0
  12. package/dist/ediprofile.yml +911 -0
  13. package/dist/editransaction.yml +1210 -0
  14. package/dist/enduser.yml +1724 -0
  15. package/dist/environment.yml +568 -0
  16. package/dist/eventreport.yml +692 -0
  17. package/dist/export.yml +17610 -0
  18. package/dist/filedefinition.yml +1396 -0
  19. package/dist/filestorage.yml +3102 -0
  20. package/dist/flow.yml +7928 -0
  21. package/dist/guardrail.yml +2763 -0
  22. package/dist/httpconnector.yml +2277 -0
  23. package/dist/httpconnectorendpoint.yml +722 -0
  24. package/dist/httpconnectorresource.yml +396 -0
  25. package/dist/iclient.yml +4452 -0
  26. package/dist/import.yml +15381 -0
  27. package/dist/integration.yml +4406 -0
  28. package/dist/job.yml +2014 -0
  29. package/dist/lookupcache.yml +1325 -0
  30. package/dist/marketplace.yml +685 -0
  31. package/dist/mcp-oauth-provider.yml +590 -0
  32. package/dist/mcp-server.yml +2656 -0
  33. package/dist/notification.yml +488 -0
  34. package/dist/processor.yml +1253 -0
  35. package/dist/profile.yml +455 -0
  36. package/dist/recyclebin.yml +768 -0
  37. package/dist/script.yml +1128 -0
  38. package/dist/stack.yml +1291 -0
  39. package/dist/state.yml +894 -0
  40. package/dist/subscription.yml +1405 -0
  41. package/dist/sync.yml +4857 -0
  42. package/dist/tag.yml +553 -0
  43. package/dist/template.yml +897 -0
  44. package/dist/tool.yml +33656 -0
  45. package/dist/tradingpartnerconnector.yml +1490 -0
  46. package/dist/user.yml +831 -0
  47. package/package.json +41 -0
  48. 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