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

require 'grpc'
require 'keyapis/multiapp/v1/keyapis_multiapp_partner_v1_pb'

module Keyapis
  module Multiapp
    module V1
      module PartnerService
        # Сервис управления партнерами  для суперапа
        class Service

          include ::GRPC::GenericService

          self.marshal_class_method = :encode
          self.unmarshal_class_method = :decode
          self.service_name = 'keyapis.multiapp.v1.PartnerService'

          # Метод сохранения партнера.
          # Поддерживает создание и обновление.
          # Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695525.
          # Метод доступен для: admin, manager, service
          rpc :PostPartner, ::Keyapis::Multiapp::V1::PostPartnerRequest, ::Keyapis::Multiapp::V1::PostPartnerResponse
          # Метод получения партнера.
          # Метод доступен для: admin, manager, service, ltp_first
          rpc :GetPartner, ::Keyapis::Multiapp::V1::GetPartnerRequest, ::Keyapis::Multiapp::V1::GetPartnerResponse
          # Метод получения списка партнеров.
          # Метод доступен для: admin, manager, service, ltp_first
          rpc :GetPartnerList, ::Keyapis::Multiapp::V1::GetPartnerListRequest, stream(::Keyapis::Multiapp::V1::GetPartnerListResponse)
          # Метод получения количества партнеров.
          # Метод доступен для: admin, manager, service, ltp_first
          rpc :GetPartnerCount, ::Keyapis::Multiapp::V1::GetPartnerCountRequest, ::Keyapis::Multiapp::V1::GetPartnerCountResponse
          # Метод получения токена.
          # Access токен возможно получить только для пользователей с типом master в статусе active, demo и new.
          # Логика работы метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695865.
          # Не требует авторизации
          rpc :GetPartnerToken, ::Keyapis::Multiapp::V1::GetPartnerTokenRequest, ::Keyapis::Multiapp::V1::GetPartnerTokenResponse
          # Метод обновления публичного ключа партнёра.
          # Поддерживает создание и обновление.
          # Метод доступен для: partner.
          # Требует передачи аутентификационного ключа в заголовке X-API-KEY.
          # Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=664695525
          rpc :PostPartnerPublicKey, ::Keyapis::Multiapp::V1::PostPartnerPublicKeyRequest, ::Keyapis::Multiapp::V1::PostPartnerPublicKeyResponse
          # Метод удаления партнёра.
          # Сценарий использования метода: https://confluence.rt.ru/pages/viewpage.action?pageId=804302306.
          # Метод доступен для: admin, manager, service
          rpc :DeletePartner, ::Keyapis::Multiapp::V1::DeletePartnerRequest, ::Keyapis::Multiapp::V1::DeletePartnerResponse
          # Метод получения адреса дома по ОРПОНу.
          # Адресная строка должны быть в формате "{Регион}, {Город}, {Улица}, {Дом}, {Строение}".
          # Партнер может получить адрес только по доступному ему ОРПОНу.
          # Доступные ОРПОНы для партнера может получить через привязанные app в поле app_tags и user_tags.
          # Метод доступен для: admin, manager, service, partner.
          # Роль partner определяется по наличию заголовка X-API-KEY вместо Authorization
          rpc :GetPartnerAddressOrpon, ::Keyapis::Multiapp::V1::GetPartnerAddressOrponRequest, ::Keyapis::Multiapp::V1::GetPartnerAddressOrponResponse
        end

        Stub = Service.rpc_stub_class
      end
    end
  end
end
