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

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

/**
 * Сервис трубок аналоговых трубок
 */
class CmsPhoneServiceClient 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);
    }

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

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

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

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

    /**
     * Метод удаления аналоговой трубки по идентификатору устройсва.
     * Метод доступен для: admin, service
     * @param \Keyapis\Device\V1\DeleteCmsPhoneDeviceIdRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function DeleteCmsPhoneDeviceId(\Keyapis\Device\V1\DeleteCmsPhoneDeviceIdRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.device.v1.CmsPhoneService/DeleteCmsPhoneDeviceId',
        $argument,
        ['\Keyapis\Device\V1\DeleteCmsPhoneDeviceIdResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод удаления аналоговой трубки по идентификатору ОРПОН.
     * Метод доступен для: admin, service
     * @param \Keyapis\Device\V1\DeleteCmsPhoneOrponIdRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function DeleteCmsPhoneOrponId(\Keyapis\Device\V1\DeleteCmsPhoneOrponIdRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.device.v1.CmsPhoneService/DeleteCmsPhoneOrponId',
        $argument,
        ['\Keyapis\Device\V1\DeleteCmsPhoneOrponIdResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод удаления аналоговой трубки по идентификатору ОРПОН и номеру квартиры.
     * Метод доступен для: admin, service
     * @param \Keyapis\Device\V1\DeleteCmsPhoneOrponIdRoomNumberRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function DeleteCmsPhoneOrponIdRoomNumber(\Keyapis\Device\V1\DeleteCmsPhoneOrponIdRoomNumberRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.device.v1.CmsPhoneService/DeleteCmsPhoneOrponIdRoomNumber',
        $argument,
        ['\Keyapis\Device\V1\DeleteCmsPhoneOrponIdRoomNumberResponse', 'decode'],
        $metadata, $options);
    }

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

    /**
     * Метод удаления аналоговой трубки по идентификатору ОРПОН, номеру квартиры и идентификатору устройства.
     * Метод доступен для: admin, service
     * @param \Keyapis\Device\V1\DeleteCmsPhoneOrponRoomNumberDeviceIdRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function DeleteCmsPhoneOrponRoomNumberDeviceId(\Keyapis\Device\V1\DeleteCmsPhoneOrponRoomNumberDeviceIdRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.device.v1.CmsPhoneService/DeleteCmsPhoneOrponRoomNumberDeviceId',
        $argument,
        ['\Keyapis\Device\V1\DeleteCmsPhoneOrponRoomNumberDeviceIdResponse', 'decode'],
        $metadata, $options);
    }

}
