Required Fields¶
Required Fields
is a Schema Constraint that checks if a field is required, and confirms that required fields are defined.
Usage Example¶
fields:
- name: name
type: string
description: |
The name of the type.
is_required: true
- name: package
type: string
description: |
The 'dot notation' package name for the type. All type names must be unique within an assigned type.
The package will also define the directory structure produced by gen-plugin.
is_required: true
- name: description
type: string
description: |
A brief description of the type.
is_required: true
In the above example, the fields name
, package
, and description
are required. If any of these fields are not defined in a definition, it will fail the Required Fields
constraint.
NOTE: This constraint does not check for required fields of parent definitions.
schema:
name: AacType
package: aac.lang
modifiers:
- abstract
description: |
The base type for any data item defined in AaC.
fields:
- name: name
type: string
description: |
The name of the type.
is_required: true
- name: package
type: string
description: |
The 'dot notation' package name for the type. All type names must be unique within an assigned type.
The package will also define the directory structure produced by gen-plugin.
is_required: true
- name: description
type: string
description: |
A brief description of the type.
is_required: true
schema:
name: Schema
extends:
- package: aac.lang
name: AacType
package: aac.lang
root: schema
description: |
A definition that defines the schema/structure of data.
fields:
- name: extends
type: SchemaExtension[]
description: |
A list of Schema definition names that this definition inherits from.
- name: modifiers
type: dataref(modifier.name)[]
description:
A means of further defining the schema and how it can be used within the model.
- name: root
type: string
description: |
The root key to use when declaring an instance of the type in yaml/aac files.
- name: fields
type: Field[]
description: |
A list of fields that make up the definition.
is_required: true
- name: requirements
type: dataref(req.id)[]
description: |
A list of requirements associated with this schema.
- name: constraints
type: SchemaConstraintAssignment[]
In the above example, Schema
is an extension of AaCType
. So while a Schema
definition can use the name
, description
, and package
fields from AaCType
, the is_required
field does not carry over. If you want an extension’s field to be required, you will have to redefine the field.