# Copyright 2016 The Chromium OS Authors. All rights reserved.
# Use of this source code is governed by a BSD-style license that can be
# found in the LICENSE file.
imports:
- "power_manager_prefs_schema.yaml"

"$schema": http://json-schema.org/draft-07/schema#
typeDefs:
  bcs-file-name: &bcs_file_name
    type: string
    build-only-element: true
    description: Name of the file located in BCS under the respective bcs-overlay.
  deprecated_string: &deprecated_string
    type: string
    description: A deprecated string property to be removed after migration.
  firmware-build-target: &firmware_build_target
    type: string
    description: Build target that will be considered dirty when building/testing
      locally.
  proximity-sensor-items: &proximity_sensor_items
    type: object
    properties:
      channel:
        description: Proximity sensor channel.
        type: string
        pattern: "^[a-zA-Z0-9_]+$"
      hardwaregain:
        description: Proximity sensor hardware gain.
        type: string
        pattern: "^[0-9.]+$"
      sampling-frequency:
        description: Proximity sensor sampling frequency.
        type: string
        pattern: "^[0-9.]+$"
      thresh-rising:
        description: Proximity sensor rising threshold.
        type: string
        pattern: "^[0-9.]+$"
      thresh-falling:
        description: Proximity sensor falling threshold.
        type: string
        pattern: "^[0-9.]+$"
      thresh-falling-period:
        description: Proximity sensor falling threshold period (debounce).
        type: string
        pattern: "^[0-9.]+$"
      thresh-rising-period:
        description: Proximity sensor rising threshold period (debounce).
        type: string
        pattern: "^[0-9.]+$"
      thresh-falling-hysteresis:
        description: Proximity sensor falling hysteresis.
        type: string
        pattern: "^[0-9.]+$"
      thresh-rising-hysteresis:
        description: Proximity sensor rising hysteresis.
        type: string
        pattern: "^[0-9.]+$"
    additionalProperties: false
  # TODO(shapiroc): Migrate to use system-file-v2 instead
  system-file: &system_file
    type: object
    properties:
      source:
        description: Source of the file relative to the build system.
        type: string
      destination:
        description: Installation path for the file on the system image.
        type: string
    additionalProperties: false
  # V2 exists because system-file targets were poorly named, so they couldn't
  # be logically shared for build-time and run-time usage.
  system-file-v2: &system_file_v2
    type: object
    properties:
      build-path:
        description: Source of the file relative to the build system.
        build-only-element: true
        type: string
      system-path:
        description: Installation path for the file on the system image.
        type: string
    additionalProperties: false
    required:
      - build-path
      - system-path
  firmware-file: &firmware_file
    type: object
    properties:
      source:
        description: Source of the file relative to the build system ${FILESDIR}
        type: string
      destination:
        description: Installation path for the file on the system image.
        type: string
      symlink:
        description: Symlink file that will be installed pointing to the destination.
        type: string
    additionalProperties: false
  sku-id: &sku_id
    description: SKU/Board strapping pins [configured during board manufacturing](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/design_docs/cros_board_info.md#SKU_ID). Leaving this value unset will cause the config to match any SKU ID.
    type: integer
    minimum: -1
    maximum: 0x7FFFFFFF
  whitelabel-tag: &whitelabel_tag
    description: "'whitelabel_tag' value set in the VPD, to add Whitelabel branding over an unbranded base model."
    type: string
  customization-id: &customization_id
    description: "'customization_id' value set in the VPD for non-unibuild Zergs and Whitelabels. Deprecated for use in new products since 2017/07/26."
    type: string
  platform-name: &platform_name
    description: "Defines the name of the mosys platform used. Mosys is the only software which is allowed to used this value."
    type: string
  stylus-category: &stylus-category
    description: "Denotes the category of stylus this device contains."
    type: string
    enum:
    - none
    - internal
    - external
  psu-type: &psu-type
    description: |
      Type of PSU the device has:
      - battery: the device has a battery intended for primary use
      - AC_primary: the device has a battery, but it is not intended for primary use
      - AC_only: the device has no battery
      - no_power: the device does not receive power in any direct manner (e.g., it is virtualized)
    type: string
    enum:
      - battery
      - AC_primary
      - AC_only
      - no_power
  display-type: &display-type
    description: "Denotes the type of display this device contains."
    type: string
    enum:
    - default
    - old
  form-factor: &form-factor
    description: "Denotes the form factor of the device."
    type: string
    enum:
     - CHROMEBASE
     - CHROMEBIT
     - CHROMEBOOK
     - CHROMEBOX
  ath10k-wifi-transmit-power-chain: &ath10k-wifi-transmit-power-chain
    description: "[ath10k] WiFi power chain for use with QCA ath10k drivers. Limits
      in units of 0.25 dBm. 5g band power limit applies to all 5g bands."
    type: object
    properties:
      limit-2g:
        description: "2G band power limit (0.25dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
      limit-5g:
        description: "5G band power limit (0.25dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
    additionalProperties: false
  rtw-wifi-transmit-power-chain: &rtw-wifi-transmit-power-chain
    description: "[rtw] WiFi power chain for use with Realtek rtw88 drivers. Limits
      in units of 0.125 dBm. 5g band 2 (channels 5.35G-5.47G) power limit is not supported."
    type: object
    properties:
      limit-2g:
        description: "2G band power limit: All 2G band channels. (0.125 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
      limit-5g-1:
        description: "5G band 1 power limit: 5.15G-5.35G channels. (0.125 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
      limit-5g-3:
        description: "5G band 3 power limit: 5.47G-5.725G channels. (0.125 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
      limit-5g-4:
        description: "5G band 4 power limit: 5.725G-5.95G channels. (0.125 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
    additionalProperties: false
  wifi-geo-offsets: &wifi-geo-offsets
    description: "Offsets which are applied to WiFi power limits depending on the
      current regulatory domain. Offsets in units of 0.125 dBm. The sum of a geo
      offset and any power limit to which it applies cannot exceed 255.
      When the current regulatory domain is unknown or has yet to be determined,
      the base transmit power limits are used without any geo offsets applied.
      'geo-offsets-fcc' is used for regulatory domains which follow FCC guidelines,
      'geo-offsets-eu' is used for regulatory domains which follow ETSI guidelines, and
      'geo-offsets-rest-of-world' is used for regulatory domains which don't follow
      FCC or ETSI guidelines."
    type: object
    properties:
      offset-2g:
        description: "Value to be added to the 2.4GHz WiFi band. (0.125 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
      offset-5g:
        description: "Value to be added to all 5GHz WiFi bands. (0.125 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
    additionalProperties: false
type: object
properties:
  chromeos:
    type: object
    properties:
      configs:
        type: array
        items:
          type: object
          properties:
            arc:
              type: object
              required:
                - build-properties
              properties:
                build-properties:
                  type: object
                  required:
                    - first-api-level
                    - product
                    - device
                    - metrics-tag
                  properties:
                    product:
                      description: Product name to report in 'ro.product.name'.
                        This may be the device name, or it can be something else, to allow
                        several devices to be grouped into one product.
                      type: string
                    device:
                      description: Device name to report in 'ro.product.device'. This
                        is often '{product}_cheets' but it can be something else if
                        desired.
                      type: string
                    oem:
                      description: Original Equipment Manufacturer for this model. This
                        generally means the OEM name printed on the device.
                      type: string
                    marketing-name:
                      description: Name of this model as it is called in the
                        market, reported in 'ro.product.model'. This often starts
                        with '{oem}'.
                      type: string
                    metrics-tag:
                      description: Tag to use to track metrics for this model.
                        The tag can be shared across many devices if desired, but
                        this will result in larger granularity for metrics
                        reporting.  Ideally the metrics system should support
                        collation of metrics with different tags into groups, but if
                        this is not supported, this tag can be used to achieve the
                        same end.  This is reported in 'ro.product.metrics.tag'.
                      type: string
                    first-api-level:
                      description: |
                        The first Android API level that this model shipped with.
                      type: string
                    pai-regions:
                      description: |
                        (Optional) Comma-separated allow list of region codes
                        that can be appended to 'ro.oem.key1' for the purpose of
                        targeting Play Auto Install applications by region. The
                        value(s) should match the values that would be returned
                        by `cros_region_data region_code` for the relevant
                        region(s). If the device's region code is not in the
                        allow list, or if there is no allow list, 'ro.oem.key1'
                        will not include the region code. The allow list can
                        also be a single '*' character to indicate that the
                        region code should always be appended.
                      type: string
                      pattern: "(^([a-zA-Z0-9\\.\\-]+,)*[a-zA-Z0-9\\.\\-]+$)|(^\\*$)"
                  additionalProperties: false
                hardware-features:
                  <<: *system_file_v2
                  description: |
                    Defines hardware_features.xml file provided to ARC during
                    initialization.
                media-profiles:
                  <<: *system_file_v2
                  description: |
                    Defines media_profiles.xml file provided to ARC during
                    initialization.
                scale:
                  type: integer
                  description: The screen density value in dpi that will be used
                    for ARC apps. This value should be from the list of DPIs in
                    android cdd.
                  enum:
                    - 280
              additionalProperties: false
            nnpalm:
              type: object
              properties:
                touch-compatible:
                  description: Optional - false by default but should be true for compatible devices.
                  type: boolean
                radius-polynomial:
                  description: Optional - empty by default.
                  type: string
              additionalProperties: false
            audio:
              type: object
              properties:
                main:
                  type: object
                  properties:
                    cras-config-dir:
                      description: Subdirectory for model-specific configuration.
                      type: string
                    disable-profile:
                      description: Optional --disable_profile parameter for CRAS deamon.
                      type: string
                    ucm-suffix:
                      description: Optional UCM suffix used to determine model specific
                        config.
                      type: string
                    sound-card-init-conf:
                      description: Optional model specific config filename for sound_card_init.
                      type: string
                    files:
                      type: array
                      build-only-element: true
                      items: *system_file
                  additionalProperties: false
                  required:
                  - cras-config-dir
              additionalProperties: false
              required:
              - main
            bluetooth:
              type: object
              properties:
                flags:
                  type: object
                  properties:
                    enable-suspend-management:
                      description: Enable powerd suspend management callbacks.
                      type: boolean
                    # TODO(abhishekpandit) - Remove once no longer used
                    stop-on-suspend:
                      description: Stop the bluetooth adapter on suspend and start it on resume.
                      type: boolean
                    reset-on-resume:
                      description: Expect bluetooth chip to have reset on resume.
                      type: boolean
                  additionalProperties: false
              additionalProperties: false
            wifi:
              type: object
              description: Sets limits on maximum WiFi transmit power for tablet and non-tablet
                device configurations. This config must contain properties for ath10k wifi driver,
                rtw88 wifi driver, or intel driver. Note that configs for the intel driver are
                delivered as encoded wifi sar hex files.
              oneOf:
                - properties:
                    tablet-mode-power-table-ath10k: *ath10k-wifi-transmit-power-chain
                    non-tablet-mode-power-table-ath10k: *ath10k-wifi-transmit-power-chain
                  additionalProperties: false
                - properties:
                    tablet-mode-power-table-rtw: *rtw-wifi-transmit-power-chain
                    non-tablet-mode-power-table-rtw: *rtw-wifi-transmit-power-chain
                    geo-offsets-fcc: *wifi-geo-offsets
                    geo-offsets-eu: *wifi-geo-offsets
                    geo-offsets-rest-of-world: *wifi-geo-offsets
                  additionalProperties: false
                - properties:
                    sar-file: *system_file_v2
                  build-only-element: true
                  additionalProperties: false
            brand-code:
              description: Brand code of the model (also called RLZ code).
              type: string
            camera:
              type: object
              properties:
                count:
                  type: integer
                  description: Specified the number of cameras on the model.
                config-file:
                  <<: *system_file_v2
                  description: Defines the camera configuration file.
                clock:
                  type: string
                  description: Specified the camera clock on the model.
                  enum:
                  - monotonic
                  - boottime
                legacy-usb:
                  type: boolean
                  description: Indicates if the device has legacy usb cameras.
                zsl-lookback:
                  type: integer
                  description: Specifies the duration to look back for
                    Zero-Shutter Lag (ZSL) in milliseconds.
                devices:
                  type: array
                  description: List of camera devices on the model. Newly
                    created models should use this property to define camera
                    configuration.
                  items:
                    type: object
                    properties:
                      has-privacy-switch:
                        type: boolean
                        description: The camera has a privacy switch that
                          can disable the output when enabled.
                      interface:
                        type: string
                        description: The interface type of the camera device.
                        enum:
                        - usb
                        - mipi
                      facing:
                        type: string
                        description: Direction the camera faces relative to
                          device screen.
                        enum:
                        - front
                        - back
                      orientation:
                        type: integer
                        description: Clockwise angle through which the output
                          image needs to be rotated to be upright on the device
                          screen in its native orientation.
                        enum:
                        - 0
                        - 90
                        - 180
                        - 270
                      flags:
                        type: object
                        description: Bit flags representing camera capabilities
                          of this device. A camera module can be mounted on this
                          slot only if all the flags match.
                        properties:
                          support-1080p:
                            type: boolean
                            description: Supports 1920x1080 resolution.
                          support-autofocus:
                            type: boolean
                            description: Supports auto-focus.
                        required:
                        - support-1080p
                        - support-autofocus
                        additionalProperties: false
                      ids:
                        type: array
                        description: List of strings each identifies a possible
                          camera module on this slot. An empty list means this
                          information is not available.
                        items:
                          type: string
                          description: An identifier string of camera module.
                            For USB cameras this must be 4-digit hexadecimal VID
                            and PID separated by a colon, e.g. 0123:abcd. For
                            MIPI cameras it depends on vendor software usage.
                    if:
                      properties:
                        interface:
                          const: usb
                    then:
                      properties:
                        ids:
                          items:
                            pattern: "[0-9a-f]{4}:[0-9a-f]{4}"
                    required:
                    - interface
                    - facing
                    - orientation
                    - flags
                    additionalProperties: false
              additionalProperties: false
            fingerprint:
              type: object
              description: Contains details about the model's fingerprint implementation.
              properties:
                board:
                  type: string
                  description: Specifies the fingerprint board in use.
                sensor-location:
                  description: Specifies the location of the fingerprint sensor.
                  type: string
                  enum:
                  - none # Explicitly not supported.
                  - power-button-top-left
                  - keyboard-bottom-left
                  - keyboard-bottom-right
                  - keyboard-top-right
                  - right-side
                  - left-side
                fingerprint-sensor-type:
                  description: Type of FP sensor. Currently describes whether FP
                    is overlapped on the power button or not.
                  type: string
                  enum:
                    - stand-alone
                    - on-power-button
                ro-version:
                  description: RO version for the fingerprint firmware for the
                    FPMCU specified by the "board" property. If not specified,
                    the default RO version for the FPMCU is used.
                  type: string
                  build-only-element: true
              additionalProperties: false
              dependencies:
                ro-version:
                  - board
            firmware:
              type: object
              properties:
                bcs-overlay:
                  description: BCS overlay path used to determine BCS file path for binary
                    firmware downloads.
                  type: string
                  build-only-element: true
                build-targets:
                  type: object
                  build-only-element: true
                  properties:
                    base:
                      description: Build target of the base EC firmware for a detachable device,
                        that will be considered dirty when building/testing
                      type: string
                    ec_extras:
                      type: array
                      items:
                        type: string
                        description: Extra EC build targets to build within chromeos-ec.
                    coreboot: *firmware_build_target
                    gsc: *firmware_build_target
                    depthcharge: *firmware_build_target
                    ec: *firmware_build_target
                    ish: *firmware_build_target
                    libpayload: *firmware_build_target
                    u-boot: *firmware_build_target
                    zephyr-ec:
                      type: string
                      description: Specifies the list of Zephyr-based firmware
                        targets to build.
                  additionalProperties: false
                ec-ro-image: *bcs_file_name
                pd-ro-image: *bcs_file_name
                key-id:
                  description: Key ID from the signer key set that is used to sign the
                    given firmware image.
                  type: string
                  build-only-element: true
                main-ro-image: *bcs_file_name
                main-rw-image: *bcs_file_name
                name:
                  description: This is a human-recognizable name used to refer to the firmware.
                    It will be used when generating the shellball via firmware packer.
                    Mainly, this is only for compatibility testing with device tree (since DT
                    allowed firmwares to be named).
                  type: string
                  build-only-element: true
                image-name:
                  description: The name of the firmware image used by the
                    firmware updater. Typically the device name, but can differ
                    when a device may have two or more different firmware
                    images.
                  type: string
                  build-only-element: false
                no-firmware:
                  description: Does nothing and pending removal. Do not set.
                    ([Bug](https://crbug.com/1072007))
                  type: boolean
                  build-only-element: true
                firmware-config:
                  description: The firmware config bitmap to be flashed to the CBI. This field is
                    used in the factory.
                  type: integer
                  build-only-element: false
              additionalProperties: false
            firmware-signing:
              type: object
              build-only-element: true
              properties:
                key-id:
                  description: Key ID from the signer key set that is used to sign the
                    given firmware image.
                  type: string
                signature-id:
                  description: ID used to generate keys/keyblocks in the firmware
                    signing output.
                  type: string
                sig-id-in-customization-id:
                  description: Indicates that this model cannot be decoded by the mapping table.
                    Instead the model is stored in the VPD (Vital Product Data) region in the
                    customization_id property. This allows us to determine the
                    model to use in the factory during the finalization stage. Note
                    that if the VPD is wiped then the model will be lost. This may
                    mean that the device will revert back to a generic model, or
                    may not work. It is not possible in general to test whether the
                    model in the VPD is correct at run-time. We simply assume that
                    it is. The advantage of using this property is that no hardware
                    changes are needed to change one model into another. For example
                    we can create 20 different whitelabel boards, all with the same
                    hardware, just by changing the customization_id that is written
                    into SPI flash.
                  type: boolean
              required:
                - key-id
                - signature-id
              additionalProperties: false
            detachable-base:
              type: object
              description: "Contains the configuration for the hammerd which
                is used to update the detachable base firmware."
              properties:
                ec-image-name:
                  description: "The target EC binary name which is placed under
                    /lib/firmware."
                  type: string
                touch-image-name:
                  description: "The touchpad binary name which is placed under
                    /lib/firmware. This is only needed if the detachable base
                    contains touchpad."
                  type: string
                vendor-id:
                  description: "The Vendor ID of the detachable base. This
                    value can be queried by command 'lsusb'.
                    By taking this as an example:
                    Bus 001 Device 032: ID 18d1:503c Google Inc.
                    the vendor-id is 6353(=0x18d1)."
                  type: integer
                product-id:
                  description: "The Product ID of the detachable base. This
                    value can be queried by command 'lsusb'.
                    By taking this as an example:
                    Bus 001 Device 032: ID 18d1:503c Google Inc.
                    the product-id is 20540(=0x503c)."
                  type: integer
                usb-path:
                  description: "Searches and finds the idVendor and idProduct
                    under sysfs /sys/bus/usb/devices/* which matches the
                    vendor-id and product-id. By taking this as an example:
                    '/sys/bus/usb/devices/1-1.1'
                    The usb-path is '1-1.1'."
                  type: string
                files:
                  type: array
                  build-only-element: true
                  items: *firmware_file
              additionalProperties: false
            identity:
              type: object
              description: Defines attributes that are used by cros_config to detect the identity
                of the platform and which corresponding config should be used.
                This tuple must either contain x86 properties only or ARM properties only.
              anyOf:
                - properties:
                    smbios-name-match:
                      description: "[x86] Firmware name built into the firmware and reflected back
                        out in the SMBIOS tables. Leaving this value unset will cause the config
                        to match any SMBIOS product name."
                      type: string
                    sku-id: *sku_id
                    platform-name: *platform_name
                    customization-id: *customization_id
                    whitelabel-tag: *whitelabel_tag
                  additionalProperties: false
                - properties:
                    device-tree-compatible-match:
                      description: "[ARM] String pattern (partial) that is matched against the
                        contents of /proc/device-tree/compatible on ARM devices."
                      type: string
                    sku-id: *sku_id
                    platform-name: *platform_name
                    customization-id: *customization_id
                    whitelabel-tag: *whitelabel_tag
                  additionalProperties: false
            name:
              type: string
              pattern: "^[_a-zA-Z0-9]{3,}"
              description: Google code name for the given model. While it is OK to use this string
                for human-display purposes (such as in a debug log or help dialog), or for a
                searchable-key in metrics collection, it is not recommended to use this property
                for creating model-specific behaviors. In this case, add a property to the schema
                which describes your behavior and use that instead.
            power:
              description: Defines settings that control power management functions.
                This mostly defines power_manager preferences, but there are a few
                other power related settings included.
                For details about each power_manager preference, see -
                src/platform2/power_manager/common/power_constants.h/cc
                For examples on setting these properties (including multiline examples), see
                the power config example in libcros_config/test.yaml
              type: object
              properties:
                <<: *powerd_prefs
                allow-ambient-eq:
                  description: Enable (1) or disable (0) Ambient EQ.
                  type: string
                  pattern: "^[01]$"
                autobrightness:
                  type: object
                  properties:
                    config-file: *system_file_v2
                  additionalProperties: false
                  required:
                  - config-file
                touchpad-wakeup:
                  description: Enable (1) or disable (0) wake from touchpad. If not set, default to enable. When set to enable, on many devices, firmware is in charge of controlling whether to wake from touchpad. This flag is reserved for older devices without firmware support (Nami and Coral) and please do not set for new devices.
                  type: string
                  pattern: "^[01]$"
              additionalProperties: false
            proximity-sensor:
              description: Defines the proximity sensor settings for devices such as /dev/proximity-wifi and /dev/proximity-wifi-lte typically used for SAR.
              type: object
              properties:
                lte: *proximity_sensor_items
                wifi: *proximity_sensor_items
                wifi-lte: *proximity_sensor_items
              additionalProperties: false
            test-label:
              description: Test alias (model) label that will be applied in Autotest and
                reported for test results.
              type: string
            thermal:
              type: object
              properties:
                dptf-dv:
                  description: System image path to the .dv file containing DPTF (Dynamic Platform
                    and Thermal Framework) settings.
                  type: string
                files:
                  type: array
                  build-only-element: true
                  items: *system_file
              additionalProperties: false
              required:
              - files
            touch:
              type: object
              properties:
                files:
                  type: array
                  build-only-element: true
                  items: *firmware_file
              additionalProperties: false
            wallpaper:
              description: Base filename of the default wallpaper to show on this device.
              type: string
            demo-mode:
              type: object
              description: Properties related to the ChromeOS Demo Mode, defining the user
                experience when the device is used in retail.
              additionalProperties: false
              properties:
                highlights-extension-id:
                  description: The Chrome extension ID of the highlights app used during demo mode.
                  type: string
                screensaver-extension-id:
                  description: The Chrome extension ID of the attract loop played during demo mode.
                  type: string
            regulatory-label:
              description: Base name of the directory containing the regulatory label
                files to show on this device.
              type: string
            ui:
              type: object
              properties:
                power-button:
                  type: object
                  properties:
                    edge:
                      type: string
                      enum:
                      - left
                      - right
                      - top
                      - bottom
                    position:
                      type: string
                  additionalProperties: false
                side-volume-button:
                  description: Defines the position of the side volume button. `region` indicates
                    whether the button is at the side of the "screen" or "keyboard" of the device.
                    `side` indicates which edge the button is anchored to while the device in
                    landscape primary screen orientation. It can be "left", "right", "top",
                    "bottom".
                  type: object
                  properties:
                    region:
                      type: string
                      enum:
                      - keyboard
                      - screen
                    side:
                      type: string
                      enum:
                      - left
                      - right
                      - top
                      - bottom
                  additionalProperties: false
                extra-ash-flags:
                  type: array
                  build-only-element: true
                  items:
                    type: string
                    pattern: "^--[a-zA-Z][a-zA-Z-]*(=.+)?$"
                    description: Flags passed to the Ash window manager and
                      system UI. Each entry should be a string of the form
                      --<key>=<value>, or --<key> for boolean flags. If this
                      property is not set, flags will be determined by other
                      cros_config properties. Serialized to a null byte
                      separated string when written to configfs.img
                handwriting-recognition-web-platform-api:
                  description: Whether the handwriting recognition web platform API
                    is supported.
                  type: boolean
                help-content-id:
                  description: Identifier passed to the Showoff app to identify
                    any device-specific help content to be displayed.
                  type: string
                apps:
                  type: object
                  properties:
                    extra-web-apps-dir:
                      type: string
                      build-only-element: true
                      description: Subdirectory of external web apps directory
                        (/usr/share/google-chrome/extensions/web_apps) containing
                        additional apps which should be installed on the device.
                      additionalProperties: false
              additionalProperties: false
            auto-night-light:
              description: Whether the auto-night-light feature is enabled on the device, which
                sets the schedule for Night light automatically to sunset-to-sunrise.
              type: boolean
            oem-id:
              description: |
                Some projects store SKU ID, OEM ID and Board Revision in an
                EEPROM and only SKU ID can be updated in the factory and RMA
                flow but others should be pre-flashed in the chip level. In
                this case, we would like to validate whether oem-id here from
                the updated SKU ID matches the one in the EEPROM so we can
                prevent this device from being updated to another OEM's devices.
              type: string
              pattern: "[0-9]+"
            modem:
              type: object
              properties:
                firmware-variant:
                  description: Variant of the modem firmware to be used. This
                    value is read by modemfwd to match against the variant field
                    of a firmware entry in a firmware manifest. In most cases,
                    we simply use the model name as the value.
                  type: string
                wedge-reboot-delay-ms:
                  description: Delay in milliseconds after which we pulse the
                    modem reset GPIO if it hasn't appeared on the USB bus.
                    This value is used by modemfwd and defaults to 5 minutes
                    if not defined.
                  type: string
                  pattern: "[0-9]+"
              additionalProperties: false
            cross-device:
              type: object
              description: Contains properties to configure cross-device features
                between ChromeOS devices and other devices, such as Instant
                Tethering and Smart Lock.
              properties:
                instant-tethering:
                  type: object
                  description: Contains properties to configure the Instant Tethering
                    cross-device feature.
                  properties:
                    disable-instant-tethering:
                      description: Disables the Instant Tethering feature.
                        false by default
                      type: boolean
                  additionalProperties: false
              additionalProperties: false
            hardware-properties:
              type: object
              description: Contains boolean flags or enums for hardware properties
                of this board, for example if it's convertible, has a touchscreen,
                has a camera, etc. This information is used to auto-generate C
                code that is consumed by the EC build process in order to do
                run-time configuration. If a value is defined within a config
                file, but not for a specific model, that value will be assumed
                to be false for that model. If a value is an enum and is not
                specified for a specific model, it will default to "none".
                All properties must be booleans or enums. If non-boolean
                properties are desired, the generation code in
                cros_config_schema.py must be updated to support them.
              properties:
                is-lid-convertible:
                  description: Can the lid be rotated 360 degrees.
                  type: boolean
                has-lid-accelerometer:
                  description: Is there an accelerometer in the lid of the
                    device.
                  type: boolean
                has-base-accelerometer:
                  description: Is there an accelerometer in the base of the
                    device.
                  type: boolean
                has-lid-gyroscope:
                  description: Is there a gyroscope in the lid of the device.
                  type: boolean
                has-base-gyroscope:
                  description: Is there a gyroscope in the base of the device.
                  type: boolean
                has-lid-magnetometer:
                  description: Is there a magnetometer in the lid of the device.
                  type: boolean
                has-base-magnetometer:
                  description: Is there a magnetometer in the base of the device.
                  type: boolean
                has-base-light-sensor:
                  description: Is there a light sensor in the base of the device.
                  type: boolean
                has-lid-light-sensor:
                  description: Is there a light sensor in the lid of the device.
                  type: boolean
                has-touchscreen:
                  description: Does the device have a touchscreen.
                  type: boolean
                has-backlight:
                  description: Does the device have a backlight.
                  type: boolean
                display-type: *display-type
                stylus-category: *stylus-category
                psu-type: *psu-type
                form-factor: *form-factor
              additionalProperties: false
            cros-healthd:
              type: object
              description: Contains properties used by cros_healthd for
                model-specific telemetry. Each property represents a category of
                information and contains boolean properties that indicate
                whether a device supports a particular telemetry item. See
                cros_healthd_probe.mojom for descriptions of each property.
              properties:
                battery:
                  type: object
                  properties:
                    has-smart-battery-info:
                      type: boolean
                  additionalProperties: false
                cached-vpd:
                  type: object
                  properties:
                    has-sku-number:
                      type: boolean
                  additionalProperties: false
              additionalProperties: false
            scheduler-tune:
              type: object
              description: ChromeOS scheduler's tunable values.
              properties:
                boost-urgent:
                  type: integer
                  description: (Optional) Scheduler's boost value(%) for urgent
                    tasks. When an urgent thread is created, chrome applies
                    this value to scheduler attribute. Tasks with higher
                    boost value are more likely to have higher operating
                    power point even when the system is low utilized.
                  minimum: 0
                  maximum: 100
                input-boost:
                  type: integer
                  description: (Optional) chromium kernel has a cpu-boost
                    feature, which boosts CPUs for a short duration when
                    user intraction is detected from input devices.
                    This value specifies how much CPUs will be boosted.
                  minimum: 0
                  maximum: 100
                cpuset-nonurgent:
                  type: string
                  pattern: "^[0-9]+(-[0-9]+|(,[0-9]+)+)$"
                  description: (Optional) non-urgent task are only allowed
                    to use given CPUs.
              additionalProperties: false
          additionalProperties: false
          required:
          - name
    additionalProperties: false
    required:
    - configs
