package v2

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import envoy_api_v2_core1 "github.com/cilium/cilium/pkg/envoy/envoy/api/v2/core"
import google_protobuf5 "github.com/golang/protobuf/ptypes/any"
import _ "github.com/gogo/protobuf/gogoproto"

var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

type DiscoveryRequest struct {

	VersionInfo string `protobuf:"bytes,1,opt,name=version_info,json=versionInfo" json:"version_info,omitempty"`

	Node *envoy_api_v2_core1.Node `protobuf:"bytes,2,opt,name=node" json:"node,omitempty"`

	ResourceNames []string `protobuf:"bytes,3,rep,name=resource_names,json=resourceNames" json:"resource_names,omitempty"`

	TypeUrl string `protobuf:"bytes,4,opt,name=type_url,json=typeUrl" json:"type_url,omitempty"`

	ResponseNonce string `protobuf:"bytes,5,opt,name=response_nonce,json=responseNonce" json:"response_nonce,omitempty"`
}

func (m *DiscoveryRequest) Reset()                    { *m = DiscoveryRequest{} }
func (m *DiscoveryRequest) String() string            { return proto.CompactTextString(m) }
func (*DiscoveryRequest) ProtoMessage()               {}
func (*DiscoveryRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }

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

func (m *DiscoveryRequest) GetNode() *envoy_api_v2_core1.Node {
	if m != nil {
		return m.Node
	}
	return nil
}

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

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

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

type DiscoveryResponse struct {

	VersionInfo string `protobuf:"bytes,1,opt,name=version_info,json=versionInfo" json:"version_info,omitempty"`

	Resources []*google_protobuf5.Any `protobuf:"bytes,2,rep,name=resources" json:"resources,omitempty"`

	Canary bool `protobuf:"varint,3,opt,name=canary" json:"canary,omitempty"`

	TypeUrl string `protobuf:"bytes,4,opt,name=type_url,json=typeUrl" json:"type_url,omitempty"`

	Nonce string `protobuf:"bytes,5,opt,name=nonce" json:"nonce,omitempty"`
}

func (m *DiscoveryResponse) Reset()                    { *m = DiscoveryResponse{} }
func (m *DiscoveryResponse) String() string            { return proto.CompactTextString(m) }
func (*DiscoveryResponse) ProtoMessage()               {}
func (*DiscoveryResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }

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

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

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

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

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

func init() {
	proto.RegisterType((*DiscoveryRequest)(nil), "envoy.api.v2.DiscoveryRequest")
	proto.RegisterType((*DiscoveryResponse)(nil), "envoy.api.v2.DiscoveryResponse")
}

func init() { proto.RegisterFile("envoy/api/v2/discovery.proto", fileDescriptor1) }

var fileDescriptor1 = []byte{

	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0xc1, 0x4a, 0xeb, 0x40,
	0x14, 0x86, 0xef, 0x34, 0x6d, 0x6f, 0x3b, 0x6d, 0x2f, 0xf7, 0x86, 0x72, 0x9d, 0x16, 0xd1, 0x58,
	0x10, 0x02, 0xc2, 0x0c, 0xc4, 0x8d, 0x5b, 0x8b, 0x1b, 0x37, 0x5d, 0x04, 0xdc, 0xb8, 0x09, 0xd3,
	0xf4, 0x34, 0x04, 0xea, 0x9c, 0x38, 0xd3, 0x04, 0xf2, 0x46, 0xbe, 0x82, 0x6f, 0x20, 0xf8, 0x0e,
	0x2e, 0x7c, 0x12, 0xc9, 0x24, 0xc1, 0xba, 0x11, 0x77, 0xe7, 0xff, 0xce, 0xcf, 0x39, 0xe7, 0x3f,
	0xf4, 0x18, 0x54, 0x81, 0xa5, 0x90, 0x59, 0x2a, 0x8a, 0x40, 0x6c, 0x52, 0x13, 0x63, 0x01, 0xba,
	0xe4, 0x99, 0xc6, 0x3d, 0xba, 0x63, 0xdb, 0xe5, 0x32, 0x4b, 0x79, 0x11, 0xcc, 0xbf, 0x7a, 0x63,
	0xd4, 0x20, 0xd6, 0xd2, 0x40, 0xed, 0x9d, 0xcf, 0x12, 0xc4, 0x64, 0x07, 0xc2, 0xaa, 0x75, 0xbe,
	0x15, 0x52, 0x35, 0x63, 0xe6, 0xd3, 0x04, 0x13, 0xb4, 0xa5, 0xa8, 0xaa, 0x9a, 0x2e, 0x5e, 0x09,
	0xfd, 0x7b, 0xd3, 0x2e, 0x0c, 0xe1, 0x31, 0x07, 0xb3, 0x77, 0xcf, 0xe8, 0xb8, 0x00, 0x6d, 0x52,
	0x54, 0x51, 0xaa, 0xb6, 0xc8, 0x88, 0x47, 0xfc, 0x61, 0x38, 0x6a, 0xd8, 0xad, 0xda, 0xa2, 0x7b,
	0x41, 0xbb, 0x0a, 0x37, 0xc0, 0x3a, 0x1e, 0xf1, 0x47, 0xc1, 0x11, 0x3f, 0xbc, 0x91, 0x57, 0x57,
	0xf1, 0x15, 0x6e, 0x20, 0xb4, 0x26, 0xf7, 0x9c, 0xfe, 0xd1, 0x60, 0x30, 0xd7, 0x31, 0x44, 0x4a,
	0x3e, 0x80, 0x61, 0x8e, 0xe7, 0xf8, 0xc3, 0x70, 0xd2, 0xd2, 0x55, 0x05, 0xdd, 0x19, 0x1d, 0xec,
	0xcb, 0x0c, 0xa2, 0x5c, 0xef, 0x58, 0xd7, 0xae, 0xfc, 0x5d, 0xe9, 0x3b, 0xbd, 0x6b, 0x26, 0x64,
	0xa8, 0x0c, 0x44, 0x0a, 0x55, 0x0c, 0xac, 0x67, 0x0d, 0x93, 0x96, 0xae, 0x2a, 0xb8, 0x78, 0x26,
	0xf4, 0xdf, 0x41, 0x9a, 0xba, 0xf5, 0x93, 0x38, 0x57, 0x74, 0xd8, 0xde, 0x62, 0x58, 0xc7, 0x73,
	0xfc, 0x51, 0x30, 0xe5, 0xf5, 0x2f, 0x79, 0xfb, 0x4b, 0x7e, 0xad, 0xca, 0x65, 0xf7, 0xe5, 0xed,
	0xf4, 0x57, 0xf8, 0x69, 0x76, 0xff, 0xd3, 0x7e, 0x2c, 0x95, 0xd4, 0x25, 0x73, 0x3c, 0xe2, 0x0f,
	0xc2, 0x46, 0x7d, 0x17, 0x66, 0x4a, 0x7b, 0x87, 0x19, 0x6a, 0xb1, 0x1c, 0x3c, 0xbd, 0x9f, 0x90,
	0xfb, 0x4e, 0x11, 0xac, 0xfb, 0x76, 0xe3, 0xe5, 0x47, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe6, 0xce,
	0xa7, 0x6f, 0x17, 0x02, 0x00, 0x00,
}
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: envoy/api/v2/discovery.proto

package v2

import proto "github.com/golang/protobuf/proto"
import fmt "fmt"
import math "math"
import envoy_api_v2_core1 "github.com/cilium/cilium/pkg/envoy/envoy/api/v2/core"
import google_protobuf5 "github.com/golang/protobuf/ptypes/any"
import _ "github.com/gogo/protobuf/gogoproto"

// Reference imports to suppress errors if they are not otherwise used.
var _ = proto.Marshal
var _ = fmt.Errorf
var _ = math.Inf

// A DiscoveryRequest requests a set of versioned resources of the same type for
// a given Envoy node on some API.
type DiscoveryRequest struct {
	// 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" json:"version_info,omitempty"`
	// The node making the request.
	Node *envoy_api_v2_core1.Node `protobuf:"bytes,2,opt,name=node" 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 expect empty resource_names, since this is global
	// discovery for the Envoy instance. 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" json:"resource_names,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" 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 if no nonce is available, e.g. at startup or for non-stream
	// xDS implementations.
	ResponseNonce string `protobuf:"bytes,5,opt,name=response_nonce,json=responseNonce" json:"response_nonce,omitempty"`
}

func (m *DiscoveryRequest) Reset()                    { *m = DiscoveryRequest{} }
func (m *DiscoveryRequest) String() string            { return proto.CompactTextString(m) }
func (*DiscoveryRequest) ProtoMessage()               {}
func (*DiscoveryRequest) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{0} }

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

func (m *DiscoveryRequest) GetNode() *envoy_api_v2_core1.Node {
	if m != nil {
		return m.Node
	}
	return nil
}

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

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

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

type DiscoveryResponse struct {
	// The version of the response data.
	VersionInfo string `protobuf:"bytes,1,opt,name=version_info,json=versionInfo" json:"version_info,omitempty"`
	// The response resources. These resources are typed and depend on the API being called.
	Resources []*google_protobuf5.Any `protobuf:"bytes,2,rep,name=resources" 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" json:"canary,omitempty"`
	// Type URL for resources. This must be consistent with the type_url in the
	// Any messages for resources if resources is non-empty. This effectively
	// identifies the xDS API when muxing over ADS.
	TypeUrl string `protobuf:"bytes,4,opt,name=type_url,json=typeUrl" 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" json:"nonce,omitempty"`
}

func (m *DiscoveryResponse) Reset()                    { *m = DiscoveryResponse{} }
func (m *DiscoveryResponse) String() string            { return proto.CompactTextString(m) }
func (*DiscoveryResponse) ProtoMessage()               {}
func (*DiscoveryResponse) Descriptor() ([]byte, []int) { return fileDescriptor1, []int{1} }

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

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

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

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

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

func init() {
	proto.RegisterType((*DiscoveryRequest)(nil), "envoy.api.v2.DiscoveryRequest")
	proto.RegisterType((*DiscoveryResponse)(nil), "envoy.api.v2.DiscoveryResponse")
}

func init() { proto.RegisterFile("envoy/api/v2/discovery.proto", fileDescriptor1) }

var fileDescriptor1 = []byte{
	// 342 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x90, 0xc1, 0x4a, 0xeb, 0x40,
	0x14, 0x86, 0xef, 0x34, 0x6d, 0x6f, 0x3b, 0x6d, 0x2f, 0xf7, 0x86, 0x72, 0x9d, 0x16, 0xd1, 0x58,
	0x10, 0x02, 0xc2, 0x0c, 0xc4, 0x8d, 0x5b, 0x8b, 0x1b, 0x37, 0x5d, 0x04, 0xdc, 0xb8, 0x09, 0xd3,
	0xf4, 0x34, 0x04, 0xea, 0x9c, 0x38, 0xd3, 0x04, 0xf2, 0x46, 0xbe, 0x82, 0x6f, 0x20, 0xf8, 0x0e,
	0x2e, 0x7c, 0x12, 0xc9, 0x24, 0xc1, 0xba, 0x11, 0x77, 0xe7, 0xff, 0xce, 0xcf, 0x39, 0xe7, 0x3f,
	0xf4, 0x18, 0x54, 0x81, 0xa5, 0x90, 0x59, 0x2a, 0x8a, 0x40, 0x6c, 0x52, 0x13, 0x63, 0x01, 0xba,
	0xe4, 0x99, 0xc6, 0x3d, 0xba, 0x63, 0xdb, 0xe5, 0x32, 0x4b, 0x79, 0x11, 0xcc, 0xbf, 0x7a, 0x63,
	0xd4, 0x20, 0xd6, 0xd2, 0x40, 0xed, 0x9d, 0xcf, 0x12, 0xc4, 0x64, 0x07, 0xc2, 0xaa, 0x75, 0xbe,
	0x15, 0x52, 0x35, 0x63, 0xe6, 0xd3, 0x04, 0x13, 0xb4, 0xa5, 0xa8, 0xaa, 0x9a, 0x2e, 0x5e, 0x09,
	0xfd, 0x7b, 0xd3, 0x2e, 0x0c, 0xe1, 0x31, 0x07, 0xb3, 0x77, 0xcf, 0xe8, 0xb8, 0x00, 0x6d, 0x52,
	0x54, 0x51, 0xaa, 0xb6, 0xc8, 0x88, 0x47, 0xfc, 0x61, 0x38, 0x6a, 0xd8, 0xad, 0xda, 0xa2, 0x7b,
	0x41, 0xbb, 0x0a, 0x37, 0xc0, 0x3a, 0x1e, 0xf1, 0x47, 0xc1, 0x11, 0x3f, 0xbc, 0x91, 0x57, 0x57,
	0xf1, 0x15, 0x6e, 0x20, 0xb4, 0x26, 0xf7, 0x9c, 0xfe, 0xd1, 0x60, 0x30, 0xd7, 0x31, 0x44, 0x4a,
	0x3e, 0x80, 0x61, 0x8e, 0xe7, 0xf8, 0xc3, 0x70, 0xd2, 0xd2, 0x55, 0x05, 0xdd, 0x19, 0x1d, 0xec,
	0xcb, 0x0c, 0xa2, 0x5c, 0xef, 0x58, 0xd7, 0xae, 0xfc, 0x5d, 0xe9, 0x3b, 0xbd, 0x6b, 0x26, 0x64,
	0xa8, 0x0c, 0x44, 0x0a, 0x55, 0x0c, 0xac, 0x67, 0x0d, 0x93, 0x96, 0xae, 0x2a, 0xb8, 0x78, 0x26,
	0xf4, 0xdf, 0x41, 0x9a, 0xba, 0xf5, 0x93, 0x38, 0x57, 0x74, 0xd8, 0xde, 0x62, 0x58, 0xc7, 0x73,
	0xfc, 0x51, 0x30, 0xe5, 0xf5, 0x2f, 0x79, 0xfb, 0x4b, 0x7e, 0xad, 0xca, 0x65, 0xf7, 0xe5, 0xed,
	0xf4, 0x57, 0xf8, 0x69, 0x76, 0xff, 0xd3, 0x7e, 0x2c, 0x95, 0xd4, 0x25, 0x73, 0x3c, 0xe2, 0x0f,
	0xc2, 0x46, 0x7d, 0x17, 0x66, 0x4a, 0x7b, 0x87, 0x19, 0x6a, 0xb1, 0x1c, 0x3c, 0xbd, 0x9f, 0x90,
	0xfb, 0x4e, 0x11, 0xac, 0xfb, 0x76, 0xe3, 0xe5, 0x47, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe6, 0xce,
	0xa7, 0x6f, 0x17, 0x02, 0x00, 0x00,
}
