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

require 'grpc'
require 'keyapis/access_control/v1/keyapis_access_control_access_zone_v1_pb'

module Keyapis
  module AccessControl
    module V1
      module AccessZoneService
        # Сервис зон доступа
        class Service

          include ::GRPC::GenericService

          self.marshal_class_method = :encode
          self.unmarshal_class_method = :decode
          self.service_name = 'keyapis.access_control.v1.AccessZoneService'

          # Метод сохранения зоны доступа.
          # Поддерживает создание и обновление.
          # Для пользователей типов owner, employee можно создать и редактировать зону доступа только в квартирограмме, относящейся к компании пользователя.
          # Метод доступен для: admin, service, bti, ltp_first, device_admin, manager, owner, employee
          rpc :PostAccessZone, ::Keyapis::AccessControl::V1::PostAccessZoneRequest, ::Keyapis::AccessControl::V1::PostAccessZoneResponse
          # Метод получения зоны доступа по идентификатору.
          # Для пользователей типов owner, employee возвращаются только зоны доступа, относящиеся к компании пользователя.
          # Метод доступен для: admin, service, bti, ltp_first, device_admin, manager, owner, employee
          rpc :GetAccessZone, ::Keyapis::AccessControl::V1::GetAccessZoneRequest, ::Keyapis::AccessControl::V1::GetAccessZoneResponse
          # Метод получения списка зон доступа.
          # Для пользователей типов owner, employee возвращаются только зоны доступа, относящиеся к компании пользователя.
          # Метод доступен для: admin, service, bti, ltp_first, device_admin, manager, owner, employee
          rpc :GetAccessZoneList, ::Keyapis::AccessControl::V1::GetAccessZoneListRequest, stream(::Keyapis::AccessControl::V1::GetAccessZoneListResponse)
          # Метод получения количества зон доступа.
          # Для пользователей типов owner, employee возвращаются только зоны доступа, относящиеся к компании пользователя.
          # Метод доступен для: admin, service, bti, ltp_first, device_admin, manager, owner, employee
          rpc :GetAccessZoneCount, ::Keyapis::AccessControl::V1::GetAccessZoneCountRequest, ::Keyapis::AccessControl::V1::GetAccessZoneCountResponse
          # Метод архивации зоны доступа.
          # Для пользователей типов owner, employee доступны к архивации только зоны доступа, относящиеся к компании пользователя.
          # Метод доступен для: admin, service, bti, ltp_first, device_admin, manager, owner, employee
          rpc :DeleteAccessZone, ::Keyapis::AccessControl::V1::DeleteAccessZoneRequest, ::Keyapis::AccessControl::V1::DeleteAccessZoneResponse
          # Метод разархивации зоны доступа по идентификатору.
          # Для пользователей типов owner, employee доступны к разархивации только зоны доступа, относящиеся к компании пользователя.
          # Метод доступен для: admin, service, bti, ltp_first, device_admin, manager, owner, employee
          rpc :PostAccessZoneRestore, ::Keyapis::AccessControl::V1::PostAccessZoneRestoreRequest, ::Keyapis::AccessControl::V1::PostAccessZoneRestoreResponse
        end

        Stub = Service.rpc_stub_class
      end
    end
  end
end
