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

// Original file comments:
//
// Сервис получения trunk-конфигурации для определенного города
namespace Keyapis\Device\V1;

/**
 * Сервис получения trunk-конфигурации для определенного города
 */
class TrunkConfigServiceClient 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);
    }

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

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

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

    /**
     * Метод создания trunk-конфигурации.
     * Поддерживает создание и обновление.
     * Метод доступен для: admin, bti, service, ltp_first
     * @param \Keyapis\Device\V1\PostTrunkConfigRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function PostTrunkConfig(\Keyapis\Device\V1\PostTrunkConfigRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/keyapis.device.v1.TrunkConfigService/PostTrunkConfig',
        $argument,
        ['\Keyapis\Device\V1\PostTrunkConfigResponse', 'decode'],
        $metadata, $options);
    }

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

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

}
