    protocol InteractionProxy : Sendable

    extension InteractionProxy : SendableMetatype

Abstraction for the Interaction Client.
- `


  ### [strictOperationValidation](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/InteractionProxy#/s:13GoogleHomeSDK16InteractionProxyP25strictOperationValidationSbvp)


  ` Whether to use strict validation when sending commands or writing attributes.

  #### Declaration

  Swift

      var strictOperationValidation: Bool { get }

- `


  ### [sendCommand(commandID:request:useTimedInteraction:clientRequestID:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/InteractionProxy#/s:13GoogleHomeSDK16InteractionProxyP11sendCommand9commandID7request08useTimedD0013clientRequestI0yAA06ScopedgI0V_AA0gN0_pSgSbSSSgtYaKF)


  ` Executes a command, not expecting a result.

  #### Declaration

  Swift

      func sendCommand(commandID: https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/ScopedCommandID.html, request: (any https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/CommandRequest.html)?, useTimedInteraction: Bool, clientRequestID: String?) async throws

  #### Parameters

  |---|---|
  | ` commandID ` | The GHP-specific command id within the cluster. |
  | ` request ` | The parameters of the command. |
  | ` useTimedInteraction ` | Whether the command should be invoked using a timed interaction. |
  | ` clientRequestID ` | An optional ID provided by the client to track the command. |

- `


  ### [sendCommand(commandID:request:useTimedInteraction:clientRequestID:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/InteractionProxy#/s:13GoogleHomeSDK16InteractionProxyP11sendCommand9commandID7request08useTimedD0013clientRequestI0qd__AA06ScopedgI0V_AA0gN0_pSgSbSSSgtYaKAA0G8ResponseRd__lF)


  ` Executes a command, expecting an result.

  #### Declaration

  Swift

      func sendCommand<Response>(commandID: https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/ScopedCommandID.html, request: (any https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/CommandRequest.html)?, useTimedInteraction: Bool, clientRequestID: String?) async throws -> Response where Response : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/CommandResponse.html

  #### Parameters

  |---|---|
  | ` commandID ` | The GHP-specific command id within the cluster. |
  | ` request ` | The parameters of the command. |
  | ` useTimedInteraction ` | Whether the command should be invoked using a timed interaction. |
  | ` clientRequestID ` | An optional ID provided by the client to track the command. |

- `


  ### [update(trait:useTimedInteraction:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/InteractionProxy#/s:13GoogleHomeSDK16InteractionProxyP6update5trait08useTimedD0yAA14TraitEncodable_p_SbtYaKF)


  ` Updates a trait's mutable attributes.

  #### Declaration

  Swift

      func update(trait: any https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/TraitEncodable.html, useTimedInteraction: Bool) async throws

  #### Parameters

  |---|---|
  | ` trait ` | The trait to update. |
  | ` useTimedInteraction ` | Whether the update should use a timed interaction. |

- `


  ### [forceRead(traitID:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/InteractionProxy#/s:13GoogleHomeSDK16InteractionProxyP9forceRead7traitIDySS_tYaKF)


  ` Forces the given trait to be updated.
  See also
  `ForceReadableTrait.forceRead`

  #### Declaration

  Swift

      func forceRead(traitID: https://developers.home.google.com/reference/swift/GoogleHomeSDK/GoogleHomeSDK.html#/s:13GoogleHomeSDK9ClusterIDa) async throws

- `


  ### [buildBatchableCommand(commandID:request:useTimedInteraction:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/InteractionProxy#/s:13GoogleHomeSDK16InteractionProxyP21buildBatchableCommand9commandID7request08useTimedD0AA0gH0Vyqd__GAA06ScopedhJ0V_AA0H7Request_pSgSbtlF)


  ` Builds a command that can be passed to a `https://developers.home.google.com/reference/swift/GoogleHomeSDK/Classes/CommandBatcher.html`.

  #### Declaration

  Swift

      func buildBatchableCommand<Response>(commandID: https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/ScopedCommandID.html, request: (any https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/CommandRequest.html)?, useTimedInteraction: Bool) -> https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/BatchableCommand.html<Response>

  #### Parameters

  |---|---|
  | ` commandID ` | The GHP-specific command id within the cluster. |
  | ` request ` | The parameters of the command. |
  | ` useTimedInteraction ` | Whether the command should be invoked using a timed interaction. |

- `


  ### [sendCommand(commandID:request:useTimedInteraction:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/InteractionProxy#/s:13GoogleHomeSDK16InteractionProxyPAAE11sendCommand9commandID7request08useTimedD0yAA06ScopedgI0V_AA0G7Request_pSgSbtYaKF)


  ` Extension method Undocumented

  #### Declaration

  Swift

      func sendCommand(commandID: https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/ScopedCommandID.html, request: (any https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/CommandRequest.html)?, useTimedInteraction: Bool) async throws

- `


  ### [sendCommand(commandID:request:useTimedInteraction:)](https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/InteractionProxy#/s:13GoogleHomeSDK16InteractionProxyPAAE11sendCommand9commandID7request08useTimedD0qd__AA06ScopedgI0V_AA0G7Request_pSgSbtYaKAA0G8ResponseRd__lF)


  ` Extension method Undocumented

  #### Declaration

  Swift

      func sendCommand<Response>(commandID: https://developers.home.google.com/reference/swift/GoogleHomeSDK/Structs/ScopedCommandID.html, request: (any https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/CommandRequest.html)?, useTimedInteraction: Bool) async throws -> Response where Response : https://developers.home.google.com/reference/swift/GoogleHomeSDK/Protocols/CommandResponse.html