# SPDX-License-Identifier: Apache-2.0
#
# Copyright (c) 2023, Nordic Semiconductor ASA

## A pykwalify schema for basic validation of the structure of a
## arch metadata YAML file.
##
# The archs.yml file is a simple list of key value pairs containing architectures
# and their location which is used by the build system.
type: map
mapping:
  archs:
    required: true
    type: seq
    sequence:
      - type: map
        mapping:
          name:
            required: true
            type: str
            desc: Name of the arch
          path:
            required: true
            type: str
            desc: Location of the arch implementation relative to the archs.yml file.
          comment:
            required: false
            type: str
            desc: Free form comment with extra information regarding the arch.
