# Generated by the protocol buffer compiler.  DO NOT EDIT!
# Source: keyapis/access_control/v1/keyapis_access_control_entrance_v1.proto for package 'Keyapis.AccessControl.V1'
# Original file comments:
#
# Сервис подъездов

require 'grpc'
require 'keyapis/access_control/v1/keyapis_access_control_entrance_v1_pb'

module Keyapis
  module AccessControl
    module V1
      module EntranceService
        # Сервис подъездов
        class Service

          include ::GRPC::GenericService

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

          # Метод создания подъезда.
          # Для ролей employee, owner можно сохранять только подъезды квартирограмм, привязанные к домофонной компании пользователя (привязка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE).
          # Метод доступен для: admin, service, owner, employee
          rpc :PostEntrance, ::Keyapis::AccessControl::V1::PostEntranceRequest, ::Keyapis::AccessControl::V1::PostEntranceResponse
          # Метод удаления подъезда.
          # Реализуется как удаление квартир по указанному дому и номеру подъезда.
          # Для ролей employee, owner можно удалять только подъезды квартирограмм, привязанные к домофонной компании пользователя (привязка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE).
          # Метод доступен для: admin, service, owner, employee
          rpc :DeleteEntrance, ::Keyapis::AccessControl::V1::DeleteEntranceRequest, ::Keyapis::AccessControl::V1::DeleteEntranceResponse
          # Метод получения списка подъездов.
          # При переданном company_ids учитывается тип связи компании и квартирограммы.
          # Если EntranceFilter.CompanyRelationType = DEVICE_SERVICE, то проверяется связка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE.
          # Если EntranceFilter.CompanyRelationType = MANAGEMENT, то проверяется связка в flatgramm_companies.
          # Если EntranceFilter.CompanyRelationType = DEFAULT, то проверяется связка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE.
          # Если EntranceFilter.CompanyRelationType = COMPANY_RELATION_TYPE_UNKNOWN, вернется ошибка валидации.
          # При не переданном company_ids поле EntranceFilter.CompanyRelationType вызовет ошибку валидации.
          # Для ролей employee, owner можно получать только подъезды квартирограмм, привязанные к домофонной компании пользователя (привязка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE).
          # Метод доступен для: admin, service, owner, employee
          rpc :GetEntranceList, ::Keyapis::AccessControl::V1::GetEntranceListRequest, stream(::Keyapis::AccessControl::V1::GetEntranceListResponse)
          # Метод создания связи подъезда и устройства.
          # Для ролей employee, owner можно сохранять только связи с подъездами квартирограмм, привязанным к домофонной компании пользователя (привязка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE).
          # EntranceDevice.RelationType в данном методе не используется.
          # Метод доступен для: admin, service, owner, employee
          rpc :PutEntranceDeviceAttach, ::Keyapis::AccessControl::V1::PutEntranceDeviceAttachRequest, ::Keyapis::AccessControl::V1::PutEntranceDeviceAttachResponse
          # Метод удаления связи подъезда и устройства.
          # Для ролей employee, owner можно удалять только связи с подъездами квартирограмм, привязанным к домофонной компании пользователя (привязка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE).
          # EntranceDevice.RelationType в данном методе не используется.
          # Метод доступен для: admin, service, owner, employee
          rpc :PutEntranceDeviceDetach, ::Keyapis::AccessControl::V1::PutEntranceDeviceDetachRequest, ::Keyapis::AccessControl::V1::PutEntranceDeviceDetachResponse
          # Метод получения списка связок подъезд-устройство.
          # Для ролей employee, owner можно получать только связи с подъездами квартирограмм, привязанным к домофонной компании пользователя (привязка компании с типом dc_company_flatgramm.type = DEVICE_SERVICE).
          # Метод доступен для: admin, service, owner, employee
          rpc :GetEntranceDeviceList, ::Keyapis::AccessControl::V1::GetEntranceDeviceListRequest, stream(::Keyapis::AccessControl::V1::GetEntranceDeviceListResponse)
        end

        Stub = Service.rpc_stub_class
      end
    end
  end
end
