// This is included in the following assemblies:
//
// * installing/installing_bare_metal/bare-metal-postinstallation-configuration.adoc

:_mod-docs-content-type: REFERENCE
[id="bmo-about-the-firmwareschema-resource_{context}"]
= About the FirmwareSchema resource

BIOS settings vary among hardware vendors and host models. A `FirmwareSchema` resource is a read-only resource that contains the types and limits for each BIOS setting on each host model. The data comes directly from the BMC through Ironic. The `FirmwareSchema` enables you to identify valid values you can specify in the `spec` field of the `HostFirmwareSettings` resource. The `FirmwareSchema` resource has a unique identifier derived from its settings and limits. Identical host models use the same `FirmwareSchema` identifier. It is likely that multiple instances of `HostFirmwareSettings` use the same `FirmwareSchema`.

.FirmwareSchema specification
[options="header"]
|====
|Parameters|Description

a|
----
<BIOS_setting_name>
  attribute_type:
  allowable_values:
  lower_bound:
  upper_bound:
  min_length:
  max_length:
  read_only:
  unique:
----

a| The `spec` is a simple map consisting of the BIOS setting name and the limits of the setting. The fields include:

* `attribute_type`: The type of setting. The supported types are:
** `Enumeration`
** `Integer`
** `String`
** `Boolean`
* `allowable_values`: A list of allowable values when the `attribute_type` is `Enumeration`.
* `lower_bound`: The lowest allowed value when `attribute_type` is `Integer`.
* `upper_bound`: The highest allowed value when `attribute_type` is `Integer`.
* `min_length`: The shortest string length that the value can have when `attribute_type` is `String`.
* `max_length`: The longest string length that the value can have when `attribute_type` is `String`.
* `read_only`: The setting is read only and cannot be modified.
* `unique`: The setting is specific to this host.

|====
