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

// Original file comments:
//
// Сервис профилей шифрования устройства
namespace Deviceapis\Device\V1;

/**
 * Сервис профилей шифрования устройства
 */
class EncryptionProfileServiceClient 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);
    }

    /**
     * Метод удаления единичной сущности EncryptionProfile по ключу
     * @param \Deviceapis\Device\V1\DeleteEncryptionProfileRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function DeleteEncryptionProfile(\Deviceapis\Device\V1\DeleteEncryptionProfileRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/deviceapis.device.v1.EncryptionProfileService/DeleteEncryptionProfile',
        $argument,
        ['\Deviceapis\Device\V1\DeleteEncryptionProfileResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод удаления списка сущностей EncryptionProfile по фильтру
     * @param \Deviceapis\Device\V1\DeleteEncryptionProfileListRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function DeleteEncryptionProfileList(\Deviceapis\Device\V1\DeleteEncryptionProfileListRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/deviceapis.device.v1.EncryptionProfileService/DeleteEncryptionProfileList',
        $argument,
        ['\Deviceapis\Device\V1\DeleteEncryptionProfileListResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод получения единичной сущности EncryptionProfile по ключу
     * @param \Deviceapis\Device\V1\GetEncryptionProfileRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function GetEncryptionProfile(\Deviceapis\Device\V1\GetEncryptionProfileRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/deviceapis.device.v1.EncryptionProfileService/GetEncryptionProfile',
        $argument,
        ['\Deviceapis\Device\V1\GetEncryptionProfileResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод получения списка сущностей EncryptionProfile по фильтру
     * @param \Deviceapis\Device\V1\GetEncryptionProfileListRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function GetEncryptionProfileList(\Deviceapis\Device\V1\GetEncryptionProfileListRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/deviceapis.device.v1.EncryptionProfileService/GetEncryptionProfileList',
        $argument,
        ['\Deviceapis\Device\V1\GetEncryptionProfileListResponse', 'decode'],
        $metadata, $options);
    }

    /**
     * Метод создания сущности EncryptionProfile
     * @param \Deviceapis\Device\V1\SaveEncryptionProfileRequest $argument input argument
     * @param array $metadata metadata
     * @param array $options call options
     * @return \Grpc\UnaryCall
     */
    public function SaveEncryptionProfile(\Deviceapis\Device\V1\SaveEncryptionProfileRequest $argument,
      $metadata = [], $options = []) {
        return $this->_simpleRequest('/deviceapis.device.v1.EncryptionProfileService/SaveEncryptionProfile',
        $argument,
        ['\Deviceapis\Device\V1\SaveEncryptionProfileResponse', 'decode'],
        $metadata, $options);
    }

}
