github.com/matrixorigin/matrixone@v1.2.0/pkg/pb/plugin/plugin.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: plugin.proto
     3  
     4  package plugin
     5  
     6  import (
     7  	fmt "fmt"
     8  	io "io"
     9  	math "math"
    10  	math_bits "math/bits"
    11  
    12  	_ "github.com/gogo/protobuf/gogoproto"
    13  	proto "github.com/gogo/protobuf/proto"
    14  	metadata "github.com/matrixorigin/matrixone/pkg/pb/metadata"
    15  )
    16  
    17  // Reference imports to suppress errors if they are not otherwise used.
    18  var _ = proto.Marshal
    19  var _ = fmt.Errorf
    20  var _ = math.Inf
    21  
    22  // This is a compile-time assertion to ensure that this generated file
    23  // is compatible with the proto package it is being compiled against.
    24  // A compilation error at this line likely means your copy of the
    25  // proto package needs to be updated.
    26  const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
    27  
    28  type Action int32
    29  
    30  const (
    31  	Select Action = 0
    32  	Reject Action = 1
    33  	Bypass Action = 2
    34  )
    35  
    36  var Action_name = map[int32]string{
    37  	0: "Select",
    38  	1: "Reject",
    39  	2: "Bypass",
    40  }
    41  
    42  var Action_value = map[string]int32{
    43  	"Select": 0,
    44  	"Reject": 1,
    45  	"Bypass": 2,
    46  }
    47  
    48  func (x Action) String() string {
    49  	return proto.EnumName(Action_name, int32(x))
    50  }
    51  
    52  func (Action) EnumDescriptor() ([]byte, []int) {
    53  	return fileDescriptor_22a625af4bc1cc87, []int{0}
    54  }
    55  
    56  type Request struct {
    57  	RequestID            uint64      `protobuf:"varint,1,opt,name=requestID,proto3" json:"requestID,omitempty"`
    58  	ClientInfo           *ClientInfo `protobuf:"bytes,2,opt,name=clientInfo,proto3" json:"clientInfo,omitempty"`
    59  	XXX_NoUnkeyedLiteral struct{}    `json:"-"`
    60  	XXX_unrecognized     []byte      `json:"-"`
    61  	XXX_sizecache        int32       `json:"-"`
    62  }
    63  
    64  func (m *Request) Reset()         { *m = Request{} }
    65  func (m *Request) String() string { return proto.CompactTextString(m) }
    66  func (*Request) ProtoMessage()    {}
    67  func (*Request) Descriptor() ([]byte, []int) {
    68  	return fileDescriptor_22a625af4bc1cc87, []int{0}
    69  }
    70  func (m *Request) XXX_Unmarshal(b []byte) error {
    71  	return m.Unmarshal(b)
    72  }
    73  func (m *Request) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
    74  	if deterministic {
    75  		return xxx_messageInfo_Request.Marshal(b, m, deterministic)
    76  	} else {
    77  		b = b[:cap(b)]
    78  		n, err := m.MarshalToSizedBuffer(b)
    79  		if err != nil {
    80  			return nil, err
    81  		}
    82  		return b[:n], nil
    83  	}
    84  }
    85  func (m *Request) XXX_Merge(src proto.Message) {
    86  	xxx_messageInfo_Request.Merge(m, src)
    87  }
    88  func (m *Request) XXX_Size() int {
    89  	return m.Size()
    90  }
    91  func (m *Request) XXX_DiscardUnknown() {
    92  	xxx_messageInfo_Request.DiscardUnknown(m)
    93  }
    94  
    95  var xxx_messageInfo_Request proto.InternalMessageInfo
    96  
    97  func (m *Request) GetRequestID() uint64 {
    98  	if m != nil {
    99  		return m.RequestID
   100  	}
   101  	return 0
   102  }
   103  
   104  func (m *Request) GetClientInfo() *ClientInfo {
   105  	if m != nil {
   106  		return m.ClientInfo
   107  	}
   108  	return nil
   109  }
   110  
   111  type ClientInfo struct {
   112  	Tenant               string            `protobuf:"bytes,1,opt,name=tenant,proto3" json:"tenant,omitempty"`
   113  	Username             string            `protobuf:"bytes,2,opt,name=username,proto3" json:"username,omitempty"`
   114  	OriginIP             string            `protobuf:"bytes,3,opt,name=originIP,proto3" json:"originIP,omitempty"`
   115  	LabelSelector        map[string]string `protobuf:"bytes,4,rep,name=labelSelector,proto3" json:"labelSelector,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"`
   116  	XXX_NoUnkeyedLiteral struct{}          `json:"-"`
   117  	XXX_unrecognized     []byte            `json:"-"`
   118  	XXX_sizecache        int32             `json:"-"`
   119  }
   120  
   121  func (m *ClientInfo) Reset()         { *m = ClientInfo{} }
   122  func (m *ClientInfo) String() string { return proto.CompactTextString(m) }
   123  func (*ClientInfo) ProtoMessage()    {}
   124  func (*ClientInfo) Descriptor() ([]byte, []int) {
   125  	return fileDescriptor_22a625af4bc1cc87, []int{1}
   126  }
   127  func (m *ClientInfo) XXX_Unmarshal(b []byte) error {
   128  	return m.Unmarshal(b)
   129  }
   130  func (m *ClientInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   131  	if deterministic {
   132  		return xxx_messageInfo_ClientInfo.Marshal(b, m, deterministic)
   133  	} else {
   134  		b = b[:cap(b)]
   135  		n, err := m.MarshalToSizedBuffer(b)
   136  		if err != nil {
   137  			return nil, err
   138  		}
   139  		return b[:n], nil
   140  	}
   141  }
   142  func (m *ClientInfo) XXX_Merge(src proto.Message) {
   143  	xxx_messageInfo_ClientInfo.Merge(m, src)
   144  }
   145  func (m *ClientInfo) XXX_Size() int {
   146  	return m.Size()
   147  }
   148  func (m *ClientInfo) XXX_DiscardUnknown() {
   149  	xxx_messageInfo_ClientInfo.DiscardUnknown(m)
   150  }
   151  
   152  var xxx_messageInfo_ClientInfo proto.InternalMessageInfo
   153  
   154  func (m *ClientInfo) GetTenant() string {
   155  	if m != nil {
   156  		return m.Tenant
   157  	}
   158  	return ""
   159  }
   160  
   161  func (m *ClientInfo) GetUsername() string {
   162  	if m != nil {
   163  		return m.Username
   164  	}
   165  	return ""
   166  }
   167  
   168  func (m *ClientInfo) GetOriginIP() string {
   169  	if m != nil {
   170  		return m.OriginIP
   171  	}
   172  	return ""
   173  }
   174  
   175  func (m *ClientInfo) GetLabelSelector() map[string]string {
   176  	if m != nil {
   177  		return m.LabelSelector
   178  	}
   179  	return nil
   180  }
   181  
   182  type Response struct {
   183  	RequestID            uint64          `protobuf:"varint,1,opt,name=requestID,proto3" json:"requestID,omitempty"`
   184  	Recommendation       *Recommendation `protobuf:"bytes,2,opt,name=recommendation,proto3" json:"recommendation,omitempty"`
   185  	XXX_NoUnkeyedLiteral struct{}        `json:"-"`
   186  	XXX_unrecognized     []byte          `json:"-"`
   187  	XXX_sizecache        int32           `json:"-"`
   188  }
   189  
   190  func (m *Response) Reset()         { *m = Response{} }
   191  func (m *Response) String() string { return proto.CompactTextString(m) }
   192  func (*Response) ProtoMessage()    {}
   193  func (*Response) Descriptor() ([]byte, []int) {
   194  	return fileDescriptor_22a625af4bc1cc87, []int{2}
   195  }
   196  func (m *Response) XXX_Unmarshal(b []byte) error {
   197  	return m.Unmarshal(b)
   198  }
   199  func (m *Response) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   200  	if deterministic {
   201  		return xxx_messageInfo_Response.Marshal(b, m, deterministic)
   202  	} else {
   203  		b = b[:cap(b)]
   204  		n, err := m.MarshalToSizedBuffer(b)
   205  		if err != nil {
   206  			return nil, err
   207  		}
   208  		return b[:n], nil
   209  	}
   210  }
   211  func (m *Response) XXX_Merge(src proto.Message) {
   212  	xxx_messageInfo_Response.Merge(m, src)
   213  }
   214  func (m *Response) XXX_Size() int {
   215  	return m.Size()
   216  }
   217  func (m *Response) XXX_DiscardUnknown() {
   218  	xxx_messageInfo_Response.DiscardUnknown(m)
   219  }
   220  
   221  var xxx_messageInfo_Response proto.InternalMessageInfo
   222  
   223  func (m *Response) GetRequestID() uint64 {
   224  	if m != nil {
   225  		return m.RequestID
   226  	}
   227  	return 0
   228  }
   229  
   230  func (m *Response) GetRecommendation() *Recommendation {
   231  	if m != nil {
   232  		return m.Recommendation
   233  	}
   234  	return nil
   235  }
   236  
   237  type Recommendation struct {
   238  	Action               Action              `protobuf:"varint,1,opt,name=action,proto3,enum=plugin.Action" json:"action,omitempty"`
   239  	CN                   *metadata.CNService `protobuf:"bytes,2,opt,name=CN,proto3" json:"CN,omitempty"`
   240  	Message              string              `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"`
   241  	Updated              bool                `protobuf:"varint,4,opt,name=updated,proto3" json:"updated,omitempty"`
   242  	XXX_NoUnkeyedLiteral struct{}            `json:"-"`
   243  	XXX_unrecognized     []byte              `json:"-"`
   244  	XXX_sizecache        int32               `json:"-"`
   245  }
   246  
   247  func (m *Recommendation) Reset()         { *m = Recommendation{} }
   248  func (m *Recommendation) String() string { return proto.CompactTextString(m) }
   249  func (*Recommendation) ProtoMessage()    {}
   250  func (*Recommendation) Descriptor() ([]byte, []int) {
   251  	return fileDescriptor_22a625af4bc1cc87, []int{3}
   252  }
   253  func (m *Recommendation) XXX_Unmarshal(b []byte) error {
   254  	return m.Unmarshal(b)
   255  }
   256  func (m *Recommendation) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   257  	if deterministic {
   258  		return xxx_messageInfo_Recommendation.Marshal(b, m, deterministic)
   259  	} else {
   260  		b = b[:cap(b)]
   261  		n, err := m.MarshalToSizedBuffer(b)
   262  		if err != nil {
   263  			return nil, err
   264  		}
   265  		return b[:n], nil
   266  	}
   267  }
   268  func (m *Recommendation) XXX_Merge(src proto.Message) {
   269  	xxx_messageInfo_Recommendation.Merge(m, src)
   270  }
   271  func (m *Recommendation) XXX_Size() int {
   272  	return m.Size()
   273  }
   274  func (m *Recommendation) XXX_DiscardUnknown() {
   275  	xxx_messageInfo_Recommendation.DiscardUnknown(m)
   276  }
   277  
   278  var xxx_messageInfo_Recommendation proto.InternalMessageInfo
   279  
   280  func (m *Recommendation) GetAction() Action {
   281  	if m != nil {
   282  		return m.Action
   283  	}
   284  	return Select
   285  }
   286  
   287  func (m *Recommendation) GetCN() *metadata.CNService {
   288  	if m != nil {
   289  		return m.CN
   290  	}
   291  	return nil
   292  }
   293  
   294  func (m *Recommendation) GetMessage() string {
   295  	if m != nil {
   296  		return m.Message
   297  	}
   298  	return ""
   299  }
   300  
   301  func (m *Recommendation) GetUpdated() bool {
   302  	if m != nil {
   303  		return m.Updated
   304  	}
   305  	return false
   306  }
   307  
   308  func init() {
   309  	proto.RegisterEnum("plugin.Action", Action_name, Action_value)
   310  	proto.RegisterType((*Request)(nil), "plugin.Request")
   311  	proto.RegisterType((*ClientInfo)(nil), "plugin.ClientInfo")
   312  	proto.RegisterMapType((map[string]string)(nil), "plugin.ClientInfo.LabelSelectorEntry")
   313  	proto.RegisterType((*Response)(nil), "plugin.Response")
   314  	proto.RegisterType((*Recommendation)(nil), "plugin.Recommendation")
   315  }
   316  
   317  func init() { proto.RegisterFile("plugin.proto", fileDescriptor_22a625af4bc1cc87) }
   318  
   319  var fileDescriptor_22a625af4bc1cc87 = []byte{
   320  	// 455 bytes of a gzipped FileDescriptorProto
   321  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x84, 0x92, 0xc1, 0x6e, 0xd3, 0x40,
   322  	0x10, 0x86, 0xbb, 0x4e, 0x70, 0x93, 0x29, 0x58, 0xd1, 0x82, 0x2a, 0x2b, 0x42, 0x51, 0x14, 0x04,
   323  	0x8a, 0x10, 0xd8, 0x52, 0xb8, 0x20, 0x0e, 0x88, 0x36, 0x70, 0x88, 0x40, 0x11, 0xda, 0xde, 0xe0,
   324  	0xb4, 0x76, 0xa6, 0xae, 0xa9, 0xbd, 0x6b, 0xd6, 0xeb, 0x8a, 0x3c, 0x06, 0x6f, 0xc5, 0xb1, 0x8f,
   325  	0x00, 0xb9, 0xf2, 0x12, 0xc8, 0xbb, 0x76, 0x9a, 0xd0, 0x43, 0x6f, 0xff, 0xb7, 0xff, 0xec, 0xec,
   326  	0xef, 0xf1, 0xc0, 0xfd, 0x22, 0xab, 0x92, 0x54, 0x04, 0x85, 0x92, 0x5a, 0x52, 0xd7, 0xd2, 0xf0,
   327  	0x65, 0x92, 0xea, 0x8b, 0x2a, 0x0a, 0x62, 0x99, 0x87, 0x89, 0x4c, 0x64, 0x68, 0xec, 0xa8, 0x3a,
   328  	0x37, 0x64, 0xc0, 0x28, 0x7b, 0x6d, 0xe8, 0xe5, 0xa8, 0xf9, 0x8a, 0x6b, 0x6e, 0x79, 0xf2, 0x15,
   329  	0x0e, 0x19, 0x7e, 0xaf, 0xb0, 0xd4, 0xf4, 0x31, 0xf4, 0x95, 0x95, 0x8b, 0xf7, 0x3e, 0x19, 0x93,
   330  	0x69, 0x97, 0xdd, 0x1c, 0xd0, 0x19, 0x40, 0x9c, 0xa5, 0x28, 0xf4, 0x42, 0x9c, 0x4b, 0xdf, 0x19,
   331  	0x93, 0xe9, 0xd1, 0x8c, 0x06, 0x4d, 0xa4, 0xf9, 0xd6, 0x61, 0x3b, 0x55, 0x93, 0xbf, 0x04, 0xe0,
   332  	0xc6, 0xa2, 0xc7, 0xe0, 0x6a, 0x14, 0x5c, 0x68, 0xd3, 0xbd, 0xcf, 0x1a, 0xa2, 0x43, 0xe8, 0x55,
   333  	0x25, 0x2a, 0xc1, 0x73, 0x34, 0x8d, 0xfb, 0x6c, 0xcb, 0xb5, 0x27, 0x55, 0x9a, 0xa4, 0x62, 0xf1,
   334  	0xd9, 0xef, 0x58, 0xaf, 0x65, 0xfa, 0x11, 0x1e, 0x64, 0x3c, 0xc2, 0xec, 0x0c, 0x33, 0x8c, 0xb5,
   335  	0x54, 0x7e, 0x77, 0xdc, 0x99, 0x1e, 0xcd, 0x9e, 0xde, 0x4e, 0x15, 0x7c, 0xda, 0xad, 0xfb, 0x20,
   336  	0xb4, 0x5a, 0xb3, 0xfd, 0xbb, 0xc3, 0x77, 0x40, 0x6f, 0x17, 0xd1, 0x01, 0x74, 0x2e, 0x71, 0xdd,
   337  	0xe4, 0xad, 0x25, 0x7d, 0x04, 0xf7, 0xae, 0x78, 0x56, 0xb5, 0x49, 0x2d, 0xbc, 0x71, 0x5e, 0x93,
   338  	0xc9, 0x05, 0xf4, 0x18, 0x96, 0x85, 0x14, 0x25, 0xde, 0x31, 0xcb, 0xb7, 0xe0, 0x29, 0x8c, 0x65,
   339  	0x9e, 0xa3, 0x58, 0x71, 0x9d, 0x4a, 0xd1, 0xcc, 0xf3, 0xb8, 0x4d, 0xce, 0xf6, 0x5c, 0xf6, 0x5f,
   340  	0xf5, 0xe4, 0x27, 0x01, 0x6f, 0xbf, 0x84, 0x3e, 0x03, 0x97, 0xc7, 0xa6, 0x55, 0xfd, 0x9a, 0x37,
   341  	0xf3, 0xda, 0x56, 0x27, 0xe6, 0x94, 0x35, 0x2e, 0x7d, 0x02, 0xce, 0x7c, 0xd9, 0x3c, 0xf7, 0x30,
   342  	0xd8, 0x2e, 0xc3, 0x7c, 0x79, 0x86, 0xea, 0x2a, 0x8d, 0x91, 0x39, 0xf3, 0x25, 0xf5, 0xe1, 0x30,
   343  	0xc7, 0xb2, 0xe4, 0x09, 0x36, 0x33, 0x6f, 0xb1, 0x76, 0xaa, 0x62, 0xc5, 0x35, 0xae, 0xfc, 0xee,
   344  	0x98, 0x4c, 0x7b, 0xac, 0xc5, 0xe7, 0x2f, 0xc0, 0xb5, 0x4f, 0x51, 0x00, 0xd7, 0x0e, 0x71, 0x70,
   345  	0x50, 0x6b, 0x86, 0xdf, 0x6a, 0x4d, 0x6a, 0x7d, 0xba, 0x2e, 0x78, 0x59, 0x0e, 0x9c, 0xd3, 0x93,
   346  	0xeb, 0x3f, 0xa3, 0x83, 0x5f, 0x9b, 0x11, 0xb9, 0xde, 0x8c, 0xc8, 0xef, 0xcd, 0x88, 0x7c, 0x09,
   347  	0x77, 0xf6, 0x38, 0xe7, 0x5a, 0xa5, 0x3f, 0xec, 0x7f, 0x6e, 0x41, 0x60, 0x58, 0x5c, 0x26, 0x61,
   348  	0x11, 0x85, 0xf6, 0xc3, 0x22, 0xd7, 0x2c, 0xf0, 0xab, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x73,
   349  	0x3a, 0xd5, 0x0b, 0x17, 0x03, 0x00, 0x00,
   350  }
   351  
   352  func (m *Request) Marshal() (dAtA []byte, err error) {
   353  	size := m.Size()
   354  	dAtA = make([]byte, size)
   355  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   356  	if err != nil {
   357  		return nil, err
   358  	}
   359  	return dAtA[:n], nil
   360  }
   361  
   362  func (m *Request) MarshalTo(dAtA []byte) (int, error) {
   363  	size := m.Size()
   364  	return m.MarshalToSizedBuffer(dAtA[:size])
   365  }
   366  
   367  func (m *Request) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   368  	i := len(dAtA)
   369  	_ = i
   370  	var l int
   371  	_ = l
   372  	if m.XXX_unrecognized != nil {
   373  		i -= len(m.XXX_unrecognized)
   374  		copy(dAtA[i:], m.XXX_unrecognized)
   375  	}
   376  	if m.ClientInfo != nil {
   377  		{
   378  			size, err := m.ClientInfo.MarshalToSizedBuffer(dAtA[:i])
   379  			if err != nil {
   380  				return 0, err
   381  			}
   382  			i -= size
   383  			i = encodeVarintPlugin(dAtA, i, uint64(size))
   384  		}
   385  		i--
   386  		dAtA[i] = 0x12
   387  	}
   388  	if m.RequestID != 0 {
   389  		i = encodeVarintPlugin(dAtA, i, uint64(m.RequestID))
   390  		i--
   391  		dAtA[i] = 0x8
   392  	}
   393  	return len(dAtA) - i, nil
   394  }
   395  
   396  func (m *ClientInfo) Marshal() (dAtA []byte, err error) {
   397  	size := m.Size()
   398  	dAtA = make([]byte, size)
   399  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   400  	if err != nil {
   401  		return nil, err
   402  	}
   403  	return dAtA[:n], nil
   404  }
   405  
   406  func (m *ClientInfo) MarshalTo(dAtA []byte) (int, error) {
   407  	size := m.Size()
   408  	return m.MarshalToSizedBuffer(dAtA[:size])
   409  }
   410  
   411  func (m *ClientInfo) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   412  	i := len(dAtA)
   413  	_ = i
   414  	var l int
   415  	_ = l
   416  	if m.XXX_unrecognized != nil {
   417  		i -= len(m.XXX_unrecognized)
   418  		copy(dAtA[i:], m.XXX_unrecognized)
   419  	}
   420  	if len(m.LabelSelector) > 0 {
   421  		for k := range m.LabelSelector {
   422  			v := m.LabelSelector[k]
   423  			baseI := i
   424  			i -= len(v)
   425  			copy(dAtA[i:], v)
   426  			i = encodeVarintPlugin(dAtA, i, uint64(len(v)))
   427  			i--
   428  			dAtA[i] = 0x12
   429  			i -= len(k)
   430  			copy(dAtA[i:], k)
   431  			i = encodeVarintPlugin(dAtA, i, uint64(len(k)))
   432  			i--
   433  			dAtA[i] = 0xa
   434  			i = encodeVarintPlugin(dAtA, i, uint64(baseI-i))
   435  			i--
   436  			dAtA[i] = 0x22
   437  		}
   438  	}
   439  	if len(m.OriginIP) > 0 {
   440  		i -= len(m.OriginIP)
   441  		copy(dAtA[i:], m.OriginIP)
   442  		i = encodeVarintPlugin(dAtA, i, uint64(len(m.OriginIP)))
   443  		i--
   444  		dAtA[i] = 0x1a
   445  	}
   446  	if len(m.Username) > 0 {
   447  		i -= len(m.Username)
   448  		copy(dAtA[i:], m.Username)
   449  		i = encodeVarintPlugin(dAtA, i, uint64(len(m.Username)))
   450  		i--
   451  		dAtA[i] = 0x12
   452  	}
   453  	if len(m.Tenant) > 0 {
   454  		i -= len(m.Tenant)
   455  		copy(dAtA[i:], m.Tenant)
   456  		i = encodeVarintPlugin(dAtA, i, uint64(len(m.Tenant)))
   457  		i--
   458  		dAtA[i] = 0xa
   459  	}
   460  	return len(dAtA) - i, nil
   461  }
   462  
   463  func (m *Response) Marshal() (dAtA []byte, err error) {
   464  	size := m.Size()
   465  	dAtA = make([]byte, size)
   466  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   467  	if err != nil {
   468  		return nil, err
   469  	}
   470  	return dAtA[:n], nil
   471  }
   472  
   473  func (m *Response) MarshalTo(dAtA []byte) (int, error) {
   474  	size := m.Size()
   475  	return m.MarshalToSizedBuffer(dAtA[:size])
   476  }
   477  
   478  func (m *Response) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   479  	i := len(dAtA)
   480  	_ = i
   481  	var l int
   482  	_ = l
   483  	if m.XXX_unrecognized != nil {
   484  		i -= len(m.XXX_unrecognized)
   485  		copy(dAtA[i:], m.XXX_unrecognized)
   486  	}
   487  	if m.Recommendation != nil {
   488  		{
   489  			size, err := m.Recommendation.MarshalToSizedBuffer(dAtA[:i])
   490  			if err != nil {
   491  				return 0, err
   492  			}
   493  			i -= size
   494  			i = encodeVarintPlugin(dAtA, i, uint64(size))
   495  		}
   496  		i--
   497  		dAtA[i] = 0x12
   498  	}
   499  	if m.RequestID != 0 {
   500  		i = encodeVarintPlugin(dAtA, i, uint64(m.RequestID))
   501  		i--
   502  		dAtA[i] = 0x8
   503  	}
   504  	return len(dAtA) - i, nil
   505  }
   506  
   507  func (m *Recommendation) Marshal() (dAtA []byte, err error) {
   508  	size := m.Size()
   509  	dAtA = make([]byte, size)
   510  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
   511  	if err != nil {
   512  		return nil, err
   513  	}
   514  	return dAtA[:n], nil
   515  }
   516  
   517  func (m *Recommendation) MarshalTo(dAtA []byte) (int, error) {
   518  	size := m.Size()
   519  	return m.MarshalToSizedBuffer(dAtA[:size])
   520  }
   521  
   522  func (m *Recommendation) MarshalToSizedBuffer(dAtA []byte) (int, error) {
   523  	i := len(dAtA)
   524  	_ = i
   525  	var l int
   526  	_ = l
   527  	if m.XXX_unrecognized != nil {
   528  		i -= len(m.XXX_unrecognized)
   529  		copy(dAtA[i:], m.XXX_unrecognized)
   530  	}
   531  	if m.Updated {
   532  		i--
   533  		if m.Updated {
   534  			dAtA[i] = 1
   535  		} else {
   536  			dAtA[i] = 0
   537  		}
   538  		i--
   539  		dAtA[i] = 0x20
   540  	}
   541  	if len(m.Message) > 0 {
   542  		i -= len(m.Message)
   543  		copy(dAtA[i:], m.Message)
   544  		i = encodeVarintPlugin(dAtA, i, uint64(len(m.Message)))
   545  		i--
   546  		dAtA[i] = 0x1a
   547  	}
   548  	if m.CN != nil {
   549  		{
   550  			size, err := m.CN.MarshalToSizedBuffer(dAtA[:i])
   551  			if err != nil {
   552  				return 0, err
   553  			}
   554  			i -= size
   555  			i = encodeVarintPlugin(dAtA, i, uint64(size))
   556  		}
   557  		i--
   558  		dAtA[i] = 0x12
   559  	}
   560  	if m.Action != 0 {
   561  		i = encodeVarintPlugin(dAtA, i, uint64(m.Action))
   562  		i--
   563  		dAtA[i] = 0x8
   564  	}
   565  	return len(dAtA) - i, nil
   566  }
   567  
   568  func encodeVarintPlugin(dAtA []byte, offset int, v uint64) int {
   569  	offset -= sovPlugin(v)
   570  	base := offset
   571  	for v >= 1<<7 {
   572  		dAtA[offset] = uint8(v&0x7f | 0x80)
   573  		v >>= 7
   574  		offset++
   575  	}
   576  	dAtA[offset] = uint8(v)
   577  	return base
   578  }
   579  func (m *Request) Size() (n int) {
   580  	if m == nil {
   581  		return 0
   582  	}
   583  	var l int
   584  	_ = l
   585  	if m.RequestID != 0 {
   586  		n += 1 + sovPlugin(uint64(m.RequestID))
   587  	}
   588  	if m.ClientInfo != nil {
   589  		l = m.ClientInfo.Size()
   590  		n += 1 + l + sovPlugin(uint64(l))
   591  	}
   592  	if m.XXX_unrecognized != nil {
   593  		n += len(m.XXX_unrecognized)
   594  	}
   595  	return n
   596  }
   597  
   598  func (m *ClientInfo) Size() (n int) {
   599  	if m == nil {
   600  		return 0
   601  	}
   602  	var l int
   603  	_ = l
   604  	l = len(m.Tenant)
   605  	if l > 0 {
   606  		n += 1 + l + sovPlugin(uint64(l))
   607  	}
   608  	l = len(m.Username)
   609  	if l > 0 {
   610  		n += 1 + l + sovPlugin(uint64(l))
   611  	}
   612  	l = len(m.OriginIP)
   613  	if l > 0 {
   614  		n += 1 + l + sovPlugin(uint64(l))
   615  	}
   616  	if len(m.LabelSelector) > 0 {
   617  		for k, v := range m.LabelSelector {
   618  			_ = k
   619  			_ = v
   620  			mapEntrySize := 1 + len(k) + sovPlugin(uint64(len(k))) + 1 + len(v) + sovPlugin(uint64(len(v)))
   621  			n += mapEntrySize + 1 + sovPlugin(uint64(mapEntrySize))
   622  		}
   623  	}
   624  	if m.XXX_unrecognized != nil {
   625  		n += len(m.XXX_unrecognized)
   626  	}
   627  	return n
   628  }
   629  
   630  func (m *Response) Size() (n int) {
   631  	if m == nil {
   632  		return 0
   633  	}
   634  	var l int
   635  	_ = l
   636  	if m.RequestID != 0 {
   637  		n += 1 + sovPlugin(uint64(m.RequestID))
   638  	}
   639  	if m.Recommendation != nil {
   640  		l = m.Recommendation.Size()
   641  		n += 1 + l + sovPlugin(uint64(l))
   642  	}
   643  	if m.XXX_unrecognized != nil {
   644  		n += len(m.XXX_unrecognized)
   645  	}
   646  	return n
   647  }
   648  
   649  func (m *Recommendation) Size() (n int) {
   650  	if m == nil {
   651  		return 0
   652  	}
   653  	var l int
   654  	_ = l
   655  	if m.Action != 0 {
   656  		n += 1 + sovPlugin(uint64(m.Action))
   657  	}
   658  	if m.CN != nil {
   659  		l = m.CN.Size()
   660  		n += 1 + l + sovPlugin(uint64(l))
   661  	}
   662  	l = len(m.Message)
   663  	if l > 0 {
   664  		n += 1 + l + sovPlugin(uint64(l))
   665  	}
   666  	if m.Updated {
   667  		n += 2
   668  	}
   669  	if m.XXX_unrecognized != nil {
   670  		n += len(m.XXX_unrecognized)
   671  	}
   672  	return n
   673  }
   674  
   675  func sovPlugin(x uint64) (n int) {
   676  	return (math_bits.Len64(x|1) + 6) / 7
   677  }
   678  func sozPlugin(x uint64) (n int) {
   679  	return sovPlugin(uint64((x << 1) ^ uint64((int64(x) >> 63))))
   680  }
   681  func (m *Request) Unmarshal(dAtA []byte) error {
   682  	l := len(dAtA)
   683  	iNdEx := 0
   684  	for iNdEx < l {
   685  		preIndex := iNdEx
   686  		var wire uint64
   687  		for shift := uint(0); ; shift += 7 {
   688  			if shift >= 64 {
   689  				return ErrIntOverflowPlugin
   690  			}
   691  			if iNdEx >= l {
   692  				return io.ErrUnexpectedEOF
   693  			}
   694  			b := dAtA[iNdEx]
   695  			iNdEx++
   696  			wire |= uint64(b&0x7F) << shift
   697  			if b < 0x80 {
   698  				break
   699  			}
   700  		}
   701  		fieldNum := int32(wire >> 3)
   702  		wireType := int(wire & 0x7)
   703  		if wireType == 4 {
   704  			return fmt.Errorf("proto: Request: wiretype end group for non-group")
   705  		}
   706  		if fieldNum <= 0 {
   707  			return fmt.Errorf("proto: Request: illegal tag %d (wire type %d)", fieldNum, wire)
   708  		}
   709  		switch fieldNum {
   710  		case 1:
   711  			if wireType != 0 {
   712  				return fmt.Errorf("proto: wrong wireType = %d for field RequestID", wireType)
   713  			}
   714  			m.RequestID = 0
   715  			for shift := uint(0); ; shift += 7 {
   716  				if shift >= 64 {
   717  					return ErrIntOverflowPlugin
   718  				}
   719  				if iNdEx >= l {
   720  					return io.ErrUnexpectedEOF
   721  				}
   722  				b := dAtA[iNdEx]
   723  				iNdEx++
   724  				m.RequestID |= uint64(b&0x7F) << shift
   725  				if b < 0x80 {
   726  					break
   727  				}
   728  			}
   729  		case 2:
   730  			if wireType != 2 {
   731  				return fmt.Errorf("proto: wrong wireType = %d for field ClientInfo", wireType)
   732  			}
   733  			var msglen int
   734  			for shift := uint(0); ; shift += 7 {
   735  				if shift >= 64 {
   736  					return ErrIntOverflowPlugin
   737  				}
   738  				if iNdEx >= l {
   739  					return io.ErrUnexpectedEOF
   740  				}
   741  				b := dAtA[iNdEx]
   742  				iNdEx++
   743  				msglen |= int(b&0x7F) << shift
   744  				if b < 0x80 {
   745  					break
   746  				}
   747  			}
   748  			if msglen < 0 {
   749  				return ErrInvalidLengthPlugin
   750  			}
   751  			postIndex := iNdEx + msglen
   752  			if postIndex < 0 {
   753  				return ErrInvalidLengthPlugin
   754  			}
   755  			if postIndex > l {
   756  				return io.ErrUnexpectedEOF
   757  			}
   758  			if m.ClientInfo == nil {
   759  				m.ClientInfo = &ClientInfo{}
   760  			}
   761  			if err := m.ClientInfo.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
   762  				return err
   763  			}
   764  			iNdEx = postIndex
   765  		default:
   766  			iNdEx = preIndex
   767  			skippy, err := skipPlugin(dAtA[iNdEx:])
   768  			if err != nil {
   769  				return err
   770  			}
   771  			if (skippy < 0) || (iNdEx+skippy) < 0 {
   772  				return ErrInvalidLengthPlugin
   773  			}
   774  			if (iNdEx + skippy) > l {
   775  				return io.ErrUnexpectedEOF
   776  			}
   777  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
   778  			iNdEx += skippy
   779  		}
   780  	}
   781  
   782  	if iNdEx > l {
   783  		return io.ErrUnexpectedEOF
   784  	}
   785  	return nil
   786  }
   787  func (m *ClientInfo) Unmarshal(dAtA []byte) error {
   788  	l := len(dAtA)
   789  	iNdEx := 0
   790  	for iNdEx < l {
   791  		preIndex := iNdEx
   792  		var wire uint64
   793  		for shift := uint(0); ; shift += 7 {
   794  			if shift >= 64 {
   795  				return ErrIntOverflowPlugin
   796  			}
   797  			if iNdEx >= l {
   798  				return io.ErrUnexpectedEOF
   799  			}
   800  			b := dAtA[iNdEx]
   801  			iNdEx++
   802  			wire |= uint64(b&0x7F) << shift
   803  			if b < 0x80 {
   804  				break
   805  			}
   806  		}
   807  		fieldNum := int32(wire >> 3)
   808  		wireType := int(wire & 0x7)
   809  		if wireType == 4 {
   810  			return fmt.Errorf("proto: ClientInfo: wiretype end group for non-group")
   811  		}
   812  		if fieldNum <= 0 {
   813  			return fmt.Errorf("proto: ClientInfo: illegal tag %d (wire type %d)", fieldNum, wire)
   814  		}
   815  		switch fieldNum {
   816  		case 1:
   817  			if wireType != 2 {
   818  				return fmt.Errorf("proto: wrong wireType = %d for field Tenant", wireType)
   819  			}
   820  			var stringLen uint64
   821  			for shift := uint(0); ; shift += 7 {
   822  				if shift >= 64 {
   823  					return ErrIntOverflowPlugin
   824  				}
   825  				if iNdEx >= l {
   826  					return io.ErrUnexpectedEOF
   827  				}
   828  				b := dAtA[iNdEx]
   829  				iNdEx++
   830  				stringLen |= uint64(b&0x7F) << shift
   831  				if b < 0x80 {
   832  					break
   833  				}
   834  			}
   835  			intStringLen := int(stringLen)
   836  			if intStringLen < 0 {
   837  				return ErrInvalidLengthPlugin
   838  			}
   839  			postIndex := iNdEx + intStringLen
   840  			if postIndex < 0 {
   841  				return ErrInvalidLengthPlugin
   842  			}
   843  			if postIndex > l {
   844  				return io.ErrUnexpectedEOF
   845  			}
   846  			m.Tenant = string(dAtA[iNdEx:postIndex])
   847  			iNdEx = postIndex
   848  		case 2:
   849  			if wireType != 2 {
   850  				return fmt.Errorf("proto: wrong wireType = %d for field Username", wireType)
   851  			}
   852  			var stringLen uint64
   853  			for shift := uint(0); ; shift += 7 {
   854  				if shift >= 64 {
   855  					return ErrIntOverflowPlugin
   856  				}
   857  				if iNdEx >= l {
   858  					return io.ErrUnexpectedEOF
   859  				}
   860  				b := dAtA[iNdEx]
   861  				iNdEx++
   862  				stringLen |= uint64(b&0x7F) << shift
   863  				if b < 0x80 {
   864  					break
   865  				}
   866  			}
   867  			intStringLen := int(stringLen)
   868  			if intStringLen < 0 {
   869  				return ErrInvalidLengthPlugin
   870  			}
   871  			postIndex := iNdEx + intStringLen
   872  			if postIndex < 0 {
   873  				return ErrInvalidLengthPlugin
   874  			}
   875  			if postIndex > l {
   876  				return io.ErrUnexpectedEOF
   877  			}
   878  			m.Username = string(dAtA[iNdEx:postIndex])
   879  			iNdEx = postIndex
   880  		case 3:
   881  			if wireType != 2 {
   882  				return fmt.Errorf("proto: wrong wireType = %d for field OriginIP", wireType)
   883  			}
   884  			var stringLen uint64
   885  			for shift := uint(0); ; shift += 7 {
   886  				if shift >= 64 {
   887  					return ErrIntOverflowPlugin
   888  				}
   889  				if iNdEx >= l {
   890  					return io.ErrUnexpectedEOF
   891  				}
   892  				b := dAtA[iNdEx]
   893  				iNdEx++
   894  				stringLen |= uint64(b&0x7F) << shift
   895  				if b < 0x80 {
   896  					break
   897  				}
   898  			}
   899  			intStringLen := int(stringLen)
   900  			if intStringLen < 0 {
   901  				return ErrInvalidLengthPlugin
   902  			}
   903  			postIndex := iNdEx + intStringLen
   904  			if postIndex < 0 {
   905  				return ErrInvalidLengthPlugin
   906  			}
   907  			if postIndex > l {
   908  				return io.ErrUnexpectedEOF
   909  			}
   910  			m.OriginIP = string(dAtA[iNdEx:postIndex])
   911  			iNdEx = postIndex
   912  		case 4:
   913  			if wireType != 2 {
   914  				return fmt.Errorf("proto: wrong wireType = %d for field LabelSelector", wireType)
   915  			}
   916  			var msglen int
   917  			for shift := uint(0); ; shift += 7 {
   918  				if shift >= 64 {
   919  					return ErrIntOverflowPlugin
   920  				}
   921  				if iNdEx >= l {
   922  					return io.ErrUnexpectedEOF
   923  				}
   924  				b := dAtA[iNdEx]
   925  				iNdEx++
   926  				msglen |= int(b&0x7F) << shift
   927  				if b < 0x80 {
   928  					break
   929  				}
   930  			}
   931  			if msglen < 0 {
   932  				return ErrInvalidLengthPlugin
   933  			}
   934  			postIndex := iNdEx + msglen
   935  			if postIndex < 0 {
   936  				return ErrInvalidLengthPlugin
   937  			}
   938  			if postIndex > l {
   939  				return io.ErrUnexpectedEOF
   940  			}
   941  			if m.LabelSelector == nil {
   942  				m.LabelSelector = make(map[string]string)
   943  			}
   944  			var mapkey string
   945  			var mapvalue string
   946  			for iNdEx < postIndex {
   947  				entryPreIndex := iNdEx
   948  				var wire uint64
   949  				for shift := uint(0); ; shift += 7 {
   950  					if shift >= 64 {
   951  						return ErrIntOverflowPlugin
   952  					}
   953  					if iNdEx >= l {
   954  						return io.ErrUnexpectedEOF
   955  					}
   956  					b := dAtA[iNdEx]
   957  					iNdEx++
   958  					wire |= uint64(b&0x7F) << shift
   959  					if b < 0x80 {
   960  						break
   961  					}
   962  				}
   963  				fieldNum := int32(wire >> 3)
   964  				if fieldNum == 1 {
   965  					var stringLenmapkey uint64
   966  					for shift := uint(0); ; shift += 7 {
   967  						if shift >= 64 {
   968  							return ErrIntOverflowPlugin
   969  						}
   970  						if iNdEx >= l {
   971  							return io.ErrUnexpectedEOF
   972  						}
   973  						b := dAtA[iNdEx]
   974  						iNdEx++
   975  						stringLenmapkey |= uint64(b&0x7F) << shift
   976  						if b < 0x80 {
   977  							break
   978  						}
   979  					}
   980  					intStringLenmapkey := int(stringLenmapkey)
   981  					if intStringLenmapkey < 0 {
   982  						return ErrInvalidLengthPlugin
   983  					}
   984  					postStringIndexmapkey := iNdEx + intStringLenmapkey
   985  					if postStringIndexmapkey < 0 {
   986  						return ErrInvalidLengthPlugin
   987  					}
   988  					if postStringIndexmapkey > l {
   989  						return io.ErrUnexpectedEOF
   990  					}
   991  					mapkey = string(dAtA[iNdEx:postStringIndexmapkey])
   992  					iNdEx = postStringIndexmapkey
   993  				} else if fieldNum == 2 {
   994  					var stringLenmapvalue uint64
   995  					for shift := uint(0); ; shift += 7 {
   996  						if shift >= 64 {
   997  							return ErrIntOverflowPlugin
   998  						}
   999  						if iNdEx >= l {
  1000  							return io.ErrUnexpectedEOF
  1001  						}
  1002  						b := dAtA[iNdEx]
  1003  						iNdEx++
  1004  						stringLenmapvalue |= uint64(b&0x7F) << shift
  1005  						if b < 0x80 {
  1006  							break
  1007  						}
  1008  					}
  1009  					intStringLenmapvalue := int(stringLenmapvalue)
  1010  					if intStringLenmapvalue < 0 {
  1011  						return ErrInvalidLengthPlugin
  1012  					}
  1013  					postStringIndexmapvalue := iNdEx + intStringLenmapvalue
  1014  					if postStringIndexmapvalue < 0 {
  1015  						return ErrInvalidLengthPlugin
  1016  					}
  1017  					if postStringIndexmapvalue > l {
  1018  						return io.ErrUnexpectedEOF
  1019  					}
  1020  					mapvalue = string(dAtA[iNdEx:postStringIndexmapvalue])
  1021  					iNdEx = postStringIndexmapvalue
  1022  				} else {
  1023  					iNdEx = entryPreIndex
  1024  					skippy, err := skipPlugin(dAtA[iNdEx:])
  1025  					if err != nil {
  1026  						return err
  1027  					}
  1028  					if (skippy < 0) || (iNdEx+skippy) < 0 {
  1029  						return ErrInvalidLengthPlugin
  1030  					}
  1031  					if (iNdEx + skippy) > postIndex {
  1032  						return io.ErrUnexpectedEOF
  1033  					}
  1034  					iNdEx += skippy
  1035  				}
  1036  			}
  1037  			m.LabelSelector[mapkey] = mapvalue
  1038  			iNdEx = postIndex
  1039  		default:
  1040  			iNdEx = preIndex
  1041  			skippy, err := skipPlugin(dAtA[iNdEx:])
  1042  			if err != nil {
  1043  				return err
  1044  			}
  1045  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  1046  				return ErrInvalidLengthPlugin
  1047  			}
  1048  			if (iNdEx + skippy) > l {
  1049  				return io.ErrUnexpectedEOF
  1050  			}
  1051  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  1052  			iNdEx += skippy
  1053  		}
  1054  	}
  1055  
  1056  	if iNdEx > l {
  1057  		return io.ErrUnexpectedEOF
  1058  	}
  1059  	return nil
  1060  }
  1061  func (m *Response) Unmarshal(dAtA []byte) error {
  1062  	l := len(dAtA)
  1063  	iNdEx := 0
  1064  	for iNdEx < l {
  1065  		preIndex := iNdEx
  1066  		var wire uint64
  1067  		for shift := uint(0); ; shift += 7 {
  1068  			if shift >= 64 {
  1069  				return ErrIntOverflowPlugin
  1070  			}
  1071  			if iNdEx >= l {
  1072  				return io.ErrUnexpectedEOF
  1073  			}
  1074  			b := dAtA[iNdEx]
  1075  			iNdEx++
  1076  			wire |= uint64(b&0x7F) << shift
  1077  			if b < 0x80 {
  1078  				break
  1079  			}
  1080  		}
  1081  		fieldNum := int32(wire >> 3)
  1082  		wireType := int(wire & 0x7)
  1083  		if wireType == 4 {
  1084  			return fmt.Errorf("proto: Response: wiretype end group for non-group")
  1085  		}
  1086  		if fieldNum <= 0 {
  1087  			return fmt.Errorf("proto: Response: illegal tag %d (wire type %d)", fieldNum, wire)
  1088  		}
  1089  		switch fieldNum {
  1090  		case 1:
  1091  			if wireType != 0 {
  1092  				return fmt.Errorf("proto: wrong wireType = %d for field RequestID", wireType)
  1093  			}
  1094  			m.RequestID = 0
  1095  			for shift := uint(0); ; shift += 7 {
  1096  				if shift >= 64 {
  1097  					return ErrIntOverflowPlugin
  1098  				}
  1099  				if iNdEx >= l {
  1100  					return io.ErrUnexpectedEOF
  1101  				}
  1102  				b := dAtA[iNdEx]
  1103  				iNdEx++
  1104  				m.RequestID |= uint64(b&0x7F) << shift
  1105  				if b < 0x80 {
  1106  					break
  1107  				}
  1108  			}
  1109  		case 2:
  1110  			if wireType != 2 {
  1111  				return fmt.Errorf("proto: wrong wireType = %d for field Recommendation", wireType)
  1112  			}
  1113  			var msglen int
  1114  			for shift := uint(0); ; shift += 7 {
  1115  				if shift >= 64 {
  1116  					return ErrIntOverflowPlugin
  1117  				}
  1118  				if iNdEx >= l {
  1119  					return io.ErrUnexpectedEOF
  1120  				}
  1121  				b := dAtA[iNdEx]
  1122  				iNdEx++
  1123  				msglen |= int(b&0x7F) << shift
  1124  				if b < 0x80 {
  1125  					break
  1126  				}
  1127  			}
  1128  			if msglen < 0 {
  1129  				return ErrInvalidLengthPlugin
  1130  			}
  1131  			postIndex := iNdEx + msglen
  1132  			if postIndex < 0 {
  1133  				return ErrInvalidLengthPlugin
  1134  			}
  1135  			if postIndex > l {
  1136  				return io.ErrUnexpectedEOF
  1137  			}
  1138  			if m.Recommendation == nil {
  1139  				m.Recommendation = &Recommendation{}
  1140  			}
  1141  			if err := m.Recommendation.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1142  				return err
  1143  			}
  1144  			iNdEx = postIndex
  1145  		default:
  1146  			iNdEx = preIndex
  1147  			skippy, err := skipPlugin(dAtA[iNdEx:])
  1148  			if err != nil {
  1149  				return err
  1150  			}
  1151  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  1152  				return ErrInvalidLengthPlugin
  1153  			}
  1154  			if (iNdEx + skippy) > l {
  1155  				return io.ErrUnexpectedEOF
  1156  			}
  1157  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  1158  			iNdEx += skippy
  1159  		}
  1160  	}
  1161  
  1162  	if iNdEx > l {
  1163  		return io.ErrUnexpectedEOF
  1164  	}
  1165  	return nil
  1166  }
  1167  func (m *Recommendation) Unmarshal(dAtA []byte) error {
  1168  	l := len(dAtA)
  1169  	iNdEx := 0
  1170  	for iNdEx < l {
  1171  		preIndex := iNdEx
  1172  		var wire uint64
  1173  		for shift := uint(0); ; shift += 7 {
  1174  			if shift >= 64 {
  1175  				return ErrIntOverflowPlugin
  1176  			}
  1177  			if iNdEx >= l {
  1178  				return io.ErrUnexpectedEOF
  1179  			}
  1180  			b := dAtA[iNdEx]
  1181  			iNdEx++
  1182  			wire |= uint64(b&0x7F) << shift
  1183  			if b < 0x80 {
  1184  				break
  1185  			}
  1186  		}
  1187  		fieldNum := int32(wire >> 3)
  1188  		wireType := int(wire & 0x7)
  1189  		if wireType == 4 {
  1190  			return fmt.Errorf("proto: Recommendation: wiretype end group for non-group")
  1191  		}
  1192  		if fieldNum <= 0 {
  1193  			return fmt.Errorf("proto: Recommendation: illegal tag %d (wire type %d)", fieldNum, wire)
  1194  		}
  1195  		switch fieldNum {
  1196  		case 1:
  1197  			if wireType != 0 {
  1198  				return fmt.Errorf("proto: wrong wireType = %d for field Action", wireType)
  1199  			}
  1200  			m.Action = 0
  1201  			for shift := uint(0); ; shift += 7 {
  1202  				if shift >= 64 {
  1203  					return ErrIntOverflowPlugin
  1204  				}
  1205  				if iNdEx >= l {
  1206  					return io.ErrUnexpectedEOF
  1207  				}
  1208  				b := dAtA[iNdEx]
  1209  				iNdEx++
  1210  				m.Action |= Action(b&0x7F) << shift
  1211  				if b < 0x80 {
  1212  					break
  1213  				}
  1214  			}
  1215  		case 2:
  1216  			if wireType != 2 {
  1217  				return fmt.Errorf("proto: wrong wireType = %d for field CN", wireType)
  1218  			}
  1219  			var msglen int
  1220  			for shift := uint(0); ; shift += 7 {
  1221  				if shift >= 64 {
  1222  					return ErrIntOverflowPlugin
  1223  				}
  1224  				if iNdEx >= l {
  1225  					return io.ErrUnexpectedEOF
  1226  				}
  1227  				b := dAtA[iNdEx]
  1228  				iNdEx++
  1229  				msglen |= int(b&0x7F) << shift
  1230  				if b < 0x80 {
  1231  					break
  1232  				}
  1233  			}
  1234  			if msglen < 0 {
  1235  				return ErrInvalidLengthPlugin
  1236  			}
  1237  			postIndex := iNdEx + msglen
  1238  			if postIndex < 0 {
  1239  				return ErrInvalidLengthPlugin
  1240  			}
  1241  			if postIndex > l {
  1242  				return io.ErrUnexpectedEOF
  1243  			}
  1244  			if m.CN == nil {
  1245  				m.CN = &metadata.CNService{}
  1246  			}
  1247  			if err := m.CN.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1248  				return err
  1249  			}
  1250  			iNdEx = postIndex
  1251  		case 3:
  1252  			if wireType != 2 {
  1253  				return fmt.Errorf("proto: wrong wireType = %d for field Message", wireType)
  1254  			}
  1255  			var stringLen uint64
  1256  			for shift := uint(0); ; shift += 7 {
  1257  				if shift >= 64 {
  1258  					return ErrIntOverflowPlugin
  1259  				}
  1260  				if iNdEx >= l {
  1261  					return io.ErrUnexpectedEOF
  1262  				}
  1263  				b := dAtA[iNdEx]
  1264  				iNdEx++
  1265  				stringLen |= uint64(b&0x7F) << shift
  1266  				if b < 0x80 {
  1267  					break
  1268  				}
  1269  			}
  1270  			intStringLen := int(stringLen)
  1271  			if intStringLen < 0 {
  1272  				return ErrInvalidLengthPlugin
  1273  			}
  1274  			postIndex := iNdEx + intStringLen
  1275  			if postIndex < 0 {
  1276  				return ErrInvalidLengthPlugin
  1277  			}
  1278  			if postIndex > l {
  1279  				return io.ErrUnexpectedEOF
  1280  			}
  1281  			m.Message = string(dAtA[iNdEx:postIndex])
  1282  			iNdEx = postIndex
  1283  		case 4:
  1284  			if wireType != 0 {
  1285  				return fmt.Errorf("proto: wrong wireType = %d for field Updated", wireType)
  1286  			}
  1287  			var v int
  1288  			for shift := uint(0); ; shift += 7 {
  1289  				if shift >= 64 {
  1290  					return ErrIntOverflowPlugin
  1291  				}
  1292  				if iNdEx >= l {
  1293  					return io.ErrUnexpectedEOF
  1294  				}
  1295  				b := dAtA[iNdEx]
  1296  				iNdEx++
  1297  				v |= int(b&0x7F) << shift
  1298  				if b < 0x80 {
  1299  					break
  1300  				}
  1301  			}
  1302  			m.Updated = bool(v != 0)
  1303  		default:
  1304  			iNdEx = preIndex
  1305  			skippy, err := skipPlugin(dAtA[iNdEx:])
  1306  			if err != nil {
  1307  				return err
  1308  			}
  1309  			if (skippy < 0) || (iNdEx+skippy) < 0 {
  1310  				return ErrInvalidLengthPlugin
  1311  			}
  1312  			if (iNdEx + skippy) > l {
  1313  				return io.ErrUnexpectedEOF
  1314  			}
  1315  			m.XXX_unrecognized = append(m.XXX_unrecognized, dAtA[iNdEx:iNdEx+skippy]...)
  1316  			iNdEx += skippy
  1317  		}
  1318  	}
  1319  
  1320  	if iNdEx > l {
  1321  		return io.ErrUnexpectedEOF
  1322  	}
  1323  	return nil
  1324  }
  1325  func skipPlugin(dAtA []byte) (n int, err error) {
  1326  	l := len(dAtA)
  1327  	iNdEx := 0
  1328  	depth := 0
  1329  	for iNdEx < l {
  1330  		var wire uint64
  1331  		for shift := uint(0); ; shift += 7 {
  1332  			if shift >= 64 {
  1333  				return 0, ErrIntOverflowPlugin
  1334  			}
  1335  			if iNdEx >= l {
  1336  				return 0, io.ErrUnexpectedEOF
  1337  			}
  1338  			b := dAtA[iNdEx]
  1339  			iNdEx++
  1340  			wire |= (uint64(b) & 0x7F) << shift
  1341  			if b < 0x80 {
  1342  				break
  1343  			}
  1344  		}
  1345  		wireType := int(wire & 0x7)
  1346  		switch wireType {
  1347  		case 0:
  1348  			for shift := uint(0); ; shift += 7 {
  1349  				if shift >= 64 {
  1350  					return 0, ErrIntOverflowPlugin
  1351  				}
  1352  				if iNdEx >= l {
  1353  					return 0, io.ErrUnexpectedEOF
  1354  				}
  1355  				iNdEx++
  1356  				if dAtA[iNdEx-1] < 0x80 {
  1357  					break
  1358  				}
  1359  			}
  1360  		case 1:
  1361  			iNdEx += 8
  1362  		case 2:
  1363  			var length int
  1364  			for shift := uint(0); ; shift += 7 {
  1365  				if shift >= 64 {
  1366  					return 0, ErrIntOverflowPlugin
  1367  				}
  1368  				if iNdEx >= l {
  1369  					return 0, io.ErrUnexpectedEOF
  1370  				}
  1371  				b := dAtA[iNdEx]
  1372  				iNdEx++
  1373  				length |= (int(b) & 0x7F) << shift
  1374  				if b < 0x80 {
  1375  					break
  1376  				}
  1377  			}
  1378  			if length < 0 {
  1379  				return 0, ErrInvalidLengthPlugin
  1380  			}
  1381  			iNdEx += length
  1382  		case 3:
  1383  			depth++
  1384  		case 4:
  1385  			if depth == 0 {
  1386  				return 0, ErrUnexpectedEndOfGroupPlugin
  1387  			}
  1388  			depth--
  1389  		case 5:
  1390  			iNdEx += 4
  1391  		default:
  1392  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  1393  		}
  1394  		if iNdEx < 0 {
  1395  			return 0, ErrInvalidLengthPlugin
  1396  		}
  1397  		if depth == 0 {
  1398  			return iNdEx, nil
  1399  		}
  1400  	}
  1401  	return 0, io.ErrUnexpectedEOF
  1402  }
  1403  
  1404  var (
  1405  	ErrInvalidLengthPlugin        = fmt.Errorf("proto: negative length found during unmarshaling")
  1406  	ErrIntOverflowPlugin          = fmt.Errorf("proto: integer overflow")
  1407  	ErrUnexpectedEndOfGroupPlugin = fmt.Errorf("proto: unexpected end of group")
  1408  )