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

require 'grpc'
require 'keyapis/invoice/v1/keyapis_invoice_invoice_v1_pb'

module Keyapis
  module Invoice
    module V1
      module InvoiceService
        # Сервис invoices
        class Service

          include ::GRPC::GenericService

          self.marshal_class_method = :encode
          self.unmarshal_class_method = :decode
          self.service_name = 'keyapis.invoice.v1.InvoiceService'

          # Метод создания платежа.
          # Создание платежа в своей и внешней платежной системе.
          # Метод доступен для: service
          rpc :CreateInvoice, ::Keyapis::Invoice::V1::CreateInvoiceRequest, ::Keyapis::Invoice::V1::CreateInvoiceResponse
          # Метод получения платежа.
          # Для master доступно получение платежа только с user_id из токена.
          # Метод доступен для: admin, service, master
          rpc :GetInvoice, ::Keyapis::Invoice::V1::GetInvoiceRequest, ::Keyapis::Invoice::V1::GetInvoiceResponse
          # Метод подтверждения платежа (вызывается со стороны внешней системы).
          # Не требует авторизации
          rpc :PostInvoiceConfirm, ::Keyapis::Invoice::V1::PostInvoiceConfirmRequest, ::Keyapis::Invoice::V1::PostInvoiceConfirmResponse
          # Метод получения списка платежей.
          # Для master доступно получение только собственных платежей, если параметр filter.user_id передан и не совпадает с user_id из токена, возвращается ошибка доступа.
          # Метод доступен для: admin, service, master, ltp_first
          rpc :GetInvoiceList, ::Keyapis::Invoice::V1::GetInvoiceListRequest, ::Keyapis::Invoice::V1::GetInvoiceListResponse
          # Метод получения количества платежей.
          # Для master в параметр filter.user_id подставляется user_id из токена.
          # Метод доступен для: admin, service, master, ltp_first
          rpc :GetInvoiceCount, ::Keyapis::Invoice::V1::GetInvoiceCountRequest, ::Keyapis::Invoice::V1::GetInvoiceCountResponse
        end

        Stub = Service.rpc_stub_class
      end
    end
  end
end
