# 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
  mtk-wifi-transmit-power-chain: &mtk-wifi-transmit-power-chain
    description: "[mtk] WiFi power chain for use with MediaTek mt7921 driver. Limits
      in units of 0.25 dBm."
    type: object
    properties:
      limit-2g:
        description: "2G band power limit. (0.25 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
      limit-5g-1:
        description: "5G band 1 power limit: 5.15G-5.35G frequency. (0.25 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
      limit-5g-2:
        description: "5G band 2 power limit: 5.35G-5.47G frequency. (0.25 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
      limit-5g-3:
        description: "5G band 3 power limit: 5.47G-5.725G frequency. (0.25 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
      limit-5g-4:
        description: "5G band 4 power limit: 5.725G-5.95G frequency. (0.25 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
    additionalProperties: false
  mtk-wifi-geo-transmit-power-chain: &mtk-wifi-geo-transmit-power-chain
    description: "[mtk] WiFi power chain of regulatory domain for use with MediaTek mt7921 driver.
      Limits in units of 0.25 dBm, Offset in units of 0.25 dBm"
    type: object
    properties:
      limit-2g:
        description: "2G band geo power limit. (0.25 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
      limit-5g:
        description: "5G band geo power limit. (0.25 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
      offset-2g:
        description: "Value to be added to the 2.4GHz WiFi band. (0.25 dBm)"
        type: integer
        minimum: 0x0
        maximum: 0xFF
      offset-5g:
        description: "Value to be added to all 5GHz WiFi bands. (0.25 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, mtk 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:
                    tablet-mode-power-table-mtk: *mtk-wifi-transmit-power-chain
                    non-tablet-mode-power-table-mtk: *mtk-wifi-transmit-power-chain
                    fcc-power-table-mtk: *mtk-wifi-geo-transmit-power-chain
                    eu-power-table-mtk: *mtk-wifi-geo-transmit-power-chain
                    rest-of-world-power-table-mtk: *mtk-wifi-geo-transmit-power-chain
                  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: Switches passed to the Ash window manager and
                      system UI. Each entry should be a string of the form
                      --<key>=<value>, or --<key> for boolean switches. 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
                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
