// Code generated by protoc-gen-go. DO NOT EDIT.
// versions:
// 	protoc-gen-go v1.36.10
// 	protoc        v6.33.2
// source: envoy/service/discovery/v3/discovery.proto

package discoveryv3

import (
	_ "github.com/cncf/xds/go/udpa/annotations"
	v3 "github.com/envoyproxy/go-control-plane/envoy/config/core/v3"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	status "google.golang.org/genproto/googleapis/rpc/status"
	protoreflect "google.golang.org/protobuf/reflect/protoreflect"
	protoimpl "google.golang.org/protobuf/runtime/protoimpl"
	anypb "google.golang.org/protobuf/types/known/anypb"
	durationpb "google.golang.org/protobuf/types/known/durationpb"
	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)
)

// Specifies a resource to be subscribed to.
type ResourceLocator struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The resource name to subscribe to.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// A set of dynamic parameters used to match against the dynamic parameter
	// constraints on the resource. This allows clients to select between
	// multiple variants of the same resource.
	DynamicParameters map[string]string `protobuf:"bytes,2,rep,name=dynamic_parameters,json=dynamicParameters,proto3" json:"dynamic_parameters,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	unknownFields     protoimpl.UnknownFields
	sizeCache         protoimpl.SizeCache
}

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

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

func (*ResourceLocator) ProtoMessage() {}

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

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

func (x *ResourceLocator) GetDynamicParameters() map[string]string {
	if x != nil {
		return x.DynamicParameters
	}
	return nil
}

// Specifies a concrete resource name.
type ResourceName struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name of the resource.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// Dynamic parameter constraints associated with this resource. To be used by client-side caches
	// (including xDS proxies) when matching subscribed resource locators.
	DynamicParameterConstraints *DynamicParameterConstraints `protobuf:"bytes,2,opt,name=dynamic_parameter_constraints,json=dynamicParameterConstraints,proto3" json:"dynamic_parameter_constraints,omitempty"`
	unknownFields               protoimpl.UnknownFields
	sizeCache                   protoimpl.SizeCache
}

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

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

func (*ResourceName) ProtoMessage() {}

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

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

func (x *ResourceName) GetDynamicParameterConstraints() *DynamicParameterConstraints {
	if x != nil {
		return x.DynamicParameterConstraints
	}
	return nil
}

// [#not-implemented-hide:]
// An error associated with a specific resource name, returned to the
// client by the server.
type ResourceError struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The name of the resource.
	ResourceName *ResourceName `protobuf:"bytes,1,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
	// The error reported for the resource.
	ErrorDetail   *status.Status `protobuf:"bytes,2,opt,name=error_detail,json=errorDetail,proto3" json:"error_detail,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*ResourceError) ProtoMessage() {}

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

func (x *ResourceError) GetResourceName() *ResourceName {
	if x != nil {
		return x.ResourceName
	}
	return nil
}

func (x *ResourceError) GetErrorDetail() *status.Status {
	if x != nil {
		return x.ErrorDetail
	}
	return nil
}

// A DiscoveryRequest requests a set of versioned resources of the same type for
// a given Envoy node on some API.
// [#next-free-field: 8]
type DiscoveryRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The “version_info“ provided in the request messages will be the “version_info“
	// received with the most recent successfully processed response or empty on
	// the first request. It is expected that no new request is sent after a
	// response is received until the Envoy instance is ready to ACK/NACK the new
	// configuration. ACK/NACK takes place by returning the new API config version
	// as applied or the previous API config version respectively. Each “type_url“
	// (see below) has an independent version associated with it.
	VersionInfo string `protobuf:"bytes,1,opt,name=version_info,json=versionInfo,proto3" json:"version_info,omitempty"`
	// The node making the request.
	Node *v3.Node `protobuf:"bytes,2,opt,name=node,proto3" json:"node,omitempty"`
	// List of resources to subscribe to, e.g. list of cluster names or a route
	// configuration name. If this is empty, all resources for the API are
	// returned. LDS/CDS may have empty “resource_names“, which will cause all
	// resources for the Envoy instance to be returned. The LDS and CDS responses
	// will then imply a number of resources that need to be fetched via EDS/RDS,
	// which will be explicitly enumerated in “resource_names“.
	ResourceNames []string `protobuf:"bytes,3,rep,name=resource_names,json=resourceNames,proto3" json:"resource_names,omitempty"`
	// [#not-implemented-hide:]
	// Alternative to “resource_names“ field that allows specifying dynamic
	// parameters along with each resource name. Clients that populate this
	// field must be able to handle responses from the server where resources
	// are wrapped in a Resource message.
	//
	// .. note::
	//
	//	It is legal for a request to have some resources listed
	//	in ``resource_names`` and others in ``resource_locators``.
	ResourceLocators []*ResourceLocator `protobuf:"bytes,7,rep,name=resource_locators,json=resourceLocators,proto3" json:"resource_locators,omitempty"`
	// Type of the resource that is being requested, e.g.
	// “type.googleapis.com/envoy.api.v2.ClusterLoadAssignment“. This is implicit
	// in requests made via singleton xDS APIs such as CDS, LDS, etc. but is
	// required for ADS.
	TypeUrl string `protobuf:"bytes,4,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"`
	// nonce corresponding to “DiscoveryResponse“ being ACK/NACKed. See above
	// discussion on “version_info“ and the “DiscoveryResponse“ nonce comment. This
	// may be empty only if:
	//
	//   - This is a non-persistent-stream xDS such as HTTP, or
	//   - The client has not yet accepted an update in this xDS stream (unlike
	//     delta, where it is populated only for new explicit ACKs).
	ResponseNonce string `protobuf:"bytes,5,opt,name=response_nonce,json=responseNonce,proto3" json:"response_nonce,omitempty"`
	// This is populated when the previous :ref:`DiscoveryResponse <envoy_v3_api_msg_service.discovery.v3.DiscoveryResponse>`
	// failed to update configuration. The “message“ field in “error_details“ provides the Envoy
	// internal exception related to the failure. It is only intended for consumption during manual
	// debugging, the string provided is not guaranteed to be stable across Envoy versions.
	ErrorDetail   *status.Status `protobuf:"bytes,6,opt,name=error_detail,json=errorDetail,proto3" json:"error_detail,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DiscoveryRequest) ProtoMessage() {}

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

func (x *DiscoveryRequest) GetVersionInfo() string {
	if x != nil {
		return x.VersionInfo
	}
	return ""
}

func (x *DiscoveryRequest) GetNode() *v3.Node {
	if x != nil {
		return x.Node
	}
	return nil
}

func (x *DiscoveryRequest) GetResourceNames() []string {
	if x != nil {
		return x.ResourceNames
	}
	return nil
}

func (x *DiscoveryRequest) GetResourceLocators() []*ResourceLocator {
	if x != nil {
		return x.ResourceLocators
	}
	return nil
}

func (x *DiscoveryRequest) GetTypeUrl() string {
	if x != nil {
		return x.TypeUrl
	}
	return ""
}

func (x *DiscoveryRequest) GetResponseNonce() string {
	if x != nil {
		return x.ResponseNonce
	}
	return ""
}

func (x *DiscoveryRequest) GetErrorDetail() *status.Status {
	if x != nil {
		return x.ErrorDetail
	}
	return nil
}

// [#next-free-field: 8]
type DiscoveryResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The version of the response data.
	VersionInfo string `protobuf:"bytes,1,opt,name=version_info,json=versionInfo,proto3" json:"version_info,omitempty"`
	// The response resources. These resources are typed and depend on the API being called.
	Resources []*anypb.Any `protobuf:"bytes,2,rep,name=resources,proto3" json:"resources,omitempty"`
	// [#not-implemented-hide:]
	// Canary is used to support two Envoy command line flags:
	//
	//   - “--terminate-on-canary-transition-failure“. When set, Envoy is able to
	//     terminate if it detects that configuration is stuck at canary. Consider
	//     this example sequence of updates:
	//
	//   - Management server applies a canary config successfully.
	//
	//   - Management server rolls back to a production config.
	//
	//   - Envoy rejects the new production config.
	//
	//     Since there is no sensible way to continue receiving configuration
	//     updates, Envoy will then terminate and apply production config from a
	//     clean slate.
	//
	//   - “--dry-run-canary“. When set, a canary response will never be applied, only
	//     validated via a dry run.
	Canary bool `protobuf:"varint,3,opt,name=canary,proto3" json:"canary,omitempty"`
	// Type URL for resources. Identifies the xDS API when muxing over ADS.
	// Must be consistent with the “type_url“ in the 'resources' repeated Any (if non-empty).
	TypeUrl string `protobuf:"bytes,4,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"`
	// For gRPC based subscriptions, the nonce provides a way to explicitly ack a
	// specific “DiscoveryResponse“ in a following “DiscoveryRequest“. Additional
	// messages may have been sent by Envoy to the management server for the
	// previous version on the stream prior to this “DiscoveryResponse“, that were
	// unprocessed at response send time. The nonce allows the management server
	// to ignore any further “DiscoveryRequests“ for the previous version until a
	// “DiscoveryRequest“ bearing the nonce. The nonce is optional and is not
	// required for non-stream based xDS implementations.
	Nonce string `protobuf:"bytes,5,opt,name=nonce,proto3" json:"nonce,omitempty"`
	// The control plane instance that sent the response.
	ControlPlane *v3.ControlPlane `protobuf:"bytes,6,opt,name=control_plane,json=controlPlane,proto3" json:"control_plane,omitempty"`
	// [#not-implemented-hide:]
	// Errors associated with specific resources. Clients are expected to
	// remember the most recent error for a given resource across responses;
	// the error condition is not considered to be cleared until a response is
	// received that contains the resource in the 'resources' field.
	ResourceErrors []*ResourceError `protobuf:"bytes,7,rep,name=resource_errors,json=resourceErrors,proto3" json:"resource_errors,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*DiscoveryResponse) ProtoMessage() {}

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

func (x *DiscoveryResponse) GetVersionInfo() string {
	if x != nil {
		return x.VersionInfo
	}
	return ""
}

func (x *DiscoveryResponse) GetResources() []*anypb.Any {
	if x != nil {
		return x.Resources
	}
	return nil
}

func (x *DiscoveryResponse) GetCanary() bool {
	if x != nil {
		return x.Canary
	}
	return false
}

func (x *DiscoveryResponse) GetTypeUrl() string {
	if x != nil {
		return x.TypeUrl
	}
	return ""
}

func (x *DiscoveryResponse) GetNonce() string {
	if x != nil {
		return x.Nonce
	}
	return ""
}

func (x *DiscoveryResponse) GetControlPlane() *v3.ControlPlane {
	if x != nil {
		return x.ControlPlane
	}
	return nil
}

func (x *DiscoveryResponse) GetResourceErrors() []*ResourceError {
	if x != nil {
		return x.ResourceErrors
	}
	return nil
}

// DeltaDiscoveryRequest and DeltaDiscoveryResponse are used in a new gRPC
// endpoint for Delta xDS.
//
// With Delta xDS, the DeltaDiscoveryResponses do not need to include a full
// snapshot of the tracked resources. Instead, DeltaDiscoveryResponses are a
// diff to the state of a xDS client.
// In Delta XDS there are per-resource versions, which allow tracking state at
// the resource granularity.
// An xDS Delta session is always in the context of a gRPC bidirectional
// stream. This allows the xDS server to keep track of the state of xDS clients
// connected to it.
//
// In Delta xDS the nonce field is required and used to pair
// “DeltaDiscoveryResponse“ to a “DeltaDiscoveryRequest“ ACK or NACK.
// Optionally, a response message level “system_version_info“ is present for
// debugging purposes only.
//
// “DeltaDiscoveryRequest“ plays two independent roles. Any “DeltaDiscoveryRequest“
// can be either or both of:
//
//   - Informing the server of what resources the client has gained/lost interest in
//     (using “resource_names_subscribe“ and “resource_names_unsubscribe“), or
//   - (N)ACKing an earlier resource update from the server (using “response_nonce“,
//     with presence of “error_detail“ making it a NACK).
//
// Additionally, the first message (for a given “type_url“) of a reconnected gRPC stream
// has a third role: informing the server of the resources (and their versions)
// that the client already possesses, using the “initial_resource_versions“ field.
//
// As with state-of-the-world, when multiple resource types are multiplexed (ADS),
// all requests/acknowledgments/updates are logically walled off by “type_url“:
// a Cluster ACK exists in a completely separate world from a prior Route NACK.
// In particular, “initial_resource_versions“ being sent at the "start" of every
// gRPC stream actually entails a message for each “type_url“, each with its own
// “initial_resource_versions“.
// [#next-free-field: 10]
type DeltaDiscoveryRequest struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The node making the request.
	Node *v3.Node `protobuf:"bytes,1,opt,name=node,proto3" json:"node,omitempty"`
	// Type of the resource that is being requested, e.g.
	// “type.googleapis.com/envoy.api.v2.ClusterLoadAssignment“. This does not need to be set if
	// resources are only referenced via “xds_resource_subscribe“ and
	// “xds_resources_unsubscribe“.
	TypeUrl string `protobuf:"bytes,2,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"`
	// DeltaDiscoveryRequests allow the client to add or remove individual
	// resources to the set of tracked resources in the context of a stream.
	// All resource names in the “resource_names_subscribe“ list are added to the
	// set of tracked resources and all resource names in the “resource_names_unsubscribe“
	// list are removed from the set of tracked resources.
	//
	// *Unlike* state-of-the-world xDS, an empty “resource_names_subscribe“ or
	// “resource_names_unsubscribe“ list simply means that no resources are to be
	// added or removed to the resource list.
	// *Like* state-of-the-world xDS, the server must send updates for all tracked
	// resources, but can also send updates for resources the client has not subscribed to.
	//
	// .. note::
	//
	//	The server must respond with all resources listed in ``resource_names_subscribe``,
	//	even if it believes the client has the most recent version of them. The reason:
	//	the client may have dropped them, but then regained interest before it had a chance
	//	to send the unsubscribe message. See DeltaSubscriptionStateTest.RemoveThenAdd.
	//
	// These two fields can be set in any “DeltaDiscoveryRequest“, including ACKs
	// and “initial_resource_versions“.
	//
	// A list of Resource names to add to the list of tracked resources.
	ResourceNamesSubscribe []string `protobuf:"bytes,3,rep,name=resource_names_subscribe,json=resourceNamesSubscribe,proto3" json:"resource_names_subscribe,omitempty"`
	// A list of Resource names to remove from the list of tracked resources.
	ResourceNamesUnsubscribe []string `protobuf:"bytes,4,rep,name=resource_names_unsubscribe,json=resourceNamesUnsubscribe,proto3" json:"resource_names_unsubscribe,omitempty"`
	// [#not-implemented-hide:]
	// Alternative to “resource_names_subscribe“ field that allows specifying dynamic parameters
	// along with each resource name.
	//
	// .. note::
	//
	//	It is legal for a request to have some resources listed
	//	in ``resource_names_subscribe`` and others in ``resource_locators_subscribe``.
	ResourceLocatorsSubscribe []*ResourceLocator `protobuf:"bytes,8,rep,name=resource_locators_subscribe,json=resourceLocatorsSubscribe,proto3" json:"resource_locators_subscribe,omitempty"`
	// [#not-implemented-hide:]
	// Alternative to “resource_names_unsubscribe“ field that allows specifying dynamic parameters
	// along with each resource name.
	//
	// .. note::
	//
	//	It is legal for a request to have some resources listed
	//	in ``resource_names_unsubscribe`` and others in ``resource_locators_unsubscribe``.
	ResourceLocatorsUnsubscribe []*ResourceLocator `protobuf:"bytes,9,rep,name=resource_locators_unsubscribe,json=resourceLocatorsUnsubscribe,proto3" json:"resource_locators_unsubscribe,omitempty"`
	// Informs the server of the versions of the resources the xDS client knows of, to enable the
	// client to continue the same logical xDS session even in the face of gRPC stream reconnection.
	// It will not be populated:
	//
	//   - In the very first stream of a session, since the client will not yet have any resources.
	//   - In any message after the first in a stream (for a given “type_url“), since the server will
	//     already be correctly tracking the client's state.
	//
	// (In ADS, the first message “of each type_url“ of a reconnected stream populates this map.)
	// The map's keys are names of xDS resources known to the xDS client.
	// The map's values are opaque resource versions.
	InitialResourceVersions map[string]string `protobuf:"bytes,5,rep,name=initial_resource_versions,json=initialResourceVersions,proto3" json:"initial_resource_versions,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"`
	// When the “DeltaDiscoveryRequest“ is a ACK or NACK message in response
	// to a previous “DeltaDiscoveryResponse“, the “response_nonce“ must be the
	// nonce in the “DeltaDiscoveryResponse“.
	// Otherwise (unlike in “DiscoveryRequest“) “response_nonce“ must be omitted.
	ResponseNonce string `protobuf:"bytes,6,opt,name=response_nonce,json=responseNonce,proto3" json:"response_nonce,omitempty"`
	// This is populated when the previous :ref:`DiscoveryResponse <envoy_v3_api_msg_service.discovery.v3.DiscoveryResponse>`
	// failed to update configuration. The “message“ field in “error_details“
	// provides the Envoy internal exception related to the failure.
	ErrorDetail   *status.Status `protobuf:"bytes,7,opt,name=error_detail,json=errorDetail,proto3" json:"error_detail,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

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

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

func (*DeltaDiscoveryRequest) ProtoMessage() {}

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

func (x *DeltaDiscoveryRequest) GetNode() *v3.Node {
	if x != nil {
		return x.Node
	}
	return nil
}

func (x *DeltaDiscoveryRequest) GetTypeUrl() string {
	if x != nil {
		return x.TypeUrl
	}
	return ""
}

func (x *DeltaDiscoveryRequest) GetResourceNamesSubscribe() []string {
	if x != nil {
		return x.ResourceNamesSubscribe
	}
	return nil
}

func (x *DeltaDiscoveryRequest) GetResourceNamesUnsubscribe() []string {
	if x != nil {
		return x.ResourceNamesUnsubscribe
	}
	return nil
}

func (x *DeltaDiscoveryRequest) GetResourceLocatorsSubscribe() []*ResourceLocator {
	if x != nil {
		return x.ResourceLocatorsSubscribe
	}
	return nil
}

func (x *DeltaDiscoveryRequest) GetResourceLocatorsUnsubscribe() []*ResourceLocator {
	if x != nil {
		return x.ResourceLocatorsUnsubscribe
	}
	return nil
}

func (x *DeltaDiscoveryRequest) GetInitialResourceVersions() map[string]string {
	if x != nil {
		return x.InitialResourceVersions
	}
	return nil
}

func (x *DeltaDiscoveryRequest) GetResponseNonce() string {
	if x != nil {
		return x.ResponseNonce
	}
	return ""
}

func (x *DeltaDiscoveryRequest) GetErrorDetail() *status.Status {
	if x != nil {
		return x.ErrorDetail
	}
	return nil
}

// [#next-free-field: 10]
type DeltaDiscoveryResponse struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The version of the response data (used for debugging).
	SystemVersionInfo string `protobuf:"bytes,1,opt,name=system_version_info,json=systemVersionInfo,proto3" json:"system_version_info,omitempty"`
	// The response resources. These are typed resources, whose types must match
	// the “type_url“ field.
	Resources []*Resource `protobuf:"bytes,2,rep,name=resources,proto3" json:"resources,omitempty"`
	// Type URL for resources. Identifies the xDS API when muxing over ADS.
	// Must be consistent with the “type_url“ in the Any within 'resources' if 'resources' is non-empty.
	TypeUrl string `protobuf:"bytes,4,opt,name=type_url,json=typeUrl,proto3" json:"type_url,omitempty"`
	// Resource names of resources that have been deleted and to be removed from the xDS Client.
	// Removed resources for missing resources can be ignored.
	RemovedResources []string `protobuf:"bytes,6,rep,name=removed_resources,json=removedResources,proto3" json:"removed_resources,omitempty"`
	// Alternative to “removed_resources“ that allows specifying which variant of
	// a resource is being removed. This variant must be used for any resource
	// for which dynamic parameter constraints were sent to the client.
	RemovedResourceNames []*ResourceName `protobuf:"bytes,8,rep,name=removed_resource_names,json=removedResourceNames,proto3" json:"removed_resource_names,omitempty"`
	// The nonce provides a way for “DeltaDiscoveryRequests“ to uniquely
	// reference a “DeltaDiscoveryResponse“ when (N)ACKing. The nonce is required.
	Nonce string `protobuf:"bytes,5,opt,name=nonce,proto3" json:"nonce,omitempty"`
	// [#not-implemented-hide:]
	// The control plane instance that sent the response.
	ControlPlane *v3.ControlPlane `protobuf:"bytes,7,opt,name=control_plane,json=controlPlane,proto3" json:"control_plane,omitempty"`
	// [#not-implemented-hide:]
	// Errors associated with specific resources.
	//
	// .. note::
	//
	//	A resource in this field with a status of NOT_FOUND should be treated the same as
	//	a resource listed in the ``removed_resources`` or ``removed_resource_names`` fields.
	ResourceErrors []*ResourceError `protobuf:"bytes,9,rep,name=resource_errors,json=resourceErrors,proto3" json:"resource_errors,omitempty"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

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

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

func (*DeltaDiscoveryResponse) ProtoMessage() {}

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

func (x *DeltaDiscoveryResponse) GetSystemVersionInfo() string {
	if x != nil {
		return x.SystemVersionInfo
	}
	return ""
}

func (x *DeltaDiscoveryResponse) GetResources() []*Resource {
	if x != nil {
		return x.Resources
	}
	return nil
}

func (x *DeltaDiscoveryResponse) GetTypeUrl() string {
	if x != nil {
		return x.TypeUrl
	}
	return ""
}

func (x *DeltaDiscoveryResponse) GetRemovedResources() []string {
	if x != nil {
		return x.RemovedResources
	}
	return nil
}

func (x *DeltaDiscoveryResponse) GetRemovedResourceNames() []*ResourceName {
	if x != nil {
		return x.RemovedResourceNames
	}
	return nil
}

func (x *DeltaDiscoveryResponse) GetNonce() string {
	if x != nil {
		return x.Nonce
	}
	return ""
}

func (x *DeltaDiscoveryResponse) GetControlPlane() *v3.ControlPlane {
	if x != nil {
		return x.ControlPlane
	}
	return nil
}

func (x *DeltaDiscoveryResponse) GetResourceErrors() []*ResourceError {
	if x != nil {
		return x.ResourceErrors
	}
	return nil
}

// A set of dynamic parameter constraints associated with a variant of an individual xDS resource.
// These constraints determine whether the resource matches a subscription based on the set of
// dynamic parameters in the subscription, as specified in the
// :ref:`ResourceLocator.dynamic_parameters <envoy_v3_api_field_service.discovery.v3.ResourceLocator.dynamic_parameters>`
// field. This allows xDS implementations (clients, servers, and caching proxies) to determine
// which variant of a resource is appropriate for a given client.
type DynamicParameterConstraints struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// Types that are valid to be assigned to Type:
	//
	//	*DynamicParameterConstraints_Constraint
	//	*DynamicParameterConstraints_OrConstraints
	//	*DynamicParameterConstraints_AndConstraints
	//	*DynamicParameterConstraints_NotConstraints
	Type          isDynamicParameterConstraints_Type `protobuf_oneof:"type"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DynamicParameterConstraints) Reset() {
	*x = DynamicParameterConstraints{}
	mi := &file_envoy_service_discovery_v3_discovery_proto_msgTypes[7]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DynamicParameterConstraints) ProtoMessage() {}

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

func (x *DynamicParameterConstraints) GetType() isDynamicParameterConstraints_Type {
	if x != nil {
		return x.Type
	}
	return nil
}

func (x *DynamicParameterConstraints) GetConstraint() *DynamicParameterConstraints_SingleConstraint {
	if x != nil {
		if x, ok := x.Type.(*DynamicParameterConstraints_Constraint); ok {
			return x.Constraint
		}
	}
	return nil
}

func (x *DynamicParameterConstraints) GetOrConstraints() *DynamicParameterConstraints_ConstraintList {
	if x != nil {
		if x, ok := x.Type.(*DynamicParameterConstraints_OrConstraints); ok {
			return x.OrConstraints
		}
	}
	return nil
}

func (x *DynamicParameterConstraints) GetAndConstraints() *DynamicParameterConstraints_ConstraintList {
	if x != nil {
		if x, ok := x.Type.(*DynamicParameterConstraints_AndConstraints); ok {
			return x.AndConstraints
		}
	}
	return nil
}

func (x *DynamicParameterConstraints) GetNotConstraints() *DynamicParameterConstraints {
	if x != nil {
		if x, ok := x.Type.(*DynamicParameterConstraints_NotConstraints); ok {
			return x.NotConstraints
		}
	}
	return nil
}

type isDynamicParameterConstraints_Type interface {
	isDynamicParameterConstraints_Type()
}

type DynamicParameterConstraints_Constraint struct {
	// A single constraint to evaluate.
	Constraint *DynamicParameterConstraints_SingleConstraint `protobuf:"bytes,1,opt,name=constraint,proto3,oneof"`
}

type DynamicParameterConstraints_OrConstraints struct {
	// A list of constraints that match if any one constraint in the list
	// matches.
	OrConstraints *DynamicParameterConstraints_ConstraintList `protobuf:"bytes,2,opt,name=or_constraints,json=orConstraints,proto3,oneof"`
}

type DynamicParameterConstraints_AndConstraints struct {
	// A list of constraints that must all match.
	AndConstraints *DynamicParameterConstraints_ConstraintList `protobuf:"bytes,3,opt,name=and_constraints,json=andConstraints,proto3,oneof"`
}

type DynamicParameterConstraints_NotConstraints struct {
	// The inverse (NOT) of a set of constraints.
	NotConstraints *DynamicParameterConstraints `protobuf:"bytes,4,opt,name=not_constraints,json=notConstraints,proto3,oneof"`
}

func (*DynamicParameterConstraints_Constraint) isDynamicParameterConstraints_Type() {}

func (*DynamicParameterConstraints_OrConstraints) isDynamicParameterConstraints_Type() {}

func (*DynamicParameterConstraints_AndConstraints) isDynamicParameterConstraints_Type() {}

func (*DynamicParameterConstraints_NotConstraints) isDynamicParameterConstraints_Type() {}

// [#next-free-field: 10]
type Resource struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The resource's name, to distinguish it from others of the same type of resource.
	// Only one of “name“ or “resource_name“ may be set.
	Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"`
	// Alternative to the “name“ field, to be used when the server supports
	// multiple variants of the named resource that are differentiated by
	// dynamic parameter constraints.
	// Only one of “name“ or “resource_name“ may be set.
	ResourceName *ResourceName `protobuf:"bytes,8,opt,name=resource_name,json=resourceName,proto3" json:"resource_name,omitempty"`
	// The aliases are a list of other names that this resource can go by.
	Aliases []string `protobuf:"bytes,4,rep,name=aliases,proto3" json:"aliases,omitempty"`
	// The resource level version. It allows xDS to track the state of individual
	// resources.
	Version string `protobuf:"bytes,1,opt,name=version,proto3" json:"version,omitempty"`
	// The resource being tracked.
	Resource *anypb.Any `protobuf:"bytes,2,opt,name=resource,proto3" json:"resource,omitempty"`
	// Time-to-live value for the resource. For each resource, a timer is started. The timer is
	// reset each time the resource is received with a new TTL. If the resource is received with
	// no TTL set, the timer is removed for the resource. Upon expiration of the timer, the
	// configuration for the resource will be removed.
	//
	// The TTL can be refreshed or changed by sending a response that doesn't change the resource
	// version. In this case the “resource“ field does not need to be populated, which allows for
	// light-weight "heartbeat" updates to keep a resource with a TTL alive.
	//
	// The TTL feature is meant to support configurations that should be removed in the event of
	// a management server failure. For example, the feature may be used for fault injection
	// testing where the fault injection should be terminated in the event that Envoy loses contact
	// with the management server.
	Ttl *durationpb.Duration `protobuf:"bytes,6,opt,name=ttl,proto3" json:"ttl,omitempty"`
	// Cache control properties for the resource.
	// [#not-implemented-hide:]
	CacheControl *Resource_CacheControl `protobuf:"bytes,7,opt,name=cache_control,json=cacheControl,proto3" json:"cache_control,omitempty"`
	// The Metadata field can be used to provide additional information for the resource.
	// E.g. the trace data for debugging.
	Metadata      *v3.Metadata `protobuf:"bytes,9,opt,name=metadata,proto3" json:"metadata,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Resource) Reset() {
	*x = Resource{}
	mi := &file_envoy_service_discovery_v3_discovery_proto_msgTypes[8]
	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_envoy_service_discovery_v3_discovery_proto_msgTypes[8]
	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 Resource.ProtoReflect.Descriptor instead.
func (*Resource) Descriptor() ([]byte, []int) {
	return file_envoy_service_discovery_v3_discovery_proto_rawDescGZIP(), []int{8}
}

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

func (x *Resource) GetResourceName() *ResourceName {
	if x != nil {
		return x.ResourceName
	}
	return nil
}

func (x *Resource) GetAliases() []string {
	if x != nil {
		return x.Aliases
	}
	return nil
}

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

func (x *Resource) GetResource() *anypb.Any {
	if x != nil {
		return x.Resource
	}
	return nil
}

func (x *Resource) GetTtl() *durationpb.Duration {
	if x != nil {
		return x.Ttl
	}
	return nil
}

func (x *Resource) GetCacheControl() *Resource_CacheControl {
	if x != nil {
		return x.CacheControl
	}
	return nil
}

func (x *Resource) GetMetadata() *v3.Metadata {
	if x != nil {
		return x.Metadata
	}
	return nil
}

// A single constraint for a given key.
type DynamicParameterConstraints_SingleConstraint struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// The key to match against.
	Key string `protobuf:"bytes,1,opt,name=key,proto3" json:"key,omitempty"`
	// Types that are valid to be assigned to ConstraintType:
	//
	//	*DynamicParameterConstraints_SingleConstraint_Value
	//	*DynamicParameterConstraints_SingleConstraint_Exists_
	ConstraintType isDynamicParameterConstraints_SingleConstraint_ConstraintType `protobuf_oneof:"constraint_type"`
	unknownFields  protoimpl.UnknownFields
	sizeCache      protoimpl.SizeCache
}

func (x *DynamicParameterConstraints_SingleConstraint) Reset() {
	*x = DynamicParameterConstraints_SingleConstraint{}
	mi := &file_envoy_service_discovery_v3_discovery_proto_msgTypes[11]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DynamicParameterConstraints_SingleConstraint) ProtoMessage() {}

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

func (x *DynamicParameterConstraints_SingleConstraint) GetKey() string {
	if x != nil {
		return x.Key
	}
	return ""
}

func (x *DynamicParameterConstraints_SingleConstraint) GetConstraintType() isDynamicParameterConstraints_SingleConstraint_ConstraintType {
	if x != nil {
		return x.ConstraintType
	}
	return nil
}

func (x *DynamicParameterConstraints_SingleConstraint) GetValue() string {
	if x != nil {
		if x, ok := x.ConstraintType.(*DynamicParameterConstraints_SingleConstraint_Value); ok {
			return x.Value
		}
	}
	return ""
}

func (x *DynamicParameterConstraints_SingleConstraint) GetExists() *DynamicParameterConstraints_SingleConstraint_Exists {
	if x != nil {
		if x, ok := x.ConstraintType.(*DynamicParameterConstraints_SingleConstraint_Exists_); ok {
			return x.Exists
		}
	}
	return nil
}

type isDynamicParameterConstraints_SingleConstraint_ConstraintType interface {
	isDynamicParameterConstraints_SingleConstraint_ConstraintType()
}

type DynamicParameterConstraints_SingleConstraint_Value struct {
	// Matches this exact value.
	Value string `protobuf:"bytes,2,opt,name=value,proto3,oneof"`
}

type DynamicParameterConstraints_SingleConstraint_Exists_ struct {
	// Key is present (matches any value except for the key being absent).
	// This allows setting a default constraint for clients that do
	// not send a key at all, while there may be other clients that need
	// special configuration based on that key.
	Exists *DynamicParameterConstraints_SingleConstraint_Exists `protobuf:"bytes,3,opt,name=exists,proto3,oneof"`
}

func (*DynamicParameterConstraints_SingleConstraint_Value) isDynamicParameterConstraints_SingleConstraint_ConstraintType() {
}

func (*DynamicParameterConstraints_SingleConstraint_Exists_) isDynamicParameterConstraints_SingleConstraint_ConstraintType() {
}

type DynamicParameterConstraints_ConstraintList struct {
	state         protoimpl.MessageState         `protogen:"open.v1"`
	Constraints   []*DynamicParameterConstraints `protobuf:"bytes,1,rep,name=constraints,proto3" json:"constraints,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DynamicParameterConstraints_ConstraintList) Reset() {
	*x = DynamicParameterConstraints_ConstraintList{}
	mi := &file_envoy_service_discovery_v3_discovery_proto_msgTypes[12]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DynamicParameterConstraints_ConstraintList) ProtoMessage() {}

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

func (x *DynamicParameterConstraints_ConstraintList) GetConstraints() []*DynamicParameterConstraints {
	if x != nil {
		return x.Constraints
	}
	return nil
}

type DynamicParameterConstraints_SingleConstraint_Exists struct {
	state         protoimpl.MessageState `protogen:"open.v1"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *DynamicParameterConstraints_SingleConstraint_Exists) Reset() {
	*x = DynamicParameterConstraints_SingleConstraint_Exists{}
	mi := &file_envoy_service_discovery_v3_discovery_proto_msgTypes[13]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*DynamicParameterConstraints_SingleConstraint_Exists) ProtoMessage() {}

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

// Cache control properties for the resource.
// [#not-implemented-hide:]
type Resource_CacheControl struct {
	state protoimpl.MessageState `protogen:"open.v1"`
	// If true, xDS proxies may not cache this resource.
	//
	// .. note::
	//
	//	This does not apply to clients other than xDS proxies, which must cache resources
	//	for their own use, regardless of the value of this field.
	DoNotCache    bool `protobuf:"varint,1,opt,name=do_not_cache,json=doNotCache,proto3" json:"do_not_cache,omitempty"`
	unknownFields protoimpl.UnknownFields
	sizeCache     protoimpl.SizeCache
}

func (x *Resource_CacheControl) Reset() {
	*x = Resource_CacheControl{}
	mi := &file_envoy_service_discovery_v3_discovery_proto_msgTypes[14]
	ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x))
	ms.StoreMessageInfo(mi)
}

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

func (*Resource_CacheControl) ProtoMessage() {}

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

func (x *Resource_CacheControl) GetDoNotCache() bool {
	if x != nil {
		return x.DoNotCache
	}
	return false
}

var File_envoy_service_discovery_v3_discovery_proto protoreflect.FileDescriptor

const file_envoy_service_discovery_v3_discovery_proto_rawDesc = "" +
	"\n" +
	"*envoy/service/discovery/v3/discovery.proto\x12\x1aenvoy.service.discovery.v3\x1a\x1fenvoy/config/core/v3/base.proto\x1a\x19google/protobuf/any.proto\x1a\x1egoogle/protobuf/duration.proto\x1a\x17google/rpc/status.proto\x1a\x1dudpa/annotations/status.proto\x1a!udpa/annotations/versioning.proto\x1a\x17validate/validate.proto\"\xde\x01\n" +
	"\x0fResourceLocator\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12q\n" +
	"\x12dynamic_parameters\x18\x02 \x03(\v2B.envoy.service.discovery.v3.ResourceLocator.DynamicParametersEntryR\x11dynamicParameters\x1aD\n" +
	"\x16DynamicParametersEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\x9f\x01\n" +
	"\fResourceName\x12\x12\n" +
	"\x04name\x18\x01 \x01(\tR\x04name\x12{\n" +
	"\x1ddynamic_parameter_constraints\x18\x02 \x01(\v27.envoy.service.discovery.v3.DynamicParameterConstraintsR\x1bdynamicParameterConstraints\"\x95\x01\n" +
	"\rResourceError\x12M\n" +
	"\rresource_name\x18\x01 \x01(\v2(.envoy.service.discovery.v3.ResourceNameR\fresourceName\x125\n" +
	"\ferror_detail\x18\x02 \x01(\v2\x12.google.rpc.StatusR\verrorDetail\"\x85\x03\n" +
	"\x10DiscoveryRequest\x12!\n" +
	"\fversion_info\x18\x01 \x01(\tR\vversionInfo\x12.\n" +
	"\x04node\x18\x02 \x01(\v2\x1a.envoy.config.core.v3.NodeR\x04node\x12%\n" +
	"\x0eresource_names\x18\x03 \x03(\tR\rresourceNames\x12X\n" +
	"\x11resource_locators\x18\a \x03(\v2+.envoy.service.discovery.v3.ResourceLocatorR\x10resourceLocators\x12\x19\n" +
	"\btype_url\x18\x04 \x01(\tR\atypeUrl\x12%\n" +
	"\x0eresponse_nonce\x18\x05 \x01(\tR\rresponseNonce\x125\n" +
	"\ferror_detail\x18\x06 \x01(\v2\x12.google.rpc.StatusR\verrorDetail:$\x9aň\x1e\x1f\n" +
	"\x1denvoy.api.v2.DiscoveryRequest\"\xf7\x02\n" +
	"\x11DiscoveryResponse\x12!\n" +
	"\fversion_info\x18\x01 \x01(\tR\vversionInfo\x122\n" +
	"\tresources\x18\x02 \x03(\v2\x14.google.protobuf.AnyR\tresources\x12\x16\n" +
	"\x06canary\x18\x03 \x01(\bR\x06canary\x12\x19\n" +
	"\btype_url\x18\x04 \x01(\tR\atypeUrl\x12\x14\n" +
	"\x05nonce\x18\x05 \x01(\tR\x05nonce\x12G\n" +
	"\rcontrol_plane\x18\x06 \x01(\v2\".envoy.config.core.v3.ControlPlaneR\fcontrolPlane\x12R\n" +
	"\x0fresource_errors\x18\a \x03(\v2).envoy.service.discovery.v3.ResourceErrorR\x0eresourceErrors:%\x9aň\x1e \n" +
	"\x1eenvoy.api.v2.DiscoveryResponse\"\x9a\x06\n" +
	"\x15DeltaDiscoveryRequest\x12.\n" +
	"\x04node\x18\x01 \x01(\v2\x1a.envoy.config.core.v3.NodeR\x04node\x12\x19\n" +
	"\btype_url\x18\x02 \x01(\tR\atypeUrl\x128\n" +
	"\x18resource_names_subscribe\x18\x03 \x03(\tR\x16resourceNamesSubscribe\x12<\n" +
	"\x1aresource_names_unsubscribe\x18\x04 \x03(\tR\x18resourceNamesUnsubscribe\x12k\n" +
	"\x1bresource_locators_subscribe\x18\b \x03(\v2+.envoy.service.discovery.v3.ResourceLocatorR\x19resourceLocatorsSubscribe\x12o\n" +
	"\x1dresource_locators_unsubscribe\x18\t \x03(\v2+.envoy.service.discovery.v3.ResourceLocatorR\x1bresourceLocatorsUnsubscribe\x12\x8a\x01\n" +
	"\x19initial_resource_versions\x18\x05 \x03(\v2N.envoy.service.discovery.v3.DeltaDiscoveryRequest.InitialResourceVersionsEntryR\x17initialResourceVersions\x12%\n" +
	"\x0eresponse_nonce\x18\x06 \x01(\tR\rresponseNonce\x125\n" +
	"\ferror_detail\x18\a \x01(\v2\x12.google.rpc.StatusR\verrorDetail\x1aJ\n" +
	"\x1cInitialResourceVersionsEntry\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" +
	"\x05value\x18\x02 \x01(\tR\x05value:\x028\x01:)\x9aň\x1e$\n" +
	"\"envoy.api.v2.DeltaDiscoveryRequest\"\x93\x04\n" +
	"\x16DeltaDiscoveryResponse\x12.\n" +
	"\x13system_version_info\x18\x01 \x01(\tR\x11systemVersionInfo\x12B\n" +
	"\tresources\x18\x02 \x03(\v2$.envoy.service.discovery.v3.ResourceR\tresources\x12\x19\n" +
	"\btype_url\x18\x04 \x01(\tR\atypeUrl\x12+\n" +
	"\x11removed_resources\x18\x06 \x03(\tR\x10removedResources\x12^\n" +
	"\x16removed_resource_names\x18\b \x03(\v2(.envoy.service.discovery.v3.ResourceNameR\x14removedResourceNames\x12\x14\n" +
	"\x05nonce\x18\x05 \x01(\tR\x05nonce\x12G\n" +
	"\rcontrol_plane\x18\a \x01(\v2\".envoy.config.core.v3.ControlPlaneR\fcontrolPlane\x12R\n" +
	"\x0fresource_errors\x18\t \x03(\v2).envoy.service.discovery.v3.ResourceErrorR\x0eresourceErrors:*\x9aň\x1e%\n" +
	"#envoy.api.v2.DeltaDiscoveryResponse\"\x92\x06\n" +
	"\x1bDynamicParameterConstraints\x12j\n" +
	"\n" +
	"constraint\x18\x01 \x01(\v2H.envoy.service.discovery.v3.DynamicParameterConstraints.SingleConstraintH\x00R\n" +
	"constraint\x12o\n" +
	"\x0eor_constraints\x18\x02 \x01(\v2F.envoy.service.discovery.v3.DynamicParameterConstraints.ConstraintListH\x00R\rorConstraints\x12q\n" +
	"\x0fand_constraints\x18\x03 \x01(\v2F.envoy.service.discovery.v3.DynamicParameterConstraints.ConstraintListH\x00R\x0eandConstraints\x12b\n" +
	"\x0fnot_constraints\x18\x04 \x01(\v27.envoy.service.discovery.v3.DynamicParameterConstraintsH\x00R\x0enotConstraints\x1a\xc9\x01\n" +
	"\x10SingleConstraint\x12\x10\n" +
	"\x03key\x18\x01 \x01(\tR\x03key\x12\x16\n" +
	"\x05value\x18\x02 \x01(\tH\x00R\x05value\x12i\n" +
	"\x06exists\x18\x03 \x01(\v2O.envoy.service.discovery.v3.DynamicParameterConstraints.SingleConstraint.ExistsH\x00R\x06exists\x1a\b\n" +
	"\x06ExistsB\x16\n" +
	"\x0fconstraint_type\x12\x03\xf8B\x01\x1ak\n" +
	"\x0eConstraintList\x12Y\n" +
	"\vconstraints\x18\x01 \x03(\v27.envoy.service.discovery.v3.DynamicParameterConstraintsR\vconstraintsB\x06\n" +
	"\x04type\"\xe4\x03\n" +
	"\bResource\x12\x12\n" +
	"\x04name\x18\x03 \x01(\tR\x04name\x12M\n" +
	"\rresource_name\x18\b \x01(\v2(.envoy.service.discovery.v3.ResourceNameR\fresourceName\x12\x18\n" +
	"\aaliases\x18\x04 \x03(\tR\aaliases\x12\x18\n" +
	"\aversion\x18\x01 \x01(\tR\aversion\x120\n" +
	"\bresource\x18\x02 \x01(\v2\x14.google.protobuf.AnyR\bresource\x12+\n" +
	"\x03ttl\x18\x06 \x01(\v2\x19.google.protobuf.DurationR\x03ttl\x12V\n" +
	"\rcache_control\x18\a \x01(\v21.envoy.service.discovery.v3.Resource.CacheControlR\fcacheControl\x12:\n" +
	"\bmetadata\x18\t \x01(\v2\x1e.envoy.config.core.v3.MetadataR\bmetadata\x1a0\n" +
	"\fCacheControl\x12 \n" +
	"\fdo_not_cache\x18\x01 \x01(\bR\n" +
	"doNotCache:\x1c\x9aň\x1e\x17\n" +
	"\x15envoy.api.v2.ResourceB\x93\x01\xba\x80\xc8\xd1\x06\x02\x10\x02\n" +
	"(io.envoyproxy.envoy.service.discovery.v3B\x0eDiscoveryProtoP\x01ZMgithub.com/envoyproxy/go-control-plane/envoy/service/discovery/v3;discoveryv3b\x06proto3"

var (
	file_envoy_service_discovery_v3_discovery_proto_rawDescOnce sync.Once
	file_envoy_service_discovery_v3_discovery_proto_rawDescData []byte
)

func file_envoy_service_discovery_v3_discovery_proto_rawDescGZIP() []byte {
	file_envoy_service_discovery_v3_discovery_proto_rawDescOnce.Do(func() {
		file_envoy_service_discovery_v3_discovery_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_envoy_service_discovery_v3_discovery_proto_rawDesc), len(file_envoy_service_discovery_v3_discovery_proto_rawDesc)))
	})
	return file_envoy_service_discovery_v3_discovery_proto_rawDescData
}

var file_envoy_service_discovery_v3_discovery_proto_msgTypes = make([]protoimpl.MessageInfo, 15)
var file_envoy_service_discovery_v3_discovery_proto_goTypes = []any{
	(*ResourceLocator)(nil),             // 0: envoy.service.discovery.v3.ResourceLocator
	(*ResourceName)(nil),                // 1: envoy.service.discovery.v3.ResourceName
	(*ResourceError)(nil),               // 2: envoy.service.discovery.v3.ResourceError
	(*DiscoveryRequest)(nil),            // 3: envoy.service.discovery.v3.DiscoveryRequest
	(*DiscoveryResponse)(nil),           // 4: envoy.service.discovery.v3.DiscoveryResponse
	(*DeltaDiscoveryRequest)(nil),       // 5: envoy.service.discovery.v3.DeltaDiscoveryRequest
	(*DeltaDiscoveryResponse)(nil),      // 6: envoy.service.discovery.v3.DeltaDiscoveryResponse
	(*DynamicParameterConstraints)(nil), // 7: envoy.service.discovery.v3.DynamicParameterConstraints
	(*Resource)(nil),                    // 8: envoy.service.discovery.v3.Resource
	nil,                                 // 9: envoy.service.discovery.v3.ResourceLocator.DynamicParametersEntry
	nil,                                 // 10: envoy.service.discovery.v3.DeltaDiscoveryRequest.InitialResourceVersionsEntry
	(*DynamicParameterConstraints_SingleConstraint)(nil),        // 11: envoy.service.discovery.v3.DynamicParameterConstraints.SingleConstraint
	(*DynamicParameterConstraints_ConstraintList)(nil),          // 12: envoy.service.discovery.v3.DynamicParameterConstraints.ConstraintList
	(*DynamicParameterConstraints_SingleConstraint_Exists)(nil), // 13: envoy.service.discovery.v3.DynamicParameterConstraints.SingleConstraint.Exists
	(*Resource_CacheControl)(nil),                               // 14: envoy.service.discovery.v3.Resource.CacheControl
	(*status.Status)(nil),                                       // 15: google.rpc.Status
	(*v3.Node)(nil),                                             // 16: envoy.config.core.v3.Node
	(*anypb.Any)(nil),                                           // 17: google.protobuf.Any
	(*v3.ControlPlane)(nil),                                     // 18: envoy.config.core.v3.ControlPlane
	(*durationpb.Duration)(nil),                                 // 19: google.protobuf.Duration
	(*v3.Metadata)(nil),                                         // 20: envoy.config.core.v3.Metadata
}
var file_envoy_service_discovery_v3_discovery_proto_depIdxs = []int32{
	9,  // 0: envoy.service.discovery.v3.ResourceLocator.dynamic_parameters:type_name -> envoy.service.discovery.v3.ResourceLocator.DynamicParametersEntry
	7,  // 1: envoy.service.discovery.v3.ResourceName.dynamic_parameter_constraints:type_name -> envoy.service.discovery.v3.DynamicParameterConstraints
	1,  // 2: envoy.service.discovery.v3.ResourceError.resource_name:type_name -> envoy.service.discovery.v3.ResourceName
	15, // 3: envoy.service.discovery.v3.ResourceError.error_detail:type_name -> google.rpc.Status
	16, // 4: envoy.service.discovery.v3.DiscoveryRequest.node:type_name -> envoy.config.core.v3.Node
	0,  // 5: envoy.service.discovery.v3.DiscoveryRequest.resource_locators:type_name -> envoy.service.discovery.v3.ResourceLocator
	15, // 6: envoy.service.discovery.v3.DiscoveryRequest.error_detail:type_name -> google.rpc.Status
	17, // 7: envoy.service.discovery.v3.DiscoveryResponse.resources:type_name -> google.protobuf.Any
	18, // 8: envoy.service.discovery.v3.DiscoveryResponse.control_plane:type_name -> envoy.config.core.v3.ControlPlane
	2,  // 9: envoy.service.discovery.v3.DiscoveryResponse.resource_errors:type_name -> envoy.service.discovery.v3.ResourceError
	16, // 10: envoy.service.discovery.v3.DeltaDiscoveryRequest.node:type_name -> envoy.config.core.v3.Node
	0,  // 11: envoy.service.discovery.v3.DeltaDiscoveryRequest.resource_locators_subscribe:type_name -> envoy.service.discovery.v3.ResourceLocator
	0,  // 12: envoy.service.discovery.v3.DeltaDiscoveryRequest.resource_locators_unsubscribe:type_name -> envoy.service.discovery.v3.ResourceLocator
	10, // 13: envoy.service.discovery.v3.DeltaDiscoveryRequest.initial_resource_versions:type_name -> envoy.service.discovery.v3.DeltaDiscoveryRequest.InitialResourceVersionsEntry
	15, // 14: envoy.service.discovery.v3.DeltaDiscoveryRequest.error_detail:type_name -> google.rpc.Status
	8,  // 15: envoy.service.discovery.v3.DeltaDiscoveryResponse.resources:type_name -> envoy.service.discovery.v3.Resource
	1,  // 16: envoy.service.discovery.v3.DeltaDiscoveryResponse.removed_resource_names:type_name -> envoy.service.discovery.v3.ResourceName
	18, // 17: envoy.service.discovery.v3.DeltaDiscoveryResponse.control_plane:type_name -> envoy.config.core.v3.ControlPlane
	2,  // 18: envoy.service.discovery.v3.DeltaDiscoveryResponse.resource_errors:type_name -> envoy.service.discovery.v3.ResourceError
	11, // 19: envoy.service.discovery.v3.DynamicParameterConstraints.constraint:type_name -> envoy.service.discovery.v3.DynamicParameterConstraints.SingleConstraint
	12, // 20: envoy.service.discovery.v3.DynamicParameterConstraints.or_constraints:type_name -> envoy.service.discovery.v3.DynamicParameterConstraints.ConstraintList
	12, // 21: envoy.service.discovery.v3.DynamicParameterConstraints.and_constraints:type_name -> envoy.service.discovery.v3.DynamicParameterConstraints.ConstraintList
	7,  // 22: envoy.service.discovery.v3.DynamicParameterConstraints.not_constraints:type_name -> envoy.service.discovery.v3.DynamicParameterConstraints
	1,  // 23: envoy.service.discovery.v3.Resource.resource_name:type_name -> envoy.service.discovery.v3.ResourceName
	17, // 24: envoy.service.discovery.v3.Resource.resource:type_name -> google.protobuf.Any
	19, // 25: envoy.service.discovery.v3.Resource.ttl:type_name -> google.protobuf.Duration
	14, // 26: envoy.service.discovery.v3.Resource.cache_control:type_name -> envoy.service.discovery.v3.Resource.CacheControl
	20, // 27: envoy.service.discovery.v3.Resource.metadata:type_name -> envoy.config.core.v3.Metadata
	13, // 28: envoy.service.discovery.v3.DynamicParameterConstraints.SingleConstraint.exists:type_name -> envoy.service.discovery.v3.DynamicParameterConstraints.SingleConstraint.Exists
	7,  // 29: envoy.service.discovery.v3.DynamicParameterConstraints.ConstraintList.constraints:type_name -> envoy.service.discovery.v3.DynamicParameterConstraints
	30, // [30:30] is the sub-list for method output_type
	30, // [30:30] is the sub-list for method input_type
	30, // [30:30] is the sub-list for extension type_name
	30, // [30:30] is the sub-list for extension extendee
	0,  // [0:30] is the sub-list for field type_name
}

func init() { file_envoy_service_discovery_v3_discovery_proto_init() }
func file_envoy_service_discovery_v3_discovery_proto_init() {
	if File_envoy_service_discovery_v3_discovery_proto != nil {
		return
	}
	file_envoy_service_discovery_v3_discovery_proto_msgTypes[7].OneofWrappers = []any{
		(*DynamicParameterConstraints_Constraint)(nil),
		(*DynamicParameterConstraints_OrConstraints)(nil),
		(*DynamicParameterConstraints_AndConstraints)(nil),
		(*DynamicParameterConstraints_NotConstraints)(nil),
	}
	file_envoy_service_discovery_v3_discovery_proto_msgTypes[11].OneofWrappers = []any{
		(*DynamicParameterConstraints_SingleConstraint_Value)(nil),
		(*DynamicParameterConstraints_SingleConstraint_Exists_)(nil),
	}
	type x struct{}
	out := protoimpl.TypeBuilder{
		File: protoimpl.DescBuilder{
			GoPackagePath: reflect.TypeOf(x{}).PkgPath(),
			RawDescriptor: unsafe.Slice(unsafe.StringData(file_envoy_service_discovery_v3_discovery_proto_rawDesc), len(file_envoy_service_discovery_v3_discovery_proto_rawDesc)),
			NumEnums:      0,
			NumMessages:   15,
			NumExtensions: 0,
			NumServices:   0,
		},
		GoTypes:           file_envoy_service_discovery_v3_discovery_proto_goTypes,
		DependencyIndexes: file_envoy_service_discovery_v3_discovery_proto_depIdxs,
		MessageInfos:      file_envoy_service_discovery_v3_discovery_proto_msgTypes,
	}.Build()
	File_envoy_service_discovery_v3_discovery_proto = out.File
	file_envoy_service_discovery_v3_discovery_proto_goTypes = nil
	file_envoy_service_discovery_v3_discovery_proto_depIdxs = nil
}
