github.com/yankunsam/loki/v2@v2.6.3-0.20220817130409-389df5235c27/pkg/scheduler/schedulerpb/scheduler.pb.go (about)

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