@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/export.yml CHANGED
@@ -6286,6 +6286,16 @@ components:
6286
6286
  - |-
6287
6287
  This value is combined with the baseURI defined in the associated connection to
6288
6288
  form the complete API endpoint URL.
6289
+ - |-
6290
+ On a GraphQL-form export (`formType` `graph_ql` / `assistant_graphql`) the form owns
6291
+ this field: it shows no relative-URI field and, on every save in the editor, rewrites
6292
+ it to the GET query string it compiles from the Query / Operation name / Variables
6293
+ fields, because the endpoint is expected to be the connection's `baseURI` — a
6294
+ `graph_ql` connection, or a connector connection bound to its GraphQL API. A path set
6295
+ here through the API on such an export is invisible in the editor and does not survive
6296
+ the next save there; when the connection's base URI stops at an API root, move the
6297
+ export to a connection that supplies the GraphQL endpoint instead of patching this
6298
+ field.
6289
6299
  examples:
6290
6300
  - /api/v1/contacts
6291
6301
  - /customers/{{record.customerId}}
@@ -12563,7 +12573,8 @@ components:
12563
12573
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
12564
12574
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
12565
12575
  action). Omitting the key entirely means no fallback — the field is left out of the
12566
- output when the extract is empty (the UI's "Do nothing" action).
12576
+ output when the extract is empty (the UI's "Do nothing" action). Failing the record
12577
+ instead is `conditional.when: fail_record_when_empty`, which excludes a default.
12567
12578
  x-celigo-ai-guidance:
12568
12579
  - |-
12569
12580
  `"default": null` and `"default": ""` are distinct saved values, not
@@ -12572,6 +12583,12 @@ components:
12572
12583
  Preserve them verbatim when editing or migrating a mapping — dropping
12573
12584
  the key changes runtime behavior from "use null/empty string as
12574
12585
  default value" to "do nothing" (field omitted from the output).
12586
+ - |-
12587
+ The four "Action to take if source field has no value" choices map to:
12588
+ do nothing → no `default` key (optionally `conditional.when:
12589
+ extract_not_empty`); use null → `"default": null`; use empty string or
12590
+ a custom value → `"default": "<value>"`; cause the record to fail →
12591
+ `conditional.when: fail_record_when_empty` with no `default` key.
12575
12592
  examples:
12576
12593
  - N/A
12577
12594
  - '0'
@@ -12904,6 +12921,22 @@ components:
12904
12921
  - $.order.lineItems[*]
12905
12922
  - $.parents[*].children[*]
12906
12923
  - $
12924
+ name:
12925
+ type: string
12926
+ maxLength: 200
12927
+ description: |
12928
+ Display label for this source object in the mapper, so the sources of
12929
+ an object array can be told apart instead of all showing as `$`.
12930
+ Has no effect at runtime; stored only when non-empty.
12931
+ x-celigo-ai-guidance:
12932
+ - |-
12933
+ Carry an existing `name` through every edit — it is the user's label
12934
+ for the tab, and an entry sent without it loses the label. Duplicate
12935
+ names across entries are allowed. Set one only when the user names
12936
+ the source object; never invent labels.
12937
+ examples:
12938
+ - Billing address
12939
+ - Shipping address
12907
12940
  sourceDataType:
12908
12941
  type: string
12909
12942
  description: |
@@ -12952,17 +12985,31 @@ components:
12952
12985
  type: object
12953
12986
  description: |
12954
12987
  Defines conditional rules for including each array element in the result.
12988
+ x-celigo-ai-guidance:
12989
+ - |-
12990
+ Judged against this entry's own `extract` (the array source). The
12991
+ design scopes the UI's tab-level "Action to take if source field has
12992
+ no value" to copy-as-is tabs (no child `mappings`); the API accepts
12993
+ `fail_record_when_empty` on a mapped entry as well, and the mapper
12994
+ processor honors it there — the record fails when that array is
12995
+ missing or empty (`errors[]` entry `code: extract_empty`, `fatal:
12996
+ true`, message `<generate>: Source field has no value`; probed
12997
+ 2026-10-09). Say so when writing it on a mapped entry: the user may
12998
+ not find the setting in the mapper's tab. To fail on an empty field
12999
+ inside each element, set the action on that child mapping instead.
12955
13000
  properties:
12956
13001
  when:
12957
13002
  type: string
12958
13003
  description: |
12959
- Specifies the condition that must be met for an array element to be included.
12960
-
12961
- 'extract_not_empty' only includes elements where the extract field returns a value.
13004
+ Condition judged on the entry's extract — skip the elements the
13005
+ extract does not return, or fail the whole record when the source
13006
+ array is missing or empty.
12962
13007
  enum:
12963
13008
  - extract_not_empty
13009
+ - fail_record_when_empty
12964
13010
  x-enumDescriptions:
12965
- extract_not_empty: Include the array element only when the extract field returns a non-empty value.
13011
+ extract_not_empty: Include an array element only when the extract returns a non-empty value for it
13012
+ fail_record_when_empty: Fail the record when the entry's source array is missing or empty
12966
13013
  examples:
12967
13014
  - extract_not_empty
12968
13015
  mappings:
@@ -13062,6 +13109,20 @@ components:
13062
13109
  extract: $.price
13063
13110
  dataType: number
13064
13111
  status: Active
13112
+ if:
13113
+ properties:
13114
+ conditional:
13115
+ properties:
13116
+ when:
13117
+ const: fail_record_when_empty
13118
+ required:
13119
+ - when
13120
+ required:
13121
+ - conditional
13122
+ then:
13123
+ not:
13124
+ required:
13125
+ - default
13065
13126
  status:
13066
13127
  type: string
13067
13128
  description: |
@@ -13069,9 +13130,10 @@ components:
13069
13130
  Required on every mapping entry. Controls whether the mapping is applied.
13070
13131
 
13071
13132
  **Guidance**
13072
- Emit `"Active"` for mappings that should run; `"Draft"` saves an
13073
- in-progress mapping without the Active-only field validations. The
13074
- API rejects a mapping missing this field
13133
+ Only `Active` rows run. `Draft` and `Inactive` rows keep their
13134
+ configuration, are saved with minimal validation, and are skipped at
13135
+ runtime and in preview; a non-Active parent skips its whole subtree
13136
+ whatever its children say. The API rejects a mapping missing this field
13075
13137
  (validation error: "Mapping object must have status field present.").
13076
13138
  x-celigo-ai-guidance:
13077
13139
  - |-
@@ -13080,12 +13142,28 @@ components:
13080
13142
  field validations. The value is case-sensitive. The API rejects:
13081
13143
  - Missing field: `[status_field_absent] Mapping object must have status field present.`
13082
13144
  - Wrong case (e.g. `"active"`): `[invalid_status_enums] active is not a valid enum for status field.`
13145
+ - |-
13146
+ `"Inactive"` is the user's "Set inactive" on a row: use it only when
13147
+ asked to disable or park a row, never to mean incomplete (that is
13148
+ `"Draft"`). Setting a parent `Inactive` means no `Active` row may
13149
+ remain under it — the save rejects an `Active` row under an
13150
+ `Inactive` parent (`[inactive_parent_active_child]` on `mappings`,
13151
+ no message text) and never cascades or promotes on its own; `Draft`
13152
+ descendants are kept as they are, and a `Draft` parent does not gate
13153
+ its children. The UI's Set inactive on a parent marks the parent and
13154
+ every child `Inactive` (IO-166197). Re-enabling a child
13155
+ means re-enabling its ancestors in the same payload. Edits that keep
13156
+ existing rows must carry their stored status forward — rewriting a
13157
+ `Draft` or `Inactive` row to `Active` turns a row the user parked
13158
+ back on.
13083
13159
  enum:
13084
13160
  - Active
13085
13161
  - Draft
13162
+ - Inactive
13086
13163
  x-enumDescriptions:
13087
- Active: The mapping is enabled and applied during processing.
13088
- Draft: In-progress mapping; saved without the Active-only field validations.
13164
+ Active: The mapping is enabled and applied during processing
13165
+ Draft: In-progress mapping; saved without the Active-only field validations and skipped at runtime
13166
+ Inactive: Disabled by the user; configuration kept, skipped at runtime and in preview
13089
13167
  examples:
13090
13168
  - Active
13091
13169
  conditional:
@@ -13114,6 +13192,10 @@ components:
13114
13192
  - `extract_not_empty`: Apply only when the extract field returns a value
13115
13193
  Useful for conditional mapping based on input data availability
13116
13194
 
13195
+ - `fail_record_when_empty`: Fail the record when the extract field returns
13196
+ no value (the UI's "Cause record to fail" action when the source field
13197
+ has no value)
13198
+
13117
13199
  **Example**
13118
13200
  ```json
13119
13201
  {
@@ -13126,28 +13208,75 @@ components:
13126
13208
  }
13127
13209
  }
13128
13210
  ```
13211
+ x-celigo-ai-guidance:
13212
+ - |-
13213
+ `when` holds one value, and two different settings share it: the
13214
+ composite-import operation gate (`record_created` / `record_updated`,
13215
+ the UI's "Only perform mapping when") and the empty-source action
13216
+ (`extract_not_empty` / `fail_record_when_empty`, the UI's "Action to
13217
+ take if source field has no value"). A row cannot carry both — writing
13218
+ one replaces the other and the save succeeds, so a composite import
13219
+ row that needs both has to choose. Never author `fail_record_when_empty`
13220
+ on a row that already carries `record_created` or `record_updated`.
13129
13221
  properties:
13130
13222
  when:
13131
13223
  type: string
13132
13224
  description: |
13133
- Specifies the condition that triggers application of this mapping:
13134
- - record_created: Apply only when creating a new record
13135
- - record_updated: Apply only when updating an existing record
13136
- - extract_not_empty: Apply only when the extract field returns a value
13225
+ Condition that gates this mapping — either an operation gate on a
13226
+ composite (create-or-update) import or the action to take when the
13227
+ extract returns no value. Empty means null, undefined or an empty
13228
+ string; `0`, `false` and whitespace are values.
13229
+ x-celigo-ai-guidance:
13230
+ - |-
13231
+ `fail_record_when_empty` is the fourth "Action to take if source field
13232
+ has no value" and is mutually exclusive with the other three: send it
13233
+ with no `default` key. A `default`, a `lookupName` or a `hardCodedValue`
13234
+ on the same row — or a `default` on a `buildArrayHelper` entry — is
13235
+ rejected at save with `[unsupported_mapping] "<key>" and conditional.when
13236
+ "fail_record_when_empty" cannot be present in mapping simultaneously.`
13237
+ (the lookup variant adds `Use lookup "allowFailures" instead.`);
13238
+ lookups fail through `allowFailures: false`, and a hard-coded row
13239
+ always has a value. At runtime an empty extract fails the record with
13240
+ an `errors[]` entry `{code: "extract_empty", fatal: true, source:
13241
+ "mapping", message: "<generate>: Source field has no value"}`
13242
+ ("Input field has no value" in a Transformation 2.0); `0` and `false`
13243
+ are values and map through.
13137
13244
  enum:
13138
13245
  - record_created
13139
13246
  - record_updated
13140
13247
  - extract_not_empty
13248
+ - fail_record_when_empty
13141
13249
  x-enumDescriptions:
13142
- record_created: Apply this mapping only when creating a new record.
13143
- record_updated: Apply this mapping only when updating an existing record.
13144
- extract_not_empty: Apply this mapping only when the extract field returns a non-empty value.
13250
+ record_created: Apply this mapping only when creating a new record
13251
+ record_updated: Apply this mapping only when updating an existing record
13252
+ extract_not_empty: Apply this mapping only when the extract field returns a non-empty value
13253
+ fail_record_when_empty: Fail the record when the extract field returns no value
13145
13254
  examples:
13146
13255
  - record_created
13147
13256
  - record_updated
13148
13257
  - extract_not_empty
13258
+ - fail_record_when_empty
13149
13259
  required:
13150
13260
  - dataType
13261
+ if:
13262
+ properties:
13263
+ conditional:
13264
+ properties:
13265
+ when:
13266
+ const: fail_record_when_empty
13267
+ required:
13268
+ - when
13269
+ required:
13270
+ - conditional
13271
+ then:
13272
+ not:
13273
+ anyOf:
13274
+ - required:
13275
+ - default
13276
+ - required:
13277
+ - lookupName
13278
+ - required:
13279
+ - hardCodedValue
13151
13280
  Mappings:
13152
13281
  type: array
13153
13282
  description: |
@@ -13171,6 +13300,20 @@ components:
13171
13300
 
13172
13301
  The system will process these nested structures recursively during runtime, ensuring proper construction
13173
13302
  of complex hierarchical data while maintaining excellent performance.
13303
+
13304
+ On save, a leaf row with neither a source (`extract`, `hardCodedValue`, `lookupName`) nor a
13305
+ destination (`generate`) is dropped silently, at every nesting level, and so is an object or
13306
+ object-array row left with no source, no destination and no remaining child `mappings` or
13307
+ `buildArrayHelper` entries; a row with only one of the two, and a source-less, destination-less
13308
+ wrapper that still has children, are kept.
13309
+ x-celigo-ai-guidance:
13310
+ - |-
13311
+ Rows that exist in the saved document — including `Draft` and `Inactive` rows and
13312
+ rows with only a source or only a destination — are the user's state: an edit that
13313
+ re-sends the tree must carry them through unchanged unless the user asked to change
13314
+ them. Only a row with neither source nor destination — and, for an object or
13315
+ object-array row, no remaining children — can be left out; the save would drop it
13316
+ anyway. A wrapper with children but no `generate` is kept by the save, so keep it.
13174
13317
  items:
13175
13318
  type: object
13176
13319
  properties:
@@ -13450,7 +13593,8 @@ components:
13450
13593
  Explicit JSON `null` is itself a valid fallback: the destination field is written as
13451
13594
  JSON null when the extract yields nothing (the Mapper UI's "Use null as default value"
13452
13595
  action). Omitting the key entirely means no fallback — the field is left out of the
13453
- output when the extract is empty (the UI's "Do nothing" action).
13596
+ output when the extract is empty (the UI's "Do nothing" action). Failing the record
13597
+ instead is `conditional.when: fail_record_when_empty`, which excludes a default.
13454
13598
  x-celigo-ai-guidance:
13455
13599
  - |-
13456
13600
  `"default": null` and `"default": ""` are distinct saved values, not
@@ -13459,6 +13603,12 @@ components:
13459
13603
  Preserve them verbatim when editing or migrating a mapping — dropping
13460
13604
  the key changes runtime behavior from "use null/empty string as
13461
13605
  default value" to "do nothing" (field omitted from the output).
13606
+ - |-
13607
+ The four "Action to take if source field has no value" choices map to:
13608
+ do nothing → no `default` key (optionally `conditional.when:
13609
+ extract_not_empty`); use null → `"default": null`; use empty string or
13610
+ a custom value → `"default": "<value>"`; cause the record to fail →
13611
+ `conditional.when: fail_record_when_empty` with no `default` key.
13462
13612
  examples:
13463
13613
  - N/A
13464
13614
  - '0'
@@ -13791,6 +13941,22 @@ components:
13791
13941
  - $.order.lineItems[*]
13792
13942
  - $.parents[*].children[*]
13793
13943
  - $
13944
+ name:
13945
+ type: string
13946
+ maxLength: 200
13947
+ description: |
13948
+ Display label for this source object in the mapper, so the sources of
13949
+ an object array can be told apart instead of all showing as `$`.
13950
+ Has no effect at runtime; stored only when non-empty.
13951
+ x-celigo-ai-guidance:
13952
+ - |-
13953
+ Carry an existing `name` through every edit — it is the user's label
13954
+ for the tab, and an entry sent without it loses the label. Duplicate
13955
+ names across entries are allowed. Set one only when the user names
13956
+ the source object; never invent labels.
13957
+ examples:
13958
+ - Billing address
13959
+ - Shipping address
13794
13960
  sourceDataType:
13795
13961
  type: string
13796
13962
  description: |
@@ -13839,17 +14005,31 @@ components:
13839
14005
  type: object
13840
14006
  description: |
13841
14007
  Defines conditional rules for including each array element in the result.
14008
+ x-celigo-ai-guidance:
14009
+ - |-
14010
+ Judged against this entry's own `extract` (the array source). The
14011
+ design scopes the UI's tab-level "Action to take if source field has
14012
+ no value" to copy-as-is tabs (no child `mappings`); the API accepts
14013
+ `fail_record_when_empty` on a mapped entry as well, and the mapper
14014
+ processor honors it there — the record fails when that array is
14015
+ missing or empty (`errors[]` entry `code: extract_empty`, `fatal:
14016
+ true`, message `<generate>: Source field has no value`; probed
14017
+ 2026-10-09). Say so when writing it on a mapped entry: the user may
14018
+ not find the setting in the mapper's tab. To fail on an empty field
14019
+ inside each element, set the action on that child mapping instead.
13842
14020
  properties:
13843
14021
  when:
13844
14022
  type: string
13845
14023
  description: |
13846
- Specifies the condition that must be met for an array element to be included.
13847
-
13848
- 'extract_not_empty' only includes elements where the extract field returns a value.
14024
+ Condition judged on the entry's extract — skip the elements the
14025
+ extract does not return, or fail the whole record when the source
14026
+ array is missing or empty.
13849
14027
  enum:
13850
14028
  - extract_not_empty
14029
+ - fail_record_when_empty
13851
14030
  x-enumDescriptions:
13852
- extract_not_empty: Include the array element only when the extract field returns a non-empty value.
14031
+ extract_not_empty: Include an array element only when the extract returns a non-empty value for it
14032
+ fail_record_when_empty: Fail the record when the entry's source array is missing or empty
13853
14033
  examples:
13854
14034
  - extract_not_empty
13855
14035
  mappings:
@@ -13949,6 +14129,20 @@ components:
13949
14129
  extract: $.price
13950
14130
  dataType: number
13951
14131
  status: Active
14132
+ if:
14133
+ properties:
14134
+ conditional:
14135
+ properties:
14136
+ when:
14137
+ const: fail_record_when_empty
14138
+ required:
14139
+ - when
14140
+ required:
14141
+ - conditional
14142
+ then:
14143
+ not:
14144
+ required:
14145
+ - default
13952
14146
  status:
13953
14147
  type: string
13954
14148
  description: |
@@ -13956,9 +14150,10 @@ components:
13956
14150
  Required on every mapping entry. Controls whether the mapping is applied.
13957
14151
 
13958
14152
  **Guidance**
13959
- Emit `"Active"` for mappings that should run; `"Draft"` saves an
13960
- in-progress mapping without the Active-only field validations. The
13961
- API rejects a mapping missing this field
14153
+ Only `Active` rows run. `Draft` and `Inactive` rows keep their
14154
+ configuration, are saved with minimal validation, and are skipped at
14155
+ runtime and in preview; a non-Active parent skips its whole subtree
14156
+ whatever its children say. The API rejects a mapping missing this field
13962
14157
  (validation error: "Mapping object must have status field present.").
13963
14158
  x-celigo-ai-guidance:
13964
14159
  - |-
@@ -13967,12 +14162,28 @@ components:
13967
14162
  field validations. The value is case-sensitive. The API rejects:
13968
14163
  - Missing field: `[status_field_absent] Mapping object must have status field present.`
13969
14164
  - Wrong case (e.g. `"active"`): `[invalid_status_enums] active is not a valid enum for status field.`
14165
+ - |-
14166
+ `"Inactive"` is the user's "Set inactive" on a row: use it only when
14167
+ asked to disable or park a row, never to mean incomplete (that is
14168
+ `"Draft"`). Setting a parent `Inactive` means no `Active` row may
14169
+ remain under it — the save rejects an `Active` row under an
14170
+ `Inactive` parent (`[inactive_parent_active_child]` on `mappings`,
14171
+ no message text) and never cascades or promotes on its own; `Draft`
14172
+ descendants are kept as they are, and a `Draft` parent does not gate
14173
+ its children. The UI's Set inactive on a parent marks the parent and
14174
+ every child `Inactive` (IO-166197). Re-enabling a child
14175
+ means re-enabling its ancestors in the same payload. Edits that keep
14176
+ existing rows must carry their stored status forward — rewriting a
14177
+ `Draft` or `Inactive` row to `Active` turns a row the user parked
14178
+ back on.
13970
14179
  enum:
13971
14180
  - Active
13972
14181
  - Draft
14182
+ - Inactive
13973
14183
  x-enumDescriptions:
13974
- Active: The mapping is enabled and applied during processing.
13975
- Draft: In-progress mapping; saved without the Active-only field validations.
14184
+ Active: The mapping is enabled and applied during processing
14185
+ Draft: In-progress mapping; saved without the Active-only field validations and skipped at runtime
14186
+ Inactive: Disabled by the user; configuration kept, skipped at runtime and in preview
13976
14187
  examples:
13977
14188
  - Active
13978
14189
  conditional:
@@ -14001,6 +14212,10 @@ components:
14001
14212
  - `extract_not_empty`: Apply only when the extract field returns a value
14002
14213
  Useful for conditional mapping based on input data availability
14003
14214
 
14215
+ - `fail_record_when_empty`: Fail the record when the extract field returns
14216
+ no value (the UI's "Cause record to fail" action when the source field
14217
+ has no value)
14218
+
14004
14219
  **Example**
14005
14220
  ```json
14006
14221
  {
@@ -14013,28 +14228,75 @@ components:
14013
14228
  }
14014
14229
  }
14015
14230
  ```
14231
+ x-celigo-ai-guidance:
14232
+ - |-
14233
+ `when` holds one value, and two different settings share it: the
14234
+ composite-import operation gate (`record_created` / `record_updated`,
14235
+ the UI's "Only perform mapping when") and the empty-source action
14236
+ (`extract_not_empty` / `fail_record_when_empty`, the UI's "Action to
14237
+ take if source field has no value"). A row cannot carry both — writing
14238
+ one replaces the other and the save succeeds, so a composite import
14239
+ row that needs both has to choose. Never author `fail_record_when_empty`
14240
+ on a row that already carries `record_created` or `record_updated`.
14016
14241
  properties:
14017
14242
  when:
14018
14243
  type: string
14019
14244
  description: |
14020
- Specifies the condition that triggers application of this mapping:
14021
- - record_created: Apply only when creating a new record
14022
- - record_updated: Apply only when updating an existing record
14023
- - extract_not_empty: Apply only when the extract field returns a value
14245
+ Condition that gates this mapping — either an operation gate on a
14246
+ composite (create-or-update) import or the action to take when the
14247
+ extract returns no value. Empty means null, undefined or an empty
14248
+ string; `0`, `false` and whitespace are values.
14249
+ x-celigo-ai-guidance:
14250
+ - |-
14251
+ `fail_record_when_empty` is the fourth "Action to take if source field
14252
+ has no value" and is mutually exclusive with the other three: send it
14253
+ with no `default` key. A `default`, a `lookupName` or a `hardCodedValue`
14254
+ on the same row — or a `default` on a `buildArrayHelper` entry — is
14255
+ rejected at save with `[unsupported_mapping] "<key>" and conditional.when
14256
+ "fail_record_when_empty" cannot be present in mapping simultaneously.`
14257
+ (the lookup variant adds `Use lookup "allowFailures" instead.`);
14258
+ lookups fail through `allowFailures: false`, and a hard-coded row
14259
+ always has a value. At runtime an empty extract fails the record with
14260
+ an `errors[]` entry `{code: "extract_empty", fatal: true, source:
14261
+ "mapping", message: "<generate>: Source field has no value"}`
14262
+ ("Input field has no value" in a Transformation 2.0); `0` and `false`
14263
+ are values and map through.
14024
14264
  enum:
14025
14265
  - record_created
14026
14266
  - record_updated
14027
14267
  - extract_not_empty
14268
+ - fail_record_when_empty
14028
14269
  x-enumDescriptions:
14029
- record_created: Apply this mapping only when creating a new record.
14030
- record_updated: Apply this mapping only when updating an existing record.
14031
- extract_not_empty: Apply this mapping only when the extract field returns a non-empty value.
14270
+ record_created: Apply this mapping only when creating a new record
14271
+ record_updated: Apply this mapping only when updating an existing record
14272
+ extract_not_empty: Apply this mapping only when the extract field returns a non-empty value
14273
+ fail_record_when_empty: Fail the record when the extract field returns no value
14032
14274
  examples:
14033
14275
  - record_created
14034
14276
  - record_updated
14035
14277
  - extract_not_empty
14278
+ - fail_record_when_empty
14036
14279
  required:
14037
14280
  - dataType
14281
+ if:
14282
+ properties:
14283
+ conditional:
14284
+ properties:
14285
+ when:
14286
+ const: fail_record_when_empty
14287
+ required:
14288
+ - when
14289
+ required:
14290
+ - conditional
14291
+ then:
14292
+ not:
14293
+ anyOf:
14294
+ - required:
14295
+ - default
14296
+ - required:
14297
+ - lookupName
14298
+ - required:
14299
+ - hardCodedValue
14038
14300
  Lookups:
14039
14301
  type: array
14040
14302
  description: |