//
//Сервис реализует функционал управления выставленными счётами

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.30.0
// 	protoc        v4.23.1
// source: keyapis/invoice/v1/keyapis_invoice_invoice_v1.proto

package keyapis_invoice_v1

import (
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	_ "google.golang.org/protobuf/types/known/wrapperspb"
	reflect "reflect"
	sync "sync"
)

const (
	// Verify that this generated code is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion)
	// Verify that runtime/protoimpl is sufficiently up-to-date.
	_ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20)
)

// Справочник типов статусов оплаты счёта
type Invoice_InvoiceStatusType int32

const (
	// Значение не указано
	Invoice_INVOICE_STATUS_TYPE_UNKNOWN Invoice_InvoiceStatusType = 0
	// Создан, ожидает подтверждения
	Invoice_PLANNED Invoice_InvoiceStatusType = 1
	// Ожидает оплаты
	Invoice_PENDING Invoice_InvoiceStatusType = 2
	// Ошибка оплаты
	Invoice_ERROR Invoice_InvoiceStatusType = 3
	// Оплачен
	Invoice_PAID Invoice_InvoiceStatusType = 4
	// Отменен
	Invoice_CANCELLED Invoice_InvoiceStatusType = 5
)

// Enum value maps for Invoice_InvoiceStatusType.
var (
	Invoice_InvoiceStatusType_name = map[int32]string{
		0: "INVOICE_STATUS_TYPE_UNKNOWN",
		1: "PLANNED",
		2: "PENDING",
		3: "ERROR",
		4: "PAID",
		5: "CANCELLED",
	}
	Invoice_InvoiceStatusType_value = map[string]int32{
		"INVOICE_STATUS_TYPE_UNKNOWN": 0,
		"PLANNED":                     1,
		"PENDING":                     2,
		"ERROR":                       3,
		"PAID":                        4,
		"CANCELLED":                   5,
	}
)

func (x Invoice_InvoiceStatusType) Enum() *Invoice_InvoiceStatusType {
	p := new(Invoice_InvoiceStatusType)
	*p = x
	return p
}

func (x Invoice_InvoiceStatusType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Invoice_InvoiceStatusType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes[0].Descriptor()
}

func (Invoice_InvoiceStatusType) Type() protoreflect.EnumType {
	return &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes[0]
}

func (x Invoice_InvoiceStatusType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Invoice_InvoiceStatusType.Descriptor instead.
func (Invoice_InvoiceStatusType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{0, 0}
}

// Справочник банковских карт
type Invoice_CardType int32

const (
	// Значение не указано
	Invoice_CARD_TYPE_UNKNOWN Invoice_CardType = 0
	// Карта VISA
	Invoice_VISA Invoice_CardType = 1
	// Карта EuroCard/MasterCard
	Invoice_EC_MC Invoice_CardType = 2
	// Карта DinersClub
	Invoice_DCL Invoice_CardType = 3
	// Карта JCB
	Invoice_JCB Invoice_CardType = 4
	// Карта American Express
	Invoice_AMEX Invoice_CardType = 5
	// Платежная система "Мир"
	Invoice_MIR Invoice_CardType = 6
)

// Enum value maps for Invoice_CardType.
var (
	Invoice_CardType_name = map[int32]string{
		0: "CARD_TYPE_UNKNOWN",
		1: "VISA",
		2: "EC_MC",
		3: "DCL",
		4: "JCB",
		5: "AMEX",
		6: "MIR",
	}
	Invoice_CardType_value = map[string]int32{
		"CARD_TYPE_UNKNOWN": 0,
		"VISA":              1,
		"EC_MC":             2,
		"DCL":               3,
		"JCB":               4,
		"AMEX":              5,
		"MIR":               6,
	}
)

func (x Invoice_CardType) Enum() *Invoice_CardType {
	p := new(Invoice_CardType)
	*p = x
	return p
}

func (x Invoice_CardType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Invoice_CardType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes[1].Descriptor()
}

func (Invoice_CardType) Type() protoreflect.EnumType {
	return &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes[1]
}

func (x Invoice_CardType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Invoice_CardType.Descriptor instead.
func (Invoice_CardType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{0, 1}
}

// Справочник методов платежа
type Invoice_PayInterfaceType int32

const (
	// Значение не указано
	Invoice_PAY_INTERFACE_TYPE_UNKNOWN Invoice_PayInterfaceType = 0
	// Оплата через интерфейс предпроцессинга
	Invoice_GUI Invoice_PayInterfaceType = 1
	// Оплата с использованием ранее созданного способа платежа, настроенного по умолчанию
	Invoice_M2M Invoice_PayInterfaceType = 2
)

// Enum value maps for Invoice_PayInterfaceType.
var (
	Invoice_PayInterfaceType_name = map[int32]string{
		0: "PAY_INTERFACE_TYPE_UNKNOWN",
		1: "GUI",
		2: "M2M",
	}
	Invoice_PayInterfaceType_value = map[string]int32{
		"PAY_INTERFACE_TYPE_UNKNOWN": 0,
		"GUI":                        1,
		"M2M":                        2,
	}
)

func (x Invoice_PayInterfaceType) Enum() *Invoice_PayInterfaceType {
	p := new(Invoice_PayInterfaceType)
	*p = x
	return p
}

func (x Invoice_PayInterfaceType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Invoice_PayInterfaceType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes[2].Descriptor()
}

func (Invoice_PayInterfaceType) Type() protoreflect.EnumType {
	return &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes[2]
}

func (x Invoice_PayInterfaceType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Invoice_PayInterfaceType.Descriptor instead.
func (Invoice_PayInterfaceType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{0, 2}
}

// Справочник типов платежных средств
type Invoice_PaywayType int32

const (
	// Значение не указано
	Invoice_PAYWAY_TYPE_UNKNOWN Invoice_PaywayType = 0
	// Банковская карта
	Invoice_BANK_CARD Invoice_PaywayType = 1
	// Сервис быстрых платежей
	Invoice_SBP Invoice_PaywayType = 2
	// Связка Сбербанка
	Invoice_SBER_PAY Invoice_PaywayType = 3
)

// Enum value maps for Invoice_PaywayType.
var (
	Invoice_PaywayType_name = map[int32]string{
		0: "PAYWAY_TYPE_UNKNOWN",
		1: "BANK_CARD",
		2: "SBP",
		3: "SBER_PAY",
	}
	Invoice_PaywayType_value = map[string]int32{
		"PAYWAY_TYPE_UNKNOWN": 0,
		"BANK_CARD":           1,
		"SBP":                 2,
		"SBER_PAY":            3,
	}
)

func (x Invoice_PaywayType) Enum() *Invoice_PaywayType {
	p := new(Invoice_PaywayType)
	*p = x
	return p
}

func (x Invoice_PaywayType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (Invoice_PaywayType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes[3].Descriptor()
}

func (Invoice_PaywayType) Type() protoreflect.EnumType {
	return &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes[3]
}

func (x Invoice_PaywayType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use Invoice_PaywayType.Descriptor instead.
func (Invoice_PaywayType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{0, 3}
}

// Справочник типов значений сортировки.
// # Тип: byte
type InvoicePaging_OrderByType int32

const (
	// Значение не указано
	InvoicePaging_ORDER_BY_TYPE_UNKNOWN InvoicePaging_OrderByType = 0
	// По идентификатору
	InvoicePaging_ID InvoicePaging_OrderByType = 1
	// По дате оплаты
	InvoicePaging_PAID_AT InvoicePaging_OrderByType = 2
	// По дате создания
	InvoicePaging_CREATED_AT InvoicePaging_OrderByType = 3
)

// Enum value maps for InvoicePaging_OrderByType.
var (
	InvoicePaging_OrderByType_name = map[int32]string{
		0: "ORDER_BY_TYPE_UNKNOWN",
		1: "ID",
		2: "PAID_AT",
		3: "CREATED_AT",
	}
	InvoicePaging_OrderByType_value = map[string]int32{
		"ORDER_BY_TYPE_UNKNOWN": 0,
		"ID":                    1,
		"PAID_AT":               2,
		"CREATED_AT":            3,
	}
)

func (x InvoicePaging_OrderByType) Enum() *InvoicePaging_OrderByType {
	p := new(InvoicePaging_OrderByType)
	*p = x
	return p
}

func (x InvoicePaging_OrderByType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (InvoicePaging_OrderByType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes[4].Descriptor()
}

func (InvoicePaging_OrderByType) Type() protoreflect.EnumType {
	return &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes[4]
}

func (x InvoicePaging_OrderByType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use InvoicePaging_OrderByType.Descriptor instead.
func (InvoicePaging_OrderByType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{2, 0}
}

// Справочник типов направлений сортировки.
// # Тип: byte
type InvoicePaging_DirectionType int32

const (
	// Значение не указано
	InvoicePaging_DIRECTION_TYPE_UNKNOWN InvoicePaging_DirectionType = 0
	// От большего к меньшему
	InvoicePaging_DESC InvoicePaging_DirectionType = 1
	// От меньшего к большему
	InvoicePaging_ASC InvoicePaging_DirectionType = 2
)

// Enum value maps for InvoicePaging_DirectionType.
var (
	InvoicePaging_DirectionType_name = map[int32]string{
		0: "DIRECTION_TYPE_UNKNOWN",
		1: "DESC",
		2: "ASC",
	}
	InvoicePaging_DirectionType_value = map[string]int32{
		"DIRECTION_TYPE_UNKNOWN": 0,
		"DESC":                   1,
		"ASC":                    2,
	}
)

func (x InvoicePaging_DirectionType) Enum() *InvoicePaging_DirectionType {
	p := new(InvoicePaging_DirectionType)
	*p = x
	return p
}

func (x InvoicePaging_DirectionType) String() string {
	return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x))
}

func (InvoicePaging_DirectionType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes[5].Descriptor()
}

func (InvoicePaging_DirectionType) Type() protoreflect.EnumType {
	return &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes[5]
}

func (x InvoicePaging_DirectionType) Number() protoreflect.EnumNumber {
	return protoreflect.EnumNumber(x)
}

// Deprecated: Use InvoicePaging_DirectionType.Descriptor instead.
func (InvoicePaging_DirectionType) EnumDescriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{2, 1}
}

// Выставленный счёт
type Invoice struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор платежа.
	// # Тип: Guid
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Описание платежа
	Title string `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	// Идентификатор пользователя
	UserId int32 `protobuf:"varint,3,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// Статус платежа
	InvoiceStatusType Invoice_InvoiceStatusType `protobuf:"varint,4,opt,name=invoice_status_type,json=invoiceStatusType,proto3,enum=keyapis.invoice.v1.Invoice_InvoiceStatusType" json:"invoice_status_type,omitempty"`
	// Дата создания платежа.
	// # Тип: DateTime
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,5,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Дата обновления платежа.
	// # Тип: DateTime
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// Позиция счета
	Positions []*Invoice_Position `protobuf:"bytes,7,rep,name=positions,proto3" json:"positions,omitempty"`
	// Метод платежа
	PayInterfaceType Invoice_PayInterfaceType `protobuf:"varint,8,opt,name=pay_interface_type,json=payInterfaceType,proto3,enum=keyapis.invoice.v1.Invoice_PayInterfaceType" json:"pay_interface_type,omitempty"`
	// Способ оплаты
	PaywayType Invoice_PaywayType `protobuf:"varint,9,opt,name=payway_type,json=paywayType,proto3,enum=keyapis.invoice.v1.Invoice_PaywayType" json:"payway_type,omitempty"`
	// Дата изменения статуса платежа.
	// # Тип: DateTime
	StatusChangedAt *timestamppb.Timestamp `protobuf:"bytes,10,opt,name=status_changed_at,json=statusChangedAt,proto3" json:"status_changed_at,omitempty"`
	// Дата платежа.
	// # Тип: DateTime
	PaidAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=paid_at,json=paidAt,proto3" json:"paid_at,omitempty"`
	// Платежная ссылка
	PayUrl string `protobuf:"bytes,12,opt,name=pay_url,json=payUrl,proto3" json:"pay_url,omitempty"`
	// Маскированный номер карты при платеже
	PaidByCardMasked string `protobuf:"bytes,13,opt,name=paid_by_card_masked,json=paidByCardMasked,proto3" json:"paid_by_card_masked,omitempty"`
	// Идентификатор платежного средства в внешней системы
	PaidByCardEsppId string `protobuf:"bytes,14,opt,name=paid_by_card_espp_id,json=paidByCardEsppId,proto3" json:"paid_by_card_espp_id,omitempty"`
	// Тип банковской карты
	CardType Invoice_CardType `protobuf:"varint,15,opt,name=card_type,json=cardType,proto3,enum=keyapis.invoice.v1.Invoice_CardType" json:"card_type,omitempty"`
	// Код ошибки внешней системы
	EsppReqStatus int32 `protobuf:"varint,16,opt,name=espp_req_status,json=esppReqStatus,proto3" json:"espp_req_status,omitempty"`
	// Комментарий к статусу платежа из внешней системы
	EsppReqUserMsg string `protobuf:"bytes,17,opt,name=espp_req_user_msg,json=esppReqUserMsg,proto3" json:"espp_req_user_msg,omitempty"`
	// Уникальный номер транзакции в внешней системы
	EsppInvoiceId string `protobuf:"bytes,18,opt,name=espp_invoice_id,json=esppInvoiceId,proto3" json:"espp_invoice_id,omitempty"`
	// Номер телефона
	PhoneNumber string `protobuf:"bytes,19,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"`
	// Электронная почта
	Email string `protobuf:"bytes,20,opt,name=email,proto3" json:"email,omitempty"`
}

func (x *Invoice) Reset() {
	*x = Invoice{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[0]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Invoice) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Invoice) ProtoMessage() {}

func (x *Invoice) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[0]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Invoice.ProtoReflect.Descriptor instead.
func (*Invoice) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{0}
}

func (x *Invoice) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Invoice) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *Invoice) GetUserId() int32 {
	if x != nil {
		return x.UserId
	}
	return 0
}

func (x *Invoice) GetInvoiceStatusType() Invoice_InvoiceStatusType {
	if x != nil {
		return x.InvoiceStatusType
	}
	return Invoice_INVOICE_STATUS_TYPE_UNKNOWN
}

func (x *Invoice) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *Invoice) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

func (x *Invoice) GetPositions() []*Invoice_Position {
	if x != nil {
		return x.Positions
	}
	return nil
}

func (x *Invoice) GetPayInterfaceType() Invoice_PayInterfaceType {
	if x != nil {
		return x.PayInterfaceType
	}
	return Invoice_PAY_INTERFACE_TYPE_UNKNOWN
}

func (x *Invoice) GetPaywayType() Invoice_PaywayType {
	if x != nil {
		return x.PaywayType
	}
	return Invoice_PAYWAY_TYPE_UNKNOWN
}

func (x *Invoice) GetStatusChangedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.StatusChangedAt
	}
	return nil
}

func (x *Invoice) GetPaidAt() *timestamppb.Timestamp {
	if x != nil {
		return x.PaidAt
	}
	return nil
}

func (x *Invoice) GetPayUrl() string {
	if x != nil {
		return x.PayUrl
	}
	return ""
}

func (x *Invoice) GetPaidByCardMasked() string {
	if x != nil {
		return x.PaidByCardMasked
	}
	return ""
}

func (x *Invoice) GetPaidByCardEsppId() string {
	if x != nil {
		return x.PaidByCardEsppId
	}
	return ""
}

func (x *Invoice) GetCardType() Invoice_CardType {
	if x != nil {
		return x.CardType
	}
	return Invoice_CARD_TYPE_UNKNOWN
}

func (x *Invoice) GetEsppReqStatus() int32 {
	if x != nil {
		return x.EsppReqStatus
	}
	return 0
}

func (x *Invoice) GetEsppReqUserMsg() string {
	if x != nil {
		return x.EsppReqUserMsg
	}
	return ""
}

func (x *Invoice) GetEsppInvoiceId() string {
	if x != nil {
		return x.EsppInvoiceId
	}
	return ""
}

func (x *Invoice) GetPhoneNumber() string {
	if x != nil {
		return x.PhoneNumber
	}
	return ""
}

func (x *Invoice) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

// Фильтр инвойсов
type InvoiceFilter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор пользователя
	UserId int32 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// Статус платежа
	InvoiceStatusType Invoice_InvoiceStatusType `protobuf:"varint,2,opt,name=invoice_status_type,json=invoiceStatusType,proto3,enum=keyapis.invoice.v1.Invoice_InvoiceStatusType" json:"invoice_status_type,omitempty"`
}

func (x *InvoiceFilter) Reset() {
	*x = InvoiceFilter{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[1]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *InvoiceFilter) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*InvoiceFilter) ProtoMessage() {}

func (x *InvoiceFilter) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[1]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use InvoiceFilter.ProtoReflect.Descriptor instead.
func (*InvoiceFilter) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{1}
}

func (x *InvoiceFilter) GetUserId() int32 {
	if x != nil {
		return x.UserId
	}
	return 0
}

func (x *InvoiceFilter) GetInvoiceStatusType() Invoice_InvoiceStatusType {
	if x != nil {
		return x.InvoiceStatusType
	}
	return Invoice_INVOICE_STATUS_TYPE_UNKNOWN
}

// Постраничный вывод
type InvoicePaging struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип значения сортировки.
	// Если значение не передано, то будет взято значение по умолчанию.
	// # По умолчанию: PAID_AT
	OrderByType InvoicePaging_OrderByType `protobuf:"varint,1,opt,name=order_by_type,json=orderByType,proto3,enum=keyapis.invoice.v1.InvoicePaging_OrderByType" json:"order_by_type,omitempty"`
	// Тип направления сортировки.
	// # По умолчанию: DESC
	DirectionType InvoicePaging_DirectionType `protobuf:"varint,2,opt,name=direction_type,json=directionType,proto3,enum=keyapis.invoice.v1.InvoicePaging_DirectionType" json:"direction_type,omitempty"`
	// Количество записей на страницу.
	// Если значение 0 (не передано), то будет взято значение по умолчанию.
	// # Диапазон: 0..100.
	// # По умолчанию: 20
	Limit int32 `protobuf:"varint,3,opt,name=limit,proto3" json:"limit,omitempty"`
	// Сдвиг.
	// # Диапазон: 0..2147483647
	Offset int32 `protobuf:"varint,4,opt,name=offset,proto3" json:"offset,omitempty"`
}

func (x *InvoicePaging) Reset() {
	*x = InvoicePaging{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *InvoicePaging) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*InvoicePaging) ProtoMessage() {}

func (x *InvoicePaging) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[2]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use InvoicePaging.ProtoReflect.Descriptor instead.
func (*InvoicePaging) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{2}
}

func (x *InvoicePaging) GetOrderByType() InvoicePaging_OrderByType {
	if x != nil {
		return x.OrderByType
	}
	return InvoicePaging_ORDER_BY_TYPE_UNKNOWN
}

func (x *InvoicePaging) GetDirectionType() InvoicePaging_DirectionType {
	if x != nil {
		return x.DirectionType
	}
	return InvoicePaging_DIRECTION_TYPE_UNKNOWN
}

func (x *InvoicePaging) GetLimit() int32 {
	if x != nil {
		return x.Limit
	}
	return 0
}

func (x *InvoicePaging) GetOffset() int32 {
	if x != nil {
		return x.Offset
	}
	return 0
}

// Запрос на создание платежа
type CreateInvoiceRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор пользователя
	UserId int32 `protobuf:"varint,1,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"`
	// Позиция счета
	Positions []*Invoice_Position `protobuf:"bytes,2,rep,name=positions,proto3" json:"positions,omitempty"`
	// Метод платежа
	PayInterfaceType Invoice_PayInterfaceType `protobuf:"varint,3,opt,name=pay_interface_type,json=payInterfaceType,proto3,enum=keyapis.invoice.v1.Invoice_PayInterfaceType" json:"pay_interface_type,omitempty"`
	// Способ оплаты.
	// По умолчанию: BANK_CARD
	PaywayType Invoice_PaywayType `protobuf:"varint,4,opt,name=payway_type,json=paywayType,proto3,enum=keyapis.invoice.v1.Invoice_PaywayType" json:"payway_type,omitempty"`
	// Ссылка для перехода после оплаты.
	// Если не передан подставится значение по умолчанию
	ReturnUrl string `protobuf:"bytes,5,opt,name=return_url,json=returnUrl,proto3" json:"return_url,omitempty"`
	// Номер телефона.
	// Должно быть означено поле phone_number, либо поле email
	PhoneNumber string `protobuf:"bytes,6,opt,name=phone_number,json=phoneNumber,proto3" json:"phone_number,omitempty"`
	// Электронная почта.
	// Должно быть означено поле phone_number, либо поле email
	Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"`
	// Описание платежа.
	// По умолчанию подставляется "Счёт от {DD.MM.YYYY}г."
	Title string `protobuf:"bytes,8,opt,name=title,proto3" json:"title,omitempty"`
}

func (x *CreateInvoiceRequest) Reset() {
	*x = CreateInvoiceRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[3]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateInvoiceRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateInvoiceRequest) ProtoMessage() {}

func (x *CreateInvoiceRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[3]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateInvoiceRequest.ProtoReflect.Descriptor instead.
func (*CreateInvoiceRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{3}
}

func (x *CreateInvoiceRequest) GetUserId() int32 {
	if x != nil {
		return x.UserId
	}
	return 0
}

func (x *CreateInvoiceRequest) GetPositions() []*Invoice_Position {
	if x != nil {
		return x.Positions
	}
	return nil
}

func (x *CreateInvoiceRequest) GetPayInterfaceType() Invoice_PayInterfaceType {
	if x != nil {
		return x.PayInterfaceType
	}
	return Invoice_PAY_INTERFACE_TYPE_UNKNOWN
}

func (x *CreateInvoiceRequest) GetPaywayType() Invoice_PaywayType {
	if x != nil {
		return x.PaywayType
	}
	return Invoice_PAYWAY_TYPE_UNKNOWN
}

func (x *CreateInvoiceRequest) GetReturnUrl() string {
	if x != nil {
		return x.ReturnUrl
	}
	return ""
}

func (x *CreateInvoiceRequest) GetPhoneNumber() string {
	if x != nil {
		return x.PhoneNumber
	}
	return ""
}

func (x *CreateInvoiceRequest) GetEmail() string {
	if x != nil {
		return x.Email
	}
	return ""
}

func (x *CreateInvoiceRequest) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

// Ответ на запрос создание платежа
type CreateInvoiceResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип ответа
	//
	// Types that are assignable to Type:
	//
	//	*CreateInvoiceResponse_Error_
	//	*CreateInvoiceResponse_Data
	Type isCreateInvoiceResponse_Type `protobuf_oneof:"type"`
}

func (x *CreateInvoiceResponse) Reset() {
	*x = CreateInvoiceResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[4]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateInvoiceResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateInvoiceResponse) ProtoMessage() {}

func (x *CreateInvoiceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[4]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateInvoiceResponse.ProtoReflect.Descriptor instead.
func (*CreateInvoiceResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{4}
}

func (m *CreateInvoiceResponse) GetType() isCreateInvoiceResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *CreateInvoiceResponse) GetError() *CreateInvoiceResponse_Error {
	if x, ok := x.GetType().(*CreateInvoiceResponse_Error_); ok {
		return x.Error
	}
	return nil
}

func (x *CreateInvoiceResponse) GetData() *Invoice {
	if x, ok := x.GetType().(*CreateInvoiceResponse_Data); ok {
		return x.Data
	}
	return nil
}

type isCreateInvoiceResponse_Type interface {
	isCreateInvoiceResponse_Type()
}

type CreateInvoiceResponse_Error_ struct {
	// Ошибка валидации
	Error *CreateInvoiceResponse_Error `protobuf:"bytes,1,opt,name=error,proto3,oneof"`
}

type CreateInvoiceResponse_Data struct {
	// Платеж
	Data *Invoice `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}

func (*CreateInvoiceResponse_Error_) isCreateInvoiceResponse_Type() {}

func (*CreateInvoiceResponse_Data) isCreateInvoiceResponse_Type() {}

// Запрос на получение статуса платежа
type GetInvoiceRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор платежа в Ключе.
	// # Тип: Guid
	InvoiceId string `protobuf:"bytes,1,opt,name=invoice_id,json=invoiceId,proto3" json:"invoice_id,omitempty"`
}

func (x *GetInvoiceRequest) Reset() {
	*x = GetInvoiceRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[5]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetInvoiceRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetInvoiceRequest) ProtoMessage() {}

func (x *GetInvoiceRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[5]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetInvoiceRequest.ProtoReflect.Descriptor instead.
func (*GetInvoiceRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{5}
}

func (x *GetInvoiceRequest) GetInvoiceId() string {
	if x != nil {
		return x.InvoiceId
	}
	return ""
}

// Ответ на запрос получения платежа
type GetInvoiceResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип ответа
	//
	// Types that are assignable to Type:
	//
	//	*GetInvoiceResponse_Error_
	//	*GetInvoiceResponse_Data
	Type isGetInvoiceResponse_Type `protobuf_oneof:"type"`
}

func (x *GetInvoiceResponse) Reset() {
	*x = GetInvoiceResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[6]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetInvoiceResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetInvoiceResponse) ProtoMessage() {}

func (x *GetInvoiceResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[6]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetInvoiceResponse.ProtoReflect.Descriptor instead.
func (*GetInvoiceResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{6}
}

func (m *GetInvoiceResponse) GetType() isGetInvoiceResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetInvoiceResponse) GetError() *GetInvoiceResponse_Error {
	if x, ok := x.GetType().(*GetInvoiceResponse_Error_); ok {
		return x.Error
	}
	return nil
}

func (x *GetInvoiceResponse) GetData() *Invoice {
	if x, ok := x.GetType().(*GetInvoiceResponse_Data); ok {
		return x.Data
	}
	return nil
}

type isGetInvoiceResponse_Type interface {
	isGetInvoiceResponse_Type()
}

type GetInvoiceResponse_Error_ struct {
	// Ошибка
	Error *GetInvoiceResponse_Error `protobuf:"bytes,1,opt,name=error,proto3,oneof"`
}

type GetInvoiceResponse_Data struct {
	// Платеж
	Data *Invoice `protobuf:"bytes,2,opt,name=data,proto3,oneof"`
}

func (*GetInvoiceResponse_Error_) isGetInvoiceResponse_Type() {}

func (*GetInvoiceResponse_Data) isGetInvoiceResponse_Type() {}

// Запрос на подтверждение платежа
type PostInvoiceConfirmRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор платежа в Ключе
	SrcPayId string `protobuf:"bytes,1,opt,name=src_pay_id,json=srcPayId,proto3" json:"src_pay_id,omitempty"`
	// Идентификатор платежа во внешней системе
	EsppPayId string `protobuf:"bytes,2,opt,name=espp_pay_id,json=esppPayId,proto3" json:"espp_pay_id,omitempty"`
	// Статус платежа из внешней системы
	PayStatus int32 `protobuf:"varint,3,opt,name=pay_status,json=payStatus,proto3" json:"pay_status,omitempty"`
	// Тип запроса.
	// Должно иметь значение "confirmPayment"
	ReqType string `protobuf:"bytes,4,opt,name=req_type,json=reqType,proto3" json:"req_type,omitempty"`
	// Сумма платежа в минимальных единицах валюты
	Amount float32 `protobuf:"fixed32,5,opt,name=amount,proto3" json:"amount,omitempty"`
	// Код валюты платежа
	Currency string `protobuf:"bytes,6,opt,name=currency,proto3" json:"currency,omitempty"`
	// Код способа оплаты
	PayMethod string `protobuf:"bytes,7,opt,name=pay_method,json=payMethod,proto3" json:"pay_method,omitempty"`
	// Дата регистрации платежа.
	// # Тип: DateTime
	CreateTimeAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=create_time_at,json=createTime,proto3" json:"create_time_at,omitempty"`
	// Комментарий или сообщение об ошибке
	ReqNote string `protobuf:"bytes,9,opt,name=req_note,json=reqNote,proto3" json:"req_note,omitempty"`
	// Сообщение, отображаемое пользователю
	ReqUserMsg string `protobuf:"bytes,10,opt,name=req_user_msg,json=reqUserMsg,proto3" json:"req_user_msg,omitempty"`
	// Время фактической оплаты. Время фактической оплаты на стороне Процессинга. Возвращается, если оплата состоялась
	PayTimeAt *timestamppb.Timestamp `protobuf:"bytes,11,opt,name=pay_time_at,json=payTime,proto3" json:"pay_time_at,omitempty"`
	// Время фактической отмены оплаты.
	// Время фактической отмены оплаты на стороне Процессинга.
	// Возвращается, если отмена оплаты состоялась
	AbandonTimeAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=abandon_time_at,json=abandonTime,proto3" json:"abandon_time_at,omitempty"`
	// Структура с информацией о карте плательщика.
	// Передаётся только при успешном платеже и если указаны способы оплаты payMethod = StoredBankCard либо BankCard
	Card *PostInvoiceConfirmRequest_Card `protobuf:"bytes,13,opt,name=card,proto3" json:"card,omitempty"`
}

func (x *PostInvoiceConfirmRequest) Reset() {
	*x = PostInvoiceConfirmRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[7]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PostInvoiceConfirmRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PostInvoiceConfirmRequest) ProtoMessage() {}

func (x *PostInvoiceConfirmRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[7]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostInvoiceConfirmRequest.ProtoReflect.Descriptor instead.
func (*PostInvoiceConfirmRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{7}
}

func (x *PostInvoiceConfirmRequest) GetSrcPayId() string {
	if x != nil {
		return x.SrcPayId
	}
	return ""
}

func (x *PostInvoiceConfirmRequest) GetEsppPayId() string {
	if x != nil {
		return x.EsppPayId
	}
	return ""
}

func (x *PostInvoiceConfirmRequest) GetPayStatus() int32 {
	if x != nil {
		return x.PayStatus
	}
	return 0
}

func (x *PostInvoiceConfirmRequest) GetReqType() string {
	if x != nil {
		return x.ReqType
	}
	return ""
}

func (x *PostInvoiceConfirmRequest) GetAmount() float32 {
	if x != nil {
		return x.Amount
	}
	return 0
}

func (x *PostInvoiceConfirmRequest) GetCurrency() string {
	if x != nil {
		return x.Currency
	}
	return ""
}

func (x *PostInvoiceConfirmRequest) GetPayMethod() string {
	if x != nil {
		return x.PayMethod
	}
	return ""
}

func (x *PostInvoiceConfirmRequest) GetCreateTimeAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreateTimeAt
	}
	return nil
}

func (x *PostInvoiceConfirmRequest) GetReqNote() string {
	if x != nil {
		return x.ReqNote
	}
	return ""
}

func (x *PostInvoiceConfirmRequest) GetReqUserMsg() string {
	if x != nil {
		return x.ReqUserMsg
	}
	return ""
}

func (x *PostInvoiceConfirmRequest) GetPayTimeAt() *timestamppb.Timestamp {
	if x != nil {
		return x.PayTimeAt
	}
	return nil
}

func (x *PostInvoiceConfirmRequest) GetAbandonTimeAt() *timestamppb.Timestamp {
	if x != nil {
		return x.AbandonTimeAt
	}
	return nil
}

func (x *PostInvoiceConfirmRequest) GetCard() *PostInvoiceConfirmRequest_Card {
	if x != nil {
		return x.Card
	}
	return nil
}

// Ответ на запрос подтверждения платежа
type PostInvoiceConfirmResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *PostInvoiceConfirmResponse) Reset() {
	*x = PostInvoiceConfirmResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[8]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PostInvoiceConfirmResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PostInvoiceConfirmResponse) ProtoMessage() {}

func (x *PostInvoiceConfirmResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[8]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostInvoiceConfirmResponse.ProtoReflect.Descriptor instead.
func (*PostInvoiceConfirmResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{8}
}

// Запрос на получение списка платежей
type GetInvoiceListRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Фильтр
	Filter *InvoiceFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
	// Вариант разбиения на страницы
	//
	// Types that are assignable to Pagination:
	//
	//	*GetInvoiceListRequest_Paging
	Pagination isGetInvoiceListRequest_Pagination `protobuf_oneof:"pagination"`
}

func (x *GetInvoiceListRequest) Reset() {
	*x = GetInvoiceListRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[9]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetInvoiceListRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetInvoiceListRequest) ProtoMessage() {}

func (x *GetInvoiceListRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[9]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetInvoiceListRequest.ProtoReflect.Descriptor instead.
func (*GetInvoiceListRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{9}
}

func (x *GetInvoiceListRequest) GetFilter() *InvoiceFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (m *GetInvoiceListRequest) GetPagination() isGetInvoiceListRequest_Pagination {
	if m != nil {
		return m.Pagination
	}
	return nil
}

func (x *GetInvoiceListRequest) GetPaging() *InvoicePaging {
	if x, ok := x.GetPagination().(*GetInvoiceListRequest_Paging); ok {
		return x.Paging
	}
	return nil
}

type isGetInvoiceListRequest_Pagination interface {
	isGetInvoiceListRequest_Pagination()
}

type GetInvoiceListRequest_Paging struct {
	// Пагинация
	Paging *InvoicePaging `protobuf:"bytes,2,opt,name=paging,proto3,oneof"`
}

func (*GetInvoiceListRequest_Paging) isGetInvoiceListRequest_Pagination() {}

// Ответ на запрос получения списка платежей
type GetInvoiceListResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Платежи
	Data []*Invoice `protobuf:"bytes,1,rep,name=data,proto3" json:"data,omitempty"`
	// Ошибка
	Error *GetInvoiceListResponse_Error `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
}

func (x *GetInvoiceListResponse) Reset() {
	*x = GetInvoiceListResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[10]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetInvoiceListResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetInvoiceListResponse) ProtoMessage() {}

func (x *GetInvoiceListResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[10]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetInvoiceListResponse.ProtoReflect.Descriptor instead.
func (*GetInvoiceListResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{10}
}

func (x *GetInvoiceListResponse) GetData() []*Invoice {
	if x != nil {
		return x.Data
	}
	return nil
}

func (x *GetInvoiceListResponse) GetError() *GetInvoiceListResponse_Error {
	if x != nil {
		return x.Error
	}
	return nil
}

// Запрос на получение количества платежей
type GetInvoiceCountRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Фильтр
	Filter *InvoiceFilter `protobuf:"bytes,1,opt,name=filter,proto3" json:"filter,omitempty"`
}

func (x *GetInvoiceCountRequest) Reset() {
	*x = GetInvoiceCountRequest{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[11]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetInvoiceCountRequest) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetInvoiceCountRequest) ProtoMessage() {}

func (x *GetInvoiceCountRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[11]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetInvoiceCountRequest.ProtoReflect.Descriptor instead.
func (*GetInvoiceCountRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{11}
}

func (x *GetInvoiceCountRequest) GetFilter() *InvoiceFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

// Ответ на запрос получения количества платежей
type GetInvoiceCountResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип результата
	//
	// Types that are assignable to Type:
	//
	//	*GetInvoiceCountResponse_Data
	Type isGetInvoiceCountResponse_Type `protobuf_oneof:"type"`
}

func (x *GetInvoiceCountResponse) Reset() {
	*x = GetInvoiceCountResponse{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[12]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetInvoiceCountResponse) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetInvoiceCountResponse) ProtoMessage() {}

func (x *GetInvoiceCountResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[12]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetInvoiceCountResponse.ProtoReflect.Descriptor instead.
func (*GetInvoiceCountResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{12}
}

func (m *GetInvoiceCountResponse) GetType() isGetInvoiceCountResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetInvoiceCountResponse) GetData() int32 {
	if x, ok := x.GetType().(*GetInvoiceCountResponse_Data); ok {
		return x.Data
	}
	return 0
}

type isGetInvoiceCountResponse_Type interface {
	isGetInvoiceCountResponse_Type()
}

type GetInvoiceCountResponse_Data struct {
	// Количество
	Data int32 `protobuf:"varint,1,opt,name=data,proto3,oneof"`
}

func (*GetInvoiceCountResponse_Data) isGetInvoiceCountResponse_Type() {}

// Ошибки внешней системы
type Invoice_ExternalError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина
	//
	// Types that are assignable to Reason:
	//
	//	*Invoice_ExternalError_ExternalSystemError_
	Reason isInvoice_ExternalError_Reason `protobuf_oneof:"reason"`
}

func (x *Invoice_ExternalError) Reset() {
	*x = Invoice_ExternalError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[13]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Invoice_ExternalError) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Invoice_ExternalError) ProtoMessage() {}

func (x *Invoice_ExternalError) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[13]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Invoice_ExternalError.ProtoReflect.Descriptor instead.
func (*Invoice_ExternalError) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{0, 0}
}

func (m *Invoice_ExternalError) GetReason() isInvoice_ExternalError_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *Invoice_ExternalError) GetExternalSystemError() *Invoice_ExternalError_ExternalSystemError {
	if x, ok := x.GetReason().(*Invoice_ExternalError_ExternalSystemError_); ok {
		return x.ExternalSystemError
	}
	return nil
}

type isInvoice_ExternalError_Reason interface {
	isInvoice_ExternalError_Reason()
}

type Invoice_ExternalError_ExternalSystemError_ struct {
	// Запрос к внешней системе вернул ошибку или прекращен по таймауту
	ExternalSystemError *Invoice_ExternalError_ExternalSystemError `protobuf:"bytes,1,opt,name=external_system_error,json=externalSystemError,proto3,oneof"`
}

func (*Invoice_ExternalError_ExternalSystemError_) isInvoice_ExternalError_Reason() {}

// Позиция счета
type Invoice_Position struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор позиции.
	// # Тип: Guid
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Идентификатор платежа.
	// # Тип: Guid
	InvoiceId string `protobuf:"bytes,2,opt,name=invoice_id,json=invoiceId,proto3" json:"invoice_id,omitempty"`
	// Название позиции
	Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
	// Категория позиции (='subscription')
	Category string `protobuf:"bytes,4,opt,name=category,proto3" json:"category,omitempty"`
	// Цена в рублях.
	// Число должно быть больше 0
	Amount float32 `protobuf:"fixed32,5,opt,name=amount,proto3" json:"amount,omitempty"`
	// Дата создания позиции платежа.
	// # Тип: DateTime
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,6,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Дата обновления позиции платежа.
	// # Тип: DateTime
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,7,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
	// Идентификатор МРФ
	MrfId int32 `protobuf:"varint,8,opt,name=mrf_id,json=mrfId,proto3" json:"mrf_id,omitempty"`
	// Идентификатор РФ
	RfId int32 `protobuf:"varint,9,opt,name=rf_id,json=rfId,proto3" json:"rf_id,omitempty"`
	// Идентификатор экземпляра оплачиваемой подписки.
	// # Тип: Guid
	InstanceId string `protobuf:"bytes,10,opt,name=instance_id,json=instanceId,proto3" json:"instance_id,omitempty"`
	// Идентификатор предложения оплачиваемой подписки
	OfferingId int32 `protobuf:"varint,11,opt,name=offering_id,json=offeringId,proto3" json:"offering_id,omitempty"`
	// Срок окончания оплачиваемого периода
	DueDateAt *timestamppb.Timestamp `protobuf:"bytes,12,opt,name=due_date_at,json=dueDateAt,proto3" json:"due_date_at,omitempty"`
	// Идентификатор получателя платежа
	SvcTypeId string `protobuf:"bytes,13,opt,name=svc_type_id,json=svcTypeId,proto3" json:"svc_type_id,omitempty"`
	// Признак скидки
	IsDiscount bool `protobuf:"varint,14,opt,name=is_discount,json=isDiscount,proto3" json:"is_discount,omitempty"`
}

func (x *Invoice_Position) Reset() {
	*x = Invoice_Position{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[14]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Invoice_Position) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Invoice_Position) ProtoMessage() {}

func (x *Invoice_Position) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[14]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Invoice_Position.ProtoReflect.Descriptor instead.
func (*Invoice_Position) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{0, 1}
}

func (x *Invoice_Position) GetId() string {
	if x != nil {
		return x.Id
	}
	return ""
}

func (x *Invoice_Position) GetInvoiceId() string {
	if x != nil {
		return x.InvoiceId
	}
	return ""
}

func (x *Invoice_Position) GetTitle() string {
	if x != nil {
		return x.Title
	}
	return ""
}

func (x *Invoice_Position) GetCategory() string {
	if x != nil {
		return x.Category
	}
	return ""
}

func (x *Invoice_Position) GetAmount() float32 {
	if x != nil {
		return x.Amount
	}
	return 0
}

func (x *Invoice_Position) GetCreatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.CreatedAt
	}
	return nil
}

func (x *Invoice_Position) GetUpdatedAt() *timestamppb.Timestamp {
	if x != nil {
		return x.UpdatedAt
	}
	return nil
}

func (x *Invoice_Position) GetMrfId() int32 {
	if x != nil {
		return x.MrfId
	}
	return 0
}

func (x *Invoice_Position) GetRfId() int32 {
	if x != nil {
		return x.RfId
	}
	return 0
}

func (x *Invoice_Position) GetInstanceId() string {
	if x != nil {
		return x.InstanceId
	}
	return ""
}

func (x *Invoice_Position) GetOfferingId() int32 {
	if x != nil {
		return x.OfferingId
	}
	return 0
}

func (x *Invoice_Position) GetDueDateAt() *timestamppb.Timestamp {
	if x != nil {
		return x.DueDateAt
	}
	return nil
}

func (x *Invoice_Position) GetSvcTypeId() string {
	if x != nil {
		return x.SvcTypeId
	}
	return ""
}

func (x *Invoice_Position) GetIsDiscount() bool {
	if x != nil {
		return x.IsDiscount
	}
	return false
}

// Ошибка сохранения.
// Эти проверки выполняются при работе с базой данных и сторонними сервисами
type Invoice_SavingError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*Invoice_SavingError_InvoiceAlreadyExists_
	Reason isInvoice_SavingError_Reason `protobuf_oneof:"reason"`
}

func (x *Invoice_SavingError) Reset() {
	*x = Invoice_SavingError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[15]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Invoice_SavingError) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Invoice_SavingError) ProtoMessage() {}

func (x *Invoice_SavingError) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[15]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Invoice_SavingError.ProtoReflect.Descriptor instead.
func (*Invoice_SavingError) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{0, 2}
}

func (m *Invoice_SavingError) GetReason() isInvoice_SavingError_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *Invoice_SavingError) GetInvoiceAlreadyExists() *Invoice_SavingError_InvoiceAlreadyExists {
	if x, ok := x.GetReason().(*Invoice_SavingError_InvoiceAlreadyExists_); ok {
		return x.InvoiceAlreadyExists
	}
	return nil
}

type isInvoice_SavingError_Reason interface {
	isInvoice_SavingError_Reason()
}

type Invoice_SavingError_InvoiceAlreadyExists_ struct {
	// У пользователя уже есть платеж со статусом PENDING
	InvoiceAlreadyExists *Invoice_SavingError_InvoiceAlreadyExists `protobuf:"bytes,1,opt,name=invoice_already_exists,json=invoiceAlreadyExists,proto3,oneof"`
}

func (*Invoice_SavingError_InvoiceAlreadyExists_) isInvoice_SavingError_Reason() {}

// Запрос к внешней системе вернул ошибку или прекращен по таймауту
type Invoice_ExternalError_ExternalSystemError struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Invoice_ExternalError_ExternalSystemError) Reset() {
	*x = Invoice_ExternalError_ExternalSystemError{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[16]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Invoice_ExternalError_ExternalSystemError) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Invoice_ExternalError_ExternalSystemError) ProtoMessage() {}

func (x *Invoice_ExternalError_ExternalSystemError) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[16]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Invoice_ExternalError_ExternalSystemError.ProtoReflect.Descriptor instead.
func (*Invoice_ExternalError_ExternalSystemError) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{0, 0, 0}
}

// У пользователя уже есть платеж со статусом PENDING
type Invoice_SavingError_InvoiceAlreadyExists struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *Invoice_SavingError_InvoiceAlreadyExists) Reset() {
	*x = Invoice_SavingError_InvoiceAlreadyExists{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[17]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *Invoice_SavingError_InvoiceAlreadyExists) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*Invoice_SavingError_InvoiceAlreadyExists) ProtoMessage() {}

func (x *Invoice_SavingError_InvoiceAlreadyExists) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[17]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Invoice_SavingError_InvoiceAlreadyExists.ProtoReflect.Descriptor instead.
func (*Invoice_SavingError_InvoiceAlreadyExists) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{0, 2, 0}
}

// Ошибка запроса
type CreateInvoiceResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*CreateInvoiceResponse_Error_Validation
	//	*CreateInvoiceResponse_Error_MissingUserContacts_
	//	*CreateInvoiceResponse_Error_External
	//	*CreateInvoiceResponse_Error_Saving
	Reason isCreateInvoiceResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *CreateInvoiceResponse_Error) Reset() {
	*x = CreateInvoiceResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[18]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateInvoiceResponse_Error) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateInvoiceResponse_Error) ProtoMessage() {}

func (x *CreateInvoiceResponse_Error) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[18]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateInvoiceResponse_Error.ProtoReflect.Descriptor instead.
func (*CreateInvoiceResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{4, 0}
}

func (m *CreateInvoiceResponse_Error) GetReason() isCreateInvoiceResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *CreateInvoiceResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*CreateInvoiceResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

func (x *CreateInvoiceResponse_Error) GetMissingUserContacts() *CreateInvoiceResponse_Error_MissingUserContacts {
	if x, ok := x.GetReason().(*CreateInvoiceResponse_Error_MissingUserContacts_); ok {
		return x.MissingUserContacts
	}
	return nil
}

func (x *CreateInvoiceResponse_Error) GetExternal() *Invoice_ExternalError {
	if x, ok := x.GetReason().(*CreateInvoiceResponse_Error_External); ok {
		return x.External
	}
	return nil
}

func (x *CreateInvoiceResponse_Error) GetSaving() *Invoice_SavingError {
	if x, ok := x.GetReason().(*CreateInvoiceResponse_Error_Saving); ok {
		return x.Saving
	}
	return nil
}

type isCreateInvoiceResponse_Error_Reason interface {
	isCreateInvoiceResponse_Error_Reason()
}

type CreateInvoiceResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

type CreateInvoiceResponse_Error_MissingUserContacts_ struct {
	// Должно быть означено поле phone_number, либо поле email
	MissingUserContacts *CreateInvoiceResponse_Error_MissingUserContacts `protobuf:"bytes,2,opt,name=missing_user_contacts,json=missingUserContacts,proto3,oneof"`
}

type CreateInvoiceResponse_Error_External struct {
	// Ошибки внешней системы
	External *Invoice_ExternalError `protobuf:"bytes,3,opt,name=external,proto3,oneof"`
}

type CreateInvoiceResponse_Error_Saving struct {
	// Ошибка сохранения
	Saving *Invoice_SavingError `protobuf:"bytes,4,opt,name=saving,proto3,oneof"`
}

func (*CreateInvoiceResponse_Error_Validation) isCreateInvoiceResponse_Error_Reason() {}

func (*CreateInvoiceResponse_Error_MissingUserContacts_) isCreateInvoiceResponse_Error_Reason() {}

func (*CreateInvoiceResponse_Error_External) isCreateInvoiceResponse_Error_Reason() {}

func (*CreateInvoiceResponse_Error_Saving) isCreateInvoiceResponse_Error_Reason() {}

// Должно быть означено поле phone_number, либо поле email
type CreateInvoiceResponse_Error_MissingUserContacts struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *CreateInvoiceResponse_Error_MissingUserContacts) Reset() {
	*x = CreateInvoiceResponse_Error_MissingUserContacts{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[19]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *CreateInvoiceResponse_Error_MissingUserContacts) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*CreateInvoiceResponse_Error_MissingUserContacts) ProtoMessage() {}

func (x *CreateInvoiceResponse_Error_MissingUserContacts) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[19]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use CreateInvoiceResponse_Error_MissingUserContacts.ProtoReflect.Descriptor instead.
func (*CreateInvoiceResponse_Error_MissingUserContacts) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{4, 0, 0}
}

// Ошибка запроса
type GetInvoiceResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*GetInvoiceResponse_Error_Validation
	Reason isGetInvoiceResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *GetInvoiceResponse_Error) Reset() {
	*x = GetInvoiceResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[20]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetInvoiceResponse_Error) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetInvoiceResponse_Error) ProtoMessage() {}

func (x *GetInvoiceResponse_Error) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[20]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetInvoiceResponse_Error.ProtoReflect.Descriptor instead.
func (*GetInvoiceResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{6, 0}
}

func (m *GetInvoiceResponse_Error) GetReason() isGetInvoiceResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *GetInvoiceResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*GetInvoiceResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

type isGetInvoiceResponse_Error_Reason interface {
	isGetInvoiceResponse_Error_Reason()
}

type GetInvoiceResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

func (*GetInvoiceResponse_Error_Validation) isGetInvoiceResponse_Error_Reason() {}

// Структура с информацией о карте плательщика
type PostInvoiceConfirmRequest_Card struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор платежного средства во внешней системы.
	// Возвращается в случае успешной привязки БК к УЗ
	EsppCardId int32 `protobuf:"varint,1,opt,name=espp_card_id,json=esppCardId,proto3" json:"espp_card_id,omitempty"`
	// Номер платежного средства.
	// Маскированный номер карты. Например: 123456******7890
	CardNum string `protobuf:"bytes,2,opt,name=card_num,json=cardNum,proto3" json:"card_num,omitempty"`
	// Тип банковской карты
	CardKind string `protobuf:"bytes,3,opt,name=card_kind,json=cardType,proto3" json:"card_kind,omitempty"`
	// Банк-эмитент.
	// Наименование банка-эмитента. Процессинг может вернуть значение "НЕ ЗАДАВАЛСЯ".
	// В этом случае рекомендуется не отображать эту информацию для пользователя
	BankName string `protobuf:"bytes,4,opt,name=bank_name,json=bankName,proto3" json:"bank_name,omitempty"`
}

func (x *PostInvoiceConfirmRequest_Card) Reset() {
	*x = PostInvoiceConfirmRequest_Card{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[21]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *PostInvoiceConfirmRequest_Card) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*PostInvoiceConfirmRequest_Card) ProtoMessage() {}

func (x *PostInvoiceConfirmRequest_Card) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[21]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use PostInvoiceConfirmRequest_Card.ProtoReflect.Descriptor instead.
func (*PostInvoiceConfirmRequest_Card) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{7, 0}
}

func (x *PostInvoiceConfirmRequest_Card) GetEsppCardId() int32 {
	if x != nil {
		return x.EsppCardId
	}
	return 0
}

func (x *PostInvoiceConfirmRequest_Card) GetCardNum() string {
	if x != nil {
		return x.CardNum
	}
	return ""
}

func (x *PostInvoiceConfirmRequest_Card) GetCardKind() string {
	if x != nil {
		return x.CardKind
	}
	return ""
}

func (x *PostInvoiceConfirmRequest_Card) GetBankName() string {
	if x != nil {
		return x.BankName
	}
	return ""
}

// Ошибка запроса на получение списка платежей
type GetInvoiceListResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Причина ошибки
	//
	// Types that are assignable to Reason:
	//
	//	*GetInvoiceListResponse_Error_Validation
	Reason isGetInvoiceListResponse_Error_Reason `protobuf_oneof:"reason"`
}

func (x *GetInvoiceListResponse_Error) Reset() {
	*x = GetInvoiceListResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[22]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

func (x *GetInvoiceListResponse_Error) String() string {
	return protoimpl.X.MessageStringOf(x)
}

func (*GetInvoiceListResponse_Error) ProtoMessage() {}

func (x *GetInvoiceListResponse_Error) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[22]
	if protoimpl.UnsafeEnabled && x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use GetInvoiceListResponse_Error.ProtoReflect.Descriptor instead.
func (*GetInvoiceListResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP(), []int{10, 0}
}

func (m *GetInvoiceListResponse_Error) GetReason() isGetInvoiceListResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *GetInvoiceListResponse_Error) GetValidation() *ValidationError {
	if x, ok := x.GetReason().(*GetInvoiceListResponse_Error_Validation); ok {
		return x.Validation
	}
	return nil
}

type isGetInvoiceListResponse_Error_Reason interface {
	isGetInvoiceListResponse_Error_Reason()
}

type GetInvoiceListResponse_Error_Validation struct {
	// Ошибка валидации
	Validation *ValidationError `protobuf:"bytes,1,opt,name=validation,proto3,oneof"`
}

func (*GetInvoiceListResponse_Error_Validation) isGetInvoiceListResponse_Error_Reason() {}

var File_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto protoreflect.FileDescriptor

var file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDesc = []byte{
	0x0a, 0x33, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63,
	0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x76,
	0x6f, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x76, 0x31, 0x2e,
	0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69,
	0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x62, 0x65, 0x68, 0x61, 0x76,
	0x69, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x35, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x70, 0x61,
	0x79, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x76, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2f, 0x77, 0x72, 0x61, 0x70, 0x70, 0x65, 0x72, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x22, 0xe2, 0x11, 0x0a, 0x07, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x13, 0x0a, 0x02,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69,
	0x64, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1c, 0x0a, 0x07,
	0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x62, 0x0a, 0x13, 0x69, 0x6e,
	0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76,
	0x6f, 0x69, 0x63, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x11, 0x69, 0x6e, 0x76,
	0x6f, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3e,
	0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3e,
	0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x47,
	0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28,
	0x0b, 0x32, 0x24, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f,
	0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x50,
	0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x70, 0x6f,
	0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5a, 0x0a, 0x12, 0x70, 0x61, 0x79, 0x5f, 0x69,
	0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e,
	0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65,
	0x2e, 0x50, 0x61, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70,
	0x65, 0x52, 0x10, 0x70, 0x61, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x70, 0x61, 0x79, 0x77, 0x61, 0x79, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x26, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e,
	0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x61, 0x79, 0x77, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65,
	0x52, 0x0a, 0x70, 0x61, 0x79, 0x77, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x46, 0x0a, 0x11,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x63, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x5f, 0x61,
	0x74, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x68, 0x61, 0x6e, 0x67,
	0x65, 0x64, 0x41, 0x74, 0x12, 0x33, 0x0a, 0x07, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x61, 0x74, 0x18,
	0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d,
	0x70, 0x52, 0x06, 0x70, 0x61, 0x69, 0x64, 0x41, 0x74, 0x12, 0x17, 0x0a, 0x07, 0x70, 0x61, 0x79,
	0x5f, 0x75, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x61, 0x79, 0x55,
	0x72, 0x6c, 0x12, 0x2d, 0x0a, 0x13, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x63, 0x61,
	0x72, 0x64, 0x5f, 0x6d, 0x61, 0x73, 0x6b, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x10, 0x70, 0x61, 0x69, 0x64, 0x42, 0x79, 0x43, 0x61, 0x72, 0x64, 0x4d, 0x61, 0x73, 0x6b, 0x65,
	0x64, 0x12, 0x2e, 0x0a, 0x14, 0x70, 0x61, 0x69, 0x64, 0x5f, 0x62, 0x79, 0x5f, 0x63, 0x61, 0x72,
	0x64, 0x5f, 0x65, 0x73, 0x70, 0x70, 0x5f, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x10, 0x70, 0x61, 0x69, 0x64, 0x42, 0x79, 0x43, 0x61, 0x72, 0x64, 0x45, 0x73, 0x70, 0x70, 0x49,
	0x64, 0x12, 0x41, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0f,
	0x20, 0x01, 0x28, 0x0e, 0x32, 0x24, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69,
	0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63,
	0x65, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, 0x63, 0x61, 0x72, 0x64,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x73, 0x70, 0x70, 0x5f, 0x72, 0x65, 0x71,
	0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x65,
	0x73, 0x70, 0x70, 0x52, 0x65, 0x71, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x29, 0x0a, 0x11,
	0x65, 0x73, 0x70, 0x70, 0x5f, 0x72, 0x65, 0x71, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x73,
	0x67, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x73, 0x70, 0x70, 0x52, 0x65, 0x71,
	0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x26, 0x0a, 0x0f, 0x65, 0x73, 0x70, 0x70, 0x5f,
	0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x0d, 0x65, 0x73, 0x70, 0x70, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12,
	0x21, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18,
	0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62,
	0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x14, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x1a, 0xa5, 0x01, 0x0a, 0x0d, 0x45, 0x78, 0x74,
	0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x73, 0x0a, 0x15, 0x65, 0x78,
	0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x65, 0x72,
	0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3d, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49,
	0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x73,
	0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x13, 0x65, 0x78, 0x74, 0x65,
	0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x1a,
	0x15, 0x0a, 0x13, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x53, 0x79, 0x73, 0x74, 0x65,
	0x6d, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
	0x1a, 0x96, 0x04, 0x0a, 0x08, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0e, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x22, 0x0a,
	0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49,
	0x64, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x1f, 0x0a, 0x08,
	0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03,
	0xe0, 0x41, 0x02, 0x52, 0x08, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1b, 0x0a,
	0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3e, 0x0a, 0x0a, 0x63, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x3e, 0x0a, 0x0a, 0x75, 0x70,
	0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a,
	0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66,
	0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x42, 0x03, 0xe0, 0x41, 0x03, 0x52,
	0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x06, 0x6d, 0x72,
	0x66, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x05, 0x6d, 0x72, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x05, 0x72, 0x66, 0x5f, 0x69, 0x64, 0x18,
	0x09, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x72, 0x66, 0x49, 0x64,
	0x12, 0x24, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18,
	0x0a, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74,
	0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x69,
	0x6e, 0x67, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02,
	0x52, 0x0a, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x69, 0x6e, 0x67, 0x49, 0x64, 0x12, 0x3a, 0x0a, 0x0b,
	0x64, 0x75, 0x65, 0x5f, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x64,
	0x75, 0x65, 0x44, 0x61, 0x74, 0x65, 0x41, 0x74, 0x12, 0x1e, 0x0a, 0x0b, 0x73, 0x76, 0x63, 0x5f,
	0x74, 0x79, 0x70, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73,
	0x76, 0x63, 0x54, 0x79, 0x70, 0x65, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x73, 0x5f, 0x64,
	0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69,
	0x73, 0x44, 0x69, 0x73, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0xa5, 0x01, 0x0a, 0x0b, 0x53, 0x61,
	0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x74, 0x0a, 0x16, 0x69, 0x6e, 0x76,
	0x6f, 0x69, 0x63, 0x65, 0x5f, 0x61, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x65, 0x78, 0x69,
	0x73, 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49,
	0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64,
	0x79, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x48, 0x00, 0x52, 0x14, 0x69, 0x6e, 0x76, 0x6f, 0x69,
	0x63, 0x65, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64, 0x79, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x1a,
	0x16, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x41, 0x6c, 0x72, 0x65, 0x61, 0x64,
	0x79, 0x45, 0x78, 0x69, 0x73, 0x74, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f,
	0x6e, 0x22, 0x72, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43,
	0x45, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e,
	0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x4c, 0x41, 0x4e, 0x4e,
	0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10,
	0x02, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x03, 0x12, 0x08, 0x0a, 0x04,
	0x50, 0x41, 0x49, 0x44, 0x10, 0x04, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c,
	0x4c, 0x45, 0x44, 0x10, 0x05, 0x22, 0x5b, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x15, 0x0a, 0x11, 0x43, 0x41, 0x52, 0x44, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55,
	0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x56, 0x49, 0x53, 0x41,
	0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x43, 0x5f, 0x4d, 0x43, 0x10, 0x02, 0x12, 0x07, 0x0a,
	0x03, 0x44, 0x43, 0x4c, 0x10, 0x03, 0x12, 0x07, 0x0a, 0x03, 0x4a, 0x43, 0x42, 0x10, 0x04, 0x12,
	0x08, 0x0a, 0x04, 0x41, 0x4d, 0x45, 0x58, 0x10, 0x05, 0x12, 0x07, 0x0a, 0x03, 0x4d, 0x49, 0x52,
	0x10, 0x06, 0x22, 0x44, 0x0a, 0x10, 0x50, 0x61, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61,
	0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x1a, 0x50, 0x41, 0x59, 0x5f, 0x49, 0x4e,
	0x54, 0x45, 0x52, 0x46, 0x41, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b,
	0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a, 0x03, 0x47, 0x55, 0x49, 0x10, 0x01, 0x12,
	0x07, 0x0a, 0x03, 0x4d, 0x32, 0x4d, 0x10, 0x02, 0x22, 0x4b, 0x0a, 0x0a, 0x50, 0x61, 0x79, 0x77,
	0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x50, 0x41, 0x59, 0x57, 0x41, 0x59,
	0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12,
	0x0d, 0x0a, 0x09, 0x42, 0x41, 0x4e, 0x4b, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x07,
	0x0a, 0x03, 0x53, 0x42, 0x50, 0x10, 0x02, 0x12, 0x0c, 0x0a, 0x08, 0x53, 0x42, 0x45, 0x52, 0x5f,
	0x50, 0x41, 0x59, 0x10, 0x03, 0x22, 0x87, 0x01, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63,
	0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f,
	0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64,
	0x12, 0x5d, 0x0a, 0x13, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x73, 0x74, 0x61, 0x74,
	0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e,
	0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69,
	0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x69, 0x6e,
	0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x22,
	0xf7, 0x02, 0x0a, 0x0d, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e,
	0x67, 0x12, 0x51, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x5f, 0x62, 0x79, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e,
	0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x2e, 0x4f, 0x72, 0x64, 0x65,
	0x72, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x42, 0x79,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f,
	0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2f, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x2e,
	0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0d, 0x64,
	0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05,
	0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d,
	0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01,
	0x28, 0x05, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x4d, 0x0a, 0x0b, 0x4f, 0x72,
	0x64, 0x65, 0x72, 0x42, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x4f, 0x52, 0x44,
	0x45, 0x52, 0x5f, 0x42, 0x59, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f,
	0x57, 0x4e, 0x10, 0x00, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07,
	0x50, 0x41, 0x49, 0x44, 0x5f, 0x41, 0x54, 0x10, 0x02, 0x12, 0x0e, 0x0a, 0x0a, 0x43, 0x52, 0x45,
	0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x10, 0x03, 0x22, 0x3e, 0x0a, 0x0d, 0x44, 0x69, 0x72,
	0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x16, 0x44, 0x49,
	0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b,
	0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x45, 0x53, 0x43, 0x10, 0x01,
	0x12, 0x07, 0x0a, 0x03, 0x41, 0x53, 0x43, 0x10, 0x02, 0x22, 0x95, 0x03, 0x0a, 0x14, 0x43, 0x72,
	0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x12, 0x1c, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64,
	0x12, 0x47, 0x0a, 0x09, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20,
	0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e,
	0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65,
	0x2e, 0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09,
	0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x5f, 0x0a, 0x12, 0x70, 0x61, 0x79,
	0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69,
	0x63, 0x65, 0x2e, 0x50, 0x61, 0x79, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54,
	0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x10, 0x70, 0x61, 0x79, 0x49, 0x6e, 0x74,
	0x65, 0x72, 0x66, 0x61, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x0b, 0x70, 0x61,
	0x79, 0x77, 0x61, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32,
	0x26, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x50, 0x61, 0x79,
	0x77, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0a, 0x70, 0x61, 0x79, 0x77, 0x61, 0x79, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x5f, 0x75, 0x72,
	0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x55,
	0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x62,
	0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e,
	0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74,
	0x69, 0x74, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c,
	0x65, 0x22, 0x94, 0x04, 0x0a, 0x15, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f,
	0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x47, 0x0a, 0x05, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76,
	0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x48,
	0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xf6, 0x02, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f,
	0x72, 0x12, 0x45, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x79, 0x0a, 0x15, 0x6d, 0x69, 0x73, 0x73,
	0x69, 0x6e, 0x67, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74,
	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e,
	0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67,
	0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x48, 0x00, 0x52, 0x13,
	0x6d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f, 0x6e, 0x74, 0x61,
	0x63, 0x74, 0x73, 0x12, 0x47, 0x0a, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x18,
	0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69,
	0x63, 0x65, 0x2e, 0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x48, 0x00, 0x52, 0x08, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x12, 0x41, 0x0a, 0x06,
	0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67,
	0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x06, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x1a,
	0x15, 0x0a, 0x13, 0x4d, 0x69, 0x73, 0x73, 0x69, 0x6e, 0x67, 0x55, 0x73, 0x65, 0x72, 0x43, 0x6f,
	0x6e, 0x74, 0x61, 0x63, 0x74, 0x73, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e,
	0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0x37, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x49,
	0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a,
	0x0a, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x49,
	0x64, 0x22, 0xef, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f,
	0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74,
	0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e,
	0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x31,
	0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74,
	0x61, 0x1a, 0x58, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x76, 0x61,
	0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45, 0x72,
	0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x22, 0xba, 0x05, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x6f,
	0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73,
	0x74, 0x12, 0x21, 0x0a, 0x0a, 0x73, 0x72, 0x63, 0x5f, 0x70, 0x61, 0x79, 0x5f, 0x69, 0x64, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x08, 0x73, 0x72, 0x63, 0x50,
	0x61, 0x79, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0b, 0x65, 0x73, 0x70, 0x70, 0x5f, 0x70, 0x61, 0x79,
	0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x09,
	0x65, 0x73, 0x70, 0x70, 0x50, 0x61, 0x79, 0x49, 0x64, 0x12, 0x22, 0x0a, 0x0a, 0x70, 0x61, 0x79,
	0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x09, 0x70, 0x61, 0x79, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a,
	0x08, 0x72, 0x65, 0x71, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x72, 0x65, 0x71, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a,
	0x06, 0x61, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02, 0x52, 0x06, 0x61,
	0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63,
	0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63,
	0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x79, 0x5f, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18,
	0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x79, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64,
	0x12, 0x3e, 0x0a, 0x0e, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f,
	0x61, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c,
	0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73,
	0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65,
	0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x5f, 0x6e, 0x6f, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01,
	0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x4e, 0x6f, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x72,
	0x65, 0x71, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x38, 0x0a,
	0x0b, 0x70, 0x61, 0x79, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x0b, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74,
	0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07,
	0x70, 0x61, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0f, 0x61, 0x62, 0x61, 0x6e, 0x64,
	0x6f, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x61, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0b, 0x61, 0x62,
	0x61, 0x6e, 0x64, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x46, 0x0a, 0x04, 0x63, 0x61, 0x72,
	0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73,
	0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x52, 0x04, 0x63, 0x61, 0x72,
	0x64, 0x1a, 0x7d, 0x0a, 0x04, 0x43, 0x61, 0x72, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x65, 0x73, 0x70,
	0x70, 0x5f, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52,
	0x0a, 0x65, 0x73, 0x70, 0x70, 0x43, 0x61, 0x72, 0x64, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x63,
	0x61, 0x72, 0x64, 0x5f, 0x6e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63,
	0x61, 0x72, 0x64, 0x4e, 0x75, 0x6d, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x61, 0x72, 0x64, 0x5f, 0x6b,
	0x69, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x72, 0x64, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x62, 0x61, 0x6e, 0x6b, 0x5f, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x61, 0x6e, 0x6b, 0x4e, 0x61, 0x6d, 0x65,
	0x22, 0x1c, 0x0a, 0x1a, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x9d,
	0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74,
	0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e,
	0x76, 0x6f, 0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c,
	0x74, 0x65, 0x72, 0x12, 0x3b, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e,
	0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65,
	0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x48, 0x00, 0x52, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67,
	0x42, 0x0c, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xeb,
	0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74,
	0x61, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76,
	0x6f, 0x69, 0x63, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x46, 0x0a, 0x05, 0x65, 0x72,
	0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47,
	0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73,
	0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x1a, 0x58, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69,
	0x6f, 0x6e, 0x42, 0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x58, 0x0a, 0x16,
	0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3e, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x76, 0x6f,
	0x69, 0x63, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06,
	0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x22, 0x37, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76,
	0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x12, 0x14, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x48,
	0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x32,
	0xf6, 0x05, 0x0a, 0x0e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69,
	0x63, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76,
	0x6f, 0x69, 0x63, 0x65, 0x12, 0x28, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69,
	0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65,
	0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02,
	0x1c, 0x3a, 0x01, 0x2a, 0x22, 0x17, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2f, 0x61,
	0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x89, 0x01,
	0x0a, 0x0a, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x12, 0x25, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75,
	0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e,
	0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f,
	0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x26, 0x12, 0x24, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2f, 0x7b, 0x69, 0x6e,
	0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x7d, 0x12, 0xa8, 0x01, 0x0a, 0x12, 0x50, 0x6f,
	0x73, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d,
	0x12, 0x2d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69,
	0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63,
	0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a,
	0x2e, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65,
	0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x3a, 0x01, 0x2a, 0x22, 0x28, 0x2f, 0x69, 0x6e, 0x76,
	0x6f, 0x69, 0x63, 0x65, 0x2f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2f, 0x63, 0x6f, 0x6e,
	0x66, 0x69, 0x72, 0x6d, 0x12, 0x8d, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f,
	0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x29, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74,
	0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76,
	0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69,
	0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24,
	0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65,
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2f,
	0x6c, 0x69, 0x73, 0x74, 0x12, 0x91, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76, 0x6f,
	0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65,
	0x74, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69,
	0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x76,
	0x6f, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x69, 0x6e, 0x76, 0x6f,
	0x69, 0x63, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x76, 0x6f, 0x69,
	0x63, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x42, 0xa1, 0x01, 0x0a, 0x15, 0x72, 0x75, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e,
	0x76, 0x31, 0x42, 0x15, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x49, 0x6e, 0x76, 0x6f, 0x69,
	0x63, 0x65, 0x56, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x03, 0x50, 0x00, 0x5a, 0x13, 0x2f,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5f, 0x69, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x5f,
	0x76, 0x31, 0xd8, 0x01, 0x01, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x10, 0x4b, 0x45, 0x59, 0x41, 0x50,
	0x49, 0x53, 0x49, 0x4e, 0x56, 0x4f, 0x49, 0x43, 0x45, 0x56, 0x31, 0xaa, 0x02, 0x12, 0x4b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x2e, 0x56, 0x31,
	0xca, 0x02, 0x12, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, 0x76, 0x6f, 0x69,
	0x63, 0x65, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x14, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a,
	0x3a, 0x49, 0x6e, 0x76, 0x6f, 0x69, 0x63, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescOnce sync.Once
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescData = file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDesc
)

func file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescGZIP() []byte {
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescOnce.Do(func() {
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescData = protoimpl.X.CompressGZIP(file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescData)
	})
	return file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDescData
}

var file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes = make([]protoimpl.EnumInfo, 6)
var file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes = make([]protoimpl.MessageInfo, 23)
var file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_goTypes = []interface{}{
	(Invoice_InvoiceStatusType)(0),                          // 0: keyapis.invoice.v1.Invoice.InvoiceStatusType
	(Invoice_CardType)(0),                                   // 1: keyapis.invoice.v1.Invoice.CardType
	(Invoice_PayInterfaceType)(0),                           // 2: keyapis.invoice.v1.Invoice.PayInterfaceType
	(Invoice_PaywayType)(0),                                 // 3: keyapis.invoice.v1.Invoice.PaywayType
	(InvoicePaging_OrderByType)(0),                          // 4: keyapis.invoice.v1.InvoicePaging.OrderByType
	(InvoicePaging_DirectionType)(0),                        // 5: keyapis.invoice.v1.InvoicePaging.DirectionType
	(*Invoice)(nil),                                         // 6: keyapis.invoice.v1.Invoice
	(*InvoiceFilter)(nil),                                   // 7: keyapis.invoice.v1.InvoiceFilter
	(*InvoicePaging)(nil),                                   // 8: keyapis.invoice.v1.InvoicePaging
	(*CreateInvoiceRequest)(nil),                            // 9: keyapis.invoice.v1.CreateInvoiceRequest
	(*CreateInvoiceResponse)(nil),                           // 10: keyapis.invoice.v1.CreateInvoiceResponse
	(*GetInvoiceRequest)(nil),                               // 11: keyapis.invoice.v1.GetInvoiceRequest
	(*GetInvoiceResponse)(nil),                              // 12: keyapis.invoice.v1.GetInvoiceResponse
	(*PostInvoiceConfirmRequest)(nil),                       // 13: keyapis.invoice.v1.PostInvoiceConfirmRequest
	(*PostInvoiceConfirmResponse)(nil),                      // 14: keyapis.invoice.v1.PostInvoiceConfirmResponse
	(*GetInvoiceListRequest)(nil),                           // 15: keyapis.invoice.v1.GetInvoiceListRequest
	(*GetInvoiceListResponse)(nil),                          // 16: keyapis.invoice.v1.GetInvoiceListResponse
	(*GetInvoiceCountRequest)(nil),                          // 17: keyapis.invoice.v1.GetInvoiceCountRequest
	(*GetInvoiceCountResponse)(nil),                         // 18: keyapis.invoice.v1.GetInvoiceCountResponse
	(*Invoice_ExternalError)(nil),                           // 19: keyapis.invoice.v1.Invoice.ExternalError
	(*Invoice_Position)(nil),                                // 20: keyapis.invoice.v1.Invoice.Position
	(*Invoice_SavingError)(nil),                             // 21: keyapis.invoice.v1.Invoice.SavingError
	(*Invoice_ExternalError_ExternalSystemError)(nil),       // 22: keyapis.invoice.v1.Invoice.ExternalError.ExternalSystemError
	(*Invoice_SavingError_InvoiceAlreadyExists)(nil),        // 23: keyapis.invoice.v1.Invoice.SavingError.InvoiceAlreadyExists
	(*CreateInvoiceResponse_Error)(nil),                     // 24: keyapis.invoice.v1.CreateInvoiceResponse.Error
	(*CreateInvoiceResponse_Error_MissingUserContacts)(nil), // 25: keyapis.invoice.v1.CreateInvoiceResponse.Error.MissingUserContacts
	(*GetInvoiceResponse_Error)(nil),                        // 26: keyapis.invoice.v1.GetInvoiceResponse.Error
	(*PostInvoiceConfirmRequest_Card)(nil),                  // 27: keyapis.invoice.v1.PostInvoiceConfirmRequest.Card
	(*GetInvoiceListResponse_Error)(nil),                    // 28: keyapis.invoice.v1.GetInvoiceListResponse.Error
	(*timestamppb.Timestamp)(nil),                           // 29: google.protobuf.Timestamp
	(*ValidationError)(nil),                                 // 30: keyapis.invoice.v1.ValidationError
}
var file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_depIdxs = []int32{
	0,  // 0: keyapis.invoice.v1.Invoice.invoice_status_type:type_name -> keyapis.invoice.v1.Invoice.InvoiceStatusType
	29, // 1: keyapis.invoice.v1.Invoice.created_at:type_name -> google.protobuf.Timestamp
	29, // 2: keyapis.invoice.v1.Invoice.updated_at:type_name -> google.protobuf.Timestamp
	20, // 3: keyapis.invoice.v1.Invoice.positions:type_name -> keyapis.invoice.v1.Invoice.Position
	2,  // 4: keyapis.invoice.v1.Invoice.pay_interface_type:type_name -> keyapis.invoice.v1.Invoice.PayInterfaceType
	3,  // 5: keyapis.invoice.v1.Invoice.payway_type:type_name -> keyapis.invoice.v1.Invoice.PaywayType
	29, // 6: keyapis.invoice.v1.Invoice.status_changed_at:type_name -> google.protobuf.Timestamp
	29, // 7: keyapis.invoice.v1.Invoice.paid_at:type_name -> google.protobuf.Timestamp
	1,  // 8: keyapis.invoice.v1.Invoice.card_type:type_name -> keyapis.invoice.v1.Invoice.CardType
	0,  // 9: keyapis.invoice.v1.InvoiceFilter.invoice_status_type:type_name -> keyapis.invoice.v1.Invoice.InvoiceStatusType
	4,  // 10: keyapis.invoice.v1.InvoicePaging.order_by_type:type_name -> keyapis.invoice.v1.InvoicePaging.OrderByType
	5,  // 11: keyapis.invoice.v1.InvoicePaging.direction_type:type_name -> keyapis.invoice.v1.InvoicePaging.DirectionType
	20, // 12: keyapis.invoice.v1.CreateInvoiceRequest.positions:type_name -> keyapis.invoice.v1.Invoice.Position
	2,  // 13: keyapis.invoice.v1.CreateInvoiceRequest.pay_interface_type:type_name -> keyapis.invoice.v1.Invoice.PayInterfaceType
	3,  // 14: keyapis.invoice.v1.CreateInvoiceRequest.payway_type:type_name -> keyapis.invoice.v1.Invoice.PaywayType
	24, // 15: keyapis.invoice.v1.CreateInvoiceResponse.error:type_name -> keyapis.invoice.v1.CreateInvoiceResponse.Error
	6,  // 16: keyapis.invoice.v1.CreateInvoiceResponse.data:type_name -> keyapis.invoice.v1.Invoice
	26, // 17: keyapis.invoice.v1.GetInvoiceResponse.error:type_name -> keyapis.invoice.v1.GetInvoiceResponse.Error
	6,  // 18: keyapis.invoice.v1.GetInvoiceResponse.data:type_name -> keyapis.invoice.v1.Invoice
	29, // 19: keyapis.invoice.v1.PostInvoiceConfirmRequest.create_time_at:type_name -> google.protobuf.Timestamp
	29, // 20: keyapis.invoice.v1.PostInvoiceConfirmRequest.pay_time_at:type_name -> google.protobuf.Timestamp
	29, // 21: keyapis.invoice.v1.PostInvoiceConfirmRequest.abandon_time_at:type_name -> google.protobuf.Timestamp
	27, // 22: keyapis.invoice.v1.PostInvoiceConfirmRequest.card:type_name -> keyapis.invoice.v1.PostInvoiceConfirmRequest.Card
	7,  // 23: keyapis.invoice.v1.GetInvoiceListRequest.filter:type_name -> keyapis.invoice.v1.InvoiceFilter
	8,  // 24: keyapis.invoice.v1.GetInvoiceListRequest.paging:type_name -> keyapis.invoice.v1.InvoicePaging
	6,  // 25: keyapis.invoice.v1.GetInvoiceListResponse.data:type_name -> keyapis.invoice.v1.Invoice
	28, // 26: keyapis.invoice.v1.GetInvoiceListResponse.error:type_name -> keyapis.invoice.v1.GetInvoiceListResponse.Error
	7,  // 27: keyapis.invoice.v1.GetInvoiceCountRequest.filter:type_name -> keyapis.invoice.v1.InvoiceFilter
	22, // 28: keyapis.invoice.v1.Invoice.ExternalError.external_system_error:type_name -> keyapis.invoice.v1.Invoice.ExternalError.ExternalSystemError
	29, // 29: keyapis.invoice.v1.Invoice.Position.created_at:type_name -> google.protobuf.Timestamp
	29, // 30: keyapis.invoice.v1.Invoice.Position.updated_at:type_name -> google.protobuf.Timestamp
	29, // 31: keyapis.invoice.v1.Invoice.Position.due_date_at:type_name -> google.protobuf.Timestamp
	23, // 32: keyapis.invoice.v1.Invoice.SavingError.invoice_already_exists:type_name -> keyapis.invoice.v1.Invoice.SavingError.InvoiceAlreadyExists
	30, // 33: keyapis.invoice.v1.CreateInvoiceResponse.Error.validation:type_name -> keyapis.invoice.v1.ValidationError
	25, // 34: keyapis.invoice.v1.CreateInvoiceResponse.Error.missing_user_contacts:type_name -> keyapis.invoice.v1.CreateInvoiceResponse.Error.MissingUserContacts
	19, // 35: keyapis.invoice.v1.CreateInvoiceResponse.Error.external:type_name -> keyapis.invoice.v1.Invoice.ExternalError
	21, // 36: keyapis.invoice.v1.CreateInvoiceResponse.Error.saving:type_name -> keyapis.invoice.v1.Invoice.SavingError
	30, // 37: keyapis.invoice.v1.GetInvoiceResponse.Error.validation:type_name -> keyapis.invoice.v1.ValidationError
	30, // 38: keyapis.invoice.v1.GetInvoiceListResponse.Error.validation:type_name -> keyapis.invoice.v1.ValidationError
	9,  // 39: keyapis.invoice.v1.InvoiceService.CreateInvoice:input_type -> keyapis.invoice.v1.CreateInvoiceRequest
	11, // 40: keyapis.invoice.v1.InvoiceService.GetInvoice:input_type -> keyapis.invoice.v1.GetInvoiceRequest
	13, // 41: keyapis.invoice.v1.InvoiceService.PostInvoiceConfirm:input_type -> keyapis.invoice.v1.PostInvoiceConfirmRequest
	15, // 42: keyapis.invoice.v1.InvoiceService.GetInvoiceList:input_type -> keyapis.invoice.v1.GetInvoiceListRequest
	17, // 43: keyapis.invoice.v1.InvoiceService.GetInvoiceCount:input_type -> keyapis.invoice.v1.GetInvoiceCountRequest
	10, // 44: keyapis.invoice.v1.InvoiceService.CreateInvoice:output_type -> keyapis.invoice.v1.CreateInvoiceResponse
	12, // 45: keyapis.invoice.v1.InvoiceService.GetInvoice:output_type -> keyapis.invoice.v1.GetInvoiceResponse
	14, // 46: keyapis.invoice.v1.InvoiceService.PostInvoiceConfirm:output_type -> keyapis.invoice.v1.PostInvoiceConfirmResponse
	16, // 47: keyapis.invoice.v1.InvoiceService.GetInvoiceList:output_type -> keyapis.invoice.v1.GetInvoiceListResponse
	18, // 48: keyapis.invoice.v1.InvoiceService.GetInvoiceCount:output_type -> keyapis.invoice.v1.GetInvoiceCountResponse
	44, // [44:49] is the sub-list for method output_type
	39, // [39:44] is the sub-list for method input_type
	39, // [39:39] is the sub-list for extension type_name
	39, // [39:39] is the sub-list for extension extendee
	0,  // [0:39] is the sub-list for field type_name
}

func init() { file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_init() }
func file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_init() {
	if File_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto != nil {
		return
	}
	file_keyapis_invoice_v1_keyapis_invoice_paymethod_v1_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Invoice); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InvoiceFilter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*InvoicePaging); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateInvoiceRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateInvoiceResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetInvoiceRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetInvoiceResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostInvoiceConfirmRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostInvoiceConfirmResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetInvoiceListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetInvoiceListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetInvoiceCountRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetInvoiceCountResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Invoice_ExternalError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Invoice_Position); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Invoice_SavingError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Invoice_ExternalError_ExternalSystemError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Invoice_SavingError_InvoiceAlreadyExists); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateInvoiceResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*CreateInvoiceResponse_Error_MissingUserContacts); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetInvoiceResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostInvoiceConfirmRequest_Card); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetInvoiceListResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[4].OneofWrappers = []interface{}{
		(*CreateInvoiceResponse_Error_)(nil),
		(*CreateInvoiceResponse_Data)(nil),
	}
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[6].OneofWrappers = []interface{}{
		(*GetInvoiceResponse_Error_)(nil),
		(*GetInvoiceResponse_Data)(nil),
	}
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[9].OneofWrappers = []interface{}{
		(*GetInvoiceListRequest_Paging)(nil),
	}
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[12].OneofWrappers = []interface{}{
		(*GetInvoiceCountResponse_Data)(nil),
	}
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[13].OneofWrappers = []interface{}{
		(*Invoice_ExternalError_ExternalSystemError_)(nil),
	}
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[15].OneofWrappers = []interface{}{
		(*Invoice_SavingError_InvoiceAlreadyExists_)(nil),
	}
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[18].OneofWrappers = []interface{}{
		(*CreateInvoiceResponse_Error_Validation)(nil),
		(*CreateInvoiceResponse_Error_MissingUserContacts_)(nil),
		(*CreateInvoiceResponse_Error_External)(nil),
		(*CreateInvoiceResponse_Error_Saving)(nil),
	}
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[20].OneofWrappers = []interface{}{
		(*GetInvoiceResponse_Error_Validation)(nil),
	}
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes[22].OneofWrappers = []interface{}{
		(*GetInvoiceListResponse_Error_Validation)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDesc,
			NumEnums:      6,
			NumMessages:   23,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_goTypes,
		DependencyIndexes: file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_depIdxs,
		EnumInfos:         file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_enumTypes,
		MessageInfos:      file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_msgTypes,
	}.Build()
	File_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto = out.File
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_rawDesc = nil
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_goTypes = nil
	file_keyapis_invoice_v1_keyapis_invoice_invoice_v1_proto_depIdxs = nil
}
