# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: keyapis/device/v1/keyapis_device_device_v1.proto for package 'Keyapis.Device.V1'
# Original file comments:
#
# Сервис реализует функционал управления устройствами

require 'grpc'
require 'keyapis/device/v1/keyapis_device_device_v1_pb'

module Keyapis
  module Device
    module V1
      module DeviceService
        # Сервис устройств
        class Service

          include ::GRPC::GenericService

          self.marshal_class_method = :encode
          self.unmarshal_class_method = :decode
          self.service_name = 'keyapis.device.v1.DeviceService'

          # Метод получаения устройства.
          # Метод доступен для: admin, service, owner, employee, bti, ltp_first
          rpc :GetDevice, ::Keyapis::Device::V1::GetDeviceRequest, ::Keyapis::Device::V1::GetDeviceResponse
          # Метод получения списка устройств.
          # Метод доступен для: admin, service, owner, employee, bti, ltp_first
          rpc :GetDeviceList, ::Keyapis::Device::V1::GetDeviceListRequest, stream(::Keyapis::Device::V1::GetDeviceListResponse)
          # Метод получения количества устройств.
          # Метод доступен для: admin, service, owner, employee, bti, ltp_first
          rpc :GetDeviceCount, ::Keyapis::Device::V1::GetDeviceCountRequest, ::Keyapis::Device::V1::GetDeviceCountResponse
          # Метод создания устройства.
          # Метод доступен для: admin, bti, service, owner, employee.
          # Для owner, employee доступно создание и редактирование только в КВГ, привязанных к компании пользователя
          rpc :PostDevice, ::Keyapis::Device::V1::PostDeviceRequest, ::Keyapis::Device::V1::PostDeviceResponse
          # Метод изменения устройства.
          # Метод доступен для: admin, bti, service
          rpc :PutDevice, ::Keyapis::Device::V1::PutDeviceRequest, ::Keyapis::Device::V1::PutDeviceResponse
          # Метод установки пресета на устройство.
          # Метод доступен для: admin, service
          rpc :PostDeviceInstallPreset, ::Keyapis::Device::V1::PostDeviceInstallPresetRequest, ::Keyapis::Device::V1::PostDeviceInstallPresetResponse
          # Метод замены устройста.
          # Логика работы метода: https://confluence.rt.ru/pages/viewpage.action?pageId=655256574.
          # Метод доступен для: admin, bti, service
          rpc :PostDeviceReplace, ::Keyapis::Device::V1::PostDeviceReplaceRequest, ::Keyapis::Device::V1::PostDeviceReplaceResponse
          # Метод переконфигурирования устройста.
          # Логика работы метода: https://confluence.rt.ru/pages/viewpage.action?pageId=630337555.
          # Метод доступен для: admin, bti, service
          rpc :PostDeviceReconfigure, ::Keyapis::Device::V1::PostDeviceReconfigureRequest, ::Keyapis::Device::V1::PostDeviceReconfigureResponse
          # Метод получения статусов конфигурации устройства.
          # Метод доступен для: admin, service, bti, ltp_first
          rpc :GetDeviceConfigurationStatuses, ::Keyapis::Device::V1::GetDeviceConfigurationStatusesRequest, ::Keyapis::Device::V1::GetDeviceConfigurationStatusesResponse
          # Метод изменения статуса конфигурации устройства.
          # Метод доступен для: admin, service
          rpc :PostDeviceConfigurationStatus, ::Keyapis::Device::V1::PostDeviceConfigurationStatusRequest, ::Keyapis::Device::V1::PostDeviceConfigurationStatusResponse
          # Метод получения списка конфигураций сгруппированных по устройствам.
          # Метод доступен для: admin, service
          rpc :GetDeviceConfigurationStatusGroupedList, ::Keyapis::Device::V1::GetDeviceConfigurationStatusGroupedListRequest, stream(::Keyapis::Device::V1::GetDeviceConfigurationStatusGroupedListResponse)
          # Метод получения количества конфигураций сгруппированных по устройствам.
          # Метод доступен для: admin, service
          rpc :GetDeviceConfigurationStatusGroupedCount, ::Keyapis::Device::V1::GetDeviceConfigurationStatusGroupedCountRequest, ::Keyapis::Device::V1::GetDeviceConfigurationStatusGroupedCountResponse
          # Метод удаления устройства.
          # Метод доступен для: admin, service
          rpc :DeleteDevice, ::Keyapis::Device::V1::DeleteDeviceRequest, ::Keyapis::Device::V1::DeleteDeviceResponse
          # Метод получаения упрощенного устройства.
          # Метод доступен для: admin, service, owner, employee, bti, ltp_first.
          # Метод доступен для: ApiKey
          rpc :GetDeviceLite, ::Keyapis::Device::V1::GetDeviceLiteRequest, ::Keyapis::Device::V1::GetDeviceLiteResponse
        end

        Stub = Service.rpc_stub_class
      end
    end
  end
end
