@celigo/api-specs 0.2.153 → 0.2.155

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/ai-agent.yml CHANGED
@@ -2296,9 +2296,8 @@ components:
2296
2296
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
2297
2297
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
2298
2298
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
2299
- - Two structural blanks: the inner array item of an array of arrays (it has no field name),
2300
- and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
2301
- structure — see the array's description). A child-bearing wrapper and a source-only row that
2299
+ - One structural blank: the single top-level `objectarray` item of a `rows [ ]` mapping (the
2300
+ array output structure — see the array's description). A child-bearing wrapper and a source-only row that
2302
2301
  already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
2303
2302
  name changes the output; it does not complete the row
2304
2303
 
@@ -2315,7 +2314,9 @@ components:
2315
2314
  }
2316
2315
  ```
2317
2316
 
2318
- When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
2317
+ When parsing existing mappings, an empty `generate` on a row inside an `arrayarray` row's
2318
+ `buildArrayHelper` entry is that row's inner array (`arrayarray` fails at run time; see
2319
+ `dataType`); other unnamed rows are the wrappers and source-only rows described above; an
2319
2320
  empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
2320
2321
  structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
2321
2322
  examples:
@@ -2349,17 +2350,25 @@ components:
2349
2350
  - `numberarray`: Array of numbers
2350
2351
  - `booleanarray`: Array of booleans
2351
2352
  - `objectarray`: Array of objects (most common array type)
2352
- - `arrayarray`: Array of arrays (for matrix/table structures)
2353
2353
 
2354
- Array dataTypes can be populated three ways: pass a source array
2355
- through unchanged via a JSONPath `extract` alone (when the source is
2356
- already an array of the right shape), construct/iterate via
2357
- `buildArrayHelper`, or set a constant with `hardCodedValue`.
2354
+ `arrayarray` is not a type the mapper recognizes: a save accepts it, but every record
2355
+ then fails with `Destination datatype is a required field.` Build an array of arrays
2356
+ in a script hook instead.
2357
+
2358
+ Array dataTypes are populated two ways: construct or iterate through
2359
+ `buildArrayHelper` entries, or set a constant with `hardCodedValue`. The
2360
+ row's own `extract` is never read on an array type: a primitive-array row
2361
+ that has only an `extract` (JSONPath, Handlebars or a literal) yields
2362
+ nothing, with no error, and an `objectarray` row without `buildArrayHelper`
2363
+ or `hardCodedValue` is refused with 422 ("buildArrayHelper" or
2364
+ "hardCodedValue" must be present for object array datatype.). To copy a
2365
+ source array through unchanged, use one entry that iterates it
2366
+ (`buildArrayHelper: [{"extract": "$.items[*]"}]`).
2358
2367
 
2359
2368
  IMPORTANT: The dataType controls which additional fields are relevant:
2360
2369
  - For date-like string fields: extractDateFormat, generateDateFormat, etc. become relevant
2361
2370
  - For object types: 'mappings' array becomes relevant
2362
- - For array types: a JSONPath `extract` alone, `buildArrayHelper`, or `hardCodedValue` (see above)
2371
+ - For array types: `buildArrayHelper` or `hardCodedValue` (see above)
2363
2372
 
2364
2373
  When analyzing existing mappings or generating new ones, always check dataType first
2365
2374
  to understand what additional fields should be present.
@@ -2378,7 +2387,6 @@ components:
2378
2387
  - numberarray
2379
2388
  - booleanarray
2380
2389
  - objectarray
2381
- - arrayarray
2382
2390
  x-enumDescriptions:
2383
2391
  string: Text values; converts other types to their string representation.
2384
2392
  number: Numeric values; attempts conversion from strings.
@@ -2388,7 +2396,6 @@ components:
2388
2396
  numberarray: Array of numeric values.
2389
2397
  booleanarray: Array of boolean values.
2390
2398
  objectarray: Array of objects, the most common array type.
2391
- arrayarray: Array of arrays, used for matrix or table structures.
2392
2399
  examples:
2393
2400
  - string
2394
2401
  - number
@@ -2431,9 +2438,10 @@ components:
2431
2438
  - Valid on scalars and on `object` rows, where the rendered output must
2432
2439
  parse into an object. On an array row the template goes in a
2433
2440
  `buildArrayHelper` entry instead: on an `objectarray` row's own
2434
- `extract` it is refused with 422 ("buildArrayHelper" must be present
2435
- for object array datatype), and on a primitive-array row's own
2436
- `extract` it renders null without an error
2441
+ `extract` it is refused with 422 ("buildArrayHelper" or "hardCodedValue"
2442
+ must be present for object array datatype.), and on a primitive-array
2443
+ row's own `extract` it yields nothing (the field is left out) without an
2444
+ error
2437
2445
 
2438
2446
  ```json
2439
2447
  "extract": "{{record.price}} {{record.currency}}" // Combines two fields
@@ -2575,8 +2583,10 @@ components:
2575
2583
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
2576
2584
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
2577
2585
  action). Omitting the key entirely means no fallback — the field is left out of the
2578
- output when the extract is empty (the UI's "Do nothing" action). Failing the record
2579
- instead is `conditional.when: fail_record_when_empty`, which excludes a default.
2586
+ output when the extract is missing or an empty string (the UI's "Do nothing" action),
2587
+ while a null source is still written as null unless `conditional.when` is
2588
+ `extract_not_empty`. Failing the record instead is `conditional.when:
2589
+ fail_record_when_empty`, which excludes a default.
2580
2590
  x-celigo-ai-guidance:
2581
2591
  - |-
2582
2592
  `"default": null` and `"default": ""` are distinct saved values, not
@@ -2584,11 +2594,14 @@ components:
2584
2594
  empty string renders it as `""` when the extract yields nothing.
2585
2595
  Preserve them verbatim when editing or migrating a mapping — dropping
2586
2596
  the key changes runtime behavior from "use null/empty string as
2587
- default value" to "do nothing" (field omitted from the output).
2597
+ default value" to "do nothing" (a missing or `""` source is left out
2598
+ of the output, while a null source is written as null unless
2599
+ `conditional.when` is `extract_not_empty`).
2588
2600
  - |-
2589
2601
  The four "Action to take if source field has no value" choices map to:
2590
- do nothing → no `default` key (optionally `conditional.when:
2591
- extract_not_empty`); use null → `"default": null`; use empty string or
2602
+ do nothing → no `default` key (add `conditional.when:
2603
+ extract_not_empty` to leave a null source out too; without it a null
2604
+ source is written as null); use null → `"default": null`; use empty string or
2592
2605
  a custom value → `"default": "<value>"`; cause the record to fail →
2593
2606
  `conditional.when: fail_record_when_empty` with no `default` key.
2594
2607
  examples:
@@ -2803,8 +2816,7 @@ components:
2803
2816
 
2804
2817
  **When to Use**
2805
2818
  - REQUIRED when dataType ends with "array" (stringarray, objectarray, etc.), unless the
2806
- row passes a source array through with a JSONPath `extract` alone or sets
2807
- `hardCodedValue`
2819
+ row sets `hardCodedValue`: an array row's own `extract` is never read (see `dataType`)
2808
2820
  - Each entry in this array contributes elements to the output array
2809
2821
  - Multiple entries allow combining data from different input arrays
2810
2822
 
@@ -2888,28 +2900,10 @@ components:
2888
2900
  }
2889
2901
  ```
2890
2902
 
2891
- **For Arrays of Arrays (arrayarray)**
2892
- - Similar to objectarray, but inner arrays have empty 'generate' fields
2893
- - Used for matrix/table structures
2894
- ```json
2895
- {
2896
- "generate": "matrix",
2897
- "dataType": "arrayarray",
2898
- "buildArrayHelper": [
2899
- {
2900
- "extract": "$.rows[*]", // For each row in the rows array
2901
- "mappings": [
2902
- {
2903
- "dataType": "numberarray", // Note: No generate field for inner arrays
2904
- "buildArrayHelper": [
2905
- {"extract": "$.rows.columns[*]"} // Notice: "rows" is singular in the composite object
2906
- ]
2907
- }
2908
- ]
2909
- }
2910
- ]
2911
- }
2912
- ```
2903
+ **Arrays of Arrays**
2904
+ - The mapper has no working type for them: `arrayarray` saves, but every record
2905
+ fails with `Destination datatype is a required field.` Build an array of arrays
2906
+ in a script hook instead.
2913
2907
 
2914
2908
  **Important details**
2915
2909
 
@@ -3327,8 +3321,8 @@ components:
3327
3321
  nature is essential for building effective mappings:
3328
3322
 
3329
3323
  1. The schema is self-referential by design - a mapping can contain nested mappings of the same structure
3330
- 2. Complex data structures (nested objects, arrays of objects, arrays of arrays of objects) are ALL
3331
- handled through this recursive pattern
3324
+ 2. Complex data structures (nested objects and arrays of objects, to any depth) are ALL
3325
+ handled through this recursive pattern; an array of arrays is not (build one in a script hook)
3332
3326
  3. Each mapping handles one level of the data structure; deeper levels are handled by nested mappings
3333
3327
 
3334
3328
  When generating mappings programmatically:
@@ -3382,9 +3376,8 @@ components:
3382
3376
  - For regular fields: Set to the exact property name (e.g., "firstName", "price", "isActive")
3383
3377
  - For object fields: Set to the object property name, then add child mappings in the 'mappings' array
3384
3378
  - For array fields: Set to the array property name, then configure 'buildArrayHelper'
3385
- - Two structural blanks: the inner array item of an array of arrays (it has no field name),
3386
- and the single top-level `objectarray` item of a `rows [ ]` mapping (the array output
3387
- structure — see the array's description). A child-bearing wrapper and a source-only row that
3379
+ - One structural blank: the single top-level `objectarray` item of a `rows [ ]` mapping (the
3380
+ array output structure — see the array's description). A child-bearing wrapper and a source-only row that
3388
3381
  already exist in a saved document also stay unnamed when the tree is re-sent — filling in a
3389
3382
  name changes the output; it does not complete the row
3390
3383
 
@@ -3401,7 +3394,9 @@ components:
3401
3394
  }
3402
3395
  ```
3403
3396
 
3404
- When parsing existing mappings, an empty `generate` inside a parent array is an inner array; an
3397
+ When parsing existing mappings, an empty `generate` on a row inside an `arrayarray` row's
3398
+ `buildArrayHelper` entry is that row's inner array (`arrayarray` fails at run time; see
3399
+ `dataType`); other unnamed rows are the wrappers and source-only rows described above; an
3405
3400
  empty `generate` on the ONLY top-level item, with `dataType: objectarray`, is the `rows [ ]` JSON
3406
3401
  structure — array output, bound as `rows` in templates — and is intentional, not a missing name.
3407
3402
  examples:
@@ -3435,17 +3430,25 @@ components:
3435
3430
  - `numberarray`: Array of numbers
3436
3431
  - `booleanarray`: Array of booleans
3437
3432
  - `objectarray`: Array of objects (most common array type)
3438
- - `arrayarray`: Array of arrays (for matrix/table structures)
3439
3433
 
3440
- Array dataTypes can be populated three ways: pass a source array
3441
- through unchanged via a JSONPath `extract` alone (when the source is
3442
- already an array of the right shape), construct/iterate via
3443
- `buildArrayHelper`, or set a constant with `hardCodedValue`.
3434
+ `arrayarray` is not a type the mapper recognizes: a save accepts it, but every record
3435
+ then fails with `Destination datatype is a required field.` Build an array of arrays
3436
+ in a script hook instead.
3437
+
3438
+ Array dataTypes are populated two ways: construct or iterate through
3439
+ `buildArrayHelper` entries, or set a constant with `hardCodedValue`. The
3440
+ row's own `extract` is never read on an array type: a primitive-array row
3441
+ that has only an `extract` (JSONPath, Handlebars or a literal) yields
3442
+ nothing, with no error, and an `objectarray` row without `buildArrayHelper`
3443
+ or `hardCodedValue` is refused with 422 ("buildArrayHelper" or
3444
+ "hardCodedValue" must be present for object array datatype.). To copy a
3445
+ source array through unchanged, use one entry that iterates it
3446
+ (`buildArrayHelper: [{"extract": "$.items[*]"}]`).
3444
3447
 
3445
3448
  IMPORTANT: The dataType controls which additional fields are relevant:
3446
3449
  - For date-like string fields: extractDateFormat, generateDateFormat, etc. become relevant
3447
3450
  - For object types: 'mappings' array becomes relevant
3448
- - For array types: a JSONPath `extract` alone, `buildArrayHelper`, or `hardCodedValue` (see above)
3451
+ - For array types: `buildArrayHelper` or `hardCodedValue` (see above)
3449
3452
 
3450
3453
  When analyzing existing mappings or generating new ones, always check dataType first
3451
3454
  to understand what additional fields should be present.
@@ -3464,7 +3467,6 @@ components:
3464
3467
  - numberarray
3465
3468
  - booleanarray
3466
3469
  - objectarray
3467
- - arrayarray
3468
3470
  x-enumDescriptions:
3469
3471
  string: Text values; converts other types to their string representation.
3470
3472
  number: Numeric values; attempts conversion from strings.
@@ -3474,7 +3476,6 @@ components:
3474
3476
  numberarray: Array of numeric values.
3475
3477
  booleanarray: Array of boolean values.
3476
3478
  objectarray: Array of objects, the most common array type.
3477
- arrayarray: Array of arrays, used for matrix or table structures.
3478
3479
  examples:
3479
3480
  - string
3480
3481
  - number
@@ -3517,9 +3518,10 @@ components:
3517
3518
  - Valid on scalars and on `object` rows, where the rendered output must
3518
3519
  parse into an object. On an array row the template goes in a
3519
3520
  `buildArrayHelper` entry instead: on an `objectarray` row's own
3520
- `extract` it is refused with 422 ("buildArrayHelper" must be present
3521
- for object array datatype), and on a primitive-array row's own
3522
- `extract` it renders null without an error
3521
+ `extract` it is refused with 422 ("buildArrayHelper" or "hardCodedValue"
3522
+ must be present for object array datatype.), and on a primitive-array
3523
+ row's own `extract` it yields nothing (the field is left out) without an
3524
+ error
3523
3525
 
3524
3526
  ```json
3525
3527
  "extract": "{{record.price}} {{record.currency}}" // Combines two fields
@@ -3661,8 +3663,10 @@ components:
3661
3663
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
3662
3664
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
3663
3665
  action). Omitting the key entirely means no fallback — the field is left out of the
3664
- output when the extract is empty (the UI's "Do nothing" action). Failing the record
3665
- instead is `conditional.when: fail_record_when_empty`, which excludes a default.
3666
+ output when the extract is missing or an empty string (the UI's "Do nothing" action),
3667
+ while a null source is still written as null unless `conditional.when` is
3668
+ `extract_not_empty`. Failing the record instead is `conditional.when:
3669
+ fail_record_when_empty`, which excludes a default.
3666
3670
  x-celigo-ai-guidance:
3667
3671
  - |-
3668
3672
  `"default": null` and `"default": ""` are distinct saved values, not
@@ -3670,11 +3674,14 @@ components:
3670
3674
  empty string renders it as `""` when the extract yields nothing.
3671
3675
  Preserve them verbatim when editing or migrating a mapping — dropping
3672
3676
  the key changes runtime behavior from "use null/empty string as
3673
- default value" to "do nothing" (field omitted from the output).
3677
+ default value" to "do nothing" (a missing or `""` source is left out
3678
+ of the output, while a null source is written as null unless
3679
+ `conditional.when` is `extract_not_empty`).
3674
3680
  - |-
3675
3681
  The four "Action to take if source field has no value" choices map to:
3676
- do nothing → no `default` key (optionally `conditional.when:
3677
- extract_not_empty`); use null → `"default": null`; use empty string or
3682
+ do nothing → no `default` key (add `conditional.when:
3683
+ extract_not_empty` to leave a null source out too; without it a null
3684
+ source is written as null); use null → `"default": null`; use empty string or
3678
3685
  a custom value → `"default": "<value>"`; cause the record to fail →
3679
3686
  `conditional.when: fail_record_when_empty` with no `default` key.
3680
3687
  examples:
@@ -3889,8 +3896,7 @@ components:
3889
3896
 
3890
3897
  **When to Use**
3891
3898
  - REQUIRED when dataType ends with "array" (stringarray, objectarray, etc.), unless the
3892
- row passes a source array through with a JSONPath `extract` alone or sets
3893
- `hardCodedValue`
3899
+ row sets `hardCodedValue`: an array row's own `extract` is never read (see `dataType`)
3894
3900
  - Each entry in this array contributes elements to the output array
3895
3901
  - Multiple entries allow combining data from different input arrays
3896
3902
 
@@ -3974,28 +3980,10 @@ components:
3974
3980
  }
3975
3981
  ```
3976
3982
 
3977
- **For Arrays of Arrays (arrayarray)**
3978
- - Similar to objectarray, but inner arrays have empty 'generate' fields
3979
- - Used for matrix/table structures
3980
- ```json
3981
- {
3982
- "generate": "matrix",
3983
- "dataType": "arrayarray",
3984
- "buildArrayHelper": [
3985
- {
3986
- "extract": "$.rows[*]", // For each row in the rows array
3987
- "mappings": [
3988
- {
3989
- "dataType": "numberarray", // Note: No generate field for inner arrays
3990
- "buildArrayHelper": [
3991
- {"extract": "$.rows.columns[*]"} // Notice: "rows" is singular in the composite object
3992
- ]
3993
- }
3994
- ]
3995
- }
3996
- ]
3997
- }
3998
- ```
3983
+ **Arrays of Arrays**
3984
+ - The mapper has no working type for them: `arrayarray` saves, but every record
3985
+ fails with `Destination datatype is a required field.` Build an array of arrays
3986
+ in a script hook instead.
3999
3987
 
4000
3988
  **Important details**
4001
3989
 
@@ -4433,9 +4421,12 @@ components:
4433
4421
  destination-assigned id and `_json.<path>` (or the flattened
4434
4422
  `<path>`) for fields inside the destination's response body. The full
4435
4423
  envelope (including `id`) is present on real runs and in flow-builder
4436
- previews; flow TEST runs never execute imports, and their mock-built
4437
- envelope carries no `id` — an `extract: "id"` merges nothing in a test
4438
- run even though it works on real runs.
4424
+ previews; flow TEST runs never execute imports, and their envelope is
4425
+ built from the import's saved `mockResponse`, or from the placeholder
4426
+ `{"id": "1234567890", "mockResponse": "replace me"}` (numbered
4427
+ `1234567890-1`, `1234567890-2`, … when a page holds several records)
4428
+ — an `extract: "id"` in a test run merges that mock id, never a
4429
+ destination record id.
4439
4430
 
4440
4431
  An `extract` may also be a Handlebars expression. It evaluates against
4441
4432
  the same envelope as a plain path, so every path inside `{{ }}` starts
@@ -5262,7 +5253,7 @@ components:
5262
5253
  - Unmapped Value
5263
5254
  - '{Original Value}'
5264
5255
  x-celigo-ai-guidance:
5265
- - 'Omit this field entirely when no fallback value is intended. The API rejects an empty string with [invalid_field] Invalid value '''' for field ''default'' — emitting default: "" to mean "no default" fails validation; leaving the key out is the valid spelling of that intent.'
5256
+ - 'Omit this field entirely when no fallback value is intended: a miss the lookup lets through then leaves the mapped field out, and with `allowFailures: false` a miss fails the record whatever the default. An empty string is a value, not "no default" — the save accepts `default: ""`, and an allowed miss writes `""`.'
5266
5257
  allowFailures:
5267
5258
  type:
5268
5259
  - boolean
@@ -5421,6 +5412,11 @@ components:
5421
5412
  dropped fields. Either map every field downstream logic
5422
5413
  needs forward, or author Transform 2.0 with
5423
5414
  ``mode: "modify"`` instead.
5415
+ - |-
5416
+ An import's ``responseTransform`` is the exception: it accepts
5417
+ version ``"1"`` only (``"2"`` is refused with 422, verified live
5418
+ 2026-10-21), so there, map every response field that response
5419
+ mapping needs.
5424
5420
  items:
5425
5421
  type: array
5426
5422
  items:
package/dist/api.yml CHANGED
@@ -5258,7 +5258,7 @@ components:
5258
5258
  connection's traffic counts against the referenced connection's limit instead of its own,
5259
5259
  and its own concurrency and auto-recovery settings have no effect. One level only: the
5260
5260
  referenced connection may not itself borrow, and a connection that others borrow from
5261
- cannot start borrowing.
5261
+ cannot start borrowing. A connection cannot reference itself (422).
5262
5262
  examples:
5263
5263
  - 615dfa0742763671275b70ab
5264
5264
  x-celigo-ai-guidance:
@@ -5295,16 +5295,21 @@ components:
5295
5295
  type: boolean
5296
5296
  description: |-
5297
5297
  When true, the connection has been taken offline and is skipped during flow execution.
5298
- The platform tests the connection after a create or `PUT` and updates this shortly
5299
- afterwards (the audit log records a `system` change; `lastModified` doesn't move), so
5300
- read it again a few seconds after the write.
5298
+ It is set by the connection test a create or `PUT` runs: the result arrives in the
5299
+ write's response or, when the target is slow to answer, shortly afterwards (the audit
5300
+ log records a `system` change; `lastModified` doesn't move), so read it again a few
5301
+ seconds after the write. On an `http` connection the write runs the test only when
5302
+ `http.ping` is configured, and an `http` connection that was never tested has no
5303
+ `offline` key.
5301
5304
  readOnly: true
5302
5305
  needsAuthorization:
5303
5306
  type: boolean
5304
5307
  readOnly: true
5305
5308
  description: |-
5306
5309
  OAuth handshake state. Celigo's OAuth callback sets it to `false` once the user consents
5307
- and the tokens are stored (see `GET /v1/connection/{_id}/oauth2`).
5310
+ and the tokens are stored (see `GET /v1/connection/{_id}/oauth2`). A connection that
5311
+ was never authorized usually has no `needsAuthorization` key, so its absence does not
5312
+ mean the connection is authorized.
5308
5313
  _sourceId:
5309
5314
  type: string
5310
5315
  format: objectId
@@ -6279,15 +6284,18 @@ components:
6279
6284
  clientId:
6280
6285
  type: string
6281
6286
  description: |
6282
- OAuth client ID (application ID) registered with the API provider.
6283
- Required for all OAuth 2.0 grant types.
6287
+ OAuth client ID (application ID) registered with the API provider. An `http`
6288
+ connection takes the app from a `custom_oauth2` iClient referenced by `http._iClientId`
6289
+ (an `mcp` connection from `mcp.http._iClientId`) and doesn't store this field: a create
6290
+ that sends `clientId` and `clientSecret` here answers 201 without either (and stores
6291
+ `useIClientFields: true` unless `false` is sent).
6284
6292
  examples:
6285
6293
  - 0oa1b2c3d4EXAMPLE5
6286
6294
  clientSecret:
6287
6295
  type: string
6288
6296
  description: |
6289
- OAuth client secret (encrypted at rest).
6290
- Required for "authorizecode" and "clientcredentials" grant types.
6297
+ OAuth client secret (encrypted at rest). Not stored on an `http` connection: the secret
6298
+ belongs on the iClient (see `clientId`).
6291
6299
  writeOnly: true
6292
6300
  examples:
6293
6301
  - cs_abc123EXAMPLE456secret
@@ -6503,9 +6511,11 @@ components:
6503
6511
  - "authorizecode" — Authorization Code flow (browser-based user consent).
6504
6512
  Requires authURI, tokenURI, and user authorization via browser.
6505
6513
  - "clientcredentials" — Client Credentials flow (server-to-server, no user).
6506
- Requires tokenURI, clientId, clientSecret.
6514
+ Requires tokenURI.
6507
6515
  - "password" — Resource Owner Password flow (username/password exchange).
6508
- Requires tokenURI, username, password, clientId, clientSecret.
6516
+ Requires tokenURI, username, password.
6517
+ - On an `http` connection the client ID and secret are never stored here: a
6518
+ `custom_oauth2` iClient referenced by `http._iClientId` supplies them.
6509
6519
  JWT:
6510
6520
  type: object
6511
6521
  description: |-