//
// * Copyright 2019 The Feast Authors
// *
// * Licensed 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
// *
// *     https://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.
//

// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.25.0
// 	protoc        v3.10.0
// source: feast/core/FeatureSet.proto

package core

import (
	types "github.com/feast-dev/feast/sdk/go/protos/feast/types"
	v0 "github.com/feast-dev/feast/sdk/go/protos/tensorflow_metadata/proto/v0"
	proto "github.com/golang/protobuf/proto"
	duration "github.com/golang/protobuf/ptypes/duration"
	timestamp "github.com/golang/protobuf/ptypes/timestamp"
	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)
)

// This is a compile-time assertion that a sufficiently up-to-date version
// of the legacy proto package is being used.
const _ = proto.ProtoPackageIsVersion4

type FeatureSetStatus int32

const (
	FeatureSetStatus_STATUS_INVALID      FeatureSetStatus = 0
	FeatureSetStatus_STATUS_PENDING      FeatureSetStatus = 1
	FeatureSetStatus_STATUS_JOB_STARTING FeatureSetStatus = 3
	FeatureSetStatus_STATUS_READY        FeatureSetStatus = 2
)

// Enum value maps for FeatureSetStatus.
var (
	FeatureSetStatus_name = map[int32]string{
		0: "STATUS_INVALID",
		1: "STATUS_PENDING",
		3: "STATUS_JOB_STARTING",
		2: "STATUS_READY",
	}
	FeatureSetStatus_value = map[string]int32{
		"STATUS_INVALID":      0,
		"STATUS_PENDING":      1,
		"STATUS_JOB_STARTING": 3,
		"STATUS_READY":        2,
	}
)

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

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

func (FeatureSetStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_feast_core_FeatureSet_proto_enumTypes[0].Descriptor()
}

func (FeatureSetStatus) Type() protoreflect.EnumType {
	return &file_feast_core_FeatureSet_proto_enumTypes[0]
}

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

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

type FeatureSetJobDeliveryStatus int32

const (
	FeatureSetJobDeliveryStatus_STATUS_IN_PROGRESS FeatureSetJobDeliveryStatus = 0
	FeatureSetJobDeliveryStatus_STATUS_DELIVERED   FeatureSetJobDeliveryStatus = 1
)

// Enum value maps for FeatureSetJobDeliveryStatus.
var (
	FeatureSetJobDeliveryStatus_name = map[int32]string{
		0: "STATUS_IN_PROGRESS",
		1: "STATUS_DELIVERED",
	}
	FeatureSetJobDeliveryStatus_value = map[string]int32{
		"STATUS_IN_PROGRESS": 0,
		"STATUS_DELIVERED":   1,
	}
)

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

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

func (FeatureSetJobDeliveryStatus) Descriptor() protoreflect.EnumDescriptor {
	return file_feast_core_FeatureSet_proto_enumTypes[1].Descriptor()
}

func (FeatureSetJobDeliveryStatus) Type() protoreflect.EnumType {
	return &file_feast_core_FeatureSet_proto_enumTypes[1]
}

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

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

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

	// User-specified specifications of this feature set.
	Spec *FeatureSetSpec `protobuf:"bytes,1,opt,name=spec,proto3" json:"spec,omitempty"`
	// System-populated metadata for this feature set.
	Meta *FeatureSetMeta `protobuf:"bytes,2,opt,name=meta,proto3" json:"meta,omitempty"`
}

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

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

func (*FeatureSet) ProtoMessage() {}

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

func (x *FeatureSet) GetSpec() *FeatureSetSpec {
	if x != nil {
		return x.Spec
	}
	return nil
}

func (x *FeatureSet) GetMeta() *FeatureSetMeta {
	if x != nil {
		return x.Meta
	}
	return nil
}

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

	// Name of project that this feature set belongs to.
	Project string `protobuf:"bytes,7,opt,name=project,proto3" json:"project,omitempty"`
	// Name of the feature set. Must be unique.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// List of entities contained within this featureSet.
	// This allows the feature to be used during joins between feature sets.
	// If the featureSet is ingested into a store that supports keys, this value
	// will be made a key.
	Entities []*EntitySpec `protobuf:"bytes,3,rep,name=entities,proto3" json:"entities,omitempty"`
	// List of features contained within this featureSet.
	Features []*FeatureSpec `protobuf:"bytes,4,rep,name=features,proto3" json:"features,omitempty"`
	// Features in this feature set will only be retrieved if they are found
	// after [time - max_age]. Missing or older feature values will be returned
	// as nulls and indicated to end user
	MaxAge *duration.Duration `protobuf:"bytes,5,opt,name=max_age,json=maxAge,proto3" json:"max_age,omitempty"`
	// Optional. Source on which feature rows can be found.
	// If not set, source will be set to the default value configured in Feast Core.
	Source *Source `protobuf:"bytes,6,opt,name=source,proto3" json:"source,omitempty"`
	// User defined metadata
	Labels map[string]string `protobuf:"bytes,8,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Read-only self-incrementing version that increases monotonically
	// when changes are made to a feature set
	Version int32 `protobuf:"varint,9,opt,name=version,proto3" json:"version,omitempty"`
}

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

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

func (*FeatureSetSpec) ProtoMessage() {}

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

func (x *FeatureSetSpec) GetProject() string {
	if x != nil {
		return x.Project
	}
	return ""
}

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

func (x *FeatureSetSpec) GetEntities() []*EntitySpec {
	if x != nil {
		return x.Entities
	}
	return nil
}

func (x *FeatureSetSpec) GetFeatures() []*FeatureSpec {
	if x != nil {
		return x.Features
	}
	return nil
}

func (x *FeatureSetSpec) GetMaxAge() *duration.Duration {
	if x != nil {
		return x.MaxAge
	}
	return nil
}

func (x *FeatureSetSpec) GetSource() *Source {
	if x != nil {
		return x.Source
	}
	return nil
}

func (x *FeatureSetSpec) GetLabels() map[string]string {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (x *FeatureSetSpec) GetVersion() int32 {
	if x != nil {
		return x.Version
	}
	return 0
}

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

	// Name of the entity.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Value type of the entity.
	ValueType types.ValueType_Enum `protobuf:"varint,2,opt,name=value_type,json=valueType,proto3,enum=feast.types.ValueType_Enum" json:"value_type,omitempty"`
}

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

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

func (*EntitySpec) ProtoMessage() {}

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

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

func (x *EntitySpec) GetValueType() types.ValueType_Enum {
	if x != nil {
		return x.ValueType
	}
	return types.ValueType_INVALID
}

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

	// Name of the feature.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Value type of the feature.
	ValueType types.ValueType_Enum `protobuf:"varint,2,opt,name=value_type,json=valueType,proto3,enum=feast.types.ValueType_Enum" json:"value_type,omitempty"`
	// Labels for user defined metadata on a feature
	Labels map[string]string `protobuf:"bytes,16,rep,name=labels,proto3" json:"labels,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	// Types that are assignable to PresenceConstraints:
	//	*FeatureSpec_Presence
	//	*FeatureSpec_GroupPresence
	PresenceConstraints isFeatureSpec_PresenceConstraints `protobuf_oneof:"presence_constraints"`
	// The shape of the feature which governs the number of values that appear in
	// each example.
	//
	// Types that are assignable to ShapeType:
	//	*FeatureSpec_Shape
	//	*FeatureSpec_ValueCount
	ShapeType isFeatureSpec_ShapeType `protobuf_oneof:"shape_type"`
	// Domain for the values of the feature.
	//
	// Types that are assignable to DomainInfo:
	//	*FeatureSpec_Domain
	//	*FeatureSpec_IntDomain
	//	*FeatureSpec_FloatDomain
	//	*FeatureSpec_StringDomain
	//	*FeatureSpec_BoolDomain
	//	*FeatureSpec_StructDomain
	//	*FeatureSpec_NaturalLanguageDomain
	//	*FeatureSpec_ImageDomain
	//	*FeatureSpec_MidDomain
	//	*FeatureSpec_UrlDomain
	//	*FeatureSpec_TimeDomain
	//	*FeatureSpec_TimeOfDayDomain
	DomainInfo isFeatureSpec_DomainInfo `protobuf_oneof:"domain_info"`
}

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

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

func (*FeatureSpec) ProtoMessage() {}

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

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

func (x *FeatureSpec) GetValueType() types.ValueType_Enum {
	if x != nil {
		return x.ValueType
	}
	return types.ValueType_INVALID
}

func (x *FeatureSpec) GetLabels() map[string]string {
	if x != nil {
		return x.Labels
	}
	return nil
}

func (m *FeatureSpec) GetPresenceConstraints() isFeatureSpec_PresenceConstraints {
	if m != nil {
		return m.PresenceConstraints
	}
	return nil
}

func (x *FeatureSpec) GetPresence() *v0.FeaturePresence {
	if x, ok := x.GetPresenceConstraints().(*FeatureSpec_Presence); ok {
		return x.Presence
	}
	return nil
}

func (x *FeatureSpec) GetGroupPresence() *v0.FeaturePresenceWithinGroup {
	if x, ok := x.GetPresenceConstraints().(*FeatureSpec_GroupPresence); ok {
		return x.GroupPresence
	}
	return nil
}

func (m *FeatureSpec) GetShapeType() isFeatureSpec_ShapeType {
	if m != nil {
		return m.ShapeType
	}
	return nil
}

func (x *FeatureSpec) GetShape() *v0.FixedShape {
	if x, ok := x.GetShapeType().(*FeatureSpec_Shape); ok {
		return x.Shape
	}
	return nil
}

func (x *FeatureSpec) GetValueCount() *v0.ValueCount {
	if x, ok := x.GetShapeType().(*FeatureSpec_ValueCount); ok {
		return x.ValueCount
	}
	return nil
}

func (m *FeatureSpec) GetDomainInfo() isFeatureSpec_DomainInfo {
	if m != nil {
		return m.DomainInfo
	}
	return nil
}

func (x *FeatureSpec) GetDomain() string {
	if x, ok := x.GetDomainInfo().(*FeatureSpec_Domain); ok {
		return x.Domain
	}
	return ""
}

func (x *FeatureSpec) GetIntDomain() *v0.IntDomain {
	if x, ok := x.GetDomainInfo().(*FeatureSpec_IntDomain); ok {
		return x.IntDomain
	}
	return nil
}

func (x *FeatureSpec) GetFloatDomain() *v0.FloatDomain {
	if x, ok := x.GetDomainInfo().(*FeatureSpec_FloatDomain); ok {
		return x.FloatDomain
	}
	return nil
}

func (x *FeatureSpec) GetStringDomain() *v0.StringDomain {
	if x, ok := x.GetDomainInfo().(*FeatureSpec_StringDomain); ok {
		return x.StringDomain
	}
	return nil
}

func (x *FeatureSpec) GetBoolDomain() *v0.BoolDomain {
	if x, ok := x.GetDomainInfo().(*FeatureSpec_BoolDomain); ok {
		return x.BoolDomain
	}
	return nil
}

func (x *FeatureSpec) GetStructDomain() *v0.StructDomain {
	if x, ok := x.GetDomainInfo().(*FeatureSpec_StructDomain); ok {
		return x.StructDomain
	}
	return nil
}

func (x *FeatureSpec) GetNaturalLanguageDomain() *v0.NaturalLanguageDomain {
	if x, ok := x.GetDomainInfo().(*FeatureSpec_NaturalLanguageDomain); ok {
		return x.NaturalLanguageDomain
	}
	return nil
}

func (x *FeatureSpec) GetImageDomain() *v0.ImageDomain {
	if x, ok := x.GetDomainInfo().(*FeatureSpec_ImageDomain); ok {
		return x.ImageDomain
	}
	return nil
}

func (x *FeatureSpec) GetMidDomain() *v0.MIDDomain {
	if x, ok := x.GetDomainInfo().(*FeatureSpec_MidDomain); ok {
		return x.MidDomain
	}
	return nil
}

func (x *FeatureSpec) GetUrlDomain() *v0.URLDomain {
	if x, ok := x.GetDomainInfo().(*FeatureSpec_UrlDomain); ok {
		return x.UrlDomain
	}
	return nil
}

func (x *FeatureSpec) GetTimeDomain() *v0.TimeDomain {
	if x, ok := x.GetDomainInfo().(*FeatureSpec_TimeDomain); ok {
		return x.TimeDomain
	}
	return nil
}

func (x *FeatureSpec) GetTimeOfDayDomain() *v0.TimeOfDayDomain {
	if x, ok := x.GetDomainInfo().(*FeatureSpec_TimeOfDayDomain); ok {
		return x.TimeOfDayDomain
	}
	return nil
}

type isFeatureSpec_PresenceConstraints interface {
	isFeatureSpec_PresenceConstraints()
}

type FeatureSpec_Presence struct {
	// Constraints on the presence of this feature in the examples.
	Presence *v0.FeaturePresence `protobuf:"bytes,30,opt,name=presence,proto3,oneof"`
}

type FeatureSpec_GroupPresence struct {
	// Only used in the context of a "group" context, e.g., inside a sequence.
	GroupPresence *v0.FeaturePresenceWithinGroup `protobuf:"bytes,31,opt,name=group_presence,json=groupPresence,proto3,oneof"`
}

func (*FeatureSpec_Presence) isFeatureSpec_PresenceConstraints() {}

func (*FeatureSpec_GroupPresence) isFeatureSpec_PresenceConstraints() {}

type isFeatureSpec_ShapeType interface {
	isFeatureSpec_ShapeType()
}

type FeatureSpec_Shape struct {
	// The feature has a fixed shape corresponding to a multi-dimensional
	// tensor.
	Shape *v0.FixedShape `protobuf:"bytes,32,opt,name=shape,proto3,oneof"`
}

type FeatureSpec_ValueCount struct {
	// The feature doesn't have a well defined shape. All we know are limits on
	// the minimum and maximum number of values.
	ValueCount *v0.ValueCount `protobuf:"bytes,33,opt,name=value_count,json=valueCount,proto3,oneof"`
}

func (*FeatureSpec_Shape) isFeatureSpec_ShapeType() {}

func (*FeatureSpec_ValueCount) isFeatureSpec_ShapeType() {}

type isFeatureSpec_DomainInfo interface {
	isFeatureSpec_DomainInfo()
}

type FeatureSpec_Domain struct {
	// Reference to a domain defined at the schema level.
	Domain string `protobuf:"bytes,34,opt,name=domain,proto3,oneof"`
}

type FeatureSpec_IntDomain struct {
	// Inline definitions of domains.
	IntDomain *v0.IntDomain `protobuf:"bytes,35,opt,name=int_domain,json=intDomain,proto3,oneof"`
}

type FeatureSpec_FloatDomain struct {
	FloatDomain *v0.FloatDomain `protobuf:"bytes,36,opt,name=float_domain,json=floatDomain,proto3,oneof"`
}

type FeatureSpec_StringDomain struct {
	StringDomain *v0.StringDomain `protobuf:"bytes,37,opt,name=string_domain,json=stringDomain,proto3,oneof"`
}

type FeatureSpec_BoolDomain struct {
	BoolDomain *v0.BoolDomain `protobuf:"bytes,38,opt,name=bool_domain,json=boolDomain,proto3,oneof"`
}

type FeatureSpec_StructDomain struct {
	StructDomain *v0.StructDomain `protobuf:"bytes,39,opt,name=struct_domain,json=structDomain,proto3,oneof"`
}

type FeatureSpec_NaturalLanguageDomain struct {
	// Supported semantic domains.
	NaturalLanguageDomain *v0.NaturalLanguageDomain `protobuf:"bytes,40,opt,name=natural_language_domain,json=naturalLanguageDomain,proto3,oneof"`
}

type FeatureSpec_ImageDomain struct {
	ImageDomain *v0.ImageDomain `protobuf:"bytes,41,opt,name=image_domain,json=imageDomain,proto3,oneof"`
}

type FeatureSpec_MidDomain struct {
	MidDomain *v0.MIDDomain `protobuf:"bytes,42,opt,name=mid_domain,json=midDomain,proto3,oneof"`
}

type FeatureSpec_UrlDomain struct {
	UrlDomain *v0.URLDomain `protobuf:"bytes,43,opt,name=url_domain,json=urlDomain,proto3,oneof"`
}

type FeatureSpec_TimeDomain struct {
	TimeDomain *v0.TimeDomain `protobuf:"bytes,44,opt,name=time_domain,json=timeDomain,proto3,oneof"`
}

type FeatureSpec_TimeOfDayDomain struct {
	TimeOfDayDomain *v0.TimeOfDayDomain `protobuf:"bytes,45,opt,name=time_of_day_domain,json=timeOfDayDomain,proto3,oneof"`
}

func (*FeatureSpec_Domain) isFeatureSpec_DomainInfo() {}

func (*FeatureSpec_IntDomain) isFeatureSpec_DomainInfo() {}

func (*FeatureSpec_FloatDomain) isFeatureSpec_DomainInfo() {}

func (*FeatureSpec_StringDomain) isFeatureSpec_DomainInfo() {}

func (*FeatureSpec_BoolDomain) isFeatureSpec_DomainInfo() {}

func (*FeatureSpec_StructDomain) isFeatureSpec_DomainInfo() {}

func (*FeatureSpec_NaturalLanguageDomain) isFeatureSpec_DomainInfo() {}

func (*FeatureSpec_ImageDomain) isFeatureSpec_DomainInfo() {}

func (*FeatureSpec_MidDomain) isFeatureSpec_DomainInfo() {}

func (*FeatureSpec_UrlDomain) isFeatureSpec_DomainInfo() {}

func (*FeatureSpec_TimeDomain) isFeatureSpec_DomainInfo() {}

func (*FeatureSpec_TimeOfDayDomain) isFeatureSpec_DomainInfo() {}

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

	// Created timestamp of this specific feature set.
	CreatedTimestamp *timestamp.Timestamp `protobuf:"bytes,1,opt,name=created_timestamp,json=createdTimestamp,proto3" json:"created_timestamp,omitempty"`
	// Status of the feature set.
	// Used to indicate whether the feature set is ready for consumption or ingestion.
	// Currently supports 2 states:
	// 1) STATUS_PENDING - A feature set is in pending state if Feast has not spun up the jobs
	// necessary to push rows for this feature set to stores subscribing to this feature set.
	// 2) STATUS_READY - Feature set is ready for consumption or ingestion
	Status FeatureSetStatus `protobuf:"varint,2,opt,name=status,proto3,enum=feast.core.FeatureSetStatus" json:"status,omitempty"`
}

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

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

func (*FeatureSetMeta) ProtoMessage() {}

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

func (x *FeatureSetMeta) GetCreatedTimestamp() *timestamp.Timestamp {
	if x != nil {
		return x.CreatedTimestamp
	}
	return nil
}

func (x *FeatureSetMeta) GetStatus() FeatureSetStatus {
	if x != nil {
		return x.Status
	}
	return FeatureSetStatus_STATUS_INVALID
}

var File_feast_core_FeatureSet_proto protoreflect.FileDescriptor

var file_feast_core_FeatureSet_proto_rawDesc = []byte{
	0x0a, 0x1b, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x66,
	0x65, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x1a, 0x17, 0x66, 0x65, 0x61, 0x73, 0x74,
	0x2f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2f, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x2e, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x1a, 0x17, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x2f, 0x53,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f,
	0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x29, 0x74, 0x65,
	0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x5f, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x76, 0x30, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x6d,
	0x61, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6c, 0x0a, 0x0a, 0x46, 0x65, 0x61, 0x74, 0x75,
	0x72, 0x65, 0x53, 0x65, 0x74, 0x12, 0x2e, 0x0a, 0x04, 0x73, 0x70, 0x65, 0x63, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65,
	0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x52,
	0x04, 0x73, 0x70, 0x65, 0x63, 0x12, 0x2e, 0x0a, 0x04, 0x6d, 0x65, 0x74, 0x61, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65,
	0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x52,
	0x04, 0x6d, 0x65, 0x74, 0x61, 0x22, 0xa2, 0x03, 0x0a, 0x0e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x53, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x6f, 0x6a,
	0x65, 0x63, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x72, 0x6f, 0x6a, 0x65,
	0x63, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09,
	0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69,
	0x65, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x66, 0x65, 0x61, 0x73, 0x74,
	0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x45, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63,
	0x52, 0x08, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x33, 0x0a, 0x08, 0x66, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x66,
	0x65, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72,
	0x65, 0x53, 0x70, 0x65, 0x63, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12,
	0x32, 0x0a, 0x07, 0x6d, 0x61, 0x78, 0x5f, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x6d, 0x61, 0x78,
	0x41, 0x67, 0x65, 0x12, 0x2a, 0x0a, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x06, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65,
	0x2e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x06, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12,
	0x3e, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x26, 0x2e, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x53, 0x70, 0x65, 0x63, 0x2e, 0x4c, 0x61, 0x62, 0x65,
	0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x12,
	0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05,
	0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x1a, 0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62,
	0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18,
	0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61,
	0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65,
	0x3a, 0x02, 0x38, 0x01, 0x4a, 0x04, 0x08, 0x02, 0x10, 0x03, 0x22, 0x5c, 0x0a, 0x0a, 0x45, 0x6e,
	0x74, 0x69, 0x74, 0x79, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0a,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x1b, 0x2e, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x22, 0xa0, 0x0b, 0x0a, 0x0b, 0x46, 0x65, 0x61,
	0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65,
	0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0a,
	0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e,
	0x32, 0x1b, 0x2e, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2e, 0x74, 0x79, 0x70, 0x65, 0x73, 0x2e, 0x56,
	0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x2e, 0x45, 0x6e, 0x75, 0x6d, 0x52, 0x09, 0x76,
	0x61, 0x6c, 0x75, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x06, 0x6c, 0x61, 0x62, 0x65,
	0x6c, 0x73, 0x18, 0x10, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x65, 0x61, 0x73, 0x74,
	0x2e, 0x63, 0x6f, 0x72, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x70, 0x65,
	0x63, 0x2e, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x6c,
	0x61, 0x62, 0x65, 0x6c, 0x73, 0x12, 0x45, 0x0a, 0x08, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63,
	0x65, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72,
	0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x30,
	0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65,
	0x48, 0x00, 0x52, 0x08, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x0e,
	0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x70, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x1f,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f,
	0x77, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x46, 0x65,
	0x61, 0x74, 0x75, 0x72, 0x65, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x57, 0x69, 0x74,
	0x68, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x48, 0x00, 0x52, 0x0d, 0x67, 0x72, 0x6f, 0x75,
	0x70, 0x50, 0x72, 0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x3a, 0x0a, 0x05, 0x73, 0x68, 0x61,
	0x70, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6e, 0x73, 0x6f,
	0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76,
	0x30, 0x2e, 0x46, 0x69, 0x78, 0x65, 0x64, 0x53, 0x68, 0x61, 0x70, 0x65, 0x48, 0x01, 0x52, 0x05,
	0x73, 0x68, 0x61, 0x70, 0x65, 0x12, 0x45, 0x0a, 0x0b, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x5f, 0x63,
	0x6f, 0x75, 0x6e, 0x74, 0x18, 0x21, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6e,
	0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x76, 0x30, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x48, 0x01,
	0x52, 0x0a, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x06,
	0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x06,
	0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x0a, 0x69, 0x6e, 0x74, 0x5f, 0x64, 0x6f,
	0x6d, 0x61, 0x69, 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74, 0x65, 0x6e,
	0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61,
	0x2e, 0x76, 0x30, 0x2e, 0x49, 0x6e, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x48, 0x02, 0x52,
	0x09, 0x69, 0x6e, 0x74, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x48, 0x0a, 0x0c, 0x66, 0x6c,
	0x6f, 0x61, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x24, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x23, 0x2e, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x6d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x46, 0x6c, 0x6f, 0x61, 0x74, 0x44,
	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x0b, 0x66, 0x6c, 0x6f, 0x61, 0x74, 0x44, 0x6f,
	0x6d, 0x61, 0x69, 0x6e, 0x12, 0x4b, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x5f, 0x64,
	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x25, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x74, 0x65,
	0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74,
	0x61, 0x2e, 0x76, 0x30, 0x2e, 0x53, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69,
	0x6e, 0x48, 0x02, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x69, 0x6e, 0x67, 0x44, 0x6f, 0x6d, 0x61, 0x69,
	0x6e, 0x12, 0x45, 0x0a, 0x0b, 0x62, 0x6f, 0x6f, 0x6c, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
	0x18, 0x26, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66,
	0x6c, 0x6f, 0x77, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x30, 0x2e,
	0x42, 0x6f, 0x6f, 0x6c, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x0a, 0x62, 0x6f,
	0x6f, 0x6c, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x4b, 0x0a, 0x0d, 0x73, 0x74, 0x72, 0x75,
	0x63, 0x74, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x27, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x24, 0x2e, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x6d, 0x65, 0x74,
	0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x44,
	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x0c, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x44,
	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x67, 0x0a, 0x17, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x61, 0x6c,
	0x5f, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
	0x18, 0x28, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66,
	0x6c, 0x6f, 0x77, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x30, 0x2e,
	0x4e, 0x61, 0x74, 0x75, 0x72, 0x61, 0x6c, 0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x44,
	0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x15, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x61, 0x6c,
	0x4c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x48,
	0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x29,
	0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f,
	0x77, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x49, 0x6d,
	0x61, 0x67, 0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x0b, 0x69, 0x6d, 0x61,
	0x67, 0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x0a, 0x6d, 0x69, 0x64, 0x5f,
	0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x74,
	0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61,
	0x74, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x4d, 0x49, 0x44, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x48,
	0x02, 0x52, 0x09, 0x6d, 0x69, 0x64, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x42, 0x0a, 0x0a,
	0x75, 0x72, 0x6c, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x2b, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x21, 0x2e, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77, 0x2e, 0x6d, 0x65,
	0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x55, 0x52, 0x4c, 0x44, 0x6f, 0x6d,
	0x61, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x09, 0x75, 0x72, 0x6c, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e,
	0x12, 0x45, 0x0a, 0x0b, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18,
	0x2c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c,
	0x6f, 0x77, 0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x54,
	0x69, 0x6d, 0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x0a, 0x74, 0x69, 0x6d,
	0x65, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x12, 0x56, 0x0a, 0x12, 0x74, 0x69, 0x6d, 0x65, 0x5f,
	0x6f, 0x66, 0x5f, 0x64, 0x61, 0x79, 0x5f, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x2d, 0x20,
	0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x74, 0x65, 0x6e, 0x73, 0x6f, 0x72, 0x66, 0x6c, 0x6f, 0x77,
	0x2e, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x2e, 0x76, 0x30, 0x2e, 0x54, 0x69, 0x6d,
	0x65, 0x4f, 0x66, 0x44, 0x61, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x48, 0x02, 0x52, 0x0f,
	0x74, 0x69, 0x6d, 0x65, 0x4f, 0x66, 0x44, 0x61, 0x79, 0x44, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x1a,
	0x39, 0x0a, 0x0b, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10,
	0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79,
	0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x42, 0x16, 0x0a, 0x14, 0x70, 0x72,
	0x65, 0x73, 0x65, 0x6e, 0x63, 0x65, 0x5f, 0x63, 0x6f, 0x6e, 0x73, 0x74, 0x72, 0x61, 0x69, 0x6e,
	0x74, 0x73, 0x42, 0x0c, 0x0a, 0x0a, 0x73, 0x68, 0x61, 0x70, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65,
	0x42, 0x0d, 0x0a, 0x0b, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x4a,
	0x04, 0x08, 0x03, 0x10, 0x10, 0x4a, 0x04, 0x08, 0x11, 0x10, 0x1e, 0x22, 0x8f, 0x01, 0x0a, 0x0e,
	0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x61, 0x12, 0x47,
	0x0a, 0x11, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74,
	0x61, 0x6d, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67,
	0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65,
	0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x10, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69,
	0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x34, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2e,
	0x63, 0x6f, 0x72, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x53,
	0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x65, 0x0a,
	0x10, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75,
	0x73, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x56, 0x41,
	0x4c, 0x49, 0x44, 0x10, 0x00, 0x12, 0x12, 0x0a, 0x0e, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f,
	0x50, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x54, 0x41,
	0x54, 0x55, 0x53, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x53, 0x54, 0x41, 0x52, 0x54, 0x49, 0x4e, 0x47,
	0x10, 0x03, 0x12, 0x10, 0x0a, 0x0c, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x41,
	0x44, 0x59, 0x10, 0x02, 0x2a, 0x4b, 0x0a, 0x1b, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53,
	0x65, 0x74, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x6c, 0x69, 0x76, 0x65, 0x72, 0x79, 0x53, 0x74, 0x61,
	0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e,
	0x5f, 0x50, 0x52, 0x4f, 0x47, 0x52, 0x45, 0x53, 0x53, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x53,
	0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x44, 0x45, 0x4c, 0x49, 0x56, 0x45, 0x52, 0x45, 0x44, 0x10,
	0x01, 0x42, 0x58, 0x0a, 0x10, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x2e, 0x63, 0x6f, 0x72, 0x65, 0x42, 0x0f, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x53, 0x65,
	0x74, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x5a, 0x33, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63,
	0x6f, 0x6d, 0x2f, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2d, 0x64, 0x65, 0x76, 0x2f, 0x66, 0x65, 0x61,
	0x73, 0x74, 0x2f, 0x73, 0x64, 0x6b, 0x2f, 0x67, 0x6f, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x73,
	0x2f, 0x66, 0x65, 0x61, 0x73, 0x74, 0x2f, 0x63, 0x6f, 0x72, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f,
	0x74, 0x6f, 0x33,
}

var (
	file_feast_core_FeatureSet_proto_rawDescOnce sync.Once
	file_feast_core_FeatureSet_proto_rawDescData = file_feast_core_FeatureSet_proto_rawDesc
)

func file_feast_core_FeatureSet_proto_rawDescGZIP() []byte {
	file_feast_core_FeatureSet_proto_rawDescOnce.Do(func() {
		file_feast_core_FeatureSet_proto_rawDescData = protoimpl.X.CompressGZIP(file_feast_core_FeatureSet_proto_rawDescData)
	})
	return file_feast_core_FeatureSet_proto_rawDescData
}

var file_feast_core_FeatureSet_proto_enumTypes = make([]protoimpl.EnumInfo, 2)
var file_feast_core_FeatureSet_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_feast_core_FeatureSet_proto_goTypes = []interface{}{
	(FeatureSetStatus)(0),                 // 0: feast.core.FeatureSetStatus
	(FeatureSetJobDeliveryStatus)(0),      // 1: feast.core.FeatureSetJobDeliveryStatus
	(*FeatureSet)(nil),                    // 2: feast.core.FeatureSet
	(*FeatureSetSpec)(nil),                // 3: feast.core.FeatureSetSpec
	(*EntitySpec)(nil),                    // 4: feast.core.EntitySpec
	(*FeatureSpec)(nil),                   // 5: feast.core.FeatureSpec
	(*FeatureSetMeta)(nil),                // 6: feast.core.FeatureSetMeta
	nil,                                   // 7: feast.core.FeatureSetSpec.LabelsEntry
	nil,                                   // 8: feast.core.FeatureSpec.LabelsEntry
	(*duration.Duration)(nil),             // 9: google.protobuf.Duration
	(*Source)(nil),                        // 10: feast.core.Source
	(types.ValueType_Enum)(0),             // 11: feast.types.ValueType.Enum
	(*v0.FeaturePresence)(nil),            // 12: tensorflow.metadata.v0.FeaturePresence
	(*v0.FeaturePresenceWithinGroup)(nil), // 13: tensorflow.metadata.v0.FeaturePresenceWithinGroup
	(*v0.FixedShape)(nil),                 // 14: tensorflow.metadata.v0.FixedShape
	(*v0.ValueCount)(nil),                 // 15: tensorflow.metadata.v0.ValueCount
	(*v0.IntDomain)(nil),                  // 16: tensorflow.metadata.v0.IntDomain
	(*v0.FloatDomain)(nil),                // 17: tensorflow.metadata.v0.FloatDomain
	(*v0.StringDomain)(nil),               // 18: tensorflow.metadata.v0.StringDomain
	(*v0.BoolDomain)(nil),                 // 19: tensorflow.metadata.v0.BoolDomain
	(*v0.StructDomain)(nil),               // 20: tensorflow.metadata.v0.StructDomain
	(*v0.NaturalLanguageDomain)(nil),      // 21: tensorflow.metadata.v0.NaturalLanguageDomain
	(*v0.ImageDomain)(nil),                // 22: tensorflow.metadata.v0.ImageDomain
	(*v0.MIDDomain)(nil),                  // 23: tensorflow.metadata.v0.MIDDomain
	(*v0.URLDomain)(nil),                  // 24: tensorflow.metadata.v0.URLDomain
	(*v0.TimeDomain)(nil),                 // 25: tensorflow.metadata.v0.TimeDomain
	(*v0.TimeOfDayDomain)(nil),            // 26: tensorflow.metadata.v0.TimeOfDayDomain
	(*timestamp.Timestamp)(nil),           // 27: google.protobuf.Timestamp
}
var file_feast_core_FeatureSet_proto_depIdxs = []int32{
	3,  // 0: feast.core.FeatureSet.spec:type_name -> feast.core.FeatureSetSpec
	6,  // 1: feast.core.FeatureSet.meta:type_name -> feast.core.FeatureSetMeta
	4,  // 2: feast.core.FeatureSetSpec.entities:type_name -> feast.core.EntitySpec
	5,  // 3: feast.core.FeatureSetSpec.features:type_name -> feast.core.FeatureSpec
	9,  // 4: feast.core.FeatureSetSpec.max_age:type_name -> google.protobuf.Duration
	10, // 5: feast.core.FeatureSetSpec.source:type_name -> feast.core.Source
	7,  // 6: feast.core.FeatureSetSpec.labels:type_name -> feast.core.FeatureSetSpec.LabelsEntry
	11, // 7: feast.core.EntitySpec.value_type:type_name -> feast.types.ValueType.Enum
	11, // 8: feast.core.FeatureSpec.value_type:type_name -> feast.types.ValueType.Enum
	8,  // 9: feast.core.FeatureSpec.labels:type_name -> feast.core.FeatureSpec.LabelsEntry
	12, // 10: feast.core.FeatureSpec.presence:type_name -> tensorflow.metadata.v0.FeaturePresence
	13, // 11: feast.core.FeatureSpec.group_presence:type_name -> tensorflow.metadata.v0.FeaturePresenceWithinGroup
	14, // 12: feast.core.FeatureSpec.shape:type_name -> tensorflow.metadata.v0.FixedShape
	15, // 13: feast.core.FeatureSpec.value_count:type_name -> tensorflow.metadata.v0.ValueCount
	16, // 14: feast.core.FeatureSpec.int_domain:type_name -> tensorflow.metadata.v0.IntDomain
	17, // 15: feast.core.FeatureSpec.float_domain:type_name -> tensorflow.metadata.v0.FloatDomain
	18, // 16: feast.core.FeatureSpec.string_domain:type_name -> tensorflow.metadata.v0.StringDomain
	19, // 17: feast.core.FeatureSpec.bool_domain:type_name -> tensorflow.metadata.v0.BoolDomain
	20, // 18: feast.core.FeatureSpec.struct_domain:type_name -> tensorflow.metadata.v0.StructDomain
	21, // 19: feast.core.FeatureSpec.natural_language_domain:type_name -> tensorflow.metadata.v0.NaturalLanguageDomain
	22, // 20: feast.core.FeatureSpec.image_domain:type_name -> tensorflow.metadata.v0.ImageDomain
	23, // 21: feast.core.FeatureSpec.mid_domain:type_name -> tensorflow.metadata.v0.MIDDomain
	24, // 22: feast.core.FeatureSpec.url_domain:type_name -> tensorflow.metadata.v0.URLDomain
	25, // 23: feast.core.FeatureSpec.time_domain:type_name -> tensorflow.metadata.v0.TimeDomain
	26, // 24: feast.core.FeatureSpec.time_of_day_domain:type_name -> tensorflow.metadata.v0.TimeOfDayDomain
	27, // 25: feast.core.FeatureSetMeta.created_timestamp:type_name -> google.protobuf.Timestamp
	0,  // 26: feast.core.FeatureSetMeta.status:type_name -> feast.core.FeatureSetStatus
	27, // [27:27] is the sub-list for method output_type
	27, // [27:27] is the sub-list for method input_type
	27, // [27:27] is the sub-list for extension type_name
	27, // [27:27] is the sub-list for extension extendee
	0,  // [0:27] is the sub-list for field type_name
}

func init() { file_feast_core_FeatureSet_proto_init() }
func file_feast_core_FeatureSet_proto_init() {
	if File_feast_core_FeatureSet_proto != nil {
		return
	}
	file_feast_core_Source_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_feast_core_FeatureSet_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FeatureSet); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_feast_core_FeatureSet_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FeatureSetSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_feast_core_FeatureSet_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*EntitySpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_feast_core_FeatureSet_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FeatureSpec); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_feast_core_FeatureSet_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*FeatureSetMeta); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_feast_core_FeatureSet_proto_msgTypes[3].OneofWrappers = []interface{}{
		(*FeatureSpec_Presence)(nil),
		(*FeatureSpec_GroupPresence)(nil),
		(*FeatureSpec_Shape)(nil),
		(*FeatureSpec_ValueCount)(nil),
		(*FeatureSpec_Domain)(nil),
		(*FeatureSpec_IntDomain)(nil),
		(*FeatureSpec_FloatDomain)(nil),
		(*FeatureSpec_StringDomain)(nil),
		(*FeatureSpec_BoolDomain)(nil),
		(*FeatureSpec_StructDomain)(nil),
		(*FeatureSpec_NaturalLanguageDomain)(nil),
		(*FeatureSpec_ImageDomain)(nil),
		(*FeatureSpec_MidDomain)(nil),
		(*FeatureSpec_UrlDomain)(nil),
		(*FeatureSpec_TimeDomain)(nil),
		(*FeatureSpec_TimeOfDayDomain)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_feast_core_FeatureSet_proto_rawDesc,
			NumEnums:      2,
			NumMessages:   7,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_feast_core_FeatureSet_proto_goTypes,
		DependencyIndexes: file_feast_core_FeatureSet_proto_depIdxs,
		EnumInfos:         file_feast_core_FeatureSet_proto_enumTypes,
		MessageInfos:      file_feast_core_FeatureSet_proto_msgTypes,
	}.Build()
	File_feast_core_FeatureSet_proto = out.File
	file_feast_core_FeatureSet_proto_rawDesc = nil
	file_feast_core_FeatureSet_proto_goTypes = nil
	file_feast_core_FeatureSet_proto_depIdxs = nil
}
