// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.30.0
// 	protoc        (unknown)
// source: model/resource.proto

package model

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	_ "google.golang.org/protobuf/types/descriptorpb"
	structpb "google.golang.org/protobuf/types/known/structpb"
	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 Order int32

const (
	Order_ORDER_UNKNOWN Order = 0
	Order_ORDER_ASC     Order = 1
	Order_ORDER_DESC    Order = 2
)

// Enum value maps for Order.
var (
	Order_name = map[int32]string{
		0: "ORDER_UNKNOWN",
		1: "ORDER_ASC",
		2: "ORDER_DESC",
	}
	Order_value = map[string]int32{
		"ORDER_UNKNOWN": 0,
		"ORDER_ASC":     1,
		"ORDER_DESC":    2,
	}
)

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

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

func (Order) Descriptor() protoreflect.EnumDescriptor {
	return file_model_resource_proto_enumTypes[0].Descriptor()
}

func (Order) Type() protoreflect.EnumType {
	return &file_model_resource_proto_enumTypes[0]
}

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

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

type ResourceIndexType int32

const (
	ResourceIndexType_BTREE ResourceIndexType = 0
	ResourceIndexType_HASH  ResourceIndexType = 1
)

// Enum value maps for ResourceIndexType.
var (
	ResourceIndexType_name = map[int32]string{
		0: "BTREE",
		1: "HASH",
	}
	ResourceIndexType_value = map[string]int32{
		"BTREE": 0,
		"HASH":  1,
	}
)

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

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

func (ResourceIndexType) Descriptor() protoreflect.EnumDescriptor {
	return file_model_resource_proto_enumTypes[1].Descriptor()
}

func (ResourceIndexType) Type() protoreflect.EnumType {
	return &file_model_resource_proto_enumTypes[1]
}

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

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

type ResourceProperty_Type int32

const (
	ResourceProperty_BOOL      ResourceProperty_Type = 0
	ResourceProperty_STRING    ResourceProperty_Type = 1
	ResourceProperty_FLOAT32   ResourceProperty_Type = 2
	ResourceProperty_FLOAT64   ResourceProperty_Type = 3
	ResourceProperty_INT32     ResourceProperty_Type = 4
	ResourceProperty_INT64     ResourceProperty_Type = 5
	ResourceProperty_BYTES     ResourceProperty_Type = 6
	ResourceProperty_UUID      ResourceProperty_Type = 8
	ResourceProperty_DATE      ResourceProperty_Type = 9
	ResourceProperty_TIME      ResourceProperty_Type = 10
	ResourceProperty_TIMESTAMP ResourceProperty_Type = 11
	ResourceProperty_OBJECT    ResourceProperty_Type = 12
	ResourceProperty_MAP       ResourceProperty_Type = 13
	ResourceProperty_LIST      ResourceProperty_Type = 14
	ResourceProperty_REFERENCE ResourceProperty_Type = 15
	ResourceProperty_ENUM      ResourceProperty_Type = 16
	ResourceProperty_STRUCT    ResourceProperty_Type = 17
)

// Enum value maps for ResourceProperty_Type.
var (
	ResourceProperty_Type_name = map[int32]string{
		0:  "BOOL",
		1:  "STRING",
		2:  "FLOAT32",
		3:  "FLOAT64",
		4:  "INT32",
		5:  "INT64",
		6:  "BYTES",
		8:  "UUID",
		9:  "DATE",
		10: "TIME",
		11: "TIMESTAMP",
		12: "OBJECT",
		13: "MAP",
		14: "LIST",
		15: "REFERENCE",
		16: "ENUM",
		17: "STRUCT",
	}
	ResourceProperty_Type_value = map[string]int32{
		"BOOL":      0,
		"STRING":    1,
		"FLOAT32":   2,
		"FLOAT64":   3,
		"INT32":     4,
		"INT64":     5,
		"BYTES":     6,
		"UUID":      8,
		"DATE":      9,
		"TIME":      10,
		"TIMESTAMP": 11,
		"OBJECT":    12,
		"MAP":       13,
		"LIST":      14,
		"REFERENCE": 15,
		"ENUM":      16,
		"STRUCT":    17,
	}
)

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

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

func (ResourceProperty_Type) Descriptor() protoreflect.EnumDescriptor {
	return file_model_resource_proto_enumTypes[2].Descriptor()
}

func (ResourceProperty_Type) Type() protoreflect.EnumType {
	return &file_model_resource_proto_enumTypes[2]
}

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

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

// Resource properties is used to describe its schema. Each resource property is corresponding to a field in a record
// API Brew is responsible to validate data according to property types. For example, when you call create record and
// if you send 123.45 for int64
type ResourceProperty struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	// property name
	Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`
	// type of property
	Type ResourceProperty_Type `protobuf:"varint,3,opt,name=type,proto3,enum=model.ResourceProperty_Type" json:"type,omitempty"`
	// type ref
	TypeRef *string `protobuf:"bytes,17,opt,name=typeRef,proto3,oneof" json:"typeRef,omitempty"` // type ref, is only applicable to Struct
	// this is to mark property as required
	Required      bool              `protobuf:"varint,5,opt,name=required,proto3" json:"required,omitempty"`
	Primary       bool              `protobuf:"varint,6,opt,name=primary,proto3" json:"primary,omitempty"`
	Length        uint32            `protobuf:"varint,7,opt,name=length,proto3" json:"length,omitempty"` // length property is only valid and required for String typed properties
	Unique        bool              `protobuf:"varint,8,opt,name=unique,proto3" json:"unique,omitempty"`
	Immutable     bool              `protobuf:"varint,9,opt,name=immutable,proto3" json:"immutable,omitempty"`               // immutable is to mark property as immutable. If marked, updates on this field on records will be discarded
	Virtual       bool              `protobuf:"varint,10,opt,name=virtual,proto3" json:"virtual,omitempty"`                  // virtual is to mark property as virtual. Virtual properties are not stored on backend. They are calculated on the fly
	DefaultValue  *structpb.Value   `protobuf:"bytes,11,opt,name=defaultValue,proto3,oneof" json:"defaultValue,omitempty"`   // defaultValue is default value.
	ExampleValue  *structpb.Value   `protobuf:"bytes,12,opt,name=exampleValue,proto3,oneof" json:"exampleValue,omitempty"`   // exampleValue is example value. It is an informative column
	EnumValues    []string          `protobuf:"bytes,13,rep,name=enumValues,proto3" json:"enumValues,omitempty"`             // enumValues is used if property type is an enum
	Reference     *Reference        `protobuf:"bytes,14,opt,name=reference,proto3,oneof" json:"reference,omitempty"`         // reference property is only valid and required for Reference types.
	BackReference *BackReference    `protobuf:"bytes,15,opt,name=backReference,proto3,oneof" json:"backReference,omitempty"` // reference property is only valid and required for Reference types.
	Item          *ResourceProperty `protobuf:"bytes,18,opt,name=item,proto3,oneof" json:"item,omitempty"`                   // item is used for complex types(list, map). For list, subType is element type. For map, it is value type(key type is always string)
	Title         *string           `protobuf:"bytes,19,opt,name=title,proto3,oneof" json:"title,omitempty"`                 // It is an informative column
	Description   *string           `protobuf:"bytes,20,opt,name=description,proto3,oneof" json:"description,omitempty"`     // It is an informative column
	Annotations   map[string]string `protobuf:"bytes,103,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*ResourceProperty) ProtoMessage() {}

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

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

func (x *ResourceProperty) GetType() ResourceProperty_Type {
	if x != nil {
		return x.Type
	}
	return ResourceProperty_BOOL
}

func (x *ResourceProperty) GetTypeRef() string {
	if x != nil && x.TypeRef != nil {
		return *x.TypeRef
	}
	return ""
}

func (x *ResourceProperty) GetRequired() bool {
	if x != nil {
		return x.Required
	}
	return false
}

func (x *ResourceProperty) GetPrimary() bool {
	if x != nil {
		return x.Primary
	}
	return false
}

func (x *ResourceProperty) GetLength() uint32 {
	if x != nil {
		return x.Length
	}
	return 0
}

func (x *ResourceProperty) GetUnique() bool {
	if x != nil {
		return x.Unique
	}
	return false
}

func (x *ResourceProperty) GetImmutable() bool {
	if x != nil {
		return x.Immutable
	}
	return false
}

func (x *ResourceProperty) GetVirtual() bool {
	if x != nil {
		return x.Virtual
	}
	return false
}

func (x *ResourceProperty) GetDefaultValue() *structpb.Value {
	if x != nil {
		return x.DefaultValue
	}
	return nil
}

func (x *ResourceProperty) GetExampleValue() *structpb.Value {
	if x != nil {
		return x.ExampleValue
	}
	return nil
}

func (x *ResourceProperty) GetEnumValues() []string {
	if x != nil {
		return x.EnumValues
	}
	return nil
}

func (x *ResourceProperty) GetReference() *Reference {
	if x != nil {
		return x.Reference
	}
	return nil
}

func (x *ResourceProperty) GetBackReference() *BackReference {
	if x != nil {
		return x.BackReference
	}
	return nil
}

func (x *ResourceProperty) GetItem() *ResourceProperty {
	if x != nil {
		return x.Item
	}
	return nil
}

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

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

func (x *ResourceProperty) GetAnnotations() map[string]string {
	if x != nil {
		return x.Annotations
	}
	return nil
}

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

	Namespace string `protobuf:"bytes,1,opt,name=namespace,proto3" json:"namespace,omitempty"` // referenced resource namespace
	Resource  string `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"`   // referenced resource name
}

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

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

func (*Reference) ProtoMessage() {}

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

func (x *Reference) GetNamespace() string {
	if x != nil {
		return x.Namespace
	}
	return ""
}

func (x *Reference) GetResource() string {
	if x != nil {
		return x.Resource
	}
	return ""
}

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

	Property string `protobuf:"bytes,3,opt,name=property,proto3" json:"property,omitempty"`
}

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

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

func (*BackReference) ProtoMessage() {}

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

func (x *BackReference) GetProperty() string {
	if x != nil {
		return x.Property
	}
	return ""
}

// source config is to configure resource and bind it to data-source and an entity inside data source.
// An entity is like a table on sql databases or collection on mongodb etc.
type ResourceSourceConfig struct {
	state         protoimpl.MessageState
	sizeCache     protoimpl.SizeCache
	unknownFields protoimpl.UnknownFields

	DataSource string `protobuf:"bytes,1,opt,name=dataSource,proto3" json:"dataSource,omitempty"` // data source name: where resource structure and its data will be physically exists. Data source name is required if resource is not virtual
	Catalog    string `protobuf:"bytes,2,opt,name=catalog,proto3" json:"catalog,omitempty"`       // catalog is like a folder/schema/database. It is changing from backend to backend. Basically it is for grouping entities
	Entity     string `protobuf:"bytes,3,opt,name=entity,proto3" json:"entity,omitempty"`         // entity name an item on datasource backend where resource will be bound. For sql databases it is table name, for mongo it is collection name, etc.
}

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

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

func (*ResourceSourceConfig) ProtoMessage() {}

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

func (x *ResourceSourceConfig) GetDataSource() string {
	if x != nil {
		return x.DataSource
	}
	return ""
}

func (x *ResourceSourceConfig) GetCatalog() string {
	if x != nil {
		return x.Catalog
	}
	return ""
}

func (x *ResourceSourceConfig) GetEntity() string {
	if x != nil {
		return x.Entity
	}
	return ""
}

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

	Name  string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Order Order  `protobuf:"varint,2,opt,name=order,proto3,enum=model.Order" json:"order,omitempty"`
}

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

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

func (*ResourceIndexProperty) ProtoMessage() {}

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

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

func (x *ResourceIndexProperty) GetOrder() Order {
	if x != nil {
		return x.Order
	}
	return Order_ORDER_UNKNOWN
}

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

	Properties  []*ResourceIndexProperty `protobuf:"bytes,1,rep,name=properties,proto3" json:"properties,omitempty"`                             // list of properties inside single index. Normally you will need only single property. Multi property will be needed for multi property indexes(for complex indexes)
	IndexType   ResourceIndexType        `protobuf:"varint,2,opt,name=indexType,proto3,enum=model.ResourceIndexType" json:"indexType,omitempty"` // Index type(BTREE, HASH)
	Unique      bool                     `protobuf:"varint,3,opt,name=unique,proto3" json:"unique,omitempty"`                                    // if true index will be unique index
	Annotations map[string]string        `protobuf:"bytes,103,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*ResourceIndex) ProtoMessage() {}

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

func (x *ResourceIndex) GetProperties() []*ResourceIndexProperty {
	if x != nil {
		return x.Properties
	}
	return nil
}

func (x *ResourceIndex) GetIndexType() ResourceIndexType {
	if x != nil {
		return x.IndexType
	}
	return ResourceIndexType_BTREE
}

func (x *ResourceIndex) GetUnique() bool {
	if x != nil {
		return x.Unique
	}
	return false
}

func (x *ResourceIndex) GetAnnotations() map[string]string {
	if x != nil {
		return x.Annotations
	}
	return nil
}

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

	Name        string              `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Title       string              `protobuf:"bytes,2,opt,name=title,proto3" json:"title,omitempty"`
	Description string              `protobuf:"bytes,3,opt,name=description,proto3" json:"description,omitempty"`
	Properties  []*ResourceProperty `protobuf:"bytes,6,rep,name=properties,proto3" json:"properties,omitempty"` // list of properties of resource. This properties will be used by records of resource. Properties is columns on sql databases. For schemaless data structures properties is only managed by API Brew itself
	Annotations map[string]string   `protobuf:"bytes,103,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*ResourceSubType) ProtoMessage() {}

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

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

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

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

func (x *ResourceSubType) GetProperties() []*ResourceProperty {
	if x != nil {
		return x.Properties
	}
	return nil
}

func (x *ResourceSubType) GetAnnotations() map[string]string {
	if x != nil {
		return x.Annotations
	}
	return nil
}

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

	Id              string                `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"`                     // unique resource id; read only
	Name            string                `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"`                 // unique resource name, it is unique per namespace
	Namespace       string                `protobuf:"bytes,3,opt,name=namespace,proto3" json:"namespace,omitempty"`       // each resource is kept inside a namespace. One namespace can have multiple resources
	SourceConfig    *ResourceSourceConfig `protobuf:"bytes,5,opt,name=sourceConfig,proto3" json:"sourceConfig,omitempty"` //
	Properties      []*ResourceProperty   `protobuf:"bytes,6,rep,name=properties,proto3" json:"properties,omitempty"`     // list of properties of resource. This properties will be used by records of resource. Properties is columns on sql databases. For schemaless data structures properties is only managed by API Brew itself
	Types           []*ResourceSubType    `protobuf:"bytes,7,rep,name=types,proto3" json:"types,omitempty"`
	Indexes         []*ResourceIndex      `protobuf:"bytes,8,rep,name=indexes,proto3" json:"indexes,omitempty"`       // list of resource indexes. Its implementation is depending on data source backend and may not be supported by some backends.
	Virtual         bool                  `protobuf:"varint,11,opt,name=virtual,proto3" json:"virtual,omitempty"`     // If virtual is true. Operations will not phisically affect datasource/backend. Virtual resources is for   extension purposes. Their behaviors can be extended and altered. It can also be used to integrate 3rd party systems.
	Immutable       bool                  `protobuf:"varint,12,opt,name=immutable,proto3" json:"immutable,omitempty"` // if true, delete and update will not be allowed on this resource
	Abstract        bool                  `protobuf:"varint,13,opt,name=abstract,proto3" json:"abstract,omitempty"`   // if abstract, resource is only available to internal and extension side operations
	CheckReferences bool                  `protobuf:"varint,16,opt,name=checkReferences,proto3" json:"checkReferences,omitempty"`
	Title           *string               `protobuf:"bytes,14,opt,name=title,proto3,oneof" json:"title,omitempty"`
	Description     *string               `protobuf:"bytes,15,opt,name=description,proto3,oneof" json:"description,omitempty"`
	AuditData       *AuditData            `protobuf:"bytes,101,opt,name=auditData,proto3" json:"auditData,omitempty"`
	Version         uint32                `protobuf:"varint,102,opt,name=version,proto3" json:"version,omitempty"`
	Annotations     map[string]string     `protobuf:"bytes,103,rep,name=annotations,proto3" json:"annotations,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
}

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

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

func (*Resource) ProtoMessage() {}

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

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

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

func (x *Resource) GetNamespace() string {
	if x != nil {
		return x.Namespace
	}
	return ""
}

func (x *Resource) GetSourceConfig() *ResourceSourceConfig {
	if x != nil {
		return x.SourceConfig
	}
	return nil
}

func (x *Resource) GetProperties() []*ResourceProperty {
	if x != nil {
		return x.Properties
	}
	return nil
}

func (x *Resource) GetTypes() []*ResourceSubType {
	if x != nil {
		return x.Types
	}
	return nil
}

func (x *Resource) GetIndexes() []*ResourceIndex {
	if x != nil {
		return x.Indexes
	}
	return nil
}

func (x *Resource) GetVirtual() bool {
	if x != nil {
		return x.Virtual
	}
	return false
}

func (x *Resource) GetImmutable() bool {
	if x != nil {
		return x.Immutable
	}
	return false
}

func (x *Resource) GetAbstract() bool {
	if x != nil {
		return x.Abstract
	}
	return false
}

func (x *Resource) GetCheckReferences() bool {
	if x != nil {
		return x.CheckReferences
	}
	return false
}

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

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

func (x *Resource) GetAuditData() *AuditData {
	if x != nil {
		return x.AuditData
	}
	return nil
}

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

func (x *Resource) GetAnnotations() map[string]string {
	if x != nil {
		return x.Annotations
	}
	return nil
}

var File_model_resource_proto protoreflect.FileDescriptor

var file_model_resource_proto_rawDesc = []byte{
	0x0a, 0x14, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x1a, 0x11, 0x6d,
	0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x61, 0x75, 0x64, 0x69, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f,
	0x1a, 0x11, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x71, 0x75, 0x65, 0x72, 0x79, 0x2e, 0x70, 0x72,
	0x6f, 0x74, 0x6f, 0x1a, 0x12, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x63, 0x6f, 0x6d, 0x6d, 0x6f,
	0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x0f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2f, 0x68,
	0x63, 0x6c, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65,
	0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74,
	0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74,
	0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9e, 0x09, 0x0a, 0x10, 0x52, 0x65, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x12, 0x1b, 0x0a,
	0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x42, 0x07, 0xca, 0x47, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x30, 0x0a, 0x04, 0x74, 0x79,
	0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c,
	0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74,
	0x79, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x07,
	0x74, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52,
	0x07, 0x74, 0x79, 0x70, 0x65, 0x52, 0x65, 0x66, 0x88, 0x01, 0x01, 0x12, 0x1a, 0x0a, 0x08, 0x72,
	0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72,
	0x65, 0x71, 0x75, 0x69, 0x72, 0x65, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61,
	0x72, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72,
	0x79, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28,
	0x0d, 0x52, 0x06, 0x6c, 0x65, 0x6e, 0x67, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69,
	0x71, 0x75, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75,
	0x65, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x09,
	0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x12,
	0x18, 0x0a, 0x07, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x07, 0x76, 0x69, 0x72, 0x74, 0x75, 0x61, 0x6c, 0x12, 0x3f, 0x0a, 0x0c, 0x64, 0x65, 0x66,
	0x61, 0x75, 0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32,
	0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75,
	0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x01, 0x52, 0x0c, 0x64, 0x65, 0x66, 0x61, 0x75,
	0x6c, 0x74, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3f, 0x0a, 0x0c, 0x65, 0x78,
	0x61, 0x6d, 0x70, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b,
	0x32, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62,
	0x75, 0x66, 0x2e, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x48, 0x02, 0x52, 0x0c, 0x65, 0x78, 0x61, 0x6d,
	0x70, 0x6c, 0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x88, 0x01, 0x01, 0x12, 0x1e, 0x0a, 0x0a, 0x65,
	0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x0d, 0x20, 0x03, 0x28, 0x09, 0x52,
	0x0a, 0x65, 0x6e, 0x75, 0x6d, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x12, 0x41, 0x0a, 0x09, 0x72,
	0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10,
	0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65,
	0x42, 0x0c, 0xc2, 0x47, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x03,
	0x52, 0x09, 0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x4d,
	0x0a, 0x0d, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x18,
	0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x42, 0x61,
	0x63, 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x0c, 0xc2, 0x47, 0x09,
	0x72, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x48, 0x04, 0x52, 0x0d, 0x62, 0x61, 0x63,
	0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x88, 0x01, 0x01, 0x12, 0x30, 0x0a,
	0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x12, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x6f,
	0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x70,
	0x65, 0x72, 0x74, 0x79, 0x48, 0x05, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x88, 0x01, 0x01, 0x12,
	0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x48, 0x06,
	0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x88, 0x01, 0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x48,
	0x07, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01,
	0x01, 0x12, 0x5a, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x18, 0x67, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52,
	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x2e,
	0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79,
	0x42, 0x0e, 0xc2, 0x47, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a,
	0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x22, 0xc8, 0x01,
	0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, 0x08, 0x0a, 0x04, 0x42, 0x4f, 0x4f, 0x4c, 0x10, 0x00,
	0x12, 0x0a, 0x0a, 0x06, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07,
	0x46, 0x4c, 0x4f, 0x41, 0x54, 0x33, 0x32, 0x10, 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x4c, 0x4f,
	0x41, 0x54, 0x36, 0x34, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x33, 0x32, 0x10,
	0x04, 0x12, 0x09, 0x0a, 0x05, 0x49, 0x4e, 0x54, 0x36, 0x34, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05,
	0x42, 0x59, 0x54, 0x45, 0x53, 0x10, 0x06, 0x12, 0x08, 0x0a, 0x04, 0x55, 0x55, 0x49, 0x44, 0x10,
	0x08, 0x12, 0x08, 0x0a, 0x04, 0x44, 0x41, 0x54, 0x45, 0x10, 0x09, 0x12, 0x08, 0x0a, 0x04, 0x54,
	0x49, 0x4d, 0x45, 0x10, 0x0a, 0x12, 0x0d, 0x0a, 0x09, 0x54, 0x49, 0x4d, 0x45, 0x53, 0x54, 0x41,
	0x4d, 0x50, 0x10, 0x0b, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x42, 0x4a, 0x45, 0x43, 0x54, 0x10, 0x0c,
	0x12, 0x07, 0x0a, 0x03, 0x4d, 0x41, 0x50, 0x10, 0x0d, 0x12, 0x08, 0x0a, 0x04, 0x4c, 0x49, 0x53,
	0x54, 0x10, 0x0e, 0x12, 0x0d, 0x0a, 0x09, 0x52, 0x45, 0x46, 0x45, 0x52, 0x45, 0x4e, 0x43, 0x45,
	0x10, 0x0f, 0x12, 0x08, 0x0a, 0x04, 0x45, 0x4e, 0x55, 0x4d, 0x10, 0x10, 0x12, 0x0a, 0x0a, 0x06,
	0x53, 0x54, 0x52, 0x55, 0x43, 0x54, 0x10, 0x11, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x79, 0x70,
	0x65, 0x52, 0x65, 0x66, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74,
	0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0f, 0x0a, 0x0d, 0x5f, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c,
	0x65, 0x56, 0x61, 0x6c, 0x75, 0x65, 0x42, 0x0c, 0x0a, 0x0a, 0x5f, 0x72, 0x65, 0x66, 0x65, 0x72,
	0x65, 0x6e, 0x63, 0x65, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x66,
	0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x42, 0x07, 0x0a, 0x05, 0x5f, 0x69, 0x74, 0x65, 0x6d, 0x42,
	0x08, 0x0a, 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65,
	0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x45, 0x0a, 0x09, 0x52, 0x65, 0x66,
	0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70,
	0x61, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73,
	0x70, 0x61, 0x63, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x22, 0x2b, 0x0a, 0x0d, 0x42, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63,
	0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x18, 0x03, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x22, 0x68, 0x0a,
	0x14, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43,
	0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x74, 0x61, 0x53,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67,
	0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x12,
	0x16, 0x0a, 0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52,
	0x06, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x22, 0x4f, 0x0a, 0x15, 0x52, 0x65, 0x73, 0x6f, 0x75,
	0x72, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79,
	0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04,
	0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x02, 0x20,
	0x01, 0x28, 0x0e, 0x32, 0x0c, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x4f, 0x72, 0x64, 0x65,
	0x72, 0x52, 0x05, 0x6f, 0x72, 0x64, 0x65, 0x72, 0x22, 0xb6, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x73,
	0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x3c, 0x0a, 0x0a, 0x70, 0x72,
	0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c,
	0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49,
	0x6e, 0x64, 0x65, 0x78, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72,
	0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x36, 0x0a, 0x09, 0x69, 0x6e, 0x64, 0x65,
	0x78, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x18, 0x2e, 0x6d, 0x6f,
	0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65,
	0x78, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08,
	0x52, 0x06, 0x75, 0x6e, 0x69, 0x71, 0x75, 0x65, 0x12, 0x57, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f,
	0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e,
	0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e,
	0x64, 0x65, 0x78, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45,
	0x6e, 0x74, 0x72, 0x79, 0x42, 0x0e, 0xc2, 0x47, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 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, 0x22, 0xbe, 0x02, 0x0a, 0x0f, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75,
	0x62, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20,
	0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74,
	0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12,
	0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f,
	0x6e, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,
	0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x42, 0x0b,
	0xc2, 0x47, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f,
	0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x59, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x6d,
	0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62,
	0x54, 0x79, 0x70, 0x65, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73,
	0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x0e, 0xc2, 0x47, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f,
	0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	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, 0x22, 0x9b, 0x06, 0x0a, 0x08, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12,
	0x13, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x42, 0x03, 0xd0, 0x47, 0x01,
	0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01,
	0x28, 0x09, 0x42, 0x07, 0xca, 0x47, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x52, 0x04, 0x6e, 0x61, 0x6d,
	0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x18, 0x03,
	0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x61, 0x6d, 0x65, 0x73, 0x70, 0x61, 0x63, 0x65, 0x12,
	0x50, 0x0a, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18,
	0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66,
	0x69, 0x67, 0x42, 0x0f, 0xc2, 0x47, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e,
	0x66, 0x69, 0x67, 0x52, 0x0c, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69,
	0x67, 0x12, 0x44, 0x0a, 0x0a, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x18,
	0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65,
	0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x42, 0x0b,
	0xc2, 0x47, 0x08, 0x70, 0x72, 0x6f, 0x70, 0x65, 0x72, 0x74, 0x79, 0x52, 0x0a, 0x70, 0x72, 0x6f,
	0x70, 0x65, 0x72, 0x74, 0x69, 0x65, 0x73, 0x12, 0x35, 0x0a, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73,
	0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52,
	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x75, 0x62, 0x54, 0x79, 0x70, 0x65, 0x42, 0x07,
	0xc2, 0x47, 0x04, 0x74, 0x79, 0x70, 0x65, 0x52, 0x05, 0x74, 0x79, 0x70, 0x65, 0x73, 0x12, 0x38,
	0x0a, 0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32,
	0x14, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e, 0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65,
	0x49, 0x6e, 0x64, 0x65, 0x78, 0x42, 0x08, 0xc2, 0x47, 0x05, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x52,
	0x07, 0x69, 0x6e, 0x64, 0x65, 0x78, 0x65, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x69, 0x72, 0x74,
	0x75, 0x61, 0x6c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x76, 0x69, 0x72, 0x74, 0x75,
	0x61, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65, 0x18,
	0x0c, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x69, 0x6d, 0x6d, 0x75, 0x74, 0x61, 0x62, 0x6c, 0x65,
	0x12, 0x1a, 0x0a, 0x08, 0x61, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x18, 0x0d, 0x20, 0x01,
	0x28, 0x08, 0x52, 0x08, 0x61, 0x62, 0x73, 0x74, 0x72, 0x61, 0x63, 0x74, 0x12, 0x28, 0x0a, 0x0f,
	0x63, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x66, 0x65, 0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x18,
	0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x66, 0x65,
	0x72, 0x65, 0x6e, 0x63, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18,
	0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x88, 0x01,
	0x01, 0x12, 0x25, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69,
	0x70, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x12, 0x2e, 0x0a, 0x09, 0x61, 0x75, 0x64, 0x69,
	0x74, 0x44, 0x61, 0x74, 0x61, 0x18, 0x65, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x6d, 0x6f,
	0x64, 0x65, 0x6c, 0x2e, 0x41, 0x75, 0x64, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, 0x09, 0x61,
	0x75, 0x64, 0x69, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73,
	0x69, 0x6f, 0x6e, 0x18, 0x66, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69,
	0x6f, 0x6e, 0x12, 0x52, 0x0a, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e,
	0x73, 0x18, 0x67, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x2e,
	0x52, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x2e, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74,
	0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x42, 0x0e, 0xc2, 0x47, 0x0b, 0x61, 0x6e,
	0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x0b, 0x61, 0x6e, 0x6e, 0x6f, 0x74,
	0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x1a, 0x3e, 0x0a, 0x10, 0x41, 0x6e, 0x6e, 0x6f, 0x74, 0x61,
	0x74, 0x69, 0x6f, 0x6e, 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, 0x08, 0x0a, 0x06, 0x5f, 0x74, 0x69, 0x74, 0x6c, 0x65,
	0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e,
	0x2a, 0x39, 0x0a, 0x05, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x11, 0x0a, 0x0d, 0x4f, 0x52, 0x44,
	0x45, 0x52, 0x5f, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09,
	0x4f, 0x52, 0x44, 0x45, 0x52, 0x5f, 0x41, 0x53, 0x43, 0x10, 0x01, 0x12, 0x0e, 0x0a, 0x0a, 0x4f,
	0x52, 0x44, 0x45, 0x52, 0x5f, 0x44, 0x45, 0x53, 0x43, 0x10, 0x02, 0x2a, 0x28, 0x0a, 0x11, 0x52,
	0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x54, 0x79, 0x70, 0x65,
	0x12, 0x09, 0x0a, 0x05, 0x42, 0x54, 0x52, 0x45, 0x45, 0x10, 0x00, 0x12, 0x08, 0x0a, 0x04, 0x48,
	0x41, 0x53, 0x48, 0x10, 0x01, 0x42, 0x26, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e,
	0x63, 0x6f, 0x6d, 0x2f, 0x61, 0x70, 0x69, 0x62, 0x72, 0x65, 0x77, 0x2f, 0x61, 0x70, 0x69, 0x62,
	0x72, 0x65, 0x77, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x62, 0x06, 0x70,
	0x72, 0x6f, 0x74, 0x6f, 0x33,
}

var (
	file_model_resource_proto_rawDescOnce sync.Once
	file_model_resource_proto_rawDescData = file_model_resource_proto_rawDesc
)

func file_model_resource_proto_rawDescGZIP() []byte {
	file_model_resource_proto_rawDescOnce.Do(func() {
		file_model_resource_proto_rawDescData = protoimpl.X.CompressGZIP(file_model_resource_proto_rawDescData)
	})
	return file_model_resource_proto_rawDescData
}

var file_model_resource_proto_enumTypes = make([]protoimpl.EnumInfo, 3)
var file_model_resource_proto_msgTypes = make([]protoimpl.MessageInfo, 12)
var file_model_resource_proto_goTypes = []interface{}{
	(Order)(0),                    // 0: model.Order
	(ResourceIndexType)(0),        // 1: model.ResourceIndexType
	(ResourceProperty_Type)(0),    // 2: model.ResourceProperty.Type
	(*ResourceProperty)(nil),      // 3: model.ResourceProperty
	(*Reference)(nil),             // 4: model.Reference
	(*BackReference)(nil),         // 5: model.BackReference
	(*ResourceSourceConfig)(nil),  // 6: model.ResourceSourceConfig
	(*ResourceIndexProperty)(nil), // 7: model.ResourceIndexProperty
	(*ResourceIndex)(nil),         // 8: model.ResourceIndex
	(*ResourceSubType)(nil),       // 9: model.ResourceSubType
	(*Resource)(nil),              // 10: model.Resource
	nil,                           // 11: model.ResourceProperty.AnnotationsEntry
	nil,                           // 12: model.ResourceIndex.AnnotationsEntry
	nil,                           // 13: model.ResourceSubType.AnnotationsEntry
	nil,                           // 14: model.Resource.AnnotationsEntry
	(*structpb.Value)(nil),        // 15: google.protobuf.Value
	(*AuditData)(nil),             // 16: model.AuditData
}
var file_model_resource_proto_depIdxs = []int32{
	2,  // 0: model.ResourceProperty.type:type_name -> model.ResourceProperty.Type
	15, // 1: model.ResourceProperty.defaultValue:type_name -> google.protobuf.Value
	15, // 2: model.ResourceProperty.exampleValue:type_name -> google.protobuf.Value
	4,  // 3: model.ResourceProperty.reference:type_name -> model.Reference
	5,  // 4: model.ResourceProperty.backReference:type_name -> model.BackReference
	3,  // 5: model.ResourceProperty.item:type_name -> model.ResourceProperty
	11, // 6: model.ResourceProperty.annotations:type_name -> model.ResourceProperty.AnnotationsEntry
	0,  // 7: model.ResourceIndexProperty.order:type_name -> model.Order
	7,  // 8: model.ResourceIndex.properties:type_name -> model.ResourceIndexProperty
	1,  // 9: model.ResourceIndex.indexType:type_name -> model.ResourceIndexType
	12, // 10: model.ResourceIndex.annotations:type_name -> model.ResourceIndex.AnnotationsEntry
	3,  // 11: model.ResourceSubType.properties:type_name -> model.ResourceProperty
	13, // 12: model.ResourceSubType.annotations:type_name -> model.ResourceSubType.AnnotationsEntry
	6,  // 13: model.Resource.sourceConfig:type_name -> model.ResourceSourceConfig
	3,  // 14: model.Resource.properties:type_name -> model.ResourceProperty
	9,  // 15: model.Resource.types:type_name -> model.ResourceSubType
	8,  // 16: model.Resource.indexes:type_name -> model.ResourceIndex
	16, // 17: model.Resource.auditData:type_name -> model.AuditData
	14, // 18: model.Resource.annotations:type_name -> model.Resource.AnnotationsEntry
	19, // [19:19] is the sub-list for method output_type
	19, // [19:19] is the sub-list for method input_type
	19, // [19:19] is the sub-list for extension type_name
	19, // [19:19] is the sub-list for extension extendee
	0,  // [0:19] is the sub-list for field type_name
}

func init() { file_model_resource_proto_init() }
func file_model_resource_proto_init() {
	if File_model_resource_proto != nil {
		return
	}
	file_model_audit_proto_init()
	file_model_query_proto_init()
	file_model_common_proto_init()
	file_model_hcl_proto_init()
	if !protoimpl.UnsafeEnabled {
		file_model_resource_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResourceProperty); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_model_resource_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Reference); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_model_resource_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*BackReference); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_model_resource_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResourceSourceConfig); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_model_resource_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResourceIndexProperty); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_model_resource_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResourceIndex); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_model_resource_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*ResourceSubType); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
		file_model_resource_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} {
			switch v := v.(*Resource); i {
			case 0:
				return &v.state
			case 1:
				return &v.sizeCache
			case 2:
				return &v.unknownFields
			default:
				return nil
			}
		}
	}
	file_model_resource_proto_msgTypes[0].OneofWrappers = []interface{}{}
	file_model_resource_proto_msgTypes[7].OneofWrappers = []interface{}{}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: file_model_resource_proto_rawDesc,
			NumEnums:      3,
			NumMessages:   12,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_model_resource_proto_goTypes,
		DependencyIndexes: file_model_resource_proto_depIdxs,
		EnumInfos:         file_model_resource_proto_enumTypes,
		MessageInfos:      file_model_resource_proto_msgTypes,
	}.Build()
	File_model_resource_proto = out.File
	file_model_resource_proto_rawDesc = nil
	file_model_resource_proto_goTypes = nil
	file_model_resource_proto_depIdxs = nil
}
