    struct DeviceGroup

    extension DeviceGroup : Equatable, https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/HasParts.html, Hashable, https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/HomeEntity.html, HomeEntityImpl, https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/HomeObject.html, HomeObjectImpl, Identifiable, ObjectDataRepresentable, Sendable, SendableMetatype

A group of smart home devices that can be controlled together.
- `


  ### [objectType](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceGroup#/s:13GoogleHomeSDK11DeviceGroupV10objectTypeAA0b6ObjectG0Ovp)


  ` The object type of this entity.

  #### Declaration

  Swift

      let objectType: https://developers.home.google.com/reference/swift/GoogleHomeSDK/Enums/HomeObjectType.html

- `


  ### [id](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceGroup#/s:13GoogleHomeSDK11DeviceGroupV2idSSvp)


  ` The ID of this device group.

  #### Declaration

  Swift

      let id: String

- `


  ### [traits](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceGroup#/s:13GoogleHomeSDK11DeviceGroupV6traitsAA15TraitController_pvp)


  ` Controller for dynamically reading and subscribing to traits on this device group.

  #### Declaration

  Swift

      @available(*, deprecated, message: "This API is experimental and is subject to change.")
      let traits: any https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/TraitController.html

- `


  ### [types](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceGroup#/s:13GoogleHomeSDK11DeviceGroupV5typesAA0D14TypeControllerCvp)


  ` A controller that provides access to the types supported by this group.

  #### Declaration

  Swift

      @available(*, deprecated, message: "Use `HasParts` protocol methods instead.")
      let types: https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/DeviceTypeController.html

- `


  ### [sourceConnectivity](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceGroup#/s:13GoogleHomeSDK11DeviceGroupV18sourceConnectivityAA06SourceG0Vvp)


  ` Information about the connectivity of this group.

  #### Declaration

  Swift

      var sourceConnectivity: https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/SourceConnectivity.html

- `


  ### [part(_:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceGroup#/s:13GoogleHomeSDK11DeviceGroupV4partyxSgxmYaAA0D4TypeRzlF)


  ` Returns the first instance of the given `type` if the entity supports it, otherwise returns
  nil.

  #### Declaration

  Swift

      @available(*, deprecated, message: "This API is experimental and is subject to change.")
      func part<T>(_ part: T.Type = T.self) async -> T? where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html

- `


  ### [parts(_:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceGroup#/s:13GoogleHomeSDK11DeviceGroupV5partsySayxGxmYaKAA0D4TypeRzlF)


  ` Returns an array of the top-level parts matching the given `type`.
  Throws
  An error if retrieving or communicating with the underlying parts fails.

  #### Declaration

  Swift

      @available(*, deprecated, message: "This API is experimental and is subject to change.")
      func parts<T>(_ part: T.Type = T.self) async throws -> [T] where T : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/DeviceType.html

- `


  ### [==(_:_:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceGroup#/s:13GoogleHomeSDK11DeviceGroupV2eeoiySbAC_ACtFZ)


  ` Returns a Boolean value indicating whether two values are equal.

  Equality is the inverse of inequality. For any values `a` and `b`,
  `a == b` implies that `a != b` is `false`.

  #### Declaration

  Swift

      static func == (lhs: DeviceGroup, rhs: DeviceGroup) -> Bool

  #### Parameters

  |---|---|
  | ` lhs ` | A value to compare. |
  | ` rhs ` | Another value to compare. |

- `


  ### [hash(into:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceGroup#/s:13GoogleHomeSDK11DeviceGroupV4hash4intoys6HasherVz_tF)


  ` Hashes the essential components of this value by feeding them into the
  given hasher.

  Implement this method to conform to the `Hashable` protocol. The
  components used for hashing must be the same as the components compared
  in your type's `==` operator implementation. Call `hasher.combine(_:)`
  with each of these components.
  Important

  In your implementation of `hash(into:)`,
  don't call `finalize()` on the `hasher` instance provided,
  or replace it with a different instance.
  Doing so may become a compile-time error in the future.

  #### Declaration

  Swift

      func hash(into hasher: inout Hasher)