# Preset

    struct Preset

Information about a preset.
- `


  ### [presetHandle](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/ExtendedThermostatTrait/Preset#/s:15GoogleHomeTypes0A0O23ExtendedThermostatTraitV6PresetV12presetHandleSSvp)


  ` The internal handle of the temperature preset that is used in commands and states. This
  handle can be non-user-friendly, and it is shared across all languages.

  #### Declaration

  Swift

      let presetHandle: String

- `


  ### [presetScenario](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/ExtendedThermostatTrait/Preset#/s:15GoogleHomeTypes0A0O23ExtendedThermostatTraitV6PresetV14presetScenarioAE0gI0Ovp)


  ` The type of this preset, which determines which icon will be used to represent this preset
  on touch surfaces.

  #### Declaration

  Swift

      let presetScenario: https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google.html.https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/ExtendedThermostatTrait.html.https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/ExtendedThermostatTrait/PresetScenario.html

- `


  ### [presetMaxHoldSeconds](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/ExtendedThermostatTrait/Preset#/s:15GoogleHomeTypes0A0O23ExtendedThermostatTraitV6PresetV20presetMaxHoldSecondss5Int32Vvp)


  ` The maximum number of seconds this preset can be held. A setting of `-1` means there is is
  no limit on the hold duration. If unset, holding this preset is not supported.

  #### Declaration

  Swift

      let presetMaxHoldSeconds: Int32

- `


  ### [names](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/ExtendedThermostatTrait/Preset#/s:15GoogleHomeTypes0A0O23ExtendedThermostatTraitV6PresetV5namesSayAE0G8SynonymsVGvp)


  ` Synonyms for the preset in each supported language.

  #### Declaration

  Swift

      let names: [https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google.html.https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/ExtendedThermostatTrait.html.https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/ExtendedThermostatTrait/PresetSynonyms.html]

- `


  ### [init(decoder:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/ExtendedThermostatTrait/Preset#/s:15GoogleHomeTypes0A0O23ExtendedThermostatTraitV6PresetV7decoderAG0aB3SDK0F7DecoderV_tKcfc)


  ` Creates a new Struct instance using data read from the given `TraitDecoder`.
  Throws
  `HomeError.parseError` when parsing fails.

  #### Declaration

  Swift

      init(decoder: TraitDecoder) throws

  #### Parameters

  |---|---|
  | ` decoder ` | The raw data representing this Struct. |

- `


  ### [encode(with:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/ExtendedThermostatTrait/Preset#/s:15GoogleHomeTypes0A0O23ExtendedThermostatTraitV6PresetV6encode4withy0aB3SDK0F7EncoderC_tKF)


  ` Writes this Struct to the given `TraitEncoder`.
  Throws `HomeError.parseError` if the data could not be encoded.

  #### Declaration

  Swift

      func encode(with encoder: TraitEncoder) throws

- `


  ### [structField(id:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Enums/Google/ExtendedThermostatTrait/Preset#/s:15GoogleHomeTypes0A0O23ExtendedThermostatTraitV6PresetV11structField2id0aB3SDK0I0_pSgs6UInt32V_tFZ)


  ` Returns the field corresponding to the given field ID.

  #### Declaration

  Swift

      static func structField(id: UInt32) -> (any Field)?