//
// Licensed to the Apache Software Foundation (ASF) under one
// or more contributor license agreements.  See the NOTICE file
// distributed with this work for additional information
// regarding copyright ownership.  The ASF licenses this file
// to you under the Apache License, Version 2.0 (the
// "License"); you may not use this file except in compliance
// with the License.  You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// ** Experimental **
// Protocol Buffers describing Beam Schemas, a portable representation for
// complex types.
//
// The primary application of Schema is as the payload for the standard coder
// "beam:coder:row:v1", defined in beam_runner_api.proto

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.25.0-devel
// 	protoc        v3.13.0
// source: schema.proto

package pipeline_v1

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	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 AtomicType int32

const (
	AtomicType_UNSPECIFIED AtomicType = 0
	AtomicType_BYTE        AtomicType = 1
	AtomicType_INT16       AtomicType = 2
	AtomicType_INT32       AtomicType = 3
	AtomicType_INT64       AtomicType = 4
	AtomicType_FLOAT       AtomicType = 5
	AtomicType_DOUBLE      AtomicType = 6
	AtomicType_STRING      AtomicType = 7
	AtomicType_BOOLEAN     AtomicType = 8
	AtomicType_BYTES       AtomicType = 9
)

// Enum value maps for AtomicType.
var (
	AtomicType_name = map[int32]string{
		0: "UNSPECIFIED",
		1: "BYTE",
		2: "INT16",
		3: "INT32",
		4: "INT64",
		5: "FLOAT",
		6: "DOUBLE",
		7: "STRING",
		8: "BOOLEAN",
		9: "BYTES",
	}
	AtomicType_value = map[string]int32{
		"UNSPECIFIED": 0,
		"BYTE":        1,
		"INT16":       2,
		"INT32":       3,
		"INT64":       4,
		"FLOAT":       5,
		"DOUBLE":      6,
		"STRING":      7,
		"BOOLEAN":     8,
		"BYTES":       9,
	}
)

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

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

func (AtomicType) Descriptor() protoreflect.EnumDescriptor {
	return file_schema_proto_enumTypes[0].Descriptor()
}

func (AtomicType) Type() protoreflect.EnumType {
	return &file_schema_proto_enumTypes[0]
}

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

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

type Schema struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// List of fields for this schema. Two fields may not share a name.
	Fields []*Field `protobuf:"bytes,1,rep,name=fields,proto3" json:"fields,omitempty"`
	// REQUIRED. An RFC 4122 UUID.
	Id      string    `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"`
	Options []*Option `protobuf:"bytes,3,rep,name=options,proto3" json:"options,omitempty"`
	// Indicates that encoding positions have been overridden.
	EncodingPositionsSet bool `protobuf:"varint,4,opt,name=encoding_positions_set,json=encodingPositionsSet,proto3" json:"encoding_positions_set,omitempty"`
}

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

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

func (*Schema) ProtoMessage() {}

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

func (x *Schema) GetFields() []*Field {
	if x != nil {
		return x.Fields
	}
	return nil
}

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

func (x *Schema) GetOptions() []*Option {
	if x != nil {
		return x.Options
	}
	return nil
}

func (x *Schema) GetEncodingPositionsSet() bool {
	if x != nil {
		return x.EncodingPositionsSet
	}
	return false
}

type Field struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// REQUIRED. Name of this field within the schema.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// OPTIONAL. Human readable description of this field, such as the query that generated it.
	Description string     `protobuf:"bytes,2,opt,name=description,proto3" json:"description,omitempty"`
	Type        *FieldType `protobuf:"bytes,3,opt,name=type,proto3" json:"type,omitempty"`
	Id          int32      `protobuf:"varint,4,opt,name=id,proto3" json:"id,omitempty"`
	// OPTIONAL. The position of this field's data when encoded, e.g. with beam:coder:row:v1.
	// Either no fields in a given row are have encoding position populated,
	// or all of them are. Used to support backwards compatibility with schema
	// changes.
	// If no fields have encoding position populated the order of encoding is the same as the order in the Schema.
	// If this Field is part of a Schema where encoding_positions_set is True then encoding_position must be
	// defined, otherwise this field is ignored.
	EncodingPosition int32     `protobuf:"varint,5,opt,name=encoding_position,json=encodingPosition,proto3" json:"encoding_position,omitempty"`
	Options          []*Option `protobuf:"bytes,6,rep,name=options,proto3" json:"options,omitempty"`
}

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

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

func (*Field) ProtoMessage() {}

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

func (x *Field) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Field) GetDescription() string {
	if x != nil {
		return x.Description
	}
	return ""
}

func (x *Field) GetType() *FieldType {
	if x != nil {
		return x.Type
	}
	return nil
}

func (x *Field) GetId() int32 {
	if x != nil {
		return x.Id
	}
	return 0
}

func (x *Field) GetEncodingPosition() int32 {
	if x != nil {
		return x.EncodingPosition
	}
	return 0
}

func (x *Field) GetOptions() []*Option {
	if x != nil {
		return x.Options
	}
	return nil
}

type FieldType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Nullable bool `protobuf:"varint,1,opt,name=nullable,proto3" json:"nullable,omitempty"`
	// Types that are assignable to TypeInfo:
	//	*FieldType_AtomicType
	//	*FieldType_ArrayType
	//	*FieldType_IterableType
	//	*FieldType_MapType
	//	*FieldType_RowType
	//	*FieldType_LogicalType
	TypeInfo isFieldType_TypeInfo `protobuf_oneof:"type_info"`
}

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

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

func (*FieldType) ProtoMessage() {}

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

func (x *FieldType) GetNullable() bool {
	if x != nil {
		return x.Nullable
	}
	return false
}

func (m *FieldType) GetTypeInfo() isFieldType_TypeInfo {
	if m != nil {
		return m.TypeInfo
	}
	return nil
}

func (x *FieldType) GetAtomicType() AtomicType {
	if x, ok := x.GetTypeInfo().(*FieldType_AtomicType); ok {
		return x.AtomicType
	}
	return AtomicType_UNSPECIFIED
}

func (x *FieldType) GetArrayType() *ArrayType {
	if x, ok := x.GetTypeInfo().(*FieldType_ArrayType); ok {
		return x.ArrayType
	}
	return nil
}

func (x *FieldType) GetIterableType() *IterableType {
	if x, ok := x.GetTypeInfo().(*FieldType_IterableType); ok {
		return x.IterableType
	}
	return nil
}

func (x *FieldType) GetMapType() *MapType {
	if x, ok := x.GetTypeInfo().(*FieldType_MapType); ok {
		return x.MapType
	}
	return nil
}

func (x *FieldType) GetRowType() *RowType {
	if x, ok := x.GetTypeInfo().(*FieldType_RowType); ok {
		return x.RowType
	}
	return nil
}

func (x *FieldType) GetLogicalType() *LogicalType {
	if x, ok := x.GetTypeInfo().(*FieldType_LogicalType); ok {
		return x.LogicalType
	}
	return nil
}

type isFieldType_TypeInfo interface {
	isFieldType_TypeInfo()
}

type FieldType_AtomicType struct {
	AtomicType AtomicType `protobuf:"varint,2,opt,name=atomic_type,json=atomicType,proto3,enum=org.apache.beam.model.pipeline.v1.AtomicType,oneof"`
}

type FieldType_ArrayType struct {
	ArrayType *ArrayType `protobuf:"bytes,3,opt,name=array_type,json=arrayType,proto3,oneof"`
}

type FieldType_IterableType struct {
	IterableType *IterableType `protobuf:"bytes,4,opt,name=iterable_type,json=iterableType,proto3,oneof"`
}

type FieldType_MapType struct {
	MapType *MapType `protobuf:"bytes,5,opt,name=map_type,json=mapType,proto3,oneof"`
}

type FieldType_RowType struct {
	RowType *RowType `protobuf:"bytes,6,opt,name=row_type,json=rowType,proto3,oneof"`
}

type FieldType_LogicalType struct {
	LogicalType *LogicalType `protobuf:"bytes,7,opt,name=logical_type,json=logicalType,proto3,oneof"`
}

func (*FieldType_AtomicType) isFieldType_TypeInfo() {}

func (*FieldType_ArrayType) isFieldType_TypeInfo() {}

func (*FieldType_IterableType) isFieldType_TypeInfo() {}

func (*FieldType_MapType) isFieldType_TypeInfo() {}

func (*FieldType_RowType) isFieldType_TypeInfo() {}

func (*FieldType_LogicalType) isFieldType_TypeInfo() {}

type ArrayType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ElementType *FieldType `protobuf:"bytes,1,opt,name=element_type,json=elementType,proto3" json:"element_type,omitempty"`
}

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

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

func (*ArrayType) ProtoMessage() {}

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

func (x *ArrayType) GetElementType() *FieldType {
	if x != nil {
		return x.ElementType
	}
	return nil
}

type IterableType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	ElementType *FieldType `protobuf:"bytes,1,opt,name=element_type,json=elementType,proto3" json:"element_type,omitempty"`
}

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

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

func (*IterableType) ProtoMessage() {}

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

func (x *IterableType) GetElementType() *FieldType {
	if x != nil {
		return x.ElementType
	}
	return nil
}

type MapType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	KeyType   *FieldType `protobuf:"bytes,1,opt,name=key_type,json=keyType,proto3" json:"key_type,omitempty"`
	ValueType *FieldType `protobuf:"bytes,2,opt,name=value_type,json=valueType,proto3" json:"value_type,omitempty"`
}

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

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

func (*MapType) ProtoMessage() {}

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

func (x *MapType) GetKeyType() *FieldType {
	if x != nil {
		return x.KeyType
	}
	return nil
}

func (x *MapType) GetValueType() *FieldType {
	if x != nil {
		return x.ValueType
	}
	return nil
}

type RowType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Schema *Schema `protobuf:"bytes,1,opt,name=schema,proto3" json:"schema,omitempty"`
}

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

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

func (*RowType) ProtoMessage() {}

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

func (x *RowType) GetSchema() *Schema {
	if x != nil {
		return x.Schema
	}
	return nil
}

type LogicalType struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Urn            string      `protobuf:"bytes,1,opt,name=urn,proto3" json:"urn,omitempty"`
	Payload        []byte      `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"`
	Representation *FieldType  `protobuf:"bytes,3,opt,name=representation,proto3" json:"representation,omitempty"`
	ArgumentType   *FieldType  `protobuf:"bytes,4,opt,name=argument_type,json=argumentType,proto3" json:"argument_type,omitempty"`
	Argument       *FieldValue `protobuf:"bytes,5,opt,name=argument,proto3" json:"argument,omitempty"`
}

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

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

func (*LogicalType) ProtoMessage() {}

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

func (x *LogicalType) GetUrn() string {
	if x != nil {
		return x.Urn
	}
	return ""
}

func (x *LogicalType) GetPayload() []byte {
	if x != nil {
		return x.Payload
	}
	return nil
}

func (x *LogicalType) GetRepresentation() *FieldType {
	if x != nil {
		return x.Representation
	}
	return nil
}

func (x *LogicalType) GetArgumentType() *FieldType {
	if x != nil {
		return x.ArgumentType
	}
	return nil
}

func (x *LogicalType) GetArgument() *FieldValue {
	if x != nil {
		return x.Argument
	}
	return nil
}

type Option struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// REQUIRED. Identifier for the option.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// OPTIONAL. Type specifer for the structure of value.
	// If not present, assumes no additional configuration is needed
	// for this option and value is ignored.
	Type  *FieldType  `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	Value *FieldValue `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
}

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

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

func (*Option) ProtoMessage() {}

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

func (x *Option) GetName() string {
	if x != nil {
		return x.Name
	}
	return ""
}

func (x *Option) GetType() *FieldType {
	if x != nil {
		return x.Type
	}
	return nil
}

func (x *Option) GetValue() *FieldValue {
	if x != nil {
		return x.Value
	}
	return nil
}

type Row struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Values []*FieldValue `protobuf:"bytes,1,rep,name=values,proto3" json:"values,omitempty"`
}

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

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

func (*Row) ProtoMessage() {}

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

func (x *Row) GetValues() []*FieldValue {
	if x != nil {
		return x.Values
	}
	return nil
}

type FieldValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to FieldValue:
	//	*FieldValue_AtomicValue
	//	*FieldValue_ArrayValue
	//	*FieldValue_IterableValue
	//	*FieldValue_MapValue
	//	*FieldValue_RowValue
	//	*FieldValue_LogicalTypeValue
	FieldValue isFieldValue_FieldValue `protobuf_oneof:"field_value"`
}

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

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

func (*FieldValue) ProtoMessage() {}

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

func (m *FieldValue) GetFieldValue() isFieldValue_FieldValue {
	if m != nil {
		return m.FieldValue
	}
	return nil
}

func (x *FieldValue) GetAtomicValue() *AtomicTypeValue {
	if x, ok := x.GetFieldValue().(*FieldValue_AtomicValue); ok {
		return x.AtomicValue
	}
	return nil
}

func (x *FieldValue) GetArrayValue() *ArrayTypeValue {
	if x, ok := x.GetFieldValue().(*FieldValue_ArrayValue); ok {
		return x.ArrayValue
	}
	return nil
}

func (x *FieldValue) GetIterableValue() *IterableTypeValue {
	if x, ok := x.GetFieldValue().(*FieldValue_IterableValue); ok {
		return x.IterableValue
	}
	return nil
}

func (x *FieldValue) GetMapValue() *MapTypeValue {
	if x, ok := x.GetFieldValue().(*FieldValue_MapValue); ok {
		return x.MapValue
	}
	return nil
}

func (x *FieldValue) GetRowValue() *Row {
	if x, ok := x.GetFieldValue().(*FieldValue_RowValue); ok {
		return x.RowValue
	}
	return nil
}

func (x *FieldValue) GetLogicalTypeValue() *LogicalTypeValue {
	if x, ok := x.GetFieldValue().(*FieldValue_LogicalTypeValue); ok {
		return x.LogicalTypeValue
	}
	return nil
}

type isFieldValue_FieldValue interface {
	isFieldValue_FieldValue()
}

type FieldValue_AtomicValue struct {
	AtomicValue *AtomicTypeValue `protobuf:"bytes,1,opt,name=atomic_value,json=atomicValue,proto3,oneof"`
}

type FieldValue_ArrayValue struct {
	ArrayValue *ArrayTypeValue `protobuf:"bytes,2,opt,name=array_value,json=arrayValue,proto3,oneof"`
}

type FieldValue_IterableValue struct {
	IterableValue *IterableTypeValue `protobuf:"bytes,3,opt,name=iterable_value,json=iterableValue,proto3,oneof"`
}

type FieldValue_MapValue struct {
	MapValue *MapTypeValue `protobuf:"bytes,4,opt,name=map_value,json=mapValue,proto3,oneof"`
}

type FieldValue_RowValue struct {
	RowValue *Row `protobuf:"bytes,5,opt,name=row_value,json=rowValue,proto3,oneof"`
}

type FieldValue_LogicalTypeValue struct {
	LogicalTypeValue *LogicalTypeValue `protobuf:"bytes,6,opt,name=logical_type_value,json=logicalTypeValue,proto3,oneof"`
}

func (*FieldValue_AtomicValue) isFieldValue_FieldValue() {}

func (*FieldValue_ArrayValue) isFieldValue_FieldValue() {}

func (*FieldValue_IterableValue) isFieldValue_FieldValue() {}

func (*FieldValue_MapValue) isFieldValue_FieldValue() {}

func (*FieldValue_RowValue) isFieldValue_FieldValue() {}

func (*FieldValue_LogicalTypeValue) isFieldValue_FieldValue() {}

type AtomicTypeValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// Types that are assignable to Value:
	//	*AtomicTypeValue_Byte
	//	*AtomicTypeValue_Int16
	//	*AtomicTypeValue_Int32
	//	*AtomicTypeValue_Int64
	//	*AtomicTypeValue_Float
	//	*AtomicTypeValue_Double
	//	*AtomicTypeValue_String_
	//	*AtomicTypeValue_Boolean
	//	*AtomicTypeValue_Bytes
	Value isAtomicTypeValue_Value `protobuf_oneof:"value"`
}

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

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

func (*AtomicTypeValue) ProtoMessage() {}

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

func (m *AtomicTypeValue) GetValue() isAtomicTypeValue_Value {
	if m != nil {
		return m.Value
	}
	return nil
}

func (x *AtomicTypeValue) GetByte() int32 {
	if x, ok := x.GetValue().(*AtomicTypeValue_Byte); ok {
		return x.Byte
	}
	return 0
}

func (x *AtomicTypeValue) GetInt16() int32 {
	if x, ok := x.GetValue().(*AtomicTypeValue_Int16); ok {
		return x.Int16
	}
	return 0
}

func (x *AtomicTypeValue) GetInt32() int32 {
	if x, ok := x.GetValue().(*AtomicTypeValue_Int32); ok {
		return x.Int32
	}
	return 0
}

func (x *AtomicTypeValue) GetInt64() int64 {
	if x, ok := x.GetValue().(*AtomicTypeValue_Int64); ok {
		return x.Int64
	}
	return 0
}

func (x *AtomicTypeValue) GetFloat() float32 {
	if x, ok := x.GetValue().(*AtomicTypeValue_Float); ok {
		return x.Float
	}
	return 0
}

func (x *AtomicTypeValue) GetDouble() float64 {
	if x, ok := x.GetValue().(*AtomicTypeValue_Double); ok {
		return x.Double
	}
	return 0
}

func (x *AtomicTypeValue) GetString_() string {
	if x, ok := x.GetValue().(*AtomicTypeValue_String_); ok {
		return x.String_
	}
	return ""
}

func (x *AtomicTypeValue) GetBoolean() bool {
	if x, ok := x.GetValue().(*AtomicTypeValue_Boolean); ok {
		return x.Boolean
	}
	return false
}

func (x *AtomicTypeValue) GetBytes() []byte {
	if x, ok := x.GetValue().(*AtomicTypeValue_Bytes); ok {
		return x.Bytes
	}
	return nil
}

type isAtomicTypeValue_Value interface {
	isAtomicTypeValue_Value()
}

type AtomicTypeValue_Byte struct {
	Byte int32 `protobuf:"varint,1,opt,name=byte,proto3,oneof"`
}

type AtomicTypeValue_Int16 struct {
	Int16 int32 `protobuf:"varint,2,opt,name=int16,proto3,oneof"`
}

type AtomicTypeValue_Int32 struct {
	Int32 int32 `protobuf:"varint,3,opt,name=int32,proto3,oneof"`
}

type AtomicTypeValue_Int64 struct {
	Int64 int64 `protobuf:"varint,4,opt,name=int64,proto3,oneof"`
}

type AtomicTypeValue_Float struct {
	Float float32 `protobuf:"fixed32,5,opt,name=float,proto3,oneof"`
}

type AtomicTypeValue_Double struct {
	Double float64 `protobuf:"fixed64,6,opt,name=double,proto3,oneof"`
}

type AtomicTypeValue_String_ struct {
	String_ string `protobuf:"bytes,7,opt,name=string,proto3,oneof"`
}

type AtomicTypeValue_Boolean struct {
	Boolean bool `protobuf:"varint,8,opt,name=boolean,proto3,oneof"`
}

type AtomicTypeValue_Bytes struct {
	Bytes []byte `protobuf:"bytes,9,opt,name=bytes,proto3,oneof"`
}

func (*AtomicTypeValue_Byte) isAtomicTypeValue_Value() {}

func (*AtomicTypeValue_Int16) isAtomicTypeValue_Value() {}

func (*AtomicTypeValue_Int32) isAtomicTypeValue_Value() {}

func (*AtomicTypeValue_Int64) isAtomicTypeValue_Value() {}

func (*AtomicTypeValue_Float) isAtomicTypeValue_Value() {}

func (*AtomicTypeValue_Double) isAtomicTypeValue_Value() {}

func (*AtomicTypeValue_String_) isAtomicTypeValue_Value() {}

func (*AtomicTypeValue_Boolean) isAtomicTypeValue_Value() {}

func (*AtomicTypeValue_Bytes) isAtomicTypeValue_Value() {}

type ArrayTypeValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Element []*FieldValue `protobuf:"bytes,1,rep,name=element,proto3" json:"element,omitempty"`
}

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

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

func (*ArrayTypeValue) ProtoMessage() {}

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

func (x *ArrayTypeValue) GetElement() []*FieldValue {
	if x != nil {
		return x.Element
	}
	return nil
}

type IterableTypeValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Element []*FieldValue `protobuf:"bytes,1,rep,name=element,proto3" json:"element,omitempty"`
}

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

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

func (*IterableTypeValue) ProtoMessage() {}

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

func (x *IterableTypeValue) GetElement() []*FieldValue {
	if x != nil {
		return x.Element
	}
	return nil
}

type MapTypeValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Entries []*MapTypeEntry `protobuf:"bytes,1,rep,name=entries,proto3" json:"entries,omitempty"`
}

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

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

func (*MapTypeValue) ProtoMessage() {}

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

func (x *MapTypeValue) GetEntries() []*MapTypeEntry {
	if x != nil {
		return x.Entries
	}
	return nil
}

type MapTypeEntry struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Key   *FieldValue `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	Value *FieldValue `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
}

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

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

func (*MapTypeEntry) ProtoMessage() {}

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

func (x *MapTypeEntry) GetKey() *FieldValue {
	if x != nil {
		return x.Key
	}
	return nil
}

func (x *MapTypeEntry) GetValue() *FieldValue {
	if x != nil {
		return x.Value
	}
	return nil
}

type LogicalTypeValue struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	Value *FieldValue `protobuf:"bytes,1,opt,name=value,proto3" json:"value,omitempty"`
}

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

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

func (*LogicalTypeValue) ProtoMessage() {}

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

func (x *LogicalTypeValue) GetValue() *FieldValue {
	if x != nil {
		return x.Value
	}
	return nil
}

var File_schema_proto protoreflect.FileDescriptor

var file_schema_proto_rawDesc = []byte{
	0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x21,
	0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e,
	0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76,
	0x31, 0x22, 0xd5, 0x01, 0x0a, 0x06, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x12, 0x40, 0x0a, 0x06,
	0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6f,
	0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d,
	0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x52, 0x06, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x73, 0x12, 0x0e,
	0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x43,
	0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61,
	0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x12, 0x34, 0x0a, 0x16, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f,
	0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x5f, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20,
	0x01, 0x28, 0x08, 0x52, 0x14, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x73,
	0x69, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x53, 0x65, 0x74, 0x22, 0x81, 0x02, 0x0a, 0x05, 0x46, 0x69,
	0x65, 0x6c, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72,
	0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70,
	0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c,
	0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69,
	0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2b, 0x0a, 0x11, 0x65,
	0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x70, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x65, 0x6e, 0x63, 0x6f, 0x64, 0x69, 0x6e, 0x67,
	0x50, 0x6f, 0x73, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x43, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69,
	0x6f, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e,
	0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65,
	0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4f, 0x70,
	0x74, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x22, 0x94, 0x04,
	0x0a, 0x09, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6e,
	0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x6e,
	0x75, 0x6c, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x50, 0x0a, 0x0b, 0x61, 0x74, 0x6f, 0x6d, 0x69,
	0x63, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2d, 0x2e, 0x6f,
	0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d,
	0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x61,
	0x74, 0x6f, 0x6d, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4d, 0x0a, 0x0a, 0x61, 0x72, 0x72,
	0x61, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e,
	0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e,
	0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x09, 0x61,
	0x72, 0x72, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x56, 0x0a, 0x0d, 0x69, 0x74, 0x65, 0x72,
	0x61, 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x2f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61,
	0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x49, 0x74, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x48, 0x00, 0x52, 0x0c, 0x69, 0x74, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x47, 0x0a, 0x08, 0x6d, 0x61, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01,
	0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e,
	0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c,
	0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00,
	0x52, 0x07, 0x6d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x47, 0x0a, 0x08, 0x72, 0x6f, 0x77,
	0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x6f, 0x72,
	0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f,
	0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x52, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x07, 0x72, 0x6f, 0x77, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x53, 0x0a, 0x0c, 0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61,
	0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
	0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67,
	0x69, 0x63, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x48, 0x00, 0x52, 0x0b, 0x6c, 0x6f, 0x67, 0x69,
	0x63, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x74, 0x79, 0x70, 0x65, 0x5f,
	0x69, 0x6e, 0x66, 0x6f, 0x22, 0x5c, 0x0a, 0x09, 0x41, 0x72, 0x72, 0x61, 0x79, 0x54, 0x79, 0x70,
	0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70,
	0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c,
	0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79,
	0x70, 0x65, 0x22, 0x5f, 0x0a, 0x0c, 0x49, 0x74, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79,
	0x70, 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x5f, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61,
	0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
	0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65,
	0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0b, 0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x54,
	0x79, 0x70, 0x65, 0x22, 0x9f, 0x01, 0x0a, 0x07, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12,
	0x47, 0x0a, 0x08, 0x6b, 0x65, 0x79, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62,
	0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69,
	0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52,
	0x07, 0x6b, 0x65, 0x79, 0x54, 0x79, 0x70, 0x65, 0x12, 0x4b, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f,
	0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d,
	0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0x4c, 0x0a, 0x07, 0x52, 0x6f, 0x77, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x41, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x29, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65,
	0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x6d, 0x61, 0x52, 0x06, 0x73, 0x63, 0x68,
	0x65, 0x6d, 0x61, 0x22, 0xad, 0x02, 0x0a, 0x0b, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x54,
	0x79, 0x70, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x03, 0x75, 0x72, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12,
	0x54, 0x0a, 0x0e, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70,
	0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c,
	0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0e, 0x72, 0x65, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x51, 0x0a, 0x0d, 0x61, 0x72, 0x67, 0x75, 0x6d, 0x65, 0x6e,
	0x74, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x6f,
	0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d,
	0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x0c, 0x61, 0x72, 0x67, 0x75,
	0x6d, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x49, 0x0a, 0x08, 0x61, 0x72, 0x67, 0x75,
	0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x72, 0x67,
	0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64,
	0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46,
	0x69, 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x08, 0x61, 0x72, 0x67, 0x75, 0x6d,
	0x65, 0x6e, 0x74, 0x22, 0xa3, 0x01, 0x0a, 0x06, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x12,
	0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61,
	0x6d, 0x65, 0x12, 0x40, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x2c, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65,
	0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04,
	0x74, 0x79, 0x70, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65,
	0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65,
	0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c,
	0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x4c, 0x0a, 0x03, 0x52, 0x6f, 0x77,
	0x12, 0x45, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b,
	0x32, 0x2d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65,
	0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e,
	0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52,
	0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0xa5, 0x04, 0x0a, 0x0a, 0x46, 0x69, 0x65, 0x6c,
	0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x57, 0x0a, 0x0c, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63,
	0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x6f,
	0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d,
	0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x48, 0x00, 0x52, 0x0b, 0x61, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12,
	0x54, 0x0a, 0x0b, 0x61, 0x72, 0x72, 0x61, 0x79, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68,
	0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x72, 0x72, 0x61, 0x79, 0x54, 0x79,
	0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0a, 0x61, 0x72, 0x72, 0x61, 0x79,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x5d, 0x0a, 0x0e, 0x69, 0x74, 0x65, 0x72, 0x61, 0x62, 0x6c,
	0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e,
	0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e,
	0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x49, 0x74, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x0d, 0x69, 0x74, 0x65, 0x72, 0x61, 0x62, 0x6c, 0x65, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x12, 0x4e, 0x0a, 0x09, 0x6d, 0x61, 0x70, 0x5f, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70,
	0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x54,
	0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x08, 0x6d, 0x61, 0x70, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x12, 0x45, 0x0a, 0x09, 0x72, 0x6f, 0x77, 0x5f, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70,
	0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x52, 0x6f, 0x77, 0x48,
	0x00, 0x52, 0x08, 0x72, 0x6f, 0x77, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x63, 0x0a, 0x12, 0x6c,
	0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x5f, 0x76, 0x61, 0x6c, 0x75,
	0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70,
	0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69,
	0x63, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x00, 0x52, 0x10,
	0x6c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65,
	0x42, 0x0d, 0x0a, 0x0b, 0x66, 0x69, 0x65, 0x6c, 0x64, 0x5f, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22,
	0xf8, 0x01, 0x0a, 0x0f, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x04, 0x62, 0x79, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28,
	0x05, 0x48, 0x00, 0x52, 0x04, 0x62, 0x79, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x05, 0x69, 0x6e, 0x74,
	0x31, 0x36, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x31,
	0x36, 0x12, 0x16, 0x0a, 0x05, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05,
	0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x33, 0x32, 0x12, 0x16, 0x0a, 0x05, 0x69, 0x6e, 0x74,
	0x36, 0x34, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x48, 0x00, 0x52, 0x05, 0x69, 0x6e, 0x74, 0x36,
	0x34, 0x12, 0x16, 0x0a, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x02,
	0x48, 0x00, 0x52, 0x05, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x12, 0x18, 0x0a, 0x06, 0x64, 0x6f, 0x75,
	0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x01, 0x48, 0x00, 0x52, 0x06, 0x64, 0x6f, 0x75,
	0x62, 0x6c, 0x65, 0x12, 0x18, 0x0a, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x18, 0x07, 0x20,
	0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x06, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a,
	0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00,
	0x52, 0x07, 0x62, 0x6f, 0x6f, 0x6c, 0x65, 0x61, 0x6e, 0x12, 0x16, 0x0a, 0x05, 0x62, 0x79, 0x74,
	0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0c, 0x48, 0x00, 0x52, 0x05, 0x62, 0x79, 0x74, 0x65,
	0x73, 0x42, 0x07, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x59, 0x0a, 0x0e, 0x41, 0x72,
	0x72, 0x61, 0x79, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x47, 0x0a, 0x07,
	0x65, 0x6c, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e,
	0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e,
	0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76,
	0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6c,
	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x5c, 0x0a, 0x11, 0x49, 0x74, 0x65, 0x72, 0x61, 0x62, 0x6c,
	0x65, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x47, 0x0a, 0x07, 0x65, 0x6c,
	0x65, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x72,
	0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f,
	0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e,
	0x46, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x07, 0x65, 0x6c, 0x65, 0x6d,
	0x65, 0x6e, 0x74, 0x22, 0x59, 0x0a, 0x0c, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x56, 0x61,
	0x6c, 0x75, 0x65, 0x12, 0x49, 0x0a, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x18, 0x01,
	0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68,
	0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70,
	0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x65, 0x6e, 0x74, 0x72, 0x69, 0x65, 0x73, 0x22, 0x94,
	0x01, 0x0a, 0x0c, 0x4d, 0x61, 0x70, 0x54, 0x79, 0x70, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12,
	0x3f, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f,
	0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d,
	0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31,
	0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x43, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x2d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61,
	0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65,
	0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65, 0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x57, 0x0a, 0x10, 0x4c, 0x6f, 0x67, 0x69, 0x63, 0x61, 0x6c,
	0x54, 0x79, 0x70, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x12, 0x43, 0x0a, 0x05, 0x76, 0x61, 0x6c,
	0x75, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x6f, 0x72, 0x67, 0x2e, 0x61,
	0x70, 0x61, 0x63, 0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
	0x2e, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x69, 0x65,
	0x6c, 0x64, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x2a, 0x83,
	0x01, 0x0a, 0x0a, 0x41, 0x74, 0x6f, 0x6d, 0x69, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0f, 0x0a,
	0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x08,
	0x0a, 0x04, 0x42, 0x59, 0x54, 0x45, 0x10, 0x01, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x31,
	0x36, 0x10, 0x02, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10, 0x03, 0x12, 0x09,
	0x0a, 0x05, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x04, 0x12, 0x09, 0x0a, 0x05, 0x46, 0x4c, 0x4f,
	0x41, 0x54, 0x10, 0x05, 0x12, 0x0a, 0x0a, 0x06, 0x44, 0x4f, 0x55, 0x42, 0x4c, 0x45, 0x10, 0x06,
	0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x07, 0x12, 0x0b, 0x0a, 0x07,
	0x42, 0x4f, 0x4f, 0x4c, 0x45, 0x41, 0x4e, 0x10, 0x08, 0x12, 0x09, 0x0a, 0x05, 0x42, 0x59, 0x54,
	0x45, 0x53, 0x10, 0x09, 0x42, 0x75, 0x0a, 0x21, 0x6f, 0x72, 0x67, 0x2e, 0x61, 0x70, 0x61, 0x63,
	0x68, 0x65, 0x2e, 0x62, 0x65, 0x61, 0x6d, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x70, 0x69,
	0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x53, 0x63, 0x68, 0x65, 0x6d,
	0x61, 0x41, 0x70, 0x69, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d,
	0x2f, 0x61, 0x70, 0x61, 0x63, 0x68, 0x65, 0x2f, 0x62, 0x65, 0x61, 0x6d, 0x2f, 0x73, 0x64, 0x6b,
	0x73, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x62, 0x65, 0x61, 0x6d, 0x2f, 0x6d, 0x6f,
	0x64, 0x65, 0x6c, 0x2f, 0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x76, 0x31, 0x3b,
	0x70, 0x69, 0x70, 0x65, 0x6c, 0x69, 0x6e, 0x65, 0x5f, 0x76, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x33,
}

var (
	file_schema_proto_rawDescOnce sync.Once
	file_schema_proto_rawDescData = file_schema_proto_rawDesc
)

func file_schema_proto_rawDescGZIP() []byte {
	file_schema_proto_rawDescOnce.Do(func() {
		file_schema_proto_rawDescData = protoimpl.X.CompressGZIP(file_schema_proto_rawDescData)
	})
	return file_schema_proto_rawDescData
}

var file_schema_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_schema_proto_msgTypes = make([]protoimpl.MessageInfo, 17)
var file_schema_proto_goTypes = []interface{}{
	(AtomicType)(0),           // 0: org.apache.beam.model.pipeline.v1.AtomicType
	(*Schema)(nil),            // 1: org.apache.beam.model.pipeline.v1.Schema
	(*Field)(nil),             // 2: org.apache.beam.model.pipeline.v1.Field
	(*FieldType)(nil),         // 3: org.apache.beam.model.pipeline.v1.FieldType
	(*ArrayType)(nil),         // 4: org.apache.beam.model.pipeline.v1.ArrayType
	(*IterableType)(nil),      // 5: org.apache.beam.model.pipeline.v1.IterableType
	(*MapType)(nil),           // 6: org.apache.beam.model.pipeline.v1.MapType
	(*RowType)(nil),           // 7: org.apache.beam.model.pipeline.v1.RowType
	(*LogicalType)(nil),       // 8: org.apache.beam.model.pipeline.v1.LogicalType
	(*Option)(nil),            // 9: org.apache.beam.model.pipeline.v1.Option
	(*Row)(nil),               // 10: org.apache.beam.model.pipeline.v1.Row
	(*FieldValue)(nil),        // 11: org.apache.beam.model.pipeline.v1.FieldValue
	(*AtomicTypeValue)(nil),   // 12: org.apache.beam.model.pipeline.v1.AtomicTypeValue
	(*ArrayTypeValue)(nil),    // 13: org.apache.beam.model.pipeline.v1.ArrayTypeValue
	(*IterableTypeValue)(nil), // 14: org.apache.beam.model.pipeline.v1.IterableTypeValue
	(*MapTypeValue)(nil),      // 15: org.apache.beam.model.pipeline.v1.MapTypeValue
	(*MapTypeEntry)(nil),      // 16: org.apache.beam.model.pipeline.v1.MapTypeEntry
	(*LogicalTypeValue)(nil),  // 17: org.apache.beam.model.pipeline.v1.LogicalTypeValue
}
var file_schema_proto_depIdxs = []int32{
	2,  // 0: org.apache.beam.model.pipeline.v1.Schema.fields:type_name -> org.apache.beam.model.pipeline.v1.Field
	9,  // 1: org.apache.beam.model.pipeline.v1.Schema.options:type_name -> org.apache.beam.model.pipeline.v1.Option
	3,  // 2: org.apache.beam.model.pipeline.v1.Field.type:type_name -> org.apache.beam.model.pipeline.v1.FieldType
	9,  // 3: org.apache.beam.model.pipeline.v1.Field.options:type_name -> org.apache.beam.model.pipeline.v1.Option
	0,  // 4: org.apache.beam.model.pipeline.v1.FieldType.atomic_type:type_name -> org.apache.beam.model.pipeline.v1.AtomicType
	4,  // 5: org.apache.beam.model.pipeline.v1.FieldType.array_type:type_name -> org.apache.beam.model.pipeline.v1.ArrayType
	5,  // 6: org.apache.beam.model.pipeline.v1.FieldType.iterable_type:type_name -> org.apache.beam.model.pipeline.v1.IterableType
	6,  // 7: org.apache.beam.model.pipeline.v1.FieldType.map_type:type_name -> org.apache.beam.model.pipeline.v1.MapType
	7,  // 8: org.apache.beam.model.pipeline.v1.FieldType.row_type:type_name -> org.apache.beam.model.pipeline.v1.RowType
	8,  // 9: org.apache.beam.model.pipeline.v1.FieldType.logical_type:type_name -> org.apache.beam.model.pipeline.v1.LogicalType
	3,  // 10: org.apache.beam.model.pipeline.v1.ArrayType.element_type:type_name -> org.apache.beam.model.pipeline.v1.FieldType
	3,  // 11: org.apache.beam.model.pipeline.v1.IterableType.element_type:type_name -> org.apache.beam.model.pipeline.v1.FieldType
	3,  // 12: org.apache.beam.model.pipeline.v1.MapType.key_type:type_name -> org.apache.beam.model.pipeline.v1.FieldType
	3,  // 13: org.apache.beam.model.pipeline.v1.MapType.value_type:type_name -> org.apache.beam.model.pipeline.v1.FieldType
	1,  // 14: org.apache.beam.model.pipeline.v1.RowType.schema:type_name -> org.apache.beam.model.pipeline.v1.Schema
	3,  // 15: org.apache.beam.model.pipeline.v1.LogicalType.representation:type_name -> org.apache.beam.model.pipeline.v1.FieldType
	3,  // 16: org.apache.beam.model.pipeline.v1.LogicalType.argument_type:type_name -> org.apache.beam.model.pipeline.v1.FieldType
	11, // 17: org.apache.beam.model.pipeline.v1.LogicalType.argument:type_name -> org.apache.beam.model.pipeline.v1.FieldValue
	3,  // 18: org.apache.beam.model.pipeline.v1.Option.type:type_name -> org.apache.beam.model.pipeline.v1.FieldType
	11, // 19: org.apache.beam.model.pipeline.v1.Option.value:type_name -> org.apache.beam.model.pipeline.v1.FieldValue
	11, // 20: org.apache.beam.model.pipeline.v1.Row.values:type_name -> org.apache.beam.model.pipeline.v1.FieldValue
	12, // 21: org.apache.beam.model.pipeline.v1.FieldValue.atomic_value:type_name -> org.apache.beam.model.pipeline.v1.AtomicTypeValue
	13, // 22: org.apache.beam.model.pipeline.v1.FieldValue.array_value:type_name -> org.apache.beam.model.pipeline.v1.ArrayTypeValue
	14, // 23: org.apache.beam.model.pipeline.v1.FieldValue.iterable_value:type_name -> org.apache.beam.model.pipeline.v1.IterableTypeValue
	15, // 24: org.apache.beam.model.pipeline.v1.FieldValue.map_value:type_name -> org.apache.beam.model.pipeline.v1.MapTypeValue
	10, // 25: org.apache.beam.model.pipeline.v1.FieldValue.row_value:type_name -> org.apache.beam.model.pipeline.v1.Row
	17, // 26: org.apache.beam.model.pipeline.v1.FieldValue.logical_type_value:type_name -> org.apache.beam.model.pipeline.v1.LogicalTypeValue
	11, // 27: org.apache.beam.model.pipeline.v1.ArrayTypeValue.element:type_name -> org.apache.beam.model.pipeline.v1.FieldValue
	11, // 28: org.apache.beam.model.pipeline.v1.IterableTypeValue.element:type_name -> org.apache.beam.model.pipeline.v1.FieldValue
	16, // 29: org.apache.beam.model.pipeline.v1.MapTypeValue.entries:type_name -> org.apache.beam.model.pipeline.v1.MapTypeEntry
	11, // 30: org.apache.beam.model.pipeline.v1.MapTypeEntry.key:type_name -> org.apache.beam.model.pipeline.v1.FieldValue
	11, // 31: org.apache.beam.model.pipeline.v1.MapTypeEntry.value:type_name -> org.apache.beam.model.pipeline.v1.FieldValue
	11, // 32: org.apache.beam.model.pipeline.v1.LogicalTypeValue.value:type_name -> org.apache.beam.model.pipeline.v1.FieldValue
	33, // [33:33] is the sub-list for method output_type
	33, // [33:33] is the sub-list for method input_type
	33, // [33:33] is the sub-list for extension type_name
	33, // [33:33] is the sub-list for extension extendee
	0,  // [0:33] is the sub-list for field type_name
}

func init() { file_schema_proto_init() }
func file_schema_proto_init() {
	if File_schema_proto != nil {
		return
	}
	if !protoimpl.UnsafeEnabled {
		file_schema_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Schema); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Field); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FieldType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ArrayType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IterableType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MapType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*RowType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LogicalType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Option); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Row); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FieldValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*AtomicTypeValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ArrayTypeValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*IterableTypeValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MapTypeValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*MapTypeEntry); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_schema_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*LogicalTypeValue); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_schema_proto_msgTypes[2].OneofWrappers = []interface{}{
		(*FieldType_AtomicType)(nil),
		(*FieldType_ArrayType)(nil),
		(*FieldType_IterableType)(nil),
		(*FieldType_MapType)(nil),
		(*FieldType_RowType)(nil),
		(*FieldType_LogicalType)(nil),
	}
	file_schema_proto_msgTypes[10].OneofWrappers = []interface{}{
		(*FieldValue_AtomicValue)(nil),
		(*FieldValue_ArrayValue)(nil),
		(*FieldValue_IterableValue)(nil),
		(*FieldValue_MapValue)(nil),
		(*FieldValue_RowValue)(nil),
		(*FieldValue_LogicalTypeValue)(nil),
	}
	file_schema_proto_msgTypes[11].OneofWrappers = []interface{}{
		(*AtomicTypeValue_Byte)(nil),
		(*AtomicTypeValue_Int16)(nil),
		(*AtomicTypeValue_Int32)(nil),
		(*AtomicTypeValue_Int64)(nil),
		(*AtomicTypeValue_Float)(nil),
		(*AtomicTypeValue_Double)(nil),
		(*AtomicTypeValue_String_)(nil),
		(*AtomicTypeValue_Boolean)(nil),
		(*AtomicTypeValue_Bytes)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_schema_proto_rawDesc,
			NumEnums:      1,
			NumMessages:   17,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_schema_proto_goTypes,
		DependencyIndexes: file_schema_proto_depIdxs,
		EnumInfos:         file_schema_proto_enumTypes,
		MessageInfos:      file_schema_proto_msgTypes,
	}.Build()
	File_schema_proto = out.File
	file_schema_proto_rawDesc = nil
	file_schema_proto_goTypes = nil
	file_schema_proto_depIdxs = nil
}
