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

// Original file comments:
//
// Сервис реализует функционал управления SIP-трубками
namespace Keyapis\Device\V1;

/**
 * Сервис управления SIP-трубками
 */
class SipPhoneServiceClient 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);
    }

    /**
     * Метод получения SIP-трубки по идентификатору.
     * Метод доступен для: admin, service, bti, ltp_first
     * @param \Keyapis\Device\V1\GetSipPhoneRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function GetSipPhone(\Keyapis\Device\V1\GetSipPhoneRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.device.v1.SipPhoneService/GetSipPhone',
        $argument,
        ['\Keyapis\Device\V1\GetSipPhoneResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод получения списка SIP-трубок.
     * Метод доступен для: admin, service, bti, ltp_first
     * @param \Keyapis\Device\V1\GetSipPhoneListRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\ServerStreamingCall
     */
    public function GetSipPhoneList(\Keyapis\Device\V1\GetSipPhoneListRequest $argument,
      $metadata = [], $options = []) {
        return $this->_serverStreamRequest('/keyapis.device.v1.SipPhoneService/GetSipPhoneList',
        $argument,
        ['\Keyapis\Device\V1\GetSipPhoneListResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод получения количества SIP-трубок.
     * Метод доступен для: admin, service, bti, ltp_first
     * @param \Keyapis\Device\V1\GetSipPhoneCountRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function GetSipPhoneCount(\Keyapis\Device\V1\GetSipPhoneCountRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.device.v1.SipPhoneService/GetSipPhoneCount',
        $argument,
        ['\Keyapis\Device\V1\GetSipPhoneCountResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод получения списка SIP-трубок.
     * Метод доступен для: admin, service, bti, ltp_first
     * @param \Keyapis\Device\V1\PostSipPhoneGetListRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function PostSipPhoneGetList(\Keyapis\Device\V1\PostSipPhoneGetListRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.device.v1.SipPhoneService/PostSipPhoneGetList',
        $argument,
        ['\Keyapis\Device\V1\PostSipPhoneGetListResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод получения количества SIP-трубок.
     * Метод доступен для: admin, service, bti, ltp_first
     * @param \Keyapis\Device\V1\PostSipPhoneGetCountRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function PostSipPhoneGetCount(\Keyapis\Device\V1\PostSipPhoneGetCountRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.device.v1.SipPhoneService/PostSipPhoneGetCount',
        $argument,
        ['\Keyapis\Device\V1\PostSipPhoneGetCountResponse', 'decode'],
        $metadata, $options);
    }

}
