<?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);
    }

    /**
     * Метод получения пользователя для соединения аккаунтов.
     * Идентификатор пользователя - это subject из токена.
     * Метод доступен для: TokenACF: Scope: sber_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);
    }

    /**
     * Метод разъединения аккаунтов.
     * Идентификатор пользователя - это subject из токена.
     * Метод доступен для: TokenACF: Scope: sber_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);
    }

    /**
     * Метод получения устройств, доступных пользователю.
     * Идентификатор пользователя - это subject из токена.
     * Метод доступен для: TokenACF: Scope: sber_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);
    }

    /**
     * Зачем.
     * Метод получения состояния устройства.
     * Идентификатор пользователя - это subject из токена.
     * Метод доступен для: TokenACF: Scope: sber_iot
     * @param \Keyapis\IotConnect\V1\PostCallbackQueryRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function PostCallbackQuery(\Keyapis\IotConnect\V1\PostCallbackQueryRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.iot_connect.v1.IotConnectCallbackService/PostCallbackQuery',
        $argument,
        ['\Keyapis\IotConnect\V1\PostCallbackQueryResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод запроса внешнего IoT партнёра на изменение состояния устройства.
     * Поддерживается только открытие домофона.
     * Метод доступен для: TokenACF: Scope: sber_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);
    }

}
