@celigo/api-specs 0.2.205 → 0.2.207

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/import.yml CHANGED
@@ -8567,9 +8567,23 @@ components:
8567
8567
  description: |-
8568
8568
  Tool resource this import executes. The tool supplies the input schema, routing, page
8569
8569
  processors, and output mapping; the import runs that tool when records reach it. Required —
8570
- a `ToolImport` has no behavior without a tool to run.
8570
+ a `ToolImport` has no behavior without a tool to run. Saving the import fails with 422 when the
8571
+ tool has no routers, a step still being set up, or a branch that does not merge back; the
8572
+ message names the tool.
8571
8573
  x-celigo-ai-guidance:
8572
8574
  - Reference to the Celigo Tool resource this wrapper invokes.
8575
+ - |-
8576
+ Finish the tool before saving its wrapper: a create or update of this import fails with 422
8577
+ tool_empty_router when the tool has no `routers` (missing or empty; the message reads "…has
8578
+ no steps. Add at least one step to the tool, then save again."), router_setup_in_progress
8579
+ when a step is still being set up (setupInProgress), and tool_dangling_branch when a branch
8580
+ has no nextRouterId ("outputRouter" ends the tool). Fix the tool with PUT /v1/tools/{_id},
8581
+ then save the import again.
8582
+ - |-
8583
+ A save that passes doesn't mean the tool runs: a branch with empty `pageProcessors` passes
8584
+ it, and the tool then fails at invoke with 400 tool_empty_router. Creating a parent tool, or
8585
+ a disabled flow, whose step is this wrapper is not checked either: both saved while the
8586
+ wrapped tool had no routers.
8573
8587
  - |-
8574
8588
  Required.
8575
8589
  The Tool must already exist;
@@ -8973,16 +8987,20 @@ components:
8973
8987
  The `key` + `batchSize` combination has not been probed (it needs a B2B Manager
8974
8988
  account) — treat it as unverified, neither allowed nor forbidden.
8975
8989
  encrypt:
8976
- type: boolean
8990
+ type: string
8991
+ enum:
8992
+ - pgp
8993
+ x-enumDescriptions:
8994
+ pgp: Encrypt the file with PGP before it is written.
8977
8995
  description: |-
8978
- Whether to encrypt the output file.
8979
-
8980
- **Values**
8981
- - `true`: Encrypt the file (requires PGP configuration)
8982
- - `false`: No encryption
8983
-
8984
- **Default:** `false`
8985
- default: false
8996
+ Encrypts the output file; omit it for an unencrypted file. `pgp` requires
8997
+ `pgp.symmetricKeyAlgorithm` and a connection holding the recipient's public key
8998
+ (`pgp.publicKey`) — without either the save fails with 422 `missing_required_field`.
8999
+ The public-key check runs first: on a connection without one, any `encrypt` value,
9000
+ `false` included, fails with 422 `missing_required_field` "pgp publicKey is required
9001
+ when encrypt is selected to perform file encryption." before the value is checked.
9002
+ Blob (file-transfer) imports follow the same rule and return `encrypt` and `pgp` even
9003
+ without `file.type`.
8986
9004
  csv:
8987
9005
  type: object
8988
9006
  description: CSV-specific configuration. Only used when `type` is `"csv"`.
@@ -9149,8 +9167,8 @@ components:
9149
9167
  pgp:
9150
9168
  type: object
9151
9169
  description: |-
9152
- PGP encryption settings applied when encrypt is true; selects the symmetric cipher and the
9153
- signing hash. The connection must hold the recipient's public key.
9170
+ PGP encryption settings applied when `encrypt` is `pgp`; selects the symmetric cipher and
9171
+ the signing hash. The connection must hold the recipient's public key.
9154
9172
  properties:
9155
9173
  symmetricKeyAlgorithm:
9156
9174
  type: string
@@ -9167,9 +9185,10 @@ components:
9167
9185
  3des: Triple DES block cipher (legacy).
9168
9186
  aes128: AES with a 128-bit key.
9169
9187
  aes192: AES with a 192-bit key.
9170
- aes256: AES with a 256-bit key (default, recommended).
9171
- default: aes256
9172
- description: Symmetric cipher used to encrypt the file body; aes256 unless the recipient requires another.
9188
+ aes256: AES with a 256-bit key (recommended).
9189
+ description: |-
9190
+ Symmetric cipher used to encrypt the file body; required when `encrypt` is `pgp` (no
9191
+ server default). Use aes256 unless the recipient requires another.
9173
9192
  examples:
9174
9193
  - aes256
9175
9194
  - 3des
@@ -18086,8 +18105,9 @@ components:
18086
18105
  type: object
18087
18106
  description: |-
18088
18107
  The outcome of running one input record through an import — one element
18089
- per record, in input order — shared by `POST /v1/imports/{_id}/invoke`
18090
- and the virtual import `POST /v1/connections/{_id}/import`. A record the
18108
+ per record, in input order — shared by `POST /v1/imports/{_id}/invoke`,
18109
+ the virtual import `POST /v1/connections/{_id}/import` and its
18110
+ integration-scoped forms. A record the
18091
18111
  import itself ignored before any request carries `ignored: true` and the
18092
18112
  `stage` that dropped it; a record the destination accepted carries its
18093
18113
  parsed response; a record the destination rejected — or that the
@@ -3874,7 +3874,7 @@ components:
3874
3874
  description: |-
3875
3875
  Required label for the limit, echoed verbatim in the 429 error message
3876
3876
  that rejected clients receive — name it the way consumers should read
3877
- it. A missing or empty name is rejected with 422.
3877
+ it. A missing or empty name is rejected with 422 `missing_required_field`.
3878
3878
  examples:
3879
3879
  - Server-level rate limit
3880
3880
  - Per-user rate limit
@@ -5280,10 +5280,12 @@ components:
5280
5280
  `targetConcurrencyLevel`. While true, `targetConcurrencyLevel` is the throughput lever: a
5281
5281
  `concurrencyLevel` sent in a PUT is ignored, and one sent in a PATCH is stored but the
5282
5282
  recovery machinery moves it back toward the target. Recovery never runs on `ftp`
5283
- connections: FTP errors aren't treated as rate limits.
5283
+ connections: FTP errors aren't treated as rate limits. A rate limit hit by a Tool
5284
+ invocation (`POST /v1/tools/{_id}/invoke`) or an export preview
5285
+ (`POST /v1/exports/preview`) leaves the connection's concurrency as it is.
5284
5286
  x-celigo-ai-guidance:
5285
5287
  - To change throughput while this is true, write `targetConcurrencyLevel`; a `concurrencyLevel` sent in a PUT returns 200 and changes nothing.
5286
- - Turning it on copies `concurrencyLevel` into `targetConcurrencyLevel`; turning it off unsets the target and leaves `concurrencyLevel` at its current value, which may be below the old target if a recovery was in progress. A `targetConcurrencyLevel` written while this is false is unset by the save.
5288
+ - Turning it on copies `concurrencyLevel` into `targetConcurrencyLevel`; turning it off unsets the target and leaves `concurrencyLevel` at its current value, which may be below the old target if a recovery was in progress. A `targetConcurrencyLevel` sent on a create that sets this false, or with the write that turns this off, is dropped; on a connection where this is already false, writing one fails with 422 `invalid_concurrency_level`.
5287
5289
  - These four settings (`concurrencyLevel`, `targetConcurrencyLevel`, `_borrowConcurrencyFromConnectionId`, this flag) accept a credential-free `PATCH /v1/connections/{_id}`. A PUT replaces the whole document, so send each secret back as its masked `******` value (that keeps it) or as a new value, and never drop one to keep it — an omitted password or `http.encrypted` is cleared, and a static token left out (with no `refreshMethod`) fails the PUT with 422.
5288
5290
  - On a create, while this is true, set the level with `targetConcurrencyLevel`: on `http`, `ftp`, `rdbms` and `mongodb` connections the save stores the target sent, or the adaptor's default without one (1 for `ftp`, 5 for `rdbms` and `mongodb`, 25 for `http` where the license's `concurrency` is at least 25), as both fields, whatever `concurrencyLevel` the body carried. A create that sends this as `false` keeps its `concurrencyLevel`.
5289
5291
  - On an `ftp` connection recovery never runs, and transfer threads are `ftp.multiThreadCount`.
@@ -5920,8 +5922,10 @@ components:
5920
5922
  While `autoRecoverRateLimitErrors` is true, a create sets `concurrencyLevel` to this value, and a
5921
5923
  create that omits it gets 1 for both. Auto-recovery never runs on FTP connections (FTP errors
5922
5924
  aren't treated as rate limits), so nothing climbs back to it.
5923
- Kept on a `PUT` that omits it, like `concurrencyLevel`; unset by the save while
5924
- `autoRecoverRateLimitErrors` is false.
5925
+ Kept on a `PUT` that omits it, like `concurrencyLevel`. A create that sends
5926
+ `autoRecoverRateLimitErrors` false, or a write that turns it off, drops it; on a connection
5927
+ where the flag is already false, sending it fails with 422 `invalid_concurrency_level`
5928
+ ("cannot be set when autoRecoverRateLimitErrors is false").
5925
5929
  minimum: 1
5926
5930
  maximum: 50
5927
5931
  examples:
@@ -6662,9 +6666,10 @@ components:
6662
6666
  Higher values increase throughput but may trigger API rate limits.
6663
6667
  Set this based on the target API's rate limit documentation.
6664
6668
  Send no more than the account's licensed maximum (25 standard, 50 with an Environments license).
6665
- A decimal is rejected with 422 `invalid_field_value` on every write (the same rule applies to every
6666
- adaptor's `concurrencyLevel` and `targetConcurrencyLevel`, and to `ftp.multiThreadCount`).
6667
- Platform-managed while `autoRecoverRateLimitErrors` is true — a create or PUT ignores the value (a create without `targetConcurrencyLevel` stores 25 where the license's `concurrency` is at least 25) and the recovery machinery moves it toward the target; set `targetConcurrencyLevel` instead.
6669
+ A create, a PATCH, and a PUT while `autoRecoverRateLimitErrors` is false reject a decimal with 422
6670
+ `invalid_field_value` and a boolean or a non-numeric string with 422 `invalid_concurrency_level`
6671
+ ("must be an integer").
6672
+ Platform-managed while `autoRecoverRateLimitErrors` is true — a create still checks the value but stores the target in its place (25 without a `targetConcurrencyLevel`, where the license's `concurrency` is at least 25), a PUT ignores it without checking it, and the recovery machinery moves it toward the target; set `targetConcurrencyLevel` instead.
6668
6673
  At level 1 an import's pages run one at a time, so a record's existence lookup and write finish before the next record's start (measured on a single import); the import's `idLockTemplate` serializes only same-key records and leaves the rest parallel.
6669
6674
  minimum: 1
6670
6675
  maximum: 50
@@ -6677,7 +6682,9 @@ components:
6677
6682
  Ceiling the platform climbs back to after rate-limit recovery, in steps of 25% of this value.
6678
6683
  Writing it also sets `concurrencyLevel` to the same value and stops any recovery in progress.
6679
6684
 
6680
- Honored only while `autoRecoverRateLimitErrors` is true; ignored, and unset, when it is false.
6685
+ Honored only while `autoRecoverRateLimitErrors` is true. A create that sends the flag as false, or a
6686
+ write that turns it off, drops it; on a connection where the flag is already false, sending it fails with 422
6687
+ `invalid_concurrency_level` ("cannot be set when autoRecoverRateLimitErrors is false").
6681
6688
  minimum: 1
6682
6689
  maximum: 50
6683
6690
  examples:
@@ -7448,6 +7455,26 @@ components:
7448
7455
  examples:
7449
7456
  - - rate_limit_exceeded
7450
7457
  - too_many_requests
7458
+ failHeaders:
7459
+ type: array
7460
+ description: |
7461
+ Response-header rules for detecting rate limiting, each a header `name` with an
7462
+ optional `value`. A rule with an empty `name` fails the save with 422
7463
+ `invalid_header_format`.
7464
+ items:
7465
+ type: object
7466
+ required:
7467
+ - name
7468
+ properties:
7469
+ name:
7470
+ type: string
7471
+ description: Response header the rule checks.
7472
+ value:
7473
+ type: string
7474
+ description: Header value the rule checks; omit to check the header alone.
7475
+ examples:
7476
+ - - name: X-RateLimit-Remaining
7477
+ value: '0'
7451
7478
  limit:
7452
7479
  type: number
7453
7480
  minimum: 1
package/dist/sync.yml CHANGED
@@ -654,6 +654,17 @@ paths:
654
654
  type: string
655
655
  examples:
656
656
  - WyJBY2NvdW50IiwiNmE1NTk3MGM1Zjk0OThhMTc1OGEwYWQzIl0
657
+ - name: enable
658
+ in: query
659
+ required: false
660
+ description: |-
661
+ When true, returns only enabled datasets; when false, only disabled ones. Omit to
662
+ return both. Only the lowercase strings `true` and `false` are accepted; any other
663
+ value fails with `400 invalid_query_param`.
664
+ schema:
665
+ type: boolean
666
+ examples:
667
+ - true
657
668
  - $ref: '#/components/parameters/Include'
658
669
  - $ref: '#/components/parameters/Exclude'
659
670
  responses:
@@ -723,7 +734,24 @@ paths:
723
734
  children: []
724
735
  mismatchSyncConnection: true
725
736
  '204':
726
- description: The sync has no datasets, or the sync does not exist.
737
+ description: |-
738
+ The sync has no datasets (none matching `enable`, when it is sent), or the sync
739
+ does not exist.
740
+ '400':
741
+ description: |-
742
+ `enable` is something other than `true` or `false` (`invalid_query_param`). The
743
+ value is checked before the sync is looked up.
744
+ content:
745
+ application/json:
746
+ schema:
747
+ $ref: '#/components/schemas/Error'
748
+ examples:
749
+ invalid_enable:
750
+ summary: enable=yes
751
+ value:
752
+ errors:
753
+ - code: invalid_query_param
754
+ message: The query parameter "enable" has invalid value.
727
755
  '401':
728
756
  $ref: '#/components/responses/401-unauthorized'
729
757
  '422':
@@ -2678,7 +2706,8 @@ paths:
2678
2706
  data warehouse a sync loads records into. A sync's destination application is the type of
2679
2707
  its destination connection (`rdbms.type` for warehouse connections), which must match one
2680
2708
  of the returned ids. Identifiers include `snowflake` (Snowflake), `nsaw` (NetSuite
2681
- Analytics Warehouse), `bigquery` (Google BigQuery), and `mssql` (Microsoft SQL Server).
2709
+ Analytics Warehouse), `bigquery` (Google BigQuery), `mssql` (Microsoft SQL Server), and
2710
+ `redshift` (Amazon Redshift).
2682
2711
  tags:
2683
2712
  - Syncs
2684
2713
  operationId: listSyncDestinations
@@ -2706,6 +2735,7 @@ paths:
2706
2735
  - id: bigquery
2707
2736
  - id: mssql
2708
2737
  - id: nsaw
2738
+ - id: redshift
2709
2739
  - id: snowflake
2710
2740
  '401':
2711
2741
  $ref: '#/components/responses/401-unauthorized'
@@ -2837,6 +2867,27 @@ paths:
2837
2867
  description: Adaptor the export runs on (e.g. `SalesforceExport`).
2838
2868
  examples:
2839
2869
  - SalesforceExport
2870
+ exportDocProperties:
2871
+ type: object
2872
+ description: |-
2873
+ Extraction behavior read from the export resource. Use `exportType`
2874
+ rather than `type`, which is absent for exports that extract every record.
2875
+ required:
2876
+ - exportType
2877
+ properties:
2878
+ exportType:
2879
+ type: string
2880
+ enum:
2881
+ - all
2882
+ - delta
2883
+ description: |-
2884
+ Whether the export extracts every record or only changed records.
2885
+ `delta` when the export's `type` is `delta`; `all` otherwise.
2886
+ x-enumDescriptions:
2887
+ all: The export extracts every record on every run.
2888
+ delta: The export extracts only records changed since its previous run.
2889
+ examples:
2890
+ - delta
2840
2891
  examples:
2841
2892
  default:
2842
2893
  value:
@@ -2850,6 +2901,8 @@ paths:
2850
2901
  _id: 6a3e7c54c2387aaa87881b80
2851
2902
  type: delta
2852
2903
  adaptorType: SalesforceExport
2904
+ exportDocProperties:
2905
+ exportType: delta
2853
2906
  '400':
2854
2907
  description: |-
2855
2908
  Bad request. The connection id is not a valid id, or `type` is not one of the
@@ -3465,6 +3518,28 @@ paths:
3465
3518
  description: Number of enabled fields.
3466
3519
  examples:
3467
3520
  - 16
3521
+ exportDocProperties:
3522
+ type: object
3523
+ description: |-
3524
+ Extraction behavior read from the export resource itself, not from the
3525
+ saved dataset. Absent on entries whose export is no longer among the
3526
+ source connection's exports.
3527
+ required:
3528
+ - exportType
3529
+ properties:
3530
+ exportType:
3531
+ type: string
3532
+ enum:
3533
+ - all
3534
+ - delta
3535
+ description: |-
3536
+ Whether the export extracts every record or only changed records.
3537
+ `delta` when the export's `type` is `delta`; `all` otherwise.
3538
+ x-enumDescriptions:
3539
+ all: The export extracts every record on every run.
3540
+ delta: The export extracts only records changed since its previous run.
3541
+ examples:
3542
+ - delta
3468
3543
  examples:
3469
3544
  merged:
3470
3545
  summary: Saved and unsaved entries side by side
@@ -3499,6 +3574,8 @@ paths:
3499
3574
  userActionRequired: false
3500
3575
  totalFieldCount: 16
3501
3576
  selectedFieldCount: 16
3577
+ exportDocProperties:
3578
+ exportType: delta
3502
3579
  '400':
3503
3580
  $ref: '#/components/responses/400-bad-request'
3504
3581
  '401':
@@ -3821,7 +3898,17 @@ components:
3821
3898
  configured. Choose `ignore` to keep the replicated set fixed and add new
3822
3899
  tables manually. A sync created through the API starts at `ignore`, and a PUT
3823
3900
  that omits `driftPolicy` or sends an empty `dataset` object keeps the stored
3824
- value, so moving back from `automate` takes an explicit `ignore`.
3901
+ value, so moving back from `automate` takes an explicit `ignore`. `automate` is
3902
+ kept only for object-mode sources: Salesforce, NetSuite, NetSuite JDBC, and HTTP
3903
+ connector connections whose connector, API and version match an entry in
3904
+ `GET /v1/di/metadata/sources`. For any other source a POST or PUT stores `ignore`.
3905
+ x-celigo-ai-guidance:
3906
+ - |-
3907
+ On a source that is not object-mode (a plain HTTP connection, or an HTTP connector
3908
+ connection that matches no GET /v1/di/metadata/sources entry), a save with
3909
+ dataset.added automate still succeeds (201 on POST, 200 on PUT) but stores ignore.
3910
+ Read the sync back rather than assuming automate took, and tell the user new tables
3911
+ must be enabled by hand.
3825
3912
  x-enumDescriptions:
3826
3913
  automate: Automatically add newly discovered tables to the sync and start replicating them.
3827
3914
  ignore: Leave newly discovered tables out of the sync until a user enables them.
@@ -3963,7 +4050,7 @@ components:
3963
4050
  x-celigo-refModel: connections
3964
4051
  description: |-
3965
4052
  Connection to the destination warehouse. Its application (`rdbms.type` such as
3966
- `snowflake`, `bigquery` or `mssql`, or a NetSuite Analytics Warehouse JDBC
4053
+ `snowflake`, `bigquery`, `mssql` or `redshift`, or a NetSuite Analytics Warehouse JDBC
3967
4054
  connection) is one of the ids returned by `GET /v1/di/metadata/destinations`.
3968
4055
  examples:
3969
4056
  - 68d02dbe0839a514623c1d6d
@@ -4160,7 +4247,10 @@ components:
4160
4247
  dataset. A `database` and `schema` pair, in any letter case, can back only one sync,
4161
4248
  even across integrations (`422 duplicate_destination_host`, "Duplicate destination host found"). All syncs in
4162
4249
  an integration must target the same destination application type, and a sync's
4163
- destination type can't change once saved.
4250
+ destination type can't change once saved. An Amazon Redshift destination is checked
4251
+ on every save that sends `_connectionId`: a missing `database` or `schema` fails with
4252
+ 422 `invalid_destination_sync_config` ("Redshift database is required on sync
4253
+ destination" / "Redshift schema is required on sync destination").
4164
4254
  x-celigo-ai-guidance:
4165
4255
  - |-
4166
4256
  Send the block complete or not at all. A partial block is rejected in the destination's
@@ -4174,9 +4264,9 @@ components:
4174
4264
  Saving a complete destination connects to the warehouse to create the schema
4175
4265
  (dataset) when it is missing. When the host resolves but the connection fails, or
4176
4266
  the credentials are unusable, the save fails with the connection's error — 422
4177
- `invalid_host` for SQL Server, `big_query_unexpected_error` for BigQuery — and no
4178
- sync document is created or updated; fix the connection rather than changing
4179
- database or schema names.
4267
+ `invalid_host` for SQL Server, `big_query_unexpected_error` for BigQuery,
4268
+ `redshift_auth_fail` for Amazon Redshift — and no sync document is created or
4269
+ updated; fix the connection rather than changing database or schema names.
4180
4270
  - |-
4181
4271
  A destination host that doesn't resolve can leave the save without a response for
4182
4272
  more than 30 seconds, with nothing saved (seen on SQL Server and Snowflake
@@ -4204,7 +4294,7 @@ components:
4204
4294
  x-celigo-refModel: connections
4205
4295
  description: |-
4206
4296
  Connection to the destination warehouse. Its application (`rdbms.type` such as
4207
- `snowflake`, `bigquery` or `mssql`, or a NetSuite Analytics Warehouse JDBC
4297
+ `snowflake`, `bigquery`, `mssql` or `redshift`, or a NetSuite Analytics Warehouse JDBC
4208
4298
  connection) must be one of the ids returned by `GET /v1/di/metadata/destinations`;
4209
4299
  any other connection fails with `422 invalid_destination_type`.
4210
4300
  examples:
@@ -4214,7 +4304,8 @@ components:
4214
4304
  description: |-
4215
4305
  Database in the destination warehouse the sync loads into; it must already exist.
4216
4306
  For Google BigQuery this is the GCP project id the tables are created in
4217
- (`project.dataset.table`).
4307
+ (`project.dataset.table`). For Amazon Redshift it must be an unquoted identifier,
4308
+ under the same rule as `schema`.
4218
4309
  x-celigo-ui-override: For a BigQuery destination the Create Sync wizard shows no database picker and fills this field with the selected connection's rdbms.bigquery.projectId.
4219
4310
  examples:
4220
4311
  - ANALYTICS_DB
@@ -4223,7 +4314,10 @@ components:
4223
4314
  description: |-
4224
4315
  Schema within `database` where the sync creates and loads tables; created on save
4225
4316
  when it does not exist. For Google BigQuery this is the dataset name, with case
4226
- preserved.
4317
+ preserved. For Amazon Redshift it must start with a letter or underscore, contain
4318
+ only letters, digits and underscores, stay within 127 bytes, and carry no leading
4319
+ or trailing whitespace; anything else fails with 422 `invalid_destination_sync_config`
4320
+ (for example "Redshift schema contains invalid identifier characters").
4227
4321
  x-celigo-ui-override: For a BigQuery destination the Create Sync wizard labels this field "dataset" and accepts only letters, digits and underscore (no $), starting with a letter or underscore, at most 1024 characters; Snowflake and NSAW validation is unchanged.
4228
4322
  examples:
4229
4323
  - salesforce_raw