// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.6
// 	protoc        (unknown)
// source: pluginapi/v1/dataspec.proto

package pluginapiv1

import (
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	reflect "reflect"
	sync "sync"
	unsafe "unsafe"
)

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 AttrSpec struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Type          *CtyType               `protobuf:"bytes,2,opt,name=type,proto3" json:"type,omitempty"`
	DefaultVal    *CtyValue              `protobuf:"bytes,3,opt,name=default_val,json=defaultVal,proto3" json:"default_val,omitempty"`
	ExampleVal    *CtyValue              `protobuf:"bytes,4,opt,name=example_val,json=exampleVal,proto3" json:"example_val,omitempty"`
	Doc           string                 `protobuf:"bytes,5,opt,name=doc,proto3" json:"doc,omitempty"`
	Constraints   uint32                 `protobuf:"varint,7,opt,name=constraints,proto3" json:"constraints,omitempty"`
	OneOf         []*CtyValue            `protobuf:"bytes,8,rep,name=one_of,json=oneOf,proto3" json:"one_of,omitempty"`
	MinInclusive  *CtyValue              `protobuf:"bytes,9,opt,name=min_inclusive,json=minInclusive,proto3" json:"min_inclusive,omitempty"`
	MaxInclusive  *CtyValue              `protobuf:"bytes,10,opt,name=max_inclusive,json=maxInclusive,proto3" json:"max_inclusive,omitempty"`
	Deprecated    string                 `protobuf:"bytes,11,opt,name=deprecated,proto3" json:"deprecated,omitempty"`
	Secret        bool                   `protobuf:"varint,12,opt,name=secret,proto3" json:"secret,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *AttrSpec) Reset() {
	*x = AttrSpec{}
	mi := &file_pluginapi_v1_dataspec_proto_msgTypes[0]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*AttrSpec) ProtoMessage() {}

func (x *AttrSpec) ProtoReflect() protoreflect.Message {
	mi := &file_pluginapi_v1_dataspec_proto_msgTypes[0]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use AttrSpec.ProtoReflect.Descriptor instead.
func (*AttrSpec) Descriptor() ([]byte, []int) {
	return file_pluginapi_v1_dataspec_proto_rawDescGZIP(), []int{0}
}

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

func (x *AttrSpec) GetType() *CtyType {
	if x != nil {
		return x.Type
	}
	return nil
}

func (x *AttrSpec) GetDefaultVal() *CtyValue {
	if x != nil {
		return x.DefaultVal
	}
	return nil
}

func (x *AttrSpec) GetExampleVal() *CtyValue {
	if x != nil {
		return x.ExampleVal
	}
	return nil
}

func (x *AttrSpec) GetDoc() string {
	if x != nil {
		return x.Doc
	}
	return ""
}

func (x *AttrSpec) GetConstraints() uint32 {
	if x != nil {
		return x.Constraints
	}
	return 0
}

func (x *AttrSpec) GetOneOf() []*CtyValue {
	if x != nil {
		return x.OneOf
	}
	return nil
}

func (x *AttrSpec) GetMinInclusive() *CtyValue {
	if x != nil {
		return x.MinInclusive
	}
	return nil
}

func (x *AttrSpec) GetMaxInclusive() *CtyValue {
	if x != nil {
		return x.MaxInclusive
	}
	return nil
}

func (x *AttrSpec) GetDeprecated() string {
	if x != nil {
		return x.Deprecated
	}
	return ""
}

func (x *AttrSpec) GetSecret() bool {
	if x != nil {
		return x.Secret
	}
	return false
}

type BlockSpec struct {
	state                      protoimpl.MessageState   `protogen:"open.v1"`
	HeadersSpec                []*BlockSpec_NameMatcher `protobuf:"bytes,1,rep,name=headers_spec,json=headersSpec,proto3" json:"headers_spec,omitempty"`
	Required                   bool                     `protobuf:"varint,2,opt,name=required,proto3" json:"required,omitempty"`
	Repeatable                 bool                     `protobuf:"varint,3,opt,name=repeatable,proto3" json:"repeatable,omitempty"`
	Doc                        string                   `protobuf:"bytes,4,opt,name=doc,proto3" json:"doc,omitempty"`
	BlockSpecs                 []*BlockSpec             `protobuf:"bytes,5,rep,name=block_specs,json=blockSpecs,proto3" json:"block_specs,omitempty"`
	AttrSpecs                  []*AttrSpec              `protobuf:"bytes,6,rep,name=attr_specs,json=attrSpecs,proto3" json:"attr_specs,omitempty"`
	AllowUnspecifiedBlocks     bool                     `protobuf:"varint,7,opt,name=allow_unspecified_blocks,json=allowUnspecifiedBlocks,proto3" json:"allow_unspecified_blocks,omitempty"`
	AllowUnspecifiedAttributes bool                     `protobuf:"varint,8,opt,name=allow_unspecified_attributes,json=allowUnspecifiedAttributes,proto3" json:"allow_unspecified_attributes,omitempty"`
	unknownFields              protoimpl.UnknownFields
	sizeCache                  protoimpl.SizeCache
}

func (x *BlockSpec) Reset() {
	*x = BlockSpec{}
	mi := &file_pluginapi_v1_dataspec_proto_msgTypes[1]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*BlockSpec) ProtoMessage() {}

func (x *BlockSpec) ProtoReflect() protoreflect.Message {
	mi := &file_pluginapi_v1_dataspec_proto_msgTypes[1]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BlockSpec.ProtoReflect.Descriptor instead.
func (*BlockSpec) Descriptor() ([]byte, []int) {
	return file_pluginapi_v1_dataspec_proto_rawDescGZIP(), []int{1}
}

func (x *BlockSpec) GetHeadersSpec() []*BlockSpec_NameMatcher {
	if x != nil {
		return x.HeadersSpec
	}
	return nil
}

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

func (x *BlockSpec) GetRepeatable() bool {
	if x != nil {
		return x.Repeatable
	}
	return false
}

func (x *BlockSpec) GetDoc() string {
	if x != nil {
		return x.Doc
	}
	return ""
}

func (x *BlockSpec) GetBlockSpecs() []*BlockSpec {
	if x != nil {
		return x.BlockSpecs
	}
	return nil
}

func (x *BlockSpec) GetAttrSpecs() []*AttrSpec {
	if x != nil {
		return x.AttrSpecs
	}
	return nil
}

func (x *BlockSpec) GetAllowUnspecifiedBlocks() bool {
	if x != nil {
		return x.AllowUnspecifiedBlocks
	}
	return false
}

func (x *BlockSpec) GetAllowUnspecifiedAttributes() bool {
	if x != nil {
		return x.AllowUnspecifiedAttributes
	}
	return false
}

type Attr struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Name          string                 `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	NameRange     *Range                 `protobuf:"bytes,2,opt,name=name_range,json=nameRange,proto3" json:"name_range,omitempty"`
	Value         *CtyValue              `protobuf:"bytes,3,opt,name=value,proto3" json:"value,omitempty"`
	ValueRange    *Range                 `protobuf:"bytes,4,opt,name=value_range,json=valueRange,proto3" json:"value_range,omitempty"`
	Secret        bool                   `protobuf:"varint,5,opt,name=secret,proto3" json:"secret,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Attr) Reset() {
	*x = Attr{}
	mi := &file_pluginapi_v1_dataspec_proto_msgTypes[2]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Attr) ProtoMessage() {}

func (x *Attr) ProtoReflect() protoreflect.Message {
	mi := &file_pluginapi_v1_dataspec_proto_msgTypes[2]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Attr.ProtoReflect.Descriptor instead.
func (*Attr) Descriptor() ([]byte, []int) {
	return file_pluginapi_v1_dataspec_proto_rawDescGZIP(), []int{2}
}

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

func (x *Attr) GetNameRange() *Range {
	if x != nil {
		return x.NameRange
	}
	return nil
}

func (x *Attr) GetValue() *CtyValue {
	if x != nil {
		return x.Value
	}
	return nil
}

func (x *Attr) GetValueRange() *Range {
	if x != nil {
		return x.ValueRange
	}
	return nil
}

func (x *Attr) GetSecret() bool {
	if x != nil {
		return x.Secret
	}
	return false
}

type Block struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Header        []string               `protobuf:"bytes,1,rep,name=header,proto3" json:"header,omitempty"`
	HeaderRanges  []*Range               `protobuf:"bytes,2,rep,name=header_ranges,json=headerRanges,proto3" json:"header_ranges,omitempty"`
	Attributes    map[string]*Attr       `protobuf:"bytes,3,rep,name=attributes,proto3" json:"attributes,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	Blocks        []*Block               `protobuf:"bytes,4,rep,name=blocks,proto3" json:"blocks,omitempty"`
	ContentsRange *Range                 `protobuf:"bytes,5,opt,name=contents_range,json=contentsRange,proto3" json:"contents_range,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Block) Reset() {
	*x = Block{}
	mi := &file_pluginapi_v1_dataspec_proto_msgTypes[3]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Block) ProtoMessage() {}

func (x *Block) ProtoReflect() protoreflect.Message {
	mi := &file_pluginapi_v1_dataspec_proto_msgTypes[3]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use Block.ProtoReflect.Descriptor instead.
func (*Block) Descriptor() ([]byte, []int) {
	return file_pluginapi_v1_dataspec_proto_rawDescGZIP(), []int{3}
}

func (x *Block) GetHeader() []string {
	if x != nil {
		return x.Header
	}
	return nil
}

func (x *Block) GetHeaderRanges() []*Range {
	if x != nil {
		return x.HeaderRanges
	}
	return nil
}

func (x *Block) GetAttributes() map[string]*Attr {
	if x != nil {
		return x.Attributes
	}
	return nil
}

func (x *Block) GetBlocks() []*Block {
	if x != nil {
		return x.Blocks
	}
	return nil
}

func (x *Block) GetContentsRange() *Range {
	if x != nil {
		return x.ContentsRange
	}
	return nil
}

type BlockSpec_NameMatcher struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Matcher:
	//
	//	*BlockSpec_NameMatcher_Exact_
	Matcher       isBlockSpec_NameMatcher_Matcher `protobuf_oneof:"matcher"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BlockSpec_NameMatcher) Reset() {
	*x = BlockSpec_NameMatcher{}
	mi := &file_pluginapi_v1_dataspec_proto_msgTypes[4]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*BlockSpec_NameMatcher) ProtoMessage() {}

func (x *BlockSpec_NameMatcher) ProtoReflect() protoreflect.Message {
	mi := &file_pluginapi_v1_dataspec_proto_msgTypes[4]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BlockSpec_NameMatcher.ProtoReflect.Descriptor instead.
func (*BlockSpec_NameMatcher) Descriptor() ([]byte, []int) {
	return file_pluginapi_v1_dataspec_proto_rawDescGZIP(), []int{1, 0}
}

func (x *BlockSpec_NameMatcher) GetMatcher() isBlockSpec_NameMatcher_Matcher {
	if x != nil {
		return x.Matcher
	}
	return nil
}

func (x *BlockSpec_NameMatcher) GetExact() *BlockSpec_NameMatcher_Exact {
	if x != nil {
		if x, ok := x.Matcher.(*BlockSpec_NameMatcher_Exact_); ok {
			return x.Exact
		}
	}
	return nil
}

type isBlockSpec_NameMatcher_Matcher interface {
	isBlockSpec_NameMatcher_Matcher()
}

type BlockSpec_NameMatcher_Exact_ struct {
	Exact *BlockSpec_NameMatcher_Exact `protobuf:"bytes,1,opt,name=exact,proto3,oneof"`
}

func (*BlockSpec_NameMatcher_Exact_) isBlockSpec_NameMatcher_Matcher() {}

type BlockSpec_NameMatcher_Exact struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	Matches       []string               `protobuf:"bytes,1,rep,name=matches,proto3" json:"matches,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *BlockSpec_NameMatcher_Exact) Reset() {
	*x = BlockSpec_NameMatcher_Exact{}
	mi := &file_pluginapi_v1_dataspec_proto_msgTypes[5]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*BlockSpec_NameMatcher_Exact) ProtoMessage() {}

func (x *BlockSpec_NameMatcher_Exact) ProtoReflect() protoreflect.Message {
	mi := &file_pluginapi_v1_dataspec_proto_msgTypes[5]
	if x != nil {
		ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
		if ms.LoadMessageInfo() == nil {
			ms.StoreMessageInfo(mi)
		}
		return ms
	}
	return mi.MessageOf(x)
}

// Deprecated: Use BlockSpec_NameMatcher_Exact.ProtoReflect.Descriptor instead.
func (*BlockSpec_NameMatcher_Exact) Descriptor() ([]byte, []int) {
	return file_pluginapi_v1_dataspec_proto_rawDescGZIP(), []int{1, 0, 0}
}

func (x *BlockSpec_NameMatcher_Exact) GetMatches() []string {
	if x != nil {
		return x.Matches
	}
	return nil
}

var File_pluginapi_v1_dataspec_proto protoreflect.FileDescriptor

const file_pluginapi_v1_dataspec_proto_rawDesc = "" +
	"\n" +
	"\x1bpluginapi/v1/dataspec.proto\x12\fpluginapi.v1\x1a\x16pluginapi/v1/cty.proto\x1a\x16pluginapi/v1/hcl.proto\"\xd0\x03\n" +
	"\bAttrSpec\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12)\n" +
	"\x04type\x18\x02 \x01(\v2\x15.pluginapi.v1.CtyTypeR\x04type\x127\n" +
	"\vdefault_val\x18\x03 \x01(\v2\x16.pluginapi.v1.CtyValueR\n" +
	"defaultVal\x127\n" +
	"\vexample_val\x18\x04 \x01(\v2\x16.pluginapi.v1.CtyValueR\n" +
	"exampleVal\x12\x10\n" +
	"\x03doc\x18\x05 \x01(\tR\x03doc\x12 \n" +
	"\vconstraints\x18\a \x01(\rR\vconstraints\x12-\n" +
	"\x06one_of\x18\b \x03(\v2\x16.pluginapi.v1.CtyValueR\x05oneOf\x12;\n" +
	"\rmin_inclusive\x18\t \x01(\v2\x16.pluginapi.v1.CtyValueR\fminInclusive\x12;\n" +
	"\rmax_inclusive\x18\n" +
	" \x01(\v2\x16.pluginapi.v1.CtyValueR\fmaxInclusive\x12\x1e\n" +
	"\n" +
	"deprecated\x18\v \x01(\tR\n" +
	"deprecated\x12\x16\n" +
	"\x06secret\x18\f \x01(\bR\x06secret\"\x8e\x04\n" +
	"\tBlockSpec\x12F\n" +
	"\fheaders_spec\x18\x01 \x03(\v2#.pluginapi.v1.BlockSpec.NameMatcherR\vheadersSpec\x12\x1a\n" +
	"\brequired\x18\x02 \x01(\bR\brequired\x12\x1e\n" +
	"\n" +
	"repeatable\x18\x03 \x01(\bR\n" +
	"repeatable\x12\x10\n" +
	"\x03doc\x18\x04 \x01(\tR\x03doc\x128\n" +
	"\vblock_specs\x18\x05 \x03(\v2\x17.pluginapi.v1.BlockSpecR\n" +
	"blockSpecs\x125\n" +
	"\n" +
	"attr_specs\x18\x06 \x03(\v2\x16.pluginapi.v1.AttrSpecR\tattrSpecs\x128\n" +
	"\x18allow_unspecified_blocks\x18\a \x01(\bR\x16allowUnspecifiedBlocks\x12@\n" +
	"\x1callow_unspecified_attributes\x18\b \x01(\bR\x1aallowUnspecifiedAttributes\x1a~\n" +
	"\vNameMatcher\x12A\n" +
	"\x05exact\x18\x01 \x01(\v2).pluginapi.v1.BlockSpec.NameMatcher.ExactH\x00R\x05exact\x1a!\n" +
	"\x05Exact\x12\x18\n" +
	"\amatches\x18\x01 \x03(\tR\amatchesB\t\n" +
	"\amatcher\"\xca\x01\n" +
	"\x04Attr\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x122\n" +
	"\n" +
	"name_range\x18\x02 \x01(\v2\x13.pluginapi.v1.RangeR\tnameRange\x12,\n" +
	"\x05value\x18\x03 \x01(\v2\x16.pluginapi.v1.CtyValueR\x05value\x124\n" +
	"\vvalue_range\x18\x04 \x01(\v2\x13.pluginapi.v1.RangeR\n" +
	"valueRange\x12\x16\n" +
	"\x06secret\x18\x05 \x01(\bR\x06secret\"\xda\x02\n" +
	"\x05Block\x12\x16\n" +
	"\x06header\x18\x01 \x03(\tR\x06header\x128\n" +
	"\rheader_ranges\x18\x02 \x03(\v2\x13.pluginapi.v1.RangeR\fheaderRanges\x12C\n" +
	"\n" +
	"attributes\x18\x03 \x03(\v2#.pluginapi.v1.Block.AttributesEntryR\n" +
	"attributes\x12+\n" +
	"\x06blocks\x18\x04 \x03(\v2\x13.pluginapi.v1.BlockR\x06blocks\x12:\n" +
	"\x0econtents_range\x18\x05 \x01(\v2\x13.pluginapi.v1.RangeR\rcontentsRange\x1aQ\n" +
	"\x0fAttributesEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12(\n" +
	"\x05value\x18\x02 \x01(\v2\x12.pluginapi.v1.AttrR\x05value:\x028\x01B\xb3\x01\n" +
	"\x10com.pluginapi.v1B\rDataspecProtoP\x01Z?github.com/blackstork-io/fabric/plugin/pluginapi/v1;pluginapiv1\xa2\x02\x03PXX\xaa\x02\fPluginapi.V1\xca\x02\fPluginapi\\V1\xe2\x02\x18Pluginapi\\V1\\GPBMetadata\xea\x02\rPluginapi::V1b\x06proto3"

var (
	file_pluginapi_v1_dataspec_proto_rawDescOnce sync.Once
	file_pluginapi_v1_dataspec_proto_rawDescData []byte
)

func file_pluginapi_v1_dataspec_proto_rawDescGZIP() []byte {
	file_pluginapi_v1_dataspec_proto_rawDescOnce.Do(func() {
		file_pluginapi_v1_dataspec_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_pluginapi_v1_dataspec_proto_rawDesc), len(file_pluginapi_v1_dataspec_proto_rawDesc)))
	})
	return file_pluginapi_v1_dataspec_proto_rawDescData
}

var file_pluginapi_v1_dataspec_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_pluginapi_v1_dataspec_proto_goTypes = []any{
	(*AttrSpec)(nil),                    // 0: pluginapi.v1.AttrSpec
	(*BlockSpec)(nil),                   // 1: pluginapi.v1.BlockSpec
	(*Attr)(nil),                        // 2: pluginapi.v1.Attr
	(*Block)(nil),                       // 3: pluginapi.v1.Block
	(*BlockSpec_NameMatcher)(nil),       // 4: pluginapi.v1.BlockSpec.NameMatcher
	(*BlockSpec_NameMatcher_Exact)(nil), // 5: pluginapi.v1.BlockSpec.NameMatcher.Exact
	nil,                                 // 6: pluginapi.v1.Block.AttributesEntry
	(*CtyType)(nil),                     // 7: pluginapi.v1.CtyType
	(*CtyValue)(nil),                    // 8: pluginapi.v1.CtyValue
	(*Range)(nil),                       // 9: pluginapi.v1.Range
}
var file_pluginapi_v1_dataspec_proto_depIdxs = []int32{
	7,  // 0: pluginapi.v1.AttrSpec.type:type_name -> pluginapi.v1.CtyType
	8,  // 1: pluginapi.v1.AttrSpec.default_val:type_name -> pluginapi.v1.CtyValue
	8,  // 2: pluginapi.v1.AttrSpec.example_val:type_name -> pluginapi.v1.CtyValue
	8,  // 3: pluginapi.v1.AttrSpec.one_of:type_name -> pluginapi.v1.CtyValue
	8,  // 4: pluginapi.v1.AttrSpec.min_inclusive:type_name -> pluginapi.v1.CtyValue
	8,  // 5: pluginapi.v1.AttrSpec.max_inclusive:type_name -> pluginapi.v1.CtyValue
	4,  // 6: pluginapi.v1.BlockSpec.headers_spec:type_name -> pluginapi.v1.BlockSpec.NameMatcher
	1,  // 7: pluginapi.v1.BlockSpec.block_specs:type_name -> pluginapi.v1.BlockSpec
	0,  // 8: pluginapi.v1.BlockSpec.attr_specs:type_name -> pluginapi.v1.AttrSpec
	9,  // 9: pluginapi.v1.Attr.name_range:type_name -> pluginapi.v1.Range
	8,  // 10: pluginapi.v1.Attr.value:type_name -> pluginapi.v1.CtyValue
	9,  // 11: pluginapi.v1.Attr.value_range:type_name -> pluginapi.v1.Range
	9,  // 12: pluginapi.v1.Block.header_ranges:type_name -> pluginapi.v1.Range
	6,  // 13: pluginapi.v1.Block.attributes:type_name -> pluginapi.v1.Block.AttributesEntry
	3,  // 14: pluginapi.v1.Block.blocks:type_name -> pluginapi.v1.Block
	9,  // 15: pluginapi.v1.Block.contents_range:type_name -> pluginapi.v1.Range
	5,  // 16: pluginapi.v1.BlockSpec.NameMatcher.exact:type_name -> pluginapi.v1.BlockSpec.NameMatcher.Exact
	2,  // 17: pluginapi.v1.Block.AttributesEntry.value:type_name -> pluginapi.v1.Attr
	18, // [18:18] is the sub-list for method output_type
	18, // [18:18] is the sub-list for method input_type
	18, // [18:18] is the sub-list for extension type_name
	18, // [18:18] is the sub-list for extension extendee
	0,  // [0:18] is the sub-list for field type_name
}

func init() { file_pluginapi_v1_dataspec_proto_init() }
func file_pluginapi_v1_dataspec_proto_init() {
	if File_pluginapi_v1_dataspec_proto != nil {
		return
	}
	file_pluginapi_v1_cty_proto_init()
	file_pluginapi_v1_hcl_proto_init()
	file_pluginapi_v1_dataspec_proto_msgTypes[4].OneofWrappers = []any{
		(*BlockSpec_NameMatcher_Exact_)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_pluginapi_v1_dataspec_proto_rawDesc), len(file_pluginapi_v1_dataspec_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   7,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_pluginapi_v1_dataspec_proto_goTypes,
		DependencyIndexes: file_pluginapi_v1_dataspec_proto_depIdxs,
		MessageInfos:      file_pluginapi_v1_dataspec_proto_msgTypes,
	}.Build()
	File_pluginapi_v1_dataspec_proto = out.File
	file_pluginapi_v1_dataspec_proto_goTypes = nil
	file_pluginapi_v1_dataspec_proto_depIdxs = nil
}
