    struct GoogleDrawerDeviceType

Generated struct for the Google Drawer Device Type.

A device consisting of a sliding, lidless, horizontal compartment that may be drawn out from a
piece of furniture or a wall in order to gain access to it. Drawers can be opened and closed,
potentially in more than one direction.
- `


  ### [isUtilityType](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Structs/GoogleDrawerDeviceType#/s:15GoogleHomeTypes0A16DrawerDeviceTypeV09isUtilityF0SbvpZ)


  ` Whether the device type is a utility type. If false, this type is an application type.

  #### Declaration

  Swift

      static let isUtilityType: Bool

- `


  ### [metadata](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Structs/GoogleDrawerDeviceType#/s:15GoogleHomeTypes0A16DrawerDeviceTypeV8metadata0aB3SDK0eF8MetadataVvp)


  ` Additional information about this device type.

  #### Declaration

  Swift

      let metadata: DeviceTypeMetadata

- `


  ### [traits](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Structs/GoogleDrawerDeviceType#/s:15GoogleHomeTypes0A16DrawerDeviceTypeV6traits0aB3SDK15TraitCollectionCvp)


  ` The traits that make up this device type.

  Use this to access traits that are not directly exposed as properties on the `DeviceType`,
  like custom traits and traits belonging to utility types.

  #### Declaration

  Swift

      let traits: TraitCollection

- `


  ### [events](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Structs/GoogleDrawerDeviceType#/s:15GoogleHomeTypes0A16DrawerDeviceTypeV6events0aB3SDK15EventController_pvp)


  ` Entrypoint to subscribe to events on this DeviceType.

  #### Declaration

  Swift

      let events: any EventController

- `


  ### [init(traits:eventController:metadataBuilder:)](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Structs/GoogleDrawerDeviceType#/s:15GoogleHomeTypes0A16DrawerDeviceTypeV6traits15eventController15metadataBuilderAC0aB3SDK15TraitCollectionC_AG05EventI0_pAG0eF8MetadataVSayAG0M0_pGSgXEtKcfc)


  ` Creates a new `DeviceType` from the given trait collection.
  Throws
  Throws a `HomeError` if the given collection is missing one or more required traits for the given device type.

  #### Declaration

  Swift

      init(traits: TraitCollection, eventController: any EventController, metadataBuilder: ([any Trait]?) -> DeviceTypeMetadata) throws

- `


  ### [debugDescription](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Structs/GoogleDrawerDeviceType#/s:15GoogleHomeTypes0A16DrawerDeviceTypeV16debugDescriptionSSvp)


  ` A textual representation of this instance, suitable for debugging.

  Calling this property directly is discouraged. Instead, convert an
  instance of any type to a string by using the `String(reflecting:)`
  initializer. This initializer works with any type, and uses the custom
  `debugDescription` property for types that conform to
  `CustomDebugStringConvertible`:

      struct Point: CustomDebugStringConvertible {
          let x: Int, y: Int

          var debugDescription: String {
              return "(\(x), \(y))"
          }
      }

      let p = Point(x: 21, y: 30)
      let s = String(reflecting: p)
      print(s)
      // Prints "(21, 30)"

  The conversion of `p` to a string in the assignment to `s` uses the
  `Point` type's `debugDescription` property.

  #### Declaration

  Swift

      var debugDescription: String { get }

- `


  ### [GoogleDrawerGoogleTraits](https://developers.home.google.com/reference/swift/GoogleHomeTypes/Structs/GoogleDrawerDeviceType/GoogleDrawerGoogleTraits.html)


  ` Trait Container for GoogleDrawerDeviceType Google Traits.

  #### Declaration

  Swift

      struct GoogleDrawerGoogleTraits