// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v6.33.2
// source: contrib/envoy/extensions/filters/http/peer_metadata/v3/peer_metadata.proto

package peer_metadata

import (
	_ "github.com/cncf/xds/go/udpa/annotations"
	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)
)

// Peer metadata provider filter. This filter encapsulates the discovery of the
// peer telemetry attributes for consumption by the telemetry filters.
// [#next-free-field: 7]
type Config struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The order of the derivation of the downstream peer metadata, in the precedence order.
	// First successful lookup wins.
	DownstreamDiscovery []*Config_DiscoveryMethod `protobuf:"bytes,1,rep,name=downstream_discovery,json=downstreamDiscovery,proto3" json:"downstream_discovery,omitempty"`
	// The order of the derivation of the upstream peer metadata, in the precedence order.
	// First successful lookup wins.
	UpstreamDiscovery []*Config_DiscoveryMethod `protobuf:"bytes,2,rep,name=upstream_discovery,json=upstreamDiscovery,proto3" json:"upstream_discovery,omitempty"`
	// Downstream injection of the metadata via a response header.
	DownstreamPropagation []*Config_PropagationMethod `protobuf:"bytes,3,rep,name=downstream_propagation,json=downstreamPropagation,proto3" json:"downstream_propagation,omitempty"`
	// Upstream injection of the metadata via a request header.
	UpstreamPropagation []*Config_PropagationMethod `protobuf:"bytes,4,rep,name=upstream_propagation,json=upstreamPropagation,proto3" json:"upstream_propagation,omitempty"`
	// True to enable sharing with the upstream.
	SharedWithUpstream bool `protobuf:"varint,5,opt,name=shared_with_upstream,json=sharedWithUpstream,proto3" json:"shared_with_upstream,omitempty"`
	// Additional labels to be added to the peer metadata to help your understand the traffic.
	// e.g. “role“, “location“ etc.
	AdditionalLabels []string `protobuf:"bytes,6,rep,name=additional_labels,json=additionalLabels,proto3" json:"additional_labels,omitempty"`
	unknownFields    protoimpl.UnknownFields
	sizeCache        protoimpl.SizeCache
}

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

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

func (*Config) ProtoMessage() {}

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

func (x *Config) GetDownstreamDiscovery() []*Config_DiscoveryMethod {
	if x != nil {
		return x.DownstreamDiscovery
	}
	return nil
}

func (x *Config) GetUpstreamDiscovery() []*Config_DiscoveryMethod {
	if x != nil {
		return x.UpstreamDiscovery
	}
	return nil
}

func (x *Config) GetDownstreamPropagation() []*Config_PropagationMethod {
	if x != nil {
		return x.DownstreamPropagation
	}
	return nil
}

func (x *Config) GetUpstreamPropagation() []*Config_PropagationMethod {
	if x != nil {
		return x.UpstreamPropagation
	}
	return nil
}

func (x *Config) GetSharedWithUpstream() bool {
	if x != nil {
		return x.SharedWithUpstream
	}
	return false
}

func (x *Config) GetAdditionalLabels() []string {
	if x != nil {
		return x.AdditionalLabels
	}
	return nil
}

// This method uses “baggage“ header encoding. Only used for HTTP CONNECT tunnels.
type Config_Baggage struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Config_Baggage) ProtoMessage() {}

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

// This method uses the workload metadata xDS. Requires that the bootstrap extension is enabled.
// For downstream discovery, the remote address is the lookup key in xDS.
// For upstream discovery:
//
//   - If the upstream host address is an IP, this IP is used as the lookup key;
//   - If the upstream host address is internal, uses the
//     “filter_metadata.tunnel.destination“ dynamic metadata value as the lookup key.
type Config_WorkloadDiscovery struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*Config_WorkloadDiscovery) ProtoMessage() {}

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

// This method uses Istio HTTP metadata exchange headers, e.g. “x-envoy-peer-metadata“. Removes these headers if found.
type Config_IstioHeaders struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Strip “x-envoy-peer-metadata“ and “x-envoy-peer-metadata-id“ headers on HTTP requests to services outside the mesh.
	// Detects upstream clusters with “istio“ and “external“ filter metadata fields
	SkipExternalClusters bool `protobuf:"varint,1,opt,name=skip_external_clusters,json=skipExternalClusters,proto3" json:"skip_external_clusters,omitempty"`
	unknownFields        protoimpl.UnknownFields
	sizeCache            protoimpl.SizeCache
}

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

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

func (*Config_IstioHeaders) ProtoMessage() {}

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

func (x *Config_IstioHeaders) GetSkipExternalClusters() bool {
	if x != nil {
		return x.SkipExternalClusters
	}
	return false
}

// This method extracts peer metadata from the upstream filter state if it's available.
//
// Upstream filter state could be populated by multiple means in general, but in practice the
// intention here is that upstream PeerMetadata filter will populate the filter state with peer
// details extracted from the baggage header sent in response.
//
// Naturally this metadata discovery method only makes sense for upstream peer metadata discovery.
type Config_UpstreamFilterState struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Upstream filter state key that will be used to store peer metadata.
	PeerMetadataKey string `protobuf:"bytes,1,opt,name=peer_metadata_key,json=peerMetadataKey,proto3" json:"peer_metadata_key,omitempty"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*Config_UpstreamFilterState) ProtoMessage() {}

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

func (x *Config_UpstreamFilterState) GetPeerMetadataKey() string {
	if x != nil {
		return x.PeerMetadataKey
	}
	return ""
}

// An exhaustive list of the derivation methods.
type Config_DiscoveryMethod struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to MethodSpecifier:
	//
	//	*Config_DiscoveryMethod_Baggage
	//	*Config_DiscoveryMethod_WorkloadDiscovery
	//	*Config_DiscoveryMethod_IstioHeaders
	//	*Config_DiscoveryMethod_UpstreamFilterState
	MethodSpecifier isConfig_DiscoveryMethod_MethodSpecifier `protobuf_oneof:"method_specifier"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

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

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

func (*Config_DiscoveryMethod) ProtoMessage() {}

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

func (x *Config_DiscoveryMethod) GetMethodSpecifier() isConfig_DiscoveryMethod_MethodSpecifier {
	if x != nil {
		return x.MethodSpecifier
	}
	return nil
}

func (x *Config_DiscoveryMethod) GetBaggage() *Config_Baggage {
	if x != nil {
		if x, ok := x.MethodSpecifier.(*Config_DiscoveryMethod_Baggage); ok {
			return x.Baggage
		}
	}
	return nil
}

func (x *Config_DiscoveryMethod) GetWorkloadDiscovery() *Config_WorkloadDiscovery {
	if x != nil {
		if x, ok := x.MethodSpecifier.(*Config_DiscoveryMethod_WorkloadDiscovery); ok {
			return x.WorkloadDiscovery
		}
	}
	return nil
}

func (x *Config_DiscoveryMethod) GetIstioHeaders() *Config_IstioHeaders {
	if x != nil {
		if x, ok := x.MethodSpecifier.(*Config_DiscoveryMethod_IstioHeaders); ok {
			return x.IstioHeaders
		}
	}
	return nil
}

func (x *Config_DiscoveryMethod) GetUpstreamFilterState() *Config_UpstreamFilterState {
	if x != nil {
		if x, ok := x.MethodSpecifier.(*Config_DiscoveryMethod_UpstreamFilterState); ok {
			return x.UpstreamFilterState
		}
	}
	return nil
}

type isConfig_DiscoveryMethod_MethodSpecifier interface {
	isConfig_DiscoveryMethod_MethodSpecifier()
}

type Config_DiscoveryMethod_Baggage struct {
	Baggage *Config_Baggage `protobuf:"bytes,1,opt,name=baggage,proto3,oneof"`
}

type Config_DiscoveryMethod_WorkloadDiscovery struct {
	WorkloadDiscovery *Config_WorkloadDiscovery `protobuf:"bytes,2,opt,name=workload_discovery,json=workloadDiscovery,proto3,oneof"`
}

type Config_DiscoveryMethod_IstioHeaders struct {
	IstioHeaders *Config_IstioHeaders `protobuf:"bytes,3,opt,name=istio_headers,json=istioHeaders,proto3,oneof"`
}

type Config_DiscoveryMethod_UpstreamFilterState struct {
	UpstreamFilterState *Config_UpstreamFilterState `protobuf:"bytes,4,opt,name=upstream_filter_state,json=upstreamFilterState,proto3,oneof"`
}

func (*Config_DiscoveryMethod_Baggage) isConfig_DiscoveryMethod_MethodSpecifier() {}

func (*Config_DiscoveryMethod_WorkloadDiscovery) isConfig_DiscoveryMethod_MethodSpecifier() {}

func (*Config_DiscoveryMethod_IstioHeaders) isConfig_DiscoveryMethod_MethodSpecifier() {}

func (*Config_DiscoveryMethod_UpstreamFilterState) isConfig_DiscoveryMethod_MethodSpecifier() {}

// An exhaustive list of the metadata propagation methods.
type Config_PropagationMethod struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to MethodSpecifier:
	//
	//	*Config_PropagationMethod_IstioHeaders
	//	*Config_PropagationMethod_Baggage
	MethodSpecifier isConfig_PropagationMethod_MethodSpecifier `protobuf_oneof:"method_specifier"`
	unknownFields   protoimpl.UnknownFields
	sizeCache       protoimpl.SizeCache
}

func (x *Config_PropagationMethod) Reset() {
	*x = Config_PropagationMethod{}
	mi := &file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_msgTypes[6]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Config_PropagationMethod) ProtoMessage() {}

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

func (x *Config_PropagationMethod) GetMethodSpecifier() isConfig_PropagationMethod_MethodSpecifier {
	if x != nil {
		return x.MethodSpecifier
	}
	return nil
}

func (x *Config_PropagationMethod) GetIstioHeaders() *Config_IstioHeaders {
	if x != nil {
		if x, ok := x.MethodSpecifier.(*Config_PropagationMethod_IstioHeaders); ok {
			return x.IstioHeaders
		}
	}
	return nil
}

func (x *Config_PropagationMethod) GetBaggage() *Config_Baggage {
	if x != nil {
		if x, ok := x.MethodSpecifier.(*Config_PropagationMethod_Baggage); ok {
			return x.Baggage
		}
	}
	return nil
}

type isConfig_PropagationMethod_MethodSpecifier interface {
	isConfig_PropagationMethod_MethodSpecifier()
}

type Config_PropagationMethod_IstioHeaders struct {
	IstioHeaders *Config_IstioHeaders `protobuf:"bytes,1,opt,name=istio_headers,json=istioHeaders,proto3,oneof"`
}

type Config_PropagationMethod_Baggage struct {
	Baggage *Config_Baggage `protobuf:"bytes,2,opt,name=baggage,proto3,oneof"`
}

func (*Config_PropagationMethod_IstioHeaders) isConfig_PropagationMethod_MethodSpecifier() {}

func (*Config_PropagationMethod_Baggage) isConfig_PropagationMethod_MethodSpecifier() {}

var File_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto protoreflect.FileDescriptor

const file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_rawDesc = "" +
	"\n" +
	"Jcontrib/envoy/extensions/filters/http/peer_metadata/v3/peer_metadata.proto\x12\x1bio.istio.http.peer_metadata\x1a\x1dudpa/annotations/status.proto\"\xa1\n" +
	"\n" +
	"\x06Config\x12f\n" +
	"\x14downstream_discovery\x18\x01 \x03(\v23.io.istio.http.peer_metadata.Config.DiscoveryMethodR\x13downstreamDiscovery\x12b\n" +
	"\x12upstream_discovery\x18\x02 \x03(\v23.io.istio.http.peer_metadata.Config.DiscoveryMethodR\x11upstreamDiscovery\x12l\n" +
	"\x16downstream_propagation\x18\x03 \x03(\v25.io.istio.http.peer_metadata.Config.PropagationMethodR\x15downstreamPropagation\x12h\n" +
	"\x14upstream_propagation\x18\x04 \x03(\v25.io.istio.http.peer_metadata.Config.PropagationMethodR\x13upstreamPropagation\x120\n" +
	"\x14shared_with_upstream\x18\x05 \x01(\bR\x12sharedWithUpstream\x12+\n" +
	"\x11additional_labels\x18\x06 \x03(\tR\x10additionalLabels\x1a\t\n" +
	"\aBaggage\x1a\x13\n" +
	"\x11WorkloadDiscovery\x1aD\n" +
	"\fIstioHeaders\x124\n" +
	"\x16skip_external_clusters\x18\x01 \x01(\bR\x14skipExternalClusters\x1aA\n" +
	"\x13UpstreamFilterState\x12*\n" +
	"\x11peer_metadata_key\x18\x01 \x01(\tR\x0fpeerMetadataKey\x1a\x9e\x03\n" +
	"\x0fDiscoveryMethod\x12G\n" +
	"\abaggage\x18\x01 \x01(\v2+.io.istio.http.peer_metadata.Config.BaggageH\x00R\abaggage\x12f\n" +
	"\x12workload_discovery\x18\x02 \x01(\v25.io.istio.http.peer_metadata.Config.WorkloadDiscoveryH\x00R\x11workloadDiscovery\x12W\n" +
	"\ristio_headers\x18\x03 \x01(\v20.io.istio.http.peer_metadata.Config.IstioHeadersH\x00R\fistioHeaders\x12m\n" +
	"\x15upstream_filter_state\x18\x04 \x01(\v27.io.istio.http.peer_metadata.Config.UpstreamFilterStateH\x00R\x13upstreamFilterStateB\x12\n" +
	"\x10method_specifier\x1a\xc9\x01\n" +
	"\x11PropagationMethod\x12W\n" +
	"\ristio_headers\x18\x01 \x01(\v20.io.istio.http.peer_metadata.Config.IstioHeadersH\x00R\fistioHeaders\x12G\n" +
	"\abaggage\x18\x02 \x01(\v2+.io.istio.http.peer_metadata.Config.BaggageH\x00R\abaggageB\x12\n" +
	"\x10method_specifierB\x94\x01\xba\x80\xc8\xd1\x06\x02\x10\x02\n" +
	")io.envoyproxy.io.istio.http.peer_metadataB\x11PeerMetadataProtoP\x01ZJgithub.com/envoyproxy/go-control-plane/contrib/io/istio/http/peer_metadatab\x06proto3"

var (
	file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_rawDescOnce sync.Once
	file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_rawDescData []byte
)

func file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_rawDescGZIP() []byte {
	file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_rawDescOnce.Do(func() {
		file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_rawDesc), len(file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_rawDesc)))
	})
	return file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_rawDescData
}

var file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_msgTypes = make([]protoimpl.MessageInfo, 7)
var file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_goTypes = []any{
	(*Config)(nil),                     // 0: io.istio.http.peer_metadata.Config
	(*Config_Baggage)(nil),             // 1: io.istio.http.peer_metadata.Config.Baggage
	(*Config_WorkloadDiscovery)(nil),   // 2: io.istio.http.peer_metadata.Config.WorkloadDiscovery
	(*Config_IstioHeaders)(nil),        // 3: io.istio.http.peer_metadata.Config.IstioHeaders
	(*Config_UpstreamFilterState)(nil), // 4: io.istio.http.peer_metadata.Config.UpstreamFilterState
	(*Config_DiscoveryMethod)(nil),     // 5: io.istio.http.peer_metadata.Config.DiscoveryMethod
	(*Config_PropagationMethod)(nil),   // 6: io.istio.http.peer_metadata.Config.PropagationMethod
}
var file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_depIdxs = []int32{
	5,  // 0: io.istio.http.peer_metadata.Config.downstream_discovery:type_name -> io.istio.http.peer_metadata.Config.DiscoveryMethod
	5,  // 1: io.istio.http.peer_metadata.Config.upstream_discovery:type_name -> io.istio.http.peer_metadata.Config.DiscoveryMethod
	6,  // 2: io.istio.http.peer_metadata.Config.downstream_propagation:type_name -> io.istio.http.peer_metadata.Config.PropagationMethod
	6,  // 3: io.istio.http.peer_metadata.Config.upstream_propagation:type_name -> io.istio.http.peer_metadata.Config.PropagationMethod
	1,  // 4: io.istio.http.peer_metadata.Config.DiscoveryMethod.baggage:type_name -> io.istio.http.peer_metadata.Config.Baggage
	2,  // 5: io.istio.http.peer_metadata.Config.DiscoveryMethod.workload_discovery:type_name -> io.istio.http.peer_metadata.Config.WorkloadDiscovery
	3,  // 6: io.istio.http.peer_metadata.Config.DiscoveryMethod.istio_headers:type_name -> io.istio.http.peer_metadata.Config.IstioHeaders
	4,  // 7: io.istio.http.peer_metadata.Config.DiscoveryMethod.upstream_filter_state:type_name -> io.istio.http.peer_metadata.Config.UpstreamFilterState
	3,  // 8: io.istio.http.peer_metadata.Config.PropagationMethod.istio_headers:type_name -> io.istio.http.peer_metadata.Config.IstioHeaders
	1,  // 9: io.istio.http.peer_metadata.Config.PropagationMethod.baggage:type_name -> io.istio.http.peer_metadata.Config.Baggage
	10, // [10:10] is the sub-list for method output_type
	10, // [10:10] is the sub-list for method input_type
	10, // [10:10] is the sub-list for extension type_name
	10, // [10:10] is the sub-list for extension extendee
	0,  // [0:10] is the sub-list for field type_name
}

func init() { file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_init() }
func file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_init() {
	if File_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto != nil {
		return
	}
	file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_msgTypes[5].OneofWrappers = []any{
		(*Config_DiscoveryMethod_Baggage)(nil),
		(*Config_DiscoveryMethod_WorkloadDiscovery)(nil),
		(*Config_DiscoveryMethod_IstioHeaders)(nil),
		(*Config_DiscoveryMethod_UpstreamFilterState)(nil),
	}
	file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_msgTypes[6].OneofWrappers = []any{
		(*Config_PropagationMethod_IstioHeaders)(nil),
		(*Config_PropagationMethod_Baggage)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_rawDesc), len(file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   7,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_goTypes,
		DependencyIndexes: file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_depIdxs,
		MessageInfos:      file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_msgTypes,
	}.Build()
	File_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto = out.File
	file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_goTypes = nil
	file_contrib_envoy_extensions_filters_http_peer_metadata_v3_peer_metadata_proto_depIdxs = nil
}
