// Code generated by protoc-gen-go. DO NOT EDIT.
// source: google/firestore/admin/v1beta1/index.proto

package admin

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import _ "google.golang.org/genproto/googleapis/api/annotations"

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// The mode determines how a field is indexed.
type IndexField_Mode int32

const (
	// The mode is unspecified.
	IndexField_MODE_UNSPECIFIED IndexField_Mode = 0
	// The field's values are indexed so as to support sequencing in
	// ascending order and also query by <, >, <=, >=, and =.
	IndexField_ASCENDING IndexField_Mode = 2
	// The field's values are indexed so as to support sequencing in
	// descending order and also query by <, >, <=, >=, and =.
	IndexField_DESCENDING IndexField_Mode = 3
)

var IndexField_Mode_name = map[int32]string{
	0: "MODE_UNSPECIFIED",
	2: "ASCENDING",
	3: "DESCENDING",
}
var IndexField_Mode_value = map[string]int32{
	"MODE_UNSPECIFIED": 0,
	"ASCENDING":        2,
	"DESCENDING":       3,
}

func (x IndexField_Mode) String() string {
	return proto.EnumName(IndexField_Mode_name, int32(x))
}
func (IndexField_Mode) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{0, 0} }

// The state of an index. During index creation, an index will be in the
// `CREATING` state. If the index is created successfully, it will transition
// to the `READY` state. If the index is not able to be created, it will
// transition to the `ERROR` state.
type Index_State int32

const (
	// The state is unspecified.
	Index_STATE_UNSPECIFIED Index_State = 0
	// The index is being created.
	// There is an active long-running operation for the index.
	// The index is updated when writing a document.
	// Some index data may exist.
	Index_CREATING Index_State = 3
	// The index is ready to be used.
	// The index is updated when writing a document.
	// The index is fully populated from all stored documents it applies to.
	Index_READY Index_State = 2
	// The index was being created, but something went wrong.
	// There is no active long-running operation for the index,
	// and the most recently finished long-running operation failed.
	// The index is not updated when writing a document.
	// Some index data may exist.
	Index_ERROR Index_State = 5
)

var Index_State_name = map[int32]string{
	0: "STATE_UNSPECIFIED",
	3: "CREATING",
	2: "READY",
	5: "ERROR",
}
var Index_State_value = map[string]int32{
	"STATE_UNSPECIFIED": 0,
	"CREATING":          3,
	"READY":             2,
	"ERROR":             5,
}

func (x Index_State) String() string {
	return proto.EnumName(Index_State_name, int32(x))
}
func (Index_State) EnumDescriptor() ([]byte, []int) { return fileDescriptor1, []int{1, 0} }

// A field of an index.
type IndexField struct {
	// The path of the field. Must match the field path specification described
	// by [google.firestore.v1beta1.Document.fields][fields].
	// Special field path `__name__` may be used by itself or at the end of a
	// path. `__type__` may be used only at the end of path.
	FieldPath string `protobuf:"bytes,1,opt,name=field_path,json=fieldPath" json:"field_path,omitempty"`
	// The field's mode.
	Mode IndexField_Mode `protobuf:"varint,2,opt,name=mode,enum=google.firestore.admin.v1beta1.IndexField_Mode" json:"mode,omitempty"`
}

func (m *IndexField) Reset()                    { *m = IndexField{} }
func (m *IndexField) String() string            { return proto.CompactTextString(m) }
func (*IndexField) ProtoMessage()               {}
func (*IndexField) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }

func (m *IndexField) GetFieldPath() string {
	if m != nil {
		return m.FieldPath
	}
	return ""
}

func (m *IndexField) GetMode() IndexField_Mode {
	if m != nil {
		return m.Mode
	}
	return IndexField_MODE_UNSPECIFIED
}

// An index definition.
type Index struct {
	// The resource name of the index.
	// Output only.
	Name string `protobuf:"bytes,1,opt,name=name" json:"name,omitempty"`
	// The collection ID to which this index applies. Required.
	CollectionId string `protobuf:"bytes,2,opt,name=collection_id,json=collectionId" json:"collection_id,omitempty"`
	// The fields to index.
	Fields []*IndexField `protobuf:"bytes,3,rep,name=fields" json:"fields,omitempty"`
	// The state of the index.
	// Output only.
	State Index_State `protobuf:"varint,6,opt,name=state,enum=google.firestore.admin.v1beta1.Index_State" json:"state,omitempty"`
}

func (m *Index) Reset()                    { *m = Index{} }
func (m *Index) String() string            { return proto.CompactTextString(m) }
func (*Index) ProtoMessage()               {}
func (*Index) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }

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

func (m *Index) GetCollectionId() string {
	if m != nil {
		return m.CollectionId
	}
	return ""
}

func (m *Index) GetFields() []*IndexField {
	if m != nil {
		return m.Fields
	}
	return nil
}

func (m *Index) GetState() Index_State {
	if m != nil {
		return m.State
	}
	return Index_STATE_UNSPECIFIED
}

func init() {
	proto.RegisterType((*IndexField)(nil), "google.firestore.admin.v1beta1.IndexField")
	proto.RegisterType((*Index)(nil), "google.firestore.admin.v1beta1.Index")
	proto.RegisterEnum("google.firestore.admin.v1beta1.IndexField_Mode", IndexField_Mode_name, IndexField_Mode_value)
	proto.RegisterEnum("google.firestore.admin.v1beta1.Index_State", Index_State_name, Index_State_value)
}

func init() { proto.RegisterFile("google/firestore/admin/v1beta1/index.proto", fileDescriptor1) }

var fileDescriptor1 = []byte{
	// 422 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x52, 0x4f, 0x8b, 0x13, 0x31,
	0x1c, 0x75, 0xa6, 0x9d, 0xe2, 0xfc, 0xdc, 0x5d, 0xc6, 0xa0, 0x50, 0x44, 0xa5, 0x8c, 0x1e, 0xca,
	0x0a, 0x19, 0xba, 0x1e, 0xf7, 0x34, 0xff, 0x5a, 0xe6, 0xb0, 0xdd, 0x92, 0xa9, 0x82, 0x5e, 0x4a,
	0xb6, 0xc9, 0xce, 0x06, 0xa6, 0x49, 0x99, 0x89, 0xe2, 0x77, 0xf0, 0x5b, 0x08, 0x5e, 0x04, 0xbf,
	0xa3, 0x24, 0x33, 0x74, 0x41, 0xd0, 0xed, 0xed, 0xf7, 0x92, 0xf7, 0x5e, 0xde, 0x4b, 0x02, 0xe7,
	0x95, 0x52, 0x55, 0xcd, 0xa3, 0x5b, 0xd1, 0xf0, 0x56, 0xab, 0x86, 0x47, 0x94, 0xed, 0x84, 0x8c,
	0xbe, 0xce, 0x6e, 0xb8, 0xa6, 0xb3, 0x48, 0x48, 0xc6, 0xbf, 0xe1, 0x7d, 0xa3, 0xb4, 0x42, 0xaf,
	0x3b, 0x2e, 0x3e, 0x70, 0xb1, 0xe5, 0xe2, 0x9e, 0xfb, 0xe2, 0x65, 0xef, 0x45, 0xf7, 0x22, 0xa2,
	0x52, 0x2a, 0x4d, 0xb5, 0x50, 0xb2, 0xed, 0xd4, 0xe1, 0x6f, 0x07, 0xa0, 0x30, 0x6e, 0x73, 0xc1,
	0x6b, 0x86, 0x5e, 0x01, 0xdc, 0x9a, 0x61, 0xb3, 0xa7, 0xfa, 0x6e, 0xec, 0x4c, 0x9c, 0xa9, 0x4f,
	0x7c, 0xbb, 0xb2, 0xa2, 0xfa, 0x0e, 0xa5, 0x30, 0xdc, 0x29, 0xc6, 0xc7, 0xee, 0xc4, 0x99, 0x9e,
	0x5d, 0x44, 0xf8, 0xff, 0x47, 0xe3, 0x7b, 0x63, 0x7c, 0xa5, 0x18, 0x27, 0x56, 0x1c, 0x5e, 0xc2,
	0xd0, 0x20, 0xf4, 0x0c, 0x82, 0xab, 0xeb, 0x2c, 0xdf, 0x7c, 0x58, 0x96, 0xab, 0x3c, 0x2d, 0xe6,
	0x45, 0x9e, 0x05, 0x8f, 0xd0, 0x29, 0xf8, 0x71, 0x99, 0xe6, 0xcb, 0xac, 0x58, 0x2e, 0x02, 0x17,
	0x9d, 0x01, 0x64, 0xf9, 0x01, 0x0f, 0xc2, 0xef, 0x2e, 0x78, 0xd6, 0x16, 0x21, 0x18, 0x4a, 0xba,
	0xe3, 0x7d, 0x48, 0x3b, 0xa3, 0x37, 0x70, 0xba, 0x55, 0x75, 0xcd, 0xb7, 0xa6, 0xe2, 0x46, 0x30,
	0x1b, 0xd4, 0x27, 0x27, 0xf7, 0x8b, 0x05, 0x43, 0x09, 0x8c, 0x6c, 0xa3, 0x76, 0x3c, 0x98, 0x0c,
	0xa6, 0x4f, 0x2e, 0xce, 0x8f, 0xaf, 0x41, 0x7a, 0x25, 0x8a, 0xc1, 0x6b, 0x35, 0xd5, 0x7c, 0x3c,
	0xb2, 0x37, 0xf1, 0xee, 0x28, 0x0b, 0x5c, 0x1a, 0x09, 0xe9, 0x94, 0x61, 0x02, 0x9e, 0xc5, 0xe8,
	0x39, 0x3c, 0x2d, 0xd7, 0xf1, 0xfa, 0xef, 0x8b, 0x38, 0x81, 0xc7, 0x29, 0xc9, 0xe3, 0xb5, 0xed,
	0x8d, 0x7c, 0xf0, 0x48, 0x1e, 0x67, 0x9f, 0x02, 0xd7, 0x8c, 0x39, 0x21, 0xd7, 0x24, 0xf0, 0x92,
	0x9f, 0x0e, 0x84, 0x5b, 0xb5, 0x7b, 0xe0, 0xf4, 0xa4, 0x7b, 0xe1, 0x95, 0x79, 0xf0, 0x95, 0xf3,
	0x39, 0xed, 0xd9, 0x95, 0xaa, 0xa9, 0xac, 0xb0, 0x6a, 0xaa, 0xa8, 0xe2, 0xd2, 0x7e, 0x87, 0xa8,
	0xdb, 0xa2, 0x7b, 0xd1, 0xfe, 0xeb, 0xef, 0x5d, 0x5a, 0xf4, 0xc3, 0x1d, 0x2e, 0xd2, 0x79, 0xf9,
	0xcb, 0x7d, 0xbb, 0xe8, 0xcc, 0xd2, 0x5a, 0x7d, 0x61, 0x78, 0x7e, 0x08, 0x10, 0xdb, 0x00, 0x1f,
	0x67, 0x89, 0xd1, 0xdc, 0x8c, 0xac, 0xfb, 0xfb, 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x08, 0xcb,
	0x38, 0x95, 0xd8, 0x02, 0x00, 0x00,
}
