    struct GoogleRouterDeviceType

Generated struct for the Google Router Device Type.

A network device that controls network traffic between two or more different networks. Routers
can reboot, update their software, have modes to handle Quality of Service (QoS) controls and
parental restrictions, and perform network specific operations (such as enabling the guest
network and reporting network specific information such as the current internet throughput
rates).
- `


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


  ` 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/GoogleRouterDeviceType#/s:15GoogleHomeTypes0A16RouterDeviceTypeV8metadata0aB3SDK0eF8MetadataVvp)


  ` Additional information about this device type.

  #### Declaration

  Swift

      let metadata: DeviceTypeMetadata

- `


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


  ` 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/GoogleRouterDeviceType#/s:15GoogleHomeTypes0A16RouterDeviceTypeV6events0aB3SDK15EventController_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/GoogleRouterDeviceType#/s:15GoogleHomeTypes0A16RouterDeviceTypeV6traits15eventController15metadataBuilderAC0aB3SDK15TraitCollectionC_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/GoogleRouterDeviceType#/s:15GoogleHomeTypes0A16RouterDeviceTypeV16debugDescriptionSSvp)


  ` 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 }

- `


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


  ` Trait Container for GoogleRouterDeviceType Google Traits.

  #### Declaration

  Swift

      struct GoogleRouterGoogleTraits