<?php
// GENERATED CODE -- DO NOT EDIT!

// Original file comments:
//
// Сервис реализует функционал взаимодействия с внешними партнёрами IoT
namespace Keyapis\IotConnect\V1;

/**
 * Сервис для взаимодействия с внешними партнёрами Iot
 */
class IotConnectCallbackServiceClient extends \Grpc\BaseStub {

    /**
     * @param string $hostname hostname
     * @param array $opts channel options
     * @param \Grpc\Channel $channel (optional) re-use channel object
     */
    public function __construct($hostname, $opts, $channel = null) {
        parent::__construct($hostname, $opts, $channel);
    }

    /**
     * Метод получения пользователя.
     * Метод доступен для: TokenACF: Scope: iot
     * @param \Keyapis\IotConnect\V1\GetCallbackUserRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function GetCallbackUser(\Keyapis\IotConnect\V1\GetCallbackUserRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.iot_connect.v1.IotConnectCallbackService/GetCallbackUser',
        $argument,
        ['\Keyapis\IotConnect\V1\GetCallbackUserResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод получения устройств, доступных пользователю.
     * Метод доступен для: TokenACF: Scope: iot
     * @param \Keyapis\IotConnect\V1\GetCallbackDevicesRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function GetCallbackDevices(\Keyapis\IotConnect\V1\GetCallbackDevicesRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.iot_connect.v1.IotConnectCallbackService/GetCallbackDevices',
        $argument,
        ['\Keyapis\IotConnect\V1\GetCallbackDevicesResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод получения внешним партнёром состояния устройства.
     * Метод доступен для: TokenACF: Scope: iot
     * @param \Keyapis\IotConnect\V1\PostCallbackStatusRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function PostCallbackStatus(\Keyapis\IotConnect\V1\PostCallbackStatusRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.iot_connect.v1.IotConnectCallbackService/PostCallbackStatus',
        $argument,
        ['\Keyapis\IotConnect\V1\PostCallbackStatusResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод запроса внешнего IoT партнёра на изменение состояния устройства.
     * Поддерживается только открытие домофона.
     * Метод доступен для: TokenACF: Scope: iot
     * @param \Keyapis\IotConnect\V1\PostCallbackCommandRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function PostCallbackCommand(\Keyapis\IotConnect\V1\PostCallbackCommandRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.iot_connect.v1.IotConnectCallbackService/PostCallbackCommand',
        $argument,
        ['\Keyapis\IotConnect\V1\PostCallbackCommandResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод сообщения от внешнего IoT партнёра о разъединении аккаунтов.
     * Метод доступен для: TokenACF: Scope: iot
     * @param \Keyapis\IotConnect\V1\PostCallbackUnlinkRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function PostCallbackUnlink(\Keyapis\IotConnect\V1\PostCallbackUnlinkRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.iot_connect.v1.IotConnectCallbackService/PostCallbackUnlink',
        $argument,
        ['\Keyapis\IotConnect\V1\PostCallbackUnlinkResponse', 'decode'],
        $metadata, $options);
    }

}
