# 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
                  - power-button-side-right
                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
                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
