// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v7.35.1
// source: envoy/extensions/filters/http/proto_api_scrubber/v3/config.proto

package proto_api_scrubberv3

import (
	_ "github.com/cncf/xds/go/udpa/annotations"
	v31 "github.com/cncf/xds/go/xds/type/matcher/v3"
	v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
	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)
)

// An enum enlisting all the filtering modes supported by this filter.
type ProtoApiScrubberConfig_FilteringMode int32

const (
	// Override the original request/response body with the filtered
	// request/response body.
	ProtoApiScrubberConfig_OVERRIDE ProtoApiScrubberConfig_FilteringMode = 0
)

// Enum value maps for ProtoApiScrubberConfig_FilteringMode.
var (
	ProtoApiScrubberConfig_FilteringMode_name = map[int32]string{
		0: "OVERRIDE",
	}
	ProtoApiScrubberConfig_FilteringMode_value = map[string]int32{
		"OVERRIDE": 0,
	}
)

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

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

func (ProtoApiScrubberConfig_FilteringMode) Descriptor() protoreflect.EnumDescriptor {
	return file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_enumTypes[0].Descriptor()
}

func (ProtoApiScrubberConfig_FilteringMode) Type() protoreflect.EnumType {
	return &file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_enumTypes[0]
}

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

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

type ProtoApiScrubberConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The proto descriptor set for the proto services.
	DescriptorSet *DescriptorSet `protobuf:"bytes,1,opt,name=descriptor_set,json=descriptorSet,proto3" json:"descriptor_set,omitempty"`
	// Contains the restrictions for the supported proto elements.
	Restrictions *Restrictions `protobuf:"bytes,2,opt,name=restrictions,proto3" json:"restrictions,omitempty"`
	// Specifies the filtering mode of this filter.
	FilteringMode ProtoApiScrubberConfig_FilteringMode `protobuf:"varint,3,opt,name=filtering_mode,json=filteringMode,proto3,enum=envoy.extensions.filters.http.proto_api_scrubber.v3.ProtoApiScrubberConfig_FilteringMode" json:"filtering_mode,omitempty"`
	// If true, the filter will scrub unknown fields from the protobuf messages.
	ScrubUnknownFields bool `protobuf:"varint,4,opt,name=scrub_unknown_fields,json=scrubUnknownFields,proto3" json:"scrub_unknown_fields,omitempty"`
	unknownFields      protoimpl.UnknownFields
	sizeCache          protoimpl.SizeCache
}

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

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

func (*ProtoApiScrubberConfig) ProtoMessage() {}

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

func (x *ProtoApiScrubberConfig) GetDescriptorSet() *DescriptorSet {
	if x != nil {
		return x.DescriptorSet
	}
	return nil
}

func (x *ProtoApiScrubberConfig) GetRestrictions() *Restrictions {
	if x != nil {
		return x.Restrictions
	}
	return nil
}

func (x *ProtoApiScrubberConfig) GetFilteringMode() ProtoApiScrubberConfig_FilteringMode {
	if x != nil {
		return x.FilteringMode
	}
	return ProtoApiScrubberConfig_OVERRIDE
}

func (x *ProtoApiScrubberConfig) GetScrubUnknownFields() bool {
	if x != nil {
		return x.ScrubUnknownFields
	}
	return false
}

// Specifies the descriptor set for proto services.
type DescriptorSet struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// It could be passed by a local file through “Datasource.filename“ or
	// embedded in the “Datasource.inline_bytes“.
	DataSource    *v3.DataSource `protobuf:"bytes,1,opt,name=data_source,json=dataSource,proto3" json:"data_source,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DescriptorSet) ProtoMessage() {}

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

func (x *DescriptorSet) GetDataSource() *v3.DataSource {
	if x != nil {
		return x.DataSource
	}
	return nil
}

// Contains the restrictions for the methods.
type Restrictions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Specifies the method restrictions.
	// Key - Fully qualified method name e.g., “endpoints.examples.bookstore.BookStore/GetShelf“.
	// Value - Method restrictions.
	MethodRestrictions map[string]*MethodRestrictions `protobuf:"bytes,1,rep,name=method_restrictions,json=methodRestrictions,proto3" json:"method_restrictions,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// Specifies the message restrictions.
	// Key - Fully qualified message name e.g., “endpoints.examples.bookstore.Book“.
	// Value - Message restrictions.
	MessageRestrictions map[string]*MessageRestrictions `protobuf:"bytes,2,rep,name=message_restrictions,json=messageRestrictions,proto3" json:"message_restrictions,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields       protoimpl.UnknownFields
	sizeCache           protoimpl.SizeCache
}

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

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

func (*Restrictions) ProtoMessage() {}

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

func (x *Restrictions) GetMethodRestrictions() map[string]*MethodRestrictions {
	if x != nil {
		return x.MethodRestrictions
	}
	return nil
}

func (x *Restrictions) GetMessageRestrictions() map[string]*MessageRestrictions {
	if x != nil {
		return x.MessageRestrictions
	}
	return nil
}

// Contains the method restrictions which include the field level restrictions
// for the request and response fields.
type MethodRestrictions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Restrictions that apply to request fields of the method.
	// Key - field mask like path of the field e.g., foo.bar.baz
	// Value - Restrictions map containing the mapping from restriction name to
	// the restriction values.
	RequestFieldRestrictions map[string]*RestrictionConfig `protobuf:"bytes,1,rep,name=request_field_restrictions,json=requestFieldRestrictions,proto3" json:"request_field_restrictions,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// Restrictions that apply to response fields of the method.
	// Key - field mask like path of the field e.g., foo.bar.baz
	// Value - Restrictions map containing the mapping from restriction name to
	// the restriction values.
	ResponseFieldRestrictions map[string]*RestrictionConfig `protobuf:"bytes,2,rep,name=response_field_restrictions,json=responseFieldRestrictions,proto3" json:"response_field_restrictions,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// Optional restriction that applies to the entire method. If present, this
	// rule takes precedence for the method itself over field-level or
	// message-level rules. The 'matcher' within RestrictionConfig will determine
	// if the method is denied/scrubbed. If the matcher evaluates to true:
	//
	//   - The request is **denied**, and further processing is stopped.
	//   - The implementation should generate an immediate error response
	//     (e.g., an HTTP 403 Forbidden status) and send it to the client.
	MethodRestriction *RestrictionConfig `protobuf:"bytes,3,opt,name=method_restriction,json=methodRestriction,proto3" json:"method_restriction,omitempty"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*MethodRestrictions) ProtoMessage() {}

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

func (x *MethodRestrictions) GetRequestFieldRestrictions() map[string]*RestrictionConfig {
	if x != nil {
		return x.RequestFieldRestrictions
	}
	return nil
}

func (x *MethodRestrictions) GetResponseFieldRestrictions() map[string]*RestrictionConfig {
	if x != nil {
		return x.ResponseFieldRestrictions
	}
	return nil
}

func (x *MethodRestrictions) GetMethodRestriction() *RestrictionConfig {
	if x != nil {
		return x.MethodRestriction
	}
	return nil
}

// Contains message-level restrictions.
type MessageRestrictions struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The core restriction to apply to this message type.
	// The 'matcher' within RestrictionConfig will determine if the message is
	// scrubbed/denied/allowed.
	Config *RestrictionConfig `protobuf:"bytes,1,opt,name=config,proto3" json:"config,omitempty"`
	// Restrictions that apply to specific fields within this message type.
	// Key - field mask (e.g. "social_security_number").
	// Value - The restriction configuration for that field.
	FieldRestrictions map[string]*RestrictionConfig `protobuf:"bytes,2,rep,name=field_restrictions,json=fieldRestrictions,proto3" json:"field_restrictions,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*MessageRestrictions) ProtoMessage() {}

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

func (x *MessageRestrictions) GetConfig() *RestrictionConfig {
	if x != nil {
		return x.Config
	}
	return nil
}

func (x *MessageRestrictions) GetFieldRestrictions() map[string]*RestrictionConfig {
	if x != nil {
		return x.FieldRestrictions
	}
	return nil
}

// The restriction configuration.
type RestrictionConfig struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Matcher tree for matching requests and responses with the configured restrictions.
	Matcher       *v31.Matcher `protobuf:"bytes,1,opt,name=matcher,proto3" json:"matcher,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*RestrictionConfig) ProtoMessage() {}

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

func (x *RestrictionConfig) GetMatcher() *v31.Matcher {
	if x != nil {
		return x.Matcher
	}
	return nil
}

var File_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto protoreflect.FileDescriptor

const file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_rawDesc = "" +
	"\n" +
	"@envoy/extensions/filters/http/proto_api_scrubber/v3/config.proto\x123envoy.extensions.filters.http.proto_api_scrubber.v3\x1a\x1fenvoy/config/core/v3/base.proto\x1a!xds/type/matcher/v3/matcher.proto\x1a\x1dudpa/annotations/status.proto\"\xbe\x03\n" +
	"\x16ProtoApiScrubberConfig\x12i\n" +
	"\x0edescriptor_set\x18\x01 \x01(\v2B.envoy.extensions.filters.http.proto_api_scrubber.v3.DescriptorSetR\rdescriptorSet\x12e\n" +
	"\frestrictions\x18\x02 \x01(\v2A.envoy.extensions.filters.http.proto_api_scrubber.v3.RestrictionsR\frestrictions\x12\x80\x01\n" +
	"\x0efiltering_mode\x18\x03 \x01(\x0e2Y.envoy.extensions.filters.http.proto_api_scrubber.v3.ProtoApiScrubberConfig.FilteringModeR\rfilteringMode\x120\n" +
	"\x14scrub_unknown_fields\x18\x04 \x01(\bR\x12scrubUnknownFields\"\x1d\n" +
	"\rFilteringMode\x12\f\n" +
	"\bOVERRIDE\x10\x00\"R\n" +
	"\rDescriptorSet\x12A\n" +
	"\vdata_source\x18\x01 \x01(\v2 .envoy.config.core.v3.DataSourceR\n" +
	"dataSource\"\xcf\x04\n" +
	"\fRestrictions\x12\x8a\x01\n" +
	"\x13method_restrictions\x18\x01 \x03(\v2Y.envoy.extensions.filters.http.proto_api_scrubber.v3.Restrictions.MethodRestrictionsEntryR\x12methodRestrictions\x12\x8d\x01\n" +
	"\x14message_restrictions\x18\x02 \x03(\v2Z.envoy.extensions.filters.http.proto_api_scrubber.v3.Restrictions.MessageRestrictionsEntryR\x13messageRestrictions\x1a\x8e\x01\n" +
	"\x17MethodRestrictionsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12]\n" +
	"\x05value\x18\x02 \x01(\v2G.envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictionsR\x05value:\x028\x01\x1a\x90\x01\n" +
	"\x18MessageRestrictionsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12^\n" +
	"\x05value\x18\x02 \x01(\v2H.envoy.extensions.filters.http.proto_api_scrubber.v3.MessageRestrictionsR\x05value:\x028\x01\"\x87\x06\n" +
	"\x12MethodRestrictions\x12\xa3\x01\n" +
	"\x1arequest_field_restrictions\x18\x01 \x03(\v2e.envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictions.RequestFieldRestrictionsEntryR\x18requestFieldRestrictions\x12\xa6\x01\n" +
	"\x1bresponse_field_restrictions\x18\x02 \x03(\v2f.envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictions.ResponseFieldRestrictionsEntryR\x19responseFieldRestrictions\x12u\n" +
	"\x12method_restriction\x18\x03 \x01(\v2F.envoy.extensions.filters.http.proto_api_scrubber.v3.RestrictionConfigR\x11methodRestriction\x1a\x93\x01\n" +
	"\x1dRequestFieldRestrictionsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\\\n" +
	"\x05value\x18\x02 \x01(\v2F.envoy.extensions.filters.http.proto_api_scrubber.v3.RestrictionConfigR\x05value:\x028\x01\x1a\x94\x01\n" +
	"\x1eResponseFieldRestrictionsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\\\n" +
	"\x05value\x18\x02 \x01(\v2F.envoy.extensions.filters.http.proto_api_scrubber.v3.RestrictionConfigR\x05value:\x028\x01\"\x95\x03\n" +
	"\x13MessageRestrictions\x12^\n" +
	"\x06config\x18\x01 \x01(\v2F.envoy.extensions.filters.http.proto_api_scrubber.v3.RestrictionConfigR\x06config\x12\x8e\x01\n" +
	"\x12field_restrictions\x18\x02 \x03(\v2_.envoy.extensions.filters.http.proto_api_scrubber.v3.MessageRestrictions.FieldRestrictionsEntryR\x11fieldRestrictions\x1a\x8c\x01\n" +
	"\x16FieldRestrictionsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\\\n" +
	"\x05value\x18\x02 \x01(\v2F.envoy.extensions.filters.http.proto_api_scrubber.v3.RestrictionConfigR\x05value:\x028\x01\"K\n" +
	"\x11RestrictionConfig\x126\n" +
	"\amatcher\x18\x01 \x01(\v2\x1c.xds.type.matcher.v3.MatcherR\amatcherB\xcb\x01\xba\x80\xc8\xd1\x06\x02\x10\x02\n" +
	"Aio.envoyproxy.envoy.extensions.filters.http.proto_api_scrubber.v3B\vConfigProtoP\x01Zogithub.com/envoyproxy/go-control-plane/envoy/extensions/filters/http/proto_api_scrubber/v3;proto_api_scrubberv3b\x06proto3"

var (
	file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_rawDescOnce sync.Once
	file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_rawDescData []byte
)

func file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_rawDescGZIP() []byte {
	file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_rawDescOnce.Do(func() {
		file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_rawDesc), len(file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_rawDesc)))
	})
	return file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_rawDescData
}

var file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_enumTypes = make([]protoimpl.EnumInfo, 1)
var file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_msgTypes = make([]protoimpl.MessageInfo, 11)
var file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_goTypes = []any{
	(ProtoApiScrubberConfig_FilteringMode)(0), // 0: envoy.extensions.filters.http.proto_api_scrubber.v3.ProtoApiScrubberConfig.FilteringMode
	(*ProtoApiScrubberConfig)(nil),            // 1: envoy.extensions.filters.http.proto_api_scrubber.v3.ProtoApiScrubberConfig
	(*DescriptorSet)(nil),                     // 2: envoy.extensions.filters.http.proto_api_scrubber.v3.DescriptorSet
	(*Restrictions)(nil),                      // 3: envoy.extensions.filters.http.proto_api_scrubber.v3.Restrictions
	(*MethodRestrictions)(nil),                // 4: envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictions
	(*MessageRestrictions)(nil),               // 5: envoy.extensions.filters.http.proto_api_scrubber.v3.MessageRestrictions
	(*RestrictionConfig)(nil),                 // 6: envoy.extensions.filters.http.proto_api_scrubber.v3.RestrictionConfig
	nil,                                       // 7: envoy.extensions.filters.http.proto_api_scrubber.v3.Restrictions.MethodRestrictionsEntry
	nil,                                       // 8: envoy.extensions.filters.http.proto_api_scrubber.v3.Restrictions.MessageRestrictionsEntry
	nil,                                       // 9: envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictions.RequestFieldRestrictionsEntry
	nil,                                       // 10: envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictions.ResponseFieldRestrictionsEntry
	nil,                                       // 11: envoy.extensions.filters.http.proto_api_scrubber.v3.MessageRestrictions.FieldRestrictionsEntry
	(*v3.DataSource)(nil),                     // 12: envoy.config.core.v3.DataSource
	(*v31.Matcher)(nil),                       // 13: xds.type.matcher.v3.Matcher
}
var file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_depIdxs = []int32{
	2,  // 0: envoy.extensions.filters.http.proto_api_scrubber.v3.ProtoApiScrubberConfig.descriptor_set:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.DescriptorSet
	3,  // 1: envoy.extensions.filters.http.proto_api_scrubber.v3.ProtoApiScrubberConfig.restrictions:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.Restrictions
	0,  // 2: envoy.extensions.filters.http.proto_api_scrubber.v3.ProtoApiScrubberConfig.filtering_mode:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.ProtoApiScrubberConfig.FilteringMode
	12, // 3: envoy.extensions.filters.http.proto_api_scrubber.v3.DescriptorSet.data_source:type_name -> envoy.config.core.v3.DataSource
	7,  // 4: envoy.extensions.filters.http.proto_api_scrubber.v3.Restrictions.method_restrictions:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.Restrictions.MethodRestrictionsEntry
	8,  // 5: envoy.extensions.filters.http.proto_api_scrubber.v3.Restrictions.message_restrictions:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.Restrictions.MessageRestrictionsEntry
	9,  // 6: envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictions.request_field_restrictions:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictions.RequestFieldRestrictionsEntry
	10, // 7: envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictions.response_field_restrictions:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictions.ResponseFieldRestrictionsEntry
	6,  // 8: envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictions.method_restriction:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.RestrictionConfig
	6,  // 9: envoy.extensions.filters.http.proto_api_scrubber.v3.MessageRestrictions.config:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.RestrictionConfig
	11, // 10: envoy.extensions.filters.http.proto_api_scrubber.v3.MessageRestrictions.field_restrictions:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.MessageRestrictions.FieldRestrictionsEntry
	13, // 11: envoy.extensions.filters.http.proto_api_scrubber.v3.RestrictionConfig.matcher:type_name -> xds.type.matcher.v3.Matcher
	4,  // 12: envoy.extensions.filters.http.proto_api_scrubber.v3.Restrictions.MethodRestrictionsEntry.value:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictions
	5,  // 13: envoy.extensions.filters.http.proto_api_scrubber.v3.Restrictions.MessageRestrictionsEntry.value:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.MessageRestrictions
	6,  // 14: envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictions.RequestFieldRestrictionsEntry.value:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.RestrictionConfig
	6,  // 15: envoy.extensions.filters.http.proto_api_scrubber.v3.MethodRestrictions.ResponseFieldRestrictionsEntry.value:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.RestrictionConfig
	6,  // 16: envoy.extensions.filters.http.proto_api_scrubber.v3.MessageRestrictions.FieldRestrictionsEntry.value:type_name -> envoy.extensions.filters.http.proto_api_scrubber.v3.RestrictionConfig
	17, // [17:17] is the sub-list for method output_type
	17, // [17:17] is the sub-list for method input_type
	17, // [17:17] is the sub-list for extension type_name
	17, // [17:17] is the sub-list for extension extendee
	0,  // [0:17] is the sub-list for field type_name
}

func init() { file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_init() }
func file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_init() {
	if File_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto != nil {
		return
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_rawDesc), len(file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_rawDesc)),
			NumEnums:      1,
			NumMessages:   11,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_goTypes,
		DependencyIndexes: file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_depIdxs,
		EnumInfos:         file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_enumTypes,
		MessageInfos:      file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_msgTypes,
	}.Build()
	File_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto = out.File
	file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_goTypes = nil
	file_envoy_extensions_filters_http_proto_api_scrubber_v3_config_proto_depIdxs = nil
}
