    struct MatterCommissionableDevice

    extension MatterCommissionableDevice : https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK15AutomationValueP, Decodable, Encodable, Equatable, Hashable, Sendable, SendableMetatype, https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/StructDataRepresentable.html

Model representing a Commissionable Matter device, corresponding to the proto used by the
MatterCommissionerTrait.
- `


  ### [discriminator](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/MatterCommissionableDevice#/s:13GoogleHomeSDK26MatterCommissionableDeviceV13discriminators6UInt32Vvp)


  ` Undocumented

  #### Declaration

  Swift

      let discriminator: UInt32

- `


  ### [discoveryModes](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/MatterCommissionableDevice#/s:13GoogleHomeSDK26MatterCommissionableDeviceV14discoveryModesSayAC13DiscoveryModeOGvp)


  ` Undocumented

  #### Declaration

  Swift

      let discoveryModes: [MatterCommissionableDevice.https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/MatterCommissionableDevice/DiscoveryMode.html]

- `


  ### [vendorID](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/MatterCommissionableDevice#/s:13GoogleHomeSDK26MatterCommissionableDeviceV8vendorIDs6UInt32VSgvp)


  ` Undocumented

  #### Declaration

  Swift

      let vendorID: UInt32?

- `


  ### [productID](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/MatterCommissionableDevice#/s:13GoogleHomeSDK26MatterCommissionableDeviceV9productIDs6UInt32VSgvp)


  ` Undocumented

  #### Declaration

  Swift

      let productID: UInt32?

- `


  ### [init(discriminator:discoveryModes:vendorID:productID:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/MatterCommissionableDevice#/s:13GoogleHomeSDK26MatterCommissionableDeviceV13discriminator14discoveryModes8vendorID07productK0ACs6UInt32V_SayAC13DiscoveryModeOGAISgAMtcfc)


  ` Undocumented

  #### Declaration

  Swift

      init(discriminator: UInt32, discoveryModes: [MatterCommissionableDevice.https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/MatterCommissionableDevice/DiscoveryMode.html], vendorID: UInt32? = nil, productID: UInt32? = nil)

- `


  ### [init(decoder:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/MatterCommissionableDevice#/s:13GoogleHomeSDK26MatterCommissionableDeviceV7decoderAcA12TraitDecoderV_tKcfc)


  ` Creates a new Struct instance using data read from the given `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/TraitDecoder.html`.
  Throws
  `HomeError.parseError` when parsing fails.

  #### Declaration

  Swift

      init(decoder: https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/TraitDecoder.html) throws

  #### Parameters

  |---|---|
  | ` decoder ` | The raw data representing this Struct. |

- `


  ### [encode(with:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/MatterCommissionableDevice#/s:13GoogleHomeSDK26MatterCommissionableDeviceV6encode4withyAA12TraitEncoderC_tKF)


  ` Writes this Struct to the given `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder.html`.
  Throws `HomeError.parseError` if the data could not be encoded.

  #### Declaration

  Swift

      func encode(with encoder: https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/TraitEncoder.html) throws

- `


  ### [DiscoveryMode](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/MatterCommissionableDevice/DiscoveryMode.html)


  ` Enumeration of the different ways a Matter device can be discovered.

  #### Declaration

  Swift

      enum DiscoveryMode

      extension https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/MatterCommissionableDevice.html.DiscoveryMode : Decodable, Encodable, Equatable, Hashable, RawRepresentable, Sendable, SendableMetatype

- `


  ### [init(from:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/MatterCommissionableDevice#/s:13GoogleHomeSDK26MatterCommissionableDeviceV4fromACs7Decoder_p_tKcfc)


  ` Creates a new instance by decoding from the given decoder.

  This initializer throws an error if reading from the decoder fails, or
  if the data read is corrupted or otherwise invalid.

  #### Declaration

  Swift

      init(from decoder: any Decoder) throws