    struct GoogleNetworkDeviceType

Generated struct for the Google Network Device Type.

A device representing a group of router nodes or a mesh network controlled as a single entity
rather than as individual devices. The network device may reboot, update its software, and have
modes to handle Quality of Service (QoS) controls and parental restrictions. The device can
perform 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/GoogleNetworkDeviceType#/s:15GoogleHomeTypes0A17NetworkDeviceTypeV09isUtilityF0SbvpZ)


  ` 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/GoogleNetworkDeviceType#/s:15GoogleHomeTypes0A17NetworkDeviceTypeV8metadata0aB3SDK0eF8MetadataVvp)


  ` Additional information about this device type.

  #### Declaration

  Swift

      let metadata: DeviceTypeMetadata

- `


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


  ` 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/GoogleNetworkDeviceType#/s:15GoogleHomeTypes0A17NetworkDeviceTypeV6events0aB3SDK15EventController_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/GoogleNetworkDeviceType#/s:15GoogleHomeTypes0A17NetworkDeviceTypeV6traits15eventController15metadataBuilderAC0aB3SDK15TraitCollectionC_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/GoogleNetworkDeviceType#/s:15GoogleHomeTypes0A17NetworkDeviceTypeV16debugDescriptionSSvp)


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

- `


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


  ` Trait Container for GoogleNetworkDeviceType Google Traits.

  #### Declaration

  Swift

      struct GoogleNetworkGoogleTraits