@celigo/api-specs 0.2.82 → 0.2.84

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
@@ -1943,6 +1943,15 @@ components:
1943
1943
  (verified 2026-09-21 on create, on PUT, and after a re-save). Keep
1944
1944
  each entry equal to the endpoint you mean so the pointer and the
1945
1945
  request agree. Get the URI shape right.
1946
+ - |-
1947
+ On a GraphQL-form import (`formType` `graph_ql` / `assistant_graphql`) the form owns
1948
+ this field: it shows no relative-URI field and writes `["/"]` back on every save in the
1949
+ editor, because the request path is expected to come from the connection's `baseURI` —
1950
+ a `graph_ql` connection, or a connector connection bound to its GraphQL API. A path set
1951
+ here through the API on such an import does reach the wire, but it is invisible in the
1952
+ editor and reverts to `["/"]` the next time the import is saved there; when the
1953
+ connection's base URI stops at an API root, move the import to a connection that
1954
+ supplies the GraphQL endpoint instead of patching this field.
1946
1955
  examples:
1947
1956
  - - /api/v1/customers
1948
1957
  - - /customers/{{{data.0.shopifyCustomerId}}}.json
@@ -12619,7 +12628,8 @@ components:
12619
12628
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
12620
12629
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
12621
12630
  action). Omitting the key entirely means no fallback — the field is left out of the
12622
- output when the extract is empty (the UI's "Do nothing" action).
12631
+ output when the extract is empty (the UI's "Do nothing" action). Failing the record
12632
+ instead is `conditional.when: fail_record_when_empty`, which excludes a default.
12623
12633
  x-celigo-ai-guidance:
12624
12634
  - |-
12625
12635
  `"default": null` and `"default": ""` are distinct saved values, not
@@ -12628,6 +12638,12 @@ components:
12628
12638
  Preserve them verbatim when editing or migrating a mapping — dropping
12629
12639
  the key changes runtime behavior from "use null/empty string as
12630
12640
  default value" to "do nothing" (field omitted from the output).
12641
+ - |-
12642
+ The four "Action to take if source field has no value" choices map to:
12643
+ do nothing → no `default` key (optionally `conditional.when:
12644
+ extract_not_empty`); use null → `"default": null`; use empty string or
12645
+ a custom value → `"default": "<value>"`; cause the record to fail →
12646
+ `conditional.when: fail_record_when_empty` with no `default` key.
12631
12647
  examples:
12632
12648
  - N/A
12633
12649
  - '0'
@@ -12960,6 +12976,22 @@ components:
12960
12976
  - $.order.lineItems[*]
12961
12977
  - $.parents[*].children[*]
12962
12978
  - $
12979
+ name:
12980
+ type: string
12981
+ maxLength: 200
12982
+ description: |
12983
+ Display label for this source object in the mapper, so the sources of
12984
+ an object array can be told apart instead of all showing as `$`.
12985
+ Has no effect at runtime; stored only when non-empty.
12986
+ x-celigo-ai-guidance:
12987
+ - |-
12988
+ Carry an existing `name` through every edit — it is the user's label
12989
+ for the tab, and an entry sent without it loses the label. Duplicate
12990
+ names across entries are allowed. Set one only when the user names
12991
+ the source object; never invent labels.
12992
+ examples:
12993
+ - Billing address
12994
+ - Shipping address
12963
12995
  sourceDataType:
12964
12996
  type: string
12965
12997
  description: |
@@ -13008,17 +13040,31 @@ components:
13008
13040
  type: object
13009
13041
  description: |
13010
13042
  Defines conditional rules for including each array element in the result.
13043
+ x-celigo-ai-guidance:
13044
+ - |-
13045
+ Judged against this entry's own `extract` (the array source). The
13046
+ design scopes the UI's tab-level "Action to take if source field has
13047
+ no value" to copy-as-is tabs (no child `mappings`); the API accepts
13048
+ `fail_record_when_empty` on a mapped entry as well, and the mapper
13049
+ processor honors it there — the record fails when that array is
13050
+ missing or empty (`errors[]` entry `code: extract_empty`, `fatal:
13051
+ true`, message `<generate>: Source field has no value`; probed
13052
+ 2026-10-09). Say so when writing it on a mapped entry: the user may
13053
+ not find the setting in the mapper's tab. To fail on an empty field
13054
+ inside each element, set the action on that child mapping instead.
13011
13055
  properties:
13012
13056
  when:
13013
13057
  type: string
13014
13058
  description: |
13015
- Specifies the condition that must be met for an array element to be included.
13016
-
13017
- 'extract_not_empty' only includes elements where the extract field returns a value.
13059
+ Condition judged on the entry's extract — skip the elements the
13060
+ extract does not return, or fail the whole record when the source
13061
+ array is missing or empty.
13018
13062
  enum:
13019
13063
  - extract_not_empty
13064
+ - fail_record_when_empty
13020
13065
  x-enumDescriptions:
13021
- extract_not_empty: Include the array element only when the extract field returns a non-empty value.
13066
+ extract_not_empty: Include an array element only when the extract returns a non-empty value for it
13067
+ fail_record_when_empty: Fail the record when the entry's source array is missing or empty
13022
13068
  examples:
13023
13069
  - extract_not_empty
13024
13070
  mappings:
@@ -13118,6 +13164,20 @@ components:
13118
13164
  extract: $.price
13119
13165
  dataType: number
13120
13166
  status: Active
13167
+ if:
13168
+ properties:
13169
+ conditional:
13170
+ properties:
13171
+ when:
13172
+ const: fail_record_when_empty
13173
+ required:
13174
+ - when
13175
+ required:
13176
+ - conditional
13177
+ then:
13178
+ not:
13179
+ required:
13180
+ - default
13121
13181
  status:
13122
13182
  type: string
13123
13183
  description: |
@@ -13125,9 +13185,10 @@ components:
13125
13185
  Required on every mapping entry. Controls whether the mapping is applied.
13126
13186
 
13127
13187
  **Guidance**
13128
- Emit `"Active"` for mappings that should run; `"Draft"` saves an
13129
- in-progress mapping without the Active-only field validations. The
13130
- API rejects a mapping missing this field
13188
+ Only `Active` rows run. `Draft` and `Inactive` rows keep their
13189
+ configuration, are saved with minimal validation, and are skipped at
13190
+ runtime and in preview; a non-Active parent skips its whole subtree
13191
+ whatever its children say. The API rejects a mapping missing this field
13131
13192
  (validation error: "Mapping object must have status field present.").
13132
13193
  x-celigo-ai-guidance:
13133
13194
  - |-
@@ -13136,12 +13197,28 @@ components:
13136
13197
  field validations. The value is case-sensitive. The API rejects:
13137
13198
  - Missing field: `[status_field_absent] Mapping object must have status field present.`
13138
13199
  - Wrong case (e.g. `"active"`): `[invalid_status_enums] active is not a valid enum for status field.`
13200
+ - |-
13201
+ `"Inactive"` is the user's "Set inactive" on a row: use it only when
13202
+ asked to disable or park a row, never to mean incomplete (that is
13203
+ `"Draft"`). Setting a parent `Inactive` means no `Active` row may
13204
+ remain under it — the save rejects an `Active` row under an
13205
+ `Inactive` parent (`[inactive_parent_active_child]` on `mappings`,
13206
+ no message text) and never cascades or promotes on its own; `Draft`
13207
+ descendants are kept as they are, and a `Draft` parent does not gate
13208
+ its children. The UI's Set inactive on a parent marks the parent and
13209
+ every child `Inactive` (IO-166197). Re-enabling a child
13210
+ means re-enabling its ancestors in the same payload. Edits that keep
13211
+ existing rows must carry their stored status forward — rewriting a
13212
+ `Draft` or `Inactive` row to `Active` turns a row the user parked
13213
+ back on.
13139
13214
  enum:
13140
13215
  - Active
13141
13216
  - Draft
13217
+ - Inactive
13142
13218
  x-enumDescriptions:
13143
- Active: The mapping is enabled and applied during processing.
13144
- Draft: In-progress mapping; saved without the Active-only field validations.
13219
+ Active: The mapping is enabled and applied during processing
13220
+ Draft: In-progress mapping; saved without the Active-only field validations and skipped at runtime
13221
+ Inactive: Disabled by the user; configuration kept, skipped at runtime and in preview
13145
13222
  examples:
13146
13223
  - Active
13147
13224
  conditional:
@@ -13170,6 +13247,10 @@ components:
13170
13247
  - `extract_not_empty`: Apply only when the extract field returns a value
13171
13248
  Useful for conditional mapping based on input data availability
13172
13249
 
13250
+ - `fail_record_when_empty`: Fail the record when the extract field returns
13251
+ no value (the UI's "Cause record to fail" action when the source field
13252
+ has no value)
13253
+
13173
13254
  **Example**
13174
13255
  ```json
13175
13256
  {
@@ -13182,28 +13263,75 @@ components:
13182
13263
  }
13183
13264
  }
13184
13265
  ```
13266
+ x-celigo-ai-guidance:
13267
+ - |-
13268
+ `when` holds one value, and two different settings share it: the
13269
+ composite-import operation gate (`record_created` / `record_updated`,
13270
+ the UI's "Only perform mapping when") and the empty-source action
13271
+ (`extract_not_empty` / `fail_record_when_empty`, the UI's "Action to
13272
+ take if source field has no value"). A row cannot carry both — writing
13273
+ one replaces the other and the save succeeds, so a composite import
13274
+ row that needs both has to choose. Never author `fail_record_when_empty`
13275
+ on a row that already carries `record_created` or `record_updated`.
13185
13276
  properties:
13186
13277
  when:
13187
13278
  type: string
13188
13279
  description: |
13189
- Specifies the condition that triggers application of this mapping:
13190
- - record_created: Apply only when creating a new record
13191
- - record_updated: Apply only when updating an existing record
13192
- - extract_not_empty: Apply only when the extract field returns a value
13280
+ Condition that gates this mapping — either an operation gate on a
13281
+ composite (create-or-update) import or the action to take when the
13282
+ extract returns no value. Empty means null, undefined or an empty
13283
+ string; `0`, `false` and whitespace are values.
13284
+ x-celigo-ai-guidance:
13285
+ - |-
13286
+ `fail_record_when_empty` is the fourth "Action to take if source field
13287
+ has no value" and is mutually exclusive with the other three: send it
13288
+ with no `default` key. A `default`, a `lookupName` or a `hardCodedValue`
13289
+ on the same row — or a `default` on a `buildArrayHelper` entry — is
13290
+ rejected at save with `[unsupported_mapping] "<key>" and conditional.when
13291
+ "fail_record_when_empty" cannot be present in mapping simultaneously.`
13292
+ (the lookup variant adds `Use lookup "allowFailures" instead.`);
13293
+ lookups fail through `allowFailures: false`, and a hard-coded row
13294
+ always has a value. At runtime an empty extract fails the record with
13295
+ an `errors[]` entry `{code: "extract_empty", fatal: true, source:
13296
+ "mapping", message: "<generate>: Source field has no value"}`
13297
+ ("Input field has no value" in a Transformation 2.0); `0` and `false`
13298
+ are values and map through.
13193
13299
  enum:
13194
13300
  - record_created
13195
13301
  - record_updated
13196
13302
  - extract_not_empty
13303
+ - fail_record_when_empty
13197
13304
  x-enumDescriptions:
13198
- record_created: Apply this mapping only when creating a new record.
13199
- record_updated: Apply this mapping only when updating an existing record.
13200
- extract_not_empty: Apply this mapping only when the extract field returns a non-empty value.
13305
+ record_created: Apply this mapping only when creating a new record
13306
+ record_updated: Apply this mapping only when updating an existing record
13307
+ extract_not_empty: Apply this mapping only when the extract field returns a non-empty value
13308
+ fail_record_when_empty: Fail the record when the extract field returns no value
13201
13309
  examples:
13202
13310
  - record_created
13203
13311
  - record_updated
13204
13312
  - extract_not_empty
13313
+ - fail_record_when_empty
13205
13314
  required:
13206
13315
  - dataType
13316
+ if:
13317
+ properties:
13318
+ conditional:
13319
+ properties:
13320
+ when:
13321
+ const: fail_record_when_empty
13322
+ required:
13323
+ - when
13324
+ required:
13325
+ - conditional
13326
+ then:
13327
+ not:
13328
+ anyOf:
13329
+ - required:
13330
+ - default
13331
+ - required:
13332
+ - lookupName
13333
+ - required:
13334
+ - hardCodedValue
13207
13335
  Mappings:
13208
13336
  type: array
13209
13337
  description: |
@@ -13227,6 +13355,20 @@ components:
13227
13355
 
13228
13356
  The system will process these nested structures recursively during runtime, ensuring proper construction
13229
13357
  of complex hierarchical data while maintaining excellent performance.
13358
+
13359
+ On save, a leaf row with neither a source (`extract`, `hardCodedValue`, `lookupName`) nor a
13360
+ destination (`generate`) is dropped silently, at every nesting level, and so is an object or
13361
+ object-array row left with no source, no destination and no remaining child `mappings` or
13362
+ `buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
13363
+ wrapper that still has children, are kept.
13364
+ x-celigo-ai-guidance:
13365
+ - |-
13366
+ Rows that exist in the saved document — including `Draft` and `Inactive` rows and
13367
+ rows with only a source or only a destination — are the user's state: an edit that
13368
+ re-sends the tree must carry them through unchanged unless the user asked to change
13369
+ them. Only a row with neither source nor destination — and, for an object or
13370
+ object-array row, no remaining children — can be left out; the save would drop it
13371
+ anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
13230
13372
  items:
13231
13373
  type: object
13232
13374
  properties:
@@ -13506,7 +13648,8 @@ components:
13506
13648
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
13507
13649
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
13508
13650
  action). Omitting the key entirely means no fallback — the field is left out of the
13509
- output when the extract is empty (the UI's "Do nothing" action).
13651
+ output when the extract is empty (the UI's "Do nothing" action). Failing the record
13652
+ instead is `conditional.when: fail_record_when_empty`, which excludes a default.
13510
13653
  x-celigo-ai-guidance:
13511
13654
  - |-
13512
13655
  `"default": null` and `"default": ""` are distinct saved values, not
@@ -13515,6 +13658,12 @@ components:
13515
13658
  Preserve them verbatim when editing or migrating a mapping — dropping
13516
13659
  the key changes runtime behavior from "use null/empty string as
13517
13660
  default value" to "do nothing" (field omitted from the output).
13661
+ - |-
13662
+ The four "Action to take if source field has no value" choices map to:
13663
+ do nothing → no `default` key (optionally `conditional.when:
13664
+ extract_not_empty`); use null → `"default": null`; use empty string or
13665
+ a custom value → `"default": "<value>"`; cause the record to fail →
13666
+ `conditional.when: fail_record_when_empty` with no `default` key.
13518
13667
  examples:
13519
13668
  - N/A
13520
13669
  - '0'
@@ -13847,6 +13996,22 @@ components:
13847
13996
  - $.order.lineItems[*]
13848
13997
  - $.parents[*].children[*]
13849
13998
  - $
13999
+ name:
14000
+ type: string
14001
+ maxLength: 200
14002
+ description: |
14003
+ Display label for this source object in the mapper, so the sources of
14004
+ an object array can be told apart instead of all showing as `$`.
14005
+ Has no effect at runtime; stored only when non-empty.
14006
+ x-celigo-ai-guidance:
14007
+ - |-
14008
+ Carry an existing `name` through every edit — it is the user's label
14009
+ for the tab, and an entry sent without it loses the label. Duplicate
14010
+ names across entries are allowed. Set one only when the user names
14011
+ the source object; never invent labels.
14012
+ examples:
14013
+ - Billing address
14014
+ - Shipping address
13850
14015
  sourceDataType:
13851
14016
  type: string
13852
14017
  description: |
@@ -13895,17 +14060,31 @@ components:
13895
14060
  type: object
13896
14061
  description: |
13897
14062
  Defines conditional rules for including each array element in the result.
14063
+ x-celigo-ai-guidance:
14064
+ - |-
14065
+ Judged against this entry's own `extract` (the array source). The
14066
+ design scopes the UI's tab-level "Action to take if source field has
14067
+ no value" to copy-as-is tabs (no child `mappings`); the API accepts
14068
+ `fail_record_when_empty` on a mapped entry as well, and the mapper
14069
+ processor honors it there — the record fails when that array is
14070
+ missing or empty (`errors[]` entry `code: extract_empty`, `fatal:
14071
+ true`, message `<generate>: Source field has no value`; probed
14072
+ 2026-10-09). Say so when writing it on a mapped entry: the user may
14073
+ not find the setting in the mapper's tab. To fail on an empty field
14074
+ inside each element, set the action on that child mapping instead.
13898
14075
  properties:
13899
14076
  when:
13900
14077
  type: string
13901
14078
  description: |
13902
- Specifies the condition that must be met for an array element to be included.
13903
-
13904
- 'extract_not_empty' only includes elements where the extract field returns a value.
14079
+ Condition judged on the entry's extract — skip the elements the
14080
+ extract does not return, or fail the whole record when the source
14081
+ array is missing or empty.
13905
14082
  enum:
13906
14083
  - extract_not_empty
14084
+ - fail_record_when_empty
13907
14085
  x-enumDescriptions:
13908
- extract_not_empty: Include the array element only when the extract field returns a non-empty value.
14086
+ extract_not_empty: Include an array element only when the extract returns a non-empty value for it
14087
+ fail_record_when_empty: Fail the record when the entry's source array is missing or empty
13909
14088
  examples:
13910
14089
  - extract_not_empty
13911
14090
  mappings:
@@ -14005,6 +14184,20 @@ components:
14005
14184
  extract: $.price
14006
14185
  dataType: number
14007
14186
  status: Active
14187
+ if:
14188
+ properties:
14189
+ conditional:
14190
+ properties:
14191
+ when:
14192
+ const: fail_record_when_empty
14193
+ required:
14194
+ - when
14195
+ required:
14196
+ - conditional
14197
+ then:
14198
+ not:
14199
+ required:
14200
+ - default
14008
14201
  status:
14009
14202
  type: string
14010
14203
  description: |
@@ -14012,9 +14205,10 @@ components:
14012
14205
  Required on every mapping entry. Controls whether the mapping is applied.
14013
14206
 
14014
14207
  **Guidance**
14015
- Emit `"Active"` for mappings that should run; `"Draft"` saves an
14016
- in-progress mapping without the Active-only field validations. The
14017
- API rejects a mapping missing this field
14208
+ Only `Active` rows run. `Draft` and `Inactive` rows keep their
14209
+ configuration, are saved with minimal validation, and are skipped at
14210
+ runtime and in preview; a non-Active parent skips its whole subtree
14211
+ whatever its children say. The API rejects a mapping missing this field
14018
14212
  (validation error: "Mapping object must have status field present.").
14019
14213
  x-celigo-ai-guidance:
14020
14214
  - |-
@@ -14023,12 +14217,28 @@ components:
14023
14217
  field validations. The value is case-sensitive. The API rejects:
14024
14218
  - Missing field: `[status_field_absent] Mapping object must have status field present.`
14025
14219
  - Wrong case (e.g. `"active"`): `[invalid_status_enums] active is not a valid enum for status field.`
14220
+ - |-
14221
+ `"Inactive"` is the user's "Set inactive" on a row: use it only when
14222
+ asked to disable or park a row, never to mean incomplete (that is
14223
+ `"Draft"`). Setting a parent `Inactive` means no `Active` row may
14224
+ remain under it — the save rejects an `Active` row under an
14225
+ `Inactive` parent (`[inactive_parent_active_child]` on `mappings`,
14226
+ no message text) and never cascades or promotes on its own; `Draft`
14227
+ descendants are kept as they are, and a `Draft` parent does not gate
14228
+ its children. The UI's Set inactive on a parent marks the parent and
14229
+ every child `Inactive` (IO-166197). Re-enabling a child
14230
+ means re-enabling its ancestors in the same payload. Edits that keep
14231
+ existing rows must carry their stored status forward — rewriting a
14232
+ `Draft` or `Inactive` row to `Active` turns a row the user parked
14233
+ back on.
14026
14234
  enum:
14027
14235
  - Active
14028
14236
  - Draft
14237
+ - Inactive
14029
14238
  x-enumDescriptions:
14030
- Active: The mapping is enabled and applied during processing.
14031
- Draft: In-progress mapping; saved without the Active-only field validations.
14239
+ Active: The mapping is enabled and applied during processing
14240
+ Draft: In-progress mapping; saved without the Active-only field validations and skipped at runtime
14241
+ Inactive: Disabled by the user; configuration kept, skipped at runtime and in preview
14032
14242
  examples:
14033
14243
  - Active
14034
14244
  conditional:
@@ -14057,6 +14267,10 @@ components:
14057
14267
  - `extract_not_empty`: Apply only when the extract field returns a value
14058
14268
  Useful for conditional mapping based on input data availability
14059
14269
 
14270
+ - `fail_record_when_empty`: Fail the record when the extract field returns
14271
+ no value (the UI's "Cause record to fail" action when the source field
14272
+ has no value)
14273
+
14060
14274
  **Example**
14061
14275
  ```json
14062
14276
  {
@@ -14069,28 +14283,75 @@ components:
14069
14283
  }
14070
14284
  }
14071
14285
  ```
14286
+ x-celigo-ai-guidance:
14287
+ - |-
14288
+ `when` holds one value, and two different settings share it: the
14289
+ composite-import operation gate (`record_created` / `record_updated`,
14290
+ the UI's "Only perform mapping when") and the empty-source action
14291
+ (`extract_not_empty` / `fail_record_when_empty`, the UI's "Action to
14292
+ take if source field has no value"). A row cannot carry both — writing
14293
+ one replaces the other and the save succeeds, so a composite import
14294
+ row that needs both has to choose. Never author `fail_record_when_empty`
14295
+ on a row that already carries `record_created` or `record_updated`.
14072
14296
  properties:
14073
14297
  when:
14074
14298
  type: string
14075
14299
  description: |
14076
- Specifies the condition that triggers application of this mapping:
14077
- - record_created: Apply only when creating a new record
14078
- - record_updated: Apply only when updating an existing record
14079
- - extract_not_empty: Apply only when the extract field returns a value
14300
+ Condition that gates this mapping — either an operation gate on a
14301
+ composite (create-or-update) import or the action to take when the
14302
+ extract returns no value. Empty means null, undefined or an empty
14303
+ string; `0`, `false` and whitespace are values.
14304
+ x-celigo-ai-guidance:
14305
+ - |-
14306
+ `fail_record_when_empty` is the fourth "Action to take if source field
14307
+ has no value" and is mutually exclusive with the other three: send it
14308
+ with no `default` key. A `default`, a `lookupName` or a `hardCodedValue`
14309
+ on the same row — or a `default` on a `buildArrayHelper` entry — is
14310
+ rejected at save with `[unsupported_mapping] "<key>" and conditional.when
14311
+ "fail_record_when_empty" cannot be present in mapping simultaneously.`
14312
+ (the lookup variant adds `Use lookup "allowFailures" instead.`);
14313
+ lookups fail through `allowFailures: false`, and a hard-coded row
14314
+ always has a value. At runtime an empty extract fails the record with
14315
+ an `errors[]` entry `{code: "extract_empty", fatal: true, source:
14316
+ "mapping", message: "<generate>: Source field has no value"}`
14317
+ ("Input field has no value" in a Transformation 2.0); `0` and `false`
14318
+ are values and map through.
14080
14319
  enum:
14081
14320
  - record_created
14082
14321
  - record_updated
14083
14322
  - extract_not_empty
14323
+ - fail_record_when_empty
14084
14324
  x-enumDescriptions:
14085
- record_created: Apply this mapping only when creating a new record.
14086
- record_updated: Apply this mapping only when updating an existing record.
14087
- extract_not_empty: Apply this mapping only when the extract field returns a non-empty value.
14325
+ record_created: Apply this mapping only when creating a new record
14326
+ record_updated: Apply this mapping only when updating an existing record
14327
+ extract_not_empty: Apply this mapping only when the extract field returns a non-empty value
14328
+ fail_record_when_empty: Fail the record when the extract field returns no value
14088
14329
  examples:
14089
14330
  - record_created
14090
14331
  - record_updated
14091
14332
  - extract_not_empty
14333
+ - fail_record_when_empty
14092
14334
  required:
14093
14335
  - dataType
14336
+ if:
14337
+ properties:
14338
+ conditional:
14339
+ properties:
14340
+ when:
14341
+ const: fail_record_when_empty
14342
+ required:
14343
+ - when
14344
+ required:
14345
+ - conditional
14346
+ then:
14347
+ not:
14348
+ anyOf:
14349
+ - required:
14350
+ - default
14351
+ - required:
14352
+ - lookupName
14353
+ - required:
14354
+ - hardCodedValue
14094
14355
  Transform:
14095
14356
  type: object
14096
14357
  description: |