//
//Сервис реализует функционал управления Шаблонами КВ.
//Шаблон КВ описывает набор технологических планов и правила их применимости для массового создания КВ

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

package keyapis_subscription_v1

import (
	_ "google.golang.org/genproto/googleapis/api/annotations"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	_ "google.golang.org/protobuf/types/descriptorpb"
	timestamppb "google.golang.org/protobuf/types/known/timestamppb"
	wrapperspb "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 OfferTemplate_ServiceType int32

const (
	// Значение не указано
	OfferTemplate_SERVICE_TYPE_UNKNOWN OfferTemplate_ServiceType = 0
	// Умный домофон
	OfferTemplate_INTERCOM OfferTemplate_ServiceType = 1
	// Комплексное видеонаблюдение
	OfferTemplate_CAMERAS OfferTemplate_ServiceType = 2
	// Умные счётчики
	OfferTemplate_TELEMETRY OfferTemplate_ServiceType = 3
	// Система контроля и управления доступом
	OfferTemplate_ACCESS_CONTROL_PANEL OfferTemplate_ServiceType = 4
	// Умный шлагбаум
	OfferTemplate_BARRIER OfferTemplate_ServiceType = 5
)

// Enum value maps for OfferTemplate_ServiceType.
var (
	OfferTemplate_ServiceType_name = map[int32]string{
		0: "SERVICE_TYPE_UNKNOWN",
		1: "INTERCOM",
		2: "CAMERAS",
		3: "TELEMETRY",
		4: "ACCESS_CONTROL_PANEL",
		5: "BARRIER",
	}
	OfferTemplate_ServiceType_value = map[string]int32{
		"SERVICE_TYPE_UNKNOWN": 0,
		"INTERCOM":             1,
		"CAMERAS":              2,
		"TELEMETRY":            3,
		"ACCESS_CONTROL_PANEL": 4,
		"BARRIER":              5,
	}
)

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

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

func (OfferTemplate_ServiceType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[0].Descriptor()
}

func (OfferTemplate_ServiceType) Type() protoreflect.EnumType {
	return &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[0]
}

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

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

// Справочник статусов шаблона КВ
type OfferTemplate_StatusType int32

const (
	// Значение не указано
	OfferTemplate_STATUS_TYPE_UNKNOWN OfferTemplate_StatusType = 0
	// Активен
	OfferTemplate_ACTIVE OfferTemplate_StatusType = 1
	// Архивирован
	OfferTemplate_ARCHIVED OfferTemplate_StatusType = 2
)

// Enum value maps for OfferTemplate_StatusType.
var (
	OfferTemplate_StatusType_name = map[int32]string{
		0: "STATUS_TYPE_UNKNOWN",
		1: "ACTIVE",
		2: "ARCHIVED",
	}
	OfferTemplate_StatusType_value = map[string]int32{
		"STATUS_TYPE_UNKNOWN": 0,
		"ACTIVE":              1,
		"ARCHIVED":            2,
	}
)

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

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

func (OfferTemplate_StatusType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[1].Descriptor()
}

func (OfferTemplate_StatusType) Type() protoreflect.EnumType {
	return &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[1]
}

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

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

// Справочник типов договорных схем
type OfferTemplate_ApplicabilityRules_ContractType int32

const (
	// Значение не указано
	OfferTemplate_ApplicabilityRules_CONTRACT_TYPE_UNKNOWN OfferTemplate_ApplicabilityRules_ContractType = 0
	// Договор заключён с юридическим лицом
	OfferTemplate_ApplicabilityRules_B2B OfferTemplate_ApplicabilityRules_ContractType = 1
	// Договор заключён с физическим лицом
	OfferTemplate_ApplicabilityRules_B2C OfferTemplate_ApplicabilityRules_ContractType = 2
	// Смешанная схема. Ростелеком работает с клиентом через партнёра
	OfferTemplate_ApplicabilityRules_B2B2C OfferTemplate_ApplicabilityRules_ContractType = 3
)

// Enum value maps for OfferTemplate_ApplicabilityRules_ContractType.
var (
	OfferTemplate_ApplicabilityRules_ContractType_name = map[int32]string{
		0: "CONTRACT_TYPE_UNKNOWN",
		1: "B2B",
		2: "B2C",
		3: "B2B2C",
	}
	OfferTemplate_ApplicabilityRules_ContractType_value = map[string]int32{
		"CONTRACT_TYPE_UNKNOWN": 0,
		"B2B":                   1,
		"B2C":                   2,
		"B2B2C":                 3,
	}
)

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

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

func (OfferTemplate_ApplicabilityRules_ContractType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[2].Descriptor()
}

func (OfferTemplate_ApplicabilityRules_ContractType) Type() protoreflect.EnumType {
	return &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[2]
}

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

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

// Справочник типов клиентов
type OfferTemplate_ApplicabilityRules_ClientType int32

const (
	// Значение не указано
	OfferTemplate_ApplicabilityRules_CLIENT_TYPE_UNKNOWN OfferTemplate_ApplicabilityRules_ClientType = 0
	// Управляющая компания
	OfferTemplate_ApplicabilityRules_MANAGEMENT_COMPANY OfferTemplate_ApplicabilityRules_ClientType = 1
	// Домофонная компания
	OfferTemplate_ApplicabilityRules_INTERCOM_COMPANY OfferTemplate_ApplicabilityRules_ClientType = 2
)

// Enum value maps for OfferTemplate_ApplicabilityRules_ClientType.
var (
	OfferTemplate_ApplicabilityRules_ClientType_name = map[int32]string{
		0: "CLIENT_TYPE_UNKNOWN",
		1: "MANAGEMENT_COMPANY",
		2: "INTERCOM_COMPANY",
	}
	OfferTemplate_ApplicabilityRules_ClientType_value = map[string]int32{
		"CLIENT_TYPE_UNKNOWN": 0,
		"MANAGEMENT_COMPANY":  1,
		"INTERCOM_COMPANY":    2,
	}
)

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

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

func (OfferTemplate_ApplicabilityRules_ClientType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[3].Descriptor()
}

func (OfferTemplate_ApplicabilityRules_ClientType) Type() protoreflect.EnumType {
	return &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[3]
}

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

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

// Справочник типов биллинговых систем
type OfferTemplate_ApplicabilityRules_BillingSystemType int32

const (
	// Значение не указано
	OfferTemplate_ApplicabilityRules_BILLING_SYSTEM_TYPE_UNKNOWN OfferTemplate_ApplicabilityRules_BillingSystemType = 0
	// Автоматизированная система расчётов макрорегионального филиала/АСР МРФ
	OfferTemplate_ApplicabilityRules_ASR_MRF OfferTemplate_ApplicabilityRules_BillingSystemType = 1
	// Платформа Ключ
	OfferTemplate_ApplicabilityRules_KEY_PLATFORM OfferTemplate_ApplicabilityRules_BillingSystemType = 2
)

// Enum value maps for OfferTemplate_ApplicabilityRules_BillingSystemType.
var (
	OfferTemplate_ApplicabilityRules_BillingSystemType_name = map[int32]string{
		0: "BILLING_SYSTEM_TYPE_UNKNOWN",
		1: "ASR_MRF",
		2: "KEY_PLATFORM",
	}
	OfferTemplate_ApplicabilityRules_BillingSystemType_value = map[string]int32{
		"BILLING_SYSTEM_TYPE_UNKNOWN": 0,
		"ASR_MRF":                     1,
		"KEY_PLATFORM":                2,
	}
)

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

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

func (OfferTemplate_ApplicabilityRules_BillingSystemType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[4].Descriptor()
}

func (OfferTemplate_ApplicabilityRules_BillingSystemType) Type() protoreflect.EnumType {
	return &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[4]
}

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

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

// Справочник типов договорной схемы устройства в квартире
type OfferTemplate_ApplicabilityRules_RoomDeviceContractType int32

const (
	// Значение не указано
	OfferTemplate_ApplicabilityRules_ROOM_DEVICE_CONTRACT_TYPE_UNKNOWN OfferTemplate_ApplicabilityRules_RoomDeviceContractType = 0
	// Житель заключает договор на квартирное устройство с внешней компанией
	OfferTemplate_ApplicabilityRules_ROOM_DEVICE_B2B OfferTemplate_ApplicabilityRules_RoomDeviceContractType = 1
	// Житель заключает договор на квартирное устройство с Ростелекомом
	OfferTemplate_ApplicabilityRules_ROOM_DEVICE_B2C OfferTemplate_ApplicabilityRules_RoomDeviceContractType = 2
)

// Enum value maps for OfferTemplate_ApplicabilityRules_RoomDeviceContractType.
var (
	OfferTemplate_ApplicabilityRules_RoomDeviceContractType_name = map[int32]string{
		0: "ROOM_DEVICE_CONTRACT_TYPE_UNKNOWN",
		1: "ROOM_DEVICE_B2B",
		2: "ROOM_DEVICE_B2C",
	}
	OfferTemplate_ApplicabilityRules_RoomDeviceContractType_value = map[string]int32{
		"ROOM_DEVICE_CONTRACT_TYPE_UNKNOWN": 0,
		"ROOM_DEVICE_B2B":                   1,
		"ROOM_DEVICE_B2C":                   2,
	}
)

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

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

func (OfferTemplate_ApplicabilityRules_RoomDeviceContractType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[5].Descriptor()
}

func (OfferTemplate_ApplicabilityRules_RoomDeviceContractType) Type() protoreflect.EnumType {
	return &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[5]
}

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

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

// Справочник типов минимального бесплатного пакета мобильного приложения
type OfferTemplate_ApplicabilityRules_MobileAppPackageType int32

const (
	// Значение не указано
	OfferTemplate_ApplicabilityRules_MOBILE_APP_PACKAGE_TYPE_UNKNOWN OfferTemplate_ApplicabilityRules_MobileAppPackageType = 0
	// Кнопка открытия + Ключи
	OfferTemplate_ApplicabilityRules_OPEN_DOOR_AND_KEYS OfferTemplate_ApplicabilityRules_MobileAppPackageType = 1
	// Кнопка открытия + Ключи + Аудиовызовы
	OfferTemplate_ApplicabilityRules_OPEN_DOOR_AND_KEYS_AUDIO_CALLS OfferTemplate_ApplicabilityRules_MobileAppPackageType = 2
	// Кнопка открытия + Ключи + Видеовызовы
	OfferTemplate_ApplicabilityRules_OPEN_DOOR_AND_KEYS_VIDEO_CALLS OfferTemplate_ApplicabilityRules_MobileAppPackageType = 3
)

// Enum value maps for OfferTemplate_ApplicabilityRules_MobileAppPackageType.
var (
	OfferTemplate_ApplicabilityRules_MobileAppPackageType_name = map[int32]string{
		0: "MOBILE_APP_PACKAGE_TYPE_UNKNOWN",
		1: "OPEN_DOOR_AND_KEYS",
		2: "OPEN_DOOR_AND_KEYS_AUDIO_CALLS",
		3: "OPEN_DOOR_AND_KEYS_VIDEO_CALLS",
	}
	OfferTemplate_ApplicabilityRules_MobileAppPackageType_value = map[string]int32{
		"MOBILE_APP_PACKAGE_TYPE_UNKNOWN": 0,
		"OPEN_DOOR_AND_KEYS":              1,
		"OPEN_DOOR_AND_KEYS_AUDIO_CALLS":  2,
		"OPEN_DOOR_AND_KEYS_VIDEO_CALLS":  3,
	}
)

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

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

func (OfferTemplate_ApplicabilityRules_MobileAppPackageType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[6].Descriptor()
}

func (OfferTemplate_ApplicabilityRules_MobileAppPackageType) Type() protoreflect.EnumType {
	return &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[6]
}

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

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

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

const (
	// Значение не указано
	OfferTemplatePaging_ORDER_BY_TYPE_UNKNOWN OfferTemplatePaging_OrderByType = 0
	// По дате создания
	OfferTemplatePaging_CREATED_AT OfferTemplatePaging_OrderByType = 1
	// По наименованию
	OfferTemplatePaging_TITLE OfferTemplatePaging_OrderByType = 2
)

// Enum value maps for OfferTemplatePaging_OrderByType.
var (
	OfferTemplatePaging_OrderByType_name = map[int32]string{
		0: "ORDER_BY_TYPE_UNKNOWN",
		1: "CREATED_AT",
		2: "TITLE",
	}
	OfferTemplatePaging_OrderByType_value = map[string]int32{
		"ORDER_BY_TYPE_UNKNOWN": 0,
		"CREATED_AT":            1,
		"TITLE":                 2,
	}
)

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

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

func (OfferTemplatePaging_OrderByType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[7].Descriptor()
}

func (OfferTemplatePaging_OrderByType) Type() protoreflect.EnumType {
	return &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[7]
}

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

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

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

const (
	// Значение не указано
	OfferTemplatePaging_DIRECTION_TYPE_UNKNOWN OfferTemplatePaging_DirectionType = 0
	// От большего к меньшему
	OfferTemplatePaging_DESC OfferTemplatePaging_DirectionType = 1
	// От меньшего к большему
	OfferTemplatePaging_ASC OfferTemplatePaging_DirectionType = 2
)

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

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

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

func (OfferTemplatePaging_DirectionType) Descriptor() protoreflect.EnumDescriptor {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[8].Descriptor()
}

func (OfferTemplatePaging_DirectionType) Type() protoreflect.EnumType {
	return &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes[8]
}

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

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

// Шаблон КВ
type OfferTemplate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор.
	// # Тип: Guid
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
	// Тип сервиса
	ServiceType OfferTemplate_ServiceType `protobuf:"varint,2,opt,name=service_type,json=serviceType,proto3,enum=keyapis.subscription.v1.OfferTemplate_ServiceType" json:"service_type,omitempty"`
	// Наименование КВ.
	// # Диапазон: 3..256
	Title string `protobuf:"bytes,3,opt,name=title,proto3" json:"title,omitempty"`
	// Описание КВ.
	// # Диапазон: 3..1024
	Description *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=description,proto3" json:"description,omitempty"`
	// Статус шаблона КВ.
	// Заполняется сервером
	StatusType OfferTemplate_StatusType `protobuf:"varint,5,opt,name=status_type,json=statusType,proto3,enum=keyapis.subscription.v1.OfferTemplate_StatusType" json:"status_type,omitempty"`
	// Правила применимости Шаблона КВ
	ApplicabilityRules *OfferTemplate_ApplicabilityRules `protobuf:"bytes,6,opt,name=applicability_rules,json=applicabilityRules,proto3" json:"applicability_rules,omitempty"`
	// Список элементов Шаблона КВ.
	// Каждый элемент описывает технологический план и параметры создания КВ для него
	Items []*OfferTemplate_Item `protobuf:"bytes,7,rep,name=items,proto3" json:"items,omitempty"`
	// Дата и время создания.
	// Заполняется сервером.
	// # Тип: DateTime
	CreatedAt *timestamppb.Timestamp `protobuf:"bytes,8,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"`
	// Дата и время последнего изменения.
	// Заполняется и обновляется сервером.
	// Является версией объекта.
	// # Тип: DateTime
	UpdatedAt *timestamppb.Timestamp `protobuf:"bytes,9,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"`
}

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

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

func (*OfferTemplate) ProtoMessage() {}

func (x *OfferTemplate) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 OfferTemplate.ProtoReflect.Descriptor instead.
func (*OfferTemplate) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{0}
}

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

func (x *OfferTemplate) GetServiceType() OfferTemplate_ServiceType {
	if x != nil {
		return x.ServiceType
	}
	return OfferTemplate_SERVICE_TYPE_UNKNOWN
}

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

func (x *OfferTemplate) GetDescription() *wrapperspb.StringValue {
	if x != nil {
		return x.Description
	}
	return nil
}

func (x *OfferTemplate) GetStatusType() OfferTemplate_StatusType {
	if x != nil {
		return x.StatusType
	}
	return OfferTemplate_STATUS_TYPE_UNKNOWN
}

func (x *OfferTemplate) GetApplicabilityRules() *OfferTemplate_ApplicabilityRules {
	if x != nil {
		return x.ApplicabilityRules
	}
	return nil
}

func (x *OfferTemplate) GetItems() []*OfferTemplate_Item {
	if x != nil {
		return x.Items
	}
	return nil
}

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

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

// Фильтр по шаблонам КВ
type OfferTemplateFilter struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// По статусам
	StatusTypes []OfferTemplate_StatusType `protobuf:"varint,1,rep,packed,name=status_types,json=statusTypes,proto3,enum=keyapis.subscription.v1.OfferTemplate_StatusType" json:"status_types,omitempty"`
	// По типам сервисов
	ServiceTypes []OfferTemplate_ServiceType `protobuf:"varint,2,rep,packed,name=service_types,json=serviceTypes,proto3,enum=keyapis.subscription.v1.OfferTemplate_ServiceType" json:"service_types,omitempty"`
	// По идентификаторам регионов (из правил применимости)
	RfIds []int32 `protobuf:"varint,3,rep,packed,name=rf_ids,json=rfIds,proto3" json:"rf_ids,omitempty"`
	// По тексту.
	// Если значение не передано, поиск по нему не производится.
	// # Диапазон: 3..64.
	// # Поиск производится по полям:
	// # - Наименование;
	// # - Описание
	Text *wrapperspb.StringValue `protobuf:"bytes,4,opt,name=text,proto3" json:"text,omitempty"`
	// По типам договорных схем (из правил применимости)
	ApplicabilityRulesContractTypes []OfferTemplate_ApplicabilityRules_ContractType `protobuf:"varint,5,rep,packed,name=applicability_rules_contract_types,json=applicabilityRulesContractTypes,proto3,enum=keyapis.subscription.v1.OfferTemplate_ApplicabilityRules_ContractType" json:"applicability_rules_contract_types,omitempty"`
	// По типам клиентов (из правил применимости)
	ApplicabilityRulesClientTypes []OfferTemplate_ApplicabilityRules_ClientType `protobuf:"varint,6,rep,packed,name=applicability_rules_client_types,json=applicabilityRulesClientTypes,proto3,enum=keyapis.subscription.v1.OfferTemplate_ApplicabilityRules_ClientType" json:"applicability_rules_client_types,omitempty"`
	// По типам биллинговых систем (из правил применимости)
	ApplicabilityRulesBillingSystemTypes []OfferTemplate_ApplicabilityRules_BillingSystemType `protobuf:"varint,7,rep,packed,name=applicability_rules_billing_system_types,json=applicabilityRulesBillingSystemTypes,proto3,enum=keyapis.subscription.v1.OfferTemplate_ApplicabilityRules_BillingSystemType" json:"applicability_rules_billing_system_types,omitempty"`
	// По признаку внешней оплаты умного домофона (из правил применимости)
	IsExternalPaymentForSmartIntercom *wrapperspb.BoolValue `protobuf:"bytes,8,opt,name=is_external_payment_for_smart_intercom,json=isExternalPaymentForSmartIntercom,proto3" json:"is_external_payment_for_smart_intercom,omitempty"`
	// По наличию CMS телефона в квартире (из правил применимости)
	ApplicabilityRulesIsCmsPhone *wrapperspb.BoolValue `protobuf:"bytes,9,opt,name=applicability_rules_is_cms_phone,json=applicabilityRulesIsCmsPhone,proto3" json:"applicability_rules_is_cms_phone,omitempty"`
	// По наличию SIP телефона в квартире (из правил применимости)
	ApplicabilityRulesIsSipPhone *wrapperspb.BoolValue `protobuf:"bytes,10,opt,name=applicability_rules_is_sip_phone,json=applicabilityRulesIsSipPhone,proto3" json:"applicability_rules_is_sip_phone,omitempty"`
	// По наличию видеомонитора в квартире (из правил применимости)
	ApplicabilityRulesIsVideoMonitor *wrapperspb.BoolValue `protobuf:"bytes,11,opt,name=applicability_rules_is_video_monitor,json=applicabilityRulesIsVideoMonitor,proto3" json:"applicability_rules_is_video_monitor,omitempty"`
	// По типам договорной схемы устройства в квартире (из правил применимости)
	ApplicabilityRulesRoomDeviceContractTypes []OfferTemplate_ApplicabilityRules_RoomDeviceContractType `protobuf:"varint,12,rep,packed,name=applicability_rules_room_device_contract_types,json=applicabilityRulesRoomDeviceContractTypes,proto3,enum=keyapis.subscription.v1.OfferTemplate_ApplicabilityRules_RoomDeviceContractType" json:"applicability_rules_room_device_contract_types,omitempty"`
	// По типам минимального бесплатного пакета мобильного приложения (из правил применимости)
	ApplicabilityRulesMobileAppPackageTypes []OfferTemplate_ApplicabilityRules_MobileAppPackageType `protobuf:"varint,13,rep,packed,name=applicability_rules_mobile_app_package_types,json=applicabilityRulesMobileAppPackageTypes,proto3,enum=keyapis.subscription.v1.OfferTemplate_ApplicabilityRules_MobileAppPackageType" json:"applicability_rules_mobile_app_package_types,omitempty"`
	// По признаку переадресации на городские/мобильные номера (из правил применимости)
	IsCallForwardingEnabled *wrapperspb.BoolValue `protobuf:"bytes,14,opt,name=is_call_forwarding_enabled,json=isCallForwardingEnabled,proto3" json:"is_call_forwarding_enabled,omitempty"`
	// По признаку цифрового клиентского пути (из правил применимости)
	IsDigitalWay *wrapperspb.BoolValue `protobuf:"bytes,15,opt,name=is_digital_way,json=isDigitalWay,proto3" json:"is_digital_way,omitempty"`
	// По идентификаторам технологических планов (из элементов шаблона)
	PlanIds []int32 `protobuf:"varint,16,rep,packed,name=plan_ids,json=planIds,proto3" json:"plan_ids,omitempty"`
}

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

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

func (*OfferTemplateFilter) ProtoMessage() {}

func (x *OfferTemplateFilter) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 OfferTemplateFilter.ProtoReflect.Descriptor instead.
func (*OfferTemplateFilter) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{1}
}

func (x *OfferTemplateFilter) GetStatusTypes() []OfferTemplate_StatusType {
	if x != nil {
		return x.StatusTypes
	}
	return nil
}

func (x *OfferTemplateFilter) GetServiceTypes() []OfferTemplate_ServiceType {
	if x != nil {
		return x.ServiceTypes
	}
	return nil
}

func (x *OfferTemplateFilter) GetRfIds() []int32 {
	if x != nil {
		return x.RfIds
	}
	return nil
}

func (x *OfferTemplateFilter) GetText() *wrapperspb.StringValue {
	if x != nil {
		return x.Text
	}
	return nil
}

func (x *OfferTemplateFilter) GetApplicabilityRulesContractTypes() []OfferTemplate_ApplicabilityRules_ContractType {
	if x != nil {
		return x.ApplicabilityRulesContractTypes
	}
	return nil
}

func (x *OfferTemplateFilter) GetApplicabilityRulesClientTypes() []OfferTemplate_ApplicabilityRules_ClientType {
	if x != nil {
		return x.ApplicabilityRulesClientTypes
	}
	return nil
}

func (x *OfferTemplateFilter) GetApplicabilityRulesBillingSystemTypes() []OfferTemplate_ApplicabilityRules_BillingSystemType {
	if x != nil {
		return x.ApplicabilityRulesBillingSystemTypes
	}
	return nil
}

func (x *OfferTemplateFilter) GetIsExternalPaymentForSmartIntercom() *wrapperspb.BoolValue {
	if x != nil {
		return x.IsExternalPaymentForSmartIntercom
	}
	return nil
}

func (x *OfferTemplateFilter) GetApplicabilityRulesIsCmsPhone() *wrapperspb.BoolValue {
	if x != nil {
		return x.ApplicabilityRulesIsCmsPhone
	}
	return nil
}

func (x *OfferTemplateFilter) GetApplicabilityRulesIsSipPhone() *wrapperspb.BoolValue {
	if x != nil {
		return x.ApplicabilityRulesIsSipPhone
	}
	return nil
}

func (x *OfferTemplateFilter) GetApplicabilityRulesIsVideoMonitor() *wrapperspb.BoolValue {
	if x != nil {
		return x.ApplicabilityRulesIsVideoMonitor
	}
	return nil
}

func (x *OfferTemplateFilter) GetApplicabilityRulesRoomDeviceContractTypes() []OfferTemplate_ApplicabilityRules_RoomDeviceContractType {
	if x != nil {
		return x.ApplicabilityRulesRoomDeviceContractTypes
	}
	return nil
}

func (x *OfferTemplateFilter) GetApplicabilityRulesMobileAppPackageTypes() []OfferTemplate_ApplicabilityRules_MobileAppPackageType {
	if x != nil {
		return x.ApplicabilityRulesMobileAppPackageTypes
	}
	return nil
}

func (x *OfferTemplateFilter) GetIsCallForwardingEnabled() *wrapperspb.BoolValue {
	if x != nil {
		return x.IsCallForwardingEnabled
	}
	return nil
}

func (x *OfferTemplateFilter) GetIsDigitalWay() *wrapperspb.BoolValue {
	if x != nil {
		return x.IsDigitalWay
	}
	return nil
}

func (x *OfferTemplateFilter) GetPlanIds() []int32 {
	if x != nil {
		return x.PlanIds
	}
	return nil
}

// Пагинация по шаблонам КВ
type OfferTemplatePaging struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Тип значения сортировки.
	// Если значение не передано, то будет взято значение по умолчанию.
	// # По умолчанию: CREATED_AT
	OrderByType OfferTemplatePaging_OrderByType `protobuf:"varint,1,opt,name=order_by_type,json=orderByType,proto3,enum=keyapis.subscription.v1.OfferTemplatePaging_OrderByType" json:"order_by_type,omitempty"`
	// Тип направления сортировки.
	// # По умолчанию: DESC
	DirectionType OfferTemplatePaging_DirectionType `protobuf:"varint,2,opt,name=direction_type,json=directionType,proto3,enum=keyapis.subscription.v1.OfferTemplatePaging_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 *OfferTemplatePaging) Reset() {
	*x = OfferTemplatePaging{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[2]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OfferTemplatePaging) ProtoMessage() {}

func (x *OfferTemplatePaging) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 OfferTemplatePaging.ProtoReflect.Descriptor instead.
func (*OfferTemplatePaging) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{2}
}

func (x *OfferTemplatePaging) GetOrderByType() OfferTemplatePaging_OrderByType {
	if x != nil {
		return x.OrderByType
	}
	return OfferTemplatePaging_ORDER_BY_TYPE_UNKNOWN
}

func (x *OfferTemplatePaging) GetDirectionType() OfferTemplatePaging_DirectionType {
	if x != nil {
		return x.DirectionType
	}
	return OfferTemplatePaging_DIRECTION_TYPE_UNKNOWN
}

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

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

// Запрос получения шаблона КВ
type GetOfferTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор шаблона КВ.
	// Тип: Guid
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*GetOfferTemplateRequest) ProtoMessage() {}

func (x *GetOfferTemplateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 GetOfferTemplateRequest.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{3}
}

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

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

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

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

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

func (*GetOfferTemplateResponse) ProtoMessage() {}

func (x *GetOfferTemplateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 GetOfferTemplateResponse.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{4}
}

func (m *GetOfferTemplateResponse) GetType() isGetOfferTemplateResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetOfferTemplateResponse) GetData() *OfferTemplate {
	if x, ok := x.GetType().(*GetOfferTemplateResponse_Data); ok {
		return x.Data
	}
	return nil
}

type isGetOfferTemplateResponse_Type interface {
	isGetOfferTemplateResponse_Type()
}

type GetOfferTemplateResponse_Data struct {
	// Шаблон КВ
	Data *OfferTemplate `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

func (*GetOfferTemplateResponse_Data) isGetOfferTemplateResponse_Type() {}

// Запрос получения списка шаблонов КВ
type GetOfferTemplateListRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*GetOfferTemplateListRequest) ProtoMessage() {}

func (x *GetOfferTemplateListRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 GetOfferTemplateListRequest.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateListRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{5}
}

func (x *GetOfferTemplateListRequest) GetFilter() *OfferTemplateFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

func (m *GetOfferTemplateListRequest) GetPagination() isGetOfferTemplateListRequest_Pagination {
	if m != nil {
		return m.Pagination
	}
	return nil
}

func (x *GetOfferTemplateListRequest) GetPaging() *OfferTemplatePaging {
	if x, ok := x.GetPagination().(*GetOfferTemplateListRequest_Paging); ok {
		return x.Paging
	}
	return nil
}

type isGetOfferTemplateListRequest_Pagination interface {
	isGetOfferTemplateListRequest_Pagination()
}

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

func (*GetOfferTemplateListRequest_Paging) isGetOfferTemplateListRequest_Pagination() {}

// Ответ на запрос получения списка шаблонов КВ
type GetOfferTemplateListResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*GetOfferTemplateListResponse) ProtoMessage() {}

func (x *GetOfferTemplateListResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 GetOfferTemplateListResponse.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateListResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{6}
}

func (m *GetOfferTemplateListResponse) GetType() isGetOfferTemplateListResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetOfferTemplateListResponse) GetData() *OfferTemplate {
	if x, ok := x.GetType().(*GetOfferTemplateListResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *GetOfferTemplateListResponse) GetError() *GetOfferTemplateListResponse_Error {
	if x, ok := x.GetType().(*GetOfferTemplateListResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetOfferTemplateListResponse_Type interface {
	isGetOfferTemplateListResponse_Type()
}

type GetOfferTemplateListResponse_Data struct {
	// Шаблон КВ
	Data *OfferTemplate `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

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

func (*GetOfferTemplateListResponse_Data) isGetOfferTemplateListResponse_Type() {}

func (*GetOfferTemplateListResponse_Error_) isGetOfferTemplateListResponse_Type() {}

// Запрос получения списка Шаблонов КВ по ОРПОН дома
type GetOfferTemplateByOrponListRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// ОРПОН. Идентификатор дома
	Orpon int64 `protobuf:"varint,1,opt,name=orpon,proto3" json:"orpon,omitempty"`
}

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

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

func (*GetOfferTemplateByOrponListRequest) ProtoMessage() {}

func (x *GetOfferTemplateByOrponListRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 GetOfferTemplateByOrponListRequest.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateByOrponListRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{7}
}

func (x *GetOfferTemplateByOrponListRequest) GetOrpon() int64 {
	if x != nil {
		return x.Orpon
	}
	return 0
}

// Ответ на запрос получения списка Шаблонов КВ по ОРПОН дома
type GetOfferTemplateByOrponListResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*GetOfferTemplateByOrponListResponse) ProtoMessage() {}

func (x *GetOfferTemplateByOrponListResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 GetOfferTemplateByOrponListResponse.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateByOrponListResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{8}
}

func (m *GetOfferTemplateByOrponListResponse) GetType() isGetOfferTemplateByOrponListResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *GetOfferTemplateByOrponListResponse) GetData() *OfferTemplate {
	if x, ok := x.GetType().(*GetOfferTemplateByOrponListResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *GetOfferTemplateByOrponListResponse) GetError() *GetOfferTemplateByOrponListResponse_Error {
	if x, ok := x.GetType().(*GetOfferTemplateByOrponListResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetOfferTemplateByOrponListResponse_Type interface {
	isGetOfferTemplateByOrponListResponse_Type()
}

type GetOfferTemplateByOrponListResponse_Data struct {
	// Шаблон КВ
	Data *OfferTemplate `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

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

func (*GetOfferTemplateByOrponListResponse_Data) isGetOfferTemplateByOrponListResponse_Type() {}

func (*GetOfferTemplateByOrponListResponse_Error_) isGetOfferTemplateByOrponListResponse_Type() {}

// Запрос получения количества шаблонов КВ
type GetOfferTemplateCountRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*GetOfferTemplateCountRequest) ProtoMessage() {}

func (x *GetOfferTemplateCountRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 GetOfferTemplateCountRequest.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateCountRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{9}
}

func (x *GetOfferTemplateCountRequest) GetFilter() *OfferTemplateFilter {
	if x != nil {
		return x.Filter
	}
	return nil
}

// Ответ на запрос получения количества шаблонов КВ
type GetOfferTemplateCountResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*GetOfferTemplateCountResponse) ProtoMessage() {}

func (x *GetOfferTemplateCountResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 GetOfferTemplateCountResponse.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateCountResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{10}
}

func (m *GetOfferTemplateCountResponse) GetType() isGetOfferTemplateCountResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

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

func (x *GetOfferTemplateCountResponse) GetError() *GetOfferTemplateCountResponse_Error {
	if x, ok := x.GetType().(*GetOfferTemplateCountResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetOfferTemplateCountResponse_Type interface {
	isGetOfferTemplateCountResponse_Type()
}

type GetOfferTemplateCountResponse_Data struct {
	// Всего шаблонов КВ
	Data int32 `protobuf:"varint,1,opt,name=data,proto3,oneof"`
}

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

func (*GetOfferTemplateCountResponse_Data) isGetOfferTemplateCountResponse_Type() {}

func (*GetOfferTemplateCountResponse_Error_) isGetOfferTemplateCountResponse_Type() {}

// Запрос получения количества Шаблонов КВ по ОРПОН дома
type GetOfferTemplateByOrponCountRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// ОРПОН. Идентификатор дома
	Orpon int64 `protobuf:"varint,1,opt,name=orpon,proto3" json:"orpon,omitempty"`
}

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

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

func (*GetOfferTemplateByOrponCountRequest) ProtoMessage() {}

func (x *GetOfferTemplateByOrponCountRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 GetOfferTemplateByOrponCountRequest.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateByOrponCountRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{11}
}

func (x *GetOfferTemplateByOrponCountRequest) GetOrpon() int64 {
	if x != nil {
		return x.Orpon
	}
	return 0
}

// Ответ на запрос получения количества Шаблонов КВ по ОРПОН дома
type GetOfferTemplateByOrponCountResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*GetOfferTemplateByOrponCountResponse) ProtoMessage() {}

func (x *GetOfferTemplateByOrponCountResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 GetOfferTemplateByOrponCountResponse.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateByOrponCountResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{12}
}

func (m *GetOfferTemplateByOrponCountResponse) GetType() isGetOfferTemplateByOrponCountResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

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

func (x *GetOfferTemplateByOrponCountResponse) GetError() *GetOfferTemplateByOrponCountResponse_Error {
	if x, ok := x.GetType().(*GetOfferTemplateByOrponCountResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isGetOfferTemplateByOrponCountResponse_Type interface {
	isGetOfferTemplateByOrponCountResponse_Type()
}

type GetOfferTemplateByOrponCountResponse_Data struct {
	// Всего шаблонов КВ
	Data int32 `protobuf:"varint,1,opt,name=data,proto3,oneof"`
}

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

func (*GetOfferTemplateByOrponCountResponse_Data) isGetOfferTemplateByOrponCountResponse_Type() {}

func (*GetOfferTemplateByOrponCountResponse_Error_) isGetOfferTemplateByOrponCountResponse_Type() {}

// Запрос создания/редактирования шаблона КВ
type PostOfferTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Шаблон КВ.
	// Если id не передан — создаётся новый шаблон.
	// Если id передан — редактируется существующий шаблон
	Data *OfferTemplate `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"`
}

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

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

func (*PostOfferTemplateRequest) ProtoMessage() {}

func (x *PostOfferTemplateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 PostOfferTemplateRequest.ProtoReflect.Descriptor instead.
func (*PostOfferTemplateRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{13}
}

func (x *PostOfferTemplateRequest) GetData() *OfferTemplate {
	if x != nil {
		return x.Data
	}
	return nil
}

// Ответ на запрос создания/редактирования шаблона КВ
type PostOfferTemplateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*PostOfferTemplateResponse) ProtoMessage() {}

func (x *PostOfferTemplateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 PostOfferTemplateResponse.ProtoReflect.Descriptor instead.
func (*PostOfferTemplateResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{14}
}

func (m *PostOfferTemplateResponse) GetType() isPostOfferTemplateResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PostOfferTemplateResponse) GetData() *OfferTemplate {
	if x, ok := x.GetType().(*PostOfferTemplateResponse_Data); ok {
		return x.Data
	}
	return nil
}

func (x *PostOfferTemplateResponse) GetError() *PostOfferTemplateResponse_Error {
	if x, ok := x.GetType().(*PostOfferTemplateResponse_Error_); ok {
		return x.Error
	}
	return nil
}

type isPostOfferTemplateResponse_Type interface {
	isPostOfferTemplateResponse_Type()
}

type PostOfferTemplateResponse_Data struct {
	// Шаблон КВ
	Data *OfferTemplate `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

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

func (*PostOfferTemplateResponse_Data) isPostOfferTemplateResponse_Type() {}

func (*PostOfferTemplateResponse_Error_) isPostOfferTemplateResponse_Type() {}

// Запрос архивации шаблона КВ
type DeleteOfferTemplateRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор шаблона КВ.
	// Тип: Guid
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*DeleteOfferTemplateRequest) ProtoMessage() {}

func (x *DeleteOfferTemplateRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 DeleteOfferTemplateRequest.ProtoReflect.Descriptor instead.
func (*DeleteOfferTemplateRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{15}
}

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

// Ответ на запрос архивации шаблона КВ
type DeleteOfferTemplateResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

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

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

func (*DeleteOfferTemplateResponse) ProtoMessage() {}

func (x *DeleteOfferTemplateResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 DeleteOfferTemplateResponse.ProtoReflect.Descriptor instead.
func (*DeleteOfferTemplateResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{16}
}

// Запрос восстановления шаблона КВ из архива
type PostOfferTemplateRestoreRequest struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор шаблона КВ.
	// Тип: Guid
	Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`
}

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

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

func (*PostOfferTemplateRestoreRequest) ProtoMessage() {}

func (x *PostOfferTemplateRestoreRequest) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 PostOfferTemplateRestoreRequest.ProtoReflect.Descriptor instead.
func (*PostOfferTemplateRestoreRequest) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{17}
}

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

// Ответ на запрос восстановления шаблона КВ из архива
type PostOfferTemplateRestoreResponse struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

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

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

func (*PostOfferTemplateRestoreResponse) ProtoMessage() {}

func (x *PostOfferTemplateRestoreResponse) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 PostOfferTemplateRestoreResponse.ProtoReflect.Descriptor instead.
func (*PostOfferTemplateRestoreResponse) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{18}
}

func (m *PostOfferTemplateRestoreResponse) GetType() isPostOfferTemplateRestoreResponse_Type {
	if m != nil {
		return m.Type
	}
	return nil
}

func (x *PostOfferTemplateRestoreResponse) GetData() *OfferTemplate {
	if x, ok := x.GetType().(*PostOfferTemplateRestoreResponse_Data); ok {
		return x.Data
	}
	return nil
}

type isPostOfferTemplateRestoreResponse_Type interface {
	isPostOfferTemplateRestoreResponse_Type()
}

type PostOfferTemplateRestoreResponse_Data struct {
	// Восстановленный шаблон КВ
	Data *OfferTemplate `protobuf:"bytes,1,opt,name=data,proto3,oneof"`
}

func (*PostOfferTemplateRestoreResponse_Data) isPostOfferTemplateRestoreResponse_Type() {}

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

	// Путь к полю в формате наименования прото
	Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"`
	// Валидационное сообщение
	Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"`
}

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

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

func (*ValidationError) ProtoMessage() {}

func (x *ValidationError) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 ValidationError.ProtoReflect.Descriptor instead.
func (*ValidationError) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{19}
}

func (x *ValidationError) GetPath() string {
	if x != nil {
		return x.Path
	}
	return ""
}

func (x *ValidationError) GetMessage() string {
	if x != nil {
		return x.Message
	}
	return ""
}

// Правила применимости Шаблона КВ
type OfferTemplate_ApplicabilityRules struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Ограничение по регионам.
	// # Диапазон: 0..100
	RfIds []int32 `protobuf:"varint,1,rep,packed,name=rf_ids,json=rfIds,proto3" json:"rf_ids,omitempty"`
	// Договорная схема
	ContractType OfferTemplate_ApplicabilityRules_ContractType `protobuf:"varint,2,opt,name=contract_type,json=contractType,proto3,enum=keyapis.subscription.v1.OfferTemplate_ApplicabilityRules_ContractType" json:"contract_type,omitempty"`
	// Тип клиента.
	// Заполняется только когда contract_type принимает одно из значений: B2B, B2B2C
	ClientType OfferTemplate_ApplicabilityRules_ClientType `protobuf:"varint,3,opt,name=client_type,json=clientType,proto3,enum=keyapis.subscription.v1.OfferTemplate_ApplicabilityRules_ClientType" json:"client_type,omitempty"`
	// Биллинговая система.
	// Заполняется только когда contract_type принимает одно из значений: B2B, B2B2C
	BillingSystemType OfferTemplate_ApplicabilityRules_BillingSystemType `protobuf:"varint,4,opt,name=billing_system_type,json=billingSystemType,proto3,enum=keyapis.subscription.v1.OfferTemplate_ApplicabilityRules_BillingSystemType" json:"billing_system_type,omitempty"`
	// Принимаются ли платежи за умный домофон на счёт внешней компании
	IsExternalPaymentForSmartIntercom bool `protobuf:"varint,5,opt,name=is_external_payment_for_smart_intercom,json=isExternalPaymentForSmartIntercom,proto3" json:"is_external_payment_for_smart_intercom,omitempty"`
	// Аналоговые трубки устанавливаются в квартирах объекта
	IsCmsPhone bool `protobuf:"varint,6,opt,name=is_cms_phone,json=isCmsPhone,proto3" json:"is_cms_phone,omitempty"`
	// SIP-трубки устанавливаются в квартирах объекта
	IsSipPhone bool `protobuf:"varint,7,opt,name=is_sip_phone,json=isSipPhone,proto3" json:"is_sip_phone,omitempty"`
	// Видеомониторы устанавливаются в квартирах объекта
	IsVideoMonitor bool `protobuf:"varint,8,opt,name=is_video_monitor,json=isVideoMonitor,proto3" json:"is_video_monitor,omitempty"`
	// Тип договорной схемы устройства в квартире
	RoomDeviceContractType OfferTemplate_ApplicabilityRules_RoomDeviceContractType `protobuf:"varint,9,opt,name=room_device_contract_type,json=roomDeviceContractType,proto3,enum=keyapis.subscription.v1.OfferTemplate_ApplicabilityRules_RoomDeviceContractType" json:"room_device_contract_type,omitempty"`
	// Минимальный бесплатный пакет мобильного приложения
	MobileAppPackageType OfferTemplate_ApplicabilityRules_MobileAppPackageType `protobuf:"varint,10,opt,name=mobile_app_package_type,json=mobileAppPackageType,proto3,enum=keyapis.subscription.v1.OfferTemplate_ApplicabilityRules_MobileAppPackageType" json:"mobile_app_package_type,omitempty"`
	// Переадресация на городские/мобильные номера
	IsCallForwardingEnabled bool `protobuf:"varint,11,opt,name=is_call_forwarding_enabled,json=isCallForwardingEnabled,proto3" json:"is_call_forwarding_enabled,omitempty"`
	// Цифровой клиентский путь
	IsDigitalWay bool `protobuf:"varint,12,opt,name=is_digital_way,json=isDigitalWay,proto3" json:"is_digital_way,omitempty"`
}

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

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

func (*OfferTemplate_ApplicabilityRules) ProtoMessage() {}

func (x *OfferTemplate_ApplicabilityRules) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 OfferTemplate_ApplicabilityRules.ProtoReflect.Descriptor instead.
func (*OfferTemplate_ApplicabilityRules) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{0, 0}
}

func (x *OfferTemplate_ApplicabilityRules) GetRfIds() []int32 {
	if x != nil {
		return x.RfIds
	}
	return nil
}

func (x *OfferTemplate_ApplicabilityRules) GetContractType() OfferTemplate_ApplicabilityRules_ContractType {
	if x != nil {
		return x.ContractType
	}
	return OfferTemplate_ApplicabilityRules_CONTRACT_TYPE_UNKNOWN
}

func (x *OfferTemplate_ApplicabilityRules) GetClientType() OfferTemplate_ApplicabilityRules_ClientType {
	if x != nil {
		return x.ClientType
	}
	return OfferTemplate_ApplicabilityRules_CLIENT_TYPE_UNKNOWN
}

func (x *OfferTemplate_ApplicabilityRules) GetBillingSystemType() OfferTemplate_ApplicabilityRules_BillingSystemType {
	if x != nil {
		return x.BillingSystemType
	}
	return OfferTemplate_ApplicabilityRules_BILLING_SYSTEM_TYPE_UNKNOWN
}

func (x *OfferTemplate_ApplicabilityRules) GetIsExternalPaymentForSmartIntercom() bool {
	if x != nil {
		return x.IsExternalPaymentForSmartIntercom
	}
	return false
}

func (x *OfferTemplate_ApplicabilityRules) GetIsCmsPhone() bool {
	if x != nil {
		return x.IsCmsPhone
	}
	return false
}

func (x *OfferTemplate_ApplicabilityRules) GetIsSipPhone() bool {
	if x != nil {
		return x.IsSipPhone
	}
	return false
}

func (x *OfferTemplate_ApplicabilityRules) GetIsVideoMonitor() bool {
	if x != nil {
		return x.IsVideoMonitor
	}
	return false
}

func (x *OfferTemplate_ApplicabilityRules) GetRoomDeviceContractType() OfferTemplate_ApplicabilityRules_RoomDeviceContractType {
	if x != nil {
		return x.RoomDeviceContractType
	}
	return OfferTemplate_ApplicabilityRules_ROOM_DEVICE_CONTRACT_TYPE_UNKNOWN
}

func (x *OfferTemplate_ApplicabilityRules) GetMobileAppPackageType() OfferTemplate_ApplicabilityRules_MobileAppPackageType {
	if x != nil {
		return x.MobileAppPackageType
	}
	return OfferTemplate_ApplicabilityRules_MOBILE_APP_PACKAGE_TYPE_UNKNOWN
}

func (x *OfferTemplate_ApplicabilityRules) GetIsCallForwardingEnabled() bool {
	if x != nil {
		return x.IsCallForwardingEnabled
	}
	return false
}

func (x *OfferTemplate_ApplicabilityRules) GetIsDigitalWay() bool {
	if x != nil {
		return x.IsDigitalWay
	}
	return false
}

// Элемент Шаблона КВ
type OfferTemplate_Item struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Идентификатор технологического плана.
	// # Диапазон: 1..2147483647
	PlanId int32 `protobuf:"varint,1,opt,name=plan_id,json=planId,proto3" json:"plan_id,omitempty"`
	// Тип коммерческой возможности
	Type Offer_Type `protobuf:"varint,2,opt,name=type,proto3,enum=keyapis.subscription.v1.Offer_Type" json:"type,omitempty"`
	// Подключать ли автоматическую подписку
	IsEnableAutoSubscribe bool `protobuf:"varint,3,opt,name=is_enable_auto_subscribe,json=isEnableAutoSubscribe,proto3" json:"is_enable_auto_subscribe,omitempty"`
	// Признак принадлежности к цифровому клиентскому пути
	IsDigitalWay bool `protobuf:"varint,4,opt,name=is_digital_way,json=isDigitalWay,proto3" json:"is_digital_way,omitempty"`
	// Адрес размещения офферты.
	// Полный url до файла.
	// # Диапазон: 0..2048
	OfferUrl *wrapperspb.StringValue `protobuf:"bytes,5,opt,name=offer_url,json=offerUrl,proto3" json:"offer_url,omitempty"`
}

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

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

func (*OfferTemplate_Item) ProtoMessage() {}

func (x *OfferTemplate_Item) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 OfferTemplate_Item.ProtoReflect.Descriptor instead.
func (*OfferTemplate_Item) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{0, 1}
}

func (x *OfferTemplate_Item) GetPlanId() int32 {
	if x != nil {
		return x.PlanId
	}
	return 0
}

func (x *OfferTemplate_Item) GetType() Offer_Type {
	if x != nil {
		return x.Type
	}
	return Offer_TYPE_UNKNOWN
}

func (x *OfferTemplate_Item) GetIsEnableAutoSubscribe() bool {
	if x != nil {
		return x.IsEnableAutoSubscribe
	}
	return false
}

func (x *OfferTemplate_Item) GetIsDigitalWay() bool {
	if x != nil {
		return x.IsDigitalWay
	}
	return false
}

func (x *OfferTemplate_Item) GetOfferUrl() *wrapperspb.StringValue {
	if x != nil {
		return x.OfferUrl
	}
	return nil
}

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

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

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

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

func (*OfferTemplate_SavingError) ProtoMessage() {}

func (x *OfferTemplate_SavingError) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_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 OfferTemplate_SavingError.ProtoReflect.Descriptor instead.
func (*OfferTemplate_SavingError) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{0, 2}
}

func (m *OfferTemplate_SavingError) GetReason() isOfferTemplate_SavingError_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

func (x *OfferTemplate_SavingError) GetConflict() *OfferTemplate_SavingError_Conflict {
	if x, ok := x.GetReason().(*OfferTemplate_SavingError_Conflict_); ok {
		return x.Conflict
	}
	return nil
}

func (x *OfferTemplate_SavingError) GetDuplicateTemplate() *OfferTemplate_SavingError_DuplicateTemplate {
	if x, ok := x.GetReason().(*OfferTemplate_SavingError_DuplicateTemplate_); ok {
		return x.DuplicateTemplate
	}
	return nil
}

type isOfferTemplate_SavingError_Reason interface {
	isOfferTemplate_SavingError_Reason()
}

type OfferTemplate_SavingError_Conflict_ struct {
	// Конфликт версий
	Conflict *OfferTemplate_SavingError_Conflict `protobuf:"bytes,1,opt,name=conflict,proto3,oneof"`
}

type OfferTemplate_SavingError_DuplicateTemplate_ struct {
	// Дублирование шаблона
	DuplicateTemplate *OfferTemplate_SavingError_DuplicateTemplate `protobuf:"bytes,2,opt,name=duplicate_template,json=duplicateTemplate,proto3,oneof"`
}

func (*OfferTemplate_SavingError_Conflict_) isOfferTemplate_SavingError_Reason() {}

func (*OfferTemplate_SavingError_DuplicateTemplate_) isOfferTemplate_SavingError_Reason() {}

// Конфликт версий.
// Причины:
// - В базе хранится другая версия строки, значения updated_at отличаются
type OfferTemplate_SavingError_Conflict struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *OfferTemplate_SavingError_Conflict) Reset() {
	*x = OfferTemplate_SavingError_Conflict{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[23]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OfferTemplate_SavingError_Conflict) ProtoMessage() {}

func (x *OfferTemplate_SavingError_Conflict) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[23]
	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 OfferTemplate_SavingError_Conflict.ProtoReflect.Descriptor instead.
func (*OfferTemplate_SavingError_Conflict) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{0, 2, 0}
}

// Шаблон с таким типом сервиса и правилами применимости уже существует.
// Нельзя создать два или более шаблона с одинаковым типом сервиса и одинаковыми правилами применимости
type OfferTemplate_SavingError_DuplicateTemplate struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields
}

func (x *OfferTemplate_SavingError_DuplicateTemplate) Reset() {
	*x = OfferTemplate_SavingError_DuplicateTemplate{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[24]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*OfferTemplate_SavingError_DuplicateTemplate) ProtoMessage() {}

func (x *OfferTemplate_SavingError_DuplicateTemplate) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[24]
	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 OfferTemplate_SavingError_DuplicateTemplate.ProtoReflect.Descriptor instead.
func (*OfferTemplate_SavingError_DuplicateTemplate) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{0, 2, 1}
}

// Ошибка запроса получения списка шаблонов КВ
type GetOfferTemplateListResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

func (x *GetOfferTemplateListResponse_Error) Reset() {
	*x = GetOfferTemplateListResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[25]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetOfferTemplateListResponse_Error) ProtoMessage() {}

func (x *GetOfferTemplateListResponse_Error) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[25]
	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 GetOfferTemplateListResponse_Error.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateListResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{6, 0}
}

func (m *GetOfferTemplateListResponse_Error) GetReason() isGetOfferTemplateListResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

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

type isGetOfferTemplateListResponse_Error_Reason interface {
	isGetOfferTemplateListResponse_Error_Reason()
}

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

func (*GetOfferTemplateListResponse_Error_Validation) isGetOfferTemplateListResponse_Error_Reason() {}

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

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

func (x *GetOfferTemplateByOrponListResponse_Error) Reset() {
	*x = GetOfferTemplateByOrponListResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[26]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetOfferTemplateByOrponListResponse_Error) ProtoMessage() {}

func (x *GetOfferTemplateByOrponListResponse_Error) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[26]
	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 GetOfferTemplateByOrponListResponse_Error.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateByOrponListResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{8, 0}
}

func (m *GetOfferTemplateByOrponListResponse_Error) GetReason() isGetOfferTemplateByOrponListResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

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

type isGetOfferTemplateByOrponListResponse_Error_Reason interface {
	isGetOfferTemplateByOrponListResponse_Error_Reason()
}

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

func (*GetOfferTemplateByOrponListResponse_Error_Validation) isGetOfferTemplateByOrponListResponse_Error_Reason() {
}

// Ошибка запроса получения количества шаблонов КВ
type GetOfferTemplateCountResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

func (x *GetOfferTemplateCountResponse_Error) Reset() {
	*x = GetOfferTemplateCountResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[27]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetOfferTemplateCountResponse_Error) ProtoMessage() {}

func (x *GetOfferTemplateCountResponse_Error) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[27]
	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 GetOfferTemplateCountResponse_Error.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateCountResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{10, 0}
}

func (m *GetOfferTemplateCountResponse_Error) GetReason() isGetOfferTemplateCountResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

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

type isGetOfferTemplateCountResponse_Error_Reason interface {
	isGetOfferTemplateCountResponse_Error_Reason()
}

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

func (*GetOfferTemplateCountResponse_Error_Validation) isGetOfferTemplateCountResponse_Error_Reason() {
}

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

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

func (x *GetOfferTemplateByOrponCountResponse_Error) Reset() {
	*x = GetOfferTemplateByOrponCountResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[28]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*GetOfferTemplateByOrponCountResponse_Error) ProtoMessage() {}

func (x *GetOfferTemplateByOrponCountResponse_Error) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[28]
	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 GetOfferTemplateByOrponCountResponse_Error.ProtoReflect.Descriptor instead.
func (*GetOfferTemplateByOrponCountResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{12, 0}
}

func (m *GetOfferTemplateByOrponCountResponse_Error) GetReason() isGetOfferTemplateByOrponCountResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

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

type isGetOfferTemplateByOrponCountResponse_Error_Reason interface {
	isGetOfferTemplateByOrponCountResponse_Error_Reason()
}

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

func (*GetOfferTemplateByOrponCountResponse_Error_Validation) isGetOfferTemplateByOrponCountResponse_Error_Reason() {
}

// Ошибка запроса сохранения шаблона КВ
type PostOfferTemplateResponse_Error struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

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

func (x *PostOfferTemplateResponse_Error) Reset() {
	*x = PostOfferTemplateResponse_Error{}
	if protoimpl.UnsafeEnabled {
		mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[29]
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		ms.StoreMessageInfo(mi)
	}
}

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

func (*PostOfferTemplateResponse_Error) ProtoMessage() {}

func (x *PostOfferTemplateResponse_Error) ProtoReflect() protoreflect.Message {
	mi := &file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[29]
	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 PostOfferTemplateResponse_Error.ProtoReflect.Descriptor instead.
func (*PostOfferTemplateResponse_Error) Descriptor() ([]byte, []int) {
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP(), []int{14, 0}
}

func (m *PostOfferTemplateResponse_Error) GetReason() isPostOfferTemplateResponse_Error_Reason {
	if m != nil {
		return m.Reason
	}
	return nil
}

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

func (x *PostOfferTemplateResponse_Error) GetSaving() *OfferTemplate_SavingError {
	if x, ok := x.GetReason().(*PostOfferTemplateResponse_Error_Saving); ok {
		return x.Saving
	}
	return nil
}

type isPostOfferTemplateResponse_Error_Reason interface {
	isPostOfferTemplateResponse_Error_Reason()
}

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

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

func (*PostOfferTemplateResponse_Error_Validation) isPostOfferTemplateResponse_Error_Reason() {}

func (*PostOfferTemplateResponse_Error_Saving) isPostOfferTemplateResponse_Error_Reason() {}

var File_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto protoreflect.FileDescriptor

var file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDesc = []byte{
	0x0a, 0x44, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x6f,
	0x66, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x76, 0x31,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 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, 0x20,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f,
	0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x6f, 0x72, 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,
	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, 0x3b, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x76, 0x31, 0x2f, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x5f,
	0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x76, 0x31, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe3,
	0x15, 0x0a, 0x0d, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64,
	0x12, 0x5a, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
	0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x53,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52,
	0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 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, 0x3e, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67,
	0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53,
	0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x57, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65, 0x42,
	0x03, 0xe0, 0x41, 0x03, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x6f, 0x0a, 0x13, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74,
	0x79, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x39, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c,
	0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x12, 0x61,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65,
	0x73, 0x12, 0x46, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72,
	0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x42, 0x03, 0xe0,
	0x41, 0x02, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x3e, 0x0a, 0x0a, 0x63, 0x72, 0x65,
	0x61, 0x74, 0x65, 0x64, 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, 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, 0x09, 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, 0x1a, 0xb1, 0x0b, 0x0a, 0x12, 0x41, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73,
	0x12, 0x15, 0x0a, 0x06, 0x72, 0x66, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05,
	0x52, 0x05, 0x72, 0x66, 0x49, 0x64, 0x73, 0x12, 0x6b, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x72,
	0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x46,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69,
	0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61,
	0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x65, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52,
	0x75, 0x6c, 0x65, 0x73, 0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x7b, 0x0a, 0x13, 0x62,
	0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
	0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75,
	0x6c, 0x65, 0x73, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x73, 0x74, 0x65,
	0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x11, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x79,
	0x73, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x51, 0x0a, 0x26, 0x69, 0x73, 0x5f, 0x65,
	0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f,
	0x66, 0x6f, 0x72, 0x5f, 0x73, 0x6d, 0x61, 0x72, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63,
	0x6f, 0x6d, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x21, 0x69, 0x73, 0x45, 0x78, 0x74, 0x65,
	0x72, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46, 0x6f, 0x72, 0x53, 0x6d,
	0x61, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0c, 0x69,
	0x73, 0x5f, 0x63, 0x6d, 0x73, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28,
	0x08, 0x52, 0x0a, 0x69, 0x73, 0x43, 0x6d, 0x73, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x20, 0x0a,
	0x0c, 0x69, 0x73, 0x5f, 0x73, 0x69, 0x70, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x53, 0x69, 0x70, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12,
	0x28, 0x0a, 0x10, 0x69, 0x73, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x6d, 0x6f, 0x6e, 0x69,
	0x74, 0x6f, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x56, 0x69, 0x64,
	0x65, 0x6f, 0x4d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 0x12, 0x8b, 0x01, 0x0a, 0x19, 0x72, 0x6f,
	0x6f, 0x6d, 0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61,
	0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x50, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c,
	0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76,
	0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x16, 0x72, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72,
	0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x85, 0x01, 0x0a, 0x17, 0x6d, 0x6f, 0x62, 0x69,
	0x6c, 0x65, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x70, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x5f, 0x74,
	0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x4e, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52,
	0x75, 0x6c, 0x65, 0x73, 0x2e, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x50, 0x61,
	0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x14, 0x6d, 0x6f, 0x62, 0x69, 0x6c,
	0x65, 0x41, 0x70, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x3b, 0x0a, 0x1a, 0x69, 0x73, 0x5f, 0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61,
	0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0b, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x17, 0x69, 0x73, 0x43, 0x61, 0x6c, 0x6c, 0x46, 0x6f, 0x72, 0x77, 0x61,
	0x72, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e,
	0x69, 0x73, 0x5f, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x5f, 0x77, 0x61, 0x79, 0x18, 0x0c,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x57,
	0x61, 0x79, 0x22, 0x46, 0x0a, 0x0c, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x41, 0x43, 0x54, 0x5f, 0x54,
	0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x07, 0x0a,
	0x03, 0x42, 0x32, 0x42, 0x10, 0x01, 0x12, 0x07, 0x0a, 0x03, 0x42, 0x32, 0x43, 0x10, 0x02, 0x12,
	0x09, 0x0a, 0x05, 0x42, 0x32, 0x42, 0x32, 0x43, 0x10, 0x03, 0x22, 0x53, 0x0a, 0x0a, 0x43, 0x6c,
	0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x17, 0x0a, 0x13, 0x43, 0x4c, 0x49, 0x45,
	0x4e, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10,
	0x00, 0x12, 0x16, 0x0a, 0x12, 0x4d, 0x41, 0x4e, 0x41, 0x47, 0x45, 0x4d, 0x45, 0x4e, 0x54, 0x5f,
	0x43, 0x4f, 0x4d, 0x50, 0x41, 0x4e, 0x59, 0x10, 0x01, 0x12, 0x14, 0x0a, 0x10, 0x49, 0x4e, 0x54,
	0x45, 0x52, 0x43, 0x4f, 0x4d, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x41, 0x4e, 0x59, 0x10, 0x02, 0x22,
	0x53, 0x0a, 0x11, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d,
	0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x1b, 0x42, 0x49, 0x4c, 0x4c, 0x49, 0x4e, 0x47, 0x5f,
	0x53, 0x59, 0x53, 0x54, 0x45, 0x4d, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e,
	0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x41, 0x53, 0x52, 0x5f, 0x4d, 0x52, 0x46,
	0x10, 0x01, 0x12, 0x10, 0x0a, 0x0c, 0x4b, 0x45, 0x59, 0x5f, 0x50, 0x4c, 0x41, 0x54, 0x46, 0x4f,
	0x52, 0x4d, 0x10, 0x02, 0x22, 0x69, 0x0a, 0x16, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x25,
	0x0a, 0x21, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x43, 0x4f,
	0x4e, 0x54, 0x52, 0x41, 0x43, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e,
	0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x4f, 0x4f, 0x4d, 0x5f, 0x44, 0x45,
	0x56, 0x49, 0x43, 0x45, 0x5f, 0x42, 0x32, 0x42, 0x10, 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x52, 0x4f,
	0x4f, 0x4d, 0x5f, 0x44, 0x45, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x42, 0x32, 0x43, 0x10, 0x02, 0x22,
	0x9b, 0x01, 0x0a, 0x14, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x50, 0x61, 0x63,
	0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x23, 0x0a, 0x1f, 0x4d, 0x4f, 0x42, 0x49,
	0x4c, 0x45, 0x5f, 0x41, 0x50, 0x50, 0x5f, 0x50, 0x41, 0x43, 0x4b, 0x41, 0x47, 0x45, 0x5f, 0x54,
	0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x16, 0x0a,
	0x12, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x44, 0x4f, 0x4f, 0x52, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x4b,
	0x45, 0x59, 0x53, 0x10, 0x01, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x50, 0x45, 0x4e, 0x5f, 0x44, 0x4f,
	0x4f, 0x52, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x4b, 0x45, 0x59, 0x53, 0x5f, 0x41, 0x55, 0x44, 0x49,
	0x4f, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x53, 0x10, 0x02, 0x12, 0x22, 0x0a, 0x1e, 0x4f, 0x50, 0x45,
	0x4e, 0x5f, 0x44, 0x4f, 0x4f, 0x52, 0x5f, 0x41, 0x4e, 0x44, 0x5f, 0x4b, 0x45, 0x59, 0x53, 0x5f,
	0x56, 0x49, 0x44, 0x45, 0x4f, 0x5f, 0x43, 0x41, 0x4c, 0x4c, 0x53, 0x10, 0x03, 0x1a, 0xfc, 0x01,
	0x0a, 0x04, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x1c, 0x0a, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69,
	0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x06, 0x70, 0x6c,
	0x61, 0x6e, 0x49, 0x64, 0x12, 0x3c, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x0e, 0x32, 0x23, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66,
	0x65, 0x72, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x12, 0x37, 0x0a, 0x18, 0x69, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x5f,
	0x61, 0x75, 0x74, 0x6f, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x15, 0x69, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x41, 0x75,
	0x74, 0x6f, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x69,
	0x73, 0x5f, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x5f, 0x77, 0x61, 0x79, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x0c, 0x69, 0x73, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c, 0x57, 0x61,
	0x79, 0x12, 0x39, 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x05,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x52, 0x08, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x55, 0x72, 0x6c, 0x1a, 0x8a, 0x02, 0x0a,
	0x0b, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x59, 0x0a, 0x08,
	0x63, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72, 0x72,
	0x6f, 0x72, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x48, 0x00, 0x52, 0x08, 0x63,
	0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x12, 0x75, 0x0a, 0x12, 0x64, 0x75, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x44, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66,
	0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69,
	0x6e, 0x67, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x2e, 0x44, 0x75, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74,
	0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x11, 0x64, 0x75, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x1a, 0x0a,
	0x0a, 0x08, 0x43, 0x6f, 0x6e, 0x66, 0x6c, 0x69, 0x63, 0x74, 0x1a, 0x13, 0x0a, 0x11, 0x44, 0x75,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x65, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42,
	0x08, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x78, 0x0a, 0x0b, 0x53, 0x65, 0x72,
	0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x14, 0x53, 0x45, 0x52, 0x56,
	0x49, 0x43, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e,
	0x10, 0x00, 0x12, 0x0c, 0x0a, 0x08, 0x49, 0x4e, 0x54, 0x45, 0x52, 0x43, 0x4f, 0x4d, 0x10, 0x01,
	0x12, 0x0b, 0x0a, 0x07, 0x43, 0x41, 0x4d, 0x45, 0x52, 0x41, 0x53, 0x10, 0x02, 0x12, 0x0d, 0x0a,
	0x09, 0x54, 0x45, 0x4c, 0x45, 0x4d, 0x45, 0x54, 0x52, 0x59, 0x10, 0x03, 0x12, 0x18, 0x0a, 0x14,
	0x41, 0x43, 0x43, 0x45, 0x53, 0x53, 0x5f, 0x43, 0x4f, 0x4e, 0x54, 0x52, 0x4f, 0x4c, 0x5f, 0x50,
	0x41, 0x4e, 0x45, 0x4c, 0x10, 0x04, 0x12, 0x0b, 0x0a, 0x07, 0x42, 0x41, 0x52, 0x52, 0x49, 0x45,
	0x52, 0x10, 0x05, 0x22, 0x3f, 0x0a, 0x0a, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x54, 0x59, 0x50, 0x45,
	0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x41, 0x43,
	0x54, 0x49, 0x56, 0x45, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x41, 0x52, 0x43, 0x48, 0x49, 0x56,
	0x45, 0x44, 0x10, 0x02, 0x22, 0x98, 0x0d, 0x0a, 0x13, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x54, 0x0a, 0x0c,
	0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03,
	0x28, 0x0e, 0x32, 0x31, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66,
	0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x54, 0x79, 0x70,
	0x65, 0x73, 0x12, 0x57, 0x0a, 0x0d, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x32, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x73,
	0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x72,
	0x66, 0x5f, 0x69, 0x64, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x05, 0x72, 0x66, 0x49,
	0x64, 0x73, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x1c, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x04,
	0x74, 0x65, 0x78, 0x74, 0x12, 0x93, 0x01, 0x0a, 0x22, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x63, 0x6f, 0x6e,
	0x74, 0x72, 0x61, 0x63, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28,
	0x0e, 0x32, 0x46, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65,
	0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63,
	0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x43, 0x6f, 0x6e,
	0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x1f, 0x61, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x43, 0x6f, 0x6e,
	0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x8d, 0x01, 0x0a, 0x20, 0x61,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x75, 0x6c,
	0x65, 0x73, 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18,
	0x06, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x44, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e,
	0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73,
	0x2e, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x1d, 0x61, 0x70, 0x70,
	0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x43,
	0x6c, 0x69, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0xa3, 0x01, 0x0a, 0x28, 0x61,
	0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x75, 0x6c,
	0x65, 0x73, 0x5f, 0x62, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x79, 0x73, 0x74, 0x65,
	0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x4b, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c,
	0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x42, 0x69, 0x6c, 0x6c, 0x69, 0x6e, 0x67,
	0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x52, 0x24, 0x61, 0x70, 0x70, 0x6c,
	0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x42, 0x69,
	0x6c, 0x6c, 0x69, 0x6e, 0x67, 0x53, 0x79, 0x73, 0x74, 0x65, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x73,
	0x12, 0x6d, 0x0a, 0x26, 0x69, 0x73, 0x5f, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f,
	0x70, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x66, 0x6f, 0x72, 0x5f, 0x73, 0x6d, 0x61, 0x72,
	0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 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, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x21, 0x69, 0x73,
	0x45, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x50, 0x61, 0x79, 0x6d, 0x65, 0x6e, 0x74, 0x46,
	0x6f, 0x72, 0x53, 0x6d, 0x61, 0x72, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x63, 0x6f, 0x6d, 0x12,
	0x62, 0x0a, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
	0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x69, 0x73, 0x5f, 0x63, 0x6d, 0x73, 0x5f, 0x70, 0x68,
	0x6f, 0x6e, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f, 0x6c,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69,
	0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x49, 0x73, 0x43, 0x6d, 0x73, 0x50, 0x68,
	0x6f, 0x6e, 0x65, 0x12, 0x62, 0x0a, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69,
	0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x69, 0x73, 0x5f, 0x73, 0x69,
	0x70, 0x5f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 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,
	0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x1c, 0x61, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x49, 0x73, 0x53,
	0x69, 0x70, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x6a, 0x0a, 0x24, 0x61, 0x70, 0x70, 0x6c, 0x69,
	0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x69,
	0x73, 0x5f, 0x76, 0x69, 0x64, 0x65, 0x6f, 0x5f, 0x6d, 0x6f, 0x6e, 0x69, 0x74, 0x6f, 0x72, 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, 0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75,
	0x65, 0x52, 0x20, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79,
	0x52, 0x75, 0x6c, 0x65, 0x73, 0x49, 0x73, 0x56, 0x69, 0x64, 0x65, 0x6f, 0x4d, 0x6f, 0x6e, 0x69,
	0x74, 0x6f, 0x72, 0x12, 0xb3, 0x01, 0x0a, 0x2e, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62,
	0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x75, 0x6c, 0x65, 0x73, 0x5f, 0x72, 0x6f, 0x6f, 0x6d,
	0x5f, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x50, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69,
	0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69,
	0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x52, 0x29,
	0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c,
	0x65, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x74,
	0x72, 0x61, 0x63, 0x74, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0xad, 0x01, 0x0a, 0x2c, 0x61, 0x70,
	0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x5f, 0x72, 0x75, 0x6c, 0x65,
	0x73, 0x5f, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x5f, 0x61, 0x70, 0x70, 0x5f, 0x70, 0x61, 0x63,
	0x6b, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x0e,
	0x32, 0x4e, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72,
	0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61,
	0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52, 0x75, 0x6c, 0x65, 0x73, 0x2e, 0x4d, 0x6f, 0x62, 0x69,
	0x6c, 0x65, 0x41, 0x70, 0x70, 0x50, 0x61, 0x63, 0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x52, 0x27, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x79, 0x52,
	0x75, 0x6c, 0x65, 0x73, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x41, 0x70, 0x70, 0x50, 0x61, 0x63,
	0x6b, 0x61, 0x67, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x57, 0x0a, 0x1a, 0x69, 0x73, 0x5f,
	0x63, 0x61, 0x6c, 0x6c, 0x5f, 0x66, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x5f,
	0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e,
	0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e,
	0x42, 0x6f, 0x6f, 0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x17, 0x69, 0x73, 0x43, 0x61, 0x6c,
	0x6c, 0x46, 0x6f, 0x72, 0x77, 0x61, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x45, 0x6e, 0x61, 0x62, 0x6c,
	0x65, 0x64, 0x12, 0x40, 0x0a, 0x0e, 0x69, 0x73, 0x5f, 0x64, 0x69, 0x67, 0x69, 0x74, 0x61, 0x6c,
	0x5f, 0x77, 0x61, 0x79, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x42, 0x6f, 0x6f,
	0x6c, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x0c, 0x69, 0x73, 0x44, 0x69, 0x67, 0x69, 0x74, 0x61,
	0x6c, 0x57, 0x61, 0x79, 0x12, 0x19, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x6e, 0x5f, 0x69, 0x64, 0x73,
	0x18, 0x10, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x70, 0x6c, 0x61, 0x6e, 0x49, 0x64, 0x73, 0x22,
	0x89, 0x03, 0x0a, 0x13, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x12, 0x5c, 0x0a, 0x0d, 0x6f, 0x72, 0x64, 0x65, 0x72,
	0x5f, 0x62, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x38,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 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, 0x61, 0x0a, 0x0e, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x3a, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 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, 0x43, 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, 0x0e, 0x0a, 0x0a, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x5f, 0x41, 0x54, 0x10, 0x01,
	0x12, 0x09, 0x0a, 0x05, 0x54, 0x49, 0x54, 0x4c, 0x45, 0x10, 0x02, 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, 0x2e, 0x0a, 0x17, 0x47,
	0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52,
	0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0x60, 0x0a, 0x18, 0x47,
	0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e,
	0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48, 0x00, 0x52,
	0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22, 0xb9, 0x01,
	0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
	0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44, 0x0a,
	0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69, 0x6c,
	0x74, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x06, 0x70, 0x61, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66,
	0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 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, 0x98, 0x02, 0x0a, 0x1c, 0x47, 0x65,
	0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x69,
	0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61,
	0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
	0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x53, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f,
	0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
	0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
	0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45,
	0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x5d, 0x0a,
	0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4a, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 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, 0x3f, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72,
	0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x79, 0x4f, 0x72, 0x70, 0x6f, 0x6e, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x05, 0x6f, 0x72,
	0x70, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x05,
	0x6f, 0x72, 0x70, 0x6f, 0x6e, 0x22, 0xa6, 0x02, 0x0a, 0x23, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66,
	0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x79, 0x4f, 0x72, 0x70, 0x6f,
	0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a,
	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x5a, 0x0a, 0x05, 0x65,
	0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x42, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x79, 0x4f, 0x72, 0x70, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00,
	0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x5d, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x12, 0x4a, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x64,
	0x0a, 0x1c, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
	0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x44,
	0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x52, 0x06, 0x66, 0x69,
	0x6c, 0x74, 0x65, 0x72, 0x22, 0xf2, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65,
	0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 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, 0x12, 0x54, 0x0a, 0x05,
	0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3c, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f,
	0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72,
	0x6f, 0x72, 0x1a, 0x5d, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x4a, 0x0a, 0x0a, 0x76,
	0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x28, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x40, 0x0a, 0x23, 0x47, 0x65, 0x74,
	0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x79, 0x4f,
	0x72, 0x70, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74,
	0x12, 0x19, 0x0a, 0x05, 0x6f, 0x72, 0x70, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x42,
	0x03, 0xe0, 0x41, 0x02, 0x52, 0x05, 0x6f, 0x72, 0x70, 0x6f, 0x6e, 0x22, 0x80, 0x02, 0x0a, 0x24,
	0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x42, 0x79, 0x4f, 0x72, 0x70, 0x6f, 0x6e, 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, 0x12, 0x5b, 0x0a, 0x05, 0x65, 0x72,
	0x72, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x43, 0x2e, 0x6b, 0x65, 0x79, 0x61,
	0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x42, 0x79, 0x4f, 0x72, 0x70, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x48, 0x00,
	0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0x5d, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x12, 0x4a, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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, 0x5b,
	0x0a, 0x18, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61,
	0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
	0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe1, 0x02, 0x0a, 0x19,
	0x50, 0x6f, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74,
	0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
	0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x48,
	0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x50, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73,
	0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31,
	0x2e, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
	0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72,
	0x48, 0x00, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x1a, 0xab, 0x01, 0x0a, 0x05, 0x45, 0x72,
	0x72, 0x6f, 0x72, 0x12, 0x4a, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 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,
	0x4c, 0x0a, 0x06, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x32, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2e, 0x53, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x45, 0x72,
	0x72, 0x6f, 0x72, 0x48, 0x00, 0x52, 0x06, 0x73, 0x61, 0x76, 0x69, 0x6e, 0x67, 0x42, 0x08, 0x0a,
	0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x22,
	0x31, 0x0a, 0x1a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a,
	0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02,
	0x69, 0x64, 0x22, 0x1d, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x65,
	0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x36, 0x0a, 0x1f, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x12, 0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x02, 0x69, 0x64, 0x22, 0x68, 0x0a, 0x20, 0x50, 0x6f, 0x73,
	0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65,
	0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a,
	0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x48, 0x00, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x42, 0x06, 0x0a, 0x04, 0x74,
	0x79, 0x70, 0x65, 0x22, 0x49, 0x0a, 0x0f, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01,
	0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12,
	0x1d, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09,
	0x42, 0x03, 0xe0, 0x41, 0x02, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0xab,
	0x0c, 0x0a, 0x14, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xa9, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4f,
	0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0x30, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65,
	0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73,
	0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2a, 0x12, 0x28, 0x2f, 0x73, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f,
	0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2f, 0x7b,
	0x69, 0x64, 0x7d, 0x12, 0xb7, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72,
	0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x34, 0x2e, 0x6b,
	0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54,
	0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65,
	0x73, 0x74, 0x1a, 0x35, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74,
	0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x4c, 0x69, 0x73,
	0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4, 0x93, 0x02,
	0x2a, 0x12, 0x28, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x30, 0x01, 0x12, 0xdd, 0x01,
	0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
	0x74, 0x65, 0x42, 0x79, 0x4f, 0x72, 0x70, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x3b, 0x2e,
	0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72,
	0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x79, 0x4f, 0x72, 0x70, 0x6f, 0x6e, 0x4c,
	0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3c, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x79, 0x4f, 0x72, 0x70, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b,
	0x12, 0x39, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2f,
	0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x5f, 0x6f, 0x72, 0x70, 0x6f, 0x6e, 0x2f, 0x7b,
	0x6f, 0x72, 0x70, 0x6f, 0x6e, 0x7d, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x30, 0x01, 0x12, 0xb9, 0x01,
	0x0a, 0x15, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
	0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x35, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76,
	0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61,
	0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36,
	0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65,
	0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52, 0x65,
	0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x29,
	0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x70,
	0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0xdf, 0x01, 0x0a, 0x1c, 0x47, 0x65,
	0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x79,
	0x4f, 0x72, 0x70, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d,
	0x70, 0x6c, 0x61, 0x74, 0x65, 0x42, 0x79, 0x4f, 0x72, 0x70, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e,
	0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x3d, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70,
	0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e,
	0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x42, 0x79, 0x4f, 0x72, 0x70, 0x6f, 0x6e, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x52,
	0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12,
	0x3a, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61,
	0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70,
	0x6c, 0x61, 0x74, 0x65, 0x5f, 0x62, 0x79, 0x5f, 0x6f, 0x72, 0x70, 0x6f, 0x6e, 0x2f, 0x7b, 0x6f,
	0x72, 0x70, 0x6f, 0x6e, 0x7d, 0x2f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0xaa, 0x01, 0x0a, 0x11,
	0x50, 0x6f, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74,
	0x65, 0x12, 0x31, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74,
	0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50,
	0x6f, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28,
	0x3a, 0x01, 0x2a, 0x22, 0x23, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f,
	0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x12, 0xb2, 0x01, 0x0a, 0x13, 0x44, 0x65, 0x6c,
	0x65, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x12, 0x33, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63,
	0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74,
	0x65, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65,
	0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e,
	0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e,
	0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x30, 0x82, 0xd3, 0xe4,
	0x93, 0x02, 0x2a, 0x2a, 0x28, 0x2f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f,
	0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2f, 0x7b, 0x69, 0x64, 0x7d, 0x12, 0xcc, 0x01,
	0x0a, 0x18, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c,
	0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x12, 0x38, 0x2e, 0x6b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65,
	0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x71,
	0x75, 0x65, 0x73, 0x74, 0x1a, 0x39, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73,
	0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x2e, 0x50,
	0x6f, 0x73, 0x74, 0x4f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65,
	0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22,
	0x3b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x35, 0x3a, 0x01, 0x2a, 0x22, 0x30, 0x2f, 0x73, 0x75, 0x62,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x76, 0x31,
	0x2f, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x5f, 0x74, 0x65, 0x6d, 0x70, 0x6c, 0x61, 0x74, 0x65, 0x2f,
	0x7b, 0x69, 0x64, 0x7d, 0x2f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0xc4, 0x01, 0x0a,
	0x1a, 0x72, 0x75, 0x2e, 0x6b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x75, 0x62, 0x73,
	0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x76, 0x31, 0x42, 0x1a, 0x4b, 0x65, 0x79,
	0x61, 0x70, 0x69, 0x73, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x56, 0x31, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x48, 0x03, 0x50, 0x00, 0x5a, 0x18, 0x2f, 0x6b, 0x65,
	0x79, 0x61, 0x70, 0x69, 0x73, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x5f, 0x76, 0x31, 0xd8, 0x01, 0x01, 0xf8, 0x01, 0x01, 0xa2, 0x02, 0x15, 0x4b, 0x45,
	0x59, 0x41, 0x50, 0x49, 0x53, 0x53, 0x55, 0x42, 0x53, 0x43, 0x52, 0x49, 0x50, 0x54, 0x49, 0x4f,
	0x4e, 0x56, 0x31, 0xaa, 0x02, 0x17, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x75,
	0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17,
	0x4b, 0x65, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x5c, 0x56, 0x31, 0xea, 0x02, 0x19, 0x4b, 0x65, 0x79, 0x61, 0x70, 0x69,
	0x73, 0x3a, 0x3a, 0x53, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x3a,
	0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescOnce sync.Once
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescData = file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDesc
)

func file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescGZIP() []byte {
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescOnce.Do(func() {
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescData = protoimpl.X.CompressGZIP(file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescData)
	})
	return file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDescData
}

var file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes = make([]protoimpl.EnumInfo, 9)
var file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes = make([]protoimpl.MessageInfo, 30)
var file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_goTypes = []interface{}{
	(OfferTemplate_ServiceType)(0),                               // 0: keyapis.subscription.v1.OfferTemplate.ServiceType
	(OfferTemplate_StatusType)(0),                                // 1: keyapis.subscription.v1.OfferTemplate.StatusType
	(OfferTemplate_ApplicabilityRules_ContractType)(0),           // 2: keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.ContractType
	(OfferTemplate_ApplicabilityRules_ClientType)(0),             // 3: keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.ClientType
	(OfferTemplate_ApplicabilityRules_BillingSystemType)(0),      // 4: keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.BillingSystemType
	(OfferTemplate_ApplicabilityRules_RoomDeviceContractType)(0), // 5: keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.RoomDeviceContractType
	(OfferTemplate_ApplicabilityRules_MobileAppPackageType)(0),   // 6: keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.MobileAppPackageType
	(OfferTemplatePaging_OrderByType)(0),                         // 7: keyapis.subscription.v1.OfferTemplatePaging.OrderByType
	(OfferTemplatePaging_DirectionType)(0),                       // 8: keyapis.subscription.v1.OfferTemplatePaging.DirectionType
	(*OfferTemplate)(nil),                                        // 9: keyapis.subscription.v1.OfferTemplate
	(*OfferTemplateFilter)(nil),                                  // 10: keyapis.subscription.v1.OfferTemplateFilter
	(*OfferTemplatePaging)(nil),                                  // 11: keyapis.subscription.v1.OfferTemplatePaging
	(*GetOfferTemplateRequest)(nil),                              // 12: keyapis.subscription.v1.GetOfferTemplateRequest
	(*GetOfferTemplateResponse)(nil),                             // 13: keyapis.subscription.v1.GetOfferTemplateResponse
	(*GetOfferTemplateListRequest)(nil),                          // 14: keyapis.subscription.v1.GetOfferTemplateListRequest
	(*GetOfferTemplateListResponse)(nil),                         // 15: keyapis.subscription.v1.GetOfferTemplateListResponse
	(*GetOfferTemplateByOrponListRequest)(nil),                   // 16: keyapis.subscription.v1.GetOfferTemplateByOrponListRequest
	(*GetOfferTemplateByOrponListResponse)(nil),                  // 17: keyapis.subscription.v1.GetOfferTemplateByOrponListResponse
	(*GetOfferTemplateCountRequest)(nil),                         // 18: keyapis.subscription.v1.GetOfferTemplateCountRequest
	(*GetOfferTemplateCountResponse)(nil),                        // 19: keyapis.subscription.v1.GetOfferTemplateCountResponse
	(*GetOfferTemplateByOrponCountRequest)(nil),                  // 20: keyapis.subscription.v1.GetOfferTemplateByOrponCountRequest
	(*GetOfferTemplateByOrponCountResponse)(nil),                 // 21: keyapis.subscription.v1.GetOfferTemplateByOrponCountResponse
	(*PostOfferTemplateRequest)(nil),                             // 22: keyapis.subscription.v1.PostOfferTemplateRequest
	(*PostOfferTemplateResponse)(nil),                            // 23: keyapis.subscription.v1.PostOfferTemplateResponse
	(*DeleteOfferTemplateRequest)(nil),                           // 24: keyapis.subscription.v1.DeleteOfferTemplateRequest
	(*DeleteOfferTemplateResponse)(nil),                          // 25: keyapis.subscription.v1.DeleteOfferTemplateResponse
	(*PostOfferTemplateRestoreRequest)(nil),                      // 26: keyapis.subscription.v1.PostOfferTemplateRestoreRequest
	(*PostOfferTemplateRestoreResponse)(nil),                     // 27: keyapis.subscription.v1.PostOfferTemplateRestoreResponse
	(*ValidationError)(nil),                                      // 28: keyapis.subscription.v1.ValidationError
	(*OfferTemplate_ApplicabilityRules)(nil),                     // 29: keyapis.subscription.v1.OfferTemplate.ApplicabilityRules
	(*OfferTemplate_Item)(nil),                                   // 30: keyapis.subscription.v1.OfferTemplate.Item
	(*OfferTemplate_SavingError)(nil),                            // 31: keyapis.subscription.v1.OfferTemplate.SavingError
	(*OfferTemplate_SavingError_Conflict)(nil),                   // 32: keyapis.subscription.v1.OfferTemplate.SavingError.Conflict
	(*OfferTemplate_SavingError_DuplicateTemplate)(nil),          // 33: keyapis.subscription.v1.OfferTemplate.SavingError.DuplicateTemplate
	(*GetOfferTemplateListResponse_Error)(nil),                   // 34: keyapis.subscription.v1.GetOfferTemplateListResponse.Error
	(*GetOfferTemplateByOrponListResponse_Error)(nil),            // 35: keyapis.subscription.v1.GetOfferTemplateByOrponListResponse.Error
	(*GetOfferTemplateCountResponse_Error)(nil),                  // 36: keyapis.subscription.v1.GetOfferTemplateCountResponse.Error
	(*GetOfferTemplateByOrponCountResponse_Error)(nil),           // 37: keyapis.subscription.v1.GetOfferTemplateByOrponCountResponse.Error
	(*PostOfferTemplateResponse_Error)(nil),                      // 38: keyapis.subscription.v1.PostOfferTemplateResponse.Error
	(*wrapperspb.StringValue)(nil),                               // 39: google.protobuf.StringValue
	(*timestamppb.Timestamp)(nil),                                // 40: google.protobuf.Timestamp
	(*wrapperspb.BoolValue)(nil),                                 // 41: google.protobuf.BoolValue
	(Offer_Type)(0),                                              // 42: keyapis.subscription.v1.Offer.Type
}
var file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_depIdxs = []int32{
	0,  // 0: keyapis.subscription.v1.OfferTemplate.service_type:type_name -> keyapis.subscription.v1.OfferTemplate.ServiceType
	39, // 1: keyapis.subscription.v1.OfferTemplate.description:type_name -> google.protobuf.StringValue
	1,  // 2: keyapis.subscription.v1.OfferTemplate.status_type:type_name -> keyapis.subscription.v1.OfferTemplate.StatusType
	29, // 3: keyapis.subscription.v1.OfferTemplate.applicability_rules:type_name -> keyapis.subscription.v1.OfferTemplate.ApplicabilityRules
	30, // 4: keyapis.subscription.v1.OfferTemplate.items:type_name -> keyapis.subscription.v1.OfferTemplate.Item
	40, // 5: keyapis.subscription.v1.OfferTemplate.created_at:type_name -> google.protobuf.Timestamp
	40, // 6: keyapis.subscription.v1.OfferTemplate.updated_at:type_name -> google.protobuf.Timestamp
	1,  // 7: keyapis.subscription.v1.OfferTemplateFilter.status_types:type_name -> keyapis.subscription.v1.OfferTemplate.StatusType
	0,  // 8: keyapis.subscription.v1.OfferTemplateFilter.service_types:type_name -> keyapis.subscription.v1.OfferTemplate.ServiceType
	39, // 9: keyapis.subscription.v1.OfferTemplateFilter.text:type_name -> google.protobuf.StringValue
	2,  // 10: keyapis.subscription.v1.OfferTemplateFilter.applicability_rules_contract_types:type_name -> keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.ContractType
	3,  // 11: keyapis.subscription.v1.OfferTemplateFilter.applicability_rules_client_types:type_name -> keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.ClientType
	4,  // 12: keyapis.subscription.v1.OfferTemplateFilter.applicability_rules_billing_system_types:type_name -> keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.BillingSystemType
	41, // 13: keyapis.subscription.v1.OfferTemplateFilter.is_external_payment_for_smart_intercom:type_name -> google.protobuf.BoolValue
	41, // 14: keyapis.subscription.v1.OfferTemplateFilter.applicability_rules_is_cms_phone:type_name -> google.protobuf.BoolValue
	41, // 15: keyapis.subscription.v1.OfferTemplateFilter.applicability_rules_is_sip_phone:type_name -> google.protobuf.BoolValue
	41, // 16: keyapis.subscription.v1.OfferTemplateFilter.applicability_rules_is_video_monitor:type_name -> google.protobuf.BoolValue
	5,  // 17: keyapis.subscription.v1.OfferTemplateFilter.applicability_rules_room_device_contract_types:type_name -> keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.RoomDeviceContractType
	6,  // 18: keyapis.subscription.v1.OfferTemplateFilter.applicability_rules_mobile_app_package_types:type_name -> keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.MobileAppPackageType
	41, // 19: keyapis.subscription.v1.OfferTemplateFilter.is_call_forwarding_enabled:type_name -> google.protobuf.BoolValue
	41, // 20: keyapis.subscription.v1.OfferTemplateFilter.is_digital_way:type_name -> google.protobuf.BoolValue
	7,  // 21: keyapis.subscription.v1.OfferTemplatePaging.order_by_type:type_name -> keyapis.subscription.v1.OfferTemplatePaging.OrderByType
	8,  // 22: keyapis.subscription.v1.OfferTemplatePaging.direction_type:type_name -> keyapis.subscription.v1.OfferTemplatePaging.DirectionType
	9,  // 23: keyapis.subscription.v1.GetOfferTemplateResponse.data:type_name -> keyapis.subscription.v1.OfferTemplate
	10, // 24: keyapis.subscription.v1.GetOfferTemplateListRequest.filter:type_name -> keyapis.subscription.v1.OfferTemplateFilter
	11, // 25: keyapis.subscription.v1.GetOfferTemplateListRequest.paging:type_name -> keyapis.subscription.v1.OfferTemplatePaging
	9,  // 26: keyapis.subscription.v1.GetOfferTemplateListResponse.data:type_name -> keyapis.subscription.v1.OfferTemplate
	34, // 27: keyapis.subscription.v1.GetOfferTemplateListResponse.error:type_name -> keyapis.subscription.v1.GetOfferTemplateListResponse.Error
	9,  // 28: keyapis.subscription.v1.GetOfferTemplateByOrponListResponse.data:type_name -> keyapis.subscription.v1.OfferTemplate
	35, // 29: keyapis.subscription.v1.GetOfferTemplateByOrponListResponse.error:type_name -> keyapis.subscription.v1.GetOfferTemplateByOrponListResponse.Error
	10, // 30: keyapis.subscription.v1.GetOfferTemplateCountRequest.filter:type_name -> keyapis.subscription.v1.OfferTemplateFilter
	36, // 31: keyapis.subscription.v1.GetOfferTemplateCountResponse.error:type_name -> keyapis.subscription.v1.GetOfferTemplateCountResponse.Error
	37, // 32: keyapis.subscription.v1.GetOfferTemplateByOrponCountResponse.error:type_name -> keyapis.subscription.v1.GetOfferTemplateByOrponCountResponse.Error
	9,  // 33: keyapis.subscription.v1.PostOfferTemplateRequest.data:type_name -> keyapis.subscription.v1.OfferTemplate
	9,  // 34: keyapis.subscription.v1.PostOfferTemplateResponse.data:type_name -> keyapis.subscription.v1.OfferTemplate
	38, // 35: keyapis.subscription.v1.PostOfferTemplateResponse.error:type_name -> keyapis.subscription.v1.PostOfferTemplateResponse.Error
	9,  // 36: keyapis.subscription.v1.PostOfferTemplateRestoreResponse.data:type_name -> keyapis.subscription.v1.OfferTemplate
	2,  // 37: keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.contract_type:type_name -> keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.ContractType
	3,  // 38: keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.client_type:type_name -> keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.ClientType
	4,  // 39: keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.billing_system_type:type_name -> keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.BillingSystemType
	5,  // 40: keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.room_device_contract_type:type_name -> keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.RoomDeviceContractType
	6,  // 41: keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.mobile_app_package_type:type_name -> keyapis.subscription.v1.OfferTemplate.ApplicabilityRules.MobileAppPackageType
	42, // 42: keyapis.subscription.v1.OfferTemplate.Item.type:type_name -> keyapis.subscription.v1.Offer.Type
	39, // 43: keyapis.subscription.v1.OfferTemplate.Item.offer_url:type_name -> google.protobuf.StringValue
	32, // 44: keyapis.subscription.v1.OfferTemplate.SavingError.conflict:type_name -> keyapis.subscription.v1.OfferTemplate.SavingError.Conflict
	33, // 45: keyapis.subscription.v1.OfferTemplate.SavingError.duplicate_template:type_name -> keyapis.subscription.v1.OfferTemplate.SavingError.DuplicateTemplate
	28, // 46: keyapis.subscription.v1.GetOfferTemplateListResponse.Error.validation:type_name -> keyapis.subscription.v1.ValidationError
	28, // 47: keyapis.subscription.v1.GetOfferTemplateByOrponListResponse.Error.validation:type_name -> keyapis.subscription.v1.ValidationError
	28, // 48: keyapis.subscription.v1.GetOfferTemplateCountResponse.Error.validation:type_name -> keyapis.subscription.v1.ValidationError
	28, // 49: keyapis.subscription.v1.GetOfferTemplateByOrponCountResponse.Error.validation:type_name -> keyapis.subscription.v1.ValidationError
	28, // 50: keyapis.subscription.v1.PostOfferTemplateResponse.Error.validation:type_name -> keyapis.subscription.v1.ValidationError
	31, // 51: keyapis.subscription.v1.PostOfferTemplateResponse.Error.saving:type_name -> keyapis.subscription.v1.OfferTemplate.SavingError
	12, // 52: keyapis.subscription.v1.OfferTemplateService.GetOfferTemplate:input_type -> keyapis.subscription.v1.GetOfferTemplateRequest
	14, // 53: keyapis.subscription.v1.OfferTemplateService.GetOfferTemplateList:input_type -> keyapis.subscription.v1.GetOfferTemplateListRequest
	16, // 54: keyapis.subscription.v1.OfferTemplateService.GetOfferTemplateByOrponList:input_type -> keyapis.subscription.v1.GetOfferTemplateByOrponListRequest
	18, // 55: keyapis.subscription.v1.OfferTemplateService.GetOfferTemplateCount:input_type -> keyapis.subscription.v1.GetOfferTemplateCountRequest
	20, // 56: keyapis.subscription.v1.OfferTemplateService.GetOfferTemplateByOrponCount:input_type -> keyapis.subscription.v1.GetOfferTemplateByOrponCountRequest
	22, // 57: keyapis.subscription.v1.OfferTemplateService.PostOfferTemplate:input_type -> keyapis.subscription.v1.PostOfferTemplateRequest
	24, // 58: keyapis.subscription.v1.OfferTemplateService.DeleteOfferTemplate:input_type -> keyapis.subscription.v1.DeleteOfferTemplateRequest
	26, // 59: keyapis.subscription.v1.OfferTemplateService.PostOfferTemplateRestore:input_type -> keyapis.subscription.v1.PostOfferTemplateRestoreRequest
	13, // 60: keyapis.subscription.v1.OfferTemplateService.GetOfferTemplate:output_type -> keyapis.subscription.v1.GetOfferTemplateResponse
	15, // 61: keyapis.subscription.v1.OfferTemplateService.GetOfferTemplateList:output_type -> keyapis.subscription.v1.GetOfferTemplateListResponse
	17, // 62: keyapis.subscription.v1.OfferTemplateService.GetOfferTemplateByOrponList:output_type -> keyapis.subscription.v1.GetOfferTemplateByOrponListResponse
	19, // 63: keyapis.subscription.v1.OfferTemplateService.GetOfferTemplateCount:output_type -> keyapis.subscription.v1.GetOfferTemplateCountResponse
	21, // 64: keyapis.subscription.v1.OfferTemplateService.GetOfferTemplateByOrponCount:output_type -> keyapis.subscription.v1.GetOfferTemplateByOrponCountResponse
	23, // 65: keyapis.subscription.v1.OfferTemplateService.PostOfferTemplate:output_type -> keyapis.subscription.v1.PostOfferTemplateResponse
	25, // 66: keyapis.subscription.v1.OfferTemplateService.DeleteOfferTemplate:output_type -> keyapis.subscription.v1.DeleteOfferTemplateResponse
	27, // 67: keyapis.subscription.v1.OfferTemplateService.PostOfferTemplateRestore:output_type -> keyapis.subscription.v1.PostOfferTemplateRestoreResponse
	60, // [60:68] is the sub-list for method output_type
	52, // [52:60] is the sub-list for method input_type
	52, // [52:52] is the sub-list for extension type_name
	52, // [52:52] is the sub-list for extension extendee
	0,  // [0:52] is the sub-list for field type_name
}

func init() { file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_init() }
func file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_init() {
	if File_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto != nil {
		return
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_v1_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OfferTemplate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OfferTemplateFilter); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OfferTemplatePaging); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateByOrponListRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateByOrponListResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateCountRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateCountResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateByOrponCountRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateByOrponCountResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostOfferTemplateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostOfferTemplateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteOfferTemplateRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*DeleteOfferTemplateResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostOfferTemplateRestoreRequest); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostOfferTemplateRestoreResponse); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ValidationError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OfferTemplate_ApplicabilityRules); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OfferTemplate_Item); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OfferTemplate_SavingError); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OfferTemplate_SavingError_Conflict); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*OfferTemplate_SavingError_DuplicateTemplate); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateListResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateByOrponListResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateCountResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*GetOfferTemplateByOrponCountResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*PostOfferTemplateResponse_Error); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[4].OneofWrappers = []interface{}{
		(*GetOfferTemplateResponse_Data)(nil),
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[5].OneofWrappers = []interface{}{
		(*GetOfferTemplateListRequest_Paging)(nil),
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[6].OneofWrappers = []interface{}{
		(*GetOfferTemplateListResponse_Data)(nil),
		(*GetOfferTemplateListResponse_Error_)(nil),
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[8].OneofWrappers = []interface{}{
		(*GetOfferTemplateByOrponListResponse_Data)(nil),
		(*GetOfferTemplateByOrponListResponse_Error_)(nil),
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[10].OneofWrappers = []interface{}{
		(*GetOfferTemplateCountResponse_Data)(nil),
		(*GetOfferTemplateCountResponse_Error_)(nil),
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[12].OneofWrappers = []interface{}{
		(*GetOfferTemplateByOrponCountResponse_Data)(nil),
		(*GetOfferTemplateByOrponCountResponse_Error_)(nil),
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[14].OneofWrappers = []interface{}{
		(*PostOfferTemplateResponse_Data)(nil),
		(*PostOfferTemplateResponse_Error_)(nil),
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[18].OneofWrappers = []interface{}{
		(*PostOfferTemplateRestoreResponse_Data)(nil),
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[22].OneofWrappers = []interface{}{
		(*OfferTemplate_SavingError_Conflict_)(nil),
		(*OfferTemplate_SavingError_DuplicateTemplate_)(nil),
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[25].OneofWrappers = []interface{}{
		(*GetOfferTemplateListResponse_Error_Validation)(nil),
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[26].OneofWrappers = []interface{}{
		(*GetOfferTemplateByOrponListResponse_Error_Validation)(nil),
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[27].OneofWrappers = []interface{}{
		(*GetOfferTemplateCountResponse_Error_Validation)(nil),
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[28].OneofWrappers = []interface{}{
		(*GetOfferTemplateByOrponCountResponse_Error_Validation)(nil),
	}
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes[29].OneofWrappers = []interface{}{
		(*PostOfferTemplateResponse_Error_Validation)(nil),
		(*PostOfferTemplateResponse_Error_Saving)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDesc,
			NumEnums:      9,
			NumMessages:   30,
			NumExtensions: 0,
			NumServices:   1,
		},
		GoTypes:           file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_goTypes,
		DependencyIndexes: file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_depIdxs,
		EnumInfos:         file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_enumTypes,
		MessageInfos:      file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_msgTypes,
	}.Build()
	File_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto = out.File
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_rawDesc = nil
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_goTypes = nil
	file_keyapis_subscription_v1_keyapis_subscription_offer_template_v1_proto_depIdxs = nil
}
