Mutually Exclusive Fields¶
Mutually Exclusive Fields
is a Schema Constraint.
It ensures that, out of a set of fields, only one field is defined at any time.
Usage Example¶
In the below example, only one of the fields (alpha
, beta
, and gamma
) can be defined.
TEST_EXCLUSIVE_FIELDS = """
schema:
name: One
package: test.exclusive_fields
root: one
fields:
- name: name
type: string
is_required: true
- name: alpha
type: string
- name: beta
type: string
- name: gamma
type: string
constraints:
- name: Mutually exclusive fields
arguments:
fields:
- alpha
- beta
Here, alpha
is the only one defined. This would pass the Mutaully Exclusive Fields
constraint.
GOOD_DATA_1 = """
one:
name: GoodOne
Here, both alpha
and beta
are defined, which would fail the Mutaully Exclusive Fields
constraint.
BAD_DATA_1 = """
one:
name: BadOne
alpha: alpha