    struct DeviceTypeMetadata

    extension DeviceTypeMetadata : Equatable, Hashable, Sendable, SendableMetatype

Additional information about a device type.
- `


  ### [Builder](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceTypeMetadata#/s:13GoogleHomeSDK18DeviceTypeMetadataV7Buildera)


  ` Undocumented

  #### Declaration

  Swift

      typealias Builder = ([any https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/Trait.html]?) -> DeviceTypeMetadata

- `


  ### [isPrimaryType](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceTypeMetadata#/s:13GoogleHomeSDK18DeviceTypeMetadataV09isPrimaryE0Sbvp)


  ` Whether this is the primary type for the device.

  This conveys whether this is the primary functionality of the device. For example, a device
  that is both a light and a speaker would have `isPrimaryType` set to `true` for the light
  type, but `false` for the speaker type.

  #### Declaration

  Swift

      let isPrimaryType: Bool

- `


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


  ` Aggregated connectivity information for this device type, based on the connectivity of its
  traits.

  #### Declaration

  Swift

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

- `


  ### [objectID](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceTypeMetadata#/s:13GoogleHomeSDK18DeviceTypeMetadataV8objectIDSSvp)


  ` The ID of the object backing this device type.

  #### Declaration

  Swift

      var objectID: String { get }

- `


  ### [tags](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceTypeMetadata#/s:13GoogleHomeSDK18DeviceTypeMetadataV4tagsShyAA11SemanticTagVGvp)


  ` The tags of the part. Part tags are used to identify a specific part within a device if there
  are multiple parts of the same type.

  #### Declaration

  Swift

      var tags: Set<https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/SemanticTag.html> { get }

- `


  ### [name](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceTypeMetadata#/s:13GoogleHomeSDK18DeviceTypeMetadataV4nameSSSgvp)


  ` The name of this part / device type. Applicable only to multifacet devices.

  #### Declaration

  Swift

      var name: String? { get }

- `


  ### [setName(_:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceTypeMetadata#/s:13GoogleHomeSDK18DeviceTypeMetadataV7setNameySbSSYaKF)


  ` Change the name of this device part.
  Throws
  `HomeError.bulk` containing all mapped `InteractionProxy.writeError` errors.

  #### Declaration

  Swift

      func setName(_ name: String) async throws -> Bool

  #### Parameters

  |---|---|
  | ` name ` | The new name for the part. |

  #### Return Value

  `true` if the name was updated successfully, `false` otherwise.
- `


  ### [partID](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceTypeMetadata#/s:13GoogleHomeSDK18DeviceTypeMetadataV6partIDSSvp)


  ` The ID of the part, if this device type corresponds to a part.

  #### Declaration

  Swift

      var partID: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK6PartIDa { get }

- `


  ### [hash(into:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceTypeMetadata#/s:13GoogleHomeSDK18DeviceTypeMetadataV4hash4intoys6HasherVz_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)

- `


  ### [==(_:_:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/DeviceTypeMetadata#/s:13GoogleHomeSDK18DeviceTypeMetadataV2eeoiySbAC_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: DeviceTypeMetadata, rhs: DeviceTypeMetadata) -> Bool

  #### Parameters

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