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

require 'grpc'
require 'keyapis/access_control/v1/keyapis_access_control_flatgramm_v1_pb'

module Keyapis
  module AccessControl
    module V1
      module FlatgrammService
        # Сервис управления квартирограммами
        class Service

          include ::GRPC::GenericService

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

          # Метод получения облегченной квартирограммы.
          # Для пользователей типов owner, employee возвращаются только квартирограммы привязанные к компании пользователя.
          # Для пользователей типов owner, employee: в результат попадают только квартирограммы, привязанные к компании пользователя по любому из типов связи FlatgrammCompanyRelation.Type.
          # Метод доступен для: admin, manager, service, bti, ltp_first, owner, employee
          rpc :GetFlatgramm, ::Keyapis::AccessControl::V1::GetFlatgrammRequest, ::Keyapis::AccessControl::V1::GetFlatgrammResponse
          # Метод получения списка облегченных квартирограмм.
          # Для пользователей типов owner, employee: в результат фильтрации попадают только квартирограммы компании пользователя.
          # Для пользователей типов owner, employee: если filter.company_ids непустое и не совпадает с COMPANY_ID пользователя, метод вернет PERMISSION_DENIED = 7 (403 Forbidden).
          # Для пользователей типов owner, employee: если filter.company_ids пустое, то фильтрация по COMPANY_ID пользователя.
          # Метод доступен для: admin, manager, service, bti, ltp_first, owner, employee
          rpc :GetFlatgrammList, ::Keyapis::AccessControl::V1::GetFlatgrammListRequest, stream(::Keyapis::AccessControl::V1::GetFlatgrammListResponse)
          # Метод получения количества квартирограмм.
          # Для пользователей типов owner, employee: в результат фильтрации попадают только квартирограммы компании пользователя.
          # Для пользователей типов owner, employee: если filter.company_ids непустое и не совпадает с COMPANY_ID пользователя, метод вернет PERMISSION_DENIED = 7 (403 Forbidden).
          # Для пользователей типов owner, employee: если filter.company_ids пустое, то фильтрация по COMPANY_ID пользователя.
          # Метод доступен для: admin, manager, service, bti, ltp_first, owner, employee
          rpc :GetFlatgrammCount, ::Keyapis::AccessControl::V1::GetFlatgrammCountRequest, ::Keyapis::AccessControl::V1::GetFlatgrammCountResponse
          # Метод получения списка связей квартирограмм и домофонной компании.
          # Метод доступен для: admin, service, seller
          rpc :GetFlatgrammDcCompanyList, ::Keyapis::AccessControl::V1::GetFlatgrammDcCompanyListRequest, stream(::Keyapis::AccessControl::V1::GetFlatgrammDcCompanyListResponse)
          # Метод получения списка связей квартирограмм и компаний.
          # Метод доступен для: admin, service, seller
          rpc :GetFlatgrammCompanyRelationList, ::Keyapis::AccessControl::V1::GetFlatgrammCompanyRelationListRequest, stream(::Keyapis::AccessControl::V1::GetFlatgrammCompanyRelationListResponse)
          # Метод получения количества связей квартирограмм и домофонной компании.
          # Метод доступен для: admin, service, seller
          rpc :GetFlatgrammDcCompanyCount, ::Keyapis::AccessControl::V1::GetFlatgrammDcCompanyCountRequest, ::Keyapis::AccessControl::V1::GetFlatgrammDcCompanyCountResponse
          # Метод получения количества связей квартирограмм и компаний.
          # Метод доступен для: admin, service, seller
          rpc :GetFlatgrammCompanyRelationCount, ::Keyapis::AccessControl::V1::GetFlatgrammCompanyRelationCountRequest, ::Keyapis::AccessControl::V1::GetFlatgrammCompanyRelationCountResponse
          # Метод сохранения связей квартирограмм и домофонной компании.
          # Поддерживает только создание.
          # Метод доступен для: admin, service, seller
          rpc :PutFlatgrammDcCompanyAttach, ::Keyapis::AccessControl::V1::PutFlatgrammDcCompanyAttachRequest, ::Keyapis::AccessControl::V1::PutFlatgrammDcCompanyAttachResponse
          # Метод сохранения связей квартирограммы и компании.
          # Поддерживает только создание.
          # Метод доступен для: admin, service, seller
          rpc :PutFlatgrammCompanyRelationAttach, ::Keyapis::AccessControl::V1::PutFlatgrammCompanyRelationAttachRequest, ::Keyapis::AccessControl::V1::PutFlatgrammCompanyRelationAttachResponse
          # Метод удаления связей квартирограмм и домофонной компании.
          # Метод доступен для: admin, service, seller
          rpc :PutFlatgrammDcCompanyDetach, ::Keyapis::AccessControl::V1::PutFlatgrammDcCompanyDetachRequest, ::Keyapis::AccessControl::V1::PutFlatgrammDcCompanyDetachResponse
          # Метод удаления связей квартирограммы и компании.
          # Метод доступен для: admin, service, seller
          rpc :PutFlatgrammCompanyRelationDetach, ::Keyapis::AccessControl::V1::PutFlatgrammCompanyRelationDetachRequest, ::Keyapis::AccessControl::V1::PutFlatgrammCompanyRelationDetachResponse
        end

        Stub = Service.rpc_stub_class
      end
    end
  end
end
