github.com/muhammadn/cortex@v1.9.1-0.20220510110439-46bb7000d03d/pkg/scheduler/schedulerpb/scheduler.pb.go (about)

     1  // Code generated by protoc-gen-gogo. DO NOT EDIT.
     2  // source: scheduler.proto
     3  
     4  package schedulerpb
     5  
     6  import (
     7  	context "context"
     8  	fmt "fmt"
     9  	_ "github.com/gogo/protobuf/gogoproto"
    10  	proto "github.com/gogo/protobuf/proto"
    11  	httpgrpc "github.com/weaveworks/common/httpgrpc"
    12  	grpc "google.golang.org/grpc"
    13  	codes "google.golang.org/grpc/codes"
    14  	status "google.golang.org/grpc/status"
    15  	io "io"
    16  	math "math"
    17  	math_bits "math/bits"
    18  	reflect "reflect"
    19  	strconv "strconv"
    20  	strings "strings"
    21  )
    22  
    23  // Reference imports to suppress errors if they are not otherwise used.
    24  var _ = proto.Marshal
    25  var _ = fmt.Errorf
    26  var _ = math.Inf
    27  
    28  // This is a compile-time assertion to ensure that this generated file
    29  // is compatible with the proto package it is being compiled against.
    30  // A compilation error at this line likely means your copy of the
    31  // proto package needs to be updated.
    32  const _ = proto.GoGoProtoPackageIsVersion3 // please upgrade the proto package
    33  
    34  type FrontendToSchedulerType int32
    35  
    36  const (
    37  	INIT    FrontendToSchedulerType = 0
    38  	ENQUEUE FrontendToSchedulerType = 1
    39  	CANCEL  FrontendToSchedulerType = 2
    40  )
    41  
    42  var FrontendToSchedulerType_name = map[int32]string{
    43  	0: "INIT",
    44  	1: "ENQUEUE",
    45  	2: "CANCEL",
    46  }
    47  
    48  var FrontendToSchedulerType_value = map[string]int32{
    49  	"INIT":    0,
    50  	"ENQUEUE": 1,
    51  	"CANCEL":  2,
    52  }
    53  
    54  func (FrontendToSchedulerType) EnumDescriptor() ([]byte, []int) {
    55  	return fileDescriptor_2b3fc28395a6d9c5, []int{0}
    56  }
    57  
    58  type SchedulerToFrontendStatus int32
    59  
    60  const (
    61  	OK                           SchedulerToFrontendStatus = 0
    62  	TOO_MANY_REQUESTS_PER_TENANT SchedulerToFrontendStatus = 1
    63  	ERROR                        SchedulerToFrontendStatus = 2
    64  	SHUTTING_DOWN                SchedulerToFrontendStatus = 3
    65  )
    66  
    67  var SchedulerToFrontendStatus_name = map[int32]string{
    68  	0: "OK",
    69  	1: "TOO_MANY_REQUESTS_PER_TENANT",
    70  	2: "ERROR",
    71  	3: "SHUTTING_DOWN",
    72  }
    73  
    74  var SchedulerToFrontendStatus_value = map[string]int32{
    75  	"OK":                           0,
    76  	"TOO_MANY_REQUESTS_PER_TENANT": 1,
    77  	"ERROR":                        2,
    78  	"SHUTTING_DOWN":                3,
    79  }
    80  
    81  func (SchedulerToFrontendStatus) EnumDescriptor() ([]byte, []int) {
    82  	return fileDescriptor_2b3fc28395a6d9c5, []int{1}
    83  }
    84  
    85  // Querier reports its own clientID when it connects, so that scheduler knows how many *different* queriers are connected.
    86  // To signal that querier is ready to accept another request, querier sends empty message.
    87  type QuerierToScheduler struct {
    88  	QuerierID string `protobuf:"bytes,1,opt,name=querierID,proto3" json:"querierID,omitempty"`
    89  }
    90  
    91  func (m *QuerierToScheduler) Reset()      { *m = QuerierToScheduler{} }
    92  func (*QuerierToScheduler) ProtoMessage() {}
    93  func (*QuerierToScheduler) Descriptor() ([]byte, []int) {
    94  	return fileDescriptor_2b3fc28395a6d9c5, []int{0}
    95  }
    96  func (m *QuerierToScheduler) XXX_Unmarshal(b []byte) error {
    97  	return m.Unmarshal(b)
    98  }
    99  func (m *QuerierToScheduler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   100  	if deterministic {
   101  		return xxx_messageInfo_QuerierToScheduler.Marshal(b, m, deterministic)
   102  	} else {
   103  		b = b[:cap(b)]
   104  		n, err := m.MarshalToSizedBuffer(b)
   105  		if err != nil {
   106  			return nil, err
   107  		}
   108  		return b[:n], nil
   109  	}
   110  }
   111  func (m *QuerierToScheduler) XXX_Merge(src proto.Message) {
   112  	xxx_messageInfo_QuerierToScheduler.Merge(m, src)
   113  }
   114  func (m *QuerierToScheduler) XXX_Size() int {
   115  	return m.Size()
   116  }
   117  func (m *QuerierToScheduler) XXX_DiscardUnknown() {
   118  	xxx_messageInfo_QuerierToScheduler.DiscardUnknown(m)
   119  }
   120  
   121  var xxx_messageInfo_QuerierToScheduler proto.InternalMessageInfo
   122  
   123  func (m *QuerierToScheduler) GetQuerierID() string {
   124  	if m != nil {
   125  		return m.QuerierID
   126  	}
   127  	return ""
   128  }
   129  
   130  type SchedulerToQuerier struct {
   131  	// Query ID as reported by frontend. When querier sends the response back to frontend (using frontendAddress),
   132  	// it identifies the query by using this ID.
   133  	QueryID     uint64                `protobuf:"varint,1,opt,name=queryID,proto3" json:"queryID,omitempty"`
   134  	HttpRequest *httpgrpc.HTTPRequest `protobuf:"bytes,2,opt,name=httpRequest,proto3" json:"httpRequest,omitempty"`
   135  	// Where should querier send HTTP Response to (using FrontendForQuerier interface).
   136  	FrontendAddress string `protobuf:"bytes,3,opt,name=frontendAddress,proto3" json:"frontendAddress,omitempty"`
   137  	// User who initiated the request. Needed to send reply back to frontend.
   138  	UserID string `protobuf:"bytes,4,opt,name=userID,proto3" json:"userID,omitempty"`
   139  	// Whether query statistics tracking should be enabled. The response will include
   140  	// statistics only when this option is enabled.
   141  	StatsEnabled bool `protobuf:"varint,5,opt,name=statsEnabled,proto3" json:"statsEnabled,omitempty"`
   142  }
   143  
   144  func (m *SchedulerToQuerier) Reset()      { *m = SchedulerToQuerier{} }
   145  func (*SchedulerToQuerier) ProtoMessage() {}
   146  func (*SchedulerToQuerier) Descriptor() ([]byte, []int) {
   147  	return fileDescriptor_2b3fc28395a6d9c5, []int{1}
   148  }
   149  func (m *SchedulerToQuerier) XXX_Unmarshal(b []byte) error {
   150  	return m.Unmarshal(b)
   151  }
   152  func (m *SchedulerToQuerier) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   153  	if deterministic {
   154  		return xxx_messageInfo_SchedulerToQuerier.Marshal(b, m, deterministic)
   155  	} else {
   156  		b = b[:cap(b)]
   157  		n, err := m.MarshalToSizedBuffer(b)
   158  		if err != nil {
   159  			return nil, err
   160  		}
   161  		return b[:n], nil
   162  	}
   163  }
   164  func (m *SchedulerToQuerier) XXX_Merge(src proto.Message) {
   165  	xxx_messageInfo_SchedulerToQuerier.Merge(m, src)
   166  }
   167  func (m *SchedulerToQuerier) XXX_Size() int {
   168  	return m.Size()
   169  }
   170  func (m *SchedulerToQuerier) XXX_DiscardUnknown() {
   171  	xxx_messageInfo_SchedulerToQuerier.DiscardUnknown(m)
   172  }
   173  
   174  var xxx_messageInfo_SchedulerToQuerier proto.InternalMessageInfo
   175  
   176  func (m *SchedulerToQuerier) GetQueryID() uint64 {
   177  	if m != nil {
   178  		return m.QueryID
   179  	}
   180  	return 0
   181  }
   182  
   183  func (m *SchedulerToQuerier) GetHttpRequest() *httpgrpc.HTTPRequest {
   184  	if m != nil {
   185  		return m.HttpRequest
   186  	}
   187  	return nil
   188  }
   189  
   190  func (m *SchedulerToQuerier) GetFrontendAddress() string {
   191  	if m != nil {
   192  		return m.FrontendAddress
   193  	}
   194  	return ""
   195  }
   196  
   197  func (m *SchedulerToQuerier) GetUserID() string {
   198  	if m != nil {
   199  		return m.UserID
   200  	}
   201  	return ""
   202  }
   203  
   204  func (m *SchedulerToQuerier) GetStatsEnabled() bool {
   205  	if m != nil {
   206  		return m.StatsEnabled
   207  	}
   208  	return false
   209  }
   210  
   211  type FrontendToScheduler struct {
   212  	Type FrontendToSchedulerType `protobuf:"varint,1,opt,name=type,proto3,enum=schedulerpb.FrontendToSchedulerType" json:"type,omitempty"`
   213  	// Used by INIT message. Will be put into all requests passed to querier.
   214  	FrontendAddress string `protobuf:"bytes,2,opt,name=frontendAddress,proto3" json:"frontendAddress,omitempty"`
   215  	// Used by ENQUEUE and CANCEL.
   216  	// Each frontend manages its own queryIDs. Different frontends may use same set of query IDs.
   217  	QueryID uint64 `protobuf:"varint,3,opt,name=queryID,proto3" json:"queryID,omitempty"`
   218  	// Following are used by ENQUEUE only.
   219  	UserID       string                `protobuf:"bytes,4,opt,name=userID,proto3" json:"userID,omitempty"`
   220  	HttpRequest  *httpgrpc.HTTPRequest `protobuf:"bytes,5,opt,name=httpRequest,proto3" json:"httpRequest,omitempty"`
   221  	StatsEnabled bool                  `protobuf:"varint,6,opt,name=statsEnabled,proto3" json:"statsEnabled,omitempty"`
   222  }
   223  
   224  func (m *FrontendToScheduler) Reset()      { *m = FrontendToScheduler{} }
   225  func (*FrontendToScheduler) ProtoMessage() {}
   226  func (*FrontendToScheduler) Descriptor() ([]byte, []int) {
   227  	return fileDescriptor_2b3fc28395a6d9c5, []int{2}
   228  }
   229  func (m *FrontendToScheduler) XXX_Unmarshal(b []byte) error {
   230  	return m.Unmarshal(b)
   231  }
   232  func (m *FrontendToScheduler) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   233  	if deterministic {
   234  		return xxx_messageInfo_FrontendToScheduler.Marshal(b, m, deterministic)
   235  	} else {
   236  		b = b[:cap(b)]
   237  		n, err := m.MarshalToSizedBuffer(b)
   238  		if err != nil {
   239  			return nil, err
   240  		}
   241  		return b[:n], nil
   242  	}
   243  }
   244  func (m *FrontendToScheduler) XXX_Merge(src proto.Message) {
   245  	xxx_messageInfo_FrontendToScheduler.Merge(m, src)
   246  }
   247  func (m *FrontendToScheduler) XXX_Size() int {
   248  	return m.Size()
   249  }
   250  func (m *FrontendToScheduler) XXX_DiscardUnknown() {
   251  	xxx_messageInfo_FrontendToScheduler.DiscardUnknown(m)
   252  }
   253  
   254  var xxx_messageInfo_FrontendToScheduler proto.InternalMessageInfo
   255  
   256  func (m *FrontendToScheduler) GetType() FrontendToSchedulerType {
   257  	if m != nil {
   258  		return m.Type
   259  	}
   260  	return INIT
   261  }
   262  
   263  func (m *FrontendToScheduler) GetFrontendAddress() string {
   264  	if m != nil {
   265  		return m.FrontendAddress
   266  	}
   267  	return ""
   268  }
   269  
   270  func (m *FrontendToScheduler) GetQueryID() uint64 {
   271  	if m != nil {
   272  		return m.QueryID
   273  	}
   274  	return 0
   275  }
   276  
   277  func (m *FrontendToScheduler) GetUserID() string {
   278  	if m != nil {
   279  		return m.UserID
   280  	}
   281  	return ""
   282  }
   283  
   284  func (m *FrontendToScheduler) GetHttpRequest() *httpgrpc.HTTPRequest {
   285  	if m != nil {
   286  		return m.HttpRequest
   287  	}
   288  	return nil
   289  }
   290  
   291  func (m *FrontendToScheduler) GetStatsEnabled() bool {
   292  	if m != nil {
   293  		return m.StatsEnabled
   294  	}
   295  	return false
   296  }
   297  
   298  type SchedulerToFrontend struct {
   299  	Status SchedulerToFrontendStatus `protobuf:"varint,1,opt,name=status,proto3,enum=schedulerpb.SchedulerToFrontendStatus" json:"status,omitempty"`
   300  	Error  string                    `protobuf:"bytes,2,opt,name=error,proto3" json:"error,omitempty"`
   301  }
   302  
   303  func (m *SchedulerToFrontend) Reset()      { *m = SchedulerToFrontend{} }
   304  func (*SchedulerToFrontend) ProtoMessage() {}
   305  func (*SchedulerToFrontend) Descriptor() ([]byte, []int) {
   306  	return fileDescriptor_2b3fc28395a6d9c5, []int{3}
   307  }
   308  func (m *SchedulerToFrontend) XXX_Unmarshal(b []byte) error {
   309  	return m.Unmarshal(b)
   310  }
   311  func (m *SchedulerToFrontend) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   312  	if deterministic {
   313  		return xxx_messageInfo_SchedulerToFrontend.Marshal(b, m, deterministic)
   314  	} else {
   315  		b = b[:cap(b)]
   316  		n, err := m.MarshalToSizedBuffer(b)
   317  		if err != nil {
   318  			return nil, err
   319  		}
   320  		return b[:n], nil
   321  	}
   322  }
   323  func (m *SchedulerToFrontend) XXX_Merge(src proto.Message) {
   324  	xxx_messageInfo_SchedulerToFrontend.Merge(m, src)
   325  }
   326  func (m *SchedulerToFrontend) XXX_Size() int {
   327  	return m.Size()
   328  }
   329  func (m *SchedulerToFrontend) XXX_DiscardUnknown() {
   330  	xxx_messageInfo_SchedulerToFrontend.DiscardUnknown(m)
   331  }
   332  
   333  var xxx_messageInfo_SchedulerToFrontend proto.InternalMessageInfo
   334  
   335  func (m *SchedulerToFrontend) GetStatus() SchedulerToFrontendStatus {
   336  	if m != nil {
   337  		return m.Status
   338  	}
   339  	return OK
   340  }
   341  
   342  func (m *SchedulerToFrontend) GetError() string {
   343  	if m != nil {
   344  		return m.Error
   345  	}
   346  	return ""
   347  }
   348  
   349  type NotifyQuerierShutdownRequest struct {
   350  	QuerierID string `protobuf:"bytes,1,opt,name=querierID,proto3" json:"querierID,omitempty"`
   351  }
   352  
   353  func (m *NotifyQuerierShutdownRequest) Reset()      { *m = NotifyQuerierShutdownRequest{} }
   354  func (*NotifyQuerierShutdownRequest) ProtoMessage() {}
   355  func (*NotifyQuerierShutdownRequest) Descriptor() ([]byte, []int) {
   356  	return fileDescriptor_2b3fc28395a6d9c5, []int{4}
   357  }
   358  func (m *NotifyQuerierShutdownRequest) XXX_Unmarshal(b []byte) error {
   359  	return m.Unmarshal(b)
   360  }
   361  func (m *NotifyQuerierShutdownRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   362  	if deterministic {
   363  		return xxx_messageInfo_NotifyQuerierShutdownRequest.Marshal(b, m, deterministic)
   364  	} else {
   365  		b = b[:cap(b)]
   366  		n, err := m.MarshalToSizedBuffer(b)
   367  		if err != nil {
   368  			return nil, err
   369  		}
   370  		return b[:n], nil
   371  	}
   372  }
   373  func (m *NotifyQuerierShutdownRequest) XXX_Merge(src proto.Message) {
   374  	xxx_messageInfo_NotifyQuerierShutdownRequest.Merge(m, src)
   375  }
   376  func (m *NotifyQuerierShutdownRequest) XXX_Size() int {
   377  	return m.Size()
   378  }
   379  func (m *NotifyQuerierShutdownRequest) XXX_DiscardUnknown() {
   380  	xxx_messageInfo_NotifyQuerierShutdownRequest.DiscardUnknown(m)
   381  }
   382  
   383  var xxx_messageInfo_NotifyQuerierShutdownRequest proto.InternalMessageInfo
   384  
   385  func (m *NotifyQuerierShutdownRequest) GetQuerierID() string {
   386  	if m != nil {
   387  		return m.QuerierID
   388  	}
   389  	return ""
   390  }
   391  
   392  type NotifyQuerierShutdownResponse struct {
   393  }
   394  
   395  func (m *NotifyQuerierShutdownResponse) Reset()      { *m = NotifyQuerierShutdownResponse{} }
   396  func (*NotifyQuerierShutdownResponse) ProtoMessage() {}
   397  func (*NotifyQuerierShutdownResponse) Descriptor() ([]byte, []int) {
   398  	return fileDescriptor_2b3fc28395a6d9c5, []int{5}
   399  }
   400  func (m *NotifyQuerierShutdownResponse) XXX_Unmarshal(b []byte) error {
   401  	return m.Unmarshal(b)
   402  }
   403  func (m *NotifyQuerierShutdownResponse) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
   404  	if deterministic {
   405  		return xxx_messageInfo_NotifyQuerierShutdownResponse.Marshal(b, m, deterministic)
   406  	} else {
   407  		b = b[:cap(b)]
   408  		n, err := m.MarshalToSizedBuffer(b)
   409  		if err != nil {
   410  			return nil, err
   411  		}
   412  		return b[:n], nil
   413  	}
   414  }
   415  func (m *NotifyQuerierShutdownResponse) XXX_Merge(src proto.Message) {
   416  	xxx_messageInfo_NotifyQuerierShutdownResponse.Merge(m, src)
   417  }
   418  func (m *NotifyQuerierShutdownResponse) XXX_Size() int {
   419  	return m.Size()
   420  }
   421  func (m *NotifyQuerierShutdownResponse) XXX_DiscardUnknown() {
   422  	xxx_messageInfo_NotifyQuerierShutdownResponse.DiscardUnknown(m)
   423  }
   424  
   425  var xxx_messageInfo_NotifyQuerierShutdownResponse proto.InternalMessageInfo
   426  
   427  func init() {
   428  	proto.RegisterEnum("schedulerpb.FrontendToSchedulerType", FrontendToSchedulerType_name, FrontendToSchedulerType_value)
   429  	proto.RegisterEnum("schedulerpb.SchedulerToFrontendStatus", SchedulerToFrontendStatus_name, SchedulerToFrontendStatus_value)
   430  	proto.RegisterType((*QuerierToScheduler)(nil), "schedulerpb.QuerierToScheduler")
   431  	proto.RegisterType((*SchedulerToQuerier)(nil), "schedulerpb.SchedulerToQuerier")
   432  	proto.RegisterType((*FrontendToScheduler)(nil), "schedulerpb.FrontendToScheduler")
   433  	proto.RegisterType((*SchedulerToFrontend)(nil), "schedulerpb.SchedulerToFrontend")
   434  	proto.RegisterType((*NotifyQuerierShutdownRequest)(nil), "schedulerpb.NotifyQuerierShutdownRequest")
   435  	proto.RegisterType((*NotifyQuerierShutdownResponse)(nil), "schedulerpb.NotifyQuerierShutdownResponse")
   436  }
   437  
   438  func init() { proto.RegisterFile("scheduler.proto", fileDescriptor_2b3fc28395a6d9c5) }
   439  
   440  var fileDescriptor_2b3fc28395a6d9c5 = []byte{
   441  	// 650 bytes of a gzipped FileDescriptorProto
   442  	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xcf, 0x4f, 0x13, 0x41,
   443  	0x14, 0xde, 0x29, 0x6d, 0x81, 0x57, 0x94, 0x75, 0x00, 0xad, 0x0d, 0x0e, 0x4d, 0x63, 0x4c, 0x25,
   444  	0xb1, 0x35, 0xd5, 0x44, 0x0f, 0xc4, 0xa4, 0xc2, 0x22, 0x8d, 0xb8, 0x85, 0xe9, 0x34, 0xfe, 0xb8,
   445  	0x34, 0xb4, 0x1d, 0x5a, 0x02, 0xec, 0x2c, 0xb3, 0xbb, 0x92, 0xde, 0x3c, 0x7a, 0xf4, 0xcf, 0xf0,
   446  	0x4f, 0xf1, 0x62, 0xc2, 0x91, 0x83, 0x07, 0x59, 0x2e, 0x1e, 0xf9, 0x13, 0x0c, 0xd3, 0x6d, 0xdd,
   447  	0xd6, 0x16, 0xb8, 0xbd, 0xf7, 0xf6, 0xfb, 0x76, 0xde, 0xf7, 0xbd, 0x37, 0x03, 0xb3, 0x4e, 0xa3,
   448  	0xcd, 0x9b, 0xde, 0x01, 0x97, 0x39, 0x5b, 0x0a, 0x57, 0xe0, 0x44, 0xbf, 0x60, 0xd7, 0x53, 0x4f,
   449  	0x5a, 0x7b, 0x6e, 0xdb, 0xab, 0xe7, 0x1a, 0xe2, 0x30, 0xdf, 0x12, 0x2d, 0x91, 0x57, 0x98, 0xba,
   450  	0xb7, 0xab, 0x32, 0x95, 0xa8, 0xa8, 0xcb, 0x4d, 0x3d, 0x0f, 0xc1, 0x8f, 0xf9, 0xce, 0x67, 0x7e,
   451  	0x2c, 0xe4, 0xbe, 0x93, 0x6f, 0x88, 0xc3, 0x43, 0x61, 0xe5, 0xdb, 0xae, 0x6b, 0xb7, 0xa4, 0xdd,
   452  	0xe8, 0x07, 0x5d, 0x56, 0xa6, 0x00, 0x78, 0xdb, 0xe3, 0x72, 0x8f, 0x4b, 0x26, 0x2a, 0xbd, 0xc3,
   453  	0xf1, 0x22, 0x4c, 0x1f, 0x75, 0xab, 0xa5, 0xb5, 0x24, 0x4a, 0xa3, 0xec, 0x34, 0xfd, 0x57, 0xc8,
   454  	0xfc, 0x44, 0x80, 0xfb, 0x58, 0x26, 0x02, 0x3e, 0x4e, 0xc2, 0xe4, 0x25, 0xa6, 0x13, 0x50, 0xa2,
   455  	0xb4, 0x97, 0xe2, 0x17, 0x90, 0xb8, 0x3c, 0x96, 0xf2, 0x23, 0x8f, 0x3b, 0x6e, 0x32, 0x92, 0x46,
   456  	0xd9, 0x44, 0x61, 0x21, 0xd7, 0x6f, 0x65, 0x83, 0xb1, 0xad, 0xe0, 0x23, 0x0d, 0x23, 0x71, 0x16,
   457  	0x66, 0x77, 0xa5, 0xb0, 0x5c, 0x6e, 0x35, 0x8b, 0xcd, 0xa6, 0xe4, 0x8e, 0x93, 0x9c, 0x50, 0xdd,
   458  	0x0c, 0x97, 0xf1, 0x5d, 0x88, 0x7b, 0x8e, 0x6a, 0x37, 0xaa, 0x00, 0x41, 0x86, 0x33, 0x30, 0xe3,
   459  	0xb8, 0x3b, 0xae, 0x63, 0x58, 0x3b, 0xf5, 0x03, 0xde, 0x4c, 0xc6, 0xd2, 0x28, 0x3b, 0x45, 0x07,
   460  	0x6a, 0x99, 0xaf, 0x11, 0x98, 0x5b, 0x0f, 0xfe, 0x17, 0x76, 0xe1, 0x25, 0x44, 0xdd, 0x8e, 0xcd,
   461  	0x95, 0x9a, 0xdb, 0x85, 0x87, 0xb9, 0xd0, 0x70, 0x72, 0x23, 0xf0, 0xac, 0x63, 0x73, 0xaa, 0x18,
   462  	0xa3, 0xfa, 0x8e, 0x8c, 0xee, 0x3b, 0x64, 0xda, 0xc4, 0xa0, 0x69, 0xe3, 0x14, 0x0d, 0x99, 0x19,
   463  	0xbb, 0xb1, 0x99, 0xc3, 0x56, 0xc4, 0x47, 0x58, 0xb1, 0x0f, 0x73, 0xa1, 0xc9, 0xf6, 0x44, 0xe2,
   464  	0x57, 0x10, 0xbf, 0x84, 0x79, 0x4e, 0xe0, 0xc5, 0xa3, 0x01, 0x2f, 0x46, 0x30, 0x2a, 0x0a, 0x4d,
   465  	0x03, 0x16, 0x9e, 0x87, 0x18, 0x97, 0x52, 0xc8, 0xc0, 0x85, 0x6e, 0x92, 0x59, 0x81, 0x45, 0x53,
   466  	0xb8, 0x7b, 0xbb, 0x9d, 0x60, 0x83, 0x2a, 0x6d, 0xcf, 0x6d, 0x8a, 0x63, 0xab, 0xd7, 0xf0, 0xd5,
   467  	0x5b, 0xb8, 0x04, 0x0f, 0xc6, 0xb0, 0x1d, 0x5b, 0x58, 0x0e, 0x5f, 0x5e, 0x81, 0x7b, 0x63, 0xa6,
   468  	0x84, 0xa7, 0x20, 0x5a, 0x32, 0x4b, 0x4c, 0xd7, 0x70, 0x02, 0x26, 0x0d, 0x73, 0xbb, 0x6a, 0x54,
   469  	0x0d, 0x1d, 0x61, 0x80, 0xf8, 0x6a, 0xd1, 0x5c, 0x35, 0x36, 0xf5, 0xc8, 0x72, 0x03, 0xee, 0x8f,
   470  	0xd5, 0x85, 0xe3, 0x10, 0x29, 0xbf, 0xd5, 0x35, 0x9c, 0x86, 0x45, 0x56, 0x2e, 0xd7, 0xde, 0x15,
   471  	0xcd, 0x8f, 0x35, 0x6a, 0x6c, 0x57, 0x8d, 0x0a, 0xab, 0xd4, 0xb6, 0x0c, 0x5a, 0x63, 0x86, 0x59,
   472  	0x34, 0x99, 0x8e, 0xf0, 0x34, 0xc4, 0x0c, 0x4a, 0xcb, 0x54, 0x8f, 0xe0, 0x3b, 0x70, 0xab, 0xb2,
   473  	0x51, 0x65, 0xac, 0x64, 0xbe, 0xa9, 0xad, 0x95, 0xdf, 0x9b, 0xfa, 0x44, 0xe1, 0x17, 0x0a, 0xf9,
   474  	0xbd, 0x2e, 0x64, 0xef, 0x2a, 0x55, 0x21, 0x11, 0x84, 0x9b, 0x42, 0xd8, 0x78, 0x69, 0xc0, 0xee,
   475  	0xff, 0xef, 0x6b, 0x6a, 0x69, 0xdc, 0x3c, 0x02, 0x6c, 0x46, 0xcb, 0xa2, 0xa7, 0x08, 0x5b, 0xb0,
   476  	0x30, 0xd2, 0x32, 0xfc, 0x78, 0x80, 0x7f, 0xd5, 0x50, 0x52, 0xcb, 0x37, 0x81, 0x76, 0x27, 0x50,
   477  	0xb0, 0x61, 0x3e, 0xac, 0xae, 0xbf, 0x4e, 0x1f, 0x60, 0xa6, 0x17, 0x2b, 0x7d, 0xe9, 0xeb, 0xae,
   478  	0x56, 0x2a, 0x7d, 0xdd, 0xc2, 0x75, 0x15, 0xbe, 0x2e, 0x9e, 0x9c, 0x11, 0xed, 0xf4, 0x8c, 0x68,
   479  	0x17, 0x67, 0x04, 0x7d, 0xf1, 0x09, 0xfa, 0xee, 0x13, 0xf4, 0xc3, 0x27, 0xe8, 0xc4, 0x27, 0xe8,
   480  	0xb7, 0x4f, 0xd0, 0x1f, 0x9f, 0x68, 0x17, 0x3e, 0x41, 0xdf, 0xce, 0x89, 0x76, 0x72, 0x4e, 0xb4,
   481  	0xd3, 0x73, 0xa2, 0x7d, 0x0a, 0x3f, 0xbb, 0xf5, 0xb8, 0x7a, 0x18, 0x9f, 0xfd, 0x0d, 0x00, 0x00,
   482  	0xff, 0xff, 0x49, 0x11, 0xf9, 0x34, 0x9d, 0x05, 0x00, 0x00,
   483  }
   484  
   485  func (x FrontendToSchedulerType) String() string {
   486  	s, ok := FrontendToSchedulerType_name[int32(x)]
   487  	if ok {
   488  		return s
   489  	}
   490  	return strconv.Itoa(int(x))
   491  }
   492  func (x SchedulerToFrontendStatus) String() string {
   493  	s, ok := SchedulerToFrontendStatus_name[int32(x)]
   494  	if ok {
   495  		return s
   496  	}
   497  	return strconv.Itoa(int(x))
   498  }
   499  func (this *QuerierToScheduler) Equal(that interface{}) bool {
   500  	if that == nil {
   501  		return this == nil
   502  	}
   503  
   504  	that1, ok := that.(*QuerierToScheduler)
   505  	if !ok {
   506  		that2, ok := that.(QuerierToScheduler)
   507  		if ok {
   508  			that1 = &that2
   509  		} else {
   510  			return false
   511  		}
   512  	}
   513  	if that1 == nil {
   514  		return this == nil
   515  	} else if this == nil {
   516  		return false
   517  	}
   518  	if this.QuerierID != that1.QuerierID {
   519  		return false
   520  	}
   521  	return true
   522  }
   523  func (this *SchedulerToQuerier) Equal(that interface{}) bool {
   524  	if that == nil {
   525  		return this == nil
   526  	}
   527  
   528  	that1, ok := that.(*SchedulerToQuerier)
   529  	if !ok {
   530  		that2, ok := that.(SchedulerToQuerier)
   531  		if ok {
   532  			that1 = &that2
   533  		} else {
   534  			return false
   535  		}
   536  	}
   537  	if that1 == nil {
   538  		return this == nil
   539  	} else if this == nil {
   540  		return false
   541  	}
   542  	if this.QueryID != that1.QueryID {
   543  		return false
   544  	}
   545  	if !this.HttpRequest.Equal(that1.HttpRequest) {
   546  		return false
   547  	}
   548  	if this.FrontendAddress != that1.FrontendAddress {
   549  		return false
   550  	}
   551  	if this.UserID != that1.UserID {
   552  		return false
   553  	}
   554  	if this.StatsEnabled != that1.StatsEnabled {
   555  		return false
   556  	}
   557  	return true
   558  }
   559  func (this *FrontendToScheduler) Equal(that interface{}) bool {
   560  	if that == nil {
   561  		return this == nil
   562  	}
   563  
   564  	that1, ok := that.(*FrontendToScheduler)
   565  	if !ok {
   566  		that2, ok := that.(FrontendToScheduler)
   567  		if ok {
   568  			that1 = &that2
   569  		} else {
   570  			return false
   571  		}
   572  	}
   573  	if that1 == nil {
   574  		return this == nil
   575  	} else if this == nil {
   576  		return false
   577  	}
   578  	if this.Type != that1.Type {
   579  		return false
   580  	}
   581  	if this.FrontendAddress != that1.FrontendAddress {
   582  		return false
   583  	}
   584  	if this.QueryID != that1.QueryID {
   585  		return false
   586  	}
   587  	if this.UserID != that1.UserID {
   588  		return false
   589  	}
   590  	if !this.HttpRequest.Equal(that1.HttpRequest) {
   591  		return false
   592  	}
   593  	if this.StatsEnabled != that1.StatsEnabled {
   594  		return false
   595  	}
   596  	return true
   597  }
   598  func (this *SchedulerToFrontend) Equal(that interface{}) bool {
   599  	if that == nil {
   600  		return this == nil
   601  	}
   602  
   603  	that1, ok := that.(*SchedulerToFrontend)
   604  	if !ok {
   605  		that2, ok := that.(SchedulerToFrontend)
   606  		if ok {
   607  			that1 = &that2
   608  		} else {
   609  			return false
   610  		}
   611  	}
   612  	if that1 == nil {
   613  		return this == nil
   614  	} else if this == nil {
   615  		return false
   616  	}
   617  	if this.Status != that1.Status {
   618  		return false
   619  	}
   620  	if this.Error != that1.Error {
   621  		return false
   622  	}
   623  	return true
   624  }
   625  func (this *NotifyQuerierShutdownRequest) Equal(that interface{}) bool {
   626  	if that == nil {
   627  		return this == nil
   628  	}
   629  
   630  	that1, ok := that.(*NotifyQuerierShutdownRequest)
   631  	if !ok {
   632  		that2, ok := that.(NotifyQuerierShutdownRequest)
   633  		if ok {
   634  			that1 = &that2
   635  		} else {
   636  			return false
   637  		}
   638  	}
   639  	if that1 == nil {
   640  		return this == nil
   641  	} else if this == nil {
   642  		return false
   643  	}
   644  	if this.QuerierID != that1.QuerierID {
   645  		return false
   646  	}
   647  	return true
   648  }
   649  func (this *NotifyQuerierShutdownResponse) Equal(that interface{}) bool {
   650  	if that == nil {
   651  		return this == nil
   652  	}
   653  
   654  	that1, ok := that.(*NotifyQuerierShutdownResponse)
   655  	if !ok {
   656  		that2, ok := that.(NotifyQuerierShutdownResponse)
   657  		if ok {
   658  			that1 = &that2
   659  		} else {
   660  			return false
   661  		}
   662  	}
   663  	if that1 == nil {
   664  		return this == nil
   665  	} else if this == nil {
   666  		return false
   667  	}
   668  	return true
   669  }
   670  func (this *QuerierToScheduler) GoString() string {
   671  	if this == nil {
   672  		return "nil"
   673  	}
   674  	s := make([]string, 0, 5)
   675  	s = append(s, "&schedulerpb.QuerierToScheduler{")
   676  	s = append(s, "QuerierID: "+fmt.Sprintf("%#v", this.QuerierID)+",\n")
   677  	s = append(s, "}")
   678  	return strings.Join(s, "")
   679  }
   680  func (this *SchedulerToQuerier) GoString() string {
   681  	if this == nil {
   682  		return "nil"
   683  	}
   684  	s := make([]string, 0, 9)
   685  	s = append(s, "&schedulerpb.SchedulerToQuerier{")
   686  	s = append(s, "QueryID: "+fmt.Sprintf("%#v", this.QueryID)+",\n")
   687  	if this.HttpRequest != nil {
   688  		s = append(s, "HttpRequest: "+fmt.Sprintf("%#v", this.HttpRequest)+",\n")
   689  	}
   690  	s = append(s, "FrontendAddress: "+fmt.Sprintf("%#v", this.FrontendAddress)+",\n")
   691  	s = append(s, "UserID: "+fmt.Sprintf("%#v", this.UserID)+",\n")
   692  	s = append(s, "StatsEnabled: "+fmt.Sprintf("%#v", this.StatsEnabled)+",\n")
   693  	s = append(s, "}")
   694  	return strings.Join(s, "")
   695  }
   696  func (this *FrontendToScheduler) GoString() string {
   697  	if this == nil {
   698  		return "nil"
   699  	}
   700  	s := make([]string, 0, 10)
   701  	s = append(s, "&schedulerpb.FrontendToScheduler{")
   702  	s = append(s, "Type: "+fmt.Sprintf("%#v", this.Type)+",\n")
   703  	s = append(s, "FrontendAddress: "+fmt.Sprintf("%#v", this.FrontendAddress)+",\n")
   704  	s = append(s, "QueryID: "+fmt.Sprintf("%#v", this.QueryID)+",\n")
   705  	s = append(s, "UserID: "+fmt.Sprintf("%#v", this.UserID)+",\n")
   706  	if this.HttpRequest != nil {
   707  		s = append(s, "HttpRequest: "+fmt.Sprintf("%#v", this.HttpRequest)+",\n")
   708  	}
   709  	s = append(s, "StatsEnabled: "+fmt.Sprintf("%#v", this.StatsEnabled)+",\n")
   710  	s = append(s, "}")
   711  	return strings.Join(s, "")
   712  }
   713  func (this *SchedulerToFrontend) GoString() string {
   714  	if this == nil {
   715  		return "nil"
   716  	}
   717  	s := make([]string, 0, 6)
   718  	s = append(s, "&schedulerpb.SchedulerToFrontend{")
   719  	s = append(s, "Status: "+fmt.Sprintf("%#v", this.Status)+",\n")
   720  	s = append(s, "Error: "+fmt.Sprintf("%#v", this.Error)+",\n")
   721  	s = append(s, "}")
   722  	return strings.Join(s, "")
   723  }
   724  func (this *NotifyQuerierShutdownRequest) GoString() string {
   725  	if this == nil {
   726  		return "nil"
   727  	}
   728  	s := make([]string, 0, 5)
   729  	s = append(s, "&schedulerpb.NotifyQuerierShutdownRequest{")
   730  	s = append(s, "QuerierID: "+fmt.Sprintf("%#v", this.QuerierID)+",\n")
   731  	s = append(s, "}")
   732  	return strings.Join(s, "")
   733  }
   734  func (this *NotifyQuerierShutdownResponse) GoString() string {
   735  	if this == nil {
   736  		return "nil"
   737  	}
   738  	s := make([]string, 0, 4)
   739  	s = append(s, "&schedulerpb.NotifyQuerierShutdownResponse{")
   740  	s = append(s, "}")
   741  	return strings.Join(s, "")
   742  }
   743  func valueToGoStringScheduler(v interface{}, typ string) string {
   744  	rv := reflect.ValueOf(v)
   745  	if rv.IsNil() {
   746  		return "nil"
   747  	}
   748  	pv := reflect.Indirect(rv).Interface()
   749  	return fmt.Sprintf("func(v %v) *%v { return &v } ( %#v )", typ, typ, pv)
   750  }
   751  
   752  // Reference imports to suppress errors if they are not otherwise used.
   753  var _ context.Context
   754  var _ grpc.ClientConn
   755  
   756  // This is a compile-time assertion to ensure that this generated file
   757  // is compatible with the grpc package it is being compiled against.
   758  const _ = grpc.SupportPackageIsVersion4
   759  
   760  // SchedulerForQuerierClient is the client API for SchedulerForQuerier service.
   761  //
   762  // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
   763  type SchedulerForQuerierClient interface {
   764  	// After calling this method, both Querier and Scheduler enter a loop, in which querier waits for
   765  	// "SchedulerToQuerier" messages containing HTTP requests and processes them. After processing the request,
   766  	// querier signals that it is ready to accept another one by sending empty QuerierToScheduler message.
   767  	//
   768  	// Long-running loop is used to detect broken connection between scheduler and querier. This is important
   769  	// for scheduler to keep a list of connected queriers up-to-date.
   770  	QuerierLoop(ctx context.Context, opts ...grpc.CallOption) (SchedulerForQuerier_QuerierLoopClient, error)
   771  	// The querier notifies the query-scheduler that it started a graceful shutdown.
   772  	NotifyQuerierShutdown(ctx context.Context, in *NotifyQuerierShutdownRequest, opts ...grpc.CallOption) (*NotifyQuerierShutdownResponse, error)
   773  }
   774  
   775  type schedulerForQuerierClient struct {
   776  	cc *grpc.ClientConn
   777  }
   778  
   779  func NewSchedulerForQuerierClient(cc *grpc.ClientConn) SchedulerForQuerierClient {
   780  	return &schedulerForQuerierClient{cc}
   781  }
   782  
   783  func (c *schedulerForQuerierClient) QuerierLoop(ctx context.Context, opts ...grpc.CallOption) (SchedulerForQuerier_QuerierLoopClient, error) {
   784  	stream, err := c.cc.NewStream(ctx, &_SchedulerForQuerier_serviceDesc.Streams[0], "/schedulerpb.SchedulerForQuerier/QuerierLoop", opts...)
   785  	if err != nil {
   786  		return nil, err
   787  	}
   788  	x := &schedulerForQuerierQuerierLoopClient{stream}
   789  	return x, nil
   790  }
   791  
   792  type SchedulerForQuerier_QuerierLoopClient interface {
   793  	Send(*QuerierToScheduler) error
   794  	Recv() (*SchedulerToQuerier, error)
   795  	grpc.ClientStream
   796  }
   797  
   798  type schedulerForQuerierQuerierLoopClient struct {
   799  	grpc.ClientStream
   800  }
   801  
   802  func (x *schedulerForQuerierQuerierLoopClient) Send(m *QuerierToScheduler) error {
   803  	return x.ClientStream.SendMsg(m)
   804  }
   805  
   806  func (x *schedulerForQuerierQuerierLoopClient) Recv() (*SchedulerToQuerier, error) {
   807  	m := new(SchedulerToQuerier)
   808  	if err := x.ClientStream.RecvMsg(m); err != nil {
   809  		return nil, err
   810  	}
   811  	return m, nil
   812  }
   813  
   814  func (c *schedulerForQuerierClient) NotifyQuerierShutdown(ctx context.Context, in *NotifyQuerierShutdownRequest, opts ...grpc.CallOption) (*NotifyQuerierShutdownResponse, error) {
   815  	out := new(NotifyQuerierShutdownResponse)
   816  	err := c.cc.Invoke(ctx, "/schedulerpb.SchedulerForQuerier/NotifyQuerierShutdown", in, out, opts...)
   817  	if err != nil {
   818  		return nil, err
   819  	}
   820  	return out, nil
   821  }
   822  
   823  // SchedulerForQuerierServer is the server API for SchedulerForQuerier service.
   824  type SchedulerForQuerierServer interface {
   825  	// After calling this method, both Querier and Scheduler enter a loop, in which querier waits for
   826  	// "SchedulerToQuerier" messages containing HTTP requests and processes them. After processing the request,
   827  	// querier signals that it is ready to accept another one by sending empty QuerierToScheduler message.
   828  	//
   829  	// Long-running loop is used to detect broken connection between scheduler and querier. This is important
   830  	// for scheduler to keep a list of connected queriers up-to-date.
   831  	QuerierLoop(SchedulerForQuerier_QuerierLoopServer) error
   832  	// The querier notifies the query-scheduler that it started a graceful shutdown.
   833  	NotifyQuerierShutdown(context.Context, *NotifyQuerierShutdownRequest) (*NotifyQuerierShutdownResponse, error)
   834  }
   835  
   836  // UnimplementedSchedulerForQuerierServer can be embedded to have forward compatible implementations.
   837  type UnimplementedSchedulerForQuerierServer struct {
   838  }
   839  
   840  func (*UnimplementedSchedulerForQuerierServer) QuerierLoop(srv SchedulerForQuerier_QuerierLoopServer) error {
   841  	return status.Errorf(codes.Unimplemented, "method QuerierLoop not implemented")
   842  }
   843  func (*UnimplementedSchedulerForQuerierServer) NotifyQuerierShutdown(ctx context.Context, req *NotifyQuerierShutdownRequest) (*NotifyQuerierShutdownResponse, error) {
   844  	return nil, status.Errorf(codes.Unimplemented, "method NotifyQuerierShutdown not implemented")
   845  }
   846  
   847  func RegisterSchedulerForQuerierServer(s *grpc.Server, srv SchedulerForQuerierServer) {
   848  	s.RegisterService(&_SchedulerForQuerier_serviceDesc, srv)
   849  }
   850  
   851  func _SchedulerForQuerier_QuerierLoop_Handler(srv interface{}, stream grpc.ServerStream) error {
   852  	return srv.(SchedulerForQuerierServer).QuerierLoop(&schedulerForQuerierQuerierLoopServer{stream})
   853  }
   854  
   855  type SchedulerForQuerier_QuerierLoopServer interface {
   856  	Send(*SchedulerToQuerier) error
   857  	Recv() (*QuerierToScheduler, error)
   858  	grpc.ServerStream
   859  }
   860  
   861  type schedulerForQuerierQuerierLoopServer struct {
   862  	grpc.ServerStream
   863  }
   864  
   865  func (x *schedulerForQuerierQuerierLoopServer) Send(m *SchedulerToQuerier) error {
   866  	return x.ServerStream.SendMsg(m)
   867  }
   868  
   869  func (x *schedulerForQuerierQuerierLoopServer) Recv() (*QuerierToScheduler, error) {
   870  	m := new(QuerierToScheduler)
   871  	if err := x.ServerStream.RecvMsg(m); err != nil {
   872  		return nil, err
   873  	}
   874  	return m, nil
   875  }
   876  
   877  func _SchedulerForQuerier_NotifyQuerierShutdown_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
   878  	in := new(NotifyQuerierShutdownRequest)
   879  	if err := dec(in); err != nil {
   880  		return nil, err
   881  	}
   882  	if interceptor == nil {
   883  		return srv.(SchedulerForQuerierServer).NotifyQuerierShutdown(ctx, in)
   884  	}
   885  	info := &grpc.UnaryServerInfo{
   886  		Server:     srv,
   887  		FullMethod: "/schedulerpb.SchedulerForQuerier/NotifyQuerierShutdown",
   888  	}
   889  	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
   890  		return srv.(SchedulerForQuerierServer).NotifyQuerierShutdown(ctx, req.(*NotifyQuerierShutdownRequest))
   891  	}
   892  	return interceptor(ctx, in, info, handler)
   893  }
   894  
   895  var _SchedulerForQuerier_serviceDesc = grpc.ServiceDesc{
   896  	ServiceName: "schedulerpb.SchedulerForQuerier",
   897  	HandlerType: (*SchedulerForQuerierServer)(nil),
   898  	Methods: []grpc.MethodDesc{
   899  		{
   900  			MethodName: "NotifyQuerierShutdown",
   901  			Handler:    _SchedulerForQuerier_NotifyQuerierShutdown_Handler,
   902  		},
   903  	},
   904  	Streams: []grpc.StreamDesc{
   905  		{
   906  			StreamName:    "QuerierLoop",
   907  			Handler:       _SchedulerForQuerier_QuerierLoop_Handler,
   908  			ServerStreams: true,
   909  			ClientStreams: true,
   910  		},
   911  	},
   912  	Metadata: "scheduler.proto",
   913  }
   914  
   915  // SchedulerForFrontendClient is the client API for SchedulerForFrontend service.
   916  //
   917  // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream.
   918  type SchedulerForFrontendClient interface {
   919  	// After calling this method, both Frontend and Scheduler enter a loop. Frontend will keep sending ENQUEUE and
   920  	// CANCEL requests, and scheduler is expected to process them. Scheduler returns one response for each request.
   921  	//
   922  	// Long-running loop is used to detect broken connection between frontend and scheduler. This is important for both
   923  	// parties... if connection breaks, frontend can cancel (and possibly retry on different scheduler) all pending
   924  	// requests sent to this scheduler, while scheduler can cancel queued requests from given frontend.
   925  	FrontendLoop(ctx context.Context, opts ...grpc.CallOption) (SchedulerForFrontend_FrontendLoopClient, error)
   926  }
   927  
   928  type schedulerForFrontendClient struct {
   929  	cc *grpc.ClientConn
   930  }
   931  
   932  func NewSchedulerForFrontendClient(cc *grpc.ClientConn) SchedulerForFrontendClient {
   933  	return &schedulerForFrontendClient{cc}
   934  }
   935  
   936  func (c *schedulerForFrontendClient) FrontendLoop(ctx context.Context, opts ...grpc.CallOption) (SchedulerForFrontend_FrontendLoopClient, error) {
   937  	stream, err := c.cc.NewStream(ctx, &_SchedulerForFrontend_serviceDesc.Streams[0], "/schedulerpb.SchedulerForFrontend/FrontendLoop", opts...)
   938  	if err != nil {
   939  		return nil, err
   940  	}
   941  	x := &schedulerForFrontendFrontendLoopClient{stream}
   942  	return x, nil
   943  }
   944  
   945  type SchedulerForFrontend_FrontendLoopClient interface {
   946  	Send(*FrontendToScheduler) error
   947  	Recv() (*SchedulerToFrontend, error)
   948  	grpc.ClientStream
   949  }
   950  
   951  type schedulerForFrontendFrontendLoopClient struct {
   952  	grpc.ClientStream
   953  }
   954  
   955  func (x *schedulerForFrontendFrontendLoopClient) Send(m *FrontendToScheduler) error {
   956  	return x.ClientStream.SendMsg(m)
   957  }
   958  
   959  func (x *schedulerForFrontendFrontendLoopClient) Recv() (*SchedulerToFrontend, error) {
   960  	m := new(SchedulerToFrontend)
   961  	if err := x.ClientStream.RecvMsg(m); err != nil {
   962  		return nil, err
   963  	}
   964  	return m, nil
   965  }
   966  
   967  // SchedulerForFrontendServer is the server API for SchedulerForFrontend service.
   968  type SchedulerForFrontendServer interface {
   969  	// After calling this method, both Frontend and Scheduler enter a loop. Frontend will keep sending ENQUEUE and
   970  	// CANCEL requests, and scheduler is expected to process them. Scheduler returns one response for each request.
   971  	//
   972  	// Long-running loop is used to detect broken connection between frontend and scheduler. This is important for both
   973  	// parties... if connection breaks, frontend can cancel (and possibly retry on different scheduler) all pending
   974  	// requests sent to this scheduler, while scheduler can cancel queued requests from given frontend.
   975  	FrontendLoop(SchedulerForFrontend_FrontendLoopServer) error
   976  }
   977  
   978  // UnimplementedSchedulerForFrontendServer can be embedded to have forward compatible implementations.
   979  type UnimplementedSchedulerForFrontendServer struct {
   980  }
   981  
   982  func (*UnimplementedSchedulerForFrontendServer) FrontendLoop(srv SchedulerForFrontend_FrontendLoopServer) error {
   983  	return status.Errorf(codes.Unimplemented, "method FrontendLoop not implemented")
   984  }
   985  
   986  func RegisterSchedulerForFrontendServer(s *grpc.Server, srv SchedulerForFrontendServer) {
   987  	s.RegisterService(&_SchedulerForFrontend_serviceDesc, srv)
   988  }
   989  
   990  func _SchedulerForFrontend_FrontendLoop_Handler(srv interface{}, stream grpc.ServerStream) error {
   991  	return srv.(SchedulerForFrontendServer).FrontendLoop(&schedulerForFrontendFrontendLoopServer{stream})
   992  }
   993  
   994  type SchedulerForFrontend_FrontendLoopServer interface {
   995  	Send(*SchedulerToFrontend) error
   996  	Recv() (*FrontendToScheduler, error)
   997  	grpc.ServerStream
   998  }
   999  
  1000  type schedulerForFrontendFrontendLoopServer struct {
  1001  	grpc.ServerStream
  1002  }
  1003  
  1004  func (x *schedulerForFrontendFrontendLoopServer) Send(m *SchedulerToFrontend) error {
  1005  	return x.ServerStream.SendMsg(m)
  1006  }
  1007  
  1008  func (x *schedulerForFrontendFrontendLoopServer) Recv() (*FrontendToScheduler, error) {
  1009  	m := new(FrontendToScheduler)
  1010  	if err := x.ServerStream.RecvMsg(m); err != nil {
  1011  		return nil, err
  1012  	}
  1013  	return m, nil
  1014  }
  1015  
  1016  var _SchedulerForFrontend_serviceDesc = grpc.ServiceDesc{
  1017  	ServiceName: "schedulerpb.SchedulerForFrontend",
  1018  	HandlerType: (*SchedulerForFrontendServer)(nil),
  1019  	Methods:     []grpc.MethodDesc{},
  1020  	Streams: []grpc.StreamDesc{
  1021  		{
  1022  			StreamName:    "FrontendLoop",
  1023  			Handler:       _SchedulerForFrontend_FrontendLoop_Handler,
  1024  			ServerStreams: true,
  1025  			ClientStreams: true,
  1026  		},
  1027  	},
  1028  	Metadata: "scheduler.proto",
  1029  }
  1030  
  1031  func (m *QuerierToScheduler) Marshal() (dAtA []byte, err error) {
  1032  	size := m.Size()
  1033  	dAtA = make([]byte, size)
  1034  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1035  	if err != nil {
  1036  		return nil, err
  1037  	}
  1038  	return dAtA[:n], nil
  1039  }
  1040  
  1041  func (m *QuerierToScheduler) MarshalTo(dAtA []byte) (int, error) {
  1042  	size := m.Size()
  1043  	return m.MarshalToSizedBuffer(dAtA[:size])
  1044  }
  1045  
  1046  func (m *QuerierToScheduler) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1047  	i := len(dAtA)
  1048  	_ = i
  1049  	var l int
  1050  	_ = l
  1051  	if len(m.QuerierID) > 0 {
  1052  		i -= len(m.QuerierID)
  1053  		copy(dAtA[i:], m.QuerierID)
  1054  		i = encodeVarintScheduler(dAtA, i, uint64(len(m.QuerierID)))
  1055  		i--
  1056  		dAtA[i] = 0xa
  1057  	}
  1058  	return len(dAtA) - i, nil
  1059  }
  1060  
  1061  func (m *SchedulerToQuerier) Marshal() (dAtA []byte, err error) {
  1062  	size := m.Size()
  1063  	dAtA = make([]byte, size)
  1064  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1065  	if err != nil {
  1066  		return nil, err
  1067  	}
  1068  	return dAtA[:n], nil
  1069  }
  1070  
  1071  func (m *SchedulerToQuerier) MarshalTo(dAtA []byte) (int, error) {
  1072  	size := m.Size()
  1073  	return m.MarshalToSizedBuffer(dAtA[:size])
  1074  }
  1075  
  1076  func (m *SchedulerToQuerier) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1077  	i := len(dAtA)
  1078  	_ = i
  1079  	var l int
  1080  	_ = l
  1081  	if m.StatsEnabled {
  1082  		i--
  1083  		if m.StatsEnabled {
  1084  			dAtA[i] = 1
  1085  		} else {
  1086  			dAtA[i] = 0
  1087  		}
  1088  		i--
  1089  		dAtA[i] = 0x28
  1090  	}
  1091  	if len(m.UserID) > 0 {
  1092  		i -= len(m.UserID)
  1093  		copy(dAtA[i:], m.UserID)
  1094  		i = encodeVarintScheduler(dAtA, i, uint64(len(m.UserID)))
  1095  		i--
  1096  		dAtA[i] = 0x22
  1097  	}
  1098  	if len(m.FrontendAddress) > 0 {
  1099  		i -= len(m.FrontendAddress)
  1100  		copy(dAtA[i:], m.FrontendAddress)
  1101  		i = encodeVarintScheduler(dAtA, i, uint64(len(m.FrontendAddress)))
  1102  		i--
  1103  		dAtA[i] = 0x1a
  1104  	}
  1105  	if m.HttpRequest != nil {
  1106  		{
  1107  			size, err := m.HttpRequest.MarshalToSizedBuffer(dAtA[:i])
  1108  			if err != nil {
  1109  				return 0, err
  1110  			}
  1111  			i -= size
  1112  			i = encodeVarintScheduler(dAtA, i, uint64(size))
  1113  		}
  1114  		i--
  1115  		dAtA[i] = 0x12
  1116  	}
  1117  	if m.QueryID != 0 {
  1118  		i = encodeVarintScheduler(dAtA, i, uint64(m.QueryID))
  1119  		i--
  1120  		dAtA[i] = 0x8
  1121  	}
  1122  	return len(dAtA) - i, nil
  1123  }
  1124  
  1125  func (m *FrontendToScheduler) Marshal() (dAtA []byte, err error) {
  1126  	size := m.Size()
  1127  	dAtA = make([]byte, size)
  1128  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1129  	if err != nil {
  1130  		return nil, err
  1131  	}
  1132  	return dAtA[:n], nil
  1133  }
  1134  
  1135  func (m *FrontendToScheduler) MarshalTo(dAtA []byte) (int, error) {
  1136  	size := m.Size()
  1137  	return m.MarshalToSizedBuffer(dAtA[:size])
  1138  }
  1139  
  1140  func (m *FrontendToScheduler) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1141  	i := len(dAtA)
  1142  	_ = i
  1143  	var l int
  1144  	_ = l
  1145  	if m.StatsEnabled {
  1146  		i--
  1147  		if m.StatsEnabled {
  1148  			dAtA[i] = 1
  1149  		} else {
  1150  			dAtA[i] = 0
  1151  		}
  1152  		i--
  1153  		dAtA[i] = 0x30
  1154  	}
  1155  	if m.HttpRequest != nil {
  1156  		{
  1157  			size, err := m.HttpRequest.MarshalToSizedBuffer(dAtA[:i])
  1158  			if err != nil {
  1159  				return 0, err
  1160  			}
  1161  			i -= size
  1162  			i = encodeVarintScheduler(dAtA, i, uint64(size))
  1163  		}
  1164  		i--
  1165  		dAtA[i] = 0x2a
  1166  	}
  1167  	if len(m.UserID) > 0 {
  1168  		i -= len(m.UserID)
  1169  		copy(dAtA[i:], m.UserID)
  1170  		i = encodeVarintScheduler(dAtA, i, uint64(len(m.UserID)))
  1171  		i--
  1172  		dAtA[i] = 0x22
  1173  	}
  1174  	if m.QueryID != 0 {
  1175  		i = encodeVarintScheduler(dAtA, i, uint64(m.QueryID))
  1176  		i--
  1177  		dAtA[i] = 0x18
  1178  	}
  1179  	if len(m.FrontendAddress) > 0 {
  1180  		i -= len(m.FrontendAddress)
  1181  		copy(dAtA[i:], m.FrontendAddress)
  1182  		i = encodeVarintScheduler(dAtA, i, uint64(len(m.FrontendAddress)))
  1183  		i--
  1184  		dAtA[i] = 0x12
  1185  	}
  1186  	if m.Type != 0 {
  1187  		i = encodeVarintScheduler(dAtA, i, uint64(m.Type))
  1188  		i--
  1189  		dAtA[i] = 0x8
  1190  	}
  1191  	return len(dAtA) - i, nil
  1192  }
  1193  
  1194  func (m *SchedulerToFrontend) Marshal() (dAtA []byte, err error) {
  1195  	size := m.Size()
  1196  	dAtA = make([]byte, size)
  1197  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1198  	if err != nil {
  1199  		return nil, err
  1200  	}
  1201  	return dAtA[:n], nil
  1202  }
  1203  
  1204  func (m *SchedulerToFrontend) MarshalTo(dAtA []byte) (int, error) {
  1205  	size := m.Size()
  1206  	return m.MarshalToSizedBuffer(dAtA[:size])
  1207  }
  1208  
  1209  func (m *SchedulerToFrontend) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1210  	i := len(dAtA)
  1211  	_ = i
  1212  	var l int
  1213  	_ = l
  1214  	if len(m.Error) > 0 {
  1215  		i -= len(m.Error)
  1216  		copy(dAtA[i:], m.Error)
  1217  		i = encodeVarintScheduler(dAtA, i, uint64(len(m.Error)))
  1218  		i--
  1219  		dAtA[i] = 0x12
  1220  	}
  1221  	if m.Status != 0 {
  1222  		i = encodeVarintScheduler(dAtA, i, uint64(m.Status))
  1223  		i--
  1224  		dAtA[i] = 0x8
  1225  	}
  1226  	return len(dAtA) - i, nil
  1227  }
  1228  
  1229  func (m *NotifyQuerierShutdownRequest) Marshal() (dAtA []byte, err error) {
  1230  	size := m.Size()
  1231  	dAtA = make([]byte, size)
  1232  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1233  	if err != nil {
  1234  		return nil, err
  1235  	}
  1236  	return dAtA[:n], nil
  1237  }
  1238  
  1239  func (m *NotifyQuerierShutdownRequest) MarshalTo(dAtA []byte) (int, error) {
  1240  	size := m.Size()
  1241  	return m.MarshalToSizedBuffer(dAtA[:size])
  1242  }
  1243  
  1244  func (m *NotifyQuerierShutdownRequest) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1245  	i := len(dAtA)
  1246  	_ = i
  1247  	var l int
  1248  	_ = l
  1249  	if len(m.QuerierID) > 0 {
  1250  		i -= len(m.QuerierID)
  1251  		copy(dAtA[i:], m.QuerierID)
  1252  		i = encodeVarintScheduler(dAtA, i, uint64(len(m.QuerierID)))
  1253  		i--
  1254  		dAtA[i] = 0xa
  1255  	}
  1256  	return len(dAtA) - i, nil
  1257  }
  1258  
  1259  func (m *NotifyQuerierShutdownResponse) Marshal() (dAtA []byte, err error) {
  1260  	size := m.Size()
  1261  	dAtA = make([]byte, size)
  1262  	n, err := m.MarshalToSizedBuffer(dAtA[:size])
  1263  	if err != nil {
  1264  		return nil, err
  1265  	}
  1266  	return dAtA[:n], nil
  1267  }
  1268  
  1269  func (m *NotifyQuerierShutdownResponse) MarshalTo(dAtA []byte) (int, error) {
  1270  	size := m.Size()
  1271  	return m.MarshalToSizedBuffer(dAtA[:size])
  1272  }
  1273  
  1274  func (m *NotifyQuerierShutdownResponse) MarshalToSizedBuffer(dAtA []byte) (int, error) {
  1275  	i := len(dAtA)
  1276  	_ = i
  1277  	var l int
  1278  	_ = l
  1279  	return len(dAtA) - i, nil
  1280  }
  1281  
  1282  func encodeVarintScheduler(dAtA []byte, offset int, v uint64) int {
  1283  	offset -= sovScheduler(v)
  1284  	base := offset
  1285  	for v >= 1<<7 {
  1286  		dAtA[offset] = uint8(v&0x7f | 0x80)
  1287  		v >>= 7
  1288  		offset++
  1289  	}
  1290  	dAtA[offset] = uint8(v)
  1291  	return base
  1292  }
  1293  func (m *QuerierToScheduler) Size() (n int) {
  1294  	if m == nil {
  1295  		return 0
  1296  	}
  1297  	var l int
  1298  	_ = l
  1299  	l = len(m.QuerierID)
  1300  	if l > 0 {
  1301  		n += 1 + l + sovScheduler(uint64(l))
  1302  	}
  1303  	return n
  1304  }
  1305  
  1306  func (m *SchedulerToQuerier) Size() (n int) {
  1307  	if m == nil {
  1308  		return 0
  1309  	}
  1310  	var l int
  1311  	_ = l
  1312  	if m.QueryID != 0 {
  1313  		n += 1 + sovScheduler(uint64(m.QueryID))
  1314  	}
  1315  	if m.HttpRequest != nil {
  1316  		l = m.HttpRequest.Size()
  1317  		n += 1 + l + sovScheduler(uint64(l))
  1318  	}
  1319  	l = len(m.FrontendAddress)
  1320  	if l > 0 {
  1321  		n += 1 + l + sovScheduler(uint64(l))
  1322  	}
  1323  	l = len(m.UserID)
  1324  	if l > 0 {
  1325  		n += 1 + l + sovScheduler(uint64(l))
  1326  	}
  1327  	if m.StatsEnabled {
  1328  		n += 2
  1329  	}
  1330  	return n
  1331  }
  1332  
  1333  func (m *FrontendToScheduler) Size() (n int) {
  1334  	if m == nil {
  1335  		return 0
  1336  	}
  1337  	var l int
  1338  	_ = l
  1339  	if m.Type != 0 {
  1340  		n += 1 + sovScheduler(uint64(m.Type))
  1341  	}
  1342  	l = len(m.FrontendAddress)
  1343  	if l > 0 {
  1344  		n += 1 + l + sovScheduler(uint64(l))
  1345  	}
  1346  	if m.QueryID != 0 {
  1347  		n += 1 + sovScheduler(uint64(m.QueryID))
  1348  	}
  1349  	l = len(m.UserID)
  1350  	if l > 0 {
  1351  		n += 1 + l + sovScheduler(uint64(l))
  1352  	}
  1353  	if m.HttpRequest != nil {
  1354  		l = m.HttpRequest.Size()
  1355  		n += 1 + l + sovScheduler(uint64(l))
  1356  	}
  1357  	if m.StatsEnabled {
  1358  		n += 2
  1359  	}
  1360  	return n
  1361  }
  1362  
  1363  func (m *SchedulerToFrontend) Size() (n int) {
  1364  	if m == nil {
  1365  		return 0
  1366  	}
  1367  	var l int
  1368  	_ = l
  1369  	if m.Status != 0 {
  1370  		n += 1 + sovScheduler(uint64(m.Status))
  1371  	}
  1372  	l = len(m.Error)
  1373  	if l > 0 {
  1374  		n += 1 + l + sovScheduler(uint64(l))
  1375  	}
  1376  	return n
  1377  }
  1378  
  1379  func (m *NotifyQuerierShutdownRequest) Size() (n int) {
  1380  	if m == nil {
  1381  		return 0
  1382  	}
  1383  	var l int
  1384  	_ = l
  1385  	l = len(m.QuerierID)
  1386  	if l > 0 {
  1387  		n += 1 + l + sovScheduler(uint64(l))
  1388  	}
  1389  	return n
  1390  }
  1391  
  1392  func (m *NotifyQuerierShutdownResponse) Size() (n int) {
  1393  	if m == nil {
  1394  		return 0
  1395  	}
  1396  	var l int
  1397  	_ = l
  1398  	return n
  1399  }
  1400  
  1401  func sovScheduler(x uint64) (n int) {
  1402  	return (math_bits.Len64(x|1) + 6) / 7
  1403  }
  1404  func sozScheduler(x uint64) (n int) {
  1405  	return sovScheduler(uint64((x << 1) ^ uint64((int64(x) >> 63))))
  1406  }
  1407  func (this *QuerierToScheduler) String() string {
  1408  	if this == nil {
  1409  		return "nil"
  1410  	}
  1411  	s := strings.Join([]string{`&QuerierToScheduler{`,
  1412  		`QuerierID:` + fmt.Sprintf("%v", this.QuerierID) + `,`,
  1413  		`}`,
  1414  	}, "")
  1415  	return s
  1416  }
  1417  func (this *SchedulerToQuerier) String() string {
  1418  	if this == nil {
  1419  		return "nil"
  1420  	}
  1421  	s := strings.Join([]string{`&SchedulerToQuerier{`,
  1422  		`QueryID:` + fmt.Sprintf("%v", this.QueryID) + `,`,
  1423  		`HttpRequest:` + strings.Replace(fmt.Sprintf("%v", this.HttpRequest), "HTTPRequest", "httpgrpc.HTTPRequest", 1) + `,`,
  1424  		`FrontendAddress:` + fmt.Sprintf("%v", this.FrontendAddress) + `,`,
  1425  		`UserID:` + fmt.Sprintf("%v", this.UserID) + `,`,
  1426  		`StatsEnabled:` + fmt.Sprintf("%v", this.StatsEnabled) + `,`,
  1427  		`}`,
  1428  	}, "")
  1429  	return s
  1430  }
  1431  func (this *FrontendToScheduler) String() string {
  1432  	if this == nil {
  1433  		return "nil"
  1434  	}
  1435  	s := strings.Join([]string{`&FrontendToScheduler{`,
  1436  		`Type:` + fmt.Sprintf("%v", this.Type) + `,`,
  1437  		`FrontendAddress:` + fmt.Sprintf("%v", this.FrontendAddress) + `,`,
  1438  		`QueryID:` + fmt.Sprintf("%v", this.QueryID) + `,`,
  1439  		`UserID:` + fmt.Sprintf("%v", this.UserID) + `,`,
  1440  		`HttpRequest:` + strings.Replace(fmt.Sprintf("%v", this.HttpRequest), "HTTPRequest", "httpgrpc.HTTPRequest", 1) + `,`,
  1441  		`StatsEnabled:` + fmt.Sprintf("%v", this.StatsEnabled) + `,`,
  1442  		`}`,
  1443  	}, "")
  1444  	return s
  1445  }
  1446  func (this *SchedulerToFrontend) String() string {
  1447  	if this == nil {
  1448  		return "nil"
  1449  	}
  1450  	s := strings.Join([]string{`&SchedulerToFrontend{`,
  1451  		`Status:` + fmt.Sprintf("%v", this.Status) + `,`,
  1452  		`Error:` + fmt.Sprintf("%v", this.Error) + `,`,
  1453  		`}`,
  1454  	}, "")
  1455  	return s
  1456  }
  1457  func (this *NotifyQuerierShutdownRequest) String() string {
  1458  	if this == nil {
  1459  		return "nil"
  1460  	}
  1461  	s := strings.Join([]string{`&NotifyQuerierShutdownRequest{`,
  1462  		`QuerierID:` + fmt.Sprintf("%v", this.QuerierID) + `,`,
  1463  		`}`,
  1464  	}, "")
  1465  	return s
  1466  }
  1467  func (this *NotifyQuerierShutdownResponse) String() string {
  1468  	if this == nil {
  1469  		return "nil"
  1470  	}
  1471  	s := strings.Join([]string{`&NotifyQuerierShutdownResponse{`,
  1472  		`}`,
  1473  	}, "")
  1474  	return s
  1475  }
  1476  func valueToStringScheduler(v interface{}) string {
  1477  	rv := reflect.ValueOf(v)
  1478  	if rv.IsNil() {
  1479  		return "nil"
  1480  	}
  1481  	pv := reflect.Indirect(rv).Interface()
  1482  	return fmt.Sprintf("*%v", pv)
  1483  }
  1484  func (m *QuerierToScheduler) Unmarshal(dAtA []byte) error {
  1485  	l := len(dAtA)
  1486  	iNdEx := 0
  1487  	for iNdEx < l {
  1488  		preIndex := iNdEx
  1489  		var wire uint64
  1490  		for shift := uint(0); ; shift += 7 {
  1491  			if shift >= 64 {
  1492  				return ErrIntOverflowScheduler
  1493  			}
  1494  			if iNdEx >= l {
  1495  				return io.ErrUnexpectedEOF
  1496  			}
  1497  			b := dAtA[iNdEx]
  1498  			iNdEx++
  1499  			wire |= uint64(b&0x7F) << shift
  1500  			if b < 0x80 {
  1501  				break
  1502  			}
  1503  		}
  1504  		fieldNum := int32(wire >> 3)
  1505  		wireType := int(wire & 0x7)
  1506  		if wireType == 4 {
  1507  			return fmt.Errorf("proto: QuerierToScheduler: wiretype end group for non-group")
  1508  		}
  1509  		if fieldNum <= 0 {
  1510  			return fmt.Errorf("proto: QuerierToScheduler: illegal tag %d (wire type %d)", fieldNum, wire)
  1511  		}
  1512  		switch fieldNum {
  1513  		case 1:
  1514  			if wireType != 2 {
  1515  				return fmt.Errorf("proto: wrong wireType = %d for field QuerierID", wireType)
  1516  			}
  1517  			var stringLen uint64
  1518  			for shift := uint(0); ; shift += 7 {
  1519  				if shift >= 64 {
  1520  					return ErrIntOverflowScheduler
  1521  				}
  1522  				if iNdEx >= l {
  1523  					return io.ErrUnexpectedEOF
  1524  				}
  1525  				b := dAtA[iNdEx]
  1526  				iNdEx++
  1527  				stringLen |= uint64(b&0x7F) << shift
  1528  				if b < 0x80 {
  1529  					break
  1530  				}
  1531  			}
  1532  			intStringLen := int(stringLen)
  1533  			if intStringLen < 0 {
  1534  				return ErrInvalidLengthScheduler
  1535  			}
  1536  			postIndex := iNdEx + intStringLen
  1537  			if postIndex < 0 {
  1538  				return ErrInvalidLengthScheduler
  1539  			}
  1540  			if postIndex > l {
  1541  				return io.ErrUnexpectedEOF
  1542  			}
  1543  			m.QuerierID = string(dAtA[iNdEx:postIndex])
  1544  			iNdEx = postIndex
  1545  		default:
  1546  			iNdEx = preIndex
  1547  			skippy, err := skipScheduler(dAtA[iNdEx:])
  1548  			if err != nil {
  1549  				return err
  1550  			}
  1551  			if skippy < 0 {
  1552  				return ErrInvalidLengthScheduler
  1553  			}
  1554  			if (iNdEx + skippy) < 0 {
  1555  				return ErrInvalidLengthScheduler
  1556  			}
  1557  			if (iNdEx + skippy) > l {
  1558  				return io.ErrUnexpectedEOF
  1559  			}
  1560  			iNdEx += skippy
  1561  		}
  1562  	}
  1563  
  1564  	if iNdEx > l {
  1565  		return io.ErrUnexpectedEOF
  1566  	}
  1567  	return nil
  1568  }
  1569  func (m *SchedulerToQuerier) Unmarshal(dAtA []byte) error {
  1570  	l := len(dAtA)
  1571  	iNdEx := 0
  1572  	for iNdEx < l {
  1573  		preIndex := iNdEx
  1574  		var wire uint64
  1575  		for shift := uint(0); ; shift += 7 {
  1576  			if shift >= 64 {
  1577  				return ErrIntOverflowScheduler
  1578  			}
  1579  			if iNdEx >= l {
  1580  				return io.ErrUnexpectedEOF
  1581  			}
  1582  			b := dAtA[iNdEx]
  1583  			iNdEx++
  1584  			wire |= uint64(b&0x7F) << shift
  1585  			if b < 0x80 {
  1586  				break
  1587  			}
  1588  		}
  1589  		fieldNum := int32(wire >> 3)
  1590  		wireType := int(wire & 0x7)
  1591  		if wireType == 4 {
  1592  			return fmt.Errorf("proto: SchedulerToQuerier: wiretype end group for non-group")
  1593  		}
  1594  		if fieldNum <= 0 {
  1595  			return fmt.Errorf("proto: SchedulerToQuerier: illegal tag %d (wire type %d)", fieldNum, wire)
  1596  		}
  1597  		switch fieldNum {
  1598  		case 1:
  1599  			if wireType != 0 {
  1600  				return fmt.Errorf("proto: wrong wireType = %d for field QueryID", wireType)
  1601  			}
  1602  			m.QueryID = 0
  1603  			for shift := uint(0); ; shift += 7 {
  1604  				if shift >= 64 {
  1605  					return ErrIntOverflowScheduler
  1606  				}
  1607  				if iNdEx >= l {
  1608  					return io.ErrUnexpectedEOF
  1609  				}
  1610  				b := dAtA[iNdEx]
  1611  				iNdEx++
  1612  				m.QueryID |= uint64(b&0x7F) << shift
  1613  				if b < 0x80 {
  1614  					break
  1615  				}
  1616  			}
  1617  		case 2:
  1618  			if wireType != 2 {
  1619  				return fmt.Errorf("proto: wrong wireType = %d for field HttpRequest", wireType)
  1620  			}
  1621  			var msglen int
  1622  			for shift := uint(0); ; shift += 7 {
  1623  				if shift >= 64 {
  1624  					return ErrIntOverflowScheduler
  1625  				}
  1626  				if iNdEx >= l {
  1627  					return io.ErrUnexpectedEOF
  1628  				}
  1629  				b := dAtA[iNdEx]
  1630  				iNdEx++
  1631  				msglen |= int(b&0x7F) << shift
  1632  				if b < 0x80 {
  1633  					break
  1634  				}
  1635  			}
  1636  			if msglen < 0 {
  1637  				return ErrInvalidLengthScheduler
  1638  			}
  1639  			postIndex := iNdEx + msglen
  1640  			if postIndex < 0 {
  1641  				return ErrInvalidLengthScheduler
  1642  			}
  1643  			if postIndex > l {
  1644  				return io.ErrUnexpectedEOF
  1645  			}
  1646  			if m.HttpRequest == nil {
  1647  				m.HttpRequest = &httpgrpc.HTTPRequest{}
  1648  			}
  1649  			if err := m.HttpRequest.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1650  				return err
  1651  			}
  1652  			iNdEx = postIndex
  1653  		case 3:
  1654  			if wireType != 2 {
  1655  				return fmt.Errorf("proto: wrong wireType = %d for field FrontendAddress", wireType)
  1656  			}
  1657  			var stringLen uint64
  1658  			for shift := uint(0); ; shift += 7 {
  1659  				if shift >= 64 {
  1660  					return ErrIntOverflowScheduler
  1661  				}
  1662  				if iNdEx >= l {
  1663  					return io.ErrUnexpectedEOF
  1664  				}
  1665  				b := dAtA[iNdEx]
  1666  				iNdEx++
  1667  				stringLen |= uint64(b&0x7F) << shift
  1668  				if b < 0x80 {
  1669  					break
  1670  				}
  1671  			}
  1672  			intStringLen := int(stringLen)
  1673  			if intStringLen < 0 {
  1674  				return ErrInvalidLengthScheduler
  1675  			}
  1676  			postIndex := iNdEx + intStringLen
  1677  			if postIndex < 0 {
  1678  				return ErrInvalidLengthScheduler
  1679  			}
  1680  			if postIndex > l {
  1681  				return io.ErrUnexpectedEOF
  1682  			}
  1683  			m.FrontendAddress = string(dAtA[iNdEx:postIndex])
  1684  			iNdEx = postIndex
  1685  		case 4:
  1686  			if wireType != 2 {
  1687  				return fmt.Errorf("proto: wrong wireType = %d for field UserID", wireType)
  1688  			}
  1689  			var stringLen uint64
  1690  			for shift := uint(0); ; shift += 7 {
  1691  				if shift >= 64 {
  1692  					return ErrIntOverflowScheduler
  1693  				}
  1694  				if iNdEx >= l {
  1695  					return io.ErrUnexpectedEOF
  1696  				}
  1697  				b := dAtA[iNdEx]
  1698  				iNdEx++
  1699  				stringLen |= uint64(b&0x7F) << shift
  1700  				if b < 0x80 {
  1701  					break
  1702  				}
  1703  			}
  1704  			intStringLen := int(stringLen)
  1705  			if intStringLen < 0 {
  1706  				return ErrInvalidLengthScheduler
  1707  			}
  1708  			postIndex := iNdEx + intStringLen
  1709  			if postIndex < 0 {
  1710  				return ErrInvalidLengthScheduler
  1711  			}
  1712  			if postIndex > l {
  1713  				return io.ErrUnexpectedEOF
  1714  			}
  1715  			m.UserID = string(dAtA[iNdEx:postIndex])
  1716  			iNdEx = postIndex
  1717  		case 5:
  1718  			if wireType != 0 {
  1719  				return fmt.Errorf("proto: wrong wireType = %d for field StatsEnabled", wireType)
  1720  			}
  1721  			var v int
  1722  			for shift := uint(0); ; shift += 7 {
  1723  				if shift >= 64 {
  1724  					return ErrIntOverflowScheduler
  1725  				}
  1726  				if iNdEx >= l {
  1727  					return io.ErrUnexpectedEOF
  1728  				}
  1729  				b := dAtA[iNdEx]
  1730  				iNdEx++
  1731  				v |= int(b&0x7F) << shift
  1732  				if b < 0x80 {
  1733  					break
  1734  				}
  1735  			}
  1736  			m.StatsEnabled = bool(v != 0)
  1737  		default:
  1738  			iNdEx = preIndex
  1739  			skippy, err := skipScheduler(dAtA[iNdEx:])
  1740  			if err != nil {
  1741  				return err
  1742  			}
  1743  			if skippy < 0 {
  1744  				return ErrInvalidLengthScheduler
  1745  			}
  1746  			if (iNdEx + skippy) < 0 {
  1747  				return ErrInvalidLengthScheduler
  1748  			}
  1749  			if (iNdEx + skippy) > l {
  1750  				return io.ErrUnexpectedEOF
  1751  			}
  1752  			iNdEx += skippy
  1753  		}
  1754  	}
  1755  
  1756  	if iNdEx > l {
  1757  		return io.ErrUnexpectedEOF
  1758  	}
  1759  	return nil
  1760  }
  1761  func (m *FrontendToScheduler) Unmarshal(dAtA []byte) error {
  1762  	l := len(dAtA)
  1763  	iNdEx := 0
  1764  	for iNdEx < l {
  1765  		preIndex := iNdEx
  1766  		var wire uint64
  1767  		for shift := uint(0); ; shift += 7 {
  1768  			if shift >= 64 {
  1769  				return ErrIntOverflowScheduler
  1770  			}
  1771  			if iNdEx >= l {
  1772  				return io.ErrUnexpectedEOF
  1773  			}
  1774  			b := dAtA[iNdEx]
  1775  			iNdEx++
  1776  			wire |= uint64(b&0x7F) << shift
  1777  			if b < 0x80 {
  1778  				break
  1779  			}
  1780  		}
  1781  		fieldNum := int32(wire >> 3)
  1782  		wireType := int(wire & 0x7)
  1783  		if wireType == 4 {
  1784  			return fmt.Errorf("proto: FrontendToScheduler: wiretype end group for non-group")
  1785  		}
  1786  		if fieldNum <= 0 {
  1787  			return fmt.Errorf("proto: FrontendToScheduler: illegal tag %d (wire type %d)", fieldNum, wire)
  1788  		}
  1789  		switch fieldNum {
  1790  		case 1:
  1791  			if wireType != 0 {
  1792  				return fmt.Errorf("proto: wrong wireType = %d for field Type", wireType)
  1793  			}
  1794  			m.Type = 0
  1795  			for shift := uint(0); ; shift += 7 {
  1796  				if shift >= 64 {
  1797  					return ErrIntOverflowScheduler
  1798  				}
  1799  				if iNdEx >= l {
  1800  					return io.ErrUnexpectedEOF
  1801  				}
  1802  				b := dAtA[iNdEx]
  1803  				iNdEx++
  1804  				m.Type |= FrontendToSchedulerType(b&0x7F) << shift
  1805  				if b < 0x80 {
  1806  					break
  1807  				}
  1808  			}
  1809  		case 2:
  1810  			if wireType != 2 {
  1811  				return fmt.Errorf("proto: wrong wireType = %d for field FrontendAddress", wireType)
  1812  			}
  1813  			var stringLen uint64
  1814  			for shift := uint(0); ; shift += 7 {
  1815  				if shift >= 64 {
  1816  					return ErrIntOverflowScheduler
  1817  				}
  1818  				if iNdEx >= l {
  1819  					return io.ErrUnexpectedEOF
  1820  				}
  1821  				b := dAtA[iNdEx]
  1822  				iNdEx++
  1823  				stringLen |= uint64(b&0x7F) << shift
  1824  				if b < 0x80 {
  1825  					break
  1826  				}
  1827  			}
  1828  			intStringLen := int(stringLen)
  1829  			if intStringLen < 0 {
  1830  				return ErrInvalidLengthScheduler
  1831  			}
  1832  			postIndex := iNdEx + intStringLen
  1833  			if postIndex < 0 {
  1834  				return ErrInvalidLengthScheduler
  1835  			}
  1836  			if postIndex > l {
  1837  				return io.ErrUnexpectedEOF
  1838  			}
  1839  			m.FrontendAddress = string(dAtA[iNdEx:postIndex])
  1840  			iNdEx = postIndex
  1841  		case 3:
  1842  			if wireType != 0 {
  1843  				return fmt.Errorf("proto: wrong wireType = %d for field QueryID", wireType)
  1844  			}
  1845  			m.QueryID = 0
  1846  			for shift := uint(0); ; shift += 7 {
  1847  				if shift >= 64 {
  1848  					return ErrIntOverflowScheduler
  1849  				}
  1850  				if iNdEx >= l {
  1851  					return io.ErrUnexpectedEOF
  1852  				}
  1853  				b := dAtA[iNdEx]
  1854  				iNdEx++
  1855  				m.QueryID |= uint64(b&0x7F) << shift
  1856  				if b < 0x80 {
  1857  					break
  1858  				}
  1859  			}
  1860  		case 4:
  1861  			if wireType != 2 {
  1862  				return fmt.Errorf("proto: wrong wireType = %d for field UserID", wireType)
  1863  			}
  1864  			var stringLen uint64
  1865  			for shift := uint(0); ; shift += 7 {
  1866  				if shift >= 64 {
  1867  					return ErrIntOverflowScheduler
  1868  				}
  1869  				if iNdEx >= l {
  1870  					return io.ErrUnexpectedEOF
  1871  				}
  1872  				b := dAtA[iNdEx]
  1873  				iNdEx++
  1874  				stringLen |= uint64(b&0x7F) << shift
  1875  				if b < 0x80 {
  1876  					break
  1877  				}
  1878  			}
  1879  			intStringLen := int(stringLen)
  1880  			if intStringLen < 0 {
  1881  				return ErrInvalidLengthScheduler
  1882  			}
  1883  			postIndex := iNdEx + intStringLen
  1884  			if postIndex < 0 {
  1885  				return ErrInvalidLengthScheduler
  1886  			}
  1887  			if postIndex > l {
  1888  				return io.ErrUnexpectedEOF
  1889  			}
  1890  			m.UserID = string(dAtA[iNdEx:postIndex])
  1891  			iNdEx = postIndex
  1892  		case 5:
  1893  			if wireType != 2 {
  1894  				return fmt.Errorf("proto: wrong wireType = %d for field HttpRequest", wireType)
  1895  			}
  1896  			var msglen int
  1897  			for shift := uint(0); ; shift += 7 {
  1898  				if shift >= 64 {
  1899  					return ErrIntOverflowScheduler
  1900  				}
  1901  				if iNdEx >= l {
  1902  					return io.ErrUnexpectedEOF
  1903  				}
  1904  				b := dAtA[iNdEx]
  1905  				iNdEx++
  1906  				msglen |= int(b&0x7F) << shift
  1907  				if b < 0x80 {
  1908  					break
  1909  				}
  1910  			}
  1911  			if msglen < 0 {
  1912  				return ErrInvalidLengthScheduler
  1913  			}
  1914  			postIndex := iNdEx + msglen
  1915  			if postIndex < 0 {
  1916  				return ErrInvalidLengthScheduler
  1917  			}
  1918  			if postIndex > l {
  1919  				return io.ErrUnexpectedEOF
  1920  			}
  1921  			if m.HttpRequest == nil {
  1922  				m.HttpRequest = &httpgrpc.HTTPRequest{}
  1923  			}
  1924  			if err := m.HttpRequest.Unmarshal(dAtA[iNdEx:postIndex]); err != nil {
  1925  				return err
  1926  			}
  1927  			iNdEx = postIndex
  1928  		case 6:
  1929  			if wireType != 0 {
  1930  				return fmt.Errorf("proto: wrong wireType = %d for field StatsEnabled", wireType)
  1931  			}
  1932  			var v int
  1933  			for shift := uint(0); ; shift += 7 {
  1934  				if shift >= 64 {
  1935  					return ErrIntOverflowScheduler
  1936  				}
  1937  				if iNdEx >= l {
  1938  					return io.ErrUnexpectedEOF
  1939  				}
  1940  				b := dAtA[iNdEx]
  1941  				iNdEx++
  1942  				v |= int(b&0x7F) << shift
  1943  				if b < 0x80 {
  1944  					break
  1945  				}
  1946  			}
  1947  			m.StatsEnabled = bool(v != 0)
  1948  		default:
  1949  			iNdEx = preIndex
  1950  			skippy, err := skipScheduler(dAtA[iNdEx:])
  1951  			if err != nil {
  1952  				return err
  1953  			}
  1954  			if skippy < 0 {
  1955  				return ErrInvalidLengthScheduler
  1956  			}
  1957  			if (iNdEx + skippy) < 0 {
  1958  				return ErrInvalidLengthScheduler
  1959  			}
  1960  			if (iNdEx + skippy) > l {
  1961  				return io.ErrUnexpectedEOF
  1962  			}
  1963  			iNdEx += skippy
  1964  		}
  1965  	}
  1966  
  1967  	if iNdEx > l {
  1968  		return io.ErrUnexpectedEOF
  1969  	}
  1970  	return nil
  1971  }
  1972  func (m *SchedulerToFrontend) Unmarshal(dAtA []byte) error {
  1973  	l := len(dAtA)
  1974  	iNdEx := 0
  1975  	for iNdEx < l {
  1976  		preIndex := iNdEx
  1977  		var wire uint64
  1978  		for shift := uint(0); ; shift += 7 {
  1979  			if shift >= 64 {
  1980  				return ErrIntOverflowScheduler
  1981  			}
  1982  			if iNdEx >= l {
  1983  				return io.ErrUnexpectedEOF
  1984  			}
  1985  			b := dAtA[iNdEx]
  1986  			iNdEx++
  1987  			wire |= uint64(b&0x7F) << shift
  1988  			if b < 0x80 {
  1989  				break
  1990  			}
  1991  		}
  1992  		fieldNum := int32(wire >> 3)
  1993  		wireType := int(wire & 0x7)
  1994  		if wireType == 4 {
  1995  			return fmt.Errorf("proto: SchedulerToFrontend: wiretype end group for non-group")
  1996  		}
  1997  		if fieldNum <= 0 {
  1998  			return fmt.Errorf("proto: SchedulerToFrontend: illegal tag %d (wire type %d)", fieldNum, wire)
  1999  		}
  2000  		switch fieldNum {
  2001  		case 1:
  2002  			if wireType != 0 {
  2003  				return fmt.Errorf("proto: wrong wireType = %d for field Status", wireType)
  2004  			}
  2005  			m.Status = 0
  2006  			for shift := uint(0); ; shift += 7 {
  2007  				if shift >= 64 {
  2008  					return ErrIntOverflowScheduler
  2009  				}
  2010  				if iNdEx >= l {
  2011  					return io.ErrUnexpectedEOF
  2012  				}
  2013  				b := dAtA[iNdEx]
  2014  				iNdEx++
  2015  				m.Status |= SchedulerToFrontendStatus(b&0x7F) << shift
  2016  				if b < 0x80 {
  2017  					break
  2018  				}
  2019  			}
  2020  		case 2:
  2021  			if wireType != 2 {
  2022  				return fmt.Errorf("proto: wrong wireType = %d for field Error", wireType)
  2023  			}
  2024  			var stringLen uint64
  2025  			for shift := uint(0); ; shift += 7 {
  2026  				if shift >= 64 {
  2027  					return ErrIntOverflowScheduler
  2028  				}
  2029  				if iNdEx >= l {
  2030  					return io.ErrUnexpectedEOF
  2031  				}
  2032  				b := dAtA[iNdEx]
  2033  				iNdEx++
  2034  				stringLen |= uint64(b&0x7F) << shift
  2035  				if b < 0x80 {
  2036  					break
  2037  				}
  2038  			}
  2039  			intStringLen := int(stringLen)
  2040  			if intStringLen < 0 {
  2041  				return ErrInvalidLengthScheduler
  2042  			}
  2043  			postIndex := iNdEx + intStringLen
  2044  			if postIndex < 0 {
  2045  				return ErrInvalidLengthScheduler
  2046  			}
  2047  			if postIndex > l {
  2048  				return io.ErrUnexpectedEOF
  2049  			}
  2050  			m.Error = string(dAtA[iNdEx:postIndex])
  2051  			iNdEx = postIndex
  2052  		default:
  2053  			iNdEx = preIndex
  2054  			skippy, err := skipScheduler(dAtA[iNdEx:])
  2055  			if err != nil {
  2056  				return err
  2057  			}
  2058  			if skippy < 0 {
  2059  				return ErrInvalidLengthScheduler
  2060  			}
  2061  			if (iNdEx + skippy) < 0 {
  2062  				return ErrInvalidLengthScheduler
  2063  			}
  2064  			if (iNdEx + skippy) > l {
  2065  				return io.ErrUnexpectedEOF
  2066  			}
  2067  			iNdEx += skippy
  2068  		}
  2069  	}
  2070  
  2071  	if iNdEx > l {
  2072  		return io.ErrUnexpectedEOF
  2073  	}
  2074  	return nil
  2075  }
  2076  func (m *NotifyQuerierShutdownRequest) Unmarshal(dAtA []byte) error {
  2077  	l := len(dAtA)
  2078  	iNdEx := 0
  2079  	for iNdEx < l {
  2080  		preIndex := iNdEx
  2081  		var wire uint64
  2082  		for shift := uint(0); ; shift += 7 {
  2083  			if shift >= 64 {
  2084  				return ErrIntOverflowScheduler
  2085  			}
  2086  			if iNdEx >= l {
  2087  				return io.ErrUnexpectedEOF
  2088  			}
  2089  			b := dAtA[iNdEx]
  2090  			iNdEx++
  2091  			wire |= uint64(b&0x7F) << shift
  2092  			if b < 0x80 {
  2093  				break
  2094  			}
  2095  		}
  2096  		fieldNum := int32(wire >> 3)
  2097  		wireType := int(wire & 0x7)
  2098  		if wireType == 4 {
  2099  			return fmt.Errorf("proto: NotifyQuerierShutdownRequest: wiretype end group for non-group")
  2100  		}
  2101  		if fieldNum <= 0 {
  2102  			return fmt.Errorf("proto: NotifyQuerierShutdownRequest: illegal tag %d (wire type %d)", fieldNum, wire)
  2103  		}
  2104  		switch fieldNum {
  2105  		case 1:
  2106  			if wireType != 2 {
  2107  				return fmt.Errorf("proto: wrong wireType = %d for field QuerierID", wireType)
  2108  			}
  2109  			var stringLen uint64
  2110  			for shift := uint(0); ; shift += 7 {
  2111  				if shift >= 64 {
  2112  					return ErrIntOverflowScheduler
  2113  				}
  2114  				if iNdEx >= l {
  2115  					return io.ErrUnexpectedEOF
  2116  				}
  2117  				b := dAtA[iNdEx]
  2118  				iNdEx++
  2119  				stringLen |= uint64(b&0x7F) << shift
  2120  				if b < 0x80 {
  2121  					break
  2122  				}
  2123  			}
  2124  			intStringLen := int(stringLen)
  2125  			if intStringLen < 0 {
  2126  				return ErrInvalidLengthScheduler
  2127  			}
  2128  			postIndex := iNdEx + intStringLen
  2129  			if postIndex < 0 {
  2130  				return ErrInvalidLengthScheduler
  2131  			}
  2132  			if postIndex > l {
  2133  				return io.ErrUnexpectedEOF
  2134  			}
  2135  			m.QuerierID = string(dAtA[iNdEx:postIndex])
  2136  			iNdEx = postIndex
  2137  		default:
  2138  			iNdEx = preIndex
  2139  			skippy, err := skipScheduler(dAtA[iNdEx:])
  2140  			if err != nil {
  2141  				return err
  2142  			}
  2143  			if skippy < 0 {
  2144  				return ErrInvalidLengthScheduler
  2145  			}
  2146  			if (iNdEx + skippy) < 0 {
  2147  				return ErrInvalidLengthScheduler
  2148  			}
  2149  			if (iNdEx + skippy) > l {
  2150  				return io.ErrUnexpectedEOF
  2151  			}
  2152  			iNdEx += skippy
  2153  		}
  2154  	}
  2155  
  2156  	if iNdEx > l {
  2157  		return io.ErrUnexpectedEOF
  2158  	}
  2159  	return nil
  2160  }
  2161  func (m *NotifyQuerierShutdownResponse) Unmarshal(dAtA []byte) error {
  2162  	l := len(dAtA)
  2163  	iNdEx := 0
  2164  	for iNdEx < l {
  2165  		preIndex := iNdEx
  2166  		var wire uint64
  2167  		for shift := uint(0); ; shift += 7 {
  2168  			if shift >= 64 {
  2169  				return ErrIntOverflowScheduler
  2170  			}
  2171  			if iNdEx >= l {
  2172  				return io.ErrUnexpectedEOF
  2173  			}
  2174  			b := dAtA[iNdEx]
  2175  			iNdEx++
  2176  			wire |= uint64(b&0x7F) << shift
  2177  			if b < 0x80 {
  2178  				break
  2179  			}
  2180  		}
  2181  		fieldNum := int32(wire >> 3)
  2182  		wireType := int(wire & 0x7)
  2183  		if wireType == 4 {
  2184  			return fmt.Errorf("proto: NotifyQuerierShutdownResponse: wiretype end group for non-group")
  2185  		}
  2186  		if fieldNum <= 0 {
  2187  			return fmt.Errorf("proto: NotifyQuerierShutdownResponse: illegal tag %d (wire type %d)", fieldNum, wire)
  2188  		}
  2189  		switch fieldNum {
  2190  		default:
  2191  			iNdEx = preIndex
  2192  			skippy, err := skipScheduler(dAtA[iNdEx:])
  2193  			if err != nil {
  2194  				return err
  2195  			}
  2196  			if skippy < 0 {
  2197  				return ErrInvalidLengthScheduler
  2198  			}
  2199  			if (iNdEx + skippy) < 0 {
  2200  				return ErrInvalidLengthScheduler
  2201  			}
  2202  			if (iNdEx + skippy) > l {
  2203  				return io.ErrUnexpectedEOF
  2204  			}
  2205  			iNdEx += skippy
  2206  		}
  2207  	}
  2208  
  2209  	if iNdEx > l {
  2210  		return io.ErrUnexpectedEOF
  2211  	}
  2212  	return nil
  2213  }
  2214  func skipScheduler(dAtA []byte) (n int, err error) {
  2215  	l := len(dAtA)
  2216  	iNdEx := 0
  2217  	for iNdEx < l {
  2218  		var wire uint64
  2219  		for shift := uint(0); ; shift += 7 {
  2220  			if shift >= 64 {
  2221  				return 0, ErrIntOverflowScheduler
  2222  			}
  2223  			if iNdEx >= l {
  2224  				return 0, io.ErrUnexpectedEOF
  2225  			}
  2226  			b := dAtA[iNdEx]
  2227  			iNdEx++
  2228  			wire |= (uint64(b) & 0x7F) << shift
  2229  			if b < 0x80 {
  2230  				break
  2231  			}
  2232  		}
  2233  		wireType := int(wire & 0x7)
  2234  		switch wireType {
  2235  		case 0:
  2236  			for shift := uint(0); ; shift += 7 {
  2237  				if shift >= 64 {
  2238  					return 0, ErrIntOverflowScheduler
  2239  				}
  2240  				if iNdEx >= l {
  2241  					return 0, io.ErrUnexpectedEOF
  2242  				}
  2243  				iNdEx++
  2244  				if dAtA[iNdEx-1] < 0x80 {
  2245  					break
  2246  				}
  2247  			}
  2248  			return iNdEx, nil
  2249  		case 1:
  2250  			iNdEx += 8
  2251  			return iNdEx, nil
  2252  		case 2:
  2253  			var length int
  2254  			for shift := uint(0); ; shift += 7 {
  2255  				if shift >= 64 {
  2256  					return 0, ErrIntOverflowScheduler
  2257  				}
  2258  				if iNdEx >= l {
  2259  					return 0, io.ErrUnexpectedEOF
  2260  				}
  2261  				b := dAtA[iNdEx]
  2262  				iNdEx++
  2263  				length |= (int(b) & 0x7F) << shift
  2264  				if b < 0x80 {
  2265  					break
  2266  				}
  2267  			}
  2268  			if length < 0 {
  2269  				return 0, ErrInvalidLengthScheduler
  2270  			}
  2271  			iNdEx += length
  2272  			if iNdEx < 0 {
  2273  				return 0, ErrInvalidLengthScheduler
  2274  			}
  2275  			return iNdEx, nil
  2276  		case 3:
  2277  			for {
  2278  				var innerWire uint64
  2279  				var start int = iNdEx
  2280  				for shift := uint(0); ; shift += 7 {
  2281  					if shift >= 64 {
  2282  						return 0, ErrIntOverflowScheduler
  2283  					}
  2284  					if iNdEx >= l {
  2285  						return 0, io.ErrUnexpectedEOF
  2286  					}
  2287  					b := dAtA[iNdEx]
  2288  					iNdEx++
  2289  					innerWire |= (uint64(b) & 0x7F) << shift
  2290  					if b < 0x80 {
  2291  						break
  2292  					}
  2293  				}
  2294  				innerWireType := int(innerWire & 0x7)
  2295  				if innerWireType == 4 {
  2296  					break
  2297  				}
  2298  				next, err := skipScheduler(dAtA[start:])
  2299  				if err != nil {
  2300  					return 0, err
  2301  				}
  2302  				iNdEx = start + next
  2303  				if iNdEx < 0 {
  2304  					return 0, ErrInvalidLengthScheduler
  2305  				}
  2306  			}
  2307  			return iNdEx, nil
  2308  		case 4:
  2309  			return iNdEx, nil
  2310  		case 5:
  2311  			iNdEx += 4
  2312  			return iNdEx, nil
  2313  		default:
  2314  			return 0, fmt.Errorf("proto: illegal wireType %d", wireType)
  2315  		}
  2316  	}
  2317  	panic("unreachable")
  2318  }
  2319  
  2320  var (
  2321  	ErrInvalidLengthScheduler = fmt.Errorf("proto: negative length found during unmarshaling")
  2322  	ErrIntOverflowScheduler   = fmt.Errorf("proto: integer overflow")
  2323  )