package cilium

import (
	context "context"
	fmt "fmt"
	_ "github.com/cilium/proxy/go/envoy/annotations"
	v2 "github.com/cilium/proxy/go/envoy/api/v2"
	core "github.com/cilium/proxy/go/envoy/api/v2/core"
	route "github.com/cilium/proxy/go/envoy/api/v2/route"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	proto "github.com/golang/protobuf/proto"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	math "math"
)

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

const _ = proto.ProtoPackageIsVersion3 

type HeaderMatch_MatchAction int32

const (
	HeaderMatch_CONTINUE_ON_MATCH HeaderMatch_MatchAction = 0
	HeaderMatch_FAIL_ON_MATCH     HeaderMatch_MatchAction = 1
	HeaderMatch_DELETE_ON_MATCH   HeaderMatch_MatchAction = 2
)

var HeaderMatch_MatchAction_name = map[int32]string{
	0: "CONTINUE_ON_MATCH",
	1: "FAIL_ON_MATCH",
	2: "DELETE_ON_MATCH",
}

var HeaderMatch_MatchAction_value = map[string]int32{
	"CONTINUE_ON_MATCH": 0,
	"FAIL_ON_MATCH":     1,
	"DELETE_ON_MATCH":   2,
}

func (x HeaderMatch_MatchAction) String() string {
	return proto.EnumName(HeaderMatch_MatchAction_name, int32(x))
}

func (HeaderMatch_MatchAction) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{5, 0}
}

type HeaderMatch_MismatchAction int32

const (
	HeaderMatch_FAIL_ON_MISMATCH     HeaderMatch_MismatchAction = 0
	HeaderMatch_CONTINUE_ON_MISMATCH HeaderMatch_MismatchAction = 1
	HeaderMatch_ADD_ON_MISMATCH      HeaderMatch_MismatchAction = 2
	HeaderMatch_DELETE_ON_MISMATCH   HeaderMatch_MismatchAction = 3
	HeaderMatch_REPLACE_ON_MISMATCH  HeaderMatch_MismatchAction = 4
)

var HeaderMatch_MismatchAction_name = map[int32]string{
	0: "FAIL_ON_MISMATCH",
	1: "CONTINUE_ON_MISMATCH",
	2: "ADD_ON_MISMATCH",
	3: "DELETE_ON_MISMATCH",
	4: "REPLACE_ON_MISMATCH",
}

var HeaderMatch_MismatchAction_value = map[string]int32{
	"FAIL_ON_MISMATCH":     0,
	"CONTINUE_ON_MISMATCH": 1,
	"ADD_ON_MISMATCH":      2,
	"DELETE_ON_MISMATCH":   3,
	"REPLACE_ON_MISMATCH":  4,
}

func (x HeaderMatch_MismatchAction) String() string {
	return proto.EnumName(HeaderMatch_MismatchAction_name, int32(x))
}

func (HeaderMatch_MismatchAction) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{5, 1}
}

type NetworkPolicy struct {

	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`

	Policy uint64 `protobuf:"varint,2,opt,name=policy,proto3" json:"policy,omitempty"`

	IngressPerPortPolicies []*PortNetworkPolicy `protobuf:"bytes,3,rep,name=ingress_per_port_policies,json=ingressPerPortPolicies,proto3" json:"ingress_per_port_policies,omitempty"`

	EgressPerPortPolicies []*PortNetworkPolicy `protobuf:"bytes,4,rep,name=egress_per_port_policies,json=egressPerPortPolicies,proto3" json:"egress_per_port_policies,omitempty"`

	ConntrackMapName     string   `protobuf:"bytes,5,opt,name=conntrack_map_name,json=conntrackMapName,proto3" json:"conntrack_map_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *NetworkPolicy) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_NetworkPolicy.Unmarshal(m, b)
}
func (m *NetworkPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_NetworkPolicy.Marshal(b, m, deterministic)
}
func (m *NetworkPolicy) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NetworkPolicy.Merge(m, src)
}
func (m *NetworkPolicy) XXX_Size() int {
	return xxx_messageInfo_NetworkPolicy.Size(m)
}
func (m *NetworkPolicy) XXX_DiscardUnknown() {
	xxx_messageInfo_NetworkPolicy.DiscardUnknown(m)
}

var xxx_messageInfo_NetworkPolicy proto.InternalMessageInfo

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

func (m *NetworkPolicy) GetPolicy() uint64 {
	if m != nil {
		return m.Policy
	}
	return 0
}

func (m *NetworkPolicy) GetIngressPerPortPolicies() []*PortNetworkPolicy {
	if m != nil {
		return m.IngressPerPortPolicies
	}
	return nil
}

func (m *NetworkPolicy) GetEgressPerPortPolicies() []*PortNetworkPolicy {
	if m != nil {
		return m.EgressPerPortPolicies
	}
	return nil
}

func (m *NetworkPolicy) GetConntrackMapName() string {
	if m != nil {
		return m.ConntrackMapName
	}
	return ""
}

type PortNetworkPolicy struct {

	Port uint32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`

	Protocol core.SocketAddress_Protocol `protobuf:"varint,2,opt,name=protocol,proto3,enum=envoy.api.v2.core.SocketAddress_Protocol" json:"protocol,omitempty"`

	Rules                []*PortNetworkPolicyRule `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

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

func (m *PortNetworkPolicy) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PortNetworkPolicy.Unmarshal(m, b)
}
func (m *PortNetworkPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PortNetworkPolicy.Marshal(b, m, deterministic)
}
func (m *PortNetworkPolicy) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PortNetworkPolicy.Merge(m, src)
}
func (m *PortNetworkPolicy) XXX_Size() int {
	return xxx_messageInfo_PortNetworkPolicy.Size(m)
}
func (m *PortNetworkPolicy) XXX_DiscardUnknown() {
	xxx_messageInfo_PortNetworkPolicy.DiscardUnknown(m)
}

var xxx_messageInfo_PortNetworkPolicy proto.InternalMessageInfo

func (m *PortNetworkPolicy) GetPort() uint32 {
	if m != nil {
		return m.Port
	}
	return 0
}

func (m *PortNetworkPolicy) GetProtocol() core.SocketAddress_Protocol {
	if m != nil {
		return m.Protocol
	}
	return core.SocketAddress_TCP
}

func (m *PortNetworkPolicy) GetRules() []*PortNetworkPolicyRule {
	if m != nil {
		return m.Rules
	}
	return nil
}

type TLSContext struct {

	TrustedCa string `protobuf:"bytes,1,opt,name=trusted_ca,json=trustedCa,proto3" json:"trusted_ca,omitempty"`

	CertificateChain string `protobuf:"bytes,2,opt,name=certificate_chain,json=certificateChain,proto3" json:"certificate_chain,omitempty"`

	PrivateKey string `protobuf:"bytes,3,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"`

	ServerNames          []string `protobuf:"bytes,4,rep,name=server_names,json=serverNames,proto3" json:"server_names,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TLSContext) Reset()         { *m = TLSContext{} }
func (m *TLSContext) String() string { return proto.CompactTextString(m) }
func (*TLSContext) ProtoMessage()    {}
func (*TLSContext) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{2}
}

func (m *TLSContext) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TLSContext.Unmarshal(m, b)
}
func (m *TLSContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TLSContext.Marshal(b, m, deterministic)
}
func (m *TLSContext) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TLSContext.Merge(m, src)
}
func (m *TLSContext) XXX_Size() int {
	return xxx_messageInfo_TLSContext.Size(m)
}
func (m *TLSContext) XXX_DiscardUnknown() {
	xxx_messageInfo_TLSContext.DiscardUnknown(m)
}

var xxx_messageInfo_TLSContext proto.InternalMessageInfo

func (m *TLSContext) GetTrustedCa() string {
	if m != nil {
		return m.TrustedCa
	}
	return ""
}

func (m *TLSContext) GetCertificateChain() string {
	if m != nil {
		return m.CertificateChain
	}
	return ""
}

func (m *TLSContext) GetPrivateKey() string {
	if m != nil {
		return m.PrivateKey
	}
	return ""
}

func (m *TLSContext) GetServerNames() []string {
	if m != nil {
		return m.ServerNames
	}
	return nil
}

type PortNetworkPolicyRule struct {

	RemotePolicies []uint64 `protobuf:"varint,1,rep,packed,name=remote_policies,json=remotePolicies,proto3" json:"remote_policies,omitempty"`

	DownstreamTlsContext *TLSContext `protobuf:"bytes,3,opt,name=downstream_tls_context,json=downstreamTlsContext,proto3" json:"downstream_tls_context,omitempty"`

	UpstreamTlsContext *TLSContext `protobuf:"bytes,4,opt,name=upstream_tls_context,json=upstreamTlsContext,proto3" json:"upstream_tls_context,omitempty"`

	L7Proto string `protobuf:"bytes,2,opt,name=l7_proto,json=l7Proto,proto3" json:"l7_proto,omitempty"`

	L7                   isPortNetworkPolicyRule_L7 `protobuf_oneof:"l7"`
	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
	XXX_unrecognized     []byte                     `json:"-"`
	XXX_sizecache        int32                      `json:"-"`
}

func (m *PortNetworkPolicyRule) Reset()         { *m = PortNetworkPolicyRule{} }
func (m *PortNetworkPolicyRule) String() string { return proto.CompactTextString(m) }
func (*PortNetworkPolicyRule) ProtoMessage()    {}
func (*PortNetworkPolicyRule) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{3}
}

func (m *PortNetworkPolicyRule) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PortNetworkPolicyRule.Unmarshal(m, b)
}
func (m *PortNetworkPolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PortNetworkPolicyRule.Marshal(b, m, deterministic)
}
func (m *PortNetworkPolicyRule) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PortNetworkPolicyRule.Merge(m, src)
}
func (m *PortNetworkPolicyRule) XXX_Size() int {
	return xxx_messageInfo_PortNetworkPolicyRule.Size(m)
}
func (m *PortNetworkPolicyRule) XXX_DiscardUnknown() {
	xxx_messageInfo_PortNetworkPolicyRule.DiscardUnknown(m)
}

var xxx_messageInfo_PortNetworkPolicyRule proto.InternalMessageInfo

func (m *PortNetworkPolicyRule) GetRemotePolicies() []uint64 {
	if m != nil {
		return m.RemotePolicies
	}
	return nil
}

func (m *PortNetworkPolicyRule) GetDownstreamTlsContext() *TLSContext {
	if m != nil {
		return m.DownstreamTlsContext
	}
	return nil
}

func (m *PortNetworkPolicyRule) GetUpstreamTlsContext() *TLSContext {
	if m != nil {
		return m.UpstreamTlsContext
	}
	return nil
}

func (m *PortNetworkPolicyRule) GetL7Proto() string {
	if m != nil {
		return m.L7Proto
	}
	return ""
}

type isPortNetworkPolicyRule_L7 interface {
	isPortNetworkPolicyRule_L7()
}

type PortNetworkPolicyRule_HttpRules struct {
	HttpRules *HttpNetworkPolicyRules `protobuf:"bytes,100,opt,name=http_rules,json=httpRules,proto3,oneof"`
}

type PortNetworkPolicyRule_KafkaRules struct {
	KafkaRules *KafkaNetworkPolicyRules `protobuf:"bytes,101,opt,name=kafka_rules,json=kafkaRules,proto3,oneof"`
}

type PortNetworkPolicyRule_L7Rules struct {
	L7Rules *L7NetworkPolicyRules `protobuf:"bytes,102,opt,name=l7_rules,json=l7Rules,proto3,oneof"`
}

func (*PortNetworkPolicyRule_HttpRules) isPortNetworkPolicyRule_L7() {}

func (*PortNetworkPolicyRule_KafkaRules) isPortNetworkPolicyRule_L7() {}

func (*PortNetworkPolicyRule_L7Rules) isPortNetworkPolicyRule_L7() {}

func (m *PortNetworkPolicyRule) GetL7() isPortNetworkPolicyRule_L7 {
	if m != nil {
		return m.L7
	}
	return nil
}

func (m *PortNetworkPolicyRule) GetHttpRules() *HttpNetworkPolicyRules {
	if x, ok := m.GetL7().(*PortNetworkPolicyRule_HttpRules); ok {
		return x.HttpRules
	}
	return nil
}

func (m *PortNetworkPolicyRule) GetKafkaRules() *KafkaNetworkPolicyRules {
	if x, ok := m.GetL7().(*PortNetworkPolicyRule_KafkaRules); ok {
		return x.KafkaRules
	}
	return nil
}

func (m *PortNetworkPolicyRule) GetL7Rules() *L7NetworkPolicyRules {
	if x, ok := m.GetL7().(*PortNetworkPolicyRule_L7Rules); ok {
		return x.L7Rules
	}
	return nil
}

func (*PortNetworkPolicyRule) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*PortNetworkPolicyRule_HttpRules)(nil),
		(*PortNetworkPolicyRule_KafkaRules)(nil),
		(*PortNetworkPolicyRule_L7Rules)(nil),
	}
}

type HttpNetworkPolicyRules struct {

	HttpRules            []*HttpNetworkPolicyRule `protobuf:"bytes,1,rep,name=http_rules,json=httpRules,proto3" json:"http_rules,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

func (m *HttpNetworkPolicyRules) Reset()         { *m = HttpNetworkPolicyRules{} }
func (m *HttpNetworkPolicyRules) String() string { return proto.CompactTextString(m) }
func (*HttpNetworkPolicyRules) ProtoMessage()    {}
func (*HttpNetworkPolicyRules) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{4}
}

func (m *HttpNetworkPolicyRules) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HttpNetworkPolicyRules.Unmarshal(m, b)
}
func (m *HttpNetworkPolicyRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HttpNetworkPolicyRules.Marshal(b, m, deterministic)
}
func (m *HttpNetworkPolicyRules) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HttpNetworkPolicyRules.Merge(m, src)
}
func (m *HttpNetworkPolicyRules) XXX_Size() int {
	return xxx_messageInfo_HttpNetworkPolicyRules.Size(m)
}
func (m *HttpNetworkPolicyRules) XXX_DiscardUnknown() {
	xxx_messageInfo_HttpNetworkPolicyRules.DiscardUnknown(m)
}

var xxx_messageInfo_HttpNetworkPolicyRules proto.InternalMessageInfo

func (m *HttpNetworkPolicyRules) GetHttpRules() []*HttpNetworkPolicyRule {
	if m != nil {
		return m.HttpRules
	}
	return nil
}

type HeaderMatch struct {
	Name                 string                     `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Value                string                     `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	MatchAction          HeaderMatch_MatchAction    `protobuf:"varint,3,opt,name=match_action,json=matchAction,proto3,enum=cilium.HeaderMatch_MatchAction" json:"match_action,omitempty"`
	MismatchAction       HeaderMatch_MismatchAction `protobuf:"varint,4,opt,name=mismatch_action,json=mismatchAction,proto3,enum=cilium.HeaderMatch_MismatchAction" json:"mismatch_action,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
	XXX_unrecognized     []byte                     `json:"-"`
	XXX_sizecache        int32                      `json:"-"`
}

func (m *HeaderMatch) Reset()         { *m = HeaderMatch{} }
func (m *HeaderMatch) String() string { return proto.CompactTextString(m) }
func (*HeaderMatch) ProtoMessage()    {}
func (*HeaderMatch) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{5}
}

func (m *HeaderMatch) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HeaderMatch.Unmarshal(m, b)
}
func (m *HeaderMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HeaderMatch.Marshal(b, m, deterministic)
}
func (m *HeaderMatch) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HeaderMatch.Merge(m, src)
}
func (m *HeaderMatch) XXX_Size() int {
	return xxx_messageInfo_HeaderMatch.Size(m)
}
func (m *HeaderMatch) XXX_DiscardUnknown() {
	xxx_messageInfo_HeaderMatch.DiscardUnknown(m)
}

var xxx_messageInfo_HeaderMatch proto.InternalMessageInfo

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

func (m *HeaderMatch) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

func (m *HeaderMatch) GetMatchAction() HeaderMatch_MatchAction {
	if m != nil {
		return m.MatchAction
	}
	return HeaderMatch_CONTINUE_ON_MATCH
}

func (m *HeaderMatch) GetMismatchAction() HeaderMatch_MismatchAction {
	if m != nil {
		return m.MismatchAction
	}
	return HeaderMatch_FAIL_ON_MISMATCH
}

type HttpNetworkPolicyRule struct {

	Headers []*route.HeaderMatcher `protobuf:"bytes,1,rep,name=headers,proto3" json:"headers,omitempty"`

	HeaderMatches        []*HeaderMatch `protobuf:"bytes,2,rep,name=header_matches,json=headerMatches,proto3" json:"header_matches,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *HttpNetworkPolicyRule) Reset()         { *m = HttpNetworkPolicyRule{} }
func (m *HttpNetworkPolicyRule) String() string { return proto.CompactTextString(m) }
func (*HttpNetworkPolicyRule) ProtoMessage()    {}
func (*HttpNetworkPolicyRule) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{6}
}

func (m *HttpNetworkPolicyRule) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HttpNetworkPolicyRule.Unmarshal(m, b)
}
func (m *HttpNetworkPolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HttpNetworkPolicyRule.Marshal(b, m, deterministic)
}
func (m *HttpNetworkPolicyRule) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HttpNetworkPolicyRule.Merge(m, src)
}
func (m *HttpNetworkPolicyRule) XXX_Size() int {
	return xxx_messageInfo_HttpNetworkPolicyRule.Size(m)
}
func (m *HttpNetworkPolicyRule) XXX_DiscardUnknown() {
	xxx_messageInfo_HttpNetworkPolicyRule.DiscardUnknown(m)
}

var xxx_messageInfo_HttpNetworkPolicyRule proto.InternalMessageInfo

func (m *HttpNetworkPolicyRule) GetHeaders() []*route.HeaderMatcher {
	if m != nil {
		return m.Headers
	}
	return nil
}

func (m *HttpNetworkPolicyRule) GetHeaderMatches() []*HeaderMatch {
	if m != nil {
		return m.HeaderMatches
	}
	return nil
}

type KafkaNetworkPolicyRules struct {

	KafkaRules           []*KafkaNetworkPolicyRule `protobuf:"bytes,1,rep,name=kafka_rules,json=kafkaRules,proto3" json:"kafka_rules,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

func (m *KafkaNetworkPolicyRules) Reset()         { *m = KafkaNetworkPolicyRules{} }
func (m *KafkaNetworkPolicyRules) String() string { return proto.CompactTextString(m) }
func (*KafkaNetworkPolicyRules) ProtoMessage()    {}
func (*KafkaNetworkPolicyRules) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{7}
}

func (m *KafkaNetworkPolicyRules) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_KafkaNetworkPolicyRules.Unmarshal(m, b)
}
func (m *KafkaNetworkPolicyRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_KafkaNetworkPolicyRules.Marshal(b, m, deterministic)
}
func (m *KafkaNetworkPolicyRules) XXX_Merge(src proto.Message) {
	xxx_messageInfo_KafkaNetworkPolicyRules.Merge(m, src)
}
func (m *KafkaNetworkPolicyRules) XXX_Size() int {
	return xxx_messageInfo_KafkaNetworkPolicyRules.Size(m)
}
func (m *KafkaNetworkPolicyRules) XXX_DiscardUnknown() {
	xxx_messageInfo_KafkaNetworkPolicyRules.DiscardUnknown(m)
}

var xxx_messageInfo_KafkaNetworkPolicyRules proto.InternalMessageInfo

func (m *KafkaNetworkPolicyRules) GetKafkaRules() []*KafkaNetworkPolicyRule {
	if m != nil {
		return m.KafkaRules
	}
	return nil
}

type KafkaNetworkPolicyRule struct {

	ApiKey int32 `protobuf:"varint,1,opt,name=api_key,json=apiKey,proto3" json:"api_key,omitempty"`

	ApiVersion int32 `protobuf:"varint,2,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"`

	Topic string `protobuf:"bytes,3,opt,name=topic,proto3" json:"topic,omitempty"`

	ClientId             string   `protobuf:"bytes,4,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *KafkaNetworkPolicyRule) Reset()         { *m = KafkaNetworkPolicyRule{} }
func (m *KafkaNetworkPolicyRule) String() string { return proto.CompactTextString(m) }
func (*KafkaNetworkPolicyRule) ProtoMessage()    {}
func (*KafkaNetworkPolicyRule) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{8}
}

func (m *KafkaNetworkPolicyRule) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_KafkaNetworkPolicyRule.Unmarshal(m, b)
}
func (m *KafkaNetworkPolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_KafkaNetworkPolicyRule.Marshal(b, m, deterministic)
}
func (m *KafkaNetworkPolicyRule) XXX_Merge(src proto.Message) {
	xxx_messageInfo_KafkaNetworkPolicyRule.Merge(m, src)
}
func (m *KafkaNetworkPolicyRule) XXX_Size() int {
	return xxx_messageInfo_KafkaNetworkPolicyRule.Size(m)
}
func (m *KafkaNetworkPolicyRule) XXX_DiscardUnknown() {
	xxx_messageInfo_KafkaNetworkPolicyRule.DiscardUnknown(m)
}

var xxx_messageInfo_KafkaNetworkPolicyRule proto.InternalMessageInfo

func (m *KafkaNetworkPolicyRule) GetApiKey() int32 {
	if m != nil {
		return m.ApiKey
	}
	return 0
}

func (m *KafkaNetworkPolicyRule) GetApiVersion() int32 {
	if m != nil {
		return m.ApiVersion
	}
	return 0
}

func (m *KafkaNetworkPolicyRule) GetTopic() string {
	if m != nil {
		return m.Topic
	}
	return ""
}

func (m *KafkaNetworkPolicyRule) GetClientId() string {
	if m != nil {
		return m.ClientId
	}
	return ""
}

type L7NetworkPolicyRules struct {

	L7Rules              []*L7NetworkPolicyRule `protobuf:"bytes,1,rep,name=l7_rules,json=l7Rules,proto3" json:"l7_rules,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *L7NetworkPolicyRules) Reset()         { *m = L7NetworkPolicyRules{} }
func (m *L7NetworkPolicyRules) String() string { return proto.CompactTextString(m) }
func (*L7NetworkPolicyRules) ProtoMessage()    {}
func (*L7NetworkPolicyRules) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{9}
}

func (m *L7NetworkPolicyRules) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_L7NetworkPolicyRules.Unmarshal(m, b)
}
func (m *L7NetworkPolicyRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_L7NetworkPolicyRules.Marshal(b, m, deterministic)
}
func (m *L7NetworkPolicyRules) XXX_Merge(src proto.Message) {
	xxx_messageInfo_L7NetworkPolicyRules.Merge(m, src)
}
func (m *L7NetworkPolicyRules) XXX_Size() int {
	return xxx_messageInfo_L7NetworkPolicyRules.Size(m)
}
func (m *L7NetworkPolicyRules) XXX_DiscardUnknown() {
	xxx_messageInfo_L7NetworkPolicyRules.DiscardUnknown(m)
}

var xxx_messageInfo_L7NetworkPolicyRules proto.InternalMessageInfo

func (m *L7NetworkPolicyRules) GetL7Rules() []*L7NetworkPolicyRule {
	if m != nil {
		return m.L7Rules
	}
	return nil
}

type L7NetworkPolicyRule struct {

	Rule                 map[string]string `protobuf:"bytes,1,rep,name=rule,proto3" json:"rule,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *L7NetworkPolicyRule) Reset()         { *m = L7NetworkPolicyRule{} }
func (m *L7NetworkPolicyRule) String() string { return proto.CompactTextString(m) }
func (*L7NetworkPolicyRule) ProtoMessage()    {}
func (*L7NetworkPolicyRule) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{10}
}

func (m *L7NetworkPolicyRule) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_L7NetworkPolicyRule.Unmarshal(m, b)
}
func (m *L7NetworkPolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_L7NetworkPolicyRule.Marshal(b, m, deterministic)
}
func (m *L7NetworkPolicyRule) XXX_Merge(src proto.Message) {
	xxx_messageInfo_L7NetworkPolicyRule.Merge(m, src)
}
func (m *L7NetworkPolicyRule) XXX_Size() int {
	return xxx_messageInfo_L7NetworkPolicyRule.Size(m)
}
func (m *L7NetworkPolicyRule) XXX_DiscardUnknown() {
	xxx_messageInfo_L7NetworkPolicyRule.DiscardUnknown(m)
}

var xxx_messageInfo_L7NetworkPolicyRule proto.InternalMessageInfo

func (m *L7NetworkPolicyRule) GetRule() map[string]string {
	if m != nil {
		return m.Rule
	}
	return nil
}

func init() {
	proto.RegisterEnum("cilium.HeaderMatch_MatchAction", HeaderMatch_MatchAction_name, HeaderMatch_MatchAction_value)
	proto.RegisterEnum("cilium.HeaderMatch_MismatchAction", HeaderMatch_MismatchAction_name, HeaderMatch_MismatchAction_value)
	proto.RegisterType((*NetworkPolicy)(nil), "cilium.NetworkPolicy")
	proto.RegisterType((*PortNetworkPolicy)(nil), "cilium.PortNetworkPolicy")
	proto.RegisterType((*TLSContext)(nil), "cilium.TLSContext")
	proto.RegisterType((*PortNetworkPolicyRule)(nil), "cilium.PortNetworkPolicyRule")
	proto.RegisterType((*HttpNetworkPolicyRules)(nil), "cilium.HttpNetworkPolicyRules")
	proto.RegisterType((*HeaderMatch)(nil), "cilium.HeaderMatch")
	proto.RegisterType((*HttpNetworkPolicyRule)(nil), "cilium.HttpNetworkPolicyRule")
	proto.RegisterType((*KafkaNetworkPolicyRules)(nil), "cilium.KafkaNetworkPolicyRules")
	proto.RegisterType((*KafkaNetworkPolicyRule)(nil), "cilium.KafkaNetworkPolicyRule")
	proto.RegisterType((*L7NetworkPolicyRules)(nil), "cilium.L7NetworkPolicyRules")
	proto.RegisterType((*L7NetworkPolicyRule)(nil), "cilium.L7NetworkPolicyRule")
	proto.RegisterMapType((map[string]string)(nil), "cilium.L7NetworkPolicyRule.RuleEntry")
}

func init() { proto.RegisterFile("cilium/api/npds.proto", fileDescriptor_c04d25916f7381d1) }

var fileDescriptor_c04d25916f7381d1 = []byte{

	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x41, 0x73, 0xdb, 0x44,
	0x14, 0xae, 0x64, 0x39, 0x8e, 0x9f, 0x1b, 0x37, 0xd9, 0xd8, 0x8e, 0x9a, 0x36, 0x89, 0x2b, 0x60,
	0x26, 0x2d, 0xc4, 0x6e, 0xdd, 0x61, 0x4c, 0xc3, 0x01, 0x2c, 0xc7, 0x9d, 0x64, 0xea, 0xa6, 0x1e,
	0xc5, 0x30, 0x0c, 0x0c, 0x15, 0x8b, 0xb4, 0xad, 0x35, 0x96, 0x25, 0xb1, 0x5a, 0xbb, 0x98, 0x63,
	0x0f, 0xcc, 0xc0, 0x89, 0xa1, 0x33, 0x9c, 0x38, 0x31, 0x1c, 0x38, 0xf1, 0x07, 0xe0, 0x5f, 0xf0,
	0x17, 0xf8, 0x07, 0xdc, 0x72, 0x29, 0xa3, 0x95, 0x64, 0x4b, 0x53, 0xa5, 0x5c, 0xb8, 0x68, 0x76,
	0xdf, 0x7b, 0xdf, 0xb7, 0xbb, 0xdf, 0x7b, 0xfb, 0x56, 0x50, 0x35, 0x2c, 0xdb, 0x9a, 0x4e, 0x9a,
	0xd8, 0xb3, 0x9a, 0x8e, 0x67, 0xfa, 0x0d, 0x8f, 0xba, 0xcc, 0x45, 0x2b, 0xa1, 0x79, 0x7b, 0x8f,
	0x38, 0x33, 0x77, 0xce, 0xbd, 0xb3, 0x56, 0xd3, 0x70, 0x29, 0x69, 0x62, 0xd3, 0xa4, 0xc4, 0x8f,
	0x02, 0xb7, 0xaf, 0xa7, 0x02, 0x4c, 0xcb, 0x37, 0xdc, 0x19, 0xa1, 0xf3, 0xc8, 0xbb, 0x9b, 0xf2,
	0x52, 0x77, 0xca, 0x48, 0xf8, 0x8d, 0xd1, 0x4f, 0x5d, 0xf7, 0xa9, 0x4d, 0x78, 0x00, 0x76, 0x1c,
	0x97, 0x61, 0x66, 0xb9, 0x4e, 0xcc, 0x5d, 0x8f, 0xd0, 0x4b, 0x47, 0x93, 0x12, 0xdf, 0x9d, 0x52,
	0x23, 0xc6, 0x6f, 0xcd, 0xb0, 0x6d, 0x99, 0x98, 0x91, 0x66, 0x3c, 0x08, 0x1d, 0xca, 0x0b, 0x11,
	0xd6, 0x4e, 0x09, 0x7b, 0xe6, 0xd2, 0xf1, 0xc0, 0xb5, 0x2d, 0x63, 0x8e, 0x10, 0x48, 0x0e, 0x9e,
	0x10, 0x59, 0xa8, 0x0b, 0xfb, 0x45, 0x8d, 0x8f, 0x51, 0x0d, 0x56, 0x3c, 0xee, 0x95, 0xc5, 0xba,
	0xb0, 0x2f, 0x69, 0xd1, 0x0c, 0x0d, 0xe1, 0xaa, 0xe5, 0x3c, 0x0d, 0x4e, 0xa9, 0x7b, 0x84, 0xea,
	0x9e, 0x4b, 0x99, 0xce, 0x5d, 0x16, 0xf1, 0xe5, 0x5c, 0x3d, 0xb7, 0x5f, 0x6a, 0x5d, 0x6d, 0x84,
	0x0a, 0x35, 0x06, 0x2e, 0x65, 0xa9, 0x95, 0xb4, 0x5a, 0x84, 0x1d, 0x10, 0x1a, 0x38, 0x07, 0x11,
	0x10, 0x69, 0x20, 0x93, 0x8b, 0x48, 0xa5, 0xff, 0x22, 0xad, 0x92, 0x4c, 0xce, 0x77, 0x00, 0x19,
	0xae, 0xe3, 0x30, 0x8a, 0x8d, 0xb1, 0x3e, 0xc1, 0x9e, 0xce, 0xcf, 0x98, 0xe7, 0x67, 0x5c, 0x5f,
	0x78, 0x1e, 0x62, 0xef, 0x14, 0x4f, 0x88, 0xf2, 0xbb, 0x00, 0x1b, 0xaf, 0x50, 0xa3, 0x1d, 0x90,
	0x82, 0xcd, 0x70, 0x65, 0xd6, 0xd4, 0xe2, 0xb9, 0xba, 0x72, 0x4b, 0x92, 0x5f, 0xbe, 0xcc, 0x69,
	0xdc, 0x8c, 0x7a, 0xb0, 0xca, 0x35, 0x35, 0x5c, 0x9b, 0xcb, 0x54, 0x6e, 0xdd, 0x6c, 0xf0, 0xc4,
	0x34, 0xb0, 0x67, 0x35, 0x66, 0xad, 0x46, 0x50, 0x15, 0x8d, 0x33, 0xd7, 0x18, 0x13, 0xd6, 0x89,
	0x6a, 0x63, 0x10, 0x01, 0xb4, 0x05, 0x14, 0xdd, 0x85, 0x3c, 0x9d, 0xda, 0x0b, 0xfd, 0x76, 0x2e,
	0x3e, 0xea, 0xd4, 0x26, 0x5a, 0x18, 0xab, 0xfc, 0x2c, 0x00, 0x0c, 0xfb, 0x67, 0x5d, 0xd7, 0x61,
	0xe4, 0x6b, 0x86, 0x76, 0x00, 0x18, 0x9d, 0xfa, 0x8c, 0x98, 0xba, 0x81, 0xa3, 0x4c, 0x16, 0x23,
	0x4b, 0x17, 0xa3, 0xb7, 0x61, 0xc3, 0x20, 0x94, 0x59, 0x4f, 0x2c, 0x03, 0x33, 0xa2, 0x1b, 0x23,
	0x6c, 0x39, 0x7c, 0xcb, 0x81, 0x16, 0x4b, 0x47, 0x37, 0xb0, 0xa3, 0x3d, 0x28, 0x79, 0xd4, 0x9a,
	0x05, 0x81, 0x63, 0x32, 0x97, 0x73, 0x3c, 0x0c, 0x22, 0xd3, 0x03, 0x32, 0x47, 0x37, 0xe0, 0xb2,
	0x4f, 0xe8, 0x8c, 0x50, 0xae, 0x69, 0x98, 0xa2, 0xa2, 0x56, 0x0a, 0x6d, 0x81, 0x9c, 0xbe, 0xf2,
	0x47, 0x0e, 0xaa, 0x99, 0xfb, 0x47, 0x77, 0xe0, 0x0a, 0x25, 0x13, 0x97, 0x91, 0x65, 0x8a, 0x85,
	0x7a, 0x6e, 0x5f, 0x52, 0x57, 0xcf, 0xd5, 0xfc, 0x8f, 0x82, 0x28, 0x0b, 0x5a, 0x39, 0x0c, 0x58,
	0xa4, 0xf2, 0x18, 0x6a, 0xa6, 0xfb, 0xcc, 0xf1, 0x19, 0x25, 0x78, 0xa2, 0x33, 0xdb, 0xd7, 0x8d,
	0xf0, 0xd8, 0x7c, 0x6f, 0xa5, 0x16, 0x8a, 0x15, 0x5b, 0x0a, 0xa2, 0x55, 0x96, 0x88, 0xa1, 0xed,
	0xc7, 0x32, 0x1d, 0x41, 0x65, 0xea, 0x65, 0xf0, 0x48, 0x17, 0xf2, 0xa0, 0x38, 0x3e, 0xc1, 0x72,
	0x15, 0x56, 0xed, 0xb6, 0xce, 0xf3, 0x17, 0x89, 0x58, 0xb0, 0xdb, 0x3c, 0xb1, 0xe8, 0x03, 0x80,
	0x11, 0x63, 0x9e, 0x1e, 0x26, 0xd4, 0xe4, 0xb4, 0xbb, 0x31, 0xed, 0x31, 0x63, 0xde, 0x2b, 0x82,
	0xf8, 0xc7, 0x97, 0xb4, 0x62, 0x80, 0xe1, 0x13, 0xa4, 0x42, 0x69, 0x8c, 0x9f, 0x8c, 0x71, 0xc4,
	0x40, 0x38, 0xc3, 0x5e, 0xcc, 0xf0, 0x20, 0x70, 0x65, 0x52, 0x00, 0x47, 0x85, 0x1c, 0xf7, 0xf8,
	0xfe, 0x42, 0x82, 0x27, 0x9c, 0xe0, 0x7a, 0x4c, 0xd0, 0x6f, 0x67, 0xa2, 0x0b, 0x76, 0x9b, 0x0f,
	0x55, 0x09, 0x44, 0xbb, 0xad, 0x7c, 0x01, 0xb5, 0xec, 0xbd, 0xa2, 0xfb, 0xa9, 0xf3, 0x09, 0xe9,
	0x82, 0xcd, 0xc4, 0xc4, 0x79, 0x5d, 0x15, 0x12, 0xc7, 0x54, 0x7e, 0xcb, 0x41, 0xe9, 0x98, 0x60,
	0x93, 0xd0, 0x87, 0x98, 0x19, 0x23, 0x74, 0x2d, 0xd9, 0x83, 0xd4, 0xc2, 0xb9, 0x2a, 0x51, 0xb1,
	0x2e, 0x44, 0xcd, 0xa8, 0x02, 0xf9, 0x19, 0xb6, 0xa7, 0x24, 0x12, 0x3b, 0x9c, 0x20, 0x15, 0x2e,
	0x4f, 0x02, 0xac, 0x8e, 0x8d, 0xa0, 0x03, 0xf2, 0x5a, 0x28, 0x2f, 0xa5, 0x4a, 0xb0, 0x37, 0xf8,
	0xb7, 0xc3, 0xc3, 0xb4, 0xd2, 0x64, 0x39, 0x41, 0x0f, 0xe0, 0xca, 0xc4, 0xf2, 0x53, 0x34, 0x12,
	0xa7, 0x51, 0x32, 0x69, 0xa2, 0xd0, 0x88, 0xa9, 0x3c, 0x49, 0xcd, 0x95, 0x3e, 0x94, 0x12, 0x0b,
	0xa1, 0x2a, 0x6c, 0x74, 0x1f, 0x9d, 0x0e, 0x4f, 0x4e, 0x3f, 0xea, 0xe9, 0x8f, 0x4e, 0xf5, 0x87,
	0x9d, 0x61, 0xf7, 0x78, 0xfd, 0x12, 0xda, 0x80, 0xb5, 0xfb, 0x9d, 0x93, 0xfe, 0xd2, 0x24, 0xa0,
	0x4d, 0xb8, 0x72, 0xd4, 0xeb, 0xf7, 0x86, 0x89, 0x38, 0x51, 0xf9, 0x56, 0x80, 0x72, 0x7a, 0x41,
	0x54, 0x81, 0xf5, 0x05, 0xf4, 0xe4, 0x2c, 0x26, 0x94, 0xa1, 0x92, 0x5a, 0x27, 0xf6, 0x70, 0xde,
	0xce, 0xd1, 0x51, 0xca, 0x28, 0xa2, 0x1a, 0xa0, 0xc4, 0x62, 0xb1, 0x3d, 0x87, 0xb6, 0x60, 0x53,
	0xeb, 0x0d, 0xfa, 0x9d, 0x6e, 0xda, 0x21, 0x29, 0x3f, 0x08, 0x50, 0xcd, 0xcc, 0x2c, 0x7a, 0x1f,
	0x0a, 0x23, 0x2e, 0x4f, 0x5c, 0x09, 0x37, 0xd2, 0xed, 0x2f, 0x7c, 0xcf, 0x12, 0x0a, 0x12, 0xaa,
	0xc5, 0x08, 0x74, 0x08, 0xe5, 0x70, 0xa8, 0xf3, 0x23, 0x12, 0x5f, 0x16, 0x39, 0xc7, 0x66, 0x86,
	0xf2, 0xda, 0xda, 0x28, 0x41, 0xe2, 0x2b, 0x26, 0x6c, 0x5d, 0x70, 0x13, 0xd0, 0x49, 0xfa, 0xfe,
	0x84, 0xfb, 0xda, 0x7d, 0xfd, 0xfd, 0x49, 0x94, 0x68, 0xe2, 0x1a, 0x29, 0x7f, 0x0a, 0x50, 0xcb,
	0x06, 0xa0, 0x2d, 0x28, 0x60, 0xcf, 0xe2, 0xed, 0x31, 0xa8, 0xd8, 0xbc, 0xb6, 0x82, 0x3d, 0x2b,
	0x68, 0x8d, 0x7b, 0x50, 0x0a, 0x1c, 0x33, 0x42, 0xfd, 0xa0, 0x98, 0x44, 0xee, 0x04, 0xec, 0x59,
	0x1f, 0x87, 0x16, 0x74, 0x07, 0xf2, 0xcc, 0xf5, 0x2c, 0x23, 0x6c, 0xab, 0xea, 0xb5, 0x73, 0x55,
	0xa6, 0x35, 0xf9, 0xa5, 0xd0, 0xda, 0x78, 0xfc, 0x19, 0x3e, 0xf8, 0xa6, 0x73, 0xf0, 0xe9, 0xed,
	0x83, 0x7b, 0x0d, 0xfd, 0xe0, 0xf3, 0x5b, 0x6f, 0x6a, 0x61, 0x24, 0x7a, 0x17, 0x8a, 0x86, 0x6d,
	0x11, 0x87, 0xe9, 0x96, 0xc9, 0xcb, 0xb3, 0xa8, 0xca, 0xe7, 0x6a, 0x95, 0x6e, 0x66, 0x61, 0x56,
	0xc3, 0xd0, 0x13, 0x53, 0xf9, 0x04, 0x2a, 0x59, 0xb7, 0x1d, 0x7d, 0x98, 0xe8, 0x0e, 0xa1, 0x3c,
	0xd7, 0x5e, 0xd3, 0x1d, 0x12, 0xda, 0xc4, 0x4d, 0x42, 0xf9, 0x4e, 0x80, 0xcd, 0x8c, 0x50, 0x74,
	0x0f, 0xa4, 0x80, 0x36, 0x62, 0x7d, 0xeb, 0x35, 0xac, 0x8d, 0xe0, 0xd3, 0x73, 0x18, 0x9d, 0x6b,
	0x1c, 0xb2, 0xdd, 0x86, 0xe2, 0xc2, 0x84, 0xd6, 0x21, 0x17, 0x2b, 0x5b, 0xd4, 0x82, 0x61, 0x76,
	0x07, 0x38, 0x14, 0xdf, 0x13, 0x5a, 0xbf, 0x88, 0xb0, 0x93, 0xa2, 0x3f, 0x8a, 0x7f, 0xb4, 0xce,
	0x08, 0x9d, 0x59, 0x06, 0x41, 0x8f, 0xa1, 0x7a, 0xc6, 0x3b, 0x78, 0x32, 0x2c, 0x78, 0x56, 0x76,
	0xd3, 0xd5, 0xba, 0x00, 0x6a, 0xe4, 0xab, 0x29, 0xf1, 0xd9, 0xf6, 0xde, 0x85, 0x7e, 0xdf, 0x73,
	0x1d, 0x9f, 0x28, 0x97, 0xf6, 0x85, 0xdb, 0x02, 0x7a, 0x2e, 0x40, 0xe5, 0x3e, 0x61, 0xc6, 0xe8,
	0x7f, 0xe7, 0xbf, 0xf9, 0xfc, 0xaf, 0xbf, 0x5f, 0x88, 0x6f, 0x28, 0xbb, 0xa9, 0x1f, 0xc8, 0x43,
	0x27, 0x5c, 0x67, 0xf1, 0x7e, 0x1e, 0x0a, 0xb7, 0xb6, 0xaf, 0x7f, 0xff, 0xeb, 0x4f, 0xff, 0x14,
	0x6a, 0x50, 0x89, 0x34, 0x4f, 0x49, 0xf2, 0xe5, 0x0a, 0x7f, 0xab, 0xee, 0xfe, 0x1b, 0x00, 0x00,
	0xff, 0xff, 0xef, 0xee, 0xcc, 0xd9, 0xd3, 0x0a, 0x00, 0x00,
}

var _ context.Context
var _ grpc.ClientConn

const _ = grpc.SupportPackageIsVersion4

type NetworkPolicyDiscoveryServiceClient interface {
	StreamNetworkPolicies(ctx context.Context, opts ...grpc.CallOption) (NetworkPolicyDiscoveryService_StreamNetworkPoliciesClient, error)
	FetchNetworkPolicies(ctx context.Context, in *v2.DiscoveryRequest, opts ...grpc.CallOption) (*v2.DiscoveryResponse, error)
}

type networkPolicyDiscoveryServiceClient struct {
	cc *grpc.ClientConn
}

func NewNetworkPolicyDiscoveryServiceClient(cc *grpc.ClientConn) NetworkPolicyDiscoveryServiceClient {
	return &networkPolicyDiscoveryServiceClient{cc}
}

func (c *networkPolicyDiscoveryServiceClient) StreamNetworkPolicies(ctx context.Context, opts ...grpc.CallOption) (NetworkPolicyDiscoveryService_StreamNetworkPoliciesClient, error) {
	stream, err := c.cc.NewStream(ctx, &_NetworkPolicyDiscoveryService_serviceDesc.Streams[0], "/cilium.NetworkPolicyDiscoveryService/StreamNetworkPolicies", opts...)
	if err != nil {
		return nil, err
	}
	x := &networkPolicyDiscoveryServiceStreamNetworkPoliciesClient{stream}
	return x, nil
}

type NetworkPolicyDiscoveryService_StreamNetworkPoliciesClient interface {
	Send(*v2.DiscoveryRequest) error
	Recv() (*v2.DiscoveryResponse, error)
	grpc.ClientStream
}

type networkPolicyDiscoveryServiceStreamNetworkPoliciesClient struct {
	grpc.ClientStream
}

func (x *networkPolicyDiscoveryServiceStreamNetworkPoliciesClient) Send(m *v2.DiscoveryRequest) error {
	return x.ClientStream.SendMsg(m)
}

func (x *networkPolicyDiscoveryServiceStreamNetworkPoliciesClient) Recv() (*v2.DiscoveryResponse, error) {
	m := new(v2.DiscoveryResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *networkPolicyDiscoveryServiceClient) FetchNetworkPolicies(ctx context.Context, in *v2.DiscoveryRequest, opts ...grpc.CallOption) (*v2.DiscoveryResponse, error) {
	out := new(v2.DiscoveryResponse)
	err := c.cc.Invoke(ctx, "/cilium.NetworkPolicyDiscoveryService/FetchNetworkPolicies", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

type NetworkPolicyDiscoveryServiceServer interface {
	StreamNetworkPolicies(NetworkPolicyDiscoveryService_StreamNetworkPoliciesServer) error
	FetchNetworkPolicies(context.Context, *v2.DiscoveryRequest) (*v2.DiscoveryResponse, error)
}

type UnimplementedNetworkPolicyDiscoveryServiceServer struct {
}

func (*UnimplementedNetworkPolicyDiscoveryServiceServer) StreamNetworkPolicies(srv NetworkPolicyDiscoveryService_StreamNetworkPoliciesServer) error {
	return status.Errorf(codes.Unimplemented, "method StreamNetworkPolicies not implemented")
}
func (*UnimplementedNetworkPolicyDiscoveryServiceServer) FetchNetworkPolicies(ctx context.Context, req *v2.DiscoveryRequest) (*v2.DiscoveryResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method FetchNetworkPolicies not implemented")
}

func RegisterNetworkPolicyDiscoveryServiceServer(s *grpc.Server, srv NetworkPolicyDiscoveryServiceServer) {
	s.RegisterService(&_NetworkPolicyDiscoveryService_serviceDesc, srv)
}

func _NetworkPolicyDiscoveryService_StreamNetworkPolicies_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(NetworkPolicyDiscoveryServiceServer).StreamNetworkPolicies(&networkPolicyDiscoveryServiceStreamNetworkPoliciesServer{stream})
}

type NetworkPolicyDiscoveryService_StreamNetworkPoliciesServer interface {
	Send(*v2.DiscoveryResponse) error
	Recv() (*v2.DiscoveryRequest, error)
	grpc.ServerStream
}

type networkPolicyDiscoveryServiceStreamNetworkPoliciesServer struct {
	grpc.ServerStream
}

func (x *networkPolicyDiscoveryServiceStreamNetworkPoliciesServer) Send(m *v2.DiscoveryResponse) error {
	return x.ServerStream.SendMsg(m)
}

func (x *networkPolicyDiscoveryServiceStreamNetworkPoliciesServer) Recv() (*v2.DiscoveryRequest, error) {
	m := new(v2.DiscoveryRequest)
	if err := x.ServerStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func _NetworkPolicyDiscoveryService_FetchNetworkPolicies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(v2.DiscoveryRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NetworkPolicyDiscoveryServiceServer).FetchNetworkPolicies(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/cilium.NetworkPolicyDiscoveryService/FetchNetworkPolicies",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkPolicyDiscoveryServiceServer).FetchNetworkPolicies(ctx, req.(*v2.DiscoveryRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _NetworkPolicyDiscoveryService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "cilium.NetworkPolicyDiscoveryService",
	HandlerType: (*NetworkPolicyDiscoveryServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "FetchNetworkPolicies",
			Handler:    _NetworkPolicyDiscoveryService_FetchNetworkPolicies_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "StreamNetworkPolicies",
			Handler:       _NetworkPolicyDiscoveryService_StreamNetworkPolicies_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: "cilium/api/npds.proto",
}
// Code generated by protoc-gen-go. DO NOT EDIT.
// source: cilium/api/npds.proto

package cilium

import (
	context "context"
	fmt "fmt"
	_ "github.com/cilium/proxy/go/envoy/annotations"
	v2 "github.com/cilium/proxy/go/envoy/api/v2"
	core "github.com/cilium/proxy/go/envoy/api/v2/core"
	route "github.com/cilium/proxy/go/envoy/api/v2/route"
	_ "github.com/envoyproxy/protoc-gen-validate/validate"
	proto "github.com/golang/protobuf/proto"
	_ "google.golang.org/genproto/googleapis/api/annotations"
	grpc "google.golang.org/grpc"
	codes "google.golang.org/grpc/codes"
	status "google.golang.org/grpc/status"
	math "math"
)

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

// This is a compile-time assertion to ensure that this generated file
// is compatible with the proto package it is being compiled against.
// A compilation error at this line likely means your copy of the
// proto package needs to be updated.
const _ = proto.ProtoPackageIsVersion3 // please upgrade the proto package

// Action specifies what to do when the header matches.
type HeaderMatch_MatchAction int32

const (
	HeaderMatch_CONTINUE_ON_MATCH HeaderMatch_MatchAction = 0
	HeaderMatch_FAIL_ON_MATCH     HeaderMatch_MatchAction = 1
	HeaderMatch_DELETE_ON_MATCH   HeaderMatch_MatchAction = 2
)

var HeaderMatch_MatchAction_name = map[int32]string{
	0: "CONTINUE_ON_MATCH",
	1: "FAIL_ON_MATCH",
	2: "DELETE_ON_MATCH",
}

var HeaderMatch_MatchAction_value = map[string]int32{
	"CONTINUE_ON_MATCH": 0,
	"FAIL_ON_MATCH":     1,
	"DELETE_ON_MATCH":   2,
}

func (x HeaderMatch_MatchAction) String() string {
	return proto.EnumName(HeaderMatch_MatchAction_name, int32(x))
}

func (HeaderMatch_MatchAction) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{5, 0}
}

type HeaderMatch_MismatchAction int32

const (
	HeaderMatch_FAIL_ON_MISMATCH     HeaderMatch_MismatchAction = 0
	HeaderMatch_CONTINUE_ON_MISMATCH HeaderMatch_MismatchAction = 1
	HeaderMatch_ADD_ON_MISMATCH      HeaderMatch_MismatchAction = 2
	HeaderMatch_DELETE_ON_MISMATCH   HeaderMatch_MismatchAction = 3
	HeaderMatch_REPLACE_ON_MISMATCH  HeaderMatch_MismatchAction = 4
)

var HeaderMatch_MismatchAction_name = map[int32]string{
	0: "FAIL_ON_MISMATCH",
	1: "CONTINUE_ON_MISMATCH",
	2: "ADD_ON_MISMATCH",
	3: "DELETE_ON_MISMATCH",
	4: "REPLACE_ON_MISMATCH",
}

var HeaderMatch_MismatchAction_value = map[string]int32{
	"FAIL_ON_MISMATCH":     0,
	"CONTINUE_ON_MISMATCH": 1,
	"ADD_ON_MISMATCH":      2,
	"DELETE_ON_MISMATCH":   3,
	"REPLACE_ON_MISMATCH":  4,
}

func (x HeaderMatch_MismatchAction) String() string {
	return proto.EnumName(HeaderMatch_MismatchAction_name, int32(x))
}

func (HeaderMatch_MismatchAction) EnumDescriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{5, 1}
}

// A network policy that is enforced by a filter on the network flows to/from
// associated hosts.
type NetworkPolicy struct {
	// The unique identifier of the network policy.
	// Required.
	Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	// The policy identifier associated with the network policy. Corresponds to
	// remote_policies entries in PortNetworkPolicyRule.
	// Required.
	Policy uint64 `protobuf:"varint,2,opt,name=policy,proto3" json:"policy,omitempty"`
	// The part of the policy to be enforced at ingress by the filter, as a set
	// of per-port network policies, one per destination L4 port.
	// Every PortNetworkPolicy element in this set has a unique port / protocol
	// combination.
	// Optional. If empty, all flows in this direction are denied.
	IngressPerPortPolicies []*PortNetworkPolicy `protobuf:"bytes,3,rep,name=ingress_per_port_policies,json=ingressPerPortPolicies,proto3" json:"ingress_per_port_policies,omitempty"`
	// The part of the policy to be enforced at egress by the filter, as a set
	// of per-port network policies, one per destination L4 port.
	// Every PortNetworkPolicy element in this set has a unique port / protocol
	// combination.
	// Optional. If empty, all flows in this direction are denied.
	EgressPerPortPolicies []*PortNetworkPolicy `protobuf:"bytes,4,rep,name=egress_per_port_policies,json=egressPerPortPolicies,proto3" json:"egress_per_port_policies,omitempty"`
	// Name of the conntrack map to use with this policy.
	// The paths to various Cilium conntrack maps are derived using this name.
	// Optional. If empty, proxymap lookup is used instead of conntrack map.
	ConntrackMapName     string   `protobuf:"bytes,5,opt,name=conntrack_map_name,json=conntrackMapName,proto3" json:"conntrack_map_name,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

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

func (m *NetworkPolicy) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_NetworkPolicy.Unmarshal(m, b)
}
func (m *NetworkPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_NetworkPolicy.Marshal(b, m, deterministic)
}
func (m *NetworkPolicy) XXX_Merge(src proto.Message) {
	xxx_messageInfo_NetworkPolicy.Merge(m, src)
}
func (m *NetworkPolicy) XXX_Size() int {
	return xxx_messageInfo_NetworkPolicy.Size(m)
}
func (m *NetworkPolicy) XXX_DiscardUnknown() {
	xxx_messageInfo_NetworkPolicy.DiscardUnknown(m)
}

var xxx_messageInfo_NetworkPolicy proto.InternalMessageInfo

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

func (m *NetworkPolicy) GetPolicy() uint64 {
	if m != nil {
		return m.Policy
	}
	return 0
}

func (m *NetworkPolicy) GetIngressPerPortPolicies() []*PortNetworkPolicy {
	if m != nil {
		return m.IngressPerPortPolicies
	}
	return nil
}

func (m *NetworkPolicy) GetEgressPerPortPolicies() []*PortNetworkPolicy {
	if m != nil {
		return m.EgressPerPortPolicies
	}
	return nil
}

func (m *NetworkPolicy) GetConntrackMapName() string {
	if m != nil {
		return m.ConntrackMapName
	}
	return ""
}

// A network policy to whitelist flows to a specific destination L4 port,
// as a conjunction of predicates on L3/L4/L7 flows.
// If all the predicates of a policy match a flow, the flow is whitelisted.
type PortNetworkPolicy struct {
	// The flows' destination L4 port number, as an unsigned 16-bit integer.
	// If 0, all destination L4 port numbers are matched by this predicate.
	Port uint32 `protobuf:"varint,1,opt,name=port,proto3" json:"port,omitempty"`
	// The flows' L4 transport protocol.
	// Required.
	Protocol core.SocketAddress_Protocol `protobuf:"varint,2,opt,name=protocol,proto3,enum=envoy.api.v2.core.SocketAddress_Protocol" json:"protocol,omitempty"`
	// The network policy rules to be enforced on the flows to the port.
	// Optional. A flow is matched by this predicate if either the set of
	// rules is empty or any of the rules matches it.
	Rules                []*PortNetworkPolicyRule `protobuf:"bytes,3,rep,name=rules,proto3" json:"rules,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

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

func (m *PortNetworkPolicy) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PortNetworkPolicy.Unmarshal(m, b)
}
func (m *PortNetworkPolicy) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PortNetworkPolicy.Marshal(b, m, deterministic)
}
func (m *PortNetworkPolicy) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PortNetworkPolicy.Merge(m, src)
}
func (m *PortNetworkPolicy) XXX_Size() int {
	return xxx_messageInfo_PortNetworkPolicy.Size(m)
}
func (m *PortNetworkPolicy) XXX_DiscardUnknown() {
	xxx_messageInfo_PortNetworkPolicy.DiscardUnknown(m)
}

var xxx_messageInfo_PortNetworkPolicy proto.InternalMessageInfo

func (m *PortNetworkPolicy) GetPort() uint32 {
	if m != nil {
		return m.Port
	}
	return 0
}

func (m *PortNetworkPolicy) GetProtocol() core.SocketAddress_Protocol {
	if m != nil {
		return m.Protocol
	}
	return core.SocketAddress_TCP
}

func (m *PortNetworkPolicy) GetRules() []*PortNetworkPolicyRule {
	if m != nil {
		return m.Rules
	}
	return nil
}

type TLSContext struct {
	// CA certificates. If present, the counterparty must provide a valid certificate.
	TrustedCa string `protobuf:"bytes,1,opt,name=trusted_ca,json=trustedCa,proto3" json:"trusted_ca,omitempty"`
	// Certificate chain
	CertificateChain string `protobuf:"bytes,2,opt,name=certificate_chain,json=certificateChain,proto3" json:"certificate_chain,omitempty"`
	// Private key
	PrivateKey string `protobuf:"bytes,3,opt,name=private_key,json=privateKey,proto3" json:"private_key,omitempty"`
	// Server Name Indicator. For downstream this helps choose the certificate to present to the client.
	// For upstream this will be used as the SNI on the client connection.
	ServerNames          []string `protobuf:"bytes,4,rep,name=server_names,json=serverNames,proto3" json:"server_names,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *TLSContext) Reset()         { *m = TLSContext{} }
func (m *TLSContext) String() string { return proto.CompactTextString(m) }
func (*TLSContext) ProtoMessage()    {}
func (*TLSContext) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{2}
}

func (m *TLSContext) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_TLSContext.Unmarshal(m, b)
}
func (m *TLSContext) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_TLSContext.Marshal(b, m, deterministic)
}
func (m *TLSContext) XXX_Merge(src proto.Message) {
	xxx_messageInfo_TLSContext.Merge(m, src)
}
func (m *TLSContext) XXX_Size() int {
	return xxx_messageInfo_TLSContext.Size(m)
}
func (m *TLSContext) XXX_DiscardUnknown() {
	xxx_messageInfo_TLSContext.DiscardUnknown(m)
}

var xxx_messageInfo_TLSContext proto.InternalMessageInfo

func (m *TLSContext) GetTrustedCa() string {
	if m != nil {
		return m.TrustedCa
	}
	return ""
}

func (m *TLSContext) GetCertificateChain() string {
	if m != nil {
		return m.CertificateChain
	}
	return ""
}

func (m *TLSContext) GetPrivateKey() string {
	if m != nil {
		return m.PrivateKey
	}
	return ""
}

func (m *TLSContext) GetServerNames() []string {
	if m != nil {
		return m.ServerNames
	}
	return nil
}

// A network policy rule, as a conjunction of predicates on L3/L7 flows.
// If all the predicates of a rule match a flow, the flow is matched by the
// rule.
type PortNetworkPolicyRule struct {
	// The set of identifiers of policies of remote hosts.
	// A flow is matched by this predicate if the identifier of the policy
	// applied on the flow's remote host is contained in this set.
	// Optional. If not specified, any remote host is matched by this predicate.
	RemotePolicies []uint64 `protobuf:"varint,1,rep,packed,name=remote_policies,json=remotePolicies,proto3" json:"remote_policies,omitempty"`
	// Optional downstream TLS context. If present, the incoming connection must be a TLS connection.
	DownstreamTlsContext *TLSContext `protobuf:"bytes,3,opt,name=downstream_tls_context,json=downstreamTlsContext,proto3" json:"downstream_tls_context,omitempty"`
	// Optional upstream TLS context. If present, the outgoing connection will use TLS.
	UpstreamTlsContext *TLSContext `protobuf:"bytes,4,opt,name=upstream_tls_context,json=upstreamTlsContext,proto3" json:"upstream_tls_context,omitempty"`
	// Optional L7 protocol parser name. This is only used if the parser is not
	// one of the well knows ones. If specified, the l7 parser having this name
	// needs to be built in to libcilium.so.
	L7Proto string `protobuf:"bytes,2,opt,name=l7_proto,json=l7Proto,proto3" json:"l7_proto,omitempty"`
	// Optional. If not specified, any L7 request is matched by this predicate.
	// All rules on any given port must have the same type of L7 rules!
	//
	// Types that are valid to be assigned to L7:
	//	*PortNetworkPolicyRule_HttpRules
	//	*PortNetworkPolicyRule_KafkaRules
	//	*PortNetworkPolicyRule_L7Rules
	L7                   isPortNetworkPolicyRule_L7 `protobuf_oneof:"l7"`
	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
	XXX_unrecognized     []byte                     `json:"-"`
	XXX_sizecache        int32                      `json:"-"`
}

func (m *PortNetworkPolicyRule) Reset()         { *m = PortNetworkPolicyRule{} }
func (m *PortNetworkPolicyRule) String() string { return proto.CompactTextString(m) }
func (*PortNetworkPolicyRule) ProtoMessage()    {}
func (*PortNetworkPolicyRule) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{3}
}

func (m *PortNetworkPolicyRule) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_PortNetworkPolicyRule.Unmarshal(m, b)
}
func (m *PortNetworkPolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_PortNetworkPolicyRule.Marshal(b, m, deterministic)
}
func (m *PortNetworkPolicyRule) XXX_Merge(src proto.Message) {
	xxx_messageInfo_PortNetworkPolicyRule.Merge(m, src)
}
func (m *PortNetworkPolicyRule) XXX_Size() int {
	return xxx_messageInfo_PortNetworkPolicyRule.Size(m)
}
func (m *PortNetworkPolicyRule) XXX_DiscardUnknown() {
	xxx_messageInfo_PortNetworkPolicyRule.DiscardUnknown(m)
}

var xxx_messageInfo_PortNetworkPolicyRule proto.InternalMessageInfo

func (m *PortNetworkPolicyRule) GetRemotePolicies() []uint64 {
	if m != nil {
		return m.RemotePolicies
	}
	return nil
}

func (m *PortNetworkPolicyRule) GetDownstreamTlsContext() *TLSContext {
	if m != nil {
		return m.DownstreamTlsContext
	}
	return nil
}

func (m *PortNetworkPolicyRule) GetUpstreamTlsContext() *TLSContext {
	if m != nil {
		return m.UpstreamTlsContext
	}
	return nil
}

func (m *PortNetworkPolicyRule) GetL7Proto() string {
	if m != nil {
		return m.L7Proto
	}
	return ""
}

type isPortNetworkPolicyRule_L7 interface {
	isPortNetworkPolicyRule_L7()
}

type PortNetworkPolicyRule_HttpRules struct {
	HttpRules *HttpNetworkPolicyRules `protobuf:"bytes,100,opt,name=http_rules,json=httpRules,proto3,oneof"`
}

type PortNetworkPolicyRule_KafkaRules struct {
	KafkaRules *KafkaNetworkPolicyRules `protobuf:"bytes,101,opt,name=kafka_rules,json=kafkaRules,proto3,oneof"`
}

type PortNetworkPolicyRule_L7Rules struct {
	L7Rules *L7NetworkPolicyRules `protobuf:"bytes,102,opt,name=l7_rules,json=l7Rules,proto3,oneof"`
}

func (*PortNetworkPolicyRule_HttpRules) isPortNetworkPolicyRule_L7() {}

func (*PortNetworkPolicyRule_KafkaRules) isPortNetworkPolicyRule_L7() {}

func (*PortNetworkPolicyRule_L7Rules) isPortNetworkPolicyRule_L7() {}

func (m *PortNetworkPolicyRule) GetL7() isPortNetworkPolicyRule_L7 {
	if m != nil {
		return m.L7
	}
	return nil
}

func (m *PortNetworkPolicyRule) GetHttpRules() *HttpNetworkPolicyRules {
	if x, ok := m.GetL7().(*PortNetworkPolicyRule_HttpRules); ok {
		return x.HttpRules
	}
	return nil
}

func (m *PortNetworkPolicyRule) GetKafkaRules() *KafkaNetworkPolicyRules {
	if x, ok := m.GetL7().(*PortNetworkPolicyRule_KafkaRules); ok {
		return x.KafkaRules
	}
	return nil
}

func (m *PortNetworkPolicyRule) GetL7Rules() *L7NetworkPolicyRules {
	if x, ok := m.GetL7().(*PortNetworkPolicyRule_L7Rules); ok {
		return x.L7Rules
	}
	return nil
}

// XXX_OneofWrappers is for the internal use of the proto package.
func (*PortNetworkPolicyRule) XXX_OneofWrappers() []interface{} {
	return []interface{}{
		(*PortNetworkPolicyRule_HttpRules)(nil),
		(*PortNetworkPolicyRule_KafkaRules)(nil),
		(*PortNetworkPolicyRule_L7Rules)(nil),
	}
}

// A set of network policy rules that match HTTP requests.
type HttpNetworkPolicyRules struct {
	// The set of HTTP network policy rules.
	// An HTTP request is matched if any of its rules matches the request.
	// Required and may not be empty.
	HttpRules            []*HttpNetworkPolicyRule `protobuf:"bytes,1,rep,name=http_rules,json=httpRules,proto3" json:"http_rules,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                 `json:"-"`
	XXX_unrecognized     []byte                   `json:"-"`
	XXX_sizecache        int32                    `json:"-"`
}

func (m *HttpNetworkPolicyRules) Reset()         { *m = HttpNetworkPolicyRules{} }
func (m *HttpNetworkPolicyRules) String() string { return proto.CompactTextString(m) }
func (*HttpNetworkPolicyRules) ProtoMessage()    {}
func (*HttpNetworkPolicyRules) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{4}
}

func (m *HttpNetworkPolicyRules) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HttpNetworkPolicyRules.Unmarshal(m, b)
}
func (m *HttpNetworkPolicyRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HttpNetworkPolicyRules.Marshal(b, m, deterministic)
}
func (m *HttpNetworkPolicyRules) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HttpNetworkPolicyRules.Merge(m, src)
}
func (m *HttpNetworkPolicyRules) XXX_Size() int {
	return xxx_messageInfo_HttpNetworkPolicyRules.Size(m)
}
func (m *HttpNetworkPolicyRules) XXX_DiscardUnknown() {
	xxx_messageInfo_HttpNetworkPolicyRules.DiscardUnknown(m)
}

var xxx_messageInfo_HttpNetworkPolicyRules proto.InternalMessageInfo

func (m *HttpNetworkPolicyRules) GetHttpRules() []*HttpNetworkPolicyRule {
	if m != nil {
		return m.HttpRules
	}
	return nil
}

type HeaderMatch struct {
	Name                 string                     `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"`
	Value                string                     `protobuf:"bytes,2,opt,name=value,proto3" json:"value,omitempty"`
	MatchAction          HeaderMatch_MatchAction    `protobuf:"varint,3,opt,name=match_action,json=matchAction,proto3,enum=cilium.HeaderMatch_MatchAction" json:"match_action,omitempty"`
	MismatchAction       HeaderMatch_MismatchAction `protobuf:"varint,4,opt,name=mismatch_action,json=mismatchAction,proto3,enum=cilium.HeaderMatch_MismatchAction" json:"mismatch_action,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
	XXX_unrecognized     []byte                     `json:"-"`
	XXX_sizecache        int32                      `json:"-"`
}

func (m *HeaderMatch) Reset()         { *m = HeaderMatch{} }
func (m *HeaderMatch) String() string { return proto.CompactTextString(m) }
func (*HeaderMatch) ProtoMessage()    {}
func (*HeaderMatch) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{5}
}

func (m *HeaderMatch) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HeaderMatch.Unmarshal(m, b)
}
func (m *HeaderMatch) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HeaderMatch.Marshal(b, m, deterministic)
}
func (m *HeaderMatch) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HeaderMatch.Merge(m, src)
}
func (m *HeaderMatch) XXX_Size() int {
	return xxx_messageInfo_HeaderMatch.Size(m)
}
func (m *HeaderMatch) XXX_DiscardUnknown() {
	xxx_messageInfo_HeaderMatch.DiscardUnknown(m)
}

var xxx_messageInfo_HeaderMatch proto.InternalMessageInfo

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

func (m *HeaderMatch) GetValue() string {
	if m != nil {
		return m.Value
	}
	return ""
}

func (m *HeaderMatch) GetMatchAction() HeaderMatch_MatchAction {
	if m != nil {
		return m.MatchAction
	}
	return HeaderMatch_CONTINUE_ON_MATCH
}

func (m *HeaderMatch) GetMismatchAction() HeaderMatch_MismatchAction {
	if m != nil {
		return m.MismatchAction
	}
	return HeaderMatch_FAIL_ON_MISMATCH
}

// An HTTP network policy rule, as a conjunction of predicates on HTTP requests.
// If all the predicates of a rule match an HTTP request, the request is allowed. Otherwise, it is
// denied.
type HttpNetworkPolicyRule struct {
	// A set of matchers on the HTTP request's headers' names and values.
	// If all the matchers in this set match an HTTP request, the request is allowed by this rule.
	// Otherwise, it is denied.
	//
	// Some special header names are:
	//
	// * *:uri*: The HTTP request's URI.
	// * *:method*: The HTTP request's method.
	// * *:authority*: Also maps to the HTTP 1.1 *Host* header.
	//
	// Optional. If empty, matches any HTTP request.
	Headers []*route.HeaderMatcher `protobuf:"bytes,1,rep,name=headers,proto3" json:"headers,omitempty"`
	// header_matches is a set of HTTP header name and value pairs that
	// will be matched against the request headers, if all the other match requirements
	// in 'headers' are met. Each HeaderAction determines what to do when there is a match
	// or mismatch.
	//
	// Optional.
	HeaderMatches        []*HeaderMatch `protobuf:"bytes,2,rep,name=header_matches,json=headerMatches,proto3" json:"header_matches,omitempty"`
	XXX_NoUnkeyedLiteral struct{}       `json:"-"`
	XXX_unrecognized     []byte         `json:"-"`
	XXX_sizecache        int32          `json:"-"`
}

func (m *HttpNetworkPolicyRule) Reset()         { *m = HttpNetworkPolicyRule{} }
func (m *HttpNetworkPolicyRule) String() string { return proto.CompactTextString(m) }
func (*HttpNetworkPolicyRule) ProtoMessage()    {}
func (*HttpNetworkPolicyRule) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{6}
}

func (m *HttpNetworkPolicyRule) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_HttpNetworkPolicyRule.Unmarshal(m, b)
}
func (m *HttpNetworkPolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_HttpNetworkPolicyRule.Marshal(b, m, deterministic)
}
func (m *HttpNetworkPolicyRule) XXX_Merge(src proto.Message) {
	xxx_messageInfo_HttpNetworkPolicyRule.Merge(m, src)
}
func (m *HttpNetworkPolicyRule) XXX_Size() int {
	return xxx_messageInfo_HttpNetworkPolicyRule.Size(m)
}
func (m *HttpNetworkPolicyRule) XXX_DiscardUnknown() {
	xxx_messageInfo_HttpNetworkPolicyRule.DiscardUnknown(m)
}

var xxx_messageInfo_HttpNetworkPolicyRule proto.InternalMessageInfo

func (m *HttpNetworkPolicyRule) GetHeaders() []*route.HeaderMatcher {
	if m != nil {
		return m.Headers
	}
	return nil
}

func (m *HttpNetworkPolicyRule) GetHeaderMatches() []*HeaderMatch {
	if m != nil {
		return m.HeaderMatches
	}
	return nil
}

// A set of network policy rules that match Kafka requests.
type KafkaNetworkPolicyRules struct {
	// The set of Kafka network policy rules.
	// A Kafka request is matched if any of its rules matches the request.
	// Required and may not be empty.
	KafkaRules           []*KafkaNetworkPolicyRule `protobuf:"bytes,1,rep,name=kafka_rules,json=kafkaRules,proto3" json:"kafka_rules,omitempty"`
	XXX_NoUnkeyedLiteral struct{}                  `json:"-"`
	XXX_unrecognized     []byte                    `json:"-"`
	XXX_sizecache        int32                     `json:"-"`
}

func (m *KafkaNetworkPolicyRules) Reset()         { *m = KafkaNetworkPolicyRules{} }
func (m *KafkaNetworkPolicyRules) String() string { return proto.CompactTextString(m) }
func (*KafkaNetworkPolicyRules) ProtoMessage()    {}
func (*KafkaNetworkPolicyRules) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{7}
}

func (m *KafkaNetworkPolicyRules) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_KafkaNetworkPolicyRules.Unmarshal(m, b)
}
func (m *KafkaNetworkPolicyRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_KafkaNetworkPolicyRules.Marshal(b, m, deterministic)
}
func (m *KafkaNetworkPolicyRules) XXX_Merge(src proto.Message) {
	xxx_messageInfo_KafkaNetworkPolicyRules.Merge(m, src)
}
func (m *KafkaNetworkPolicyRules) XXX_Size() int {
	return xxx_messageInfo_KafkaNetworkPolicyRules.Size(m)
}
func (m *KafkaNetworkPolicyRules) XXX_DiscardUnknown() {
	xxx_messageInfo_KafkaNetworkPolicyRules.DiscardUnknown(m)
}

var xxx_messageInfo_KafkaNetworkPolicyRules proto.InternalMessageInfo

func (m *KafkaNetworkPolicyRules) GetKafkaRules() []*KafkaNetworkPolicyRule {
	if m != nil {
		return m.KafkaRules
	}
	return nil
}

// A Kafka network policy rule, as a conjunction of predicates on Kafka requests.
// If all the predicates of a rule match a Kafka request, the request is allowed. Otherwise, it is
// denied.
type KafkaNetworkPolicyRule struct {
	// The Kafka request's API key.
	// If <0, all Kafka requests are matched by this predicate.
	ApiKey int32 `protobuf:"varint,1,opt,name=api_key,json=apiKey,proto3" json:"api_key,omitempty"`
	// The Kafka request's API version.
	// If <0, all Kafka requests are matched by this predicate.
	ApiVersion int32 `protobuf:"varint,2,opt,name=api_version,json=apiVersion,proto3" json:"api_version,omitempty"`
	// The Kafka request's topic.
	// Optional. If not specified, all Kafka requests are matched by this predicate.
	// If specified, this predicates only matches requests that contain this topic, and never
	// matches requests that don't contain any topic.
	Topic string `protobuf:"bytes,3,opt,name=topic,proto3" json:"topic,omitempty"`
	// The Kafka request's client ID.
	// Optional. If not specified, all Kafka requests are matched by this predicate.
	// If specified, this predicates only matches requests that contain this client ID, and never
	// matches requests that don't contain any client ID.
	ClientId             string   `protobuf:"bytes,4,opt,name=client_id,json=clientId,proto3" json:"client_id,omitempty"`
	XXX_NoUnkeyedLiteral struct{} `json:"-"`
	XXX_unrecognized     []byte   `json:"-"`
	XXX_sizecache        int32    `json:"-"`
}

func (m *KafkaNetworkPolicyRule) Reset()         { *m = KafkaNetworkPolicyRule{} }
func (m *KafkaNetworkPolicyRule) String() string { return proto.CompactTextString(m) }
func (*KafkaNetworkPolicyRule) ProtoMessage()    {}
func (*KafkaNetworkPolicyRule) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{8}
}

func (m *KafkaNetworkPolicyRule) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_KafkaNetworkPolicyRule.Unmarshal(m, b)
}
func (m *KafkaNetworkPolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_KafkaNetworkPolicyRule.Marshal(b, m, deterministic)
}
func (m *KafkaNetworkPolicyRule) XXX_Merge(src proto.Message) {
	xxx_messageInfo_KafkaNetworkPolicyRule.Merge(m, src)
}
func (m *KafkaNetworkPolicyRule) XXX_Size() int {
	return xxx_messageInfo_KafkaNetworkPolicyRule.Size(m)
}
func (m *KafkaNetworkPolicyRule) XXX_DiscardUnknown() {
	xxx_messageInfo_KafkaNetworkPolicyRule.DiscardUnknown(m)
}

var xxx_messageInfo_KafkaNetworkPolicyRule proto.InternalMessageInfo

func (m *KafkaNetworkPolicyRule) GetApiKey() int32 {
	if m != nil {
		return m.ApiKey
	}
	return 0
}

func (m *KafkaNetworkPolicyRule) GetApiVersion() int32 {
	if m != nil {
		return m.ApiVersion
	}
	return 0
}

func (m *KafkaNetworkPolicyRule) GetTopic() string {
	if m != nil {
		return m.Topic
	}
	return ""
}

func (m *KafkaNetworkPolicyRule) GetClientId() string {
	if m != nil {
		return m.ClientId
	}
	return ""
}

// A set of network policy rules that match generic L7 requests.
type L7NetworkPolicyRules struct {
	// The set of generic key-value pair policy rules.
	// A request is matched if any of these rules matches the request.
	// Required and may not be empty.
	L7Rules              []*L7NetworkPolicyRule `protobuf:"bytes,1,rep,name=l7_rules,json=l7Rules,proto3" json:"l7_rules,omitempty"`
	XXX_NoUnkeyedLiteral struct{}               `json:"-"`
	XXX_unrecognized     []byte                 `json:"-"`
	XXX_sizecache        int32                  `json:"-"`
}

func (m *L7NetworkPolicyRules) Reset()         { *m = L7NetworkPolicyRules{} }
func (m *L7NetworkPolicyRules) String() string { return proto.CompactTextString(m) }
func (*L7NetworkPolicyRules) ProtoMessage()    {}
func (*L7NetworkPolicyRules) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{9}
}

func (m *L7NetworkPolicyRules) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_L7NetworkPolicyRules.Unmarshal(m, b)
}
func (m *L7NetworkPolicyRules) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_L7NetworkPolicyRules.Marshal(b, m, deterministic)
}
func (m *L7NetworkPolicyRules) XXX_Merge(src proto.Message) {
	xxx_messageInfo_L7NetworkPolicyRules.Merge(m, src)
}
func (m *L7NetworkPolicyRules) XXX_Size() int {
	return xxx_messageInfo_L7NetworkPolicyRules.Size(m)
}
func (m *L7NetworkPolicyRules) XXX_DiscardUnknown() {
	xxx_messageInfo_L7NetworkPolicyRules.DiscardUnknown(m)
}

var xxx_messageInfo_L7NetworkPolicyRules proto.InternalMessageInfo

func (m *L7NetworkPolicyRules) GetL7Rules() []*L7NetworkPolicyRule {
	if m != nil {
		return m.L7Rules
	}
	return nil
}

// A generic L7 policy rule, as a conjunction of predicates on l7 requests.
// If all the predicates of a rule match a request, the request is allowed. Otherwise, it is
// denied.
type L7NetworkPolicyRule struct {
	// Optional. If empty, matches any request.
	Rule                 map[string]string `protobuf:"bytes,1,rep,name=rule,proto3" json:"rule,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
	XXX_unrecognized     []byte            `json:"-"`
	XXX_sizecache        int32             `json:"-"`
}

func (m *L7NetworkPolicyRule) Reset()         { *m = L7NetworkPolicyRule{} }
func (m *L7NetworkPolicyRule) String() string { return proto.CompactTextString(m) }
func (*L7NetworkPolicyRule) ProtoMessage()    {}
func (*L7NetworkPolicyRule) Descriptor() ([]byte, []int) {
	return fileDescriptor_c04d25916f7381d1, []int{10}
}

func (m *L7NetworkPolicyRule) XXX_Unmarshal(b []byte) error {
	return xxx_messageInfo_L7NetworkPolicyRule.Unmarshal(m, b)
}
func (m *L7NetworkPolicyRule) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
	return xxx_messageInfo_L7NetworkPolicyRule.Marshal(b, m, deterministic)
}
func (m *L7NetworkPolicyRule) XXX_Merge(src proto.Message) {
	xxx_messageInfo_L7NetworkPolicyRule.Merge(m, src)
}
func (m *L7NetworkPolicyRule) XXX_Size() int {
	return xxx_messageInfo_L7NetworkPolicyRule.Size(m)
}
func (m *L7NetworkPolicyRule) XXX_DiscardUnknown() {
	xxx_messageInfo_L7NetworkPolicyRule.DiscardUnknown(m)
}

var xxx_messageInfo_L7NetworkPolicyRule proto.InternalMessageInfo

func (m *L7NetworkPolicyRule) GetRule() map[string]string {
	if m != nil {
		return m.Rule
	}
	return nil
}

func init() {
	proto.RegisterEnum("cilium.HeaderMatch_MatchAction", HeaderMatch_MatchAction_name, HeaderMatch_MatchAction_value)
	proto.RegisterEnum("cilium.HeaderMatch_MismatchAction", HeaderMatch_MismatchAction_name, HeaderMatch_MismatchAction_value)
	proto.RegisterType((*NetworkPolicy)(nil), "cilium.NetworkPolicy")
	proto.RegisterType((*PortNetworkPolicy)(nil), "cilium.PortNetworkPolicy")
	proto.RegisterType((*TLSContext)(nil), "cilium.TLSContext")
	proto.RegisterType((*PortNetworkPolicyRule)(nil), "cilium.PortNetworkPolicyRule")
	proto.RegisterType((*HttpNetworkPolicyRules)(nil), "cilium.HttpNetworkPolicyRules")
	proto.RegisterType((*HeaderMatch)(nil), "cilium.HeaderMatch")
	proto.RegisterType((*HttpNetworkPolicyRule)(nil), "cilium.HttpNetworkPolicyRule")
	proto.RegisterType((*KafkaNetworkPolicyRules)(nil), "cilium.KafkaNetworkPolicyRules")
	proto.RegisterType((*KafkaNetworkPolicyRule)(nil), "cilium.KafkaNetworkPolicyRule")
	proto.RegisterType((*L7NetworkPolicyRules)(nil), "cilium.L7NetworkPolicyRules")
	proto.RegisterType((*L7NetworkPolicyRule)(nil), "cilium.L7NetworkPolicyRule")
	proto.RegisterMapType((map[string]string)(nil), "cilium.L7NetworkPolicyRule.RuleEntry")
}

func init() { proto.RegisterFile("cilium/api/npds.proto", fileDescriptor_c04d25916f7381d1) }

var fileDescriptor_c04d25916f7381d1 = []byte{
	// 1210 bytes of a gzipped FileDescriptorProto
	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xac, 0x56, 0x41, 0x73, 0xdb, 0x44,
	0x14, 0xae, 0x64, 0x39, 0x8e, 0x9f, 0x1b, 0x37, 0xd9, 0xd8, 0x8e, 0x9a, 0x36, 0x89, 0x2b, 0x60,
	0x26, 0x2d, 0xc4, 0x6e, 0xdd, 0x61, 0x4c, 0xc3, 0x01, 0x2c, 0xc7, 0x9d, 0x64, 0xea, 0xa6, 0x1e,
	0xc5, 0x30, 0x0c, 0x0c, 0x15, 0x8b, 0xb4, 0xad, 0x35, 0x96, 0x25, 0xb1, 0x5a, 0xbb, 0x98, 0x63,
	0x0f, 0xcc, 0xc0, 0x89, 0xa1, 0x33, 0x9c, 0x38, 0x31, 0x1c, 0x38, 0xf1, 0x07, 0xe0, 0x5f, 0xf0,
	0x17, 0xf8, 0x07, 0xdc, 0x72, 0x29, 0xa3, 0x95, 0x64, 0x4b, 0x53, 0xa5, 0x5c, 0xb8, 0x68, 0x76,
	0xdf, 0x7b, 0xdf, 0xb7, 0xbb, 0xdf, 0x7b, 0xfb, 0x56, 0x50, 0x35, 0x2c, 0xdb, 0x9a, 0x4e, 0x9a,
	0xd8, 0xb3, 0x9a, 0x8e, 0x67, 0xfa, 0x0d, 0x8f, 0xba, 0xcc, 0x45, 0x2b, 0xa1, 0x79, 0x7b, 0x8f,
	0x38, 0x33, 0x77, 0xce, 0xbd, 0xb3, 0x56, 0xd3, 0x70, 0x29, 0x69, 0x62, 0xd3, 0xa4, 0xc4, 0x8f,
	0x02, 0xb7, 0xaf, 0xa7, 0x02, 0x4c, 0xcb, 0x37, 0xdc, 0x19, 0xa1, 0xf3, 0xc8, 0xbb, 0x9b, 0xf2,
	0x52, 0x77, 0xca, 0x48, 0xf8, 0x8d, 0xd1, 0x4f, 0x5d, 0xf7, 0xa9, 0x4d, 0x78, 0x00, 0x76, 0x1c,
	0x97, 0x61, 0x66, 0xb9, 0x4e, 0xcc, 0x5d, 0x8f, 0xd0, 0x4b, 0x47, 0x93, 0x12, 0xdf, 0x9d, 0x52,
	0x23, 0xc6, 0x6f, 0xcd, 0xb0, 0x6d, 0x99, 0x98, 0x91, 0x66, 0x3c, 0x08, 0x1d, 0xca, 0x0b, 0x11,
	0xd6, 0x4e, 0x09, 0x7b, 0xe6, 0xd2, 0xf1, 0xc0, 0xb5, 0x2d, 0x63, 0x8e, 0x10, 0x48, 0x0e, 0x9e,
	0x10, 0x59, 0xa8, 0x0b, 0xfb, 0x45, 0x8d, 0x8f, 0x51, 0x0d, 0x56, 0x3c, 0xee, 0x95, 0xc5, 0xba,
	0xb0, 0x2f, 0x69, 0xd1, 0x0c, 0x0d, 0xe1, 0xaa, 0xe5, 0x3c, 0x0d, 0x4e, 0xa9, 0x7b, 0x84, 0xea,
	0x9e, 0x4b, 0x99, 0xce, 0x5d, 0x16, 0xf1, 0xe5, 0x5c, 0x3d, 0xb7, 0x5f, 0x6a, 0x5d, 0x6d, 0x84,
	0x0a, 0x35, 0x06, 0x2e, 0x65, 0xa9, 0x95, 0xb4, 0x5a, 0x84, 0x1d, 0x10, 0x1a, 0x38, 0x07, 0x11,
	0x10, 0x69, 0x20, 0x93, 0x8b, 0x48, 0xa5, 0xff, 0x22, 0xad, 0x92, 0x4c, 0xce, 0x77, 0x00, 0x19,
	0xae, 0xe3, 0x30, 0x8a, 0x8d, 0xb1, 0x3e, 0xc1, 0x9e, 0xce, 0xcf, 0x98, 0xe7, 0x67, 0x5c, 0x5f,
	0x78, 0x1e, 0x62, 0xef, 0x14, 0x4f, 0x88, 0xf2, 0xbb, 0x00, 0x1b, 0xaf, 0x50, 0xa3, 0x1d, 0x90,
	0x82, 0xcd, 0x70, 0x65, 0xd6, 0xd4, 0xe2, 0xb9, 0xba, 0x72, 0x4b, 0x92, 0x5f, 0xbe, 0xcc, 0x69,
	0xdc, 0x8c, 0x7a, 0xb0, 0xca, 0x35, 0x35, 0x5c, 0x9b, 0xcb, 0x54, 0x6e, 0xdd, 0x6c, 0xf0, 0xc4,
	0x34, 0xb0, 0x67, 0x35, 0x66, 0xad, 0x46, 0x50, 0x15, 0x8d, 0x33, 0xd7, 0x18, 0x13, 0xd6, 0x89,
	0x6a, 0x63, 0x10, 0x01, 0xb4, 0x05, 0x14, 0xdd, 0x85, 0x3c, 0x9d, 0xda, 0x0b, 0xfd, 0x76, 0x2e,
	0x3e, 0xea, 0xd4, 0x26, 0x5a, 0x18, 0xab, 0xfc, 0x2c, 0x00, 0x0c, 0xfb, 0x67, 0x5d, 0xd7, 0x61,
	0xe4, 0x6b, 0x86, 0x76, 0x00, 0x18, 0x9d, 0xfa, 0x8c, 0x98, 0xba, 0x81, 0xa3, 0x4c, 0x16, 0x23,
	0x4b, 0x17, 0xa3, 0xb7, 0x61, 0xc3, 0x20, 0x94, 0x59, 0x4f, 0x2c, 0x03, 0x33, 0xa2, 0x1b, 0x23,
	0x6c, 0x39, 0x7c, 0xcb, 0x81, 0x16, 0x4b, 0x47, 0x37, 0xb0, 0xa3, 0x3d, 0x28, 0x79, 0xd4, 0x9a,
	0x05, 0x81, 0x63, 0x32, 0x97, 0x73, 0x3c, 0x0c, 0x22, 0xd3, 0x03, 0x32, 0x47, 0x37, 0xe0, 0xb2,
	0x4f, 0xe8, 0x8c, 0x50, 0xae, 0x69, 0x98, 0xa2, 0xa2, 0x56, 0x0a, 0x6d, 0x81, 0x9c, 0xbe, 0xf2,
	0x47, 0x0e, 0xaa, 0x99, 0xfb, 0x47, 0x77, 0xe0, 0x0a, 0x25, 0x13, 0x97, 0x91, 0x65, 0x8a, 0x85,
	0x7a, 0x6e, 0x5f, 0x52, 0x57, 0xcf, 0xd5, 0xfc, 0x8f, 0x82, 0x28, 0x0b, 0x5a, 0x39, 0x0c, 0x58,
	0xa4, 0xf2, 0x18, 0x6a, 0xa6, 0xfb, 0xcc, 0xf1, 0x19, 0x25, 0x78, 0xa2, 0x33, 0xdb, 0xd7, 0x8d,
	0xf0, 0xd8, 0x7c, 0x6f, 0xa5, 0x16, 0x8a, 0x15, 0x5b, 0x0a, 0xa2, 0x55, 0x96, 0x88, 0xa1, 0xed,
	0xc7, 0x32, 0x1d, 0x41, 0x65, 0xea, 0x65, 0xf0, 0x48, 0x17, 0xf2, 0xa0, 0x38, 0x3e, 0xc1, 0x72,
	0x15, 0x56, 0xed, 0xb6, 0xce, 0xf3, 0x17, 0x89, 0x58, 0xb0, 0xdb, 0x3c, 0xb1, 0xe8, 0x03, 0x80,
	0x11, 0x63, 0x9e, 0x1e, 0x26, 0xd4, 0xe4, 0xb4, 0xbb, 0x31, 0xed, 0x31, 0x63, 0xde, 0x2b, 0x82,
	0xf8, 0xc7, 0x97, 0xb4, 0x62, 0x80, 0xe1, 0x13, 0xa4, 0x42, 0x69, 0x8c, 0x9f, 0x8c, 0x71, 0xc4,
	0x40, 0x38, 0xc3, 0x5e, 0xcc, 0xf0, 0x20, 0x70, 0x65, 0x52, 0x00, 0x47, 0x85, 0x1c, 0xf7, 0xf8,
	0xfe, 0x42, 0x82, 0x27, 0x9c, 0xe0, 0x7a, 0x4c, 0xd0, 0x6f, 0x67, 0xa2, 0x0b, 0x76, 0x9b, 0x0f,
	0x55, 0x09, 0x44, 0xbb, 0xad, 0x7c, 0x01, 0xb5, 0xec, 0xbd, 0xa2, 0xfb, 0xa9, 0xf3, 0x09, 0xe9,
	0x82, 0xcd, 0xc4, 0xc4, 0x79, 0x5d, 0x15, 0x12, 0xc7, 0x54, 0x7e, 0xcb, 0x41, 0xe9, 0x98, 0x60,
	0x93, 0xd0, 0x87, 0x98, 0x19, 0x23, 0x74, 0x2d, 0xd9, 0x83, 0xd4, 0xc2, 0xb9, 0x2a, 0x51, 0xb1,
	0x2e, 0x44, 0xcd, 0xa8, 0x02, 0xf9, 0x19, 0xb6, 0xa7, 0x24, 0x12, 0x3b, 0x9c, 0x20, 0x15, 0x2e,
	0x4f, 0x02, 0xac, 0x8e, 0x8d, 0xa0, 0x03, 0xf2, 0x5a, 0x28, 0x2f, 0xa5, 0x4a, 0xb0, 0x37, 0xf8,
	0xb7, 0xc3, 0xc3, 0xb4, 0xd2, 0x64, 0x39, 0x41, 0x0f, 0xe0, 0xca, 0xc4, 0xf2, 0x53, 0x34, 0x12,
	0xa7, 0x51, 0x32, 0x69, 0xa2, 0xd0, 0x88, 0xa9, 0x3c, 0x49, 0xcd, 0x95, 0x3e, 0x94, 0x12, 0x0b,
	0xa1, 0x2a, 0x6c, 0x74, 0x1f, 0x9d, 0x0e, 0x4f, 0x4e, 0x3f, 0xea, 0xe9, 0x8f, 0x4e, 0xf5, 0x87,
	0x9d, 0x61, 0xf7, 0x78, 0xfd, 0x12, 0xda, 0x80, 0xb5, 0xfb, 0x9d, 0x93, 0xfe, 0xd2, 0x24, 0xa0,
	0x4d, 0xb8, 0x72, 0xd4, 0xeb, 0xf7, 0x86, 0x89, 0x38, 0x51, 0xf9, 0x56, 0x80, 0x72, 0x7a, 0x41,
	0x54, 0x81, 0xf5, 0x05, 0xf4, 0xe4, 0x2c, 0x26, 0x94, 0xa1, 0x92, 0x5a, 0x27, 0xf6, 0x70, 0xde,
	0xce, 0xd1, 0x51, 0xca, 0x28, 0xa2, 0x1a, 0xa0, 0xc4, 0x62, 0xb1, 0x3d, 0x87, 0xb6, 0x60, 0x53,
	0xeb, 0x0d, 0xfa, 0x9d, 0x6e, 0xda, 0x21, 0x29, 0x3f, 0x08, 0x50, 0xcd, 0xcc, 0x2c, 0x7a, 0x1f,
	0x0a, 0x23, 0x2e, 0x4f, 0x5c, 0x09, 0x37, 0xd2, 0xed, 0x2f, 0x7c, 0xcf, 0x12, 0x0a, 0x12, 0xaa,
	0xc5, 0x08, 0x74, 0x08, 0xe5, 0x70, 0xa8, 0xf3, 0x23, 0x12, 0x5f, 0x16, 0x39, 0xc7, 0x66, 0x86,
	0xf2, 0xda, 0xda, 0x28, 0x41, 0xe2, 0x2b, 0x26, 0x6c, 0x5d, 0x70, 0x13, 0xd0, 0x49, 0xfa, 0xfe,
	0x84, 0xfb, 0xda, 0x7d, 0xfd, 0xfd, 0x49, 0x94, 0x68, 0xe2, 0x1a, 0x29, 0x7f, 0x0a, 0x50, 0xcb,
	0x06, 0xa0, 0x2d, 0x28, 0x60, 0xcf, 0xe2, 0xed, 0x31, 0xa8, 0xd8, 0xbc, 0xb6, 0x82, 0x3d, 0x2b,
	0x68, 0x8d, 0x7b, 0x50, 0x0a, 0x1c, 0x33, 0x42, 0xfd, 0xa0, 0x98, 0x44, 0xee, 0x04, 0xec, 0x59,
	0x1f, 0x87, 0x16, 0x74, 0x07, 0xf2, 0xcc, 0xf5, 0x2c, 0x23, 0x6c, 0xab, 0xea, 0xb5, 0x73, 0x55,
	0xa6, 0x35, 0xf9, 0xa5, 0xd0, 0xda, 0x78, 0xfc, 0x19, 0x3e, 0xf8, 0xa6, 0x73, 0xf0, 0xe9, 0xed,
	0x83, 0x7b, 0x0d, 0xfd, 0xe0, 0xf3, 0x5b, 0x6f, 0x6a, 0x61, 0x24, 0x7a, 0x17, 0x8a, 0x86, 0x6d,
	0x11, 0x87, 0xe9, 0x96, 0xc9, 0xcb, 0xb3, 0xa8, 0xca, 0xe7, 0x6a, 0x95, 0x6e, 0x66, 0x61, 0x56,
	0xc3, 0xd0, 0x13, 0x53, 0xf9, 0x04, 0x2a, 0x59, 0xb7, 0x1d, 0x7d, 0x98, 0xe8, 0x0e, 0xa1, 0x3c,
	0xd7, 0x5e, 0xd3, 0x1d, 0x12, 0xda, 0xc4, 0x4d, 0x42, 0xf9, 0x4e, 0x80, 0xcd, 0x8c, 0x50, 0x74,
	0x0f, 0xa4, 0x80, 0x36, 0x62, 0x7d, 0xeb, 0x35, 0xac, 0x8d, 0xe0, 0xd3, 0x73, 0x18, 0x9d, 0x6b,
	0x1c, 0xb2, 0xdd, 0x86, 0xe2, 0xc2, 0x84, 0xd6, 0x21, 0x17, 0x2b, 0x5b, 0xd4, 0x82, 0x61, 0x76,
	0x07, 0x38, 0x14, 0xdf, 0x13, 0x5a, 0xbf, 0x88, 0xb0, 0x93, 0xa2, 0x3f, 0x8a, 0x7f, 0xb4, 0xce,
	0x08, 0x9d, 0x59, 0x06, 0x41, 0x8f, 0xa1, 0x7a, 0xc6, 0x3b, 0x78, 0x32, 0x2c, 0x78, 0x56, 0x76,
	0xd3, 0xd5, 0xba, 0x00, 0x6a, 0xe4, 0xab, 0x29, 0xf1, 0xd9, 0xf6, 0xde, 0x85, 0x7e, 0xdf, 0x73,
	0x1d, 0x9f, 0x28, 0x97, 0xf6, 0x85, 0xdb, 0x02, 0x7a, 0x2e, 0x40, 0xe5, 0x3e, 0x61, 0xc6, 0xe8,
	0x7f, 0xe7, 0xbf, 0xf9, 0xfc, 0xaf, 0xbf, 0x5f, 0x88, 0x6f, 0x28, 0xbb, 0xa9, 0x1f, 0xc8, 0x43,
	0x27, 0x5c, 0x67, 0xf1, 0x7e, 0x1e, 0x0a, 0xb7, 0xb6, 0xaf, 0x7f, 0xff, 0xeb, 0x4f, 0xff, 0x14,
	0x6a, 0x50, 0x89, 0x34, 0x4f, 0x49, 0xf2, 0xe5, 0x0a, 0x7f, 0xab, 0xee, 0xfe, 0x1b, 0x00, 0x00,
	0xff, 0xff, 0xef, 0xee, 0xcc, 0xd9, 0xd3, 0x0a, 0x00, 0x00,
}

// Reference imports to suppress errors if they are not otherwise used.
var _ context.Context
var _ grpc.ClientConn

// This is a compile-time assertion to ensure that this generated file
// is compatible with the grpc package it is being compiled against.
const _ = grpc.SupportPackageIsVersion4

// NetworkPolicyDiscoveryServiceClient is the client API for NetworkPolicyDiscoveryService service.
//
// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
type NetworkPolicyDiscoveryServiceClient interface {
	StreamNetworkPolicies(ctx context.Context, opts ...grpc.CallOption) (NetworkPolicyDiscoveryService_StreamNetworkPoliciesClient, error)
	FetchNetworkPolicies(ctx context.Context, in *v2.DiscoveryRequest, opts ...grpc.CallOption) (*v2.DiscoveryResponse, error)
}

type networkPolicyDiscoveryServiceClient struct {
	cc *grpc.ClientConn
}

func NewNetworkPolicyDiscoveryServiceClient(cc *grpc.ClientConn) NetworkPolicyDiscoveryServiceClient {
	return &networkPolicyDiscoveryServiceClient{cc}
}

func (c *networkPolicyDiscoveryServiceClient) StreamNetworkPolicies(ctx context.Context, opts ...grpc.CallOption) (NetworkPolicyDiscoveryService_StreamNetworkPoliciesClient, error) {
	stream, err := c.cc.NewStream(ctx, &_NetworkPolicyDiscoveryService_serviceDesc.Streams[0], "/cilium.NetworkPolicyDiscoveryService/StreamNetworkPolicies", opts...)
	if err != nil {
		return nil, err
	}
	x := &networkPolicyDiscoveryServiceStreamNetworkPoliciesClient{stream}
	return x, nil
}

type NetworkPolicyDiscoveryService_StreamNetworkPoliciesClient interface {
	Send(*v2.DiscoveryRequest) error
	Recv() (*v2.DiscoveryResponse, error)
	grpc.ClientStream
}

type networkPolicyDiscoveryServiceStreamNetworkPoliciesClient struct {
	grpc.ClientStream
}

func (x *networkPolicyDiscoveryServiceStreamNetworkPoliciesClient) Send(m *v2.DiscoveryRequest) error {
	return x.ClientStream.SendMsg(m)
}

func (x *networkPolicyDiscoveryServiceStreamNetworkPoliciesClient) Recv() (*v2.DiscoveryResponse, error) {
	m := new(v2.DiscoveryResponse)
	if err := x.ClientStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func (c *networkPolicyDiscoveryServiceClient) FetchNetworkPolicies(ctx context.Context, in *v2.DiscoveryRequest, opts ...grpc.CallOption) (*v2.DiscoveryResponse, error) {
	out := new(v2.DiscoveryResponse)
	err := c.cc.Invoke(ctx, "/cilium.NetworkPolicyDiscoveryService/FetchNetworkPolicies", in, out, opts...)
	if err != nil {
		return nil, err
	}
	return out, nil
}

// NetworkPolicyDiscoveryServiceServer is the server API for NetworkPolicyDiscoveryService service.
type NetworkPolicyDiscoveryServiceServer interface {
	StreamNetworkPolicies(NetworkPolicyDiscoveryService_StreamNetworkPoliciesServer) error
	FetchNetworkPolicies(context.Context, *v2.DiscoveryRequest) (*v2.DiscoveryResponse, error)
}

// UnimplementedNetworkPolicyDiscoveryServiceServer can be embedded to have forward compatible implementations.
type UnimplementedNetworkPolicyDiscoveryServiceServer struct {
}

func (*UnimplementedNetworkPolicyDiscoveryServiceServer) StreamNetworkPolicies(srv NetworkPolicyDiscoveryService_StreamNetworkPoliciesServer) error {
	return status.Errorf(codes.Unimplemented, "method StreamNetworkPolicies not implemented")
}
func (*UnimplementedNetworkPolicyDiscoveryServiceServer) FetchNetworkPolicies(ctx context.Context, req *v2.DiscoveryRequest) (*v2.DiscoveryResponse, error) {
	return nil, status.Errorf(codes.Unimplemented, "method FetchNetworkPolicies not implemented")
}

func RegisterNetworkPolicyDiscoveryServiceServer(s *grpc.Server, srv NetworkPolicyDiscoveryServiceServer) {
	s.RegisterService(&_NetworkPolicyDiscoveryService_serviceDesc, srv)
}

func _NetworkPolicyDiscoveryService_StreamNetworkPolicies_Handler(srv interface{}, stream grpc.ServerStream) error {
	return srv.(NetworkPolicyDiscoveryServiceServer).StreamNetworkPolicies(&networkPolicyDiscoveryServiceStreamNetworkPoliciesServer{stream})
}

type NetworkPolicyDiscoveryService_StreamNetworkPoliciesServer interface {
	Send(*v2.DiscoveryResponse) error
	Recv() (*v2.DiscoveryRequest, error)
	grpc.ServerStream
}

type networkPolicyDiscoveryServiceStreamNetworkPoliciesServer struct {
	grpc.ServerStream
}

func (x *networkPolicyDiscoveryServiceStreamNetworkPoliciesServer) Send(m *v2.DiscoveryResponse) error {
	return x.ServerStream.SendMsg(m)
}

func (x *networkPolicyDiscoveryServiceStreamNetworkPoliciesServer) Recv() (*v2.DiscoveryRequest, error) {
	m := new(v2.DiscoveryRequest)
	if err := x.ServerStream.RecvMsg(m); err != nil {
		return nil, err
	}
	return m, nil
}

func _NetworkPolicyDiscoveryService_FetchNetworkPolicies_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
	in := new(v2.DiscoveryRequest)
	if err := dec(in); err != nil {
		return nil, err
	}
	if interceptor == nil {
		return srv.(NetworkPolicyDiscoveryServiceServer).FetchNetworkPolicies(ctx, in)
	}
	info := &grpc.UnaryServerInfo{
		Server:     srv,
		FullMethod: "/cilium.NetworkPolicyDiscoveryService/FetchNetworkPolicies",
	}
	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
		return srv.(NetworkPolicyDiscoveryServiceServer).FetchNetworkPolicies(ctx, req.(*v2.DiscoveryRequest))
	}
	return interceptor(ctx, in, info, handler)
}

var _NetworkPolicyDiscoveryService_serviceDesc = grpc.ServiceDesc{
	ServiceName: "cilium.NetworkPolicyDiscoveryService",
	HandlerType: (*NetworkPolicyDiscoveryServiceServer)(nil),
	Methods: []grpc.MethodDesc{
		{
			MethodName: "FetchNetworkPolicies",
			Handler:    _NetworkPolicyDiscoveryService_FetchNetworkPolicies_Handler,
		},
	},
	Streams: []grpc.StreamDesc{
		{
			StreamName:    "StreamNetworkPolicies",
			Handler:       _NetworkPolicyDiscoveryService_StreamNetworkPolicies_Handler,
			ServerStreams: true,
			ClientStreams: true,
		},
	},
	Metadata: "cilium/api/npds.proto",
}
