From 0eee65ae4a90e898170bbf37c9a5188b85cfbce8 Mon Sep 17 00:00:00 2001 From: fdkevin Date: Thu, 26 May 2022 22:02:25 +0800 Subject: [PATCH 01/25] feat(rpc): use standard respone --- buf.yaml | 8 +- campusapis/card/v1/card.pb.go | 315 +- campusapis/card/v1/card.pb.gw.go | 52 +- campusapis/card/v1/card.proto | 27 +- campusapis/gate/v1/callback.pb.go | 77 +- campusapis/gate/v1/callback.proto | 5 +- campusapis/gate/v1/defined.go | 4 +- campusapis/gate/v1/defined.pb.go | 140 +- campusapis/gate/v1/defined.proto | 25 +- campusapis/health/v1/health.pb.go | 1422 +++++-- campusapis/health/v1/health.pb.gw.go | 39 +- campusapis/health/v1/health.proto | 69 +- campusapis/health/v1/health_grpc.pb.go | 10 +- campusapis/library/v1/library.pb.go | 669 +-- campusapis/library/v1/library.pb.gw.go | 86 +- campusapis/library/v1/library.proto | 51 +- campusapis/library/v1/library_grpc.pb.go | 24 +- campusapis/required.go | 2 +- campusapis/schoolTime/v1/schoolTime.pb.go | 350 +- campusapis/schoolTime/v1/schoolTime.pb.gw.go | 26 +- campusapis/schoolTime/v1/schoolTime.proto | 26 +- campusapis/staff/v1/campus.pb.go | 3587 +++++++++++------ campusapis/staff/v1/campus.pb.gw.go | 267 +- campusapis/staff/v1/campus.proto | 383 +- campusapis/staff/v1/campus_grpc.pb.go | 114 +- campusapis/status.go | 2 +- campusapis/status.pb.go | 106 +- campusapis/status.proto | 18 +- campusapis/teaching/v1/courses.go | 2 +- campusapis/teaching/v1/teaching.pb.go | 1369 ++++--- campusapis/teaching/v1/teaching.pb.gw.go | 125 +- campusapis/teaching/v1/teaching.proto | 74 +- campusapis/teaching/v1/teaching_grpc.pb.go | 34 +- consultingapis/faq/v1/faq.pb.go | 1066 +++-- consultingapis/faq/v1/faq.pb.gw.go | 72 +- consultingapis/faq/v1/faq.proto | 61 +- consultingapis/faq/v1/faq_grpc.pb.go | 71 +- .../campusapis/card/v1/card.swagger.json | 80 +- .../campusapis/gate/v1/callback.swagger.json | 50 +- .../campusapis/gate/v1/manager.swagger.json | 11 +- .../campusapis/health/v1/health.swagger.json | 240 +- .../library/v1/library.swagger.json | 100 +- .../schoolTime/v1/schoolTime.swagger.json | 72 +- .../campusapis/staff/v1/campus.swagger.json | 560 ++- .../teaching/v1/teaching.swagger.json | 160 +- .../consultingapis/faq/v1/faq.swagger.json | 113 +- 46 files changed, 7845 insertions(+), 4319 deletions(-) diff --git a/buf.yaml b/buf.yaml index 86b1a74..b622aa6 100644 --- a/buf.yaml +++ b/buf.yaml @@ -5,14 +5,14 @@ deps: - buf.build/grpc-ecosystem/grpc-gateway lint: use: - - BASIC + - DEFAULT + ignore: + - campusapis/third/v1/weixiao.proto except: - - RPC_REQUEST_STANDARD_NAME - - PACKAGE_VERSION_SUFFIX - FIELD_LOWER_SNAKE_CASE + - PACKAGE_VERSION_SUFFIX - PACKAGE_LOWER_SNAKE_CASE enum_zero_value_suffix: _UNSPECIFIED - rpc_allow_same_request_response: true rpc_allow_google_protobuf_empty_requests: true rpc_allow_google_protobuf_empty_responses: false service_suffix: Service diff --git a/campusapis/card/v1/card.pb.go b/campusapis/card/v1/card.pb.go index d80f8cf..28f08e7 100644 --- a/campusapis/card/v1/card.pb.go +++ b/campusapis/card/v1/card.pb.go @@ -28,10 +28,9 @@ type GetCardInfoResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - //余额,精确到小数点后两位,单位元 - Remaining float32 `protobuf:"fixed32,1,opt,name=remaining,proto3" json:"remaining,omitempty"` - //交易记录 - Flow []*Consumption `protobuf:"bytes,2,rep,name=flow,proto3" json:"flow,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *GetCardInfoResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetCardInfoResponse) Reset() { @@ -66,16 +65,23 @@ func (*GetCardInfoResponse) Descriptor() ([]byte, []int) { return file_campusapis_card_v1_card_proto_rawDescGZIP(), []int{0} } -func (x *GetCardInfoResponse) GetRemaining() float32 { +func (x *GetCardInfoResponse) GetError() uint32 { if x != nil { - return x.Remaining + return x.Error } return 0 } -func (x *GetCardInfoResponse) GetFlow() []*Consumption { +func (x *GetCardInfoResponse) GetMsg() string { if x != nil { - return x.Flow + return x.Msg + } + return "" +} + +func (x *GetCardInfoResponse) GetData() *GetCardInfoResponse_Data { + if x != nil { + return x.Data } return nil } @@ -179,7 +185,10 @@ type GetCardBalanceResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Remaining float32 `protobuf:"fixed32,1,opt,name=remaining,proto3" json:"remaining,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + // remaining 余额 + Data float32 `protobuf:"fixed32,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetCardBalanceResponse) Reset() { @@ -214,9 +223,23 @@ func (*GetCardBalanceResponse) Descriptor() ([]byte, []int) { return file_campusapis_card_v1_card_proto_rawDescGZIP(), []int{2} } -func (x *GetCardBalanceResponse) GetRemaining() float32 { +func (x *GetCardBalanceResponse) GetError() uint32 { if x != nil { - return x.Remaining + return x.Error + } + return 0 +} + +func (x *GetCardBalanceResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetCardBalanceResponse) GetData() float32 { + if x != nil { + return x.Data } return 0 } @@ -226,7 +249,9 @@ type GetCardConsumeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Items []*Consumption `protobuf:"bytes,2,rep,name=items,proto3" json:"items,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data []*Consumption `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetCardConsumeResponse) Reset() { @@ -261,9 +286,80 @@ func (*GetCardConsumeResponse) Descriptor() ([]byte, []int) { return file_campusapis_card_v1_card_proto_rawDescGZIP(), []int{3} } -func (x *GetCardConsumeResponse) GetItems() []*Consumption { +func (x *GetCardConsumeResponse) GetError() uint32 { if x != nil { - return x.Items + return x.Error + } + return 0 +} + +func (x *GetCardConsumeResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetCardConsumeResponse) GetData() []*Consumption { + if x != nil { + return x.Data + } + return nil +} + +type GetCardInfoResponse_Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //余额,精确到小数点后两位,单位元 + Remaining float32 `protobuf:"fixed32,1,opt,name=remaining,proto3" json:"remaining,omitempty"` + //交易记录 + Flow []*Consumption `protobuf:"bytes,2,rep,name=flow,proto3" json:"flow,omitempty"` +} + +func (x *GetCardInfoResponse_Data) Reset() { + *x = GetCardInfoResponse_Data{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_card_v1_card_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCardInfoResponse_Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCardInfoResponse_Data) ProtoMessage() {} + +func (x *GetCardInfoResponse_Data) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_card_v1_card_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCardInfoResponse_Data.ProtoReflect.Descriptor instead. +func (*GetCardInfoResponse_Data) Descriptor() ([]byte, []int) { + return file_campusapis_card_v1_card_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *GetCardInfoResponse_Data) GetRemaining() float32 { + if x != nil { + return x.Remaining + } + return 0 +} + +func (x *GetCardInfoResponse_Data) GetFlow() []*Consumption { + if x != nil { + return x.Flow } return nil } @@ -279,74 +375,83 @@ var file_campusapis_card_v1_card_proto_rawDesc = []byte{ 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x68, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xda, 0x01, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x40, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x33, - 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x59, 0x0a, 0x04, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, + 0x67, 0x12, 0x33, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x65, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x65, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x66, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, + 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x72, + 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, + 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x75, + 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x84, 0x03, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x73, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x66, - 0x6c, 0x6f, 0x77, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x75, 0x6d, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x75, - 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x01, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x66, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x66, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, - 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x36, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, - 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x02, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x22, 0x4f, 0x0a, - 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x32, 0xaa, - 0x03, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x73, - 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x0d, 0x2f, + 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0c, 0x12, 0x0a, + 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x7f, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, + 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x10, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x63, + 0x61, 0x72, 0x64, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x7f, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, - 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x0d, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, - 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0c, 0x12, 0x0a, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x69, - 0x6e, 0x66, 0x6f, 0x12, 0x95, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x42, - 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, - 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x39, 0x12, 0x10, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, - 0x61, 0x6e, 0x63, 0x65, 0x5a, 0x1a, 0x12, 0x0d, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x62, 0x61, - 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x62, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x62, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x8d, 0x01, 0x0a, 0x0e, - 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, - 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x10, 0x2f, 0x63, 0x61, 0x72, - 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x5a, 0x16, 0x12, 0x0d, - 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x62, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x42, 0xc8, 0x01, 0x0a, 0x16, - 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x43, 0x61, 0x72, 0x64, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, - 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, - 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x61, 0x72, 0x64, 0x76, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x5c, 0x56, 0x31, 0xe2, 0x02, - 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x43, 0x61, 0x72, 0x64, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x43, 0x61, - 0x72, 0x64, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x10, 0x2f, 0x63, 0x61, 0x72, 0x64, + 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, + 0x63, 0x61, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x42, 0xc8, 0x01, 0x0a, + 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x43, 0x61, 0x72, 0x64, 0x50, 0x72, 0x6f, + 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, + 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x61, 0x72, 0x64, 0x76, 0x31, 0xa2, + 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x43, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x5c, 0x56, 0x31, 0xe2, + 0x02, 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x43, 0x61, 0x72, + 0x64, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x43, + 0x61, 0x72, 0x64, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -361,28 +466,30 @@ func file_campusapis_card_v1_card_proto_rawDescGZIP() []byte { return file_campusapis_card_v1_card_proto_rawDescData } -var file_campusapis_card_v1_card_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_campusapis_card_v1_card_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_campusapis_card_v1_card_proto_goTypes = []interface{}{ - (*GetCardInfoResponse)(nil), // 0: campusapis.card.v1.GetCardInfoResponse - (*Consumption)(nil), // 1: campusapis.card.v1.Consumption - (*GetCardBalanceResponse)(nil), // 2: campusapis.card.v1.GetCardBalanceResponse - (*GetCardConsumeResponse)(nil), // 3: campusapis.card.v1.GetCardConsumeResponse - (*emptypb.Empty)(nil), // 4: google.protobuf.Empty + (*GetCardInfoResponse)(nil), // 0: campusapis.card.v1.GetCardInfoResponse + (*Consumption)(nil), // 1: campusapis.card.v1.Consumption + (*GetCardBalanceResponse)(nil), // 2: campusapis.card.v1.GetCardBalanceResponse + (*GetCardConsumeResponse)(nil), // 3: campusapis.card.v1.GetCardConsumeResponse + (*GetCardInfoResponse_Data)(nil), // 4: campusapis.card.v1.GetCardInfoResponse.Data + (*emptypb.Empty)(nil), // 5: google.protobuf.Empty } var file_campusapis_card_v1_card_proto_depIdxs = []int32{ - 1, // 0: campusapis.card.v1.GetCardInfoResponse.flow:type_name -> campusapis.card.v1.Consumption - 1, // 1: campusapis.card.v1.GetCardConsumeResponse.items:type_name -> campusapis.card.v1.Consumption - 4, // 2: campusapis.card.v1.CardService.GetCardInfo:input_type -> google.protobuf.Empty - 4, // 3: campusapis.card.v1.CardService.GetCardBalance:input_type -> google.protobuf.Empty - 4, // 4: campusapis.card.v1.CardService.GetCardConsume:input_type -> google.protobuf.Empty - 0, // 5: campusapis.card.v1.CardService.GetCardInfo:output_type -> campusapis.card.v1.GetCardInfoResponse - 2, // 6: campusapis.card.v1.CardService.GetCardBalance:output_type -> campusapis.card.v1.GetCardBalanceResponse - 3, // 7: campusapis.card.v1.CardService.GetCardConsume:output_type -> campusapis.card.v1.GetCardConsumeResponse - 5, // [5:8] is the sub-list for method output_type - 2, // [2:5] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name + 4, // 0: campusapis.card.v1.GetCardInfoResponse.data:type_name -> campusapis.card.v1.GetCardInfoResponse.Data + 1, // 1: campusapis.card.v1.GetCardConsumeResponse.data:type_name -> campusapis.card.v1.Consumption + 1, // 2: campusapis.card.v1.GetCardInfoResponse.Data.flow:type_name -> campusapis.card.v1.Consumption + 5, // 3: campusapis.card.v1.CardService.GetCardInfo:input_type -> google.protobuf.Empty + 5, // 4: campusapis.card.v1.CardService.GetCardBalance:input_type -> google.protobuf.Empty + 5, // 5: campusapis.card.v1.CardService.GetCardConsume:input_type -> google.protobuf.Empty + 0, // 6: campusapis.card.v1.CardService.GetCardInfo:output_type -> campusapis.card.v1.GetCardInfoResponse + 2, // 7: campusapis.card.v1.CardService.GetCardBalance:output_type -> campusapis.card.v1.GetCardBalanceResponse + 3, // 8: campusapis.card.v1.CardService.GetCardConsume:output_type -> campusapis.card.v1.GetCardConsumeResponse + 6, // [6:9] is the sub-list for method output_type + 3, // [3:6] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_campusapis_card_v1_card_proto_init() } @@ -439,6 +546,18 @@ func file_campusapis_card_v1_card_proto_init() { return nil } } + file_campusapis_card_v1_card_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCardInfoResponse_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -446,7 +565,7 @@ func file_campusapis_card_v1_card_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_campusapis_card_v1_card_proto_rawDesc, NumEnums: 0, - NumMessages: 4, + NumMessages: 5, NumExtensions: 0, NumServices: 1, }, diff --git a/campusapis/card/v1/card.pb.gw.go b/campusapis/card/v1/card.pb.gw.go index 01a11e3..9877cdd 100644 --- a/campusapis/card/v1/card.pb.gw.go +++ b/campusapis/card/v1/card.pb.gw.go @@ -214,7 +214,7 @@ func RegisterCardServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux return } - forward_CardService_GetCardBalance_0(ctx, mux, outboundMarshaler, w, req, response_CardService_GetCardBalance_0{resp}, mux.GetForwardResponseOptions()...) + forward_CardService_GetCardBalance_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -238,7 +238,7 @@ func RegisterCardServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux return } - forward_CardService_GetCardBalance_1(ctx, mux, outboundMarshaler, w, req, response_CardService_GetCardBalance_1{resp}, mux.GetForwardResponseOptions()...) + forward_CardService_GetCardBalance_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -262,7 +262,7 @@ func RegisterCardServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux return } - forward_CardService_GetCardConsume_0(ctx, mux, outboundMarshaler, w, req, response_CardService_GetCardConsume_0{resp}, mux.GetForwardResponseOptions()...) + forward_CardService_GetCardConsume_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -286,7 +286,7 @@ func RegisterCardServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux return } - forward_CardService_GetCardConsume_1(ctx, mux, outboundMarshaler, w, req, response_CardService_GetCardConsume_1{resp}, mux.GetForwardResponseOptions()...) + forward_CardService_GetCardConsume_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -390,7 +390,7 @@ func RegisterCardServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux return } - forward_CardService_GetCardBalance_0(ctx, mux, outboundMarshaler, w, req, response_CardService_GetCardBalance_0{resp}, mux.GetForwardResponseOptions()...) + forward_CardService_GetCardBalance_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -411,7 +411,7 @@ func RegisterCardServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux return } - forward_CardService_GetCardBalance_1(ctx, mux, outboundMarshaler, w, req, response_CardService_GetCardBalance_1{resp}, mux.GetForwardResponseOptions()...) + forward_CardService_GetCardBalance_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -432,7 +432,7 @@ func RegisterCardServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux return } - forward_CardService_GetCardConsume_0(ctx, mux, outboundMarshaler, w, req, response_CardService_GetCardConsume_0{resp}, mux.GetForwardResponseOptions()...) + forward_CardService_GetCardConsume_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -453,49 +453,13 @@ func RegisterCardServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux return } - forward_CardService_GetCardConsume_1(ctx, mux, outboundMarshaler, w, req, response_CardService_GetCardConsume_1{resp}, mux.GetForwardResponseOptions()...) + forward_CardService_GetCardConsume_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) return nil } -type response_CardService_GetCardBalance_0 struct { - proto.Message -} - -func (m response_CardService_GetCardBalance_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetCardBalanceResponse) - return response.Remaining -} - -type response_CardService_GetCardBalance_1 struct { - proto.Message -} - -func (m response_CardService_GetCardBalance_1) XXX_ResponseBody() interface{} { - response := m.Message.(*GetCardBalanceResponse) - return response.Remaining -} - -type response_CardService_GetCardConsume_0 struct { - proto.Message -} - -func (m response_CardService_GetCardConsume_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetCardConsumeResponse) - return response.Items -} - -type response_CardService_GetCardConsume_1 struct { - proto.Message -} - -func (m response_CardService_GetCardConsume_1) XXX_ResponseBody() interface{} { - response := m.Message.(*GetCardConsumeResponse) - return response.Items -} - var ( pattern_CardService_GetCardInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"card", "v1", "info"}, "")) diff --git a/campusapis/card/v1/card.proto b/campusapis/card/v1/card.proto index 1b1ebb1..0e9a08f 100644 --- a/campusapis/card/v1/card.proto +++ b/campusapis/card/v1/card.proto @@ -23,10 +23,8 @@ service CardService { rpc GetCardBalance(google.protobuf.Empty) returns (GetCardBalanceResponse) { option (google.api.http) = { get: "/card/v1/balance" - response_body: "remaining" additional_bindings { get: "/card/balance" - response_body: "remaining" } }; } @@ -34,20 +32,24 @@ service CardService { rpc GetCardConsume(google.protobuf.Empty) returns (GetCardConsumeResponse) { option (google.api.http) = { get: "/card/v1/consume" - response_body: "items" additional_bindings { get: "/card/consume" - response_body: "items" } }; } } message GetCardInfoResponse { - //余额,精确到小数点后两位,单位元 - float remaining = 1; - //交易记录 - repeated Consumption flow = 2; + uint32 error = 1; + string msg = 2; + Data data = 3; + + message Data { + //余额,精确到小数点后两位,单位元 + float remaining = 1; + //交易记录 + repeated Consumption flow = 2; + } } message Consumption { @@ -67,9 +69,14 @@ message Consumption { } message GetCardBalanceResponse { - float remaining = 1; + uint32 error = 1; + string msg = 2; + // remaining 余额 + float data = 3; } message GetCardConsumeResponse { - repeated Consumption items = 2; + uint32 error = 1; + string msg = 2; + repeated Consumption data = 3; } diff --git a/campusapis/gate/v1/callback.pb.go b/campusapis/gate/v1/callback.pb.go index 06f2249..0441347 100644 --- a/campusapis/gate/v1/callback.pb.go +++ b/campusapis/gate/v1/callback.pb.go @@ -106,28 +106,28 @@ func (x *PostGateEventCallbackRequest) GetGateType() GateType { if x != nil { return x.GateType } - return GateType_CAMPUS + return GateType_GATE_TYPE_UNSPECIFIED } func (x *PostGateEventCallbackRequest) GetDirection() Direction { if x != nil { return x.Direction } - return Direction_IN + return Direction_DIRECTION_UNSPECIFIED } func (x *PostGateEventCallbackRequest) GetService() Service { if x != nil { return x.Service } - return Service_UNKNOWN + return Service_SERVICE_UNSPECIFIED } func (x *PostGateEventCallbackRequest) GetMethod() AccessMethod { if x != nil { return x.Method } - return AccessMethod_SCHOOL_CARD + return AccessMethod_ACCESS_METHOD_UNSPECIFIED } // 推送门禁事件回调返回体 @@ -135,6 +135,9 @@ type PostGateEventCallbackResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } func (x *PostGateEventCallbackResponse) Reset() { @@ -169,6 +172,20 @@ func (*PostGateEventCallbackResponse) Descriptor() ([]byte, []int) { return file_campusapis_gate_v1_callback_proto_rawDescGZIP(), []int{1} } +func (x *PostGateEventCallbackResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *PostGateEventCallbackResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + var File_campusapis_gate_v1_callback_proto protoreflect.FileDescriptor var file_campusapis_gate_v1_callback_proto_rawDesc = []byte{ @@ -211,32 +228,34 @@ var file_campusapis_gate_v1_callback_proto_rawDesc = []byte{ 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x1f, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x47, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0x95, 0x01, 0x0a, 0x13, 0x47, 0x61, 0x74, 0x65, - 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x7e, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, - 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, - 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, - 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, - 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, - 0xcc, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x43, 0x61, 0x6c, 0x6c, - 0x62, 0x61, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, - 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x3b, - 0x67, 0x61, 0x74, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, - 0x61, 0x74, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x5c, 0x47, 0x61, 0x74, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x47, 0x61, 0x74, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x32, + 0x95, 0x01, 0x0a, 0x13, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7e, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x47, + 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, + 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, + 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, + 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, + 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xcc, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, + 0x76, 0x31, 0x42, 0x0d, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, + 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, + 0x67, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x61, 0x74, 0x65, 0x76, 0x31, 0xa2, 0x02, + 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x61, 0x74, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, + 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x61, 0x74, 0x65, + 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x47, 0x61, + 0x74, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/campusapis/gate/v1/callback.proto b/campusapis/gate/v1/callback.proto index c39c324..c18f6b9 100644 --- a/campusapis/gate/v1/callback.proto +++ b/campusapis/gate/v1/callback.proto @@ -31,4 +31,7 @@ message PostGateEventCallbackRequest { } // 推送门禁事件回调返回体 -message PostGateEventCallbackResponse {} +message PostGateEventCallbackResponse { + uint32 error = 1; + string msg = 2; +} diff --git a/campusapis/gate/v1/defined.go b/campusapis/gate/v1/defined.go index 3ff8cc7..3525817 100644 --- a/campusapis/gate/v1/defined.go +++ b/campusapis/gate/v1/defined.go @@ -2,8 +2,8 @@ package gatev1 func (x Service) Chinese() string { if name, ok := map[Service]string{ - Service_HIKVISION: "海康闸机", - Service_UNIVIEW: "宇视闸机", + Service_SERVICE_HIKVISION: "海康闸机", + Service_SERVICE_UNIVIEW: "宇视闸机", }[x]; ok { return name } diff --git a/campusapis/gate/v1/defined.pb.go b/campusapis/gate/v1/defined.pb.go index d9fed6a..8645a46 100644 --- a/campusapis/gate/v1/defined.pb.go +++ b/campusapis/gate/v1/defined.pb.go @@ -25,28 +25,28 @@ type Service int32 const ( //未知设备 - Service_UNKNOWN Service = 0 + Service_SERVICE_UNSPECIFIED Service = 0 //海康闸机 - Service_HIKVISION Service = 1 + Service_SERVICE_HIKVISION Service = 1 //宇视闸机 - Service_UNIVIEW Service = 2 + Service_SERVICE_UNIVIEW Service = 2 //生活区后勤管的闸机,即宿舍闸机 - Service_BACK_OFFICE Service = 3 + Service_SERVICE_BACK_OFFICE Service = 3 ) // Enum value maps for Service. var ( Service_name = map[int32]string{ - 0: "UNKNOWN", - 1: "HIKVISION", - 2: "UNIVIEW", - 3: "BACK_OFFICE", + 0: "SERVICE_UNSPECIFIED", + 1: "SERVICE_HIKVISION", + 2: "SERVICE_UNIVIEW", + 3: "SERVICE_BACK_OFFICE", } Service_value = map[string]int32{ - "UNKNOWN": 0, - "HIKVISION": 1, - "UNIVIEW": 2, - "BACK_OFFICE": 3, + "SERVICE_UNSPECIFIED": 0, + "SERVICE_HIKVISION": 1, + "SERVICE_UNIVIEW": 2, + "SERVICE_BACK_OFFICE": 3, } ) @@ -81,21 +81,24 @@ func (Service) EnumDescriptor() ([]byte, []int) { type Direction int32 const ( + Direction_DIRECTION_UNSPECIFIED Direction = 0 //进 - Direction_IN Direction = 0 + Direction_DIRECTION_IN Direction = 1 //出 - Direction_OUT Direction = 1 + Direction_DIRECTION_OUT Direction = 2 ) // Enum value maps for Direction. var ( Direction_name = map[int32]string{ - 0: "IN", - 1: "OUT", + 0: "DIRECTION_UNSPECIFIED", + 1: "DIRECTION_IN", + 2: "DIRECTION_OUT", } Direction_value = map[string]int32{ - "IN": 0, - "OUT": 1, + "DIRECTION_UNSPECIFIED": 0, + "DIRECTION_IN": 1, + "DIRECTION_OUT": 2, } ) @@ -130,25 +133,28 @@ func (Direction) EnumDescriptor() ([]byte, []int) { type GateType int32 const ( + GateType_GATE_TYPE_UNSPECIFIED GateType = 0 //学校大门门禁,包括生活区、教学区、研究生公寓门禁 - GateType_CAMPUS GateType = 0 + GateType_GATE_TYPE_CAMPUS GateType = 1 //宿舍门禁 - GateType_DORMITORY GateType = 1 + GateType_GATE_TYPE_DORMITORY GateType = 2 //图书馆门禁 - GateType_LIBRARY GateType = 2 + GateType_GATE_TYPE_LIBRARY GateType = 3 ) // Enum value maps for GateType. var ( GateType_name = map[int32]string{ - 0: "CAMPUS", - 1: "DORMITORY", - 2: "LIBRARY", + 0: "GATE_TYPE_UNSPECIFIED", + 1: "GATE_TYPE_CAMPUS", + 2: "GATE_TYPE_DORMITORY", + 3: "GATE_TYPE_LIBRARY", } GateType_value = map[string]int32{ - "CAMPUS": 0, - "DORMITORY": 1, - "LIBRARY": 2, + "GATE_TYPE_UNSPECIFIED": 0, + "GATE_TYPE_CAMPUS": 1, + "GATE_TYPE_DORMITORY": 2, + "GATE_TYPE_LIBRARY": 3, } ) @@ -183,21 +189,24 @@ func (GateType) EnumDescriptor() ([]byte, []int) { type AccessMethod int32 const ( + AccessMethod_ACCESS_METHOD_UNSPECIFIED AccessMethod = 0 //校园卡 - AccessMethod_SCHOOL_CARD AccessMethod = 0 + AccessMethod_ACCESS_METHOD_SCHOOL_CARD AccessMethod = 1 //人脸识别 - AccessMethod_FACE AccessMethod = 1 + AccessMethod_ACCESS_METHOD_FACE AccessMethod = 2 ) // Enum value maps for AccessMethod. var ( AccessMethod_name = map[int32]string{ - 0: "SCHOOL_CARD", - 1: "FACE", + 0: "ACCESS_METHOD_UNSPECIFIED", + 1: "ACCESS_METHOD_SCHOOL_CARD", + 2: "ACCESS_METHOD_FACE", } AccessMethod_value = map[string]int32{ - "SCHOOL_CARD": 0, - "FACE": 1, + "ACCESS_METHOD_UNSPECIFIED": 0, + "ACCESS_METHOD_SCHOOL_CARD": 1, + "ACCESS_METHOD_FACE": 2, } ) @@ -234,32 +243,45 @@ var file_campusapis_gate_v1_defined_proto_rawDesc = []byte{ 0x0a, 0x20, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, - 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2a, 0x43, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0d, - 0x0a, 0x09, 0x48, 0x49, 0x4b, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, - 0x07, 0x55, 0x4e, 0x49, 0x56, 0x49, 0x45, 0x57, 0x10, 0x02, 0x12, 0x0f, 0x0a, 0x0b, 0x42, 0x41, - 0x43, 0x4b, 0x5f, 0x4f, 0x46, 0x46, 0x49, 0x43, 0x45, 0x10, 0x03, 0x2a, 0x1c, 0x0a, 0x09, 0x44, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x06, 0x0a, 0x02, 0x49, 0x4e, 0x10, 0x00, - 0x12, 0x07, 0x0a, 0x03, 0x4f, 0x55, 0x54, 0x10, 0x01, 0x2a, 0x32, 0x0a, 0x08, 0x47, 0x61, 0x74, - 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x43, 0x41, 0x4d, 0x50, 0x55, 0x53, 0x10, - 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x44, 0x4f, 0x52, 0x4d, 0x49, 0x54, 0x4f, 0x52, 0x59, 0x10, 0x01, - 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x10, 0x02, 0x2a, 0x29, 0x0a, - 0x0c, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x0f, 0x0a, - 0x0b, 0x53, 0x43, 0x48, 0x4f, 0x4f, 0x4c, 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, 0x00, 0x12, 0x08, - 0x0a, 0x04, 0x46, 0x41, 0x43, 0x45, 0x10, 0x01, 0x42, 0xcb, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, - 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, - 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, - 0x67, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x61, 0x74, 0x65, 0x76, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x61, 0x74, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, - 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x61, 0x74, 0x65, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x47, 0x61, - 0x74, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2a, 0x67, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x53, + 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x15, 0x0a, 0x11, 0x53, 0x45, + 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x48, 0x49, 0x4b, 0x56, 0x49, 0x53, 0x49, 0x4f, 0x4e, 0x10, + 0x01, 0x12, 0x13, 0x0a, 0x0f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x55, 0x4e, 0x49, + 0x56, 0x49, 0x45, 0x57, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, + 0x45, 0x5f, 0x42, 0x41, 0x43, 0x4b, 0x5f, 0x4f, 0x46, 0x46, 0x49, 0x43, 0x45, 0x10, 0x03, 0x2a, + 0x4b, 0x0a, 0x09, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x19, 0x0a, 0x15, + 0x44, 0x49, 0x52, 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, + 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x10, 0x0a, 0x0c, 0x44, 0x49, 0x52, 0x45, 0x43, + 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x49, 0x4e, 0x10, 0x01, 0x12, 0x11, 0x0a, 0x0d, 0x44, 0x49, 0x52, + 0x45, 0x43, 0x54, 0x49, 0x4f, 0x4e, 0x5f, 0x4f, 0x55, 0x54, 0x10, 0x02, 0x2a, 0x6b, 0x0a, 0x08, + 0x47, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x15, 0x47, 0x41, 0x54, 0x45, + 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x14, 0x0a, 0x10, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, + 0x5f, 0x43, 0x41, 0x4d, 0x50, 0x55, 0x53, 0x10, 0x01, 0x12, 0x17, 0x0a, 0x13, 0x47, 0x41, 0x54, + 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x44, 0x4f, 0x52, 0x4d, 0x49, 0x54, 0x4f, 0x52, 0x59, + 0x10, 0x02, 0x12, 0x15, 0x0a, 0x11, 0x47, 0x41, 0x54, 0x45, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, + 0x4c, 0x49, 0x42, 0x52, 0x41, 0x52, 0x59, 0x10, 0x03, 0x2a, 0x64, 0x0a, 0x0c, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x43, + 0x45, 0x53, 0x53, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x1d, 0x0a, 0x19, 0x41, 0x43, 0x43, 0x45, + 0x53, 0x53, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x53, 0x43, 0x48, 0x4f, 0x4f, 0x4c, + 0x5f, 0x43, 0x41, 0x52, 0x44, 0x10, 0x01, 0x12, 0x16, 0x0a, 0x12, 0x41, 0x43, 0x43, 0x45, 0x53, + 0x53, 0x5f, 0x4d, 0x45, 0x54, 0x48, 0x4f, 0x44, 0x5f, 0x46, 0x41, 0x43, 0x45, 0x10, 0x02, 0x42, + 0xcb, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x44, 0x65, 0x66, 0x69, + 0x6e, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, + 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x67, + 0x61, 0x74, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x31, + 0xca, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x61, + 0x74, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x5c, 0x47, 0x61, 0x74, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x47, 0x61, 0x74, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/campusapis/gate/v1/defined.proto b/campusapis/gate/v1/defined.proto index 6eff591..8346e70 100644 --- a/campusapis/gate/v1/defined.proto +++ b/campusapis/gate/v1/defined.proto @@ -7,37 +7,40 @@ option go_package = "./campusapis/gate/v1"; //门禁服务名称,以品牌或者第三方服务商名称划分,用于出问题时摔锅 enum Service { //未知设备 - UNKNOWN = 0; + SERVICE_UNSPECIFIED = 0; //海康闸机 - HIKVISION = 1; + SERVICE_HIKVISION = 1; //宇视闸机 - UNIVIEW = 2; + SERVICE_UNIVIEW = 2; //生活区后勤管的闸机,即宿舍闸机 - BACK_OFFICE = 3; + SERVICE_BACK_OFFICE = 3; } //以门禁限制活动/保护的区域为主体的进出方向 enum Direction { + DIRECTION_UNSPECIFIED = 0; //进 - IN = 0; + DIRECTION_IN = 1; //出 - OUT = 1; + DIRECTION_OUT = 2; } //门禁类型 enum GateType { + GATE_TYPE_UNSPECIFIED = 0; //学校大门门禁,包括生活区、教学区、研究生公寓门禁 - CAMPUS = 0; + GATE_TYPE_CAMPUS = 1; //宿舍门禁 - DORMITORY = 1; + GATE_TYPE_DORMITORY = 2; //图书馆门禁 - LIBRARY = 2; + GATE_TYPE_LIBRARY = 3; } //通过方式 enum AccessMethod { + ACCESS_METHOD_UNSPECIFIED = 0; //校园卡 - SCHOOL_CARD = 0; + ACCESS_METHOD_SCHOOL_CARD = 1; //人脸识别 - FACE = 1; + ACCESS_METHOD_FACE = 2; } diff --git a/campusapis/health/v1/health.pb.go b/campusapis/health/v1/health.pb.go index 15019af..3f12607 100644 --- a/campusapis/health/v1/health.pb.go +++ b/campusapis/health/v1/health.pb.go @@ -79,7 +79,9 @@ type GetCheckinRecordsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Items []*GetCheckinRecordResponse `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data []*GetCheckinRecordResponse `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetCheckinRecordsResponse) Reset() { @@ -114,19 +116,96 @@ func (*GetCheckinRecordsResponse) Descriptor() ([]byte, []int) { return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{1} } -func (x *GetCheckinRecordsResponse) GetItems() []*GetCheckinRecordResponse { +func (x *GetCheckinRecordsResponse) GetError() uint32 { if x != nil { - return x.Items + return x.Error + } + return 0 +} + +func (x *GetCheckinRecordsResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetCheckinRecordsResponse) GetData() []*GetCheckinRecordResponse { + if x != nil { + return x.Data } return nil } -//健康打卡记录 type GetCheckinRecordResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *CheckinRecord `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetCheckinRecordResponse) Reset() { + *x = GetCheckinRecordResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_health_v1_health_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCheckinRecordResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCheckinRecordResponse) ProtoMessage() {} + +func (x *GetCheckinRecordResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_health_v1_health_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCheckinRecordResponse.ProtoReflect.Descriptor instead. +func (*GetCheckinRecordResponse) Descriptor() ([]byte, []int) { + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{2} +} + +func (x *GetCheckinRecordResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetCheckinRecordResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetCheckinRecordResponse) GetData() *CheckinRecord { + if x != nil { + return x.Data + } + return nil +} + +//健康打卡记录 +type CheckinRecord struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + Id uint32 `protobuf:"varint,1,opt,name=id,proto3" json:"id,omitempty"` //姓名 Creator string `protobuf:"bytes,2,opt,name=creator,proto3" json:"creator,omitempty"` @@ -158,23 +237,23 @@ type GetCheckinRecordResponse struct { SchoolId string `protobuf:"bytes,15,opt,name=schoolId,proto3" json:"schoolId,omitempty"` } -func (x *GetCheckinRecordResponse) Reset() { - *x = GetCheckinRecordResponse{} +func (x *CheckinRecord) Reset() { + *x = CheckinRecord{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_health_v1_health_proto_msgTypes[2] + mi := &file_campusapis_health_v1_health_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetCheckinRecordResponse) String() string { +func (x *CheckinRecord) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetCheckinRecordResponse) ProtoMessage() {} +func (*CheckinRecord) ProtoMessage() {} -func (x *GetCheckinRecordResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_health_v1_health_proto_msgTypes[2] +func (x *CheckinRecord) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_health_v1_health_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -185,110 +264,110 @@ func (x *GetCheckinRecordResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetCheckinRecordResponse.ProtoReflect.Descriptor instead. -func (*GetCheckinRecordResponse) Descriptor() ([]byte, []int) { - return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{2} +// Deprecated: Use CheckinRecord.ProtoReflect.Descriptor instead. +func (*CheckinRecord) Descriptor() ([]byte, []int) { + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{3} } -func (x *GetCheckinRecordResponse) GetId() uint32 { +func (x *CheckinRecord) GetId() uint32 { if x != nil { return x.Id } return 0 } -func (x *GetCheckinRecordResponse) GetCreator() string { +func (x *CheckinRecord) GetCreator() string { if x != nil { return x.Creator } return "" } -func (x *GetCheckinRecordResponse) GetCreatedAt() uint32 { +func (x *CheckinRecord) GetCreatedAt() uint32 { if x != nil { return x.CreatedAt } return 0 } -func (x *GetCheckinRecordResponse) GetModified() uint32 { +func (x *CheckinRecord) GetModified() uint32 { if x != nil { return x.Modified } return 0 } -func (x *GetCheckinRecordResponse) GetModifier() string { +func (x *CheckinRecord) GetModifier() string { if x != nil { return x.Modifier } return "" } -func (x *GetCheckinRecordResponse) GetContent() *structpb.Struct { +func (x *CheckinRecord) GetContent() *structpb.Struct { if x != nil { return x.Content } return nil } -func (x *GetCheckinRecordResponse) GetReportTime() uint32 { +func (x *CheckinRecord) GetReportTime() uint32 { if x != nil { return x.ReportTime } return 0 } -func (x *GetCheckinRecordResponse) GetProvince() string { +func (x *CheckinRecord) GetProvince() string { if x != nil { return x.Province } return "" } -func (x *GetCheckinRecordResponse) GetCity() string { +func (x *CheckinRecord) GetCity() string { if x != nil { return x.City } return "" } -func (x *GetCheckinRecordResponse) GetCountry() string { +func (x *CheckinRecord) GetCountry() string { if x != nil { return x.Country } return "" } -func (x *GetCheckinRecordResponse) GetStaffId() string { +func (x *CheckinRecord) GetStaffId() string { if x != nil { return x.StaffId } return "" } -func (x *GetCheckinRecordResponse) GetStaffName() string { +func (x *CheckinRecord) GetStaffName() string { if x != nil { return x.StaffName } return "" } -func (x *GetCheckinRecordResponse) GetStaffType() string { +func (x *CheckinRecord) GetStaffType() string { if x != nil { return x.StaffType } return "" } -func (x *GetCheckinRecordResponse) GetUnit() string { +func (x *CheckinRecord) GetUnit() string { if x != nil { return x.Unit } return "" } -func (x *GetCheckinRecordResponse) GetSchoolId() string { +func (x *CheckinRecord) GetSchoolId() string { if x != nil { return x.SchoolId } @@ -308,7 +387,7 @@ type PostCheckinRecordRequest struct { func (x *PostCheckinRecordRequest) Reset() { *x = PostCheckinRecordRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_health_v1_health_proto_msgTypes[3] + mi := &file_campusapis_health_v1_health_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -321,7 +400,7 @@ func (x *PostCheckinRecordRequest) String() string { func (*PostCheckinRecordRequest) ProtoMessage() {} func (x *PostCheckinRecordRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_health_v1_health_proto_msgTypes[3] + mi := &file_campusapis_health_v1_health_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -334,7 +413,7 @@ func (x *PostCheckinRecordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PostCheckinRecordRequest.ProtoReflect.Descriptor instead. func (*PostCheckinRecordRequest) Descriptor() ([]byte, []int) { - return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{3} + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{4} } func (x *PostCheckinRecordRequest) GetSign() string { @@ -374,7 +453,7 @@ type PostCheckinRecordBody struct { func (x *PostCheckinRecordBody) Reset() { *x = PostCheckinRecordBody{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_health_v1_health_proto_msgTypes[4] + mi := &file_campusapis_health_v1_health_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -387,7 +466,7 @@ func (x *PostCheckinRecordBody) String() string { func (*PostCheckinRecordBody) ProtoMessage() {} func (x *PostCheckinRecordBody) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_health_v1_health_proto_msgTypes[4] + mi := &file_campusapis_health_v1_health_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -400,7 +479,7 @@ func (x *PostCheckinRecordBody) ProtoReflect() protoreflect.Message { // Deprecated: Use PostCheckinRecordBody.ProtoReflect.Descriptor instead. func (*PostCheckinRecordBody) Descriptor() ([]byte, []int) { - return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{4} + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{5} } func (x *PostCheckinRecordBody) GetName() string { @@ -450,15 +529,15 @@ type PostCheckinRecordResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` - Data string `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` - Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *PostCheckinRecordResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *PostCheckinRecordResponse) Reset() { *x = PostCheckinRecordResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_health_v1_health_proto_msgTypes[5] + mi := &file_campusapis_health_v1_health_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -471,7 +550,7 @@ func (x *PostCheckinRecordResponse) String() string { func (*PostCheckinRecordResponse) ProtoMessage() {} func (x *PostCheckinRecordResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_health_v1_health_proto_msgTypes[5] + mi := &file_campusapis_health_v1_health_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -484,28 +563,28 @@ func (x *PostCheckinRecordResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PostCheckinRecordResponse.ProtoReflect.Descriptor instead. func (*PostCheckinRecordResponse) Descriptor() ([]byte, []int) { - return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{5} + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{6} } -func (x *PostCheckinRecordResponse) GetCode() uint32 { +func (x *PostCheckinRecordResponse) GetError() uint32 { if x != nil { - return x.Code + return x.Error } return 0 } -func (x *PostCheckinRecordResponse) GetData() string { +func (x *PostCheckinRecordResponse) GetMsg() string { if x != nil { - return x.Data + return x.Msg } return "" } -func (x *PostCheckinRecordResponse) GetMessage() string { +func (x *PostCheckinRecordResponse) GetData() *PostCheckinRecordResponse_Data { if x != nil { - return x.Message + return x.Data } - return "" + return nil } type GetCheckinPhoneResponse struct { @@ -513,14 +592,15 @@ type GetCheckinPhoneResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Phone string `protobuf:"bytes,1,opt,name=Phone,proto3" json:"Phone,omitempty"` - StaffID string `protobuf:"bytes,2,opt,name=StaffID,proto3" json:"StaffID,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *GetCheckinPhoneResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetCheckinPhoneResponse) Reset() { *x = GetCheckinPhoneResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_health_v1_health_proto_msgTypes[6] + mi := &file_campusapis_health_v1_health_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -533,7 +613,7 @@ func (x *GetCheckinPhoneResponse) String() string { func (*GetCheckinPhoneResponse) ProtoMessage() {} func (x *GetCheckinPhoneResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_health_v1_health_proto_msgTypes[6] + mi := &file_campusapis_health_v1_health_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -546,23 +626,30 @@ func (x *GetCheckinPhoneResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCheckinPhoneResponse.ProtoReflect.Descriptor instead. func (*GetCheckinPhoneResponse) Descriptor() ([]byte, []int) { - return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{6} + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{7} } -func (x *GetCheckinPhoneResponse) GetPhone() string { +func (x *GetCheckinPhoneResponse) GetError() uint32 { if x != nil { - return x.Phone + return x.Error } - return "" + return 0 } -func (x *GetCheckinPhoneResponse) GetStaffID() string { +func (x *GetCheckinPhoneResponse) GetMsg() string { if x != nil { - return x.StaffID + return x.Msg } return "" } +func (x *GetCheckinPhoneResponse) GetData() *GetCheckinPhoneResponse_Data { + if x != nil { + return x.Data + } + return nil +} + type PostCheckinPhoneRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -574,7 +661,7 @@ type PostCheckinPhoneRequest struct { func (x *PostCheckinPhoneRequest) Reset() { *x = PostCheckinPhoneRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_health_v1_health_proto_msgTypes[7] + mi := &file_campusapis_health_v1_health_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -587,7 +674,7 @@ func (x *PostCheckinPhoneRequest) String() string { func (*PostCheckinPhoneRequest) ProtoMessage() {} func (x *PostCheckinPhoneRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_health_v1_health_proto_msgTypes[7] + mi := &file_campusapis_health_v1_health_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -600,7 +687,7 @@ func (x *PostCheckinPhoneRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PostCheckinPhoneRequest.ProtoReflect.Descriptor instead. func (*PostCheckinPhoneRequest) Descriptor() ([]byte, []int) { - return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{7} + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{8} } func (x *PostCheckinPhoneRequest) GetPhone() string { @@ -610,6 +697,69 @@ func (x *PostCheckinPhoneRequest) GetPhone() string { return "" } +type PostCheckinPhoneResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *PostCheckinPhoneResponse) Reset() { + *x = PostCheckinPhoneResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_health_v1_health_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostCheckinPhoneResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostCheckinPhoneResponse) ProtoMessage() {} + +func (x *PostCheckinPhoneResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_health_v1_health_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostCheckinPhoneResponse.ProtoReflect.Descriptor instead. +func (*PostCheckinPhoneResponse) Descriptor() ([]byte, []int) { + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{9} +} + +func (x *PostCheckinPhoneResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *PostCheckinPhoneResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *PostCheckinPhoneResponse) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + //健康码 type HealthCode struct { state protoimpl.MessageState @@ -629,7 +779,7 @@ type HealthCode struct { func (x *HealthCode) Reset() { *x = HealthCode{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_health_v1_health_proto_msgTypes[8] + mi := &file_campusapis_health_v1_health_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -642,7 +792,7 @@ func (x *HealthCode) String() string { func (*HealthCode) ProtoMessage() {} func (x *HealthCode) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_health_v1_health_proto_msgTypes[8] + mi := &file_campusapis_health_v1_health_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -655,7 +805,7 @@ func (x *HealthCode) ProtoReflect() protoreflect.Message { // Deprecated: Use HealthCode.ProtoReflect.Descriptor instead. func (*HealthCode) Descriptor() ([]byte, []int) { - return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{8} + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{10} } func (x *HealthCode) GetCodeId() string { @@ -720,6 +870,69 @@ type GetHealthCodeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *HealthCodeRaw `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetHealthCodeResponse) Reset() { + *x = GetHealthCodeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_health_v1_health_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHealthCodeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHealthCodeResponse) ProtoMessage() {} + +func (x *GetHealthCodeResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_health_v1_health_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetHealthCodeResponse.ProtoReflect.Descriptor instead. +func (*GetHealthCodeResponse) Descriptor() ([]byte, []int) { + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{11} +} + +func (x *GetHealthCodeResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetHealthCodeResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetHealthCodeResponse) GetData() *HealthCodeRaw { + if x != nil { + return x.Data + } + return nil +} + +type HealthCodeRaw struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` PhoneNum string `protobuf:"bytes,3,opt,name=phoneNum,proto3" json:"phoneNum,omitempty"` @@ -740,23 +953,23 @@ type GetHealthCodeResponse struct { ServerUpdateTime string `protobuf:"bytes,10,opt,name=serverUpdateTime,proto3" json:"serverUpdateTime,omitempty"` } -func (x *GetHealthCodeResponse) Reset() { - *x = GetHealthCodeResponse{} +func (x *HealthCodeRaw) Reset() { + *x = HealthCodeRaw{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_health_v1_health_proto_msgTypes[9] + mi := &file_campusapis_health_v1_health_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetHealthCodeResponse) String() string { +func (x *HealthCodeRaw) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetHealthCodeResponse) ProtoMessage() {} +func (*HealthCodeRaw) ProtoMessage() {} -func (x *GetHealthCodeResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_health_v1_health_proto_msgTypes[9] +func (x *HealthCodeRaw) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_health_v1_health_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -767,75 +980,75 @@ func (x *GetHealthCodeResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetHealthCodeResponse.ProtoReflect.Descriptor instead. -func (*GetHealthCodeResponse) Descriptor() ([]byte, []int) { - return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{9} +// Deprecated: Use HealthCodeRaw.ProtoReflect.Descriptor instead. +func (*HealthCodeRaw) Descriptor() ([]byte, []int) { + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{12} } -func (x *GetHealthCodeResponse) GetStaffId() string { +func (x *HealthCodeRaw) GetStaffId() string { if x != nil { return x.StaffId } return "" } -func (x *GetHealthCodeResponse) GetStaffName() string { +func (x *HealthCodeRaw) GetStaffName() string { if x != nil { return x.StaffName } return "" } -func (x *GetHealthCodeResponse) GetPhoneNum() string { +func (x *HealthCodeRaw) GetPhoneNum() string { if x != nil { return x.PhoneNum } return "" } -func (x *GetHealthCodeResponse) GetCodeStatus() string { +func (x *HealthCodeRaw) GetCodeStatus() string { if x != nil { return x.CodeStatus } return "" } -func (x *GetHealthCodeResponse) GetLocation() string { +func (x *HealthCodeRaw) GetLocation() string { if x != nil { return x.Location } return "" } -func (x *GetHealthCodeResponse) GetReason() string { +func (x *HealthCodeRaw) GetReason() string { if x != nil { return x.Reason } return "" } -func (x *GetHealthCodeResponse) GetFirstApplyTime() string { +func (x *HealthCodeRaw) GetFirstApplyTime() string { if x != nil { return x.FirstApplyTime } return "" } -func (x *GetHealthCodeResponse) GetFirstGrantTime() string { +func (x *HealthCodeRaw) GetFirstGrantTime() string { if x != nil { return x.FirstGrantTime } return "" } -func (x *GetHealthCodeResponse) GetLastUpdateTime() string { +func (x *HealthCodeRaw) GetLastUpdateTime() string { if x != nil { return x.LastUpdateTime } return "" } -func (x *GetHealthCodeResponse) GetServerUpdateTime() string { +func (x *HealthCodeRaw) GetServerUpdateTime() string { if x != nil { return x.ServerUpdateTime } @@ -848,13 +1061,15 @@ type GetVaccineRecordsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Items []*VaccineRecord `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *GetVaccineRecordsResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetVaccineRecordsResponse) Reset() { *x = GetVaccineRecordsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_health_v1_health_proto_msgTypes[10] + mi := &file_campusapis_health_v1_health_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -867,7 +1082,7 @@ func (x *GetVaccineRecordsResponse) String() string { func (*GetVaccineRecordsResponse) ProtoMessage() {} func (x *GetVaccineRecordsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_health_v1_health_proto_msgTypes[10] + mi := &file_campusapis_health_v1_health_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -880,12 +1095,26 @@ func (x *GetVaccineRecordsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetVaccineRecordsResponse.ProtoReflect.Descriptor instead. func (*GetVaccineRecordsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{10} + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{13} } -func (x *GetVaccineRecordsResponse) GetItems() []*VaccineRecord { +func (x *GetVaccineRecordsResponse) GetError() uint32 { if x != nil { - return x.Items + return x.Error + } + return 0 +} + +func (x *GetVaccineRecordsResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetVaccineRecordsResponse) GetData() *GetVaccineRecordsResponse_Data { + if x != nil { + return x.Data } return nil } @@ -915,7 +1144,7 @@ type VaccineRecord struct { func (x *VaccineRecord) Reset() { *x = VaccineRecord{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_health_v1_health_proto_msgTypes[11] + mi := &file_campusapis_health_v1_health_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -928,7 +1157,7 @@ func (x *VaccineRecord) String() string { func (*VaccineRecord) ProtoMessage() {} func (x *VaccineRecord) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_health_v1_health_proto_msgTypes[11] + mi := &file_campusapis_health_v1_health_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -941,7 +1170,7 @@ func (x *VaccineRecord) ProtoReflect() protoreflect.Message { // Deprecated: Use VaccineRecord.ProtoReflect.Descriptor instead. func (*VaccineRecord) Descriptor() ([]byte, []int) { - return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{11} + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{14} } func (x *VaccineRecord) GetTypeName() string { @@ -999,13 +1228,15 @@ type GetNucleicAcidTestsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Items []*NucleicAcidTest `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *GetNucleicAcidTestsResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetNucleicAcidTestsResponse) Reset() { *x = GetNucleicAcidTestsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_health_v1_health_proto_msgTypes[12] + mi := &file_campusapis_health_v1_health_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1018,7 +1249,7 @@ func (x *GetNucleicAcidTestsResponse) String() string { func (*GetNucleicAcidTestsResponse) ProtoMessage() {} func (x *GetNucleicAcidTestsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_health_v1_health_proto_msgTypes[12] + mi := &file_campusapis_health_v1_health_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1031,12 +1262,26 @@ func (x *GetNucleicAcidTestsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNucleicAcidTestsResponse.ProtoReflect.Descriptor instead. func (*GetNucleicAcidTestsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{12} + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{15} } -func (x *GetNucleicAcidTestsResponse) GetItems() []*NucleicAcidTest { +func (x *GetNucleicAcidTestsResponse) GetError() uint32 { if x != nil { - return x.Items + return x.Error + } + return 0 +} + +func (x *GetNucleicAcidTestsResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetNucleicAcidTestsResponse) GetData() *GetNucleicAcidTestsResponse_Data { + if x != nil { + return x.Data } return nil } @@ -1057,7 +1302,7 @@ type NucleicAcidTest struct { func (x *NucleicAcidTest) Reset() { *x = NucleicAcidTest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_health_v1_health_proto_msgTypes[13] + mi := &file_campusapis_health_v1_health_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1070,7 +1315,7 @@ func (x *NucleicAcidTest) String() string { func (*NucleicAcidTest) ProtoMessage() {} func (x *NucleicAcidTest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_health_v1_health_proto_msgTypes[13] + mi := &file_campusapis_health_v1_health_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1083,7 +1328,7 @@ func (x *NucleicAcidTest) ProtoReflect() protoreflect.Message { // Deprecated: Use NucleicAcidTest.ProtoReflect.Descriptor instead. func (*NucleicAcidTest) Descriptor() ([]byte, []int) { - return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{13} + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{16} } func (x *NucleicAcidTest) GetTestUnitName() string { @@ -1113,13 +1358,15 @@ type GetNucleicAcidTestLatestResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Item *NucleicAcidTest `protobuf:"bytes,1,opt,name=item,proto3" json:"item,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *NucleicAcidTest `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetNucleicAcidTestLatestResponse) Reset() { *x = GetNucleicAcidTestLatestResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_health_v1_health_proto_msgTypes[14] + mi := &file_campusapis_health_v1_health_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1132,7 +1379,7 @@ func (x *GetNucleicAcidTestLatestResponse) String() string { func (*GetNucleicAcidTestLatestResponse) ProtoMessage() {} func (x *GetNucleicAcidTestLatestResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_health_v1_health_proto_msgTypes[14] + mi := &file_campusapis_health_v1_health_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1145,12 +1392,239 @@ func (x *GetNucleicAcidTestLatestResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNucleicAcidTestLatestResponse.ProtoReflect.Descriptor instead. func (*GetNucleicAcidTestLatestResponse) Descriptor() ([]byte, []int) { - return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{14} + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{17} } -func (x *GetNucleicAcidTestLatestResponse) GetItem() *NucleicAcidTest { +func (x *GetNucleicAcidTestLatestResponse) GetError() uint32 { if x != nil { - return x.Item + return x.Error + } + return 0 +} + +func (x *GetNucleicAcidTestLatestResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetNucleicAcidTestLatestResponse) GetData() *NucleicAcidTest { + if x != nil { + return x.Data + } + return nil +} + +//学校健康打卡服务返回值 +type PostCheckinRecordResponse_Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code uint32 `protobuf:"varint,1,opt,name=code,proto3" json:"code,omitempty"` + Data string `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` + Message string `protobuf:"bytes,3,opt,name=message,proto3" json:"message,omitempty"` +} + +func (x *PostCheckinRecordResponse_Data) Reset() { + *x = PostCheckinRecordResponse_Data{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_health_v1_health_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostCheckinRecordResponse_Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostCheckinRecordResponse_Data) ProtoMessage() {} + +func (x *PostCheckinRecordResponse_Data) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_health_v1_health_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostCheckinRecordResponse_Data.ProtoReflect.Descriptor instead. +func (*PostCheckinRecordResponse_Data) Descriptor() ([]byte, []int) { + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *PostCheckinRecordResponse_Data) GetCode() uint32 { + if x != nil { + return x.Code + } + return 0 +} + +func (x *PostCheckinRecordResponse_Data) GetData() string { + if x != nil { + return x.Data + } + return "" +} + +func (x *PostCheckinRecordResponse_Data) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +type GetCheckinPhoneResponse_Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Phone string `protobuf:"bytes,1,opt,name=Phone,proto3" json:"Phone,omitempty"` + StaffID string `protobuf:"bytes,2,opt,name=StaffID,proto3" json:"StaffID,omitempty"` +} + +func (x *GetCheckinPhoneResponse_Data) Reset() { + *x = GetCheckinPhoneResponse_Data{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_health_v1_health_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetCheckinPhoneResponse_Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetCheckinPhoneResponse_Data) ProtoMessage() {} + +func (x *GetCheckinPhoneResponse_Data) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_health_v1_health_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetCheckinPhoneResponse_Data.ProtoReflect.Descriptor instead. +func (*GetCheckinPhoneResponse_Data) Descriptor() ([]byte, []int) { + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{7, 0} +} + +func (x *GetCheckinPhoneResponse_Data) GetPhone() string { + if x != nil { + return x.Phone + } + return "" +} + +func (x *GetCheckinPhoneResponse_Data) GetStaffID() string { + if x != nil { + return x.StaffID + } + return "" +} + +type GetVaccineRecordsResponse_Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Items []*VaccineRecord `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *GetVaccineRecordsResponse_Data) Reset() { + *x = GetVaccineRecordsResponse_Data{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_health_v1_health_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetVaccineRecordsResponse_Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetVaccineRecordsResponse_Data) ProtoMessage() {} + +func (x *GetVaccineRecordsResponse_Data) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_health_v1_health_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetVaccineRecordsResponse_Data.ProtoReflect.Descriptor instead. +func (*GetVaccineRecordsResponse_Data) Descriptor() ([]byte, []int) { + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{13, 0} +} + +func (x *GetVaccineRecordsResponse_Data) GetItems() []*VaccineRecord { + if x != nil { + return x.Items + } + return nil +} + +type GetNucleicAcidTestsResponse_Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Items []*NucleicAcidTest `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` +} + +func (x *GetNucleicAcidTestsResponse_Data) Reset() { + *x = GetNucleicAcidTestsResponse_Data{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_health_v1_health_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetNucleicAcidTestsResponse_Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetNucleicAcidTestsResponse_Data) ProtoMessage() {} + +func (x *GetNucleicAcidTestsResponse_Data) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_health_v1_health_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetNucleicAcidTestsResponse_Data.ProtoReflect.Descriptor instead. +func (*GetNucleicAcidTestsResponse_Data) Descriptor() ([]byte, []int) { + return file_campusapis_health_v1_health_proto_rawDescGZIP(), []int{15, 0} +} + +func (x *GetNucleicAcidTestsResponse_Data) GetItems() []*NucleicAcidTest { + if x != nil { + return x.Items } return nil } @@ -1175,183 +1649,238 @@ var file_campusapis_health_v1_health_proto_rawDesc = []byte{ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x22, 0x61, 0x0a, 0x19, 0x47, 0x65, - 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xbd, 0x03, - 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, - 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x22, 0x75, 0x0a, - 0x18, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x45, 0x0a, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x47, + 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x42, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, - 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x22, 0xb9, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6e, - 0x73, 0x77, 0x65, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x72, - 0x22, 0x5d, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, - 0x49, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, - 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x68, - 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x22, 0x2f, 0x0a, 0x17, 0x50, 0x6f, - 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0xb2, 0x02, 0x0a, 0x0a, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, - 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, - 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x7b, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0xb2, 0x03, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, + 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, + 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, + 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x22, 0x75, 0x0a, 0x18, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x45, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xb9, 0x01, + 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, + 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4a, 0x73, 0x6f, + 0x6e, 0x53, 0x74, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x22, 0xd7, 0x01, 0x0a, 0x19, 0x50, 0x6f, + 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x48, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x48, 0x0a, 0x04, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x46, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x36, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x22, 0x2f, 0x0a, 0x17, 0x50, 0x6f, 0x73, 0x74, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x5c, 0x0a, 0x18, 0x50, 0x6f, 0x73, 0x74, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb2, 0x02, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x38, 0x0a, + 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x61, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, - 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x78, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xdb, 0x02, 0x0a, 0x0d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x43, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x63, + 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, + 0x26, 0x0a, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, + 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, + 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x48, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x1a, 0x41, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x05, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xa1, 0x02, 0x0a, 0x0d, 0x56, 0x61, 0x63, 0x63, 0x69, + 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x61, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x61, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, + 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x63, + 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2a, + 0x0a, 0x10, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, + 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, + 0x78, 0x49, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x6f, 0x63, 0x75, + 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x1b, 0x47, + 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, + 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x4a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, + 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x43, + 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x63, + 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x0f, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, + 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x55, + 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, + 0x65, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x72, + 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x67, 0x72, 0x61, - 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, - 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x22, 0xe3, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, - 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, - 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x69, - 0x72, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x56, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x61, 0x63, - 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, - 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xa1, - 0x02, 0x0a, 0x0d, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x76, 0x61, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, - 0x61, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x69, 0x6e, - 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x0f, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, - 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x22, 0x5a, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, - 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x3b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, - 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x89, - 0x01, 0x0a, 0x0f, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, - 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x55, 0x6e, - 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x5d, 0x0a, 0x20, 0x47, 0x65, - 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, - 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, - 0x0a, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, - 0x65, 0x73, 0x74, 0x52, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x32, 0xd1, 0x0a, 0x0a, 0x0d, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x10, - 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, - 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, 0x12, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x5a, 0x11, 0x12, 0x0f, 0x2f, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x5a, 0x17, - 0x12, 0x15, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, - 0x6e, 0x2f, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x9b, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x13, - 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x69, 0x6e, 0x73, 0x5a, 0x19, 0x12, 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x73, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x62, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x72, 0x65, 0x70, + 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, + 0x85, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, + 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, + 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0xd5, 0x0a, 0x0a, 0x0d, 0x48, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2d, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, + 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, 0x12, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, + 0x31, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x68, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x5a, 0x17, 0x12, 0x15, + 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x2f, + 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x8d, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x13, 0x2f, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, + 0x73, 0x5a, 0x12, 0x12, 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, @@ -1371,63 +1900,65 @@ var file_campusapis_health_v1_health_proto_rawDesc = []byte{ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x70, 0x68, - 0x6f, 0x6e, 0x65, 0x12, 0x8a, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, + 0x6f, 0x6e, 0x65, 0x12, 0xa2, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, - 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x5a, 0x12, 0x22, 0x0d, - 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, - 0x12, 0x7d, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x0f, - 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x5a, - 0x0e, 0x12, 0x0c, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x79, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, - 0x31, 0x2f, 0x76, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x87, 0x01, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, - 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, - 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, - 0x31, 0x2f, 0x6e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x5f, 0x61, 0x63, 0x69, 0x64, 0x5f, 0x74, - 0x65, 0x73, 0x74, 0x73, 0x12, 0x96, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, + 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x68, 0x6f, 0x6e, + 0x65, 0x3a, 0x01, 0x2a, 0x5a, 0x12, 0x22, 0x0d, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7d, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x0f, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x79, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x56, 0x61, + 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, + 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x63, 0x63, 0x69, 0x6e, + 0x65, 0x73, 0x12, 0x87, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, + 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, + 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x75, 0x63, 0x6c, 0x65, 0x69, + 0x63, 0x5f, 0x61, 0x63, 0x69, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x73, 0x12, 0x90, 0x01, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, + 0x65, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, - 0x65, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 0x12, 0x1c, 0x2f, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x5f, 0x61, 0x63, - 0x69, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x62, 0x04, 0x69, 0x74, 0x65, 0x6d, 0x42, 0xd8, 0x01, - 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x48, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, - 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x3b, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x48, 0x58, 0xaa, 0x02, - 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x5c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x20, 0x43, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1e, 0x12, 0x1c, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x75, + 0x63, 0x6c, 0x65, 0x69, 0x63, 0x5f, 0x61, 0x63, 0x69, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x42, + 0xd8, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, + 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, + 0x31, 0x3b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x48, 0x58, + 0xaa, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x5c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5c, 0x56, 0x31, 0xe2, 0x02, + 0x20, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x48, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -1442,62 +1973,75 @@ func file_campusapis_health_v1_health_proto_rawDescGZIP() []byte { return file_campusapis_health_v1_health_proto_rawDescData } -var file_campusapis_health_v1_health_proto_msgTypes = make([]protoimpl.MessageInfo, 15) +var file_campusapis_health_v1_health_proto_msgTypes = make([]protoimpl.MessageInfo, 22) var file_campusapis_health_v1_health_proto_goTypes = []interface{}{ (*GetCheckinRecordRequest)(nil), // 0: campusapis.health.v1.GetCheckinRecordRequest (*GetCheckinRecordsResponse)(nil), // 1: campusapis.health.v1.GetCheckinRecordsResponse (*GetCheckinRecordResponse)(nil), // 2: campusapis.health.v1.GetCheckinRecordResponse - (*PostCheckinRecordRequest)(nil), // 3: campusapis.health.v1.PostCheckinRecordRequest - (*PostCheckinRecordBody)(nil), // 4: campusapis.health.v1.PostCheckinRecordBody - (*PostCheckinRecordResponse)(nil), // 5: campusapis.health.v1.PostCheckinRecordResponse - (*GetCheckinPhoneResponse)(nil), // 6: campusapis.health.v1.GetCheckinPhoneResponse - (*PostCheckinPhoneRequest)(nil), // 7: campusapis.health.v1.PostCheckinPhoneRequest - (*HealthCode)(nil), // 8: campusapis.health.v1.HealthCode - (*GetHealthCodeResponse)(nil), // 9: campusapis.health.v1.GetHealthCodeResponse - (*GetVaccineRecordsResponse)(nil), // 10: campusapis.health.v1.GetVaccineRecordsResponse - (*VaccineRecord)(nil), // 11: campusapis.health.v1.VaccineRecord - (*GetNucleicAcidTestsResponse)(nil), // 12: campusapis.health.v1.GetNucleicAcidTestsResponse - (*NucleicAcidTest)(nil), // 13: campusapis.health.v1.NucleicAcidTest - (*GetNucleicAcidTestLatestResponse)(nil), // 14: campusapis.health.v1.GetNucleicAcidTestLatestResponse - (*structpb.Struct)(nil), // 15: google.protobuf.Struct - (*timestamppb.Timestamp)(nil), // 16: google.protobuf.Timestamp - (*emptypb.Empty)(nil), // 17: google.protobuf.Empty + (*CheckinRecord)(nil), // 3: campusapis.health.v1.CheckinRecord + (*PostCheckinRecordRequest)(nil), // 4: campusapis.health.v1.PostCheckinRecordRequest + (*PostCheckinRecordBody)(nil), // 5: campusapis.health.v1.PostCheckinRecordBody + (*PostCheckinRecordResponse)(nil), // 6: campusapis.health.v1.PostCheckinRecordResponse + (*GetCheckinPhoneResponse)(nil), // 7: campusapis.health.v1.GetCheckinPhoneResponse + (*PostCheckinPhoneRequest)(nil), // 8: campusapis.health.v1.PostCheckinPhoneRequest + (*PostCheckinPhoneResponse)(nil), // 9: campusapis.health.v1.PostCheckinPhoneResponse + (*HealthCode)(nil), // 10: campusapis.health.v1.HealthCode + (*GetHealthCodeResponse)(nil), // 11: campusapis.health.v1.GetHealthCodeResponse + (*HealthCodeRaw)(nil), // 12: campusapis.health.v1.HealthCodeRaw + (*GetVaccineRecordsResponse)(nil), // 13: campusapis.health.v1.GetVaccineRecordsResponse + (*VaccineRecord)(nil), // 14: campusapis.health.v1.VaccineRecord + (*GetNucleicAcidTestsResponse)(nil), // 15: campusapis.health.v1.GetNucleicAcidTestsResponse + (*NucleicAcidTest)(nil), // 16: campusapis.health.v1.NucleicAcidTest + (*GetNucleicAcidTestLatestResponse)(nil), // 17: campusapis.health.v1.GetNucleicAcidTestLatestResponse + (*PostCheckinRecordResponse_Data)(nil), // 18: campusapis.health.v1.PostCheckinRecordResponse.Data + (*GetCheckinPhoneResponse_Data)(nil), // 19: campusapis.health.v1.GetCheckinPhoneResponse.Data + (*GetVaccineRecordsResponse_Data)(nil), // 20: campusapis.health.v1.GetVaccineRecordsResponse.Data + (*GetNucleicAcidTestsResponse_Data)(nil), // 21: campusapis.health.v1.GetNucleicAcidTestsResponse.Data + (*structpb.Struct)(nil), // 22: google.protobuf.Struct + (*timestamppb.Timestamp)(nil), // 23: google.protobuf.Timestamp + (*emptypb.Empty)(nil), // 24: google.protobuf.Empty } var file_campusapis_health_v1_health_proto_depIdxs = []int32{ - 2, // 0: campusapis.health.v1.GetCheckinRecordsResponse.items:type_name -> campusapis.health.v1.GetCheckinRecordResponse - 15, // 1: campusapis.health.v1.GetCheckinRecordResponse.content:type_name -> google.protobuf.Struct - 4, // 2: campusapis.health.v1.PostCheckinRecordRequest.content:type_name -> campusapis.health.v1.PostCheckinRecordBody - 16, // 3: campusapis.health.v1.HealthCode.applyTime:type_name -> google.protobuf.Timestamp - 16, // 4: campusapis.health.v1.HealthCode.grantTime:type_name -> google.protobuf.Timestamp - 16, // 5: campusapis.health.v1.HealthCode.updateTime:type_name -> google.protobuf.Timestamp - 11, // 6: campusapis.health.v1.GetVaccineRecordsResponse.items:type_name -> campusapis.health.v1.VaccineRecord - 16, // 7: campusapis.health.v1.VaccineRecord.inoculationTime:type_name -> google.protobuf.Timestamp - 13, // 8: campusapis.health.v1.GetNucleicAcidTestsResponse.items:type_name -> campusapis.health.v1.NucleicAcidTest - 16, // 9: campusapis.health.v1.NucleicAcidTest.reportTime:type_name -> google.protobuf.Timestamp - 13, // 10: campusapis.health.v1.GetNucleicAcidTestLatestResponse.item:type_name -> campusapis.health.v1.NucleicAcidTest - 0, // 11: campusapis.health.v1.HealthService.GetCheckinRecord:input_type -> campusapis.health.v1.GetCheckinRecordRequest - 17, // 12: campusapis.health.v1.HealthService.GetCheckinRecords:input_type -> google.protobuf.Empty - 3, // 13: campusapis.health.v1.HealthService.PostCheckinRecord:input_type -> campusapis.health.v1.PostCheckinRecordRequest - 17, // 14: campusapis.health.v1.HealthService.GetCheckinPhone:input_type -> google.protobuf.Empty - 7, // 15: campusapis.health.v1.HealthService.PostCheckinPhone:input_type -> campusapis.health.v1.PostCheckinPhoneRequest - 17, // 16: campusapis.health.v1.HealthService.GetHealthCode:input_type -> google.protobuf.Empty - 17, // 17: campusapis.health.v1.HealthService.GetVaccineRecords:input_type -> google.protobuf.Empty - 17, // 18: campusapis.health.v1.HealthService.GetNucleicAcidTests:input_type -> google.protobuf.Empty - 17, // 19: campusapis.health.v1.HealthService.GetNucleicAcidTestLatest:input_type -> google.protobuf.Empty - 2, // 20: campusapis.health.v1.HealthService.GetCheckinRecord:output_type -> campusapis.health.v1.GetCheckinRecordResponse - 1, // 21: campusapis.health.v1.HealthService.GetCheckinRecords:output_type -> campusapis.health.v1.GetCheckinRecordsResponse - 5, // 22: campusapis.health.v1.HealthService.PostCheckinRecord:output_type -> campusapis.health.v1.PostCheckinRecordResponse - 6, // 23: campusapis.health.v1.HealthService.GetCheckinPhone:output_type -> campusapis.health.v1.GetCheckinPhoneResponse - 17, // 24: campusapis.health.v1.HealthService.PostCheckinPhone:output_type -> google.protobuf.Empty - 9, // 25: campusapis.health.v1.HealthService.GetHealthCode:output_type -> campusapis.health.v1.GetHealthCodeResponse - 10, // 26: campusapis.health.v1.HealthService.GetVaccineRecords:output_type -> campusapis.health.v1.GetVaccineRecordsResponse - 12, // 27: campusapis.health.v1.HealthService.GetNucleicAcidTests:output_type -> campusapis.health.v1.GetNucleicAcidTestsResponse - 14, // 28: campusapis.health.v1.HealthService.GetNucleicAcidTestLatest:output_type -> campusapis.health.v1.GetNucleicAcidTestLatestResponse - 20, // [20:29] is the sub-list for method output_type - 11, // [11:20] is the sub-list for method input_type - 11, // [11:11] is the sub-list for extension type_name - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name + 2, // 0: campusapis.health.v1.GetCheckinRecordsResponse.data:type_name -> campusapis.health.v1.GetCheckinRecordResponse + 3, // 1: campusapis.health.v1.GetCheckinRecordResponse.data:type_name -> campusapis.health.v1.CheckinRecord + 22, // 2: campusapis.health.v1.CheckinRecord.content:type_name -> google.protobuf.Struct + 5, // 3: campusapis.health.v1.PostCheckinRecordRequest.content:type_name -> campusapis.health.v1.PostCheckinRecordBody + 18, // 4: campusapis.health.v1.PostCheckinRecordResponse.data:type_name -> campusapis.health.v1.PostCheckinRecordResponse.Data + 19, // 5: campusapis.health.v1.GetCheckinPhoneResponse.data:type_name -> campusapis.health.v1.GetCheckinPhoneResponse.Data + 23, // 6: campusapis.health.v1.HealthCode.applyTime:type_name -> google.protobuf.Timestamp + 23, // 7: campusapis.health.v1.HealthCode.grantTime:type_name -> google.protobuf.Timestamp + 23, // 8: campusapis.health.v1.HealthCode.updateTime:type_name -> google.protobuf.Timestamp + 12, // 9: campusapis.health.v1.GetHealthCodeResponse.data:type_name -> campusapis.health.v1.HealthCodeRaw + 20, // 10: campusapis.health.v1.GetVaccineRecordsResponse.data:type_name -> campusapis.health.v1.GetVaccineRecordsResponse.Data + 23, // 11: campusapis.health.v1.VaccineRecord.inoculationTime:type_name -> google.protobuf.Timestamp + 21, // 12: campusapis.health.v1.GetNucleicAcidTestsResponse.data:type_name -> campusapis.health.v1.GetNucleicAcidTestsResponse.Data + 23, // 13: campusapis.health.v1.NucleicAcidTest.reportTime:type_name -> google.protobuf.Timestamp + 16, // 14: campusapis.health.v1.GetNucleicAcidTestLatestResponse.data:type_name -> campusapis.health.v1.NucleicAcidTest + 14, // 15: campusapis.health.v1.GetVaccineRecordsResponse.Data.items:type_name -> campusapis.health.v1.VaccineRecord + 16, // 16: campusapis.health.v1.GetNucleicAcidTestsResponse.Data.items:type_name -> campusapis.health.v1.NucleicAcidTest + 0, // 17: campusapis.health.v1.HealthService.GetCheckinRecord:input_type -> campusapis.health.v1.GetCheckinRecordRequest + 24, // 18: campusapis.health.v1.HealthService.GetCheckinRecords:input_type -> google.protobuf.Empty + 4, // 19: campusapis.health.v1.HealthService.PostCheckinRecord:input_type -> campusapis.health.v1.PostCheckinRecordRequest + 24, // 20: campusapis.health.v1.HealthService.GetCheckinPhone:input_type -> google.protobuf.Empty + 8, // 21: campusapis.health.v1.HealthService.PostCheckinPhone:input_type -> campusapis.health.v1.PostCheckinPhoneRequest + 24, // 22: campusapis.health.v1.HealthService.GetHealthCode:input_type -> google.protobuf.Empty + 24, // 23: campusapis.health.v1.HealthService.GetVaccineRecords:input_type -> google.protobuf.Empty + 24, // 24: campusapis.health.v1.HealthService.GetNucleicAcidTests:input_type -> google.protobuf.Empty + 24, // 25: campusapis.health.v1.HealthService.GetNucleicAcidTestLatest:input_type -> google.protobuf.Empty + 2, // 26: campusapis.health.v1.HealthService.GetCheckinRecord:output_type -> campusapis.health.v1.GetCheckinRecordResponse + 1, // 27: campusapis.health.v1.HealthService.GetCheckinRecords:output_type -> campusapis.health.v1.GetCheckinRecordsResponse + 6, // 28: campusapis.health.v1.HealthService.PostCheckinRecord:output_type -> campusapis.health.v1.PostCheckinRecordResponse + 7, // 29: campusapis.health.v1.HealthService.GetCheckinPhone:output_type -> campusapis.health.v1.GetCheckinPhoneResponse + 9, // 30: campusapis.health.v1.HealthService.PostCheckinPhone:output_type -> campusapis.health.v1.PostCheckinPhoneResponse + 11, // 31: campusapis.health.v1.HealthService.GetHealthCode:output_type -> campusapis.health.v1.GetHealthCodeResponse + 13, // 32: campusapis.health.v1.HealthService.GetVaccineRecords:output_type -> campusapis.health.v1.GetVaccineRecordsResponse + 15, // 33: campusapis.health.v1.HealthService.GetNucleicAcidTests:output_type -> campusapis.health.v1.GetNucleicAcidTestsResponse + 17, // 34: campusapis.health.v1.HealthService.GetNucleicAcidTestLatest:output_type -> campusapis.health.v1.GetNucleicAcidTestLatestResponse + 26, // [26:35] is the sub-list for method output_type + 17, // [17:26] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name } func init() { file_campusapis_health_v1_health_proto_init() } @@ -1543,7 +2087,7 @@ func file_campusapis_health_v1_health_proto_init() { } } file_campusapis_health_v1_health_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostCheckinRecordRequest); i { + switch v := v.(*CheckinRecord); i { case 0: return &v.state case 1: @@ -1555,7 +2099,7 @@ func file_campusapis_health_v1_health_proto_init() { } } file_campusapis_health_v1_health_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostCheckinRecordBody); i { + switch v := v.(*PostCheckinRecordRequest); i { case 0: return &v.state case 1: @@ -1567,7 +2111,7 @@ func file_campusapis_health_v1_health_proto_init() { } } file_campusapis_health_v1_health_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostCheckinRecordResponse); i { + switch v := v.(*PostCheckinRecordBody); i { case 0: return &v.state case 1: @@ -1579,7 +2123,7 @@ func file_campusapis_health_v1_health_proto_init() { } } file_campusapis_health_v1_health_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetCheckinPhoneResponse); i { + switch v := v.(*PostCheckinRecordResponse); i { case 0: return &v.state case 1: @@ -1591,7 +2135,7 @@ func file_campusapis_health_v1_health_proto_init() { } } file_campusapis_health_v1_health_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostCheckinPhoneRequest); i { + switch v := v.(*GetCheckinPhoneResponse); i { case 0: return &v.state case 1: @@ -1603,7 +2147,7 @@ func file_campusapis_health_v1_health_proto_init() { } } file_campusapis_health_v1_health_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HealthCode); i { + switch v := v.(*PostCheckinPhoneRequest); i { case 0: return &v.state case 1: @@ -1615,7 +2159,7 @@ func file_campusapis_health_v1_health_proto_init() { } } file_campusapis_health_v1_health_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetHealthCodeResponse); i { + switch v := v.(*PostCheckinPhoneResponse); i { case 0: return &v.state case 1: @@ -1627,7 +2171,7 @@ func file_campusapis_health_v1_health_proto_init() { } } file_campusapis_health_v1_health_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetVaccineRecordsResponse); i { + switch v := v.(*HealthCode); i { case 0: return &v.state case 1: @@ -1639,7 +2183,7 @@ func file_campusapis_health_v1_health_proto_init() { } } file_campusapis_health_v1_health_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*VaccineRecord); i { + switch v := v.(*GetHealthCodeResponse); i { case 0: return &v.state case 1: @@ -1651,7 +2195,7 @@ func file_campusapis_health_v1_health_proto_init() { } } file_campusapis_health_v1_health_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNucleicAcidTestsResponse); i { + switch v := v.(*HealthCodeRaw); i { case 0: return &v.state case 1: @@ -1663,7 +2207,7 @@ func file_campusapis_health_v1_health_proto_init() { } } file_campusapis_health_v1_health_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NucleicAcidTest); i { + switch v := v.(*GetVaccineRecordsResponse); i { case 0: return &v.state case 1: @@ -1675,6 +2219,42 @@ func file_campusapis_health_v1_health_proto_init() { } } file_campusapis_health_v1_health_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*VaccineRecord); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_health_v1_health_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNucleicAcidTestsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_health_v1_health_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NucleicAcidTest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_health_v1_health_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetNucleicAcidTestLatestResponse); i { case 0: return &v.state @@ -1686,6 +2266,54 @@ func file_campusapis_health_v1_health_proto_init() { return nil } } + file_campusapis_health_v1_health_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PostCheckinRecordResponse_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_health_v1_health_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetCheckinPhoneResponse_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_health_v1_health_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetVaccineRecordsResponse_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_health_v1_health_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNucleicAcidTestsResponse_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -1693,7 +2321,7 @@ func file_campusapis_health_v1_health_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_campusapis_health_v1_health_proto_rawDesc, NumEnums: 0, - NumMessages: 15, + NumMessages: 22, NumExtensions: 0, NumServices: 1, }, diff --git a/campusapis/health/v1/health.pb.gw.go b/campusapis/health/v1/health.pb.gw.go index 4d75037..0c65699 100644 --- a/campusapis/health/v1/health.pb.gw.go +++ b/campusapis/health/v1/health.pb.gw.go @@ -572,7 +572,7 @@ func RegisterHealthServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_HealthService_GetCheckinRecords_0(ctx, mux, outboundMarshaler, w, req, response_HealthService_GetCheckinRecords_0{resp}, mux.GetForwardResponseOptions()...) + forward_HealthService_GetCheckinRecords_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -596,7 +596,7 @@ func RegisterHealthServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_HealthService_GetCheckinRecords_1(ctx, mux, outboundMarshaler, w, req, response_HealthService_GetCheckinRecords_1{resp}, mux.GetForwardResponseOptions()...) + forward_HealthService_GetCheckinRecords_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -860,7 +860,7 @@ func RegisterHealthServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_HealthService_GetNucleicAcidTestLatest_0(ctx, mux, outboundMarshaler, w, req, response_HealthService_GetNucleicAcidTestLatest_0{resp}, mux.GetForwardResponseOptions()...) + forward_HealthService_GetNucleicAcidTestLatest_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -985,7 +985,7 @@ func RegisterHealthServiceHandlerClient(ctx context.Context, mux *runtime.ServeM return } - forward_HealthService_GetCheckinRecords_0(ctx, mux, outboundMarshaler, w, req, response_HealthService_GetCheckinRecords_0{resp}, mux.GetForwardResponseOptions()...) + forward_HealthService_GetCheckinRecords_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1006,7 +1006,7 @@ func RegisterHealthServiceHandlerClient(ctx context.Context, mux *runtime.ServeM return } - forward_HealthService_GetCheckinRecords_1(ctx, mux, outboundMarshaler, w, req, response_HealthService_GetCheckinRecords_1{resp}, mux.GetForwardResponseOptions()...) + forward_HealthService_GetCheckinRecords_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1237,40 +1237,13 @@ func RegisterHealthServiceHandlerClient(ctx context.Context, mux *runtime.ServeM return } - forward_HealthService_GetNucleicAcidTestLatest_0(ctx, mux, outboundMarshaler, w, req, response_HealthService_GetNucleicAcidTestLatest_0{resp}, mux.GetForwardResponseOptions()...) + forward_HealthService_GetNucleicAcidTestLatest_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) return nil } -type response_HealthService_GetCheckinRecords_0 struct { - proto.Message -} - -func (m response_HealthService_GetCheckinRecords_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetCheckinRecordsResponse) - return response.Items -} - -type response_HealthService_GetCheckinRecords_1 struct { - proto.Message -} - -func (m response_HealthService_GetCheckinRecords_1) XXX_ResponseBody() interface{} { - response := m.Message.(*GetCheckinRecordsResponse) - return response.Items -} - -type response_HealthService_GetNucleicAcidTestLatest_0 struct { - proto.Message -} - -func (m response_HealthService_GetNucleicAcidTestLatest_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetNucleicAcidTestLatestResponse) - return response.Item -} - var ( pattern_HealthService_GetCheckinRecord_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"health", "v1", "checkin"}, "")) diff --git a/campusapis/health/v1/health.proto b/campusapis/health/v1/health.proto index 9342566..e5e6d76 100644 --- a/campusapis/health/v1/health.proto +++ b/campusapis/health/v1/health.proto @@ -29,10 +29,8 @@ service HealthService { rpc GetCheckinRecords(google.protobuf.Empty) returns (GetCheckinRecordsResponse) { option (google.api.http) = { get: "/health/v1/checkins" - response_body: "items" additional_bindings { get: "/health/checkins" - response_body: "items" } }; } @@ -57,7 +55,7 @@ service HealthService { }; } //更新健康打卡平台的手机号 - rpc PostCheckinPhone(PostCheckinPhoneRequest) returns (google.protobuf.Empty) { + rpc PostCheckinPhone(PostCheckinPhoneRequest) returns (PostCheckinPhoneResponse) { option (google.api.http) = { post: "/health/v1/phone" body: "*" @@ -92,7 +90,6 @@ service HealthService { rpc GetNucleicAcidTestLatest(google.protobuf.Empty) returns (GetNucleicAcidTestLatestResponse) { option (google.api.http) = { get: "/health/v1/nucleic_acid_test" - response_body: "item" }; } } @@ -103,11 +100,19 @@ message GetCheckinRecordRequest { } message GetCheckinRecordsResponse { - repeated GetCheckinRecordResponse items = 1; + uint32 error = 1; + string msg = 2; + repeated GetCheckinRecordResponse data = 3; } -//健康打卡记录 message GetCheckinRecordResponse { + uint32 error = 1; + string msg = 2; + CheckinRecord data = 3; +} + +//健康打卡记录 +message CheckinRecord { uint32 id = 1; //姓名 string creator = 2; @@ -162,20 +167,38 @@ message PostCheckinRecordBody { } message PostCheckinRecordResponse { - uint32 code = 1; - string data = 2; - string message = 3; + uint32 error = 1; + string msg = 2; + Data data = 3; + + //学校健康打卡服务返回值 + message Data { + uint32 code = 1; + string data = 2; + string message = 3; + } } message GetCheckinPhoneResponse { - string Phone = 1; - string StaffID = 2; + uint32 error = 1; + string msg = 2; + Data data = 3; + message Data { + string Phone = 1; + string StaffID = 2; + } } message PostCheckinPhoneRequest { string phone = 1; } +message PostCheckinPhoneResponse { + uint32 error = 1; + string msg = 2; + string message = 3; +} + //健康码 message HealthCode { string codeId = 1; @@ -190,6 +213,12 @@ message HealthCode { //健康码老 message GetHealthCodeResponse { + uint32 error = 1; + string msg = 2; + HealthCodeRaw data = 3; +} + +message HealthCodeRaw { string staffId = 1; string staffName = 2; string phoneNum = 3; @@ -212,7 +241,12 @@ message GetHealthCodeResponse { // 疫苗接种记录返回 message GetVaccineRecordsResponse { - repeated VaccineRecord items = 1; + uint32 error = 1; + string msg = 2; + Data data = 3; + message Data { + repeated VaccineRecord items = 1; + } } // 疫苗接种记录 @@ -235,7 +269,12 @@ message VaccineRecord { // 历史核酸检测返回体 message GetNucleicAcidTestsResponse { - repeated NucleicAcidTest items = 1; + uint32 error = 1; + string msg = 2; + Data data = 3; + message Data { + repeated NucleicAcidTest items = 1; + } } message NucleicAcidTest { @@ -249,5 +288,7 @@ message NucleicAcidTest { // 最新核酸检测返回体 message GetNucleicAcidTestLatestResponse { - NucleicAcidTest item = 1; + uint32 error = 1; + string msg = 2; + NucleicAcidTest data = 3; } diff --git a/campusapis/health/v1/health_grpc.pb.go b/campusapis/health/v1/health_grpc.pb.go index 29df4d4..035fff1 100644 --- a/campusapis/health/v1/health_grpc.pb.go +++ b/campusapis/health/v1/health_grpc.pb.go @@ -32,7 +32,7 @@ type HealthServiceClient interface { //获取健康打卡平台的手机号 GetCheckinPhone(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetCheckinPhoneResponse, error) //更新健康打卡平台的手机号 - PostCheckinPhone(ctx context.Context, in *PostCheckinPhoneRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + PostCheckinPhone(ctx context.Context, in *PostCheckinPhoneRequest, opts ...grpc.CallOption) (*PostCheckinPhoneResponse, error) //获取当前健康码 GetHealthCode(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetHealthCodeResponse, error) // 获取疫苗接种记录 @@ -87,8 +87,8 @@ func (c *healthServiceClient) GetCheckinPhone(ctx context.Context, in *emptypb.E return out, nil } -func (c *healthServiceClient) PostCheckinPhone(ctx context.Context, in *PostCheckinPhoneRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - out := new(emptypb.Empty) +func (c *healthServiceClient) PostCheckinPhone(ctx context.Context, in *PostCheckinPhoneRequest, opts ...grpc.CallOption) (*PostCheckinPhoneResponse, error) { + out := new(PostCheckinPhoneResponse) err := c.cc.Invoke(ctx, "/campusapis.health.v1.HealthService/PostCheckinPhone", in, out, opts...) if err != nil { return nil, err @@ -145,7 +145,7 @@ type HealthServiceServer interface { //获取健康打卡平台的手机号 GetCheckinPhone(context.Context, *emptypb.Empty) (*GetCheckinPhoneResponse, error) //更新健康打卡平台的手机号 - PostCheckinPhone(context.Context, *PostCheckinPhoneRequest) (*emptypb.Empty, error) + PostCheckinPhone(context.Context, *PostCheckinPhoneRequest) (*PostCheckinPhoneResponse, error) //获取当前健康码 GetHealthCode(context.Context, *emptypb.Empty) (*GetHealthCodeResponse, error) // 获取疫苗接种记录 @@ -172,7 +172,7 @@ func (UnimplementedHealthServiceServer) PostCheckinRecord(context.Context, *Post func (UnimplementedHealthServiceServer) GetCheckinPhone(context.Context, *emptypb.Empty) (*GetCheckinPhoneResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetCheckinPhone not implemented") } -func (UnimplementedHealthServiceServer) PostCheckinPhone(context.Context, *PostCheckinPhoneRequest) (*emptypb.Empty, error) { +func (UnimplementedHealthServiceServer) PostCheckinPhone(context.Context, *PostCheckinPhoneRequest) (*PostCheckinPhoneResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PostCheckinPhone not implemented") } func (UnimplementedHealthServiceServer) GetHealthCode(context.Context, *emptypb.Empty) (*GetHealthCodeResponse, error) { diff --git a/campusapis/library/v1/library.pb.go b/campusapis/library/v1/library.pb.go index 7bc3ae8..992af50 100644 --- a/campusapis/library/v1/library.pb.go +++ b/campusapis/library/v1/library.pb.go @@ -28,24 +28,24 @@ type LendStatus int32 const ( //未知 - LendStatus_UNKNOWN LendStatus = 0 + LendStatus_LEND_STATUS_UNSPECIFIED LendStatus = 0 //借阅中 - LendStatus_LENDING LendStatus = 1 + LendStatus_LEND_STATUS_LENDING LendStatus = 1 //已归还 - LendStatus_RETURNED LendStatus = 2 + LendStatus_LEND_STATUS_RETURNED LendStatus = 2 ) // Enum value maps for LendStatus. var ( LendStatus_name = map[int32]string{ - 0: "UNKNOWN", - 1: "LENDING", - 2: "RETURNED", + 0: "LEND_STATUS_UNSPECIFIED", + 1: "LEND_STATUS_LENDING", + 2: "LEND_STATUS_RETURNED", } LendStatus_value = map[string]int32{ - "UNKNOWN": 0, - "LENDING": 1, - "RETURNED": 2, + "LEND_STATUS_UNSPECIFIED": 0, + "LEND_STATUS_LENDING": 1, + "LEND_STATUS_RETURNED": 2, } ) @@ -130,7 +130,9 @@ type GetBookInfoResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Book *BookInfo `protobuf:"bytes,1,opt,name=book,proto3" json:"book,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *BookInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetBookInfoResponse) Reset() { @@ -165,9 +167,23 @@ func (*GetBookInfoResponse) Descriptor() ([]byte, []int) { return file_campusapis_library_v1_library_proto_rawDescGZIP(), []int{1} } -func (x *GetBookInfoResponse) GetBook() *BookInfo { +func (x *GetBookInfoResponse) GetError() uint32 { if x != nil { - return x.Book + return x.Error + } + return 0 +} + +func (x *GetBookInfoResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetBookInfoResponse) GetData() *BookInfo { + if x != nil { + return x.Data } return nil } @@ -418,7 +434,9 @@ type GetBookInfoListResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Books []*BookInfo `protobuf:"bytes,1,rep,name=books,proto3" json:"books,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data []*BookInfo `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetBookInfoListResponse) Reset() { @@ -453,9 +471,23 @@ func (*GetBookInfoListResponse) Descriptor() ([]byte, []int) { return file_campusapis_library_v1_library_proto_rawDescGZIP(), []int{4} } -func (x *GetBookInfoListResponse) GetBooks() []*BookInfo { +func (x *GetBookInfoListResponse) GetError() uint32 { if x != nil { - return x.Books + return x.Error + } + return 0 +} + +func (x *GetBookInfoListResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetBookInfoListResponse) GetData() []*BookInfo { + if x != nil { + return x.Data } return nil } @@ -521,7 +553,9 @@ type GetBookMARCResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Marc *BookMARC `protobuf:"bytes,1,opt,name=marc,proto3" json:"marc,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *BookMARC `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetBookMARCResponse) Reset() { @@ -556,9 +590,23 @@ func (*GetBookMARCResponse) Descriptor() ([]byte, []int) { return file_campusapis_library_v1_library_proto_rawDescGZIP(), []int{6} } -func (x *GetBookMARCResponse) GetMarc() *BookMARC { +func (x *GetBookMARCResponse) GetError() uint32 { if x != nil { - return x.Marc + return x.Error + } + return 0 +} + +func (x *GetBookMARCResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetBookMARCResponse) GetData() *BookMARC { + if x != nil { + return x.Data } return nil } @@ -852,7 +900,9 @@ type GetBookMARCListResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Marcs []*BookMARC `protobuf:"bytes,1,rep,name=marcs,proto3" json:"marcs,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data []*BookMARC `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetBookMARCListResponse) Reset() { @@ -887,14 +937,28 @@ func (*GetBookMARCListResponse) Descriptor() ([]byte, []int) { return file_campusapis_library_v1_library_proto_rawDescGZIP(), []int{9} } -func (x *GetBookMARCListResponse) GetMarcs() []*BookMARC { +func (x *GetBookMARCListResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetBookMARCListResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetBookMARCListResponse) GetData() []*BookMARC { if x != nil { - return x.Marcs + return x.Data } return nil } -type GetLendLastRequest struct { +type GetBookLendLastRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -902,8 +966,8 @@ type GetLendLastRequest struct { StartTime uint32 `protobuf:"varint,1,opt,name=startTime,proto3" json:"startTime,omitempty"` } -func (x *GetLendLastRequest) Reset() { - *x = GetLendLastRequest{} +func (x *GetBookLendLastRequest) Reset() { + *x = GetBookLendLastRequest{} if protoimpl.UnsafeEnabled { mi := &file_campusapis_library_v1_library_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -911,13 +975,13 @@ func (x *GetLendLastRequest) Reset() { } } -func (x *GetLendLastRequest) String() string { +func (x *GetBookLendLastRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetLendLastRequest) ProtoMessage() {} +func (*GetBookLendLastRequest) ProtoMessage() {} -func (x *GetLendLastRequest) ProtoReflect() protoreflect.Message { +func (x *GetBookLendLastRequest) ProtoReflect() protoreflect.Message { mi := &file_campusapis_library_v1_library_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -929,19 +993,19 @@ func (x *GetLendLastRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetLendLastRequest.ProtoReflect.Descriptor instead. -func (*GetLendLastRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetBookLendLastRequest.ProtoReflect.Descriptor instead. +func (*GetBookLendLastRequest) Descriptor() ([]byte, []int) { return file_campusapis_library_v1_library_proto_rawDescGZIP(), []int{10} } -func (x *GetLendLastRequest) GetStartTime() uint32 { +func (x *GetBookLendLastRequest) GetStartTime() uint32 { if x != nil { return x.StartTime } return 0 } -type GetLendHistoryRequest struct { +type GetBookLendHistoryRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -950,8 +1014,8 @@ type GetLendHistoryRequest struct { EndTime uint32 `protobuf:"varint,2,opt,name=endTime,proto3" json:"endTime,omitempty"` } -func (x *GetLendHistoryRequest) Reset() { - *x = GetLendHistoryRequest{} +func (x *GetBookLendHistoryRequest) Reset() { + *x = GetBookLendHistoryRequest{} if protoimpl.UnsafeEnabled { mi := &file_campusapis_library_v1_library_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -959,13 +1023,13 @@ func (x *GetLendHistoryRequest) Reset() { } } -func (x *GetLendHistoryRequest) String() string { +func (x *GetBookLendHistoryRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetLendHistoryRequest) ProtoMessage() {} +func (*GetBookLendHistoryRequest) ProtoMessage() {} -func (x *GetLendHistoryRequest) ProtoReflect() protoreflect.Message { +func (x *GetBookLendHistoryRequest) ProtoReflect() protoreflect.Message { mi := &file_campusapis_library_v1_library_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -977,19 +1041,19 @@ func (x *GetLendHistoryRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetLendHistoryRequest.ProtoReflect.Descriptor instead. -func (*GetLendHistoryRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetBookLendHistoryRequest.ProtoReflect.Descriptor instead. +func (*GetBookLendHistoryRequest) Descriptor() ([]byte, []int) { return file_campusapis_library_v1_library_proto_rawDescGZIP(), []int{11} } -func (x *GetLendHistoryRequest) GetStartTime() uint32 { +func (x *GetBookLendHistoryRequest) GetStartTime() uint32 { if x != nil { return x.StartTime } return 0 } -func (x *GetLendHistoryRequest) GetEndTime() uint32 { +func (x *GetBookLendHistoryRequest) GetEndTime() uint32 { if x != nil { return x.EndTime } @@ -1001,7 +1065,9 @@ type GetBookLendLastResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Items []*GetBookLendLastResponse_Nested `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data []*GetBookLendLastResponse_Nested `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetBookLendLastResponse) Reset() { @@ -1036,9 +1102,23 @@ func (*GetBookLendLastResponse) Descriptor() ([]byte, []int) { return file_campusapis_library_v1_library_proto_rawDescGZIP(), []int{12} } -func (x *GetBookLendLastResponse) GetItems() []*GetBookLendLastResponse_Nested { +func (x *GetBookLendLastResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetBookLendLastResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetBookLendLastResponse) GetData() []*GetBookLendLastResponse_Nested { if x != nil { - return x.Items + return x.Data } return nil } @@ -1048,7 +1128,9 @@ type GetBookLendHistoryResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Items []*GetBookLendHistoryResponse_Nested `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data []*GetBookLendHistoryResponse_Nested `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetBookLendHistoryResponse) Reset() { @@ -1083,9 +1165,23 @@ func (*GetBookLendHistoryResponse) Descriptor() ([]byte, []int) { return file_campusapis_library_v1_library_proto_rawDescGZIP(), []int{13} } -func (x *GetBookLendHistoryResponse) GetItems() []*GetBookLendHistoryResponse_Nested { +func (x *GetBookLendHistoryResponse) GetError() uint32 { if x != nil { - return x.Items + return x.Error + } + return 0 +} + +func (x *GetBookLendHistoryResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetBookLendHistoryResponse) GetData() []*GetBookLendHistoryResponse_Nested { + if x != nil { + return x.Data } return nil } @@ -1190,7 +1286,7 @@ func (x *GetBookLendLastResponse_Nested) GetStatus() LendStatus { if x != nil { return x.Status } - return LendStatus_UNKNOWN + return LendStatus_LEND_STATUS_UNSPECIFIED } type GetBookLendHistoryResponse_Nested struct { @@ -1293,7 +1389,7 @@ func (x *GetBookLendHistoryResponse_Nested) GetStatus() LendStatus { if x != nil { return x.Status } - return LendStatus_UNKNOWN + return LendStatus_LEND_STATUS_UNSPECIFIED } var File_campusapis_library_v1_library_proto protoreflect.FileDescriptor @@ -1313,155 +1409,170 @@ var file_campusapis_library_v1_library_proto_rawDesc = []byte{ 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x22, 0x4a, 0x0a, 0x13, 0x47, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x22, 0x72, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, - 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6b, 0x22, 0xa1, 0x04, 0x0a, 0x08, 0x42, 0x6f, 0x6f, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, - 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, - 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x72, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x74, 0x61, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, - 0x53, 0x74, 0x61, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, - 0x4c, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, - 0x79, 0x65, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x79, 0x65, 0x61, 0x72, - 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, - 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x79, 0x65, 0x61, 0x72, 0x43, 0x69, 0x72, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x79, 0x65, 0x61, 0x72, 0x43, 0x69, 0x72, 0x63, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x69, 0x72, - 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x43, 0x69, 0x72, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, - 0x66, 0x69, 0x72, 0x73, 0x74, 0x55, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x55, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x73, 0x65, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x55, 0x70, 0x74, - 0x44, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x46, - 0x6c, 0x61, 0x67, 0x55, 0x70, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, - 0x67, 0x44, 0x61, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x67, 0x44, - 0x61, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, - 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x12, 0x33, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x63, 0x18, 0x11, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, - 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x63, 0x22, 0x36, 0x0a, 0x16, 0x47, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xa1, 0x04, 0x0a, 0x08, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, + 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, + 0x6f, 0x70, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, + 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, + 0x4e, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, + 0x46, 0x6c, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x65, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x79, 0x65, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x79, 0x65, 0x61, 0x72, 0x43, 0x69, + 0x72, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x79, + 0x65, 0x61, 0x72, 0x43, 0x69, 0x72, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x69, 0x72, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x69, 0x72, 0x63, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x55, 0x73, 0x65, + 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x69, 0x72, 0x73, + 0x74, 0x55, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, + 0x55, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6c, + 0x61, 0x73, 0x74, 0x55, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, + 0x63, 0x46, 0x6c, 0x61, 0x67, 0x55, 0x70, 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x55, 0x70, 0x74, 0x44, 0x61, + 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x44, 0x61, 0x79, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x67, 0x44, 0x61, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x12, 0x33, + 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x04, 0x6d, + 0x61, 0x72, 0x63, 0x22, 0x36, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, + 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x22, 0x76, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, - 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, - 0x63, 0x4e, 0x6f, 0x22, 0x50, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, - 0x0a, 0x05, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, - 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x22, 0x4a, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, - 0x4d, 0x41, 0x52, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, - 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x6f, - 0x70, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, - 0x6f, 0x22, 0x4a, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x33, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x63, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, - 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x63, 0x22, 0xac, 0x04, - 0x0a, 0x08, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, - 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, - 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x63, - 0x55, 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, - 0x61, 0x72, 0x63, 0x55, 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, - 0x72, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, - 0x72, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x61, 0x4f, 0x70, - 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x61, 0x4f, 0x70, - 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x64, 0x6f, 0x63, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x63, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x75, - 0x74, 0x68, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, - 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, - 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x50, 0x75, 0x62, 0x59, 0x65, 0x61, 0x72, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x50, 0x75, 0x62, 0x59, 0x65, 0x61, 0x72, 0x12, 0x12, - 0x0a, 0x04, 0x49, 0x53, 0x42, 0x4e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x49, 0x53, - 0x42, 0x4e, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, 0x70, - 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x59, 0x65, 0x61, 0x72, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x75, 0x62, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, - 0x6f, 0x70, 0x61, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6f, 0x70, 0x61, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x74, 0x61, - 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x9b, 0x01, 0x0a, - 0x16, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x63, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, - 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x63, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, - 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, - 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x50, 0x0a, 0x17, 0x47, 0x65, - 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x35, 0x0a, 0x05, 0x6d, 0x61, 0x72, 0x63, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, - 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x05, 0x6d, 0x61, 0x72, 0x63, 0x73, 0x22, 0x32, 0x0a, 0x12, - 0x47, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x4a, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, + 0x52, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, + 0x70, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, + 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x22, + 0x72, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0xac, 0x04, 0x0a, 0x08, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, + 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x12, 0x20, + 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x63, 0x55, 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x72, 0x63, 0x55, 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, + 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x72, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x63, 0x61, 0x74, 0x61, 0x4f, 0x70, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x63, 0x61, 0x74, 0x61, 0x4f, 0x70, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x61, + 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x61, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x63, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x63, 0x54, 0x79, 0x70, 0x65, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x12, 0x14, 0x0a, 0x05, + 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, + 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, + 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x50, 0x75, 0x62, + 0x59, 0x65, 0x61, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x50, 0x75, 0x62, + 0x59, 0x65, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x53, 0x42, 0x4e, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x49, 0x53, 0x42, 0x4e, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x59, + 0x65, 0x61, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x75, 0x62, 0x59, 0x65, + 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x61, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x12, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x61, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, + 0x0a, 0x0c, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x22, 0x9b, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, + 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, + 0x04, 0x6d, 0x61, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, + 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x04, 0x6d, 0x61, + 0x72, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, + 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, + 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x22, 0x76, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, + 0x52, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x36, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, + 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x22, 0x4f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0x9d, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, - 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, - 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0xb4, 0x02, 0x0a, 0x06, 0x4e, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x44, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6e, 0x6f, 0x72, 0x6d, - 0x61, 0x6c, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x72, 0x65, 0x6e, 0x65, 0x77, 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, - 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, - 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x22, 0x97, 0x03, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, - 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4e, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, - 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, - 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, + 0x22, 0x53, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc3, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, + 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0xb4, 0x02, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, + 0x33, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1a, + 0x0a, 0x08, 0x6c, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x08, 0x6c, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x6f, + 0x72, 0x6d, 0x61, 0x6c, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x52, 0x65, 0x74, 0x75, + 0x72, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x44, + 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, + 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xbd, 0x03, 0x0a, 0x1a, + 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, + 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x4c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, + 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xa8, 0x02, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, @@ -1480,84 +1591,84 @@ var file_campusapis_library_v1_library_proto_rawDesc = []byte{ 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x34, 0x0a, 0x0a, 0x4c, - 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, - 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x4c, 0x45, 0x4e, 0x44, 0x49, 0x4e, - 0x47, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x52, 0x45, 0x54, 0x55, 0x52, 0x4e, 0x45, 0x44, 0x10, - 0x02, 0x32, 0xa4, 0x07, 0x0a, 0x0e, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, - 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x1d, 0x12, 0x15, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, - 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x62, 0x04, 0x62, 0x6f, 0x6f, 0x6b, - 0x12, 0x9b, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, - 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x1a, 0x2f, 0x6c, 0x69, - 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x69, 0x6e, - 0x66, 0x6f, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x62, 0x05, 0x62, 0x6f, 0x6f, 0x6b, 0x73, 0x12, 0x89, - 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x12, 0x29, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, - 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, - 0x52, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x15, 0x2f, - 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, - 0x6d, 0x61, 0x72, 0x63, 0x62, 0x04, 0x6d, 0x61, 0x72, 0x63, 0x12, 0x9b, 0x01, 0x0a, 0x0f, 0x47, - 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, - 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, - 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, - 0x43, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x1a, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, - 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x6d, 0x61, 0x72, 0x63, 0x2f, 0x6c, 0x69, 0x73, - 0x74, 0x62, 0x05, 0x6d, 0x61, 0x72, 0x63, 0x73, 0x12, 0x97, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x12, 0x29, 0x2e, 0x63, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x5c, 0x0a, 0x0a, 0x4c, + 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x45, 0x4e, + 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, + 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, 0x4e, 0x44, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4c, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, + 0x18, 0x0a, 0x14, 0x4c, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, + 0x45, 0x54, 0x55, 0x52, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x32, 0x84, 0x07, 0x0a, 0x0e, 0x4c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x83, 0x01, 0x0a, + 0x0b, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, - 0x1a, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, - 0x6b, 0x2f, 0x6c, 0x65, 0x6e, 0x64, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x62, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x12, 0xa3, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, - 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x69, 0x6e, + 0x66, 0x6f, 0x12, 0x94, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, + 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, + 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, + 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x83, 0x01, 0x0a, 0x0b, 0x47, 0x65, + 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x26, 0x12, 0x1d, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, - 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x6c, 0x65, 0x6e, 0x64, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x42, 0xe0, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, - 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, - 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x3b, 0x6c, 0x69, - 0x62, 0x72, 0x61, 0x72, 0x79, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x4c, 0x58, 0xaa, 0x02, 0x15, - 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x4c, 0x69, 0x62, 0x72, 0x61, - 0x72, 0x79, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x5c, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x6d, 0x61, 0x72, 0x63, 0x12, + 0x94, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, + 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, + 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x6c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x6d, 0x61, 0x72, + 0x63, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x94, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6f, + 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1c, 0x12, 0x1a, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, + 0x6f, 0x6f, 0x6b, 0x2f, 0x6c, 0x65, 0x6e, 0x64, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x12, 0xa0, 0x01, + 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1f, 0x12, 0x1d, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, + 0x6f, 0x6f, 0x6b, 0x2f, 0x6c, 0x65, 0x6e, 0x64, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x42, 0xe0, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x0c, + 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, + 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2f, 0x76, 0x31, 0x3b, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x76, 0x31, 0xa2, + 0x02, 0x03, 0x43, 0x4c, 0x58, 0xaa, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x4c, 0x69, 0x62, 0x72, 0x61, - 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x17, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, - 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x72, 0x79, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x5c, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, + 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, 0x43, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1586,22 +1697,22 @@ var file_campusapis_library_v1_library_proto_goTypes = []interface{}{ (*BookMARC)(nil), // 8: campusapis.library.v1.BookMARC (*GetBookMARCListRequest)(nil), // 9: campusapis.library.v1.GetBookMARCListRequest (*GetBookMARCListResponse)(nil), // 10: campusapis.library.v1.GetBookMARCListResponse - (*GetLendLastRequest)(nil), // 11: campusapis.library.v1.GetLendLastRequest - (*GetLendHistoryRequest)(nil), // 12: campusapis.library.v1.GetLendHistoryRequest + (*GetBookLendLastRequest)(nil), // 11: campusapis.library.v1.GetBookLendLastRequest + (*GetBookLendHistoryRequest)(nil), // 12: campusapis.library.v1.GetBookLendHistoryRequest (*GetBookLendLastResponse)(nil), // 13: campusapis.library.v1.GetBookLendLastResponse (*GetBookLendHistoryResponse)(nil), // 14: campusapis.library.v1.GetBookLendHistoryResponse (*GetBookLendLastResponse_Nested)(nil), // 15: campusapis.library.v1.GetBookLendLastResponse.Nested (*GetBookLendHistoryResponse_Nested)(nil), // 16: campusapis.library.v1.GetBookLendHistoryResponse.Nested } var file_campusapis_library_v1_library_proto_depIdxs = []int32{ - 3, // 0: campusapis.library.v1.GetBookInfoResponse.book:type_name -> campusapis.library.v1.BookInfo + 3, // 0: campusapis.library.v1.GetBookInfoResponse.data:type_name -> campusapis.library.v1.BookInfo 8, // 1: campusapis.library.v1.BookInfo.marc:type_name -> campusapis.library.v1.BookMARC - 3, // 2: campusapis.library.v1.GetBookInfoListResponse.books:type_name -> campusapis.library.v1.BookInfo - 8, // 3: campusapis.library.v1.GetBookMARCResponse.marc:type_name -> campusapis.library.v1.BookMARC + 3, // 2: campusapis.library.v1.GetBookInfoListResponse.data:type_name -> campusapis.library.v1.BookInfo + 8, // 3: campusapis.library.v1.GetBookMARCResponse.data:type_name -> campusapis.library.v1.BookMARC 8, // 4: campusapis.library.v1.GetBookMARCListRequest.marc:type_name -> campusapis.library.v1.BookMARC - 8, // 5: campusapis.library.v1.GetBookMARCListResponse.marcs:type_name -> campusapis.library.v1.BookMARC - 15, // 6: campusapis.library.v1.GetBookLendLastResponse.items:type_name -> campusapis.library.v1.GetBookLendLastResponse.Nested - 16, // 7: campusapis.library.v1.GetBookLendHistoryResponse.items:type_name -> campusapis.library.v1.GetBookLendHistoryResponse.Nested + 8, // 5: campusapis.library.v1.GetBookMARCListResponse.data:type_name -> campusapis.library.v1.BookMARC + 15, // 6: campusapis.library.v1.GetBookLendLastResponse.data:type_name -> campusapis.library.v1.GetBookLendLastResponse.Nested + 16, // 7: campusapis.library.v1.GetBookLendHistoryResponse.data:type_name -> campusapis.library.v1.GetBookLendHistoryResponse.Nested 3, // 8: campusapis.library.v1.GetBookLendLastResponse.Nested.book:type_name -> campusapis.library.v1.BookInfo 0, // 9: campusapis.library.v1.GetBookLendLastResponse.Nested.status:type_name -> campusapis.library.v1.LendStatus 3, // 10: campusapis.library.v1.GetBookLendHistoryResponse.Nested.book:type_name -> campusapis.library.v1.BookInfo @@ -1610,8 +1721,8 @@ var file_campusapis_library_v1_library_proto_depIdxs = []int32{ 4, // 13: campusapis.library.v1.LibraryService.GetBookInfoList:input_type -> campusapis.library.v1.GetBookInfoListRequest 6, // 14: campusapis.library.v1.LibraryService.GetBookMARC:input_type -> campusapis.library.v1.GetBookMARCRequest 9, // 15: campusapis.library.v1.LibraryService.GetBookMARCList:input_type -> campusapis.library.v1.GetBookMARCListRequest - 11, // 16: campusapis.library.v1.LibraryService.GetBookLendLast:input_type -> campusapis.library.v1.GetLendLastRequest - 12, // 17: campusapis.library.v1.LibraryService.GetBookLendHistory:input_type -> campusapis.library.v1.GetLendHistoryRequest + 11, // 16: campusapis.library.v1.LibraryService.GetBookLendLast:input_type -> campusapis.library.v1.GetBookLendLastRequest + 12, // 17: campusapis.library.v1.LibraryService.GetBookLendHistory:input_type -> campusapis.library.v1.GetBookLendHistoryRequest 2, // 18: campusapis.library.v1.LibraryService.GetBookInfo:output_type -> campusapis.library.v1.GetBookInfoResponse 5, // 19: campusapis.library.v1.LibraryService.GetBookInfoList:output_type -> campusapis.library.v1.GetBookInfoListResponse 7, // 20: campusapis.library.v1.LibraryService.GetBookMARC:output_type -> campusapis.library.v1.GetBookMARCResponse @@ -1752,7 +1863,7 @@ func file_campusapis_library_v1_library_proto_init() { } } file_campusapis_library_v1_library_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetLendLastRequest); i { + switch v := v.(*GetBookLendLastRequest); i { case 0: return &v.state case 1: @@ -1764,7 +1875,7 @@ func file_campusapis_library_v1_library_proto_init() { } } file_campusapis_library_v1_library_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetLendHistoryRequest); i { + switch v := v.(*GetBookLendHistoryRequest); i { case 0: return &v.state case 1: diff --git a/campusapis/library/v1/library.pb.gw.go b/campusapis/library/v1/library.pb.gw.go index aa790f2..6139972 100644 --- a/campusapis/library/v1/library.pb.gw.go +++ b/campusapis/library/v1/library.pb.gw.go @@ -180,7 +180,7 @@ var ( ) func request_LibraryService_GetBookLendLast_0(ctx context.Context, marshaler runtime.Marshaler, client LibraryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetLendLastRequest + var protoReq GetBookLendLastRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -196,7 +196,7 @@ func request_LibraryService_GetBookLendLast_0(ctx context.Context, marshaler run } func local_request_LibraryService_GetBookLendLast_0(ctx context.Context, marshaler runtime.Marshaler, server LibraryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetLendLastRequest + var protoReq GetBookLendLastRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -216,7 +216,7 @@ var ( ) func request_LibraryService_GetBookLendHistory_0(ctx context.Context, marshaler runtime.Marshaler, client LibraryServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetLendHistoryRequest + var protoReq GetBookLendHistoryRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -232,7 +232,7 @@ func request_LibraryService_GetBookLendHistory_0(ctx context.Context, marshaler } func local_request_LibraryService_GetBookLendHistory_0(ctx context.Context, marshaler runtime.Marshaler, server LibraryServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetLendHistoryRequest + var protoReq GetBookLendHistoryRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -273,7 +273,7 @@ func RegisterLibraryServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_LibraryService_GetBookInfo_0(ctx, mux, outboundMarshaler, w, req, response_LibraryService_GetBookInfo_0{resp}, mux.GetForwardResponseOptions()...) + forward_LibraryService_GetBookInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -297,7 +297,7 @@ func RegisterLibraryServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_LibraryService_GetBookInfoList_0(ctx, mux, outboundMarshaler, w, req, response_LibraryService_GetBookInfoList_0{resp}, mux.GetForwardResponseOptions()...) + forward_LibraryService_GetBookInfoList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -321,7 +321,7 @@ func RegisterLibraryServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_LibraryService_GetBookMARC_0(ctx, mux, outboundMarshaler, w, req, response_LibraryService_GetBookMARC_0{resp}, mux.GetForwardResponseOptions()...) + forward_LibraryService_GetBookMARC_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -345,7 +345,7 @@ func RegisterLibraryServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_LibraryService_GetBookMARCList_0(ctx, mux, outboundMarshaler, w, req, response_LibraryService_GetBookMARCList_0{resp}, mux.GetForwardResponseOptions()...) + forward_LibraryService_GetBookMARCList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -369,7 +369,7 @@ func RegisterLibraryServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_LibraryService_GetBookLendLast_0(ctx, mux, outboundMarshaler, w, req, response_LibraryService_GetBookLendLast_0{resp}, mux.GetForwardResponseOptions()...) + forward_LibraryService_GetBookLendLast_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -393,7 +393,7 @@ func RegisterLibraryServiceHandlerServer(ctx context.Context, mux *runtime.Serve return } - forward_LibraryService_GetBookLendHistory_0(ctx, mux, outboundMarshaler, w, req, response_LibraryService_GetBookLendHistory_0{resp}, mux.GetForwardResponseOptions()...) + forward_LibraryService_GetBookLendHistory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -455,7 +455,7 @@ func RegisterLibraryServiceHandlerClient(ctx context.Context, mux *runtime.Serve return } - forward_LibraryService_GetBookInfo_0(ctx, mux, outboundMarshaler, w, req, response_LibraryService_GetBookInfo_0{resp}, mux.GetForwardResponseOptions()...) + forward_LibraryService_GetBookInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -476,7 +476,7 @@ func RegisterLibraryServiceHandlerClient(ctx context.Context, mux *runtime.Serve return } - forward_LibraryService_GetBookInfoList_0(ctx, mux, outboundMarshaler, w, req, response_LibraryService_GetBookInfoList_0{resp}, mux.GetForwardResponseOptions()...) + forward_LibraryService_GetBookInfoList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -497,7 +497,7 @@ func RegisterLibraryServiceHandlerClient(ctx context.Context, mux *runtime.Serve return } - forward_LibraryService_GetBookMARC_0(ctx, mux, outboundMarshaler, w, req, response_LibraryService_GetBookMARC_0{resp}, mux.GetForwardResponseOptions()...) + forward_LibraryService_GetBookMARC_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -518,7 +518,7 @@ func RegisterLibraryServiceHandlerClient(ctx context.Context, mux *runtime.Serve return } - forward_LibraryService_GetBookMARCList_0(ctx, mux, outboundMarshaler, w, req, response_LibraryService_GetBookMARCList_0{resp}, mux.GetForwardResponseOptions()...) + forward_LibraryService_GetBookMARCList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -539,7 +539,7 @@ func RegisterLibraryServiceHandlerClient(ctx context.Context, mux *runtime.Serve return } - forward_LibraryService_GetBookLendLast_0(ctx, mux, outboundMarshaler, w, req, response_LibraryService_GetBookLendLast_0{resp}, mux.GetForwardResponseOptions()...) + forward_LibraryService_GetBookLendLast_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -560,67 +560,13 @@ func RegisterLibraryServiceHandlerClient(ctx context.Context, mux *runtime.Serve return } - forward_LibraryService_GetBookLendHistory_0(ctx, mux, outboundMarshaler, w, req, response_LibraryService_GetBookLendHistory_0{resp}, mux.GetForwardResponseOptions()...) + forward_LibraryService_GetBookLendHistory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) return nil } -type response_LibraryService_GetBookInfo_0 struct { - proto.Message -} - -func (m response_LibraryService_GetBookInfo_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetBookInfoResponse) - return response.Book -} - -type response_LibraryService_GetBookInfoList_0 struct { - proto.Message -} - -func (m response_LibraryService_GetBookInfoList_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetBookInfoListResponse) - return response.Books -} - -type response_LibraryService_GetBookMARC_0 struct { - proto.Message -} - -func (m response_LibraryService_GetBookMARC_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetBookMARCResponse) - return response.Marc -} - -type response_LibraryService_GetBookMARCList_0 struct { - proto.Message -} - -func (m response_LibraryService_GetBookMARCList_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetBookMARCListResponse) - return response.Marcs -} - -type response_LibraryService_GetBookLendLast_0 struct { - proto.Message -} - -func (m response_LibraryService_GetBookLendLast_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetBookLendLastResponse) - return response.Items -} - -type response_LibraryService_GetBookLendHistory_0 struct { - proto.Message -} - -func (m response_LibraryService_GetBookLendHistory_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetBookLendHistoryResponse) - return response.Items -} - var ( pattern_LibraryService_GetBookInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"library", "v1", "book", "info"}, "")) diff --git a/campusapis/library/v1/library.proto b/campusapis/library/v1/library.proto index 1e9c7a6..17e66d2 100644 --- a/campusapis/library/v1/library.proto +++ b/campusapis/library/v1/library.proto @@ -14,42 +14,41 @@ service LibraryService { rpc GetBookInfo(GetBookInfoRequest) returns (GetBookInfoResponse) { option (google.api.http) = { get: "/library/v1/book/info" - response_body: "book" }; } + //查询书本信息列表,只能查询一个书籍的书本信息 rpc GetBookInfoList(GetBookInfoListRequest) returns (GetBookInfoListResponse) { option (google.api.http) = { get: "/library/v1/book/info/list" - response_body: "books" }; } + //查询书籍信息 rpc GetBookMARC(GetBookMARCRequest) returns (GetBookMARCResponse) { option (google.api.http) = { get: "/library/v1/book/marc" - response_body: "marc" }; } + //查询书籍信息列表 rpc GetBookMARCList(GetBookMARCListRequest) returns (GetBookMARCListResponse) { option (google.api.http) = { get: "/library/v1/book/marc/list" - response_body: "marcs" }; } + //查询当前图书借阅记录 - rpc GetBookLendLast(GetLendLastRequest) returns (GetBookLendLastResponse) { + rpc GetBookLendLast(GetBookLendLastRequest) returns (GetBookLendLastResponse) { option (google.api.http) = { get: "/library/v1/book/lend/last" - response_body: "items" }; } + //查询历史图书借阅记录 - rpc GetBookLendHistory(GetLendHistoryRequest) returns (GetBookLendHistoryResponse) { + rpc GetBookLendHistory(GetBookLendHistoryRequest) returns (GetBookLendHistoryResponse) { option (google.api.http) = { get: "/library/v1/book/lend/history" - response_body: "items" }; } } @@ -61,7 +60,9 @@ message GetBookInfoRequest { } message GetBookInfoResponse { - BookInfo book = 1; + uint32 error = 1; + string msg = 2; + BookInfo data = 3; } //书本信息 @@ -108,7 +109,9 @@ message GetBookInfoListRequest { } message GetBookInfoListResponse { - repeated BookInfo books = 1; + uint32 error = 1; + string msg = 2; + repeated BookInfo data = 3; } //书籍信息查询关键字 @@ -118,7 +121,9 @@ message GetBookMARCRequest { } message GetBookMARCResponse { - BookMARC marc = 1; + uint32 error = 1; + string msg = 2; + BookMARC data = 3; } message BookMARC { @@ -173,28 +178,34 @@ message GetBookMARCListRequest { } message GetBookMARCListResponse { - repeated BookMARC marcs = 1; + uint32 error = 1; + string msg = 2; + repeated BookMARC data = 3; } -message GetLendLastRequest { +message GetBookLendLastRequest { uint32 startTime = 1; } -message GetLendHistoryRequest { +message GetBookLendHistoryRequest { uint32 startTime = 1; uint32 endTime = 2; } enum LendStatus { //未知 - UNKNOWN = 0; + LEND_STATUS_UNSPECIFIED = 0; //借阅中 - LENDING = 1; + LEND_STATUS_LENDING = 1; //已归还 - RETURNED = 2; + LEND_STATUS_RETURNED = 2; } message GetBookLendLastResponse { + uint32 error = 1; + string msg = 2; + repeated Nested data = 3; + message Nested { BookInfo book = 1; string staffID = 2; @@ -205,10 +216,13 @@ message GetBookLendLastResponse { string location = 7; LendStatus status = 8; } - repeated Nested items = 1; } message GetBookLendHistoryResponse { + uint32 error = 1; + string msg = 2; + repeated Nested data = 3; + message Nested { BookInfo book = 1; string staffID = 2; @@ -219,5 +233,4 @@ message GetBookLendHistoryResponse { string location = 7; LendStatus status = 8; } - repeated Nested items = 1; } diff --git a/campusapis/library/v1/library_grpc.pb.go b/campusapis/library/v1/library_grpc.pb.go index 713645c..b9f40e4 100644 --- a/campusapis/library/v1/library_grpc.pb.go +++ b/campusapis/library/v1/library_grpc.pb.go @@ -31,9 +31,9 @@ type LibraryServiceClient interface { //查询书籍信息列表 GetBookMARCList(ctx context.Context, in *GetBookMARCListRequest, opts ...grpc.CallOption) (*GetBookMARCListResponse, error) //查询当前图书借阅记录 - GetBookLendLast(ctx context.Context, in *GetLendLastRequest, opts ...grpc.CallOption) (*GetBookLendLastResponse, error) + GetBookLendLast(ctx context.Context, in *GetBookLendLastRequest, opts ...grpc.CallOption) (*GetBookLendLastResponse, error) //查询历史图书借阅记录 - GetBookLendHistory(ctx context.Context, in *GetLendHistoryRequest, opts ...grpc.CallOption) (*GetBookLendHistoryResponse, error) + GetBookLendHistory(ctx context.Context, in *GetBookLendHistoryRequest, opts ...grpc.CallOption) (*GetBookLendHistoryResponse, error) } type libraryServiceClient struct { @@ -80,7 +80,7 @@ func (c *libraryServiceClient) GetBookMARCList(ctx context.Context, in *GetBookM return out, nil } -func (c *libraryServiceClient) GetBookLendLast(ctx context.Context, in *GetLendLastRequest, opts ...grpc.CallOption) (*GetBookLendLastResponse, error) { +func (c *libraryServiceClient) GetBookLendLast(ctx context.Context, in *GetBookLendLastRequest, opts ...grpc.CallOption) (*GetBookLendLastResponse, error) { out := new(GetBookLendLastResponse) err := c.cc.Invoke(ctx, "/campusapis.library.v1.LibraryService/GetBookLendLast", in, out, opts...) if err != nil { @@ -89,7 +89,7 @@ func (c *libraryServiceClient) GetBookLendLast(ctx context.Context, in *GetLendL return out, nil } -func (c *libraryServiceClient) GetBookLendHistory(ctx context.Context, in *GetLendHistoryRequest, opts ...grpc.CallOption) (*GetBookLendHistoryResponse, error) { +func (c *libraryServiceClient) GetBookLendHistory(ctx context.Context, in *GetBookLendHistoryRequest, opts ...grpc.CallOption) (*GetBookLendHistoryResponse, error) { out := new(GetBookLendHistoryResponse) err := c.cc.Invoke(ctx, "/campusapis.library.v1.LibraryService/GetBookLendHistory", in, out, opts...) if err != nil { @@ -111,9 +111,9 @@ type LibraryServiceServer interface { //查询书籍信息列表 GetBookMARCList(context.Context, *GetBookMARCListRequest) (*GetBookMARCListResponse, error) //查询当前图书借阅记录 - GetBookLendLast(context.Context, *GetLendLastRequest) (*GetBookLendLastResponse, error) + GetBookLendLast(context.Context, *GetBookLendLastRequest) (*GetBookLendLastResponse, error) //查询历史图书借阅记录 - GetBookLendHistory(context.Context, *GetLendHistoryRequest) (*GetBookLendHistoryResponse, error) + GetBookLendHistory(context.Context, *GetBookLendHistoryRequest) (*GetBookLendHistoryResponse, error) } // UnimplementedLibraryServiceServer should be embedded to have forward compatible implementations. @@ -132,10 +132,10 @@ func (UnimplementedLibraryServiceServer) GetBookMARC(context.Context, *GetBookMA func (UnimplementedLibraryServiceServer) GetBookMARCList(context.Context, *GetBookMARCListRequest) (*GetBookMARCListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBookMARCList not implemented") } -func (UnimplementedLibraryServiceServer) GetBookLendLast(context.Context, *GetLendLastRequest) (*GetBookLendLastResponse, error) { +func (UnimplementedLibraryServiceServer) GetBookLendLast(context.Context, *GetBookLendLastRequest) (*GetBookLendLastResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBookLendLast not implemented") } -func (UnimplementedLibraryServiceServer) GetBookLendHistory(context.Context, *GetLendHistoryRequest) (*GetBookLendHistoryResponse, error) { +func (UnimplementedLibraryServiceServer) GetBookLendHistory(context.Context, *GetBookLendHistoryRequest) (*GetBookLendHistoryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBookLendHistory not implemented") } @@ -223,7 +223,7 @@ func _LibraryService_GetBookMARCList_Handler(srv interface{}, ctx context.Contex } func _LibraryService_GetBookLendLast_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetLendLastRequest) + in := new(GetBookLendLastRequest) if err := dec(in); err != nil { return nil, err } @@ -235,13 +235,13 @@ func _LibraryService_GetBookLendLast_Handler(srv interface{}, ctx context.Contex FullMethod: "/campusapis.library.v1.LibraryService/GetBookLendLast", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(LibraryServiceServer).GetBookLendLast(ctx, req.(*GetLendLastRequest)) + return srv.(LibraryServiceServer).GetBookLendLast(ctx, req.(*GetBookLendLastRequest)) } return interceptor(ctx, in, info, handler) } func _LibraryService_GetBookLendHistory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetLendHistoryRequest) + in := new(GetBookLendHistoryRequest) if err := dec(in); err != nil { return nil, err } @@ -253,7 +253,7 @@ func _LibraryService_GetBookLendHistory_Handler(srv interface{}, ctx context.Con FullMethod: "/campusapis.library.v1.LibraryService/GetBookLendHistory", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(LibraryServiceServer).GetBookLendHistory(ctx, req.(*GetLendHistoryRequest)) + return srv.(LibraryServiceServer).GetBookLendHistory(ctx, req.(*GetBookLendHistoryRequest)) } return interceptor(ctx, in, info, handler) } diff --git a/campusapis/required.go b/campusapis/required.go index 350d822..f70a522 100644 --- a/campusapis/required.go +++ b/campusapis/required.go @@ -44,7 +44,7 @@ func splitrTagToName(tag string) string { func RequireWarped(req any, list ...string) error { if err := Require(req, list...); err != nil { - return Status_INVALID_ARGUMENT.With(codes.InvalidArgument, err.Error()) + return Status_STATUS_INVALID_ARGUMENT.With(codes.InvalidArgument, err.Error()) } return nil } diff --git a/campusapis/schoolTime/v1/schoolTime.pb.go b/campusapis/schoolTime/v1/schoolTime.pb.go index ee8af64..49550ac 100644 --- a/campusapis/schoolTime/v1/schoolTime.pb.go +++ b/campusapis/schoolTime/v1/schoolTime.pb.go @@ -29,12 +29,9 @@ type GetSchoolTimeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` - Section int32 `protobuf:"varint,2,opt,name=section,proto3" json:"section,omitempty"` - Semester string `protobuf:"bytes,3,opt,name=semester,proto3" json:"semester,omitempty"` - TimeStamp uint32 `protobuf:"varint,4,opt,name=timeStamp,proto3" json:"timeStamp,omitempty"` - WeekDayNow int32 `protobuf:"varint,5,opt,name=weekDayNow,proto3" json:"weekDayNow,omitempty"` - WeekNow int32 `protobuf:"varint,6,opt,name=weekNow,proto3" json:"weekNow,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *GetSchoolTimeResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetSchoolTimeResponse) Reset() { @@ -69,46 +66,25 @@ func (*GetSchoolTimeResponse) Descriptor() ([]byte, []int) { return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{0} } -func (x *GetSchoolTimeResponse) GetSchoolYear() string { - if x != nil { - return x.SchoolYear - } - return "" -} - -func (x *GetSchoolTimeResponse) GetSection() int32 { +func (x *GetSchoolTimeResponse) GetError() uint32 { if x != nil { - return x.Section + return x.Error } return 0 } -func (x *GetSchoolTimeResponse) GetSemester() string { +func (x *GetSchoolTimeResponse) GetMsg() string { if x != nil { - return x.Semester + return x.Msg } return "" } -func (x *GetSchoolTimeResponse) GetTimeStamp() uint32 { - if x != nil { - return x.TimeStamp - } - return 0 -} - -func (x *GetSchoolTimeResponse) GetWeekDayNow() int32 { - if x != nil { - return x.WeekDayNow - } - return 0 -} - -func (x *GetSchoolTimeResponse) GetWeekNow() int32 { +func (x *GetSchoolTimeResponse) GetData() *GetSchoolTimeResponse_Data { if x != nil { - return x.WeekNow + return x.Data } - return 0 + return nil } type GetSemesterListRequest struct { @@ -171,7 +147,9 @@ type GetSemesterListResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Items []*GetSemesterListResponse_Semester `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data []*GetSemesterListResponse_Semester `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetSemesterListResponse) Reset() { @@ -206,13 +184,114 @@ func (*GetSemesterListResponse) Descriptor() ([]byte, []int) { return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{2} } -func (x *GetSemesterListResponse) GetItems() []*GetSemesterListResponse_Semester { +func (x *GetSemesterListResponse) GetError() uint32 { if x != nil { - return x.Items + return x.Error + } + return 0 +} + +func (x *GetSemesterListResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetSemesterListResponse) GetData() []*GetSemesterListResponse_Semester { + if x != nil { + return x.Data } return nil } +type GetSchoolTimeResponse_Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + Section int32 `protobuf:"varint,2,opt,name=section,proto3" json:"section,omitempty"` + Semester string `protobuf:"bytes,3,opt,name=semester,proto3" json:"semester,omitempty"` + TimeStamp uint32 `protobuf:"varint,4,opt,name=timeStamp,proto3" json:"timeStamp,omitempty"` + WeekDayNow int32 `protobuf:"varint,5,opt,name=weekDayNow,proto3" json:"weekDayNow,omitempty"` + WeekNow int32 `protobuf:"varint,6,opt,name=weekNow,proto3" json:"weekNow,omitempty"` +} + +func (x *GetSchoolTimeResponse_Data) Reset() { + *x = GetSchoolTimeResponse_Data{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSchoolTimeResponse_Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSchoolTimeResponse_Data) ProtoMessage() {} + +func (x *GetSchoolTimeResponse_Data) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSchoolTimeResponse_Data.ProtoReflect.Descriptor instead. +func (*GetSchoolTimeResponse_Data) Descriptor() ([]byte, []int) { + return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{0, 0} +} + +func (x *GetSchoolTimeResponse_Data) GetSchoolYear() string { + if x != nil { + return x.SchoolYear + } + return "" +} + +func (x *GetSchoolTimeResponse_Data) GetSection() int32 { + if x != nil { + return x.Section + } + return 0 +} + +func (x *GetSchoolTimeResponse_Data) GetSemester() string { + if x != nil { + return x.Semester + } + return "" +} + +func (x *GetSchoolTimeResponse_Data) GetTimeStamp() uint32 { + if x != nil { + return x.TimeStamp + } + return 0 +} + +func (x *GetSchoolTimeResponse_Data) GetWeekDayNow() int32 { + if x != nil { + return x.WeekDayNow + } + return 0 +} + +func (x *GetSchoolTimeResponse_Data) GetWeekNow() int32 { + if x != nil { + return x.WeekNow + } + return 0 +} + type GetSemesterListResponse_Semester struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -228,7 +307,7 @@ type GetSemesterListResponse_Semester struct { func (x *GetSemesterListResponse_Semester) Reset() { *x = GetSemesterListResponse_Semester{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[3] + mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -241,7 +320,7 @@ func (x *GetSemesterListResponse_Semester) String() string { func (*GetSemesterListResponse_Semester) ProtoMessage() {} func (x *GetSemesterListResponse_Semester) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[3] + mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -307,79 +386,88 @@ var file_campusapis_schoolTime_v1_schoolTime_proto_rawDesc = []byte{ 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x23, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc5, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x63, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc0, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, - 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, - 0x79, 0x4e, 0x6f, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x22, 0x50, - 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, - 0x22, 0x82, 0x02, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, - 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x53, - 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x94, - 0x01, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x48, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x1a, 0xb4, 0x01, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, - 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x32, 0xde, 0x02, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7e, 0x0a, 0x0d, 0x47, - 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x13, 0x2f, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x69, - 0x6d, 0x65, 0x5a, 0x07, 0x12, 0x05, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0xc8, 0x01, 0x0a, 0x0f, - 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x50, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4a, 0x12, 0x22, 0x2f, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, - 0x5a, 0x1d, 0x12, 0x14, 0x2f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x6c, 0x69, - 0x73, 0x74, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x62, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x42, 0xf8, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, - 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, - 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, - 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x76, - 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x18, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, - 0x56, 0x31, 0xca, 0x02, 0x18, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, - 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x24, - 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x3a, 0x3a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x3a, 0x56, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x1e, 0x0a, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x12, + 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x22, 0x50, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0xa8, 0x02, 0x0a, 0x17, + 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x4e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x94, 0x01, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x32, 0xd0, 0x02, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7e, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x13, + 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x74, + 0x69, 0x6d, 0x65, 0x5a, 0x07, 0x12, 0x05, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0xba, 0x01, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x22, 0x2f, + 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x44, 0x61, 0x74, + 0x65, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x6c, + 0x69, 0x73, 0x74, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x42, 0xf8, 0x01, 0x0a, 0x1c, 0x63, 0x6f, + 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x53, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, + 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x18, 0x43, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x5c, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, + 0xe2, 0x02, 0x24, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -394,25 +482,27 @@ func file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP() []byte { return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescData } -var file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_campusapis_schoolTime_v1_schoolTime_proto_goTypes = []interface{}{ (*GetSchoolTimeResponse)(nil), // 0: campusapis.schoolTime.v1.GetSchoolTimeResponse (*GetSemesterListRequest)(nil), // 1: campusapis.schoolTime.v1.GetSemesterListRequest (*GetSemesterListResponse)(nil), // 2: campusapis.schoolTime.v1.GetSemesterListResponse - (*GetSemesterListResponse_Semester)(nil), // 3: campusapis.schoolTime.v1.GetSemesterListResponse.Semester - (*emptypb.Empty)(nil), // 4: google.protobuf.Empty + (*GetSchoolTimeResponse_Data)(nil), // 3: campusapis.schoolTime.v1.GetSchoolTimeResponse.Data + (*GetSemesterListResponse_Semester)(nil), // 4: campusapis.schoolTime.v1.GetSemesterListResponse.Semester + (*emptypb.Empty)(nil), // 5: google.protobuf.Empty } var file_campusapis_schoolTime_v1_schoolTime_proto_depIdxs = []int32{ - 3, // 0: campusapis.schoolTime.v1.GetSemesterListResponse.items:type_name -> campusapis.schoolTime.v1.GetSemesterListResponse.Semester - 4, // 1: campusapis.schoolTime.v1.SchoolTimeService.GetSchoolTime:input_type -> google.protobuf.Empty - 1, // 2: campusapis.schoolTime.v1.SchoolTimeService.GetSemesterList:input_type -> campusapis.schoolTime.v1.GetSemesterListRequest - 0, // 3: campusapis.schoolTime.v1.SchoolTimeService.GetSchoolTime:output_type -> campusapis.schoolTime.v1.GetSchoolTimeResponse - 2, // 4: campusapis.schoolTime.v1.SchoolTimeService.GetSemesterList:output_type -> campusapis.schoolTime.v1.GetSemesterListResponse - 3, // [3:5] is the sub-list for method output_type - 1, // [1:3] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 3, // 0: campusapis.schoolTime.v1.GetSchoolTimeResponse.data:type_name -> campusapis.schoolTime.v1.GetSchoolTimeResponse.Data + 4, // 1: campusapis.schoolTime.v1.GetSemesterListResponse.data:type_name -> campusapis.schoolTime.v1.GetSemesterListResponse.Semester + 5, // 2: campusapis.schoolTime.v1.SchoolTimeService.GetSchoolTime:input_type -> google.protobuf.Empty + 1, // 3: campusapis.schoolTime.v1.SchoolTimeService.GetSemesterList:input_type -> campusapis.schoolTime.v1.GetSemesterListRequest + 0, // 4: campusapis.schoolTime.v1.SchoolTimeService.GetSchoolTime:output_type -> campusapis.schoolTime.v1.GetSchoolTimeResponse + 2, // 5: campusapis.schoolTime.v1.SchoolTimeService.GetSemesterList:output_type -> campusapis.schoolTime.v1.GetSemesterListResponse + 4, // [4:6] is the sub-list for method output_type + 2, // [2:4] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name } func init() { file_campusapis_schoolTime_v1_schoolTime_proto_init() } @@ -458,6 +548,18 @@ func file_campusapis_schoolTime_v1_schoolTime_proto_init() { } } file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSchoolTimeResponse_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSemesterListResponse_Semester); i { case 0: return &v.state @@ -476,7 +578,7 @@ func file_campusapis_schoolTime_v1_schoolTime_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_campusapis_schoolTime_v1_schoolTime_proto_rawDesc, NumEnums: 0, - NumMessages: 4, + NumMessages: 5, NumExtensions: 0, NumServices: 1, }, diff --git a/campusapis/schoolTime/v1/schoolTime.pb.gw.go b/campusapis/schoolTime/v1/schoolTime.pb.gw.go index cd7abe2..3c800a3 100644 --- a/campusapis/schoolTime/v1/schoolTime.pb.gw.go +++ b/campusapis/schoolTime/v1/schoolTime.pb.gw.go @@ -214,7 +214,7 @@ func RegisterSchoolTimeServiceHandlerServer(ctx context.Context, mux *runtime.Se return } - forward_SchoolTimeService_GetSemesterList_0(ctx, mux, outboundMarshaler, w, req, response_SchoolTimeService_GetSemesterList_0{resp}, mux.GetForwardResponseOptions()...) + forward_SchoolTimeService_GetSemesterList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -238,7 +238,7 @@ func RegisterSchoolTimeServiceHandlerServer(ctx context.Context, mux *runtime.Se return } - forward_SchoolTimeService_GetSemesterList_1(ctx, mux, outboundMarshaler, w, req, response_SchoolTimeService_GetSemesterList_1{resp}, mux.GetForwardResponseOptions()...) + forward_SchoolTimeService_GetSemesterList_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -342,7 +342,7 @@ func RegisterSchoolTimeServiceHandlerClient(ctx context.Context, mux *runtime.Se return } - forward_SchoolTimeService_GetSemesterList_0(ctx, mux, outboundMarshaler, w, req, response_SchoolTimeService_GetSemesterList_0{resp}, mux.GetForwardResponseOptions()...) + forward_SchoolTimeService_GetSemesterList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -363,31 +363,13 @@ func RegisterSchoolTimeServiceHandlerClient(ctx context.Context, mux *runtime.Se return } - forward_SchoolTimeService_GetSemesterList_1(ctx, mux, outboundMarshaler, w, req, response_SchoolTimeService_GetSemesterList_1{resp}, mux.GetForwardResponseOptions()...) + forward_SchoolTimeService_GetSemesterList_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) return nil } -type response_SchoolTimeService_GetSemesterList_0 struct { - proto.Message -} - -func (m response_SchoolTimeService_GetSemesterList_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetSemesterListResponse) - return response.Items -} - -type response_SchoolTimeService_GetSemesterList_1 struct { - proto.Message -} - -func (m response_SchoolTimeService_GetSemesterList_1) XXX_ResponseBody() interface{} { - response := m.Message.(*GetSemesterListResponse) - return response.Items -} - var ( pattern_SchoolTimeService_GetSchoolTime_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"schooltime", "v1", "time"}, "")) diff --git a/campusapis/schoolTime/v1/schoolTime.proto b/campusapis/schoolTime/v1/schoolTime.proto index faacf2b..7b6fd11 100644 --- a/campusapis/schoolTime/v1/schoolTime.proto +++ b/campusapis/schoolTime/v1/schoolTime.proto @@ -19,26 +19,31 @@ service SchoolTimeService { } }; } + // 获取学校学期信息列表 rpc GetSemesterList (GetSemesterListRequest) returns (GetSemesterListResponse) { option (google.api.http) = { get: "/schooltime/v1/semester/listByDate" - response_body: "items" additional_bindings { get: "/semester/listByDate" - response_body: "items" } }; } } message GetSchoolTimeResponse { - string schoolYear = 1; - int32 section = 2; - string semester = 3; - uint32 timeStamp = 4; - int32 weekDayNow = 5; - int32 weekNow = 6; + uint32 error = 1; + string msg = 2; + Data data = 3; + + message Data { + string schoolYear = 1; + int32 section = 2; + string semester = 3; + uint32 timeStamp = 4; + int32 weekDayNow = 5; + int32 weekNow = 6; + } } message GetSemesterListRequest { @@ -47,6 +52,10 @@ message GetSemesterListRequest { } message GetSemesterListResponse { + uint32 error = 1; + string msg = 2; + repeated Semester data = 3; + message Semester { string schoolYear = 1; string semester = 2; @@ -54,5 +63,4 @@ message GetSemesterListResponse { string endDate = 4; int32 state = 5; } - repeated Semester items = 1; } \ No newline at end of file diff --git a/campusapis/staff/v1/campus.pb.go b/campusapis/staff/v1/campus.pb.go index adc4618..46718fe 100644 --- a/campusapis/staff/v1/campus.pb.go +++ b/campusapis/staff/v1/campus.pb.go @@ -30,16 +30,9 @@ type GetPersonInfoResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - //学工号 - StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` - //姓名 - StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` - //人员状态 - StaffState string `protobuf:"bytes,3,opt,name=staffState,proto3" json:"staffState,omitempty"` - //人员类型 - StaffType string `protobuf:"bytes,4,opt,name=staffType,proto3" json:"staffType,omitempty"` - //学院代码 - UnitCode string `protobuf:"bytes,5,opt,name=unitCode,proto3" json:"unitCode,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *GetPersonInfoResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetPersonInfoResponse) Reset() { @@ -74,37 +67,194 @@ func (*GetPersonInfoResponse) Descriptor() ([]byte, []int) { return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{0} } -func (x *GetPersonInfoResponse) GetStaffId() string { +func (x *GetPersonInfoResponse) GetError() uint32 { if x != nil { - return x.StaffId + return x.Error + } + return 0 +} + +func (x *GetPersonInfoResponse) GetMsg() string { + if x != nil { + return x.Msg } return "" } -func (x *GetPersonInfoResponse) GetStaffName() string { +func (x *GetPersonInfoResponse) GetData() *GetPersonInfoResponse_Data { if x != nil { - return x.StaffName + return x.Data + } + return nil +} + +type GetStudentRewardsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //学年,只支持一种格式,例:2021-2022学年,应传 2021 + SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + //学期,枚举:第一学期 | 第二学期 + Semester string `protobuf:"bytes,2,opt,name=semester,proto3" json:"semester,omitempty"` +} + +func (x *GetStudentRewardsRequest) Reset() { + *x = GetStudentRewardsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStudentRewardsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStudentRewardsRequest) ProtoMessage() {} + +func (x *GetStudentRewardsRequest) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStudentRewardsRequest.ProtoReflect.Descriptor instead. +func (*GetStudentRewardsRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{1} +} + +func (x *GetStudentRewardsRequest) GetSchoolYear() string { + if x != nil { + return x.SchoolYear } return "" } -func (x *GetPersonInfoResponse) GetStaffState() string { +func (x *GetStudentRewardsRequest) GetSemester() string { if x != nil { - return x.StaffState + return x.Semester } return "" } -func (x *GetPersonInfoResponse) GetStaffType() string { +type GetStudentCourseSelectionsRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //学年,只支持一种格式,例:2021-2022学年,应传 2021 + SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + //学期,枚举:第一学期 | 第二学期 + Semester string `protobuf:"bytes,2,opt,name=semester,proto3" json:"semester,omitempty"` +} + +func (x *GetStudentCourseSelectionsRequest) Reset() { + *x = GetStudentCourseSelectionsRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStudentCourseSelectionsRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStudentCourseSelectionsRequest) ProtoMessage() {} + +func (x *GetStudentCourseSelectionsRequest) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStudentCourseSelectionsRequest.ProtoReflect.Descriptor instead. +func (*GetStudentCourseSelectionsRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{2} +} + +func (x *GetStudentCourseSelectionsRequest) GetSchoolYear() string { if x != nil { - return x.StaffType + return x.SchoolYear } return "" } -func (x *GetPersonInfoResponse) GetUnitCode() string { +func (x *GetStudentCourseSelectionsRequest) GetSemester() string { if x != nil { - return x.UnitCode + return x.Semester + } + return "" +} + +type GetStudentGradeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //学年,只支持一种格式,例:2021-2022学年,应传 2021 + SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + //学期,枚举:第一学期 | 第二学期 + Semester string `protobuf:"bytes,2,opt,name=semester,proto3" json:"semester,omitempty"` +} + +func (x *GetStudentGradeRequest) Reset() { + *x = GetStudentGradeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStudentGradeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStudentGradeRequest) ProtoMessage() {} + +func (x *GetStudentGradeRequest) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStudentGradeRequest.ProtoReflect.Descriptor instead. +func (*GetStudentGradeRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{3} +} + +func (x *GetStudentGradeRequest) GetSchoolYear() string { + if x != nil { + return x.SchoolYear + } + return "" +} + +func (x *GetStudentGradeRequest) GetSemester() string { + if x != nil { + return x.Semester } return "" } @@ -124,7 +274,7 @@ type SemesterRequest struct { func (x *SemesterRequest) Reset() { *x = SemesterRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[1] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -137,7 +287,7 @@ func (x *SemesterRequest) String() string { func (*SemesterRequest) ProtoMessage() {} func (x *SemesterRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[1] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -150,7 +300,7 @@ func (x *SemesterRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SemesterRequest.ProtoReflect.Descriptor instead. func (*SemesterRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{1} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{4} } func (x *SemesterRequest) GetSchoolYear() string { @@ -173,30 +323,15 @@ type GetStudentInfoResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - //学号 - StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` - //学生姓名 - StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` - //学生班级号 - ClassId string `protobuf:"bytes,3,opt,name=classId,proto3" json:"classId,omitempty"` - //学生学院编号 - UnitId string `protobuf:"bytes,4,opt,name=unitId,proto3" json:"unitId,omitempty"` - //学生学院名称 - UnitName string `protobuf:"bytes,5,opt,name=unitName,proto3" json:"unitName,omitempty"` - //学生专业编号 - MajorId string `protobuf:"bytes,6,opt,name=majorId,proto3" json:"majorId,omitempty"` - //学生专业名称 - MajorName string `protobuf:"bytes,7,opt,name=majorName,proto3" json:"majorName,omitempty"` - //学生辅导员工号 - TeacherId string `protobuf:"bytes,8,opt,name=teacherId,proto3" json:"teacherId,omitempty"` - //学生辅导员姓名 - TeacherName string `protobuf:"bytes,9,opt,name=teacherName,proto3" json:"teacherName,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *GetStudentInfoResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetStudentInfoResponse) Reset() { *x = GetStudentInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[2] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -209,7 +344,7 @@ func (x *GetStudentInfoResponse) String() string { func (*GetStudentInfoResponse) ProtoMessage() {} func (x *GetStudentInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[2] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -222,74 +357,96 @@ func (x *GetStudentInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{2} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{5} } -func (x *GetStudentInfoResponse) GetStaffId() string { +func (x *GetStudentInfoResponse) GetError() uint32 { if x != nil { - return x.StaffId + return x.Error } - return "" + return 0 } -func (x *GetStudentInfoResponse) GetStaffName() string { +func (x *GetStudentInfoResponse) GetMsg() string { if x != nil { - return x.StaffName + return x.Msg } return "" } -func (x *GetStudentInfoResponse) GetClassId() string { +func (x *GetStudentInfoResponse) GetData() *GetStudentInfoResponse_Data { if x != nil { - return x.ClassId + return x.Data } - return "" + return nil } -func (x *GetStudentInfoResponse) GetUnitId() string { - if x != nil { - return x.UnitId - } - return "" +//查询贫困生信息返回体 +type GetStudentNeedyInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *StudentNeedyInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } -func (x *GetStudentInfoResponse) GetUnitName() string { - if x != nil { - return x.UnitName +func (x *GetStudentNeedyInfoResponse) Reset() { + *x = GetStudentNeedyInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *GetStudentInfoResponse) GetMajorId() string { - if x != nil { - return x.MajorId +func (x *GetStudentNeedyInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStudentNeedyInfoResponse) ProtoMessage() {} + +func (x *GetStudentNeedyInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) +} + +// Deprecated: Use GetStudentNeedyInfoResponse.ProtoReflect.Descriptor instead. +func (*GetStudentNeedyInfoResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{6} } -func (x *GetStudentInfoResponse) GetMajorName() string { +func (x *GetStudentNeedyInfoResponse) GetError() uint32 { if x != nil { - return x.MajorName + return x.Error } - return "" + return 0 } -func (x *GetStudentInfoResponse) GetTeacherId() string { +func (x *GetStudentNeedyInfoResponse) GetMsg() string { if x != nil { - return x.TeacherId + return x.Msg } return "" } -func (x *GetStudentInfoResponse) GetTeacherName() string { +func (x *GetStudentNeedyInfoResponse) GetData() *StudentNeedyInfo { if x != nil { - return x.TeacherName + return x.Data } - return "" + return nil } -//查询贫困生信息返回体 -type GetStudentNeedyInfoResponse struct { +//贫困生信息 +type StudentNeedyInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -303,26 +460,26 @@ type GetStudentNeedyInfoResponse struct { //是否贫困生 NeedyStudent bool `protobuf:"varint,4,opt,name=needyStudent,proto3" json:"needyStudent,omitempty"` //每学年贫困详情 - Items []*GetStudentNeedyInfoResponse_Nested `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` + Items []*StudentNeedyInfo_Nested `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` } -func (x *GetStudentNeedyInfoResponse) Reset() { - *x = GetStudentNeedyInfoResponse{} +func (x *StudentNeedyInfo) Reset() { + *x = StudentNeedyInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[3] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStudentNeedyInfoResponse) String() string { +func (x *StudentNeedyInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentNeedyInfoResponse) ProtoMessage() {} +func (*StudentNeedyInfo) ProtoMessage() {} -func (x *GetStudentNeedyInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[3] +func (x *StudentNeedyInfo) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -333,47 +490,47 @@ func (x *GetStudentNeedyInfoResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentNeedyInfoResponse.ProtoReflect.Descriptor instead. -func (*GetStudentNeedyInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{3} +// Deprecated: Use StudentNeedyInfo.ProtoReflect.Descriptor instead. +func (*StudentNeedyInfo) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{7} } -func (x *GetStudentNeedyInfoResponse) GetStaffId() string { +func (x *StudentNeedyInfo) GetStaffId() string { if x != nil { return x.StaffId } return "" } -func (x *GetStudentNeedyInfoResponse) GetStaffName() string { +func (x *StudentNeedyInfo) GetStaffName() string { if x != nil { return x.StaffName } return "" } -func (x *GetStudentNeedyInfoResponse) GetSex() int32 { +func (x *StudentNeedyInfo) GetSex() int32 { if x != nil { return x.Sex } return 0 } -func (x *GetStudentNeedyInfoResponse) GetNeedyStudent() bool { +func (x *StudentNeedyInfo) GetNeedyStudent() bool { if x != nil { return x.NeedyStudent } return false } -func (x *GetStudentNeedyInfoResponse) GetItems() []*GetStudentNeedyInfoResponse_Nested { +func (x *StudentNeedyInfo) GetItems() []*StudentNeedyInfo_Nested { if x != nil { return x.Items } return nil } -// GetStudentDormInfoResponse 查询学生寝室信息返回体 +// 查询学生寝室信息返回体 type GetStudentDormInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -390,7 +547,7 @@ type GetStudentDormInfoResponse struct { func (x *GetStudentDormInfoResponse) Reset() { *x = GetStudentDormInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[4] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -403,7 +560,7 @@ func (x *GetStudentDormInfoResponse) String() string { func (*GetStudentDormInfoResponse) ProtoMessage() {} func (x *GetStudentDormInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[4] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -416,7 +573,7 @@ func (x *GetStudentDormInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentDormInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentDormInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{4} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{8} } func (x *GetStudentDormInfoResponse) GetStaffId() string { @@ -440,37 +597,101 @@ func (x *GetStudentDormInfoResponse) GetRoom() string { return "" } -// GetStudentBirthdayResponse 学生生日查询返回体 -type GetStudentBirthdayResponse struct { +// GetStudentBirthdayInfoResponse 学生生日查询返回体 +type GetStudentBirthdayInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - //学工号 - StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` - //姓名 + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *StudentBirthdayInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetStudentBirthdayInfoResponse) Reset() { + *x = GetStudentBirthdayInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStudentBirthdayInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStudentBirthdayInfoResponse) ProtoMessage() {} + +func (x *GetStudentBirthdayInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStudentBirthdayInfoResponse.ProtoReflect.Descriptor instead. +func (*GetStudentBirthdayInfoResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9} +} + +func (x *GetStudentBirthdayInfoResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetStudentBirthdayInfoResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetStudentBirthdayInfoResponse) GetData() *StudentBirthdayInfo { + if x != nil { + return x.Data + } + return nil +} + +//学生生日信息 +type StudentBirthdayInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //学工号 + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + //姓名 Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` //生日 Birthday string `protobuf:"bytes,3,opt,name=birthday,proto3" json:"birthday,omitempty"` } -func (x *GetStudentBirthdayResponse) Reset() { - *x = GetStudentBirthdayResponse{} +func (x *StudentBirthdayInfo) Reset() { + *x = StudentBirthdayInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[5] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStudentBirthdayResponse) String() string { +func (x *StudentBirthdayInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentBirthdayResponse) ProtoMessage() {} +func (*StudentBirthdayInfo) ProtoMessage() {} -func (x *GetStudentBirthdayResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[5] +func (x *StudentBirthdayInfo) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -481,26 +702,26 @@ func (x *GetStudentBirthdayResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentBirthdayResponse.ProtoReflect.Descriptor instead. -func (*GetStudentBirthdayResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{5} +// Deprecated: Use StudentBirthdayInfo.ProtoReflect.Descriptor instead. +func (*StudentBirthdayInfo) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10} } -func (x *GetStudentBirthdayResponse) GetStaffId() string { +func (x *StudentBirthdayInfo) GetStaffId() string { if x != nil { return x.StaffId } return "" } -func (x *GetStudentBirthdayResponse) GetName() string { +func (x *StudentBirthdayInfo) GetName() string { if x != nil { return x.Name } return "" } -func (x *GetStudentBirthdayResponse) GetBirthday() string { +func (x *StudentBirthdayInfo) GetBirthday() string { if x != nil { return x.Birthday } @@ -524,7 +745,7 @@ type GetStudentBirthdaysInRequest struct { func (x *GetStudentBirthdaysInRequest) Reset() { *x = GetStudentBirthdaysInRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[6] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -537,7 +758,7 @@ func (x *GetStudentBirthdaysInRequest) String() string { func (*GetStudentBirthdaysInRequest) ProtoMessage() {} func (x *GetStudentBirthdaysInRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[6] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -550,7 +771,7 @@ func (x *GetStudentBirthdaysInRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdaysInRequest.ProtoReflect.Descriptor instead. func (*GetStudentBirthdaysInRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{6} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{11} } func (x *GetStudentBirthdaysInRequest) GetType() staff.Type { @@ -581,13 +802,13 @@ type GetStudentBirthdaysInResponse struct { unknownFields protoimpl.UnknownFields // 生日详情列表 - Birthdays []*GetStudentBirthdayResponse `protobuf:"bytes,1,rep,name=birthdays,proto3" json:"birthdays,omitempty"` + Birthdays []*StudentBirthdayInfo `protobuf:"bytes,1,rep,name=birthdays,proto3" json:"birthdays,omitempty"` } func (x *GetStudentBirthdaysInResponse) Reset() { *x = GetStudentBirthdaysInResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[7] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -600,7 +821,7 @@ func (x *GetStudentBirthdaysInResponse) String() string { func (*GetStudentBirthdaysInResponse) ProtoMessage() {} func (x *GetStudentBirthdaysInResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[7] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -613,10 +834,10 @@ func (x *GetStudentBirthdaysInResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdaysInResponse.ProtoReflect.Descriptor instead. func (*GetStudentBirthdaysInResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{7} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12} } -func (x *GetStudentBirthdaysInResponse) GetBirthdays() []*GetStudentBirthdayResponse { +func (x *GetStudentBirthdaysInResponse) GetBirthdays() []*StudentBirthdayInfo { if x != nil { return x.Birthdays } @@ -629,14 +850,16 @@ type GetStudentRewardsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // 奖学金列表 - Items []*GetStudentRewardsResponse_Nested `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Data []*StudentReward `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetStudentRewardsResponse) Reset() { *x = GetStudentRewardsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[8] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -649,7 +872,7 @@ func (x *GetStudentRewardsResponse) String() string { func (*GetStudentRewardsResponse) ProtoMessage() {} func (x *GetStudentRewardsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[8] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -662,43 +885,67 @@ func (x *GetStudentRewardsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentRewardsResponse.ProtoReflect.Descriptor instead. func (*GetStudentRewardsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{8} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{13} } -func (x *GetStudentRewardsResponse) GetItems() []*GetStudentRewardsResponse_Nested { +func (x *GetStudentRewardsResponse) GetError() uint32 { if x != nil { - return x.Items + return x.Error + } + return 0 +} + +func (x *GetStudentRewardsResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetStudentRewardsResponse) GetData() []*StudentReward { + if x != nil { + return x.Data } return nil } -// GetStudentSelectResponse 学生选课查询返回体 -type GetStudentSelectResponse struct { +// 奖学金信息 +type StudentReward struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - //详情列表 - Items []*GetStudentSelectResponse_Nested `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + //学工号 + StaffID string `protobuf:"bytes,1,opt,name=staffID,proto3" json:"staffID,omitempty"` + //姓名 + StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` + //奖项名 + RewardName string `protobuf:"bytes,3,opt,name=rewardName,proto3" json:"rewardName,omitempty"` + //学年 + SchoolYear string `protobuf:"bytes,4,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + //学期 + Semester string `protobuf:"bytes,5,opt,name=semester,proto3" json:"semester,omitempty"` + //奖项等级 + RewardLevel string `protobuf:"bytes,6,opt,name=rewardLevel,proto3" json:"rewardLevel,omitempty"` } -func (x *GetStudentSelectResponse) Reset() { - *x = GetStudentSelectResponse{} +func (x *StudentReward) Reset() { + *x = StudentReward{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStudentSelectResponse) String() string { +func (x *StudentReward) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentSelectResponse) ProtoMessage() {} +func (*StudentReward) ProtoMessage() {} -func (x *GetStudentSelectResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] +func (x *StudentReward) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -709,45 +956,82 @@ func (x *GetStudentSelectResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentSelectResponse.ProtoReflect.Descriptor instead. -func (*GetStudentSelectResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9} +// Deprecated: Use StudentReward.ProtoReflect.Descriptor instead. +func (*StudentReward) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{14} } -func (x *GetStudentSelectResponse) GetItems() []*GetStudentSelectResponse_Nested { +func (x *StudentReward) GetStaffID() string { if x != nil { - return x.Items + return x.StaffID } - return nil + return "" } -// GetStudentGradeResponse 查询学生成绩返回体 -type GetStudentGradeResponse struct { +func (x *StudentReward) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *StudentReward) GetRewardName() string { + if x != nil { + return x.RewardName + } + return "" +} + +func (x *StudentReward) GetSchoolYear() string { + if x != nil { + return x.SchoolYear + } + return "" +} + +func (x *StudentReward) GetSemester() string { + if x != nil { + return x.Semester + } + return "" +} + +func (x *StudentReward) GetRewardLevel() string { + if x != nil { + return x.RewardLevel + } + return "" +} + +// 学生选课查询返回体 +type GetStudentCourseSelectionsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 成绩详情列表 - Items []*GetStudentGradeResponse_Nested `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + //详情列表 + Data []*StudentCourseSelection `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } -func (x *GetStudentGradeResponse) Reset() { - *x = GetStudentGradeResponse{} +func (x *GetStudentCourseSelectionsResponse) Reset() { + *x = GetStudentCourseSelectionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStudentGradeResponse) String() string { +func (x *GetStudentCourseSelectionsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentGradeResponse) ProtoMessage() {} +func (*GetStudentCourseSelectionsResponse) ProtoMessage() {} -func (x *GetStudentGradeResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] +func (x *GetStudentCourseSelectionsResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -758,60 +1042,79 @@ func (x *GetStudentGradeResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentGradeResponse.ProtoReflect.Descriptor instead. -func (*GetStudentGradeResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10} +// Deprecated: Use GetStudentCourseSelectionsResponse.ProtoReflect.Descriptor instead. +func (*GetStudentCourseSelectionsResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{15} } -func (x *GetStudentGradeResponse) GetItems() []*GetStudentGradeResponse_Nested { +func (x *GetStudentCourseSelectionsResponse) GetError() uint32 { if x != nil { - return x.Items + return x.Error + } + return 0 +} + +func (x *GetStudentCourseSelectionsResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetStudentCourseSelectionsResponse) GetData() []*StudentCourseSelection { + if x != nil { + return x.Data } return nil } -// 推送学生门禁通行信息-请求关键字 -type PostStudentGateAccessRequest struct { +//选课详情 +type StudentCourseSelection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 学工号(重要) - StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` - // 请假类型,数字,一个数字对应一大类请假,枚举及含义: - // 0->临时请假 | 1->当天假 | 2->单位实习(目前没用)| - // 3->特殊(目前没用) | 4->身份码(目前没用) | - // 5->离校 | 6->按周(目前没用) | 7->按月(目前没用) - DayOffType string `protobuf:"bytes,2,opt,name=dayOffType,proto3" json:"dayOffType,omitempty"` - // 请假类型,中文名 - DayOffName string `protobuf:"bytes,3,opt,name=dayOffName,proto3" json:"dayOffName,omitempty"` - // 开始时间(重要) - TimeStart string `protobuf:"bytes,4,opt,name=timeStart,proto3" json:"timeStart,omitempty"` - // 结束时间(重要) - TimeEnd string `protobuf:"bytes,5,opt,name=timeEnd,proto3" json:"timeEnd,omitempty"` - // 假条 uid - Uid string `protobuf:"bytes,6,opt,name=uid,proto3" json:"uid,omitempty"` - // 闸机牌子(重要),枚举及含义:hikvision -> 海康 | uniview -> 宇视 - Target string `protobuf:"bytes,7,opt,name=Target,proto3" json:"Target,omitempty"` + //学年 + SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + //学期 + Semester string `protobuf:"bytes,2,opt,name=semester,proto3" json:"semester,omitempty"` + //学号 + StaffID string `protobuf:"bytes,3,opt,name=staffID,proto3" json:"staffID,omitempty"` + //姓名 + StaffName string `protobuf:"bytes,4,opt,name=staffName,proto3" json:"staffName,omitempty"` + //选课号 + SelectCode string `protobuf:"bytes,5,opt,name=selectCode,proto3" json:"selectCode,omitempty"` + //课程中文名 + CourseName string `protobuf:"bytes,6,opt,name=courseName,proto3" json:"courseName,omitempty"` + //课程号 + CourseCode string `protobuf:"bytes,7,opt,name=courseCode,proto3" json:"courseCode,omitempty"` + //教师工号 + TeacherID string `protobuf:"bytes,8,opt,name=teacherID,proto3" json:"teacherID,omitempty"` + //教师姓名 + TeacherName string `protobuf:"bytes,9,opt,name=teacherName,proto3" json:"teacherName,omitempty"` + //上课时间中文描述 + ClassTime string `protobuf:"bytes,10,opt,name=classTime,proto3" json:"classTime,omitempty"` + //教室 + ClassRoom string `protobuf:"bytes,11,opt,name=classRoom,proto3" json:"classRoom,omitempty"` } -func (x *PostStudentGateAccessRequest) Reset() { - *x = PostStudentGateAccessRequest{} +func (x *StudentCourseSelection) Reset() { + *x = StudentCourseSelection{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PostStudentGateAccessRequest) String() string { +func (x *StudentCourseSelection) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PostStudentGateAccessRequest) ProtoMessage() {} +func (*StudentCourseSelection) ProtoMessage() {} -func (x *PostStudentGateAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] +func (x *StudentCourseSelection) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -822,87 +1125,767 @@ func (x *PostStudentGateAccessRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PostStudentGateAccessRequest.ProtoReflect.Descriptor instead. -func (*PostStudentGateAccessRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{11} +// Deprecated: Use StudentCourseSelection.ProtoReflect.Descriptor instead. +func (*StudentCourseSelection) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{16} } -func (x *PostStudentGateAccessRequest) GetStaffId() string { +func (x *StudentCourseSelection) GetSchoolYear() string { if x != nil { - return x.StaffId + return x.SchoolYear } return "" } -func (x *PostStudentGateAccessRequest) GetDayOffType() string { +func (x *StudentCourseSelection) GetSemester() string { if x != nil { - return x.DayOffType + return x.Semester } return "" } -func (x *PostStudentGateAccessRequest) GetDayOffName() string { +func (x *StudentCourseSelection) GetStaffID() string { if x != nil { - return x.DayOffName + return x.StaffID } return "" } -func (x *PostStudentGateAccessRequest) GetTimeStart() string { +func (x *StudentCourseSelection) GetStaffName() string { if x != nil { - return x.TimeStart + return x.StaffName } return "" } -func (x *PostStudentGateAccessRequest) GetTimeEnd() string { +func (x *StudentCourseSelection) GetSelectCode() string { if x != nil { - return x.TimeEnd + return x.SelectCode } return "" } -func (x *PostStudentGateAccessRequest) GetUid() string { +func (x *StudentCourseSelection) GetCourseName() string { if x != nil { - return x.Uid + return x.CourseName } return "" } -func (x *PostStudentGateAccessRequest) GetTarget() string { +func (x *StudentCourseSelection) GetCourseCode() string { if x != nil { - return x.Target + return x.CourseCode } return "" } -// PostStudentGateAccessResponse 推送学生门禁通行信息 -type PostStudentGateAccessResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Done bool `protobuf:"varint,1,opt,name=done,proto3" json:"done,omitempty"` //是否完成 - Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` //完成信息 +func (x *StudentCourseSelection) GetTeacherID() string { + if x != nil { + return x.TeacherID + } + return "" } -func (x *PostStudentGateAccessResponse) Reset() { - *x = PostStudentGateAccessResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] +func (x *StudentCourseSelection) GetTeacherName() string { + if x != nil { + return x.TeacherName + } + return "" +} + +func (x *StudentCourseSelection) GetClassTime() string { + if x != nil { + return x.ClassTime + } + return "" +} + +func (x *StudentCourseSelection) GetClassRoom() string { + if x != nil { + return x.ClassRoom + } + return "" +} + +// 查询学生成绩返回体 +type GetStudentGradeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + // 成绩详情列表 + Data []*StudentGrade `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetStudentGradeResponse) Reset() { + *x = GetStudentGradeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStudentGradeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStudentGradeResponse) ProtoMessage() {} + +func (x *GetStudentGradeResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStudentGradeResponse.ProtoReflect.Descriptor instead. +func (*GetStudentGradeResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{17} +} + +func (x *GetStudentGradeResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetStudentGradeResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetStudentGradeResponse) GetData() []*StudentGrade { + if x != nil { + return x.Data + } + return nil +} + +// 成绩详情 +type StudentGrade struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //学年 + SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + //学期 + Semester string `protobuf:"bytes,2,opt,name=semester,proto3" json:"semester,omitempty"` + //选课号 + SelectCode string `protobuf:"bytes,3,opt,name=selectCode,proto3" json:"selectCode,omitempty"` + //最后分数 + Score string `protobuf:"bytes,4,opt,name=score,proto3" json:"score,omitempty"` + //平时分 + ScoreDaily string `protobuf:"bytes,5,opt,name=scoreDaily,proto3" json:"scoreDaily,omitempty"` + //期中分数 + ScoreMidTerm string `protobuf:"bytes,6,opt,name=scoreMidTerm,proto3" json:"scoreMidTerm,omitempty"` + //期末分数 + ScoreFinal string `protobuf:"bytes,7,opt,name=scoreFinal,proto3" json:"scoreFinal,omitempty"` + //补考分数 + ScoreSubstitute string `protobuf:"bytes,8,opt,name=scoreSubstitute,proto3" json:"scoreSubstitute,omitempty"` + //实验分数 + ScorePractice string `protobuf:"bytes,9,opt,name=scorePractice,proto3" json:"scorePractice,omitempty"` + //课程号 + CourseCode string `protobuf:"bytes,10,opt,name=courseCode,proto3" json:"courseCode,omitempty"` + //课程名 + Course string `protobuf:"bytes,11,opt,name=course,proto3" json:"course,omitempty"` + //学号 + StaffId string `protobuf:"bytes,12,opt,name=staffId,proto3" json:"staffId,omitempty"` + //姓名 + StaffName string `protobuf:"bytes,13,opt,name=staffName,proto3" json:"staffName,omitempty"` + //学分 + Credit string `protobuf:"bytes,14,opt,name=credit,proto3" json:"credit,omitempty"` + //GPA + GPA string `protobuf:"bytes,15,opt,name=GPA,proto3" json:"GPA,omitempty"` +} + +func (x *StudentGrade) Reset() { + *x = StudentGrade{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StudentGrade) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StudentGrade) ProtoMessage() {} + +func (x *StudentGrade) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StudentGrade.ProtoReflect.Descriptor instead. +func (*StudentGrade) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{18} +} + +func (x *StudentGrade) GetSchoolYear() string { + if x != nil { + return x.SchoolYear + } + return "" +} + +func (x *StudentGrade) GetSemester() string { + if x != nil { + return x.Semester + } + return "" +} + +func (x *StudentGrade) GetSelectCode() string { + if x != nil { + return x.SelectCode + } + return "" +} + +func (x *StudentGrade) GetScore() string { + if x != nil { + return x.Score + } + return "" +} + +func (x *StudentGrade) GetScoreDaily() string { + if x != nil { + return x.ScoreDaily + } + return "" +} + +func (x *StudentGrade) GetScoreMidTerm() string { + if x != nil { + return x.ScoreMidTerm + } + return "" +} + +func (x *StudentGrade) GetScoreFinal() string { + if x != nil { + return x.ScoreFinal + } + return "" +} + +func (x *StudentGrade) GetScoreSubstitute() string { + if x != nil { + return x.ScoreSubstitute + } + return "" +} + +func (x *StudentGrade) GetScorePractice() string { + if x != nil { + return x.ScorePractice + } + return "" +} + +func (x *StudentGrade) GetCourseCode() string { + if x != nil { + return x.CourseCode + } + return "" +} + +func (x *StudentGrade) GetCourse() string { + if x != nil { + return x.Course + } + return "" +} + +func (x *StudentGrade) GetStaffId() string { + if x != nil { + return x.StaffId + } + return "" +} + +func (x *StudentGrade) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *StudentGrade) GetCredit() string { + if x != nil { + return x.Credit + } + return "" +} + +func (x *StudentGrade) GetGPA() string { + if x != nil { + return x.GPA + } + return "" +} + +// 推送学生门禁通行信息-请求关键字 +type PostStudentGateAccessRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 学工号(重要) + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + // 请假类型,数字,一个数字对应一大类请假,枚举及含义: + // 0->临时请假 | 1->当天假 | 2->单位实习(目前没用)| + // 3->特殊(目前没用) | 4->身份码(目前没用) | + // 5->离校 | 6->按周(目前没用) | 7->按月(目前没用) + DayOffType string `protobuf:"bytes,2,opt,name=dayOffType,proto3" json:"dayOffType,omitempty"` + // 请假类型,中文名 + DayOffName string `protobuf:"bytes,3,opt,name=dayOffName,proto3" json:"dayOffName,omitempty"` + // 开始时间(重要) + TimeStart string `protobuf:"bytes,4,opt,name=timeStart,proto3" json:"timeStart,omitempty"` + // 结束时间(重要) + TimeEnd string `protobuf:"bytes,5,opt,name=timeEnd,proto3" json:"timeEnd,omitempty"` + // 假条 uid + Uid string `protobuf:"bytes,6,opt,name=uid,proto3" json:"uid,omitempty"` + // 闸机牌子(重要),枚举及含义:hikvision -> 海康 | uniview -> 宇视 + Target string `protobuf:"bytes,7,opt,name=Target,proto3" json:"Target,omitempty"` +} + +func (x *PostStudentGateAccessRequest) Reset() { + *x = PostStudentGateAccessRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostStudentGateAccessRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostStudentGateAccessRequest) ProtoMessage() {} + +func (x *PostStudentGateAccessRequest) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostStudentGateAccessRequest.ProtoReflect.Descriptor instead. +func (*PostStudentGateAccessRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{19} +} + +func (x *PostStudentGateAccessRequest) GetStaffId() string { + if x != nil { + return x.StaffId + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetDayOffType() string { + if x != nil { + return x.DayOffType + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetDayOffName() string { + if x != nil { + return x.DayOffName + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetTimeStart() string { + if x != nil { + return x.TimeStart + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetTimeEnd() string { + if x != nil { + return x.TimeEnd + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetTarget() string { + if x != nil { + return x.Target + } + return "" +} + +// PostStudentGateAccessResponse 推送学生门禁通行信息 +type PostStudentGateAccessResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *PostStudentGateAccessResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *PostStudentGateAccessResponse) Reset() { + *x = PostStudentGateAccessResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostStudentGateAccessResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostStudentGateAccessResponse) ProtoMessage() {} + +func (x *PostStudentGateAccessResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostStudentGateAccessResponse.ProtoReflect.Descriptor instead. +func (*PostStudentGateAccessResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{20} +} + +func (x *PostStudentGateAccessResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *PostStudentGateAccessResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *PostStudentGateAccessResponse) GetData() *PostStudentGateAccessResponse_Data { + if x != nil { + return x.Data + } + return nil +} + +// 留校生信息查询-返回体 +type GetStudentStaySchoolInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *StudentStaySchoolInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetStudentStaySchoolInfoResponse) Reset() { + *x = GetStudentStaySchoolInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStudentStaySchoolInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStudentStaySchoolInfoResponse) ProtoMessage() {} + +func (x *GetStudentStaySchoolInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStudentStaySchoolInfoResponse.ProtoReflect.Descriptor instead. +func (*GetStudentStaySchoolInfoResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{21} +} + +func (x *GetStudentStaySchoolInfoResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetStudentStaySchoolInfoResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetStudentStaySchoolInfoResponse) GetData() *StudentStaySchoolInfo { + if x != nil { + return x.Data + } + return nil +} + +// 留校生信息 +type StudentStaySchoolInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 学工号 + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + // 姓名 + StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` + // 报告日期 + ReportTime string `protobuf:"bytes,3,opt,name=reportTime,proto3" json:"reportTime,omitempty"` + // 原因 + Reason string `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"` + // 时间段1-开始 + Time1Start string `protobuf:"bytes,5,opt,name=time1Start,proto3" json:"time1Start,omitempty"` + // 时间段1-结束 + Time1End string `protobuf:"bytes,6,opt,name=time1End,proto3" json:"time1End,omitempty"` + // 时间段2-开始 + Time2Start string `protobuf:"bytes,7,opt,name=time2Start,proto3" json:"time2Start,omitempty"` + // 时间段2-结束 + Time2End string `protobuf:"bytes,8,opt,name=time2End,proto3" json:"time2End,omitempty"` + // 辅导员审批状态,枚举及含义:0->未审批 | 1->审批通过 | 2->拒绝 + TeacherStatus string `protobuf:"bytes,9,opt,name=teacherStatus,proto3" json:"teacherStatus,omitempty"` + // 辅导员审批备注 + TeacherRemark string `protobuf:"bytes,10,opt,name=teacherRemark,proto3" json:"teacherRemark,omitempty"` + // 辅导员审批时间 + TeacherReviewTime string `protobuf:"bytes,11,opt,name=teacherReviewTime,proto3" json:"teacherReviewTime,omitempty"` + // 学院审批状态,枚举及含义:0->未审批 | 1->审批通过 | 2->拒绝 + UnitStatus string `protobuf:"bytes,12,opt,name=unitStatus,proto3" json:"unitStatus,omitempty"` + // 学院审批备注 + UnitRemark string `protobuf:"bytes,13,opt,name=unitRemark,proto3" json:"unitRemark,omitempty"` + // 学院审批时间 + UnitReviewTime string `protobuf:"bytes,14,opt,name=unitReviewTime,proto3" json:"unitReviewTime,omitempty"` + // 撤回状态,枚举及含义:1->未撤回 | 2->已撤回 + CancelStatus string `protobuf:"bytes,15,opt,name=cancelStatus,proto3" json:"cancelStatus,omitempty"` +} + +func (x *StudentStaySchoolInfo) Reset() { + *x = StudentStaySchoolInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StudentStaySchoolInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StudentStaySchoolInfo) ProtoMessage() {} + +func (x *StudentStaySchoolInfo) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StudentStaySchoolInfo.ProtoReflect.Descriptor instead. +func (*StudentStaySchoolInfo) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{22} +} + +func (x *StudentStaySchoolInfo) GetStaffId() string { + if x != nil { + return x.StaffId + } + return "" +} + +func (x *StudentStaySchoolInfo) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *StudentStaySchoolInfo) GetReportTime() string { + if x != nil { + return x.ReportTime + } + return "" +} + +func (x *StudentStaySchoolInfo) GetReason() string { + if x != nil { + return x.Reason + } + return "" +} + +func (x *StudentStaySchoolInfo) GetTime1Start() string { + if x != nil { + return x.Time1Start + } + return "" +} + +func (x *StudentStaySchoolInfo) GetTime1End() string { + if x != nil { + return x.Time1End + } + return "" +} + +func (x *StudentStaySchoolInfo) GetTime2Start() string { + if x != nil { + return x.Time2Start + } + return "" +} + +func (x *StudentStaySchoolInfo) GetTime2End() string { + if x != nil { + return x.Time2End + } + return "" +} + +func (x *StudentStaySchoolInfo) GetTeacherStatus() string { + if x != nil { + return x.TeacherStatus + } + return "" +} + +func (x *StudentStaySchoolInfo) GetTeacherRemark() string { + if x != nil { + return x.TeacherRemark + } + return "" +} + +func (x *StudentStaySchoolInfo) GetTeacherReviewTime() string { + if x != nil { + return x.TeacherReviewTime + } + return "" +} + +func (x *StudentStaySchoolInfo) GetUnitStatus() string { + if x != nil { + return x.UnitStatus + } + return "" +} + +func (x *StudentStaySchoolInfo) GetUnitRemark() string { + if x != nil { + return x.UnitRemark + } + return "" +} + +func (x *StudentStaySchoolInfo) GetUnitReviewTime() string { + if x != nil { + return x.UnitReviewTime + } + return "" +} + +func (x *StudentStaySchoolInfo) GetCancelStatus() string { + if x != nil { + return x.CancelStatus + } + return "" +} + +type GetFreshmanBaseInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //学号 + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + //录取通知书号或者是准考证号,不同省份并不一样 + OfferId string `protobuf:"bytes,2,opt,name=offerId,proto3" json:"offerId,omitempty"` + //身份证号 + IdCardNo string `protobuf:"bytes,3,opt,name=idCardNo,proto3" json:"idCardNo,omitempty"` +} + +func (x *GetFreshmanBaseInfoRequest) Reset() { + *x = GetFreshmanBaseInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PostStudentGateAccessResponse) String() string { +func (x *GetFreshmanBaseInfoRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PostStudentGateAccessResponse) ProtoMessage() {} +func (*GetFreshmanBaseInfoRequest) ProtoMessage() {} -func (x *PostStudentGateAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] +func (x *GetFreshmanBaseInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -913,80 +1896,62 @@ func (x *PostStudentGateAccessResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PostStudentGateAccessResponse.ProtoReflect.Descriptor instead. -func (*PostStudentGateAccessResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12} +// Deprecated: Use GetFreshmanBaseInfoRequest.ProtoReflect.Descriptor instead. +func (*GetFreshmanBaseInfoRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{23} } -func (x *PostStudentGateAccessResponse) GetDone() bool { +func (x *GetFreshmanBaseInfoRequest) GetStaffId() string { if x != nil { - return x.Done + return x.StaffId } - return false + return "" } -func (x *PostStudentGateAccessResponse) GetMessage() string { +func (x *GetFreshmanBaseInfoRequest) GetOfferId() string { if x != nil { - return x.Message + return x.OfferId } return "" } -// 留校生信息查询-返回体 -type GetStudentStaySchoolInfoResponse struct { +func (x *GetFreshmanBaseInfoRequest) GetIdCardNo() string { + if x != nil { + return x.IdCardNo + } + return "" +} + +type GetFreshmanDetailRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 学工号 + //学号 StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` - // 姓名 - StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` - // 报告日期 - ReportTime string `protobuf:"bytes,3,opt,name=reportTime,proto3" json:"reportTime,omitempty"` - // 原因 - Reason string `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"` - // 时间段1-开始 - Time1Start string `protobuf:"bytes,5,opt,name=time1Start,proto3" json:"time1Start,omitempty"` - // 时间段1-结束 - Time1End string `protobuf:"bytes,6,opt,name=time1End,proto3" json:"time1End,omitempty"` - // 时间段2-开始 - Time2Start string `protobuf:"bytes,7,opt,name=time2Start,proto3" json:"time2Start,omitempty"` - // 时间段2-结束 - Time2End string `protobuf:"bytes,8,opt,name=time2End,proto3" json:"time2End,omitempty"` - // 辅导员审批状态,枚举及含义:0->未审批 | 1->审批通过 | 2->拒绝 - TeacherStatus string `protobuf:"bytes,9,opt,name=teacherStatus,proto3" json:"teacherStatus,omitempty"` - // 辅导员审批备注 - TeacherRemark string `protobuf:"bytes,10,opt,name=teacherRemark,proto3" json:"teacherRemark,omitempty"` - // 辅导员审批时间 - TeacherReviewTime string `protobuf:"bytes,11,opt,name=teacherReviewTime,proto3" json:"teacherReviewTime,omitempty"` - // 学院审批状态,枚举及含义:0->未审批 | 1->审批通过 | 2->拒绝 - UnitStatus string `protobuf:"bytes,12,opt,name=unitStatus,proto3" json:"unitStatus,omitempty"` - // 学院审批备注 - UnitRemark string `protobuf:"bytes,13,opt,name=unitRemark,proto3" json:"unitRemark,omitempty"` - // 学院审批时间 - UnitReviewTime string `protobuf:"bytes,14,opt,name=unitReviewTime,proto3" json:"unitReviewTime,omitempty"` - // 撤回状态,枚举及含义:1->未撤回 | 2->已撤回 - CancelStatus string `protobuf:"bytes,15,opt,name=cancelStatus,proto3" json:"cancelStatus,omitempty"` + //录取通知书号或者是准考证号,不同省份并不一样 + OfferId string `protobuf:"bytes,2,opt,name=offerId,proto3" json:"offerId,omitempty"` + //身份证号 + IdCardNo string `protobuf:"bytes,3,opt,name=idCardNo,proto3" json:"idCardNo,omitempty"` } -func (x *GetStudentStaySchoolInfoResponse) Reset() { - *x = GetStudentStaySchoolInfoResponse{} +func (x *GetFreshmanDetailRequest) Reset() { + *x = GetFreshmanDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStudentStaySchoolInfoResponse) String() string { +func (x *GetFreshmanDetailRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentStaySchoolInfoResponse) ProtoMessage() {} +func (*GetFreshmanDetailRequest) ProtoMessage() {} -func (x *GetStudentStaySchoolInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] +func (x *GetFreshmanDetailRequest) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -997,112 +1962,94 @@ func (x *GetStudentStaySchoolInfoResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentStaySchoolInfoResponse.ProtoReflect.Descriptor instead. -func (*GetStudentStaySchoolInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{13} +// Deprecated: Use GetFreshmanDetailRequest.ProtoReflect.Descriptor instead. +func (*GetFreshmanDetailRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{24} } -func (x *GetStudentStaySchoolInfoResponse) GetStaffId() string { +func (x *GetFreshmanDetailRequest) GetStaffId() string { if x != nil { return x.StaffId } return "" } -func (x *GetStudentStaySchoolInfoResponse) GetStaffName() string { - if x != nil { - return x.StaffName - } - return "" -} - -func (x *GetStudentStaySchoolInfoResponse) GetReportTime() string { - if x != nil { - return x.ReportTime - } - return "" -} - -func (x *GetStudentStaySchoolInfoResponse) GetReason() string { +func (x *GetFreshmanDetailRequest) GetOfferId() string { if x != nil { - return x.Reason + return x.OfferId } return "" } -func (x *GetStudentStaySchoolInfoResponse) GetTime1Start() string { +func (x *GetFreshmanDetailRequest) GetIdCardNo() string { if x != nil { - return x.Time1Start + return x.IdCardNo } return "" } -func (x *GetStudentStaySchoolInfoResponse) GetTime1End() string { - if x != nil { - return x.Time1End - } - return "" -} +type GetFreshmanRoommatesRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *GetStudentStaySchoolInfoResponse) GetTime2Start() string { - if x != nil { - return x.Time2Start - } - return "" + //学号 + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + //录取通知书号或者是准考证号,不同省份并不一样 + OfferId string `protobuf:"bytes,2,opt,name=offerId,proto3" json:"offerId,omitempty"` + //身份证号 + IdCardNo string `protobuf:"bytes,3,opt,name=idCardNo,proto3" json:"idCardNo,omitempty"` } -func (x *GetStudentStaySchoolInfoResponse) GetTime2End() string { - if x != nil { - return x.Time2End +func (x *GetFreshmanRoommatesRequest) Reset() { + *x = GetFreshmanRoommatesRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *GetStudentStaySchoolInfoResponse) GetTeacherStatus() string { - if x != nil { - return x.TeacherStatus - } - return "" +func (x *GetFreshmanRoommatesRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *GetStudentStaySchoolInfoResponse) GetTeacherRemark() string { - if x != nil { - return x.TeacherRemark - } - return "" -} +func (*GetFreshmanRoommatesRequest) ProtoMessage() {} -func (x *GetStudentStaySchoolInfoResponse) GetTeacherReviewTime() string { - if x != nil { - return x.TeacherReviewTime +func (x *GetFreshmanRoommatesRequest) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *GetStudentStaySchoolInfoResponse) GetUnitStatus() string { - if x != nil { - return x.UnitStatus - } - return "" +// Deprecated: Use GetFreshmanRoommatesRequest.ProtoReflect.Descriptor instead. +func (*GetFreshmanRoommatesRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{25} } -func (x *GetStudentStaySchoolInfoResponse) GetUnitRemark() string { +func (x *GetFreshmanRoommatesRequest) GetStaffId() string { if x != nil { - return x.UnitRemark + return x.StaffId } return "" } -func (x *GetStudentStaySchoolInfoResponse) GetUnitReviewTime() string { +func (x *GetFreshmanRoommatesRequest) GetOfferId() string { if x != nil { - return x.UnitReviewTime + return x.OfferId } return "" } -func (x *GetStudentStaySchoolInfoResponse) GetCancelStatus() string { +func (x *GetFreshmanRoommatesRequest) GetIdCardNo() string { if x != nil { - return x.CancelStatus + return x.IdCardNo } return "" } @@ -1125,7 +2072,7 @@ type FreshmanKeywordRequest struct { func (x *FreshmanKeywordRequest) Reset() { *x = FreshmanKeywordRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1138,7 +2085,7 @@ func (x *FreshmanKeywordRequest) String() string { func (*FreshmanKeywordRequest) ProtoMessage() {} func (x *FreshmanKeywordRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1151,7 +2098,7 @@ func (x *FreshmanKeywordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanKeywordRequest.ProtoReflect.Descriptor instead. func (*FreshmanKeywordRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{14} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{26} } func (x *FreshmanKeywordRequest) GetStaffId() string { @@ -1175,12 +2122,75 @@ func (x *FreshmanKeywordRequest) GetIdCardNo() string { return "" } -//新生基本信息 type GetFreshmanBaseInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *FreshmanBaseInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetFreshmanBaseInfoResponse) Reset() { + *x = GetFreshmanBaseInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFreshmanBaseInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFreshmanBaseInfoResponse) ProtoMessage() {} + +func (x *GetFreshmanBaseInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFreshmanBaseInfoResponse.ProtoReflect.Descriptor instead. +func (*GetFreshmanBaseInfoResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{27} +} + +func (x *GetFreshmanBaseInfoResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetFreshmanBaseInfoResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetFreshmanBaseInfoResponse) GetData() *FreshmanBaseInfo { + if x != nil { + return x.Data + } + return nil +} + +//新生基本信息 +type FreshmanBaseInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + //学号 StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` //姓名 @@ -1195,23 +2205,23 @@ type GetFreshmanBaseInfoResponse struct { Province string `protobuf:"bytes,6,opt,name=province,proto3" json:"province,omitempty"` } -func (x *GetFreshmanBaseInfoResponse) Reset() { - *x = GetFreshmanBaseInfoResponse{} +func (x *FreshmanBaseInfo) Reset() { + *x = FreshmanBaseInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFreshmanBaseInfoResponse) String() string { +func (x *FreshmanBaseInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFreshmanBaseInfoResponse) ProtoMessage() {} +func (*FreshmanBaseInfo) ProtoMessage() {} -func (x *GetFreshmanBaseInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] +func (x *FreshmanBaseInfo) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1222,55 +2232,118 @@ func (x *GetFreshmanBaseInfoResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetFreshmanBaseInfoResponse.ProtoReflect.Descriptor instead. -func (*GetFreshmanBaseInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{15} +// Deprecated: Use FreshmanBaseInfo.ProtoReflect.Descriptor instead. +func (*FreshmanBaseInfo) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{28} } -func (x *GetFreshmanBaseInfoResponse) GetStaffId() string { +func (x *FreshmanBaseInfo) GetStaffId() string { if x != nil { return x.StaffId } return "" } -func (x *GetFreshmanBaseInfoResponse) GetStaffName() string { +func (x *FreshmanBaseInfo) GetStaffName() string { if x != nil { return x.StaffName } return "" } -func (x *GetFreshmanBaseInfoResponse) GetOfferId() string { +func (x *FreshmanBaseInfo) GetOfferId() string { if x != nil { return x.OfferId } return "" } -func (x *GetFreshmanBaseInfoResponse) GetIdCardNo() string { +func (x *FreshmanBaseInfo) GetIdCardNo() string { if x != nil { return x.IdCardNo } return "" } -func (x *GetFreshmanBaseInfoResponse) GetOfferTime() string { +func (x *FreshmanBaseInfo) GetOfferTime() string { if x != nil { return x.OfferTime } return "" } -func (x *GetFreshmanBaseInfoResponse) GetProvince() string { +func (x *FreshmanBaseInfo) GetProvince() string { if x != nil { return x.Province } return "" } +type GetFreshmanDetailResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *FreshmanDetail `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetFreshmanDetailResponse) Reset() { + *x = GetFreshmanDetailResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFreshmanDetailResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFreshmanDetailResponse) ProtoMessage() {} + +func (x *GetFreshmanDetailResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFreshmanDetailResponse.ProtoReflect.Descriptor instead. +func (*GetFreshmanDetailResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{29} +} + +func (x *GetFreshmanDetailResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetFreshmanDetailResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetFreshmanDetailResponse) GetData() *FreshmanDetail { + if x != nil { + return x.Data + } + return nil +} + //新生详细信息 -type GetFreshmanInfoResponse struct { +type FreshmanDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1324,23 +2397,23 @@ type GetFreshmanInfoResponse struct { Station string `protobuf:"bytes,25,opt,name=station,proto3" json:"station,omitempty"` } -func (x *GetFreshmanInfoResponse) Reset() { - *x = GetFreshmanInfoResponse{} +func (x *FreshmanDetail) Reset() { + *x = FreshmanDetail{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFreshmanInfoResponse) String() string { +func (x *FreshmanDetail) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFreshmanInfoResponse) ProtoMessage() {} +func (*FreshmanDetail) ProtoMessage() {} -func (x *GetFreshmanInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] +func (x *FreshmanDetail) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1351,180 +2424,180 @@ func (x *GetFreshmanInfoResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetFreshmanInfoResponse.ProtoReflect.Descriptor instead. -func (*GetFreshmanInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{16} +// Deprecated: Use FreshmanDetail.ProtoReflect.Descriptor instead. +func (*FreshmanDetail) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{30} } -func (x *GetFreshmanInfoResponse) GetStaffId() string { +func (x *FreshmanDetail) GetStaffId() string { if x != nil { return x.StaffId } return "" } -func (x *GetFreshmanInfoResponse) GetStaffName() string { +func (x *FreshmanDetail) GetStaffName() string { if x != nil { return x.StaffName } return "" } -func (x *GetFreshmanInfoResponse) GetClassName() string { +func (x *FreshmanDetail) GetClassName() string { if x != nil { return x.ClassName } return "" } -func (x *GetFreshmanInfoResponse) GetRoomName() string { +func (x *FreshmanDetail) GetRoomName() string { if x != nil { return x.RoomName } return "" } -func (x *GetFreshmanInfoResponse) GetRegStatus() string { +func (x *FreshmanDetail) GetRegStatus() string { if x != nil { return x.RegStatus } return "" } -func (x *GetFreshmanInfoResponse) GetSchoolID() string { +func (x *FreshmanDetail) GetSchoolID() string { if x != nil { return x.SchoolID } return "" } -func (x *GetFreshmanInfoResponse) GetSchoolName() string { +func (x *FreshmanDetail) GetSchoolName() string { if x != nil { return x.SchoolName } return "" } -func (x *GetFreshmanInfoResponse) GetMajorName() string { +func (x *FreshmanDetail) GetMajorName() string { if x != nil { return x.MajorName } return "" } -func (x *GetFreshmanInfoResponse) GetCardID() string { +func (x *FreshmanDetail) GetCardID() string { if x != nil { return x.CardID } return "" } -func (x *GetFreshmanInfoResponse) GetTeacherName() string { +func (x *FreshmanDetail) GetTeacherName() string { if x != nil { return x.TeacherName } return "" } -func (x *GetFreshmanInfoResponse) GetTeacherPhone() string { +func (x *FreshmanDetail) GetTeacherPhone() string { if x != nil { return x.TeacherPhone } return "" } -func (x *GetFreshmanInfoResponse) GetAssistantName() string { +func (x *FreshmanDetail) GetAssistantName() string { if x != nil { return x.AssistantName } return "" } -func (x *GetFreshmanInfoResponse) GetAssistantPhone() string { +func (x *FreshmanDetail) GetAssistantPhone() string { if x != nil { return x.AssistantPhone } return "" } -func (x *GetFreshmanInfoResponse) GetHasPaid() string { +func (x *FreshmanDetail) GetHasPaid() string { if x != nil { return x.HasPaid } return "" } -func (x *GetFreshmanInfoResponse) GetLSTD() string { +func (x *FreshmanDetail) GetLSTD() string { if x != nil { return x.LSTD } return "" } -func (x *GetFreshmanInfoResponse) GetLSTDXY() string { +func (x *FreshmanDetail) GetLSTDXY() string { if x != nil { return x.LSTDXY } return "" } -func (x *GetFreshmanInfoResponse) GetLSTDZX() string { +func (x *FreshmanDetail) GetLSTDZX() string { if x != nil { return x.LSTDZX } return "" } -func (x *GetFreshmanInfoResponse) GetPhone() string { +func (x *FreshmanDetail) GetPhone() string { if x != nil { return x.Phone } return "" } -func (x *GetFreshmanInfoResponse) GetQq() string { +func (x *FreshmanDetail) GetQq() string { if x != nil { return x.Qq } return "" } -func (x *GetFreshmanInfoResponse) GetRoomBuilding() string { +func (x *FreshmanDetail) GetRoomBuilding() string { if x != nil { return x.RoomBuilding } return "" } -func (x *GetFreshmanInfoResponse) GetRoomRoom() string { +func (x *FreshmanDetail) GetRoomRoom() string { if x != nil { return x.RoomRoom } return "" } -func (x *GetFreshmanInfoResponse) GetRoomBed() string { +func (x *FreshmanDetail) GetRoomBed() string { if x != nil { return x.RoomBed } return "" } -func (x *GetFreshmanInfoResponse) GetComeDate() string { +func (x *FreshmanDetail) GetComeDate() string { if x != nil { return x.ComeDate } return "" } -func (x *GetFreshmanInfoResponse) GetHigh() string { +func (x *FreshmanDetail) GetHigh() string { if x != nil { return x.High } return "" } -func (x *GetFreshmanInfoResponse) GetStation() string { +func (x *FreshmanDetail) GetStation() string { if x != nil { return x.Station } @@ -1537,14 +2610,16 @@ type GetFreshmanRoommatesResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // 室友列表 - Items []*GetFreshmanRoommatesResponse_Roommate `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Data []*FreshmanRoommate `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetFreshmanRoommatesResponse) Reset() { *x = GetFreshmanRoommatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1557,7 +2632,7 @@ func (x *GetFreshmanRoommatesResponse) String() string { func (*GetFreshmanRoommatesResponse) ProtoMessage() {} func (x *GetFreshmanRoommatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1570,45 +2645,58 @@ func (x *GetFreshmanRoommatesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanRoommatesResponse.ProtoReflect.Descriptor instead. func (*GetFreshmanRoommatesResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{17} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{31} } -func (x *GetFreshmanRoommatesResponse) GetItems() []*GetFreshmanRoommatesResponse_Roommate { +func (x *GetFreshmanRoommatesResponse) GetError() uint32 { if x != nil { - return x.Items + return x.Error + } + return 0 +} + +func (x *GetFreshmanRoommatesResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetFreshmanRoommatesResponse) GetData() []*FreshmanRoommate { + if x != nil { + return x.Data } return nil } -//某年贫困详情 -type GetStudentNeedyInfoResponse_Nested struct { +type FreshmanRoommate struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - //特定学年 - SchoolYear int32 `protobuf:"varint,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` - //是否是贫困生 - NeedyStudent bool `protobuf:"varint,2,opt,name=needyStudent,proto3" json:"needyStudent,omitempty"` + //室友姓名 + StaffName string `protobuf:"bytes,1,opt,name=staffName,proto3" json:"staffName,omitempty"` + Qq string `protobuf:"bytes,2,opt,name=qq,proto3" json:"qq,omitempty"` + Phone string `protobuf:"bytes,3,opt,name=phone,proto3" json:"phone,omitempty"` } -func (x *GetStudentNeedyInfoResponse_Nested) Reset() { - *x = GetStudentNeedyInfoResponse_Nested{} +func (x *FreshmanRoommate) Reset() { + *x = FreshmanRoommate{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStudentNeedyInfoResponse_Nested) String() string { +func (x *FreshmanRoommate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentNeedyInfoResponse_Nested) ProtoMessage() {} +func (*FreshmanRoommate) ProtoMessage() {} -func (x *GetStudentNeedyInfoResponse_Nested) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] +func (x *FreshmanRoommate) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1619,62 +2707,66 @@ func (x *GetStudentNeedyInfoResponse_Nested) ProtoReflect() protoreflect.Message return mi.MessageOf(x) } -// Deprecated: Use GetStudentNeedyInfoResponse_Nested.ProtoReflect.Descriptor instead. -func (*GetStudentNeedyInfoResponse_Nested) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{3, 0} +// Deprecated: Use FreshmanRoommate.ProtoReflect.Descriptor instead. +func (*FreshmanRoommate) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{32} } -func (x *GetStudentNeedyInfoResponse_Nested) GetSchoolYear() int32 { +func (x *FreshmanRoommate) GetStaffName() string { if x != nil { - return x.SchoolYear + return x.StaffName } - return 0 + return "" } -func (x *GetStudentNeedyInfoResponse_Nested) GetNeedyStudent() bool { +func (x *FreshmanRoommate) GetQq() string { if x != nil { - return x.NeedyStudent + return x.Qq } - return false + return "" } -// 奖学金信息 -type GetStudentRewardsResponse_Nested struct { +func (x *FreshmanRoommate) GetPhone() string { + if x != nil { + return x.Phone + } + return "" +} + +type GetPersonInfoResponse_Data struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields //学工号 - StaffID string `protobuf:"bytes,1,opt,name=staffID,proto3" json:"staffID,omitempty"` + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` //姓名 StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` - //奖项名 - RewardName string `protobuf:"bytes,3,opt,name=rewardName,proto3" json:"rewardName,omitempty"` - //学年 - SchoolYear string `protobuf:"bytes,4,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` - //学期 - Semester string `protobuf:"bytes,5,opt,name=semester,proto3" json:"semester,omitempty"` - //奖项等级 - RewardLevel string `protobuf:"bytes,6,opt,name=rewardLevel,proto3" json:"rewardLevel,omitempty"` + //人员状态 + StaffState string `protobuf:"bytes,3,opt,name=staffState,proto3" json:"staffState,omitempty"` + //人员类型 + StaffType string `protobuf:"bytes,4,opt,name=staffType,proto3" json:"staffType,omitempty"` + //学院代码 + UnitCode string `protobuf:"bytes,5,opt,name=unitCode,proto3" json:"unitCode,omitempty"` } -func (x *GetStudentRewardsResponse_Nested) Reset() { - *x = GetStudentRewardsResponse_Nested{} +func (x *GetPersonInfoResponse_Data) Reset() { + *x = GetPersonInfoResponse_Data{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStudentRewardsResponse_Nested) String() string { +func (x *GetPersonInfoResponse_Data) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentRewardsResponse_Nested) ProtoMessage() {} +func (*GetPersonInfoResponse_Data) ProtoMessage() {} -func (x *GetStudentRewardsResponse_Nested) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] +func (x *GetPersonInfoResponse_Data) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1685,100 +2777,88 @@ func (x *GetStudentRewardsResponse_Nested) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentRewardsResponse_Nested.ProtoReflect.Descriptor instead. -func (*GetStudentRewardsResponse_Nested) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{8, 0} +// Deprecated: Use GetPersonInfoResponse_Data.ProtoReflect.Descriptor instead. +func (*GetPersonInfoResponse_Data) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{0, 0} } -func (x *GetStudentRewardsResponse_Nested) GetStaffID() string { +func (x *GetPersonInfoResponse_Data) GetStaffId() string { if x != nil { - return x.StaffID + return x.StaffId } return "" } -func (x *GetStudentRewardsResponse_Nested) GetStaffName() string { +func (x *GetPersonInfoResponse_Data) GetStaffName() string { if x != nil { return x.StaffName } return "" } -func (x *GetStudentRewardsResponse_Nested) GetRewardName() string { - if x != nil { - return x.RewardName - } - return "" -} - -func (x *GetStudentRewardsResponse_Nested) GetSchoolYear() string { +func (x *GetPersonInfoResponse_Data) GetStaffState() string { if x != nil { - return x.SchoolYear + return x.StaffState } return "" } -func (x *GetStudentRewardsResponse_Nested) GetSemester() string { +func (x *GetPersonInfoResponse_Data) GetStaffType() string { if x != nil { - return x.Semester + return x.StaffType } return "" } -func (x *GetStudentRewardsResponse_Nested) GetRewardLevel() string { +func (x *GetPersonInfoResponse_Data) GetUnitCode() string { if x != nil { - return x.RewardLevel + return x.UnitCode } return "" } -//选课详情 -type GetStudentSelectResponse_Nested struct { +type GetStudentInfoResponse_Data struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - //学年 - SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` - //学期 - Semester string `protobuf:"bytes,2,opt,name=semester,proto3" json:"semester,omitempty"` //学号 - StaffID string `protobuf:"bytes,3,opt,name=staffID,proto3" json:"staffID,omitempty"` - //姓名 - StaffName string `protobuf:"bytes,4,opt,name=staffName,proto3" json:"staffName,omitempty"` - //选课号 - SelectCode string `protobuf:"bytes,5,opt,name=selectCode,proto3" json:"selectCode,omitempty"` - //课程中文名 - CourseName string `protobuf:"bytes,6,opt,name=courseName,proto3" json:"courseName,omitempty"` - //课程号 - CourseCode string `protobuf:"bytes,7,opt,name=courseCode,proto3" json:"courseCode,omitempty"` - //教师工号 - TeacherID string `protobuf:"bytes,8,opt,name=teacherID,proto3" json:"teacherID,omitempty"` - //教师姓名 + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + //学生姓名 + StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` + //学生班级号 + ClassId string `protobuf:"bytes,3,opt,name=classId,proto3" json:"classId,omitempty"` + //学生学院编号 + UnitId string `protobuf:"bytes,4,opt,name=unitId,proto3" json:"unitId,omitempty"` + //学生学院名称 + UnitName string `protobuf:"bytes,5,opt,name=unitName,proto3" json:"unitName,omitempty"` + //学生专业编号 + MajorId string `protobuf:"bytes,6,opt,name=majorId,proto3" json:"majorId,omitempty"` + //学生专业名称 + MajorName string `protobuf:"bytes,7,opt,name=majorName,proto3" json:"majorName,omitempty"` + //学生辅导员工号 + TeacherId string `protobuf:"bytes,8,opt,name=teacherId,proto3" json:"teacherId,omitempty"` + //学生辅导员姓名 TeacherName string `protobuf:"bytes,9,opt,name=teacherName,proto3" json:"teacherName,omitempty"` - //上课时间中文描述 - ClassTime string `protobuf:"bytes,10,opt,name=classTime,proto3" json:"classTime,omitempty"` - //教室 - ClassRoom string `protobuf:"bytes,11,opt,name=classRoom,proto3" json:"classRoom,omitempty"` } -func (x *GetStudentSelectResponse_Nested) Reset() { - *x = GetStudentSelectResponse_Nested{} +func (x *GetStudentInfoResponse_Data) Reset() { + *x = GetStudentInfoResponse_Data{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStudentSelectResponse_Nested) String() string { +func (x *GetStudentInfoResponse_Data) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentSelectResponse_Nested) ProtoMessage() {} +func (*GetStudentInfoResponse_Data) ProtoMessage() {} -func (x *GetStudentSelectResponse_Nested) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] +func (x *GetStudentInfoResponse_Data) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1789,143 +2869,103 @@ func (x *GetStudentSelectResponse_Nested) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentSelectResponse_Nested.ProtoReflect.Descriptor instead. -func (*GetStudentSelectResponse_Nested) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9, 0} +// Deprecated: Use GetStudentInfoResponse_Data.ProtoReflect.Descriptor instead. +func (*GetStudentInfoResponse_Data) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{5, 0} } -func (x *GetStudentSelectResponse_Nested) GetSchoolYear() string { +func (x *GetStudentInfoResponse_Data) GetStaffId() string { if x != nil { - return x.SchoolYear - } - return "" -} - -func (x *GetStudentSelectResponse_Nested) GetSemester() string { - if x != nil { - return x.Semester - } - return "" -} - -func (x *GetStudentSelectResponse_Nested) GetStaffID() string { - if x != nil { - return x.StaffID + return x.StaffId } return "" } -func (x *GetStudentSelectResponse_Nested) GetStaffName() string { +func (x *GetStudentInfoResponse_Data) GetStaffName() string { if x != nil { return x.StaffName } return "" } -func (x *GetStudentSelectResponse_Nested) GetSelectCode() string { +func (x *GetStudentInfoResponse_Data) GetClassId() string { if x != nil { - return x.SelectCode + return x.ClassId } return "" } -func (x *GetStudentSelectResponse_Nested) GetCourseName() string { +func (x *GetStudentInfoResponse_Data) GetUnitId() string { if x != nil { - return x.CourseName + return x.UnitId } return "" } -func (x *GetStudentSelectResponse_Nested) GetCourseCode() string { +func (x *GetStudentInfoResponse_Data) GetUnitName() string { if x != nil { - return x.CourseCode + return x.UnitName } return "" } -func (x *GetStudentSelectResponse_Nested) GetTeacherID() string { +func (x *GetStudentInfoResponse_Data) GetMajorId() string { if x != nil { - return x.TeacherID + return x.MajorId } return "" } -func (x *GetStudentSelectResponse_Nested) GetTeacherName() string { +func (x *GetStudentInfoResponse_Data) GetMajorName() string { if x != nil { - return x.TeacherName + return x.MajorName } return "" } -func (x *GetStudentSelectResponse_Nested) GetClassTime() string { +func (x *GetStudentInfoResponse_Data) GetTeacherId() string { if x != nil { - return x.ClassTime + return x.TeacherId } return "" } -func (x *GetStudentSelectResponse_Nested) GetClassRoom() string { +func (x *GetStudentInfoResponse_Data) GetTeacherName() string { if x != nil { - return x.ClassRoom + return x.TeacherName } return "" } -// 成绩详情 -type GetStudentGradeResponse_Nested struct { +//某年贫困详情 +type StudentNeedyInfo_Nested struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - //学年 - SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` - //学期 - Semester string `protobuf:"bytes,2,opt,name=semester,proto3" json:"semester,omitempty"` - //选课号 - SelectCode string `protobuf:"bytes,3,opt,name=selectCode,proto3" json:"selectCode,omitempty"` - //最后分数 - Score string `protobuf:"bytes,4,opt,name=score,proto3" json:"score,omitempty"` - //平时分 - ScoreDaily string `protobuf:"bytes,5,opt,name=scoreDaily,proto3" json:"scoreDaily,omitempty"` - //期中分数 - ScoreMidTerm string `protobuf:"bytes,6,opt,name=scoreMidTerm,proto3" json:"scoreMidTerm,omitempty"` - //期末分数 - ScoreFinal string `protobuf:"bytes,7,opt,name=scoreFinal,proto3" json:"scoreFinal,omitempty"` - //补考分数 - ScoreSubstitute string `protobuf:"bytes,8,opt,name=scoreSubstitute,proto3" json:"scoreSubstitute,omitempty"` - //实验分数 - ScorePractice string `protobuf:"bytes,9,opt,name=scorePractice,proto3" json:"scorePractice,omitempty"` - //课程号 - CourseCode string `protobuf:"bytes,10,opt,name=courseCode,proto3" json:"courseCode,omitempty"` - //课程名 - Course string `protobuf:"bytes,11,opt,name=course,proto3" json:"course,omitempty"` - //学号 - StaffId string `protobuf:"bytes,12,opt,name=staffId,proto3" json:"staffId,omitempty"` - //姓名 - StaffName string `protobuf:"bytes,13,opt,name=staffName,proto3" json:"staffName,omitempty"` - //学分 - Credit string `protobuf:"bytes,14,opt,name=credit,proto3" json:"credit,omitempty"` - //GPA - GPA string `protobuf:"bytes,15,opt,name=GPA,proto3" json:"GPA,omitempty"` + //特定学年 + SchoolYear int32 `protobuf:"varint,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + //是否是贫困生 + NeedyStudent bool `protobuf:"varint,2,opt,name=needyStudent,proto3" json:"needyStudent,omitempty"` } -func (x *GetStudentGradeResponse_Nested) Reset() { - *x = GetStudentGradeResponse_Nested{} +func (x *StudentNeedyInfo_Nested) Reset() { + *x = StudentNeedyInfo_Nested{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStudentGradeResponse_Nested) String() string { +func (x *StudentNeedyInfo_Nested) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentGradeResponse_Nested) ProtoMessage() {} +func (*StudentNeedyInfo_Nested) ProtoMessage() {} -func (x *GetStudentGradeResponse_Nested) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] +func (x *StudentNeedyInfo_Nested) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1936,144 +2976,51 @@ func (x *GetStudentGradeResponse_Nested) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentGradeResponse_Nested.ProtoReflect.Descriptor instead. -func (*GetStudentGradeResponse_Nested) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10, 0} +// Deprecated: Use StudentNeedyInfo_Nested.ProtoReflect.Descriptor instead. +func (*StudentNeedyInfo_Nested) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{7, 0} } -func (x *GetStudentGradeResponse_Nested) GetSchoolYear() string { +func (x *StudentNeedyInfo_Nested) GetSchoolYear() int32 { if x != nil { return x.SchoolYear } - return "" -} - -func (x *GetStudentGradeResponse_Nested) GetSemester() string { - if x != nil { - return x.Semester - } - return "" -} - -func (x *GetStudentGradeResponse_Nested) GetSelectCode() string { - if x != nil { - return x.SelectCode - } - return "" -} - -func (x *GetStudentGradeResponse_Nested) GetScore() string { - if x != nil { - return x.Score - } - return "" -} - -func (x *GetStudentGradeResponse_Nested) GetScoreDaily() string { - if x != nil { - return x.ScoreDaily - } - return "" -} - -func (x *GetStudentGradeResponse_Nested) GetScoreMidTerm() string { - if x != nil { - return x.ScoreMidTerm - } - return "" -} - -func (x *GetStudentGradeResponse_Nested) GetScoreFinal() string { - if x != nil { - return x.ScoreFinal - } - return "" -} - -func (x *GetStudentGradeResponse_Nested) GetScoreSubstitute() string { - if x != nil { - return x.ScoreSubstitute - } - return "" -} - -func (x *GetStudentGradeResponse_Nested) GetScorePractice() string { - if x != nil { - return x.ScorePractice - } - return "" -} - -func (x *GetStudentGradeResponse_Nested) GetCourseCode() string { - if x != nil { - return x.CourseCode - } - return "" -} - -func (x *GetStudentGradeResponse_Nested) GetCourse() string { - if x != nil { - return x.Course - } - return "" -} - -func (x *GetStudentGradeResponse_Nested) GetStaffId() string { - if x != nil { - return x.StaffId - } - return "" -} - -func (x *GetStudentGradeResponse_Nested) GetStaffName() string { - if x != nil { - return x.StaffName - } - return "" -} - -func (x *GetStudentGradeResponse_Nested) GetCredit() string { - if x != nil { - return x.Credit - } - return "" + return 0 } -func (x *GetStudentGradeResponse_Nested) GetGPA() string { +func (x *StudentNeedyInfo_Nested) GetNeedyStudent() bool { if x != nil { - return x.GPA + return x.NeedyStudent } - return "" + return false } -type GetFreshmanRoommatesResponse_Roommate struct { +type PostStudentGateAccessResponse_Data struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - //室友姓名 - StaffName string `protobuf:"bytes,1,opt,name=staffName,proto3" json:"staffName,omitempty"` - Qq string `protobuf:"bytes,2,opt,name=qq,proto3" json:"qq,omitempty"` - Phone string `protobuf:"bytes,3,opt,name=phone,proto3" json:"phone,omitempty"` + Done bool `protobuf:"varint,1,opt,name=done,proto3" json:"done,omitempty"` //是否完成 + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` //完成信息 } -func (x *GetFreshmanRoommatesResponse_Roommate) Reset() { - *x = GetFreshmanRoommatesResponse_Roommate{} +func (x *PostStudentGateAccessResponse_Data) Reset() { + *x = PostStudentGateAccessResponse_Data{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetFreshmanRoommatesResponse_Roommate) String() string { +func (x *PostStudentGateAccessResponse_Data) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetFreshmanRoommatesResponse_Roommate) ProtoMessage() {} +func (*PostStudentGateAccessResponse_Data) ProtoMessage() {} -func (x *GetFreshmanRoommatesResponse_Roommate) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] +func (x *PostStudentGateAccessResponse_Data) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2084,28 +3031,21 @@ func (x *GetFreshmanRoommatesResponse_Roommate) ProtoReflect() protoreflect.Mess return mi.MessageOf(x) } -// Deprecated: Use GetFreshmanRoommatesResponse_Roommate.ProtoReflect.Descriptor instead. -func (*GetFreshmanRoommatesResponse_Roommate) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{17, 0} -} - -func (x *GetFreshmanRoommatesResponse_Roommate) GetStaffName() string { - if x != nil { - return x.StaffName - } - return "" +// Deprecated: Use PostStudentGateAccessResponse_Data.ProtoReflect.Descriptor instead. +func (*PostStudentGateAccessResponse_Data) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{20, 0} } -func (x *GetFreshmanRoommatesResponse_Roommate) GetQq() string { +func (x *PostStudentGateAccessResponse_Data) GetDone() bool { if x != nil { - return x.Qq + return x.Done } - return "" + return false } -func (x *GetFreshmanRoommatesResponse_Roommate) GetPhone() string { +func (x *PostStudentGateAccessResponse_Data) GetMessage() string { if x != nil { - return x.Phone + return x.Message } return "" } @@ -2123,339 +3063,445 @@ var file_campusapis_staff_v1_campus_proto_rawDesc = []byte{ 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xa9, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, - 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x66, 0x66, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x22, 0x4d, 0x0a, 0x0f, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9f, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x43, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, + 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x98, 0x01, 0x0a, 0x04, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x74, 0x61, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, + 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, + 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x56, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x5f, + 0x0a, 0x21, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, + 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, - 0x96, 0x02, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, - 0x75, 0x6e, 0x69, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x6e, - 0x69, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, - 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, - 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, - 0x68, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, - 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, - 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xa8, 0x02, 0x0a, 0x1b, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, - 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x4d, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, - 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x22, 0x66, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x66, 0x0a, 0x1a, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, - 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, - 0x64, 0x61, 0x79, 0x22, 0x72, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x79, 0x22, 0x6e, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4d, 0x0a, 0x09, 0x62, 0x69, 0x72, 0x74, - 0x68, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, - 0x68, 0x64, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x09, 0x62, 0x69, - 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x22, 0xa9, 0x02, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x1a, 0xbe, 0x01, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, - 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x22, 0xc1, 0x03, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x4a, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x34, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, - 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0xd8, 0x02, 0x0a, - 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, - 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, - 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x22, 0xaf, 0x04, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x49, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0xc8, - 0x03, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, + 0x54, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, + 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, - 0x28, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, - 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, - 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0xda, 0x01, 0x0a, 0x1c, 0x50, 0x6f, - 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, - 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x4d, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x90, 0x04, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x4d, 0x0a, 0x0f, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x22, 0x8d, 0x03, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x44, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x84, 0x02, + 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x74, + 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x74, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, + 0x61, 0x6a, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x92, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, + 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c, + 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, + 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x22, 0x66, 0x0a, 0x1a, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, + 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, + 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, + 0x13, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, 0x72, + 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, + 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, + 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, + 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, + 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, + 0x61, 0x79, 0x22, 0x67, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x22, 0x7b, 0x0a, 0x19, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc5, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, - 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x74, 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, - 0x6d, 0x65, 0x31, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, - 0x6d, 0x65, 0x31, 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, - 0x32, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, - 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, - 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, - 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x2c, - 0x0a, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, - 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, - 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, - 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x68, 0x0a, 0x16, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, - 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, - 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, - 0x4e, 0x6f, 0x22, 0xc5, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, - 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, - 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, - 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, 0xd7, 0x05, 0x0a, 0x17, 0x47, - 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x67, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, - 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x65, - 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x24, - 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x73, - 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, - 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4c, 0x53, 0x54, 0x44, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4c, 0x53, 0x54, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, - 0x54, 0x44, 0x58, 0x59, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, - 0x58, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, - 0x6f, 0x6e, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x71, 0x71, - 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, - 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x69, 0x6c, - 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x6f, 0x6f, 0x6d, - 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x6f, 0x6f, 0x6d, - 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, - 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, - 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x18, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xc0, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x50, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, - 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, - 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4e, 0x0a, 0x08, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, - 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x71, - 0x71, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0xd6, 0x11, 0x0a, 0x0d, 0x43, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, - 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x20, + 0x0a, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x22, 0x8d, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, + 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0xe8, 0x02, 0x0a, 0x16, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, + 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x22, 0x78, 0x0a, 0x17, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x35, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x03, 0x0a, 0x0c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, + 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0xda, 0x01, 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, 0x61, 0x72, + 0x67, 0x65, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x4b, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, + 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x34, 0x0a, 0x04, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x22, 0x8a, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3e, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x04, + 0x0a, 0x15, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x31, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, + 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x31, + 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x31, + 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, 0x6e, 0x64, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, 0x6e, 0x64, 0x12, + 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, + 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, + 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x2c, 0x0a, 0x11, 0x74, + 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, + 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, + 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, + 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, + 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, + 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x75, 0x6e, 0x69, + 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, + 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, + 0x64, 0x4e, 0x6f, 0x22, 0x6a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, + 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, + 0x6d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, + 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x68, + 0x0a, 0x16, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, + 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, + 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xba, 0x01, 0x0a, 0x10, + 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x12, 0x1c, + 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x46, + 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x05, 0x0a, 0x0e, 0x46, 0x72, 0x65, 0x73, 0x68, + 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, + 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, + 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, + 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, + 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4c, 0x53, 0x54, + 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4c, 0x53, 0x54, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, + 0x53, 0x54, 0x44, 0x58, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x18, + 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x12, 0x14, 0x0a, + 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, + 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x71, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, + 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, + 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, + 0x6f, 0x6f, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, + 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x12, 0x1a, 0x0a, + 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, + 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x46, + 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, + 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x56, 0x0a, 0x10, 0x46, + 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x71, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, 0x14, 0x0a, + 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, + 0x6f, 0x6e, 0x65, 0x32, 0xee, 0x11, 0x0a, 0x0d, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, + 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x27, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x70, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x86, 0x01, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, + 0x66, 0x6f, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, + 0x6e, 0x66, 0x6f, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, - 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, - 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0e, - 0x12, 0x0c, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x86, - 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, - 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x12, 0x8e, 0x01, 0x0a, - 0x12, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, - 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x5a, 0x0f, 0x12, 0x0d, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x9a, 0x01, - 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, - 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, - 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, + 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x16, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x33, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x1a, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x5a, 0x13, 0x12, 0x11, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, @@ -2471,104 +3517,105 @@ var file_campusapis_staff_v1_campus_proto_rawDesc = []byte{ 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, - 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xac, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x24, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x5a, 0x18, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x62, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0xaa, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, - 0x74, 0x5a, 0x18, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x62, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x12, 0xa6, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x24, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, - 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x39, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5a, 0x17, 0x12, 0x0e, 0x2f, - 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x62, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x80, 0x01, 0x0a, 0x15, - 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5a, 0x11, 0x12, + 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, + 0x67, 0x72, 0x61, 0x64, 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, - 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, - 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x37, 0x12, 0x1d, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, - 0x79, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, - 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xa7, 0x01, 0x0a, 0x13, 0x47, 0x65, - 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, - 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x18, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x1d, + 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x5a, 0x16, 0x12, + 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, + 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, + 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, + 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, - 0x61, 0x73, 0x65, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, - 0x6d, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, - 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x61, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, + 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, + 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xb6, 0x01, 0x0a, 0x14, + 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, + 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, - 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, - 0x6e, 0x66, 0x6f, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, - 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xb8, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x2b, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x4b, 0x65, 0x79, - 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, - 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, - 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, - 0x61, 0x74, 0x65, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, - 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, - 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, - 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, - 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x66, 0x66, - 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5a, 0x14, + 0x12, 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, + 0x6d, 0x61, 0x74, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x42, 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, + 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, + 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, + 0x53, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x53, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0xe2, 0x02, + 0x1f, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, + 0x66, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2583,75 +3630,97 @@ func file_campusapis_staff_v1_campus_proto_rawDescGZIP() []byte { return file_campusapis_staff_v1_campus_proto_rawDescData } -var file_campusapis_staff_v1_campus_proto_msgTypes = make([]protoimpl.MessageInfo, 23) +var file_campusapis_staff_v1_campus_proto_msgTypes = make([]protoimpl.MessageInfo, 37) var file_campusapis_staff_v1_campus_proto_goTypes = []interface{}{ - (*GetPersonInfoResponse)(nil), // 0: campusapis.staff.v1.GetPersonInfoResponse - (*SemesterRequest)(nil), // 1: campusapis.staff.v1.SemesterRequest - (*GetStudentInfoResponse)(nil), // 2: campusapis.staff.v1.GetStudentInfoResponse - (*GetStudentNeedyInfoResponse)(nil), // 3: campusapis.staff.v1.GetStudentNeedyInfoResponse - (*GetStudentDormInfoResponse)(nil), // 4: campusapis.staff.v1.GetStudentDormInfoResponse - (*GetStudentBirthdayResponse)(nil), // 5: campusapis.staff.v1.GetStudentBirthdayResponse - (*GetStudentBirthdaysInRequest)(nil), // 6: campusapis.staff.v1.GetStudentBirthdaysInRequest - (*GetStudentBirthdaysInResponse)(nil), // 7: campusapis.staff.v1.GetStudentBirthdaysInResponse - (*GetStudentRewardsResponse)(nil), // 8: campusapis.staff.v1.GetStudentRewardsResponse - (*GetStudentSelectResponse)(nil), // 9: campusapis.staff.v1.GetStudentSelectResponse - (*GetStudentGradeResponse)(nil), // 10: campusapis.staff.v1.GetStudentGradeResponse - (*PostStudentGateAccessRequest)(nil), // 11: campusapis.staff.v1.PostStudentGateAccessRequest - (*PostStudentGateAccessResponse)(nil), // 12: campusapis.staff.v1.PostStudentGateAccessResponse - (*GetStudentStaySchoolInfoResponse)(nil), // 13: campusapis.staff.v1.GetStudentStaySchoolInfoResponse - (*FreshmanKeywordRequest)(nil), // 14: campusapis.staff.v1.FreshmanKeywordRequest - (*GetFreshmanBaseInfoResponse)(nil), // 15: campusapis.staff.v1.GetFreshmanBaseInfoResponse - (*GetFreshmanInfoResponse)(nil), // 16: campusapis.staff.v1.GetFreshmanInfoResponse - (*GetFreshmanRoommatesResponse)(nil), // 17: campusapis.staff.v1.GetFreshmanRoommatesResponse - (*GetStudentNeedyInfoResponse_Nested)(nil), // 18: campusapis.staff.v1.GetStudentNeedyInfoResponse.Nested - (*GetStudentRewardsResponse_Nested)(nil), // 19: campusapis.staff.v1.GetStudentRewardsResponse.Nested - (*GetStudentSelectResponse_Nested)(nil), // 20: campusapis.staff.v1.GetStudentSelectResponse.Nested - (*GetStudentGradeResponse_Nested)(nil), // 21: campusapis.staff.v1.GetStudentGradeResponse.Nested - (*GetFreshmanRoommatesResponse_Roommate)(nil), // 22: campusapis.staff.v1.GetFreshmanRoommatesResponse.Roommate - (staff.Type)(0), // 23: campusapis.staff.Type - (*emptypb.Empty)(nil), // 24: google.protobuf.Empty + (*GetPersonInfoResponse)(nil), // 0: campusapis.staff.v1.GetPersonInfoResponse + (*GetStudentRewardsRequest)(nil), // 1: campusapis.staff.v1.GetStudentRewardsRequest + (*GetStudentCourseSelectionsRequest)(nil), // 2: campusapis.staff.v1.GetStudentCourseSelectionsRequest + (*GetStudentGradeRequest)(nil), // 3: campusapis.staff.v1.GetStudentGradeRequest + (*SemesterRequest)(nil), // 4: campusapis.staff.v1.SemesterRequest + (*GetStudentInfoResponse)(nil), // 5: campusapis.staff.v1.GetStudentInfoResponse + (*GetStudentNeedyInfoResponse)(nil), // 6: campusapis.staff.v1.GetStudentNeedyInfoResponse + (*StudentNeedyInfo)(nil), // 7: campusapis.staff.v1.StudentNeedyInfo + (*GetStudentDormInfoResponse)(nil), // 8: campusapis.staff.v1.GetStudentDormInfoResponse + (*GetStudentBirthdayInfoResponse)(nil), // 9: campusapis.staff.v1.GetStudentBirthdayInfoResponse + (*StudentBirthdayInfo)(nil), // 10: campusapis.staff.v1.StudentBirthdayInfo + (*GetStudentBirthdaysInRequest)(nil), // 11: campusapis.staff.v1.GetStudentBirthdaysInRequest + (*GetStudentBirthdaysInResponse)(nil), // 12: campusapis.staff.v1.GetStudentBirthdaysInResponse + (*GetStudentRewardsResponse)(nil), // 13: campusapis.staff.v1.GetStudentRewardsResponse + (*StudentReward)(nil), // 14: campusapis.staff.v1.StudentReward + (*GetStudentCourseSelectionsResponse)(nil), // 15: campusapis.staff.v1.GetStudentCourseSelectionsResponse + (*StudentCourseSelection)(nil), // 16: campusapis.staff.v1.StudentCourseSelection + (*GetStudentGradeResponse)(nil), // 17: campusapis.staff.v1.GetStudentGradeResponse + (*StudentGrade)(nil), // 18: campusapis.staff.v1.StudentGrade + (*PostStudentGateAccessRequest)(nil), // 19: campusapis.staff.v1.PostStudentGateAccessRequest + (*PostStudentGateAccessResponse)(nil), // 20: campusapis.staff.v1.PostStudentGateAccessResponse + (*GetStudentStaySchoolInfoResponse)(nil), // 21: campusapis.staff.v1.GetStudentStaySchoolInfoResponse + (*StudentStaySchoolInfo)(nil), // 22: campusapis.staff.v1.StudentStaySchoolInfo + (*GetFreshmanBaseInfoRequest)(nil), // 23: campusapis.staff.v1.GetFreshmanBaseInfoRequest + (*GetFreshmanDetailRequest)(nil), // 24: campusapis.staff.v1.GetFreshmanDetailRequest + (*GetFreshmanRoommatesRequest)(nil), // 25: campusapis.staff.v1.GetFreshmanRoommatesRequest + (*FreshmanKeywordRequest)(nil), // 26: campusapis.staff.v1.FreshmanKeywordRequest + (*GetFreshmanBaseInfoResponse)(nil), // 27: campusapis.staff.v1.GetFreshmanBaseInfoResponse + (*FreshmanBaseInfo)(nil), // 28: campusapis.staff.v1.FreshmanBaseInfo + (*GetFreshmanDetailResponse)(nil), // 29: campusapis.staff.v1.GetFreshmanDetailResponse + (*FreshmanDetail)(nil), // 30: campusapis.staff.v1.FreshmanDetail + (*GetFreshmanRoommatesResponse)(nil), // 31: campusapis.staff.v1.GetFreshmanRoommatesResponse + (*FreshmanRoommate)(nil), // 32: campusapis.staff.v1.FreshmanRoommate + (*GetPersonInfoResponse_Data)(nil), // 33: campusapis.staff.v1.GetPersonInfoResponse.Data + (*GetStudentInfoResponse_Data)(nil), // 34: campusapis.staff.v1.GetStudentInfoResponse.Data + (*StudentNeedyInfo_Nested)(nil), // 35: campusapis.staff.v1.StudentNeedyInfo.Nested + (*PostStudentGateAccessResponse_Data)(nil), // 36: campusapis.staff.v1.PostStudentGateAccessResponse.Data + (staff.Type)(0), // 37: campusapis.staff.Type + (*emptypb.Empty)(nil), // 38: google.protobuf.Empty } var file_campusapis_staff_v1_campus_proto_depIdxs = []int32{ - 18, // 0: campusapis.staff.v1.GetStudentNeedyInfoResponse.items:type_name -> campusapis.staff.v1.GetStudentNeedyInfoResponse.Nested - 23, // 1: campusapis.staff.v1.GetStudentBirthdaysInRequest.type:type_name -> campusapis.staff.Type - 5, // 2: campusapis.staff.v1.GetStudentBirthdaysInResponse.birthdays:type_name -> campusapis.staff.v1.GetStudentBirthdayResponse - 19, // 3: campusapis.staff.v1.GetStudentRewardsResponse.items:type_name -> campusapis.staff.v1.GetStudentRewardsResponse.Nested - 20, // 4: campusapis.staff.v1.GetStudentSelectResponse.items:type_name -> campusapis.staff.v1.GetStudentSelectResponse.Nested - 21, // 5: campusapis.staff.v1.GetStudentGradeResponse.items:type_name -> campusapis.staff.v1.GetStudentGradeResponse.Nested - 22, // 6: campusapis.staff.v1.GetFreshmanRoommatesResponse.items:type_name -> campusapis.staff.v1.GetFreshmanRoommatesResponse.Roommate - 24, // 7: campusapis.staff.v1.CampusService.GetPersonInfo:input_type -> google.protobuf.Empty - 24, // 8: campusapis.staff.v1.CampusService.GetStudentInfo:input_type -> google.protobuf.Empty - 24, // 9: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:input_type -> google.protobuf.Empty - 24, // 10: campusapis.staff.v1.CampusService.GetStudentDormInfo:input_type -> google.protobuf.Empty - 24, // 11: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:input_type -> google.protobuf.Empty - 6, // 12: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:input_type -> campusapis.staff.v1.GetStudentBirthdaysInRequest - 1, // 13: campusapis.staff.v1.CampusService.GetStudentRewards:input_type -> campusapis.staff.v1.SemesterRequest - 1, // 14: campusapis.staff.v1.CampusService.GetStudentSelect:input_type -> campusapis.staff.v1.SemesterRequest - 1, // 15: campusapis.staff.v1.CampusService.GetStudentGrade:input_type -> campusapis.staff.v1.SemesterRequest - 11, // 16: campusapis.staff.v1.CampusService.PostStudentGateAccess:input_type -> campusapis.staff.v1.PostStudentGateAccessRequest - 24, // 17: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:input_type -> google.protobuf.Empty - 14, // 18: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:input_type -> campusapis.staff.v1.FreshmanKeywordRequest - 14, // 19: campusapis.staff.v1.CampusService.GetFreshmanInfo:input_type -> campusapis.staff.v1.FreshmanKeywordRequest - 14, // 20: campusapis.staff.v1.CampusService.GetFreshmanRoommates:input_type -> campusapis.staff.v1.FreshmanKeywordRequest - 0, // 21: campusapis.staff.v1.CampusService.GetPersonInfo:output_type -> campusapis.staff.v1.GetPersonInfoResponse - 2, // 22: campusapis.staff.v1.CampusService.GetStudentInfo:output_type -> campusapis.staff.v1.GetStudentInfoResponse - 3, // 23: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:output_type -> campusapis.staff.v1.GetStudentNeedyInfoResponse - 4, // 24: campusapis.staff.v1.CampusService.GetStudentDormInfo:output_type -> campusapis.staff.v1.GetStudentDormInfoResponse - 5, // 25: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:output_type -> campusapis.staff.v1.GetStudentBirthdayResponse - 7, // 26: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:output_type -> campusapis.staff.v1.GetStudentBirthdaysInResponse - 8, // 27: campusapis.staff.v1.CampusService.GetStudentRewards:output_type -> campusapis.staff.v1.GetStudentRewardsResponse - 9, // 28: campusapis.staff.v1.CampusService.GetStudentSelect:output_type -> campusapis.staff.v1.GetStudentSelectResponse - 10, // 29: campusapis.staff.v1.CampusService.GetStudentGrade:output_type -> campusapis.staff.v1.GetStudentGradeResponse - 12, // 30: campusapis.staff.v1.CampusService.PostStudentGateAccess:output_type -> campusapis.staff.v1.PostStudentGateAccessResponse - 13, // 31: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:output_type -> campusapis.staff.v1.GetStudentStaySchoolInfoResponse - 15, // 32: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:output_type -> campusapis.staff.v1.GetFreshmanBaseInfoResponse - 16, // 33: campusapis.staff.v1.CampusService.GetFreshmanInfo:output_type -> campusapis.staff.v1.GetFreshmanInfoResponse - 17, // 34: campusapis.staff.v1.CampusService.GetFreshmanRoommates:output_type -> campusapis.staff.v1.GetFreshmanRoommatesResponse - 21, // [21:35] is the sub-list for method output_type - 7, // [7:21] is the sub-list for method input_type - 7, // [7:7] is the sub-list for extension type_name - 7, // [7:7] is the sub-list for extension extendee - 0, // [0:7] is the sub-list for field type_name + 33, // 0: campusapis.staff.v1.GetPersonInfoResponse.data:type_name -> campusapis.staff.v1.GetPersonInfoResponse.Data + 34, // 1: campusapis.staff.v1.GetStudentInfoResponse.data:type_name -> campusapis.staff.v1.GetStudentInfoResponse.Data + 7, // 2: campusapis.staff.v1.GetStudentNeedyInfoResponse.data:type_name -> campusapis.staff.v1.StudentNeedyInfo + 35, // 3: campusapis.staff.v1.StudentNeedyInfo.items:type_name -> campusapis.staff.v1.StudentNeedyInfo.Nested + 10, // 4: campusapis.staff.v1.GetStudentBirthdayInfoResponse.data:type_name -> campusapis.staff.v1.StudentBirthdayInfo + 37, // 5: campusapis.staff.v1.GetStudentBirthdaysInRequest.type:type_name -> campusapis.staff.Type + 10, // 6: campusapis.staff.v1.GetStudentBirthdaysInResponse.birthdays:type_name -> campusapis.staff.v1.StudentBirthdayInfo + 14, // 7: campusapis.staff.v1.GetStudentRewardsResponse.data:type_name -> campusapis.staff.v1.StudentReward + 16, // 8: campusapis.staff.v1.GetStudentCourseSelectionsResponse.data:type_name -> campusapis.staff.v1.StudentCourseSelection + 18, // 9: campusapis.staff.v1.GetStudentGradeResponse.data:type_name -> campusapis.staff.v1.StudentGrade + 36, // 10: campusapis.staff.v1.PostStudentGateAccessResponse.data:type_name -> campusapis.staff.v1.PostStudentGateAccessResponse.Data + 22, // 11: campusapis.staff.v1.GetStudentStaySchoolInfoResponse.data:type_name -> campusapis.staff.v1.StudentStaySchoolInfo + 28, // 12: campusapis.staff.v1.GetFreshmanBaseInfoResponse.data:type_name -> campusapis.staff.v1.FreshmanBaseInfo + 30, // 13: campusapis.staff.v1.GetFreshmanDetailResponse.data:type_name -> campusapis.staff.v1.FreshmanDetail + 32, // 14: campusapis.staff.v1.GetFreshmanRoommatesResponse.data:type_name -> campusapis.staff.v1.FreshmanRoommate + 38, // 15: campusapis.staff.v1.CampusService.GetPersonInfo:input_type -> google.protobuf.Empty + 38, // 16: campusapis.staff.v1.CampusService.GetStudentInfo:input_type -> google.protobuf.Empty + 38, // 17: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:input_type -> google.protobuf.Empty + 38, // 18: campusapis.staff.v1.CampusService.GetStudentDormInfo:input_type -> google.protobuf.Empty + 38, // 19: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:input_type -> google.protobuf.Empty + 11, // 20: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:input_type -> campusapis.staff.v1.GetStudentBirthdaysInRequest + 1, // 21: campusapis.staff.v1.CampusService.GetStudentRewards:input_type -> campusapis.staff.v1.GetStudentRewardsRequest + 2, // 22: campusapis.staff.v1.CampusService.GetStudentCourseSelections:input_type -> campusapis.staff.v1.GetStudentCourseSelectionsRequest + 3, // 23: campusapis.staff.v1.CampusService.GetStudentGrade:input_type -> campusapis.staff.v1.GetStudentGradeRequest + 19, // 24: campusapis.staff.v1.CampusService.PostStudentGateAccess:input_type -> campusapis.staff.v1.PostStudentGateAccessRequest + 38, // 25: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:input_type -> google.protobuf.Empty + 23, // 26: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:input_type -> campusapis.staff.v1.GetFreshmanBaseInfoRequest + 24, // 27: campusapis.staff.v1.CampusService.GetFreshmanDetail:input_type -> campusapis.staff.v1.GetFreshmanDetailRequest + 25, // 28: campusapis.staff.v1.CampusService.GetFreshmanRoommates:input_type -> campusapis.staff.v1.GetFreshmanRoommatesRequest + 0, // 29: campusapis.staff.v1.CampusService.GetPersonInfo:output_type -> campusapis.staff.v1.GetPersonInfoResponse + 5, // 30: campusapis.staff.v1.CampusService.GetStudentInfo:output_type -> campusapis.staff.v1.GetStudentInfoResponse + 6, // 31: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:output_type -> campusapis.staff.v1.GetStudentNeedyInfoResponse + 8, // 32: campusapis.staff.v1.CampusService.GetStudentDormInfo:output_type -> campusapis.staff.v1.GetStudentDormInfoResponse + 9, // 33: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:output_type -> campusapis.staff.v1.GetStudentBirthdayInfoResponse + 12, // 34: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:output_type -> campusapis.staff.v1.GetStudentBirthdaysInResponse + 13, // 35: campusapis.staff.v1.CampusService.GetStudentRewards:output_type -> campusapis.staff.v1.GetStudentRewardsResponse + 15, // 36: campusapis.staff.v1.CampusService.GetStudentCourseSelections:output_type -> campusapis.staff.v1.GetStudentCourseSelectionsResponse + 17, // 37: campusapis.staff.v1.CampusService.GetStudentGrade:output_type -> campusapis.staff.v1.GetStudentGradeResponse + 20, // 38: campusapis.staff.v1.CampusService.PostStudentGateAccess:output_type -> campusapis.staff.v1.PostStudentGateAccessResponse + 21, // 39: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:output_type -> campusapis.staff.v1.GetStudentStaySchoolInfoResponse + 27, // 40: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:output_type -> campusapis.staff.v1.GetFreshmanBaseInfoResponse + 29, // 41: campusapis.staff.v1.CampusService.GetFreshmanDetail:output_type -> campusapis.staff.v1.GetFreshmanDetailResponse + 31, // 42: campusapis.staff.v1.CampusService.GetFreshmanRoommates:output_type -> campusapis.staff.v1.GetFreshmanRoommatesResponse + 29, // [29:43] is the sub-list for method output_type + 15, // [15:29] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name } func init() { file_campusapis_staff_v1_campus_proto_init() } @@ -2673,7 +3742,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SemesterRequest); i { + switch v := v.(*GetStudentRewardsRequest); i { case 0: return &v.state case 1: @@ -2685,7 +3754,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentInfoResponse); i { + switch v := v.(*GetStudentCourseSelectionsRequest); i { case 0: return &v.state case 1: @@ -2697,7 +3766,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentNeedyInfoResponse); i { + switch v := v.(*GetStudentGradeRequest); i { case 0: return &v.state case 1: @@ -2709,7 +3778,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentDormInfoResponse); i { + switch v := v.(*SemesterRequest); i { case 0: return &v.state case 1: @@ -2721,7 +3790,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdayResponse); i { + switch v := v.(*GetStudentInfoResponse); i { case 0: return &v.state case 1: @@ -2733,7 +3802,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdaysInRequest); i { + switch v := v.(*GetStudentNeedyInfoResponse); i { case 0: return &v.state case 1: @@ -2745,7 +3814,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdaysInResponse); i { + switch v := v.(*StudentNeedyInfo); i { case 0: return &v.state case 1: @@ -2757,7 +3826,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentRewardsResponse); i { + switch v := v.(*GetStudentDormInfoResponse); i { case 0: return &v.state case 1: @@ -2769,7 +3838,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentSelectResponse); i { + switch v := v.(*GetStudentBirthdayInfoResponse); i { case 0: return &v.state case 1: @@ -2781,7 +3850,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentGradeResponse); i { + switch v := v.(*StudentBirthdayInfo); i { case 0: return &v.state case 1: @@ -2793,7 +3862,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostStudentGateAccessRequest); i { + switch v := v.(*GetStudentBirthdaysInRequest); i { case 0: return &v.state case 1: @@ -2805,7 +3874,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostStudentGateAccessResponse); i { + switch v := v.(*GetStudentBirthdaysInResponse); i { case 0: return &v.state case 1: @@ -2817,7 +3886,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentStaySchoolInfoResponse); i { + switch v := v.(*GetStudentRewardsResponse); i { case 0: return &v.state case 1: @@ -2829,7 +3898,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanKeywordRequest); i { + switch v := v.(*StudentReward); i { case 0: return &v.state case 1: @@ -2841,7 +3910,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanBaseInfoResponse); i { + switch v := v.(*GetStudentCourseSelectionsResponse); i { case 0: return &v.state case 1: @@ -2853,7 +3922,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanInfoResponse); i { + switch v := v.(*StudentCourseSelection); i { case 0: return &v.state case 1: @@ -2865,7 +3934,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanRoommatesResponse); i { + switch v := v.(*GetStudentGradeResponse); i { case 0: return &v.state case 1: @@ -2877,7 +3946,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentNeedyInfoResponse_Nested); i { + switch v := v.(*StudentGrade); i { case 0: return &v.state case 1: @@ -2889,7 +3958,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentRewardsResponse_Nested); i { + switch v := v.(*PostStudentGateAccessRequest); i { case 0: return &v.state case 1: @@ -2901,7 +3970,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentSelectResponse_Nested); i { + switch v := v.(*PostStudentGateAccessResponse); i { case 0: return &v.state case 1: @@ -2913,7 +3982,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentGradeResponse_Nested); i { + switch v := v.(*GetStudentStaySchoolInfoResponse); i { case 0: return &v.state case 1: @@ -2925,7 +3994,175 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanRoommatesResponse_Roommate); i { + switch v := v.(*StudentStaySchoolInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFreshmanBaseInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFreshmanDetailRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFreshmanRoommatesRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FreshmanKeywordRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFreshmanBaseInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FreshmanBaseInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFreshmanDetailResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FreshmanDetail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFreshmanRoommatesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FreshmanRoommate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetPersonInfoResponse_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetStudentInfoResponse_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StudentNeedyInfo_Nested); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PostStudentGateAccessResponse_Data); i { case 0: return &v.state case 1: @@ -2943,7 +4180,7 @@ func file_campusapis_staff_v1_campus_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_campusapis_staff_v1_campus_proto_rawDesc, NumEnums: 0, - NumMessages: 23, + NumMessages: 37, NumExtensions: 0, NumServices: 1, }, diff --git a/campusapis/staff/v1/campus.pb.gw.go b/campusapis/staff/v1/campus.pb.gw.go index 454cae4..34fedd6 100644 --- a/campusapis/staff/v1/campus.pb.gw.go +++ b/campusapis/staff/v1/campus.pb.gw.go @@ -289,7 +289,7 @@ var ( ) func request_CampusService_GetStudentRewards_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SemesterRequest + var protoReq GetStudentRewardsRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -305,7 +305,7 @@ func request_CampusService_GetStudentRewards_0(ctx context.Context, marshaler ru } func local_request_CampusService_GetStudentRewards_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SemesterRequest + var protoReq GetStudentRewardsRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -325,7 +325,7 @@ var ( ) func request_CampusService_GetStudentRewards_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SemesterRequest + var protoReq GetStudentRewardsRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -341,7 +341,7 @@ func request_CampusService_GetStudentRewards_1(ctx context.Context, marshaler ru } func local_request_CampusService_GetStudentRewards_1(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SemesterRequest + var protoReq GetStudentRewardsRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -357,73 +357,73 @@ func local_request_CampusService_GetStudentRewards_1(ctx context.Context, marsha } var ( - filter_CampusService_GetStudentSelect_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + filter_CampusService_GetStudentCourseSelections_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) -func request_CampusService_GetStudentSelect_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SemesterRequest +func request_CampusService_GetStudentCourseSelections_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStudentCourseSelectionsRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetStudentSelect_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetStudentCourseSelections_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetStudentSelect(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetStudentCourseSelections(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_CampusService_GetStudentSelect_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SemesterRequest +func local_request_CampusService_GetStudentCourseSelections_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStudentCourseSelectionsRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetStudentSelect_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetStudentCourseSelections_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetStudentSelect(ctx, &protoReq) + msg, err := server.GetStudentCourseSelections(ctx, &protoReq) return msg, metadata, err } var ( - filter_CampusService_GetStudentSelect_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + filter_CampusService_GetStudentCourseSelections_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) -func request_CampusService_GetStudentSelect_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SemesterRequest +func request_CampusService_GetStudentCourseSelections_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStudentCourseSelectionsRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetStudentSelect_1); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetStudentCourseSelections_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetStudentSelect(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetStudentCourseSelections(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_CampusService_GetStudentSelect_1(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SemesterRequest +func local_request_CampusService_GetStudentCourseSelections_1(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStudentCourseSelectionsRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetStudentSelect_1); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetStudentCourseSelections_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetStudentSelect(ctx, &protoReq) + msg, err := server.GetStudentCourseSelections(ctx, &protoReq) return msg, metadata, err } @@ -433,7 +433,7 @@ var ( ) func request_CampusService_GetStudentGrade_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SemesterRequest + var protoReq GetStudentGradeRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -449,7 +449,7 @@ func request_CampusService_GetStudentGrade_0(ctx context.Context, marshaler runt } func local_request_CampusService_GetStudentGrade_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SemesterRequest + var protoReq GetStudentGradeRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -469,7 +469,7 @@ var ( ) func request_CampusService_GetStudentGrade_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SemesterRequest + var protoReq GetStudentGradeRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -485,7 +485,7 @@ func request_CampusService_GetStudentGrade_1(ctx context.Context, marshaler runt } func local_request_CampusService_GetStudentGrade_1(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq SemesterRequest + var protoReq GetStudentGradeRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -575,7 +575,7 @@ var ( ) func request_CampusService_GetFreshmanBaseInfo_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FreshmanKeywordRequest + var protoReq GetFreshmanBaseInfoRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -591,7 +591,7 @@ func request_CampusService_GetFreshmanBaseInfo_0(ctx context.Context, marshaler } func local_request_CampusService_GetFreshmanBaseInfo_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FreshmanKeywordRequest + var protoReq GetFreshmanBaseInfoRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -611,7 +611,7 @@ var ( ) func request_CampusService_GetFreshmanBaseInfo_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FreshmanKeywordRequest + var protoReq GetFreshmanBaseInfoRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -627,7 +627,7 @@ func request_CampusService_GetFreshmanBaseInfo_1(ctx context.Context, marshaler } func local_request_CampusService_GetFreshmanBaseInfo_1(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FreshmanKeywordRequest + var protoReq GetFreshmanBaseInfoRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -643,73 +643,73 @@ func local_request_CampusService_GetFreshmanBaseInfo_1(ctx context.Context, mars } var ( - filter_CampusService_GetFreshmanInfo_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + filter_CampusService_GetFreshmanDetail_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) -func request_CampusService_GetFreshmanInfo_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FreshmanKeywordRequest +func request_CampusService_GetFreshmanDetail_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFreshmanDetailRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetFreshmanInfo_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetFreshmanDetail_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetFreshmanInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetFreshmanDetail(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_CampusService_GetFreshmanInfo_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FreshmanKeywordRequest +func local_request_CampusService_GetFreshmanDetail_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFreshmanDetailRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetFreshmanInfo_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetFreshmanDetail_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetFreshmanInfo(ctx, &protoReq) + msg, err := server.GetFreshmanDetail(ctx, &protoReq) return msg, metadata, err } var ( - filter_CampusService_GetFreshmanInfo_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + filter_CampusService_GetFreshmanDetail_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) -func request_CampusService_GetFreshmanInfo_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FreshmanKeywordRequest +func request_CampusService_GetFreshmanDetail_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFreshmanDetailRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetFreshmanInfo_1); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetFreshmanDetail_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetFreshmanInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetFreshmanDetail(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_CampusService_GetFreshmanInfo_1(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FreshmanKeywordRequest +func local_request_CampusService_GetFreshmanDetail_1(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFreshmanDetailRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetFreshmanInfo_1); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetFreshmanDetail_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetFreshmanInfo(ctx, &protoReq) + msg, err := server.GetFreshmanDetail(ctx, &protoReq) return msg, metadata, err } @@ -719,7 +719,7 @@ var ( ) func request_CampusService_GetFreshmanRoommates_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FreshmanKeywordRequest + var protoReq GetFreshmanRoommatesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -735,7 +735,7 @@ func request_CampusService_GetFreshmanRoommates_0(ctx context.Context, marshaler } func local_request_CampusService_GetFreshmanRoommates_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FreshmanKeywordRequest + var protoReq GetFreshmanRoommatesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -755,7 +755,7 @@ var ( ) func request_CampusService_GetFreshmanRoommates_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FreshmanKeywordRequest + var protoReq GetFreshmanRoommatesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -771,7 +771,7 @@ func request_CampusService_GetFreshmanRoommates_1(ctx context.Context, marshaler } func local_request_CampusService_GetFreshmanRoommates_1(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FreshmanKeywordRequest + var protoReq GetFreshmanRoommatesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -1100,7 +1100,7 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetStudentRewards_0(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetStudentRewards_0{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentRewards_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1124,23 +1124,23 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetStudentRewards_1(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetStudentRewards_1{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentRewards_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_CampusService_GetStudentSelect_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_CampusService_GetStudentCourseSelections_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentSelect", runtime.WithHTTPPathPattern("/staff/v1/student/select")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", runtime.WithHTTPPathPattern("/staff/v1/student/select")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentSelect_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentCourseSelections_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1148,23 +1148,23 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetStudentSelect_0(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetStudentSelect_0{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentCourseSelections_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_CampusService_GetStudentSelect_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_CampusService_GetStudentCourseSelections_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentSelect", runtime.WithHTTPPathPattern("/student/select")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", runtime.WithHTTPPathPattern("/student/select")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentSelect_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentCourseSelections_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1172,7 +1172,7 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetStudentSelect_1(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetStudentSelect_1{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentCourseSelections_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1196,7 +1196,7 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetStudentGrade_0(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetStudentGrade_0{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentGrade_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1220,7 +1220,7 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetStudentGrade_1(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetStudentGrade_1{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentGrade_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1344,19 +1344,19 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM }) - mux.Handle("GET", pattern_CampusService_GetFreshmanInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_CampusService_GetFreshmanDetail_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanInfo", runtime.WithHTTPPathPattern("/staff/v1/freshman/info")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanDetail", runtime.WithHTTPPathPattern("/staff/v1/freshman/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanInfo_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanDetail_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1364,23 +1364,23 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetFreshmanInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_CampusService_GetFreshmanDetail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_CampusService_GetFreshmanInfo_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_CampusService_GetFreshmanDetail_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanInfo", runtime.WithHTTPPathPattern("/freshman/info")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanDetail", runtime.WithHTTPPathPattern("/freshman/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanInfo_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanDetail_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1388,7 +1388,7 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetFreshmanInfo_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_CampusService_GetFreshmanDetail_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1412,7 +1412,7 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetFreshmanRoommates_0(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetFreshmanRoommates_0{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetFreshmanRoommates_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1750,7 +1750,7 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetStudentRewards_0(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetStudentRewards_0{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentRewards_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1771,49 +1771,49 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetStudentRewards_1(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetStudentRewards_1{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentRewards_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_CampusService_GetStudentSelect_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_CampusService_GetStudentCourseSelections_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentSelect", runtime.WithHTTPPathPattern("/staff/v1/student/select")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", runtime.WithHTTPPathPattern("/staff/v1/student/select")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentSelect_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentCourseSelections_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_CampusService_GetStudentSelect_0(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetStudentSelect_0{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentCourseSelections_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_CampusService_GetStudentSelect_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_CampusService_GetStudentCourseSelections_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentSelect", runtime.WithHTTPPathPattern("/student/select")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", runtime.WithHTTPPathPattern("/student/select")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentSelect_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentCourseSelections_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_CampusService_GetStudentSelect_1(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetStudentSelect_1{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentCourseSelections_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1834,7 +1834,7 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetStudentGrade_0(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetStudentGrade_0{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentGrade_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1855,7 +1855,7 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetStudentGrade_1(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetStudentGrade_1{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentGrade_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1964,45 +1964,45 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM }) - mux.Handle("GET", pattern_CampusService_GetFreshmanInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_CampusService_GetFreshmanDetail_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanInfo", runtime.WithHTTPPathPattern("/staff/v1/freshman/info")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanDetail", runtime.WithHTTPPathPattern("/staff/v1/freshman/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanInfo_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanDetail_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_CampusService_GetFreshmanInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_CampusService_GetFreshmanDetail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("GET", pattern_CampusService_GetFreshmanInfo_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_CampusService_GetFreshmanDetail_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanInfo", runtime.WithHTTPPathPattern("/freshman/info")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanDetail", runtime.WithHTTPPathPattern("/freshman/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanInfo_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanDetail_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_CampusService_GetFreshmanInfo_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_CampusService_GetFreshmanDetail_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2023,7 +2023,7 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_GetFreshmanRoommates_0(ctx, mux, outboundMarshaler, w, req, response_CampusService_GetFreshmanRoommates_0{resp}, mux.GetForwardResponseOptions()...) + forward_CampusService_GetFreshmanRoommates_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -2051,69 +2051,6 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM return nil } -type response_CampusService_GetStudentRewards_0 struct { - proto.Message -} - -func (m response_CampusService_GetStudentRewards_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetStudentRewardsResponse) - return response.Items -} - -type response_CampusService_GetStudentRewards_1 struct { - proto.Message -} - -func (m response_CampusService_GetStudentRewards_1) XXX_ResponseBody() interface{} { - response := m.Message.(*GetStudentRewardsResponse) - return response.Items -} - -type response_CampusService_GetStudentSelect_0 struct { - proto.Message -} - -func (m response_CampusService_GetStudentSelect_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetStudentSelectResponse) - return response.Items -} - -type response_CampusService_GetStudentSelect_1 struct { - proto.Message -} - -func (m response_CampusService_GetStudentSelect_1) XXX_ResponseBody() interface{} { - response := m.Message.(*GetStudentSelectResponse) - return response.Items -} - -type response_CampusService_GetStudentGrade_0 struct { - proto.Message -} - -func (m response_CampusService_GetStudentGrade_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetStudentGradeResponse) - return response.Items -} - -type response_CampusService_GetStudentGrade_1 struct { - proto.Message -} - -func (m response_CampusService_GetStudentGrade_1) XXX_ResponseBody() interface{} { - response := m.Message.(*GetStudentGradeResponse) - return response.Items -} - -type response_CampusService_GetFreshmanRoommates_0 struct { - proto.Message -} - -func (m response_CampusService_GetFreshmanRoommates_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetFreshmanRoommatesResponse) - return response.Items -} - var ( pattern_CampusService_GetPersonInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "person", "info"}, "")) @@ -2143,9 +2080,9 @@ var ( pattern_CampusService_GetStudentRewards_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "reward"}, "")) - pattern_CampusService_GetStudentSelect_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "select"}, "")) + pattern_CampusService_GetStudentCourseSelections_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "select"}, "")) - pattern_CampusService_GetStudentSelect_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "select"}, "")) + pattern_CampusService_GetStudentCourseSelections_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "select"}, "")) pattern_CampusService_GetStudentGrade_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "grade"}, "")) @@ -2161,9 +2098,9 @@ var ( pattern_CampusService_GetFreshmanBaseInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "base"}, "")) - pattern_CampusService_GetFreshmanInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "info"}, "")) + pattern_CampusService_GetFreshmanDetail_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "info"}, "")) - pattern_CampusService_GetFreshmanInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "info"}, "")) + pattern_CampusService_GetFreshmanDetail_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "info"}, "")) pattern_CampusService_GetFreshmanRoommates_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "roommate"}, "")) @@ -2199,9 +2136,9 @@ var ( forward_CampusService_GetStudentRewards_1 = runtime.ForwardResponseMessage - forward_CampusService_GetStudentSelect_0 = runtime.ForwardResponseMessage + forward_CampusService_GetStudentCourseSelections_0 = runtime.ForwardResponseMessage - forward_CampusService_GetStudentSelect_1 = runtime.ForwardResponseMessage + forward_CampusService_GetStudentCourseSelections_1 = runtime.ForwardResponseMessage forward_CampusService_GetStudentGrade_0 = runtime.ForwardResponseMessage @@ -2217,9 +2154,9 @@ var ( forward_CampusService_GetFreshmanBaseInfo_1 = runtime.ForwardResponseMessage - forward_CampusService_GetFreshmanInfo_0 = runtime.ForwardResponseMessage + forward_CampusService_GetFreshmanDetail_0 = runtime.ForwardResponseMessage - forward_CampusService_GetFreshmanInfo_1 = runtime.ForwardResponseMessage + forward_CampusService_GetFreshmanDetail_1 = runtime.ForwardResponseMessage forward_CampusService_GetFreshmanRoommates_0 = runtime.ForwardResponseMessage diff --git a/campusapis/staff/v1/campus.proto b/campusapis/staff/v1/campus.proto index 90621c2..a874b83 100644 --- a/campusapis/staff/v1/campus.proto +++ b/campusapis/staff/v1/campus.proto @@ -51,7 +51,7 @@ service CampusService { }; } //获取学生生日信息 - rpc GetStudentBirthdayInfo(google.protobuf.Empty) returns (GetStudentBirthdayResponse) { + rpc GetStudentBirthdayInfo(google.protobuf.Empty) returns (GetStudentBirthdayInfoResponse) { option (google.api.http) = { get: "/staff/v1/student/birthday" additional_bindings { @@ -69,35 +69,29 @@ service CampusService { }; } //获取学生奖学金信息 - rpc GetStudentRewards(SemesterRequest) returns (GetStudentRewardsResponse) { + rpc GetStudentRewards(GetStudentRewardsRequest) returns (GetStudentRewardsResponse) { option (google.api.http) = { get: "/staff/v1/student/reward" - response_body: "items" additional_bindings { get: "/student/reward" - response_body: "items" } }; } //获取学生选课信息 - rpc GetStudentSelect(SemesterRequest) returns (GetStudentSelectResponse) { + rpc GetStudentCourseSelections(GetStudentCourseSelectionsRequest) returns (GetStudentCourseSelectionsResponse) { option (google.api.http) = { get: "/staff/v1/student/select" - response_body: "items" additional_bindings { get: "/student/select" - response_body: "items" } }; } //获取学生成绩信息 - rpc GetStudentGrade(SemesterRequest) returns (GetStudentGradeResponse) { + rpc GetStudentGrade(GetStudentGradeRequest) returns (GetStudentGradeResponse) { option (google.api.http) = { get: "/staff/v1/student/grade" - response_body: "items" additional_bindings { get: "/student/grade" - response_body: "items" } }; } @@ -117,7 +111,7 @@ service CampusService { //下方为新生服务 //获取新生基本信息 - rpc GetFreshmanBaseInfo(FreshmanKeywordRequest) returns (GetFreshmanBaseInfoResponse) { + rpc GetFreshmanBaseInfo(GetFreshmanBaseInfoRequest) returns (GetFreshmanBaseInfoResponse) { option (google.api.http) = { get: "/staff/v1/freshman/base" additional_bindings { @@ -125,8 +119,9 @@ service CampusService { } }; } + //获取新生详细信息 - rpc GetFreshmanInfo(FreshmanKeywordRequest) returns (GetFreshmanInfoResponse) { + rpc GetFreshmanDetail(GetFreshmanDetailRequest) returns (GetFreshmanDetailResponse) { option (google.api.http) = { get: "/staff/v1/freshman/info" additional_bindings { @@ -134,11 +129,11 @@ service CampusService { } }; } + //获取新生宿舍信息 - rpc GetFreshmanRoommates(FreshmanKeywordRequest) returns (GetFreshmanRoommatesResponse) { + rpc GetFreshmanRoommates(GetFreshmanRoommatesRequest) returns (GetFreshmanRoommatesResponse) { option (google.api.http) = { get: "/staff/v1/freshman/roommate" - response_body: "items" additional_bindings { get: "/freshman/roommate" } @@ -148,16 +143,42 @@ service CampusService { //查询人员信息返回体 message GetPersonInfoResponse { - //学工号 - string staffId = 1; - //姓名 - string staffName = 2; - //人员状态 - string staffState = 3; - //人员类型 - string staffType = 4; - //学院代码 - string unitCode = 5; + uint32 error = 1; + string msg = 2; + Data data = 3; + message Data { + //学工号 + string staffId = 1; + //姓名 + string staffName = 2; + //人员状态 + string staffState = 3; + //人员类型 + string staffType = 4; + //学院代码 + string unitCode = 5; + } +} + +message GetStudentRewardsRequest { + //学年,只支持一种格式,例:2021-2022学年,应传 2021 + string schoolYear = 1; + //学期,枚举:第一学期 | 第二学期 + string semester = 2; +} + +message GetStudentCourseSelectionsRequest { + //学年,只支持一种格式,例:2021-2022学年,应传 2021 + string schoolYear = 1; + //学期,枚举:第一学期 | 第二学期 + string semester = 2; +} + +message GetStudentGradeRequest { + //学年,只支持一种格式,例:2021-2022学年,应传 2021 + string schoolYear = 1; + //学期,枚举:第一学期 | 第二学期 + string semester = 2; } //学期查询关键字 @@ -170,28 +191,40 @@ message SemesterRequest { // GetStudentInfoResponse 查询学生信息返回体 message GetStudentInfoResponse { - //学号 - string staffId = 1; - //学生姓名 - string staffName = 2; - //学生班级号 - string classId = 3; - //学生学院编号 - string unitId = 4; - //学生学院名称 - string unitName = 5; - //学生专业编号 - string majorId = 6; - //学生专业名称 - string majorName = 7; - //学生辅导员工号 - string teacherId = 8; - //学生辅导员姓名 - string teacherName = 9; + uint32 error = 1; + string msg = 2; + Data data = 3; + message Data { + //学号 + string staffId = 1; + //学生姓名 + string staffName = 2; + //学生班级号 + string classId = 3; + //学生学院编号 + string unitId = 4; + //学生学院名称 + string unitName = 5; + //学生专业编号 + string majorId = 6; + //学生专业名称 + string majorName = 7; + //学生辅导员工号 + string teacherId = 8; + //学生辅导员姓名 + string teacherName = 9; + } } //查询贫困生信息返回体 message GetStudentNeedyInfoResponse { + uint32 error = 1; + string msg = 2; + StudentNeedyInfo data = 3; +} + +//贫困生信息 +message StudentNeedyInfo { //学工号 string staffId = 1; //姓名 @@ -200,6 +233,9 @@ message GetStudentNeedyInfoResponse { int32 sex = 3; //是否贫困生 bool needyStudent = 4; + //每学年贫困详情 + repeated Nested items = 5; + //某年贫困详情 message Nested { //特定学年 @@ -207,11 +243,9 @@ message GetStudentNeedyInfoResponse { //是否是贫困生 bool needyStudent = 2; } - //每学年贫困详情 - repeated Nested items = 5; } -// GetStudentDormInfoResponse 查询学生寝室信息返回体 +// 查询学生寝室信息返回体 message GetStudentDormInfoResponse { //学工号 string staffId = 1; @@ -221,8 +255,15 @@ message GetStudentDormInfoResponse { string room = 3; } -// GetStudentBirthdayResponse 学生生日查询返回体 -message GetStudentBirthdayResponse { +// GetStudentBirthdayInfoResponse 学生生日查询返回体 +message GetStudentBirthdayInfoResponse { + uint32 error = 1; + string msg = 2; + StudentBirthdayInfo data = 3; +} + +//学生生日信息 +message StudentBirthdayInfo { //学工号 string staffId = 1; //姓名 @@ -244,98 +285,107 @@ message GetStudentBirthdaysInRequest { // GetStudentBirthdaysInResponse 查询某天生日所有人员-返回体 message GetStudentBirthdaysInResponse { // 生日详情列表 - repeated GetStudentBirthdayResponse birthdays = 1; + repeated StudentBirthdayInfo birthdays = 1; } // GetStudentRewardsResponse 奖学金查询返回体 message GetStudentRewardsResponse { - // 奖学金信息 - message Nested { - //学工号 - string staffID = 1; - //姓名 - string staffName = 2; - //奖项名 - string rewardName = 3; - //学年 - string schoolYear = 4; - //学期 - string semester = 5; - //奖项等级 - string rewardLevel = 6; - } + uint32 error = 1; + string msg = 2; // 奖学金列表 - repeated Nested items = 1; + repeated StudentReward data = 3; } -// GetStudentSelectResponse 学生选课查询返回体 -message GetStudentSelectResponse { - //选课详情 - message Nested { - //学年 - string schoolYear = 1; - //学期 - string semester = 2; - //学号 - string staffID = 3; - //姓名 - string staffName = 4; - //选课号 - string selectCode = 5; - //课程中文名 - string courseName = 6; - //课程号 - string courseCode = 7; - //教师工号 - string teacherID = 8; - //教师姓名 - string teacherName = 9; - //上课时间中文描述 - string classTime = 10; - //教室 - string classRoom = 11; - } +// 奖学金信息 +message StudentReward { + //学工号 + string staffID = 1; + //姓名 + string staffName = 2; + //奖项名 + string rewardName = 3; + //学年 + string schoolYear = 4; + //学期 + string semester = 5; + //奖项等级 + string rewardLevel = 6; +} + +// 学生选课查询返回体 +message GetStudentCourseSelectionsResponse { + uint32 error = 1; + string msg = 2; //详情列表 - repeated Nested items = 1; + repeated StudentCourseSelection data = 3; } -// GetStudentGradeResponse 查询学生成绩返回体 +//选课详情 +message StudentCourseSelection { + //学年 + string schoolYear = 1; + //学期 + string semester = 2; + //学号 + string staffID = 3; + //姓名 + string staffName = 4; + //选课号 + string selectCode = 5; + //课程中文名 + string courseName = 6; + //课程号 + string courseCode = 7; + //教师工号 + string teacherID = 8; + //教师姓名 + string teacherName = 9; + //上课时间中文描述 + string classTime = 10; + //教室 + string classRoom = 11; +} + +// 查询学生成绩返回体 message GetStudentGradeResponse { - // 成绩详情 - message Nested { - //学年 - string schoolYear = 1; - //学期 - string semester = 2; - //选课号 - string selectCode = 3; - //最后分数 - string score = 4; - //平时分 - string scoreDaily = 5; - //期中分数 - string scoreMidTerm = 6; - //期末分数 - string scoreFinal = 7; - //补考分数 - string scoreSubstitute = 8; - //实验分数 - string scorePractice = 9; - //课程号 - string courseCode = 10; - //课程名 - string course = 11; - //学号 - string staffId = 12; - //姓名 - string staffName = 13; - //学分 - string credit = 14; - //GPA - string GPA = 15; - } + uint32 error = 1; + string msg = 2; // 成绩详情列表 - repeated Nested items = 1; + repeated StudentGrade data = 3; +} + +// 成绩详情 +message StudentGrade { + //学年 + string schoolYear = 1; + //学期 + string semester = 2; + //选课号 + string selectCode = 3; + //最后分数 + string score = 4; + //平时分 + string scoreDaily = 5; + //期中分数 + string scoreMidTerm = 6; + //期末分数 + string scoreFinal = 7; + //补考分数 + string scoreSubstitute = 8; + //实验分数 + string scorePractice = 9; + //课程号 + string courseCode = 10; + //课程名 + string course = 11; + //学号 + string staffId = 12; + //姓名 + string staffName = 13; + //学分 + string credit = 14; + //GPA + string GPA = 15; } // 推送学生门禁通行信息-请求关键字 @@ -361,12 +411,25 @@ message PostStudentGateAccessRequest { // PostStudentGateAccessResponse 推送学生门禁通行信息 message PostStudentGateAccessResponse { - bool done = 1; //是否完成 - string message = 2; //完成信息 + uint32 error = 1; + string msg = 2; + Data data = 3; + + message Data { + bool done = 1; //是否完成 + string message = 2; //完成信息 + } } // 留校生信息查询-返回体 -message GetStudentStaySchoolInfoResponse { +message GetStudentStaySchoolInfoResponse { + uint32 error = 1; + string msg = 2; + StudentStaySchoolInfo data = 3; +} + +// 留校生信息 +message StudentStaySchoolInfo { // 学工号 string staffId = 1; // 姓名 @@ -399,6 +462,33 @@ message GetStudentStaySchoolInfoResponse { string cancelStatus = 15; } +message GetFreshmanBaseInfoRequest { + //学号 + string staffId = 1; + //录取通知书号或者是准考证号,不同省份并不一样 + string offerId = 2; + //身份证号 + string idCardNo = 3; +} + +message GetFreshmanDetailRequest { + //学号 + string staffId = 1; + //录取通知书号或者是准考证号,不同省份并不一样 + string offerId = 2; + //身份证号 + string idCardNo = 3; +} + +message GetFreshmanRoommatesRequest { + //学号 + string staffId = 1; + //录取通知书号或者是准考证号,不同省份并不一样 + string offerId = 2; + //身份证号 + string idCardNo = 3; +} + //新生三要素请求,依次判断(学号)、(录取通知书或准考证号)、(身份证号),要求其中最少两项不为空 //有鉴权时接受鉴权内学号,忽略请求参数 message FreshmanKeywordRequest { @@ -410,8 +500,14 @@ message FreshmanKeywordRequest { string idCardNo = 3; } -//新生基本信息 message GetFreshmanBaseInfoResponse { + uint32 error = 1; + string msg = 2; + FreshmanBaseInfo data = 3; +} + +//新生基本信息 +message FreshmanBaseInfo { //学号 string staffId = 1; //姓名 @@ -426,8 +522,14 @@ message GetFreshmanBaseInfoResponse { string province = 6; } +message GetFreshmanDetailResponse { + uint32 error = 1; + string msg = 2; + FreshmanDetail data = 3; +} + //新生详细信息 -message GetFreshmanInfoResponse { +message FreshmanDetail { //学号 string staffId = 1; //姓名 @@ -479,12 +581,15 @@ message GetFreshmanInfoResponse { //新生室友查询 message GetFreshmanRoommatesResponse { - message Roommate { - //室友姓名 - string staffName = 1; - string qq = 2; - string phone = 3; - } + uint32 error = 1; + string msg = 2; // 室友列表 - repeated Roommate items = 1; + repeated FreshmanRoommate data = 3; } + +message FreshmanRoommate { + //室友姓名 + string staffName = 1; + string qq = 2; + string phone = 3; +} \ No newline at end of file diff --git a/campusapis/staff/v1/campus_grpc.pb.go b/campusapis/staff/v1/campus_grpc.pb.go index 98f4c06..c060156 100644 --- a/campusapis/staff/v1/campus_grpc.pb.go +++ b/campusapis/staff/v1/campus_grpc.pb.go @@ -32,25 +32,25 @@ type CampusServiceClient interface { //获取学生宿舍信息 GetStudentDormInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetStudentDormInfoResponse, error) //获取学生生日信息 - GetStudentBirthdayInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetStudentBirthdayResponse, error) + GetStudentBirthdayInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetStudentBirthdayInfoResponse, error) //获取生日为指定日期的学生列表 GetStudentBirthdaysIn(ctx context.Context, in *GetStudentBirthdaysInRequest, opts ...grpc.CallOption) (*GetStudentBirthdaysInResponse, error) //获取学生奖学金信息 - GetStudentRewards(ctx context.Context, in *SemesterRequest, opts ...grpc.CallOption) (*GetStudentRewardsResponse, error) + GetStudentRewards(ctx context.Context, in *GetStudentRewardsRequest, opts ...grpc.CallOption) (*GetStudentRewardsResponse, error) //获取学生选课信息 - GetStudentSelect(ctx context.Context, in *SemesterRequest, opts ...grpc.CallOption) (*GetStudentSelectResponse, error) + GetStudentCourseSelections(ctx context.Context, in *GetStudentCourseSelectionsRequest, opts ...grpc.CallOption) (*GetStudentCourseSelectionsResponse, error) //获取学生成绩信息 - GetStudentGrade(ctx context.Context, in *SemesterRequest, opts ...grpc.CallOption) (*GetStudentGradeResponse, error) + GetStudentGrade(ctx context.Context, in *GetStudentGradeRequest, opts ...grpc.CallOption) (*GetStudentGradeResponse, error) //推送学生门禁通行信息 PostStudentGateAccess(ctx context.Context, in *PostStudentGateAccessRequest, opts ...grpc.CallOption) (*PostStudentGateAccessResponse, error) //获取学生留校信息 GetStudentStaySchoolInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetStudentStaySchoolInfoResponse, error) //获取新生基本信息 - GetFreshmanBaseInfo(ctx context.Context, in *FreshmanKeywordRequest, opts ...grpc.CallOption) (*GetFreshmanBaseInfoResponse, error) + GetFreshmanBaseInfo(ctx context.Context, in *GetFreshmanBaseInfoRequest, opts ...grpc.CallOption) (*GetFreshmanBaseInfoResponse, error) //获取新生详细信息 - GetFreshmanInfo(ctx context.Context, in *FreshmanKeywordRequest, opts ...grpc.CallOption) (*GetFreshmanInfoResponse, error) + GetFreshmanDetail(ctx context.Context, in *GetFreshmanDetailRequest, opts ...grpc.CallOption) (*GetFreshmanDetailResponse, error) //获取新生宿舍信息 - GetFreshmanRoommates(ctx context.Context, in *FreshmanKeywordRequest, opts ...grpc.CallOption) (*GetFreshmanRoommatesResponse, error) + GetFreshmanRoommates(ctx context.Context, in *GetFreshmanRoommatesRequest, opts ...grpc.CallOption) (*GetFreshmanRoommatesResponse, error) } type campusServiceClient struct { @@ -97,8 +97,8 @@ func (c *campusServiceClient) GetStudentDormInfo(ctx context.Context, in *emptyp return out, nil } -func (c *campusServiceClient) GetStudentBirthdayInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetStudentBirthdayResponse, error) { - out := new(GetStudentBirthdayResponse) +func (c *campusServiceClient) GetStudentBirthdayInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetStudentBirthdayInfoResponse, error) { + out := new(GetStudentBirthdayInfoResponse) err := c.cc.Invoke(ctx, "/campusapis.staff.v1.CampusService/GetStudentBirthdayInfo", in, out, opts...) if err != nil { return nil, err @@ -115,7 +115,7 @@ func (c *campusServiceClient) GetStudentBirthdaysIn(ctx context.Context, in *Get return out, nil } -func (c *campusServiceClient) GetStudentRewards(ctx context.Context, in *SemesterRequest, opts ...grpc.CallOption) (*GetStudentRewardsResponse, error) { +func (c *campusServiceClient) GetStudentRewards(ctx context.Context, in *GetStudentRewardsRequest, opts ...grpc.CallOption) (*GetStudentRewardsResponse, error) { out := new(GetStudentRewardsResponse) err := c.cc.Invoke(ctx, "/campusapis.staff.v1.CampusService/GetStudentRewards", in, out, opts...) if err != nil { @@ -124,16 +124,16 @@ func (c *campusServiceClient) GetStudentRewards(ctx context.Context, in *Semeste return out, nil } -func (c *campusServiceClient) GetStudentSelect(ctx context.Context, in *SemesterRequest, opts ...grpc.CallOption) (*GetStudentSelectResponse, error) { - out := new(GetStudentSelectResponse) - err := c.cc.Invoke(ctx, "/campusapis.staff.v1.CampusService/GetStudentSelect", in, out, opts...) +func (c *campusServiceClient) GetStudentCourseSelections(ctx context.Context, in *GetStudentCourseSelectionsRequest, opts ...grpc.CallOption) (*GetStudentCourseSelectionsResponse, error) { + out := new(GetStudentCourseSelectionsResponse) + err := c.cc.Invoke(ctx, "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *campusServiceClient) GetStudentGrade(ctx context.Context, in *SemesterRequest, opts ...grpc.CallOption) (*GetStudentGradeResponse, error) { +func (c *campusServiceClient) GetStudentGrade(ctx context.Context, in *GetStudentGradeRequest, opts ...grpc.CallOption) (*GetStudentGradeResponse, error) { out := new(GetStudentGradeResponse) err := c.cc.Invoke(ctx, "/campusapis.staff.v1.CampusService/GetStudentGrade", in, out, opts...) if err != nil { @@ -160,7 +160,7 @@ func (c *campusServiceClient) GetStudentStaySchoolInfo(ctx context.Context, in * return out, nil } -func (c *campusServiceClient) GetFreshmanBaseInfo(ctx context.Context, in *FreshmanKeywordRequest, opts ...grpc.CallOption) (*GetFreshmanBaseInfoResponse, error) { +func (c *campusServiceClient) GetFreshmanBaseInfo(ctx context.Context, in *GetFreshmanBaseInfoRequest, opts ...grpc.CallOption) (*GetFreshmanBaseInfoResponse, error) { out := new(GetFreshmanBaseInfoResponse) err := c.cc.Invoke(ctx, "/campusapis.staff.v1.CampusService/GetFreshmanBaseInfo", in, out, opts...) if err != nil { @@ -169,16 +169,16 @@ func (c *campusServiceClient) GetFreshmanBaseInfo(ctx context.Context, in *Fresh return out, nil } -func (c *campusServiceClient) GetFreshmanInfo(ctx context.Context, in *FreshmanKeywordRequest, opts ...grpc.CallOption) (*GetFreshmanInfoResponse, error) { - out := new(GetFreshmanInfoResponse) - err := c.cc.Invoke(ctx, "/campusapis.staff.v1.CampusService/GetFreshmanInfo", in, out, opts...) +func (c *campusServiceClient) GetFreshmanDetail(ctx context.Context, in *GetFreshmanDetailRequest, opts ...grpc.CallOption) (*GetFreshmanDetailResponse, error) { + out := new(GetFreshmanDetailResponse) + err := c.cc.Invoke(ctx, "/campusapis.staff.v1.CampusService/GetFreshmanDetail", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *campusServiceClient) GetFreshmanRoommates(ctx context.Context, in *FreshmanKeywordRequest, opts ...grpc.CallOption) (*GetFreshmanRoommatesResponse, error) { +func (c *campusServiceClient) GetFreshmanRoommates(ctx context.Context, in *GetFreshmanRoommatesRequest, opts ...grpc.CallOption) (*GetFreshmanRoommatesResponse, error) { out := new(GetFreshmanRoommatesResponse) err := c.cc.Invoke(ctx, "/campusapis.staff.v1.CampusService/GetFreshmanRoommates", in, out, opts...) if err != nil { @@ -200,25 +200,25 @@ type CampusServiceServer interface { //获取学生宿舍信息 GetStudentDormInfo(context.Context, *emptypb.Empty) (*GetStudentDormInfoResponse, error) //获取学生生日信息 - GetStudentBirthdayInfo(context.Context, *emptypb.Empty) (*GetStudentBirthdayResponse, error) + GetStudentBirthdayInfo(context.Context, *emptypb.Empty) (*GetStudentBirthdayInfoResponse, error) //获取生日为指定日期的学生列表 GetStudentBirthdaysIn(context.Context, *GetStudentBirthdaysInRequest) (*GetStudentBirthdaysInResponse, error) //获取学生奖学金信息 - GetStudentRewards(context.Context, *SemesterRequest) (*GetStudentRewardsResponse, error) + GetStudentRewards(context.Context, *GetStudentRewardsRequest) (*GetStudentRewardsResponse, error) //获取学生选课信息 - GetStudentSelect(context.Context, *SemesterRequest) (*GetStudentSelectResponse, error) + GetStudentCourseSelections(context.Context, *GetStudentCourseSelectionsRequest) (*GetStudentCourseSelectionsResponse, error) //获取学生成绩信息 - GetStudentGrade(context.Context, *SemesterRequest) (*GetStudentGradeResponse, error) + GetStudentGrade(context.Context, *GetStudentGradeRequest) (*GetStudentGradeResponse, error) //推送学生门禁通行信息 PostStudentGateAccess(context.Context, *PostStudentGateAccessRequest) (*PostStudentGateAccessResponse, error) //获取学生留校信息 GetStudentStaySchoolInfo(context.Context, *emptypb.Empty) (*GetStudentStaySchoolInfoResponse, error) //获取新生基本信息 - GetFreshmanBaseInfo(context.Context, *FreshmanKeywordRequest) (*GetFreshmanBaseInfoResponse, error) + GetFreshmanBaseInfo(context.Context, *GetFreshmanBaseInfoRequest) (*GetFreshmanBaseInfoResponse, error) //获取新生详细信息 - GetFreshmanInfo(context.Context, *FreshmanKeywordRequest) (*GetFreshmanInfoResponse, error) + GetFreshmanDetail(context.Context, *GetFreshmanDetailRequest) (*GetFreshmanDetailResponse, error) //获取新生宿舍信息 - GetFreshmanRoommates(context.Context, *FreshmanKeywordRequest) (*GetFreshmanRoommatesResponse, error) + GetFreshmanRoommates(context.Context, *GetFreshmanRoommatesRequest) (*GetFreshmanRoommatesResponse, error) } // UnimplementedCampusServiceServer should be embedded to have forward compatible implementations. @@ -237,19 +237,19 @@ func (UnimplementedCampusServiceServer) GetStudentNeedyInfo(context.Context, *em func (UnimplementedCampusServiceServer) GetStudentDormInfo(context.Context, *emptypb.Empty) (*GetStudentDormInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetStudentDormInfo not implemented") } -func (UnimplementedCampusServiceServer) GetStudentBirthdayInfo(context.Context, *emptypb.Empty) (*GetStudentBirthdayResponse, error) { +func (UnimplementedCampusServiceServer) GetStudentBirthdayInfo(context.Context, *emptypb.Empty) (*GetStudentBirthdayInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetStudentBirthdayInfo not implemented") } func (UnimplementedCampusServiceServer) GetStudentBirthdaysIn(context.Context, *GetStudentBirthdaysInRequest) (*GetStudentBirthdaysInResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetStudentBirthdaysIn not implemented") } -func (UnimplementedCampusServiceServer) GetStudentRewards(context.Context, *SemesterRequest) (*GetStudentRewardsResponse, error) { +func (UnimplementedCampusServiceServer) GetStudentRewards(context.Context, *GetStudentRewardsRequest) (*GetStudentRewardsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetStudentRewards not implemented") } -func (UnimplementedCampusServiceServer) GetStudentSelect(context.Context, *SemesterRequest) (*GetStudentSelectResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetStudentSelect not implemented") +func (UnimplementedCampusServiceServer) GetStudentCourseSelections(context.Context, *GetStudentCourseSelectionsRequest) (*GetStudentCourseSelectionsResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetStudentCourseSelections not implemented") } -func (UnimplementedCampusServiceServer) GetStudentGrade(context.Context, *SemesterRequest) (*GetStudentGradeResponse, error) { +func (UnimplementedCampusServiceServer) GetStudentGrade(context.Context, *GetStudentGradeRequest) (*GetStudentGradeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetStudentGrade not implemented") } func (UnimplementedCampusServiceServer) PostStudentGateAccess(context.Context, *PostStudentGateAccessRequest) (*PostStudentGateAccessResponse, error) { @@ -258,13 +258,13 @@ func (UnimplementedCampusServiceServer) PostStudentGateAccess(context.Context, * func (UnimplementedCampusServiceServer) GetStudentStaySchoolInfo(context.Context, *emptypb.Empty) (*GetStudentStaySchoolInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetStudentStaySchoolInfo not implemented") } -func (UnimplementedCampusServiceServer) GetFreshmanBaseInfo(context.Context, *FreshmanKeywordRequest) (*GetFreshmanBaseInfoResponse, error) { +func (UnimplementedCampusServiceServer) GetFreshmanBaseInfo(context.Context, *GetFreshmanBaseInfoRequest) (*GetFreshmanBaseInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetFreshmanBaseInfo not implemented") } -func (UnimplementedCampusServiceServer) GetFreshmanInfo(context.Context, *FreshmanKeywordRequest) (*GetFreshmanInfoResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetFreshmanInfo not implemented") +func (UnimplementedCampusServiceServer) GetFreshmanDetail(context.Context, *GetFreshmanDetailRequest) (*GetFreshmanDetailResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFreshmanDetail not implemented") } -func (UnimplementedCampusServiceServer) GetFreshmanRoommates(context.Context, *FreshmanKeywordRequest) (*GetFreshmanRoommatesResponse, error) { +func (UnimplementedCampusServiceServer) GetFreshmanRoommates(context.Context, *GetFreshmanRoommatesRequest) (*GetFreshmanRoommatesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetFreshmanRoommates not implemented") } @@ -388,7 +388,7 @@ func _CampusService_GetStudentBirthdaysIn_Handler(srv interface{}, ctx context.C } func _CampusService_GetStudentRewards_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SemesterRequest) + in := new(GetStudentRewardsRequest) if err := dec(in); err != nil { return nil, err } @@ -400,31 +400,31 @@ func _CampusService_GetStudentRewards_Handler(srv interface{}, ctx context.Conte FullMethod: "/campusapis.staff.v1.CampusService/GetStudentRewards", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CampusServiceServer).GetStudentRewards(ctx, req.(*SemesterRequest)) + return srv.(CampusServiceServer).GetStudentRewards(ctx, req.(*GetStudentRewardsRequest)) } return interceptor(ctx, in, info, handler) } -func _CampusService_GetStudentSelect_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SemesterRequest) +func _CampusService_GetStudentCourseSelections_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetStudentCourseSelectionsRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CampusServiceServer).GetStudentSelect(ctx, in) + return srv.(CampusServiceServer).GetStudentCourseSelections(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/campusapis.staff.v1.CampusService/GetStudentSelect", + FullMethod: "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CampusServiceServer).GetStudentSelect(ctx, req.(*SemesterRequest)) + return srv.(CampusServiceServer).GetStudentCourseSelections(ctx, req.(*GetStudentCourseSelectionsRequest)) } return interceptor(ctx, in, info, handler) } func _CampusService_GetStudentGrade_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SemesterRequest) + in := new(GetStudentGradeRequest) if err := dec(in); err != nil { return nil, err } @@ -436,7 +436,7 @@ func _CampusService_GetStudentGrade_Handler(srv interface{}, ctx context.Context FullMethod: "/campusapis.staff.v1.CampusService/GetStudentGrade", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CampusServiceServer).GetStudentGrade(ctx, req.(*SemesterRequest)) + return srv.(CampusServiceServer).GetStudentGrade(ctx, req.(*GetStudentGradeRequest)) } return interceptor(ctx, in, info, handler) } @@ -478,7 +478,7 @@ func _CampusService_GetStudentStaySchoolInfo_Handler(srv interface{}, ctx contex } func _CampusService_GetFreshmanBaseInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FreshmanKeywordRequest) + in := new(GetFreshmanBaseInfoRequest) if err := dec(in); err != nil { return nil, err } @@ -490,31 +490,31 @@ func _CampusService_GetFreshmanBaseInfo_Handler(srv interface{}, ctx context.Con FullMethod: "/campusapis.staff.v1.CampusService/GetFreshmanBaseInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CampusServiceServer).GetFreshmanBaseInfo(ctx, req.(*FreshmanKeywordRequest)) + return srv.(CampusServiceServer).GetFreshmanBaseInfo(ctx, req.(*GetFreshmanBaseInfoRequest)) } return interceptor(ctx, in, info, handler) } -func _CampusService_GetFreshmanInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FreshmanKeywordRequest) +func _CampusService_GetFreshmanDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFreshmanDetailRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(CampusServiceServer).GetFreshmanInfo(ctx, in) + return srv.(CampusServiceServer).GetFreshmanDetail(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/campusapis.staff.v1.CampusService/GetFreshmanInfo", + FullMethod: "/campusapis.staff.v1.CampusService/GetFreshmanDetail", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CampusServiceServer).GetFreshmanInfo(ctx, req.(*FreshmanKeywordRequest)) + return srv.(CampusServiceServer).GetFreshmanDetail(ctx, req.(*GetFreshmanDetailRequest)) } return interceptor(ctx, in, info, handler) } func _CampusService_GetFreshmanRoommates_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FreshmanKeywordRequest) + in := new(GetFreshmanRoommatesRequest) if err := dec(in); err != nil { return nil, err } @@ -526,7 +526,7 @@ func _CampusService_GetFreshmanRoommates_Handler(srv interface{}, ctx context.Co FullMethod: "/campusapis.staff.v1.CampusService/GetFreshmanRoommates", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(CampusServiceServer).GetFreshmanRoommates(ctx, req.(*FreshmanKeywordRequest)) + return srv.(CampusServiceServer).GetFreshmanRoommates(ctx, req.(*GetFreshmanRoommatesRequest)) } return interceptor(ctx, in, info, handler) } @@ -567,8 +567,8 @@ var CampusService_ServiceDesc = grpc.ServiceDesc{ Handler: _CampusService_GetStudentRewards_Handler, }, { - MethodName: "GetStudentSelect", - Handler: _CampusService_GetStudentSelect_Handler, + MethodName: "GetStudentCourseSelections", + Handler: _CampusService_GetStudentCourseSelections_Handler, }, { MethodName: "GetStudentGrade", @@ -587,8 +587,8 @@ var CampusService_ServiceDesc = grpc.ServiceDesc{ Handler: _CampusService_GetFreshmanBaseInfo_Handler, }, { - MethodName: "GetFreshmanInfo", - Handler: _CampusService_GetFreshmanInfo_Handler, + MethodName: "GetFreshmanDetail", + Handler: _CampusService_GetFreshmanDetail_Handler, }, { MethodName: "GetFreshmanRoommates", diff --git a/campusapis/status.go b/campusapis/status.go index 47d23af..006316f 100644 --- a/campusapis/status.go +++ b/campusapis/status.go @@ -31,7 +31,7 @@ type Codes struct { func UnwarpCode(code codes.Code) Codes { if code < 10000 { return Codes{ - Status: Status_OK, + Status: Status_STATUS_OK, GrpcCode: code, } } diff --git a/campusapis/status.pb.go b/campusapis/status.pb.go index 8d295d7..6871440 100644 --- a/campusapis/status.pb.go +++ b/campusapis/status.pb.go @@ -24,48 +24,48 @@ const ( type Status int32 const ( - Status_UNKNOWN Status = 0 + Status_STATUS_UNSPECIFIED Status = 0 // 成功 - Status_OK Status = 20000 + Status_STATUS_OK Status = 20000 //通用参数错误 - Status_INVALID_ARGUMENT Status = 40000 + Status_STATUS_INVALID_ARGUMENT Status = 40000 //人员类型参数缺失 - Status_STAFF_TYPE_NOT_FOUND Status = 40001 + Status_STATUS_STAFF_TYPE_NOT_FOUND Status = 40001 //不支持的人员类型 - Status_UNSUPPORTED_STAFF_TYPE Status = 40003 + Status_STATUS_UNSUPPORTED_STAFF_TYPE Status = 40003 //人员工号缺失 - Status_STAFF_ID_CANNOT_BE_EMPTY Status = 40004 + Status_STATUS_STAFF_ID_CANNOT_BE_EMPTY Status = 40004 //通用无法找到 - Status_NOT_FOUND Status = 40400 + Status_STATUS_NOT_FOUND Status = 40400 //未找到人员 - Status_STAFF_NOT_FOUND Status = 40401 + Status_STATUS_STAFF_NOT_FOUND Status = 40401 //服务错误 - Status_SERVICE_ERROR Status = 50000 + Status_STATUS_SERVICE_ERROR Status = 50000 ) // Enum value maps for Status. var ( Status_name = map[int32]string{ - 0: "UNKNOWN", - 20000: "OK", - 40000: "INVALID_ARGUMENT", - 40001: "STAFF_TYPE_NOT_FOUND", - 40003: "UNSUPPORTED_STAFF_TYPE", - 40004: "STAFF_ID_CANNOT_BE_EMPTY", - 40400: "NOT_FOUND", - 40401: "STAFF_NOT_FOUND", - 50000: "SERVICE_ERROR", + 0: "STATUS_UNSPECIFIED", + 20000: "STATUS_OK", + 40000: "STATUS_INVALID_ARGUMENT", + 40001: "STATUS_STAFF_TYPE_NOT_FOUND", + 40003: "STATUS_UNSUPPORTED_STAFF_TYPE", + 40004: "STATUS_STAFF_ID_CANNOT_BE_EMPTY", + 40400: "STATUS_NOT_FOUND", + 40401: "STATUS_STAFF_NOT_FOUND", + 50000: "STATUS_SERVICE_ERROR", } Status_value = map[string]int32{ - "UNKNOWN": 0, - "OK": 20000, - "INVALID_ARGUMENT": 40000, - "STAFF_TYPE_NOT_FOUND": 40001, - "UNSUPPORTED_STAFF_TYPE": 40003, - "STAFF_ID_CANNOT_BE_EMPTY": 40004, - "NOT_FOUND": 40400, - "STAFF_NOT_FOUND": 40401, - "SERVICE_ERROR": 50000, + "STATUS_UNSPECIFIED": 0, + "STATUS_OK": 20000, + "STATUS_INVALID_ARGUMENT": 40000, + "STATUS_STAFF_TYPE_NOT_FOUND": 40001, + "STATUS_UNSUPPORTED_STAFF_TYPE": 40003, + "STATUS_STAFF_ID_CANNOT_BE_EMPTY": 40004, + "STATUS_NOT_FOUND": 40400, + "STATUS_STAFF_NOT_FOUND": 40401, + "STATUS_SERVICE_ERROR": 50000, } ) @@ -101,30 +101,34 @@ var File_campusapis_status_proto protoreflect.FileDescriptor var file_campusapis_status_proto_rawDesc = []byte{ 0x0a, 0x17, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2a, 0xce, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x00, 0x12, 0x08, 0x0a, - 0x02, 0x4f, 0x4b, 0x10, 0xa0, 0x9c, 0x01, 0x12, 0x16, 0x0a, 0x10, 0x49, 0x4e, 0x56, 0x41, 0x4c, - 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, 0xc0, 0xb8, 0x02, 0x12, - 0x1a, 0x0a, 0x14, 0x53, 0x54, 0x41, 0x46, 0x46, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, - 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xc1, 0xb8, 0x02, 0x12, 0x1c, 0x0a, 0x16, 0x55, - 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x46, 0x46, - 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0xc3, 0xb8, 0x02, 0x12, 0x1e, 0x0a, 0x18, 0x53, 0x54, 0x41, - 0x46, 0x46, 0x5f, 0x49, 0x44, 0x5f, 0x43, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x5f, - 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0xc4, 0xb8, 0x02, 0x12, 0x0f, 0x0a, 0x09, 0x4e, 0x4f, 0x54, - 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xd0, 0xbb, 0x02, 0x12, 0x15, 0x0a, 0x0f, 0x53, 0x54, - 0x41, 0x46, 0x46, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xd1, 0xbb, - 0x02, 0x12, 0x13, 0x0a, 0x0d, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, 0x45, 0x52, 0x52, - 0x4f, 0x52, 0x10, 0xd0, 0x86, 0x03, 0x42, 0x91, 0x01, 0x0a, 0x0e, 0x63, 0x6f, 0x6d, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x42, 0x0b, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, - 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0xa2, 0x02, 0x03, 0x43, 0x58, 0x58, 0xaa, 0x02, 0x0a, 0x43, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0xca, 0x02, 0x0a, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0xe2, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0a, - 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2a, 0x91, 0x02, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, + 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x09, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0xa0, 0x9c, 0x01, 0x12, 0x1d, 0x0a, 0x17, 0x53, 0x54, 0x41, + 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, + 0x4d, 0x45, 0x4e, 0x54, 0x10, 0xc0, 0xb8, 0x02, 0x12, 0x21, 0x0a, 0x1b, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x46, 0x46, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, + 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xc1, 0xb8, 0x02, 0x12, 0x23, 0x0a, 0x1d, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, + 0x44, 0x5f, 0x53, 0x54, 0x41, 0x46, 0x46, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0xc3, 0xb8, 0x02, + 0x12, 0x25, 0x0a, 0x1f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x46, 0x46, + 0x5f, 0x49, 0x44, 0x5f, 0x43, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x5f, 0x45, 0x4d, + 0x50, 0x54, 0x59, 0x10, 0xc4, 0xb8, 0x02, 0x12, 0x16, 0x0a, 0x10, 0x53, 0x54, 0x41, 0x54, 0x55, + 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xd0, 0xbb, 0x02, 0x12, + 0x1c, 0x0a, 0x16, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x46, 0x46, 0x5f, + 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xd1, 0xbb, 0x02, 0x12, 0x1a, 0x0a, + 0x14, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, + 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0xd0, 0x86, 0x03, 0x42, 0x91, 0x01, 0x0a, 0x0e, 0x63, 0x6f, + 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x42, 0x0b, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2a, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, + 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0xa2, 0x02, 0x03, 0x43, 0x58, 0x58, 0xaa, 0x02, 0x0a, + 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0xca, 0x02, 0x0a, 0x43, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0xe2, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, + 0xea, 0x02, 0x0a, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/campusapis/status.proto b/campusapis/status.proto index 7c3d894..8f899d3 100644 --- a/campusapis/status.proto +++ b/campusapis/status.proto @@ -6,25 +6,25 @@ option go_package = "./campusapis"; // 请求状态 错误定义 enum Status { - UNKNOWN = 0; + STATUS_UNSPECIFIED = 0; // 成功 - OK = 20000; + STATUS_OK = 20000; //通用参数错误 - INVALID_ARGUMENT = 40000; + STATUS_INVALID_ARGUMENT = 40000; //人员类型参数缺失 - STAFF_TYPE_NOT_FOUND = 40001; + STATUS_STAFF_TYPE_NOT_FOUND = 40001; //不支持的人员类型 - UNSUPPORTED_STAFF_TYPE = 40003; + STATUS_UNSUPPORTED_STAFF_TYPE = 40003; //人员工号缺失 - STAFF_ID_CANNOT_BE_EMPTY = 40004; + STATUS_STAFF_ID_CANNOT_BE_EMPTY = 40004; //通用无法找到 - NOT_FOUND = 40400; + STATUS_NOT_FOUND = 40400; //未找到人员 - STAFF_NOT_FOUND = 40401; + STATUS_STAFF_NOT_FOUND = 40401; //服务错误 - SERVICE_ERROR = 50000; + STATUS_SERVICE_ERROR = 50000; } \ No newline at end of file diff --git a/campusapis/teaching/v1/courses.go b/campusapis/teaching/v1/courses.go index a8ffeef..228f64d 100644 --- a/campusapis/teaching/v1/courses.go +++ b/campusapis/teaching/v1/courses.go @@ -4,7 +4,7 @@ import "github.com/hduhelp/api_open_sdk/campusapis/staff" func (x *Courses) ToGetScheduleResponse() *GetScheduleResponse { return &GetScheduleResponse{ - Items: x.GetScheduleResponseCourse(), + Data: x.GetScheduleResponseCourse(), } } diff --git a/campusapis/teaching/v1/teaching.pb.go b/campusapis/teaching/v1/teaching.pb.go index 3efa26a..b49cd6e 100644 --- a/campusapis/teaching/v1/teaching.pb.go +++ b/campusapis/teaching/v1/teaching.pb.go @@ -121,7 +121,9 @@ type GetScheduleResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Items []*ScheduleResponseCourse `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data []*ScheduleResponseCourse `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetScheduleResponse) Reset() { @@ -156,9 +158,23 @@ func (*GetScheduleResponse) Descriptor() ([]byte, []int) { return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{1} } -func (x *GetScheduleResponse) GetItems() []*ScheduleResponseCourse { +func (x *GetScheduleResponse) GetError() uint32 { if x != nil { - return x.Items + return x.Error + } + return 0 +} + +func (x *GetScheduleResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetScheduleResponse) GetData() []*ScheduleResponseCourse { + if x != nil { + return x.Data } return nil } @@ -716,10 +732,9 @@ type GetScheduleNowResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 今天课表 - Today []*GetScheduleNowResponse_Course `protobuf:"bytes,1,rep,name=today,proto3" json:"today,omitempty"` - // 明天课表 - Tomorrow []*GetScheduleNowResponse_Course `protobuf:"bytes,2,rep,name=tomorrow,proto3" json:"tomorrow,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *GetScheduleNowResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetScheduleNowResponse) Reset() { @@ -754,16 +769,23 @@ func (*GetScheduleNowResponse) Descriptor() ([]byte, []int) { return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{8} } -func (x *GetScheduleNowResponse) GetToday() []*GetScheduleNowResponse_Course { +func (x *GetScheduleNowResponse) GetError() uint32 { if x != nil { - return x.Today + return x.Error } - return nil + return 0 } -func (x *GetScheduleNowResponse) GetTomorrow() []*GetScheduleNowResponse_Course { +func (x *GetScheduleNowResponse) GetMsg() string { if x != nil { - return x.Tomorrow + return x.Msg + } + return "" +} + +func (x *GetScheduleNowResponse) GetData() *GetScheduleNowResponse_Data { + if x != nil { + return x.Data } return nil } @@ -774,10 +796,9 @@ type GetScheduleNowV2Response struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 今天的课表 - Today []*ScheduleResponseCourse `protobuf:"bytes,1,rep,name=Today,proto3" json:"Today,omitempty"` - // 明天的课表 - Tomorrow []*ScheduleResponseCourse `protobuf:"bytes,2,rep,name=Tomorrow,proto3" json:"Tomorrow,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *GetScheduleNowV2Response_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetScheduleNowV2Response) Reset() { @@ -812,16 +833,23 @@ func (*GetScheduleNowV2Response) Descriptor() ([]byte, []int) { return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{9} } -func (x *GetScheduleNowV2Response) GetToday() []*ScheduleResponseCourse { +func (x *GetScheduleNowV2Response) GetError() uint32 { if x != nil { - return x.Today + return x.Error } - return nil + return 0 } -func (x *GetScheduleNowV2Response) GetTomorrow() []*ScheduleResponseCourse { +func (x *GetScheduleNowV2Response) GetMsg() string { if x != nil { - return x.Tomorrow + return x.Msg + } + return "" +} + +func (x *GetScheduleNowV2Response) GetData() *GetScheduleNowV2Response_Data { + if x != nil { + return x.Data } return nil } @@ -917,7 +945,9 @@ type GetGlobalScheduleResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Items []*ScheduleResponseCourse `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data []*ScheduleResponseCourse `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetGlobalScheduleResponse) Reset() { @@ -952,9 +982,23 @@ func (*GetGlobalScheduleResponse) Descriptor() ([]byte, []int) { return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{11} } -func (x *GetGlobalScheduleResponse) GetItems() []*ScheduleResponseCourse { +func (x *GetGlobalScheduleResponse) GetError() uint32 { if x != nil { - return x.Items + return x.Error + } + return 0 +} + +func (x *GetGlobalScheduleResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetGlobalScheduleResponse) GetData() []*ScheduleResponseCourse { + if x != nil { + return x.Data } return nil } @@ -1017,7 +1061,7 @@ func (x *GetClassroomsRequest) GetSemester() string { return "" } -type GetClassroomUsageRequest struct { +type GetClassroomUsagesRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1030,8 +1074,8 @@ type GetClassroomUsageRequest struct { LocationID string `protobuf:"bytes,3,opt,name=locationID,proto3" json:"locationID,omitempty"` } -func (x *GetClassroomUsageRequest) Reset() { - *x = GetClassroomUsageRequest{} +func (x *GetClassroomUsagesRequest) Reset() { + *x = GetClassroomUsagesRequest{} if protoimpl.UnsafeEnabled { mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1039,13 +1083,13 @@ func (x *GetClassroomUsageRequest) Reset() { } } -func (x *GetClassroomUsageRequest) String() string { +func (x *GetClassroomUsagesRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetClassroomUsageRequest) ProtoMessage() {} +func (*GetClassroomUsagesRequest) ProtoMessage() {} -func (x *GetClassroomUsageRequest) ProtoReflect() protoreflect.Message { +func (x *GetClassroomUsagesRequest) ProtoReflect() protoreflect.Message { mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1057,26 +1101,26 @@ func (x *GetClassroomUsageRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetClassroomUsageRequest.ProtoReflect.Descriptor instead. -func (*GetClassroomUsageRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use GetClassroomUsagesRequest.ProtoReflect.Descriptor instead. +func (*GetClassroomUsagesRequest) Descriptor() ([]byte, []int) { return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{13} } -func (x *GetClassroomUsageRequest) GetSemester() string { +func (x *GetClassroomUsagesRequest) GetSemester() string { if x != nil { return x.Semester } return "" } -func (x *GetClassroomUsageRequest) GetSchoolYear() string { +func (x *GetClassroomUsagesRequest) GetSchoolYear() string { if x != nil { return x.SchoolYear } return "" } -func (x *GetClassroomUsageRequest) GetLocationID() string { +func (x *GetClassroomUsagesRequest) GetLocationID() string { if x != nil { return x.LocationID } @@ -1168,6 +1212,134 @@ func (x *GetUnusedClassroomsRequest) GetSection() int32 { return 0 } +type GetClassroomsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + // 教室列表 + Data []*Classroom `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetClassroomsResponse) Reset() { + *x = GetClassroomsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetClassroomsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetClassroomsResponse) ProtoMessage() {} + +func (x *GetClassroomsResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetClassroomsResponse.ProtoReflect.Descriptor instead. +func (*GetClassroomsResponse) Descriptor() ([]byte, []int) { + return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{15} +} + +func (x *GetClassroomsResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetClassroomsResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetClassroomsResponse) GetData() []*Classroom { + if x != nil { + return x.Data + } + return nil +} + +type GetUnusedClassroomsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + // 教室列表 + Data []*Classroom `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetUnusedClassroomsResponse) Reset() { + *x = GetUnusedClassroomsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUnusedClassroomsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUnusedClassroomsResponse) ProtoMessage() {} + +func (x *GetUnusedClassroomsResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUnusedClassroomsResponse.ProtoReflect.Descriptor instead. +func (*GetUnusedClassroomsResponse) Descriptor() ([]byte, []int) { + return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{16} +} + +func (x *GetUnusedClassroomsResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetUnusedClassroomsResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetUnusedClassroomsResponse) GetData() []*Classroom { + if x != nil { + return x.Data + } + return nil +} + // ClassroomsResponse 教室查询返回体 type ClassroomsResponse struct { state protoimpl.MessageState @@ -1181,7 +1353,7 @@ type ClassroomsResponse struct { func (x *ClassroomsResponse) Reset() { *x = ClassroomsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[15] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1194,7 +1366,7 @@ func (x *ClassroomsResponse) String() string { func (*ClassroomsResponse) ProtoMessage() {} func (x *ClassroomsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[15] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1207,7 +1379,7 @@ func (x *ClassroomsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use ClassroomsResponse.ProtoReflect.Descriptor instead. func (*ClassroomsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{15} + return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{17} } func (x *ClassroomsResponse) GetItems() []*Classroom { @@ -1240,7 +1412,7 @@ type Classroom struct { func (x *Classroom) Reset() { *x = Classroom{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[16] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1253,7 +1425,7 @@ func (x *Classroom) String() string { func (*Classroom) ProtoMessage() {} func (x *Classroom) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[16] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1266,7 +1438,7 @@ func (x *Classroom) ProtoReflect() protoreflect.Message { // Deprecated: Use Classroom.ProtoReflect.Descriptor instead. func (*Classroom) Descriptor() ([]byte, []int) { - return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{16} + return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{18} } func (x *Classroom) GetSemester() int32 { @@ -1311,33 +1483,33 @@ func (x *Classroom) GetBuildingName() string { return "" } -// ClassroomUsagesResponse 教室使用情况返回体 -type ClassroomUsagesResponse struct { +// GetClassroomUsagesResponse 教室使用情况返回体 +type GetClassroomUsagesResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields // 教室使用情况列表 - Items []*ClassroomUsagesResponse_Nested `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Items []*GetClassroomUsagesResponse_Nested `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` } -func (x *ClassroomUsagesResponse) Reset() { - *x = ClassroomUsagesResponse{} +func (x *GetClassroomUsagesResponse) Reset() { + *x = GetClassroomUsagesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[17] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClassroomUsagesResponse) String() string { +func (x *GetClassroomUsagesResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClassroomUsagesResponse) ProtoMessage() {} +func (*GetClassroomUsagesResponse) ProtoMessage() {} -func (x *ClassroomUsagesResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[17] +func (x *GetClassroomUsagesResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1348,12 +1520,12 @@ func (x *ClassroomUsagesResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ClassroomUsagesResponse.ProtoReflect.Descriptor instead. -func (*ClassroomUsagesResponse) Descriptor() ([]byte, []int) { - return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{17} +// Deprecated: Use GetClassroomUsagesResponse.ProtoReflect.Descriptor instead. +func (*GetClassroomUsagesResponse) Descriptor() ([]byte, []int) { + return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{19} } -func (x *ClassroomUsagesResponse) GetItems() []*ClassroomUsagesResponse_Nested { +func (x *GetClassroomUsagesResponse) GetItems() []*GetClassroomUsagesResponse_Nested { if x != nil { return x.Items } @@ -1377,7 +1549,7 @@ type ScheduleResponseCourse_StaffInfo struct { func (x *ScheduleResponseCourse_StaffInfo) Reset() { *x = ScheduleResponseCourse_StaffInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[18] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1390,7 +1562,7 @@ func (x *ScheduleResponseCourse_StaffInfo) String() string { func (*ScheduleResponseCourse_StaffInfo) ProtoMessage() {} func (x *ScheduleResponseCourse_StaffInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[18] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1458,7 +1630,7 @@ type ScheduleResponseCourse_ScheduleInfo struct { func (x *ScheduleResponseCourse_ScheduleInfo) Reset() { *x = ScheduleResponseCourse_ScheduleInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[19] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1471,7 +1643,7 @@ func (x *ScheduleResponseCourse_ScheduleInfo) String() string { func (*ScheduleResponseCourse_ScheduleInfo) ProtoMessage() {} func (x *ScheduleResponseCourse_ScheduleInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[19] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1557,6 +1729,63 @@ func (x *ScheduleResponseCourse_ScheduleInfo) GetEndTime() uint32 { return 0 } +type GetScheduleNowResponse_Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 今天课表 + Today []*GetScheduleNowResponse_Course `protobuf:"bytes,1,rep,name=today,proto3" json:"today,omitempty"` + // 明天课表 + Tomorrow []*GetScheduleNowResponse_Course `protobuf:"bytes,2,rep,name=tomorrow,proto3" json:"tomorrow,omitempty"` +} + +func (x *GetScheduleNowResponse_Data) Reset() { + *x = GetScheduleNowResponse_Data{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetScheduleNowResponse_Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetScheduleNowResponse_Data) ProtoMessage() {} + +func (x *GetScheduleNowResponse_Data) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetScheduleNowResponse_Data.ProtoReflect.Descriptor instead. +func (*GetScheduleNowResponse_Data) Descriptor() ([]byte, []int) { + return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{8, 0} +} + +func (x *GetScheduleNowResponse_Data) GetToday() []*GetScheduleNowResponse_Course { + if x != nil { + return x.Today + } + return nil +} + +func (x *GetScheduleNowResponse_Data) GetTomorrow() []*GetScheduleNowResponse_Course { + if x != nil { + return x.Tomorrow + } + return nil +} + // 课表 type GetScheduleNowResponse_Course struct { state protoimpl.MessageState @@ -1584,7 +1813,7 @@ type GetScheduleNowResponse_Course struct { func (x *GetScheduleNowResponse_Course) Reset() { *x = GetScheduleNowResponse_Course{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[22] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1597,7 +1826,7 @@ func (x *GetScheduleNowResponse_Course) String() string { func (*GetScheduleNowResponse_Course) ProtoMessage() {} func (x *GetScheduleNowResponse_Course) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[22] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1610,7 +1839,7 @@ func (x *GetScheduleNowResponse_Course) ProtoReflect() protoreflect.Message { // Deprecated: Use GetScheduleNowResponse_Course.ProtoReflect.Descriptor instead. func (*GetScheduleNowResponse_Course) Descriptor() ([]byte, []int) { - return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{8, 0} + return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{8, 1} } func (x *GetScheduleNowResponse_Course) GetStartSection() uint32 { @@ -1669,8 +1898,65 @@ func (x *GetScheduleNowResponse_Course) GetDuration() string { return "" } +type GetScheduleNowV2Response_Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 今天的课表 + Today []*ScheduleResponseCourse `protobuf:"bytes,1,rep,name=Today,proto3" json:"Today,omitempty"` + // 明天的课表 + Tomorrow []*ScheduleResponseCourse `protobuf:"bytes,2,rep,name=Tomorrow,proto3" json:"Tomorrow,omitempty"` +} + +func (x *GetScheduleNowV2Response_Data) Reset() { + *x = GetScheduleNowV2Response_Data{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetScheduleNowV2Response_Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetScheduleNowV2Response_Data) ProtoMessage() {} + +func (x *GetScheduleNowV2Response_Data) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetScheduleNowV2Response_Data.ProtoReflect.Descriptor instead. +func (*GetScheduleNowV2Response_Data) Descriptor() ([]byte, []int) { + return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{9, 0} +} + +func (x *GetScheduleNowV2Response_Data) GetToday() []*ScheduleResponseCourse { + if x != nil { + return x.Today + } + return nil +} + +func (x *GetScheduleNowV2Response_Data) GetTomorrow() []*ScheduleResponseCourse { + if x != nil { + return x.Tomorrow + } + return nil +} + // 内嵌信息 -type ClassroomUsagesResponse_Nested struct { +type GetClassroomUsagesResponse_Nested struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1691,23 +1977,23 @@ type ClassroomUsagesResponse_Nested struct { CourseName string `protobuf:"bytes,7,opt,name=CourseName,proto3" json:"CourseName,omitempty"` } -func (x *ClassroomUsagesResponse_Nested) Reset() { - *x = ClassroomUsagesResponse_Nested{} +func (x *GetClassroomUsagesResponse_Nested) Reset() { + *x = GetClassroomUsagesResponse_Nested{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[23] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClassroomUsagesResponse_Nested) String() string { +func (x *GetClassroomUsagesResponse_Nested) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClassroomUsagesResponse_Nested) ProtoMessage() {} +func (*GetClassroomUsagesResponse_Nested) ProtoMessage() {} -func (x *ClassroomUsagesResponse_Nested) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[23] +func (x *GetClassroomUsagesResponse_Nested) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1718,54 +2004,54 @@ func (x *ClassroomUsagesResponse_Nested) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ClassroomUsagesResponse_Nested.ProtoReflect.Descriptor instead. -func (*ClassroomUsagesResponse_Nested) Descriptor() ([]byte, []int) { - return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{17, 0} +// Deprecated: Use GetClassroomUsagesResponse_Nested.ProtoReflect.Descriptor instead. +func (*GetClassroomUsagesResponse_Nested) Descriptor() ([]byte, []int) { + return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{19, 0} } -func (x *ClassroomUsagesResponse_Nested) GetClassroom() *Classroom { +func (x *GetClassroomUsagesResponse_Nested) GetClassroom() *Classroom { if x != nil { return x.Classroom } return nil } -func (x *ClassroomUsagesResponse_Nested) GetWeekday() int32 { +func (x *GetClassroomUsagesResponse_Nested) GetWeekday() int32 { if x != nil { return x.Weekday } return 0 } -func (x *ClassroomUsagesResponse_Nested) GetWeek() []int32 { +func (x *GetClassroomUsagesResponse_Nested) GetWeek() []int32 { if x != nil { return x.Week } return nil } -func (x *ClassroomUsagesResponse_Nested) GetSection() []int32 { +func (x *GetClassroomUsagesResponse_Nested) GetSection() []int32 { if x != nil { return x.Section } return nil } -func (x *ClassroomUsagesResponse_Nested) GetClassID() string { +func (x *GetClassroomUsagesResponse_Nested) GetClassID() string { if x != nil { return x.ClassID } return "" } -func (x *ClassroomUsagesResponse_Nested) GetCourseCode() string { +func (x *GetClassroomUsagesResponse_Nested) GetCourseCode() string { if x != nil { return x.CourseCode } return "" } -func (x *ClassroomUsagesResponse_Nested) GetCourseName() string { +func (x *GetClassroomUsagesResponse_Nested) GetCourseName() string { if x != nil { return x.CourseName } @@ -1799,375 +2085,408 @@ var file_campusapis_teaching_v1_teaching_proto_rawDesc = []byte{ 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x65, 0x65, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x77, 0x65, 0x65, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x22, 0x5b, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x44, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, + 0x28, 0x05, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x22, 0x81, 0x01, 0x0a, 0x13, + 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x42, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xcf, 0x06, 0x0a, 0x16, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x12, 0x57, 0x0a, 0x08, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x1a, 0x61, 0x0a, 0x09, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, + 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x92, 0x03, 0x0a, + 0x0c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, + 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x61, + 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x65, 0x61, + 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, + 0x54, 0x0a, 0x08, 0x54, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x72, 0x73, - 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xcf, 0x06, 0x0a, 0x16, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x75, - 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x1c, 0x0a, - 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x75, - 0x72, 0x73, 0x65, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, 0x6f, 0x75, - 0x72, 0x73, 0x65, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, - 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x57, 0x0a, - 0x08, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x3b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x59, 0x65, 0x61, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x53, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x1a, 0x61, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x53, 0x74, 0x61, 0x66, - 0x66, 0x54, 0x79, 0x70, 0x65, 0x1a, 0x92, 0x03, 0x0a, 0x0c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x61, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x65, 0x61, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x12, 0x18, - 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, - 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x54, 0x0a, 0x08, 0x54, 0x65, 0x61, 0x63, - 0x68, 0x65, 0x72, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x54, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x73, 0x12, 0x54, - 0x0a, 0x08, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, - 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x57, 0x65, 0x65, 0x6b, 0x18, 0x06, 0x20, 0x03, - 0x28, 0x05, 0x52, 0x04, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x65, 0x6b, - 0x44, 0x61, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x44, - 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x73, 0x54, 0x68, 0x69, 0x73, 0x57, 0x65, 0x65, 0x6b, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x49, 0x73, 0x54, 0x68, 0x69, 0x73, 0x57, 0x65, - 0x65, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x07, 0x43, - 0x6f, 0x75, 0x72, 0x73, 0x65, 0x73, 0x12, 0x40, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, - 0x6f, 0x75, 0x72, 0x73, 0x65, 0x73, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x5c, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x65, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x54, 0x65, 0x61, + 0x63, 0x68, 0x65, 0x72, 0x73, 0x12, 0x54, 0x0a, 0x08, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, - 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf4, 0x02, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, - 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, - 0x1c, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x75, - 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, - 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x72, 0x65, 0x64, 0x69, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, - 0x41, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x52, 0x0a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, - 0x61, 0x72, 0x12, 0x3b, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x53, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, - 0x3c, 0x0a, 0x08, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x52, 0x08, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x22, 0xad, 0x01, - 0x0a, 0x08, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x49, 0x74, - 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, - 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x5e, 0x0a, - 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3a, 0x0a, - 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, + 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x08, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x57, + 0x65, 0x65, 0x6b, 0x18, 0x06, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x57, 0x65, 0x65, 0x6b, 0x12, + 0x18, 0x0a, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x73, 0x54, + 0x68, 0x69, 0x73, 0x57, 0x65, 0x65, 0x6b, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x49, + 0x73, 0x54, 0x68, 0x69, 0x73, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x22, 0xa9, 0x01, 0x0a, 0x07, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x73, 0x12, 0x40, 0x0a, + 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x74, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x73, 0x2e, 0x49, 0x74, + 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x1a, + 0x5c, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x38, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf4, 0x02, - 0x0a, 0x0c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, - 0x0a, 0x04, 0x57, 0x65, 0x65, 0x6b, 0x18, 0x01, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x57, 0x65, - 0x65, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x57, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, - 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x53, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x49, 0x73, 0x54, 0x68, 0x69, 0x73, - 0x57, 0x65, 0x65, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x49, 0x73, 0x54, 0x68, - 0x69, 0x73, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, - 0x0a, 0x08, 0x54, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x08, 0x54, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x73, 0x12, 0x39, 0x0a, 0x08, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x49, - 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x08, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x61, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x53, 0x65, 0x61, 0x74, 0x73, 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, - 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x6f, - 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x5b, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x53, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6f, 0x6d, - 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x69, - 0x74, 0x22, 0xb8, 0x03, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x05, - 0x74, 0x6f, 0x64, 0x61, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x75, 0x72, - 0x73, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x51, 0x0a, 0x08, 0x74, 0x6f, 0x6d, - 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x75, 0x72, - 0x73, 0x65, 0x52, 0x08, 0x74, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x1a, 0xfd, 0x01, 0x0a, - 0x06, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x5f, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, - 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x72, 0x73, - 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, - 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, - 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, - 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xac, 0x01, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, 0x56, - 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x05, 0x54, 0x6f, 0x64, - 0x61, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x18, 0x0a, 0x07, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x43, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x41, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x59, 0x65, 0x61, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x2e, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x52, 0x0a, 0x53, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x3b, 0x0a, 0x08, 0x53, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, + 0x69, 0x6d, 0x65, 0x2e, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x08, 0x53, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x08, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x52, 0x05, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x12, - 0x4a, 0x0a, 0x08, 0x54, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x72, 0x73, - 0x65, 0x52, 0x08, 0x54, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x22, 0x9e, 0x01, 0x0a, 0x18, - 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x12, 0x12, - 0x0a, 0x04, 0x77, 0x65, 0x65, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x77, 0x65, - 0x65, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x61, 0x0a, 0x19, - 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x44, 0x0a, 0x05, 0x69, 0x74, 0x65, - 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, - 0x52, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x22, 0xef, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x30, 0x0a, 0x0a, - 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x42, 0x10, 0x92, 0x41, 0x0d, 0xd2, 0x01, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x3a, 0x65, - 0x92, 0x41, 0x62, 0x0a, 0x44, 0x2a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, - 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x32, - 0x1b, 0xe6, 0x95, 0x99, 0xe5, 0xae, 0xa4, 0xe4, 0xbd, 0xbf, 0xe7, 0x94, 0xa8, 0xe6, 0x83, 0x85, - 0xe5, 0x86, 0xb5, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, 0xbd, 0x93, 0xd2, 0x01, 0x0a, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x32, 0x1a, 0x7b, 0x20, 0x22, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x3a, 0x20, 0x22, 0x31, 0x31, 0x31, 0x32, - 0x32, 0x32, 0x22, 0x20, 0x7d, 0x22, 0xa0, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x75, - 0x73, 0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, - 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x65, - 0x65, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x77, 0x65, 0x65, 0x6b, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x4d, 0x0a, 0x12, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, - 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x08, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x22, 0xad, 0x01, 0x0a, 0x08, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x12, 0x41, 0x0a, 0x05, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x2e, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x05, 0x49, + 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x5e, 0x0a, 0x0a, 0x49, 0x74, 0x65, 0x6d, 0x73, 0x45, 0x6e, 0x74, + 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x12, 0x3a, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x3a, 0x02, 0x38, 0x01, 0x22, 0xf4, 0x02, 0x0a, 0x0c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x12, 0x0a, 0x04, 0x57, 0x65, 0x65, 0x6b, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x05, 0x52, 0x04, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x57, 0x65, 0x65, + 0x6b, 0x44, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x57, 0x65, 0x65, 0x6b, + 0x44, 0x61, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, + 0x0a, 0x49, 0x73, 0x54, 0x68, 0x69, 0x73, 0x57, 0x65, 0x65, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x49, 0x73, 0x54, 0x68, 0x69, 0x73, 0x57, 0x65, 0x65, 0x6b, 0x12, 0x1c, 0x0a, + 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x45, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x45, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x08, 0x54, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x4d, + 0x61, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x08, 0x54, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x73, + 0x12, 0x39, 0x0a, 0x08, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x70, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x08, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4c, + 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x61, 0x74, 0x73, + 0x4e, 0x75, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x53, 0x65, 0x61, 0x74, 0x73, + 0x4e, 0x75, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0x5b, 0x0a, 0x09, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x53, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x43, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x22, 0xb2, 0x04, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x47, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, + 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0xa6, 0x01, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x4b, 0x0a, + 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x75, + 0x72, 0x73, 0x65, 0x52, 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x51, 0x0a, 0x08, 0x74, 0x6f, + 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x43, 0x6f, 0x75, + 0x72, 0x73, 0x65, 0x52, 0x08, 0x74, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x1a, 0xfd, 0x01, + 0x0a, 0x06, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, + 0x0b, 0x65, 0x6e, 0x64, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, + 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x72, + 0x73, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, + 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xa8, 0x02, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, + 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x49, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x98, 0x01, + 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x44, 0x0a, 0x05, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, + 0x6f, 0x75, 0x72, 0x73, 0x65, 0x52, 0x05, 0x54, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x4a, 0x0a, 0x08, + 0x54, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x52, 0x08, + 0x54, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x22, 0x9e, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, + 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x77, + 0x65, 0x65, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x77, 0x65, 0x65, 0x6b, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x47, 0x65, + 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x42, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, - 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xcf, 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x52, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, + 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0xf1, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, - 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, - 0x67, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, - 0x69, 0x6e, 0x67, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, - 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xd5, 0x02, 0x0a, 0x17, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4c, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, - 0x65, 0x6d, 0x73, 0x1a, 0xeb, 0x01, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x3f, - 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, - 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x65, 0x65, - 0x6b, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x77, 0x65, 0x65, 0x6b, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, - 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, - 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x32, 0xd7, 0x09, 0x0a, 0x0f, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc8, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x60, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x5a, 0x12, 0x15, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5a, 0x1b, 0x12, - 0x12, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x5a, 0x1d, 0x12, 0x14, 0x2f, 0x73, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x12, 0x94, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x4e, 0x6f, 0x77, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2e, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, - 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x34, 0x12, 0x19, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, - 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x77, 0x5a, 0x17, - 0x12, 0x15, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x77, 0x12, 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, 0x56, 0x32, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, 0x56, 0x32, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x1c, - 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x6e, 0x6f, 0x77, 0x5a, 0x1a, 0x12, 0x18, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x77, 0x12, 0x7a, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, - 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x30, 0x2e, + 0x72, 0x12, 0x30, 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x42, 0x10, 0x92, 0x41, 0x0d, 0xd2, 0x01, 0x0a, 0x6c, 0x6f, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x3a, 0x66, 0x92, 0x41, 0x63, 0x0a, 0x45, 0x2a, 0x19, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x32, 0x1b, 0xe6, 0x95, 0x99, 0xe5, 0xae, 0xa4, 0xe4, 0xbd, 0xbf, + 0xe7, 0x94, 0xa8, 0xe6, 0x83, 0x85, 0xe5, 0x86, 0xb5, 0xe8, 0xaf, 0xb7, 0xe6, 0xb1, 0x82, 0xe4, + 0xbd, 0x93, 0xd2, 0x01, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x32, + 0x1a, 0x7b, 0x20, 0x22, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x3a, + 0x20, 0x22, 0x31, 0x31, 0x31, 0x32, 0x32, 0x32, 0x22, 0x20, 0x7d, 0x22, 0xa0, 0x01, 0x0a, 0x1a, + 0x47, 0x65, 0x74, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, + 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x59, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, + 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, + 0x12, 0x12, 0x0a, 0x04, 0x77, 0x65, 0x65, 0x6b, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, + 0x77, 0x65, 0x65, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, + 0x0a, 0x15, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0xae, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7c, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x75, + 0x73, 0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x4d, 0x0a, 0x12, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, + 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, + 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x22, 0xcf, 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, + 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1e, 0x0a, + 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, + 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x49, + 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, + 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xdb, 0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, + 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0xeb, 0x01, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, + 0x12, 0x3f, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, + 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x77, + 0x65, 0x65, 0x6b, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x77, 0x65, 0x65, 0x6b, 0x12, + 0x18, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, + 0x52, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6c, 0x61, + 0x73, 0x73, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x32, 0xa8, 0x09, 0x0a, 0x0f, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb3, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x15, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5a, + 0x14, 0x12, 0x12, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x94, 0x01, + 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, + 0x12, 0x19, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x77, 0x5a, 0x17, 0x12, 0x15, 0x2f, + 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x2f, 0x6e, 0x6f, 0x77, 0x12, 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, 0x56, 0x32, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, + 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x1c, 0x2f, 0x74, 0x65, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x6e, 0x6f, 0x77, 0x5a, 0x1a, 0x12, 0x18, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x2f, 0x6e, 0x6f, 0x77, 0x12, 0x7a, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, + 0x61, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, + 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0xa3, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, + 0x6f, 0x6d, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, + 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x16, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x16, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, - 0x5a, 0x1c, 0x12, 0x13, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x62, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0xc8, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, - 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, + 0x5a, 0x15, 0x12, 0x13, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0xbe, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, - 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x4f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x49, 0x12, 0x1c, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, - 0x75, 0x73, 0x61, 0x67, 0x65, 0x5a, 0x22, 0x12, 0x19, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x61, - 0x67, 0x65, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, - 0x12, 0xc8, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x51, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x4b, - 0x12, 0x1d, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x5a, - 0x23, 0x12, 0x1a, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x62, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x62, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x42, 0xf4, 0x03, 0x0a, 0x1a, - 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x54, 0x65, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, - 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x76, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x54, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, - 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x54, 0x65, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x5c, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x88, 0x02, 0x12, 0xde, 0x01, 0x0a, 0x0c, 0x54, - 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x12, 0x0c, 0x54, 0x65, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x22, 0x5b, 0x0a, 0x1b, 0x68, 0x64, 0x75, - 0x68, 0x65, 0x6c, 0x70, 0x20, 0x73, 0x61, 0x6c, 0x6d, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, - 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, - 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, - 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x73, 0x61, 0x6c, 0x6d, 0x6f, 0x6e, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x62, 0x61, 0x73, 0x65, 0x1a, 0x10, 0x6e, 0x6f, 0x6e, 0x65, 0x40, 0x65, 0x78, 0x61, 0x6d, 0x70, - 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2a, 0x5e, 0x0a, 0x14, 0x42, 0x53, 0x44, 0x20, 0x33, 0x2d, - 0x43, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x46, - 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x65, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, - 0x6d, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x62, - 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, - 0x53, 0x45, 0x2e, 0x74, 0x78, 0x74, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x2a, 0x01, 0x02, 0x32, 0x10, - 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, - 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, - 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, + 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x1c, 0x2f, + 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5a, 0x1b, 0x12, 0x19, 0x2f, + 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, + 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0xc3, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, + 0x12, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x75, + 0x73, 0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3d, 0x12, 0x1d, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, + 0x5a, 0x1c, 0x12, 0x1a, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x42, 0xf4, + 0x03, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x54, + 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, + 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x76, + 0x31, 0xa2, 0x02, 0x03, 0x43, 0x54, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, + 0xca, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x54, 0x65, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5c, + 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x18, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x54, 0x65, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x88, 0x02, 0x12, 0xde, 0x01, + 0x0a, 0x0c, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x12, 0x0c, + 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x22, 0x5b, 0x0a, 0x1b, + 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x20, 0x73, 0x61, 0x6c, 0x6d, 0x6f, 0x6e, 0x20, 0x62, + 0x61, 0x73, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2a, 0x68, 0x74, 0x74, + 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x73, 0x61, 0x6c, 0x6d, 0x6f, 0x6e, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x1a, 0x10, 0x6e, 0x6f, 0x6e, 0x65, 0x40, 0x65, 0x78, + 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2a, 0x5e, 0x0a, 0x14, 0x42, 0x53, 0x44, + 0x20, 0x33, 0x2d, 0x43, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, + 0x65, 0x12, 0x46, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x65, 0x63, 0x6f, 0x73, 0x79, + 0x73, 0x74, 0x65, 0x6d, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x4c, 0x49, + 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2e, 0x74, 0x78, 0x74, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x2a, 0x01, + 0x02, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, + 0x73, 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2182,7 +2501,7 @@ func file_campusapis_teaching_v1_teaching_proto_rawDescGZIP() []byte { return file_campusapis_teaching_v1_teaching_proto_rawDescData } -var file_campusapis_teaching_v1_teaching_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_campusapis_teaching_v1_teaching_proto_msgTypes = make([]protoimpl.MessageInfo, 28) var file_campusapis_teaching_v1_teaching_proto_goTypes = []interface{}{ (*GetScheduleRequest)(nil), // 0: campusapis.teaching.v1.GetScheduleRequest (*GetScheduleResponse)(nil), // 1: campusapis.teaching.v1.GetScheduleResponse @@ -2197,63 +2516,71 @@ var file_campusapis_teaching_v1_teaching_proto_goTypes = []interface{}{ (*GetGlobalScheduleRequest)(nil), // 10: campusapis.teaching.v1.GetGlobalScheduleRequest (*GetGlobalScheduleResponse)(nil), // 11: campusapis.teaching.v1.GetGlobalScheduleResponse (*GetClassroomsRequest)(nil), // 12: campusapis.teaching.v1.GetClassroomsRequest - (*GetClassroomUsageRequest)(nil), // 13: campusapis.teaching.v1.GetClassroomUsageRequest + (*GetClassroomUsagesRequest)(nil), // 13: campusapis.teaching.v1.GetClassroomUsagesRequest (*GetUnusedClassroomsRequest)(nil), // 14: campusapis.teaching.v1.GetUnusedClassroomsRequest - (*ClassroomsResponse)(nil), // 15: campusapis.teaching.v1.ClassroomsResponse - (*Classroom)(nil), // 16: campusapis.teaching.v1.Classroom - (*ClassroomUsagesResponse)(nil), // 17: campusapis.teaching.v1.ClassroomUsagesResponse - (*ScheduleResponseCourse_StaffInfo)(nil), // 18: campusapis.teaching.v1.ScheduleResponseCourse.StaffInfo - (*ScheduleResponseCourse_ScheduleInfo)(nil), // 19: campusapis.teaching.v1.ScheduleResponseCourse.ScheduleInfo - nil, // 20: campusapis.teaching.v1.Courses.ItemsEntry - nil, // 21: campusapis.teaching.v1.Schedule.ItemsEntry - (*GetScheduleNowResponse_Course)(nil), // 22: campusapis.teaching.v1.GetScheduleNowResponse.Course - (*ClassroomUsagesResponse_Nested)(nil), // 23: campusapis.teaching.v1.ClassroomUsagesResponse.Nested - (*schoolTime.SchoolYear)(nil), // 24: campusapis.schoolTime.SchoolYear - (*schoolTime.Semester)(nil), // 25: campusapis.schoolTime.Semester - (*staff.InfoMapList)(nil), // 26: campusapis.staff.InfoMapList - (*emptypb.Empty)(nil), // 27: google.protobuf.Empty + (*GetClassroomsResponse)(nil), // 15: campusapis.teaching.v1.GetClassroomsResponse + (*GetUnusedClassroomsResponse)(nil), // 16: campusapis.teaching.v1.GetUnusedClassroomsResponse + (*ClassroomsResponse)(nil), // 17: campusapis.teaching.v1.ClassroomsResponse + (*Classroom)(nil), // 18: campusapis.teaching.v1.Classroom + (*GetClassroomUsagesResponse)(nil), // 19: campusapis.teaching.v1.GetClassroomUsagesResponse + (*ScheduleResponseCourse_StaffInfo)(nil), // 20: campusapis.teaching.v1.ScheduleResponseCourse.StaffInfo + (*ScheduleResponseCourse_ScheduleInfo)(nil), // 21: campusapis.teaching.v1.ScheduleResponseCourse.ScheduleInfo + nil, // 22: campusapis.teaching.v1.Courses.ItemsEntry + nil, // 23: campusapis.teaching.v1.Schedule.ItemsEntry + (*GetScheduleNowResponse_Data)(nil), // 24: campusapis.teaching.v1.GetScheduleNowResponse.Data + (*GetScheduleNowResponse_Course)(nil), // 25: campusapis.teaching.v1.GetScheduleNowResponse.Course + (*GetScheduleNowV2Response_Data)(nil), // 26: campusapis.teaching.v1.GetScheduleNowV2Response.Data + (*GetClassroomUsagesResponse_Nested)(nil), // 27: campusapis.teaching.v1.GetClassroomUsagesResponse.Nested + (*schoolTime.SchoolYear)(nil), // 28: campusapis.schoolTime.SchoolYear + (*schoolTime.Semester)(nil), // 29: campusapis.schoolTime.Semester + (*staff.InfoMapList)(nil), // 30: campusapis.staff.InfoMapList + (*emptypb.Empty)(nil), // 31: google.protobuf.Empty } var file_campusapis_teaching_v1_teaching_proto_depIdxs = []int32{ - 2, // 0: campusapis.teaching.v1.GetScheduleResponse.items:type_name -> campusapis.teaching.v1.ScheduleResponseCourse - 19, // 1: campusapis.teaching.v1.ScheduleResponseCourse.Schedule:type_name -> campusapis.teaching.v1.ScheduleResponseCourse.ScheduleInfo - 20, // 2: campusapis.teaching.v1.Courses.Items:type_name -> campusapis.teaching.v1.Courses.ItemsEntry - 24, // 3: campusapis.teaching.v1.CourseItem.SchoolYear:type_name -> campusapis.schoolTime.SchoolYear - 25, // 4: campusapis.teaching.v1.CourseItem.Semester:type_name -> campusapis.schoolTime.Semester + 2, // 0: campusapis.teaching.v1.GetScheduleResponse.data:type_name -> campusapis.teaching.v1.ScheduleResponseCourse + 21, // 1: campusapis.teaching.v1.ScheduleResponseCourse.Schedule:type_name -> campusapis.teaching.v1.ScheduleResponseCourse.ScheduleInfo + 22, // 2: campusapis.teaching.v1.Courses.Items:type_name -> campusapis.teaching.v1.Courses.ItemsEntry + 28, // 3: campusapis.teaching.v1.CourseItem.SchoolYear:type_name -> campusapis.schoolTime.SchoolYear + 29, // 4: campusapis.teaching.v1.CourseItem.Semester:type_name -> campusapis.schoolTime.Semester 5, // 5: campusapis.teaching.v1.CourseItem.Schedule:type_name -> campusapis.teaching.v1.Schedule - 21, // 6: campusapis.teaching.v1.Schedule.Items:type_name -> campusapis.teaching.v1.Schedule.ItemsEntry - 26, // 7: campusapis.teaching.v1.ScheduleItem.Teachers:type_name -> campusapis.staff.InfoMapList - 26, // 8: campusapis.teaching.v1.ScheduleItem.Students:type_name -> campusapis.staff.InfoMapList - 22, // 9: campusapis.teaching.v1.GetScheduleNowResponse.today:type_name -> campusapis.teaching.v1.GetScheduleNowResponse.Course - 22, // 10: campusapis.teaching.v1.GetScheduleNowResponse.tomorrow:type_name -> campusapis.teaching.v1.GetScheduleNowResponse.Course - 2, // 11: campusapis.teaching.v1.GetScheduleNowV2Response.Today:type_name -> campusapis.teaching.v1.ScheduleResponseCourse - 2, // 12: campusapis.teaching.v1.GetScheduleNowV2Response.Tomorrow:type_name -> campusapis.teaching.v1.ScheduleResponseCourse - 2, // 13: campusapis.teaching.v1.GetGlobalScheduleResponse.items:type_name -> campusapis.teaching.v1.ScheduleResponseCourse - 16, // 14: campusapis.teaching.v1.ClassroomsResponse.items:type_name -> campusapis.teaching.v1.Classroom - 23, // 15: campusapis.teaching.v1.ClassroomUsagesResponse.items:type_name -> campusapis.teaching.v1.ClassroomUsagesResponse.Nested - 18, // 16: campusapis.teaching.v1.ScheduleResponseCourse.ScheduleInfo.Teachers:type_name -> campusapis.teaching.v1.ScheduleResponseCourse.StaffInfo - 18, // 17: campusapis.teaching.v1.ScheduleResponseCourse.ScheduleInfo.Students:type_name -> campusapis.teaching.v1.ScheduleResponseCourse.StaffInfo + 23, // 6: campusapis.teaching.v1.Schedule.Items:type_name -> campusapis.teaching.v1.Schedule.ItemsEntry + 30, // 7: campusapis.teaching.v1.ScheduleItem.Teachers:type_name -> campusapis.staff.InfoMapList + 30, // 8: campusapis.teaching.v1.ScheduleItem.Students:type_name -> campusapis.staff.InfoMapList + 24, // 9: campusapis.teaching.v1.GetScheduleNowResponse.data:type_name -> campusapis.teaching.v1.GetScheduleNowResponse.Data + 26, // 10: campusapis.teaching.v1.GetScheduleNowV2Response.data:type_name -> campusapis.teaching.v1.GetScheduleNowV2Response.Data + 2, // 11: campusapis.teaching.v1.GetGlobalScheduleResponse.data:type_name -> campusapis.teaching.v1.ScheduleResponseCourse + 18, // 12: campusapis.teaching.v1.GetClassroomsResponse.data:type_name -> campusapis.teaching.v1.Classroom + 18, // 13: campusapis.teaching.v1.GetUnusedClassroomsResponse.data:type_name -> campusapis.teaching.v1.Classroom + 18, // 14: campusapis.teaching.v1.ClassroomsResponse.items:type_name -> campusapis.teaching.v1.Classroom + 27, // 15: campusapis.teaching.v1.GetClassroomUsagesResponse.items:type_name -> campusapis.teaching.v1.GetClassroomUsagesResponse.Nested + 20, // 16: campusapis.teaching.v1.ScheduleResponseCourse.ScheduleInfo.Teachers:type_name -> campusapis.teaching.v1.ScheduleResponseCourse.StaffInfo + 20, // 17: campusapis.teaching.v1.ScheduleResponseCourse.ScheduleInfo.Students:type_name -> campusapis.teaching.v1.ScheduleResponseCourse.StaffInfo 4, // 18: campusapis.teaching.v1.Courses.ItemsEntry.value:type_name -> campusapis.teaching.v1.CourseItem 6, // 19: campusapis.teaching.v1.Schedule.ItemsEntry.value:type_name -> campusapis.teaching.v1.ScheduleItem - 16, // 20: campusapis.teaching.v1.ClassroomUsagesResponse.Nested.classroom:type_name -> campusapis.teaching.v1.Classroom - 0, // 21: campusapis.teaching.v1.TeachingService.GetSchedule:input_type -> campusapis.teaching.v1.GetScheduleRequest - 27, // 22: campusapis.teaching.v1.TeachingService.GetScheduleNow:input_type -> google.protobuf.Empty - 27, // 23: campusapis.teaching.v1.TeachingService.GetScheduleNowV2:input_type -> google.protobuf.Empty - 10, // 24: campusapis.teaching.v1.TeachingService.GetGlobalSchedule:input_type -> campusapis.teaching.v1.GetGlobalScheduleRequest - 12, // 25: campusapis.teaching.v1.TeachingService.GetClassrooms:input_type -> campusapis.teaching.v1.GetClassroomsRequest - 13, // 26: campusapis.teaching.v1.TeachingService.GetClassroomUsages:input_type -> campusapis.teaching.v1.GetClassroomUsageRequest - 14, // 27: campusapis.teaching.v1.TeachingService.GetUnusedClassrooms:input_type -> campusapis.teaching.v1.GetUnusedClassroomsRequest - 1, // 28: campusapis.teaching.v1.TeachingService.GetSchedule:output_type -> campusapis.teaching.v1.GetScheduleResponse - 8, // 29: campusapis.teaching.v1.TeachingService.GetScheduleNow:output_type -> campusapis.teaching.v1.GetScheduleNowResponse - 9, // 30: campusapis.teaching.v1.TeachingService.GetScheduleNowV2:output_type -> campusapis.teaching.v1.GetScheduleNowV2Response - 11, // 31: campusapis.teaching.v1.TeachingService.GetGlobalSchedule:output_type -> campusapis.teaching.v1.GetGlobalScheduleResponse - 15, // 32: campusapis.teaching.v1.TeachingService.GetClassrooms:output_type -> campusapis.teaching.v1.ClassroomsResponse - 17, // 33: campusapis.teaching.v1.TeachingService.GetClassroomUsages:output_type -> campusapis.teaching.v1.ClassroomUsagesResponse - 15, // 34: campusapis.teaching.v1.TeachingService.GetUnusedClassrooms:output_type -> campusapis.teaching.v1.ClassroomsResponse - 28, // [28:35] is the sub-list for method output_type - 21, // [21:28] is the sub-list for method input_type - 21, // [21:21] is the sub-list for extension type_name - 21, // [21:21] is the sub-list for extension extendee - 0, // [0:21] is the sub-list for field type_name + 25, // 20: campusapis.teaching.v1.GetScheduleNowResponse.Data.today:type_name -> campusapis.teaching.v1.GetScheduleNowResponse.Course + 25, // 21: campusapis.teaching.v1.GetScheduleNowResponse.Data.tomorrow:type_name -> campusapis.teaching.v1.GetScheduleNowResponse.Course + 2, // 22: campusapis.teaching.v1.GetScheduleNowV2Response.Data.Today:type_name -> campusapis.teaching.v1.ScheduleResponseCourse + 2, // 23: campusapis.teaching.v1.GetScheduleNowV2Response.Data.Tomorrow:type_name -> campusapis.teaching.v1.ScheduleResponseCourse + 18, // 24: campusapis.teaching.v1.GetClassroomUsagesResponse.Nested.classroom:type_name -> campusapis.teaching.v1.Classroom + 0, // 25: campusapis.teaching.v1.TeachingService.GetSchedule:input_type -> campusapis.teaching.v1.GetScheduleRequest + 31, // 26: campusapis.teaching.v1.TeachingService.GetScheduleNow:input_type -> google.protobuf.Empty + 31, // 27: campusapis.teaching.v1.TeachingService.GetScheduleNowV2:input_type -> google.protobuf.Empty + 10, // 28: campusapis.teaching.v1.TeachingService.GetGlobalSchedule:input_type -> campusapis.teaching.v1.GetGlobalScheduleRequest + 12, // 29: campusapis.teaching.v1.TeachingService.GetClassrooms:input_type -> campusapis.teaching.v1.GetClassroomsRequest + 13, // 30: campusapis.teaching.v1.TeachingService.GetClassroomUsages:input_type -> campusapis.teaching.v1.GetClassroomUsagesRequest + 14, // 31: campusapis.teaching.v1.TeachingService.GetUnusedClassrooms:input_type -> campusapis.teaching.v1.GetUnusedClassroomsRequest + 1, // 32: campusapis.teaching.v1.TeachingService.GetSchedule:output_type -> campusapis.teaching.v1.GetScheduleResponse + 8, // 33: campusapis.teaching.v1.TeachingService.GetScheduleNow:output_type -> campusapis.teaching.v1.GetScheduleNowResponse + 9, // 34: campusapis.teaching.v1.TeachingService.GetScheduleNowV2:output_type -> campusapis.teaching.v1.GetScheduleNowV2Response + 11, // 35: campusapis.teaching.v1.TeachingService.GetGlobalSchedule:output_type -> campusapis.teaching.v1.GetGlobalScheduleResponse + 15, // 36: campusapis.teaching.v1.TeachingService.GetClassrooms:output_type -> campusapis.teaching.v1.GetClassroomsResponse + 19, // 37: campusapis.teaching.v1.TeachingService.GetClassroomUsages:output_type -> campusapis.teaching.v1.GetClassroomUsagesResponse + 16, // 38: campusapis.teaching.v1.TeachingService.GetUnusedClassrooms:output_type -> campusapis.teaching.v1.GetUnusedClassroomsResponse + 32, // [32:39] is the sub-list for method output_type + 25, // [25:32] is the sub-list for method input_type + 25, // [25:25] is the sub-list for extension type_name + 25, // [25:25] is the sub-list for extension extendee + 0, // [0:25] is the sub-list for field type_name } func init() { file_campusapis_teaching_v1_teaching_proto_init() } @@ -2419,7 +2746,7 @@ func file_campusapis_teaching_v1_teaching_proto_init() { } } file_campusapis_teaching_v1_teaching_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetClassroomUsageRequest); i { + switch v := v.(*GetClassroomUsagesRequest); i { case 0: return &v.state case 1: @@ -2443,7 +2770,7 @@ func file_campusapis_teaching_v1_teaching_proto_init() { } } file_campusapis_teaching_v1_teaching_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClassroomsResponse); i { + switch v := v.(*GetClassroomsResponse); i { case 0: return &v.state case 1: @@ -2455,7 +2782,7 @@ func file_campusapis_teaching_v1_teaching_proto_init() { } } file_campusapis_teaching_v1_teaching_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Classroom); i { + switch v := v.(*GetUnusedClassroomsResponse); i { case 0: return &v.state case 1: @@ -2467,7 +2794,7 @@ func file_campusapis_teaching_v1_teaching_proto_init() { } } file_campusapis_teaching_v1_teaching_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClassroomUsagesResponse); i { + switch v := v.(*ClassroomsResponse); i { case 0: return &v.state case 1: @@ -2479,7 +2806,7 @@ func file_campusapis_teaching_v1_teaching_proto_init() { } } file_campusapis_teaching_v1_teaching_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ScheduleResponseCourse_StaffInfo); i { + switch v := v.(*Classroom); i { case 0: return &v.state case 1: @@ -2491,6 +2818,30 @@ func file_campusapis_teaching_v1_teaching_proto_init() { } } file_campusapis_teaching_v1_teaching_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetClassroomUsagesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_teaching_v1_teaching_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ScheduleResponseCourse_StaffInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_teaching_v1_teaching_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ScheduleResponseCourse_ScheduleInfo); i { case 0: return &v.state @@ -2502,7 +2853,19 @@ func file_campusapis_teaching_v1_teaching_proto_init() { return nil } } - file_campusapis_teaching_v1_teaching_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + file_campusapis_teaching_v1_teaching_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetScheduleNowResponse_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_teaching_v1_teaching_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetScheduleNowResponse_Course); i { case 0: return &v.state @@ -2514,8 +2877,20 @@ func file_campusapis_teaching_v1_teaching_proto_init() { return nil } } - file_campusapis_teaching_v1_teaching_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClassroomUsagesResponse_Nested); i { + file_campusapis_teaching_v1_teaching_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetScheduleNowV2Response_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_teaching_v1_teaching_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetClassroomUsagesResponse_Nested); i { case 0: return &v.state case 1: @@ -2533,7 +2908,7 @@ func file_campusapis_teaching_v1_teaching_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_campusapis_teaching_v1_teaching_proto_rawDesc, NumEnums: 0, - NumMessages: 24, + NumMessages: 28, NumExtensions: 0, NumServices: 1, }, diff --git a/campusapis/teaching/v1/teaching.pb.gw.go b/campusapis/teaching/v1/teaching.pb.gw.go index d4b521f..2c72f82 100644 --- a/campusapis/teaching/v1/teaching.pb.gw.go +++ b/campusapis/teaching/v1/teaching.pb.gw.go @@ -323,7 +323,7 @@ var ( ) func request_TeachingService_GetClassroomUsages_0(ctx context.Context, marshaler runtime.Marshaler, client TeachingServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetClassroomUsageRequest + var protoReq GetClassroomUsagesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -339,7 +339,7 @@ func request_TeachingService_GetClassroomUsages_0(ctx context.Context, marshaler } func local_request_TeachingService_GetClassroomUsages_0(ctx context.Context, marshaler runtime.Marshaler, server TeachingServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetClassroomUsageRequest + var protoReq GetClassroomUsagesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -359,7 +359,7 @@ var ( ) func request_TeachingService_GetClassroomUsages_1(ctx context.Context, marshaler runtime.Marshaler, client TeachingServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetClassroomUsageRequest + var protoReq GetClassroomUsagesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -375,7 +375,7 @@ func request_TeachingService_GetClassroomUsages_1(ctx context.Context, marshaler } func local_request_TeachingService_GetClassroomUsages_1(ctx context.Context, marshaler runtime.Marshaler, server TeachingServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetClassroomUsageRequest + var protoReq GetClassroomUsagesRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -488,7 +488,7 @@ func RegisterTeachingServiceHandlerServer(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetSchedule_0(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetSchedule_0{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetSchedule_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -512,7 +512,7 @@ func RegisterTeachingServiceHandlerServer(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetSchedule_1(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetSchedule_1{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetSchedule_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -536,7 +536,7 @@ func RegisterTeachingServiceHandlerServer(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetSchedule_2(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetSchedule_2{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetSchedule_2(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -680,7 +680,7 @@ func RegisterTeachingServiceHandlerServer(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetClassrooms_0(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetClassrooms_0{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetClassrooms_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -704,7 +704,7 @@ func RegisterTeachingServiceHandlerServer(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetClassrooms_1(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetClassrooms_1{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetClassrooms_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -728,7 +728,7 @@ func RegisterTeachingServiceHandlerServer(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetClassroomUsages_0(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetClassroomUsages_0{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetClassroomUsages_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -752,7 +752,7 @@ func RegisterTeachingServiceHandlerServer(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetClassroomUsages_1(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetClassroomUsages_1{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetClassroomUsages_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -776,7 +776,7 @@ func RegisterTeachingServiceHandlerServer(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetUnusedClassrooms_0(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetUnusedClassrooms_0{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetUnusedClassrooms_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -800,7 +800,7 @@ func RegisterTeachingServiceHandlerServer(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetUnusedClassrooms_1(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetUnusedClassrooms_1{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetUnusedClassrooms_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -862,7 +862,7 @@ func RegisterTeachingServiceHandlerClient(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetSchedule_0(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetSchedule_0{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetSchedule_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -883,7 +883,7 @@ func RegisterTeachingServiceHandlerClient(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetSchedule_1(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetSchedule_1{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetSchedule_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -904,7 +904,7 @@ func RegisterTeachingServiceHandlerClient(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetSchedule_2(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetSchedule_2{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetSchedule_2(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1030,7 +1030,7 @@ func RegisterTeachingServiceHandlerClient(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetClassrooms_0(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetClassrooms_0{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetClassrooms_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1051,7 +1051,7 @@ func RegisterTeachingServiceHandlerClient(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetClassrooms_1(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetClassrooms_1{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetClassrooms_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1072,7 +1072,7 @@ func RegisterTeachingServiceHandlerClient(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetClassroomUsages_0(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetClassroomUsages_0{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetClassroomUsages_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1093,7 +1093,7 @@ func RegisterTeachingServiceHandlerClient(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetClassroomUsages_1(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetClassroomUsages_1{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetClassroomUsages_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1114,7 +1114,7 @@ func RegisterTeachingServiceHandlerClient(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetUnusedClassrooms_0(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetUnusedClassrooms_0{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetUnusedClassrooms_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1135,94 +1135,13 @@ func RegisterTeachingServiceHandlerClient(ctx context.Context, mux *runtime.Serv return } - forward_TeachingService_GetUnusedClassrooms_1(ctx, mux, outboundMarshaler, w, req, response_TeachingService_GetUnusedClassrooms_1{resp}, mux.GetForwardResponseOptions()...) + forward_TeachingService_GetUnusedClassrooms_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) return nil } -type response_TeachingService_GetSchedule_0 struct { - proto.Message -} - -func (m response_TeachingService_GetSchedule_0) XXX_ResponseBody() interface{} { - response := m.Message.(*GetScheduleResponse) - return response.Items -} - -type response_TeachingService_GetSchedule_1 struct { - proto.Message -} - -func (m response_TeachingService_GetSchedule_1) XXX_ResponseBody() interface{} { - response := m.Message.(*GetScheduleResponse) - return response.Items -} - -type response_TeachingService_GetSchedule_2 struct { - proto.Message -} - -func (m response_TeachingService_GetSchedule_2) XXX_ResponseBody() interface{} { - response := m.Message.(*GetScheduleResponse) - return response.Items -} - -type response_TeachingService_GetClassrooms_0 struct { - proto.Message -} - -func (m response_TeachingService_GetClassrooms_0) XXX_ResponseBody() interface{} { - response := m.Message.(*ClassroomsResponse) - return response.Items -} - -type response_TeachingService_GetClassrooms_1 struct { - proto.Message -} - -func (m response_TeachingService_GetClassrooms_1) XXX_ResponseBody() interface{} { - response := m.Message.(*ClassroomsResponse) - return response.Items -} - -type response_TeachingService_GetClassroomUsages_0 struct { - proto.Message -} - -func (m response_TeachingService_GetClassroomUsages_0) XXX_ResponseBody() interface{} { - response := m.Message.(*ClassroomUsagesResponse) - return response.Items -} - -type response_TeachingService_GetClassroomUsages_1 struct { - proto.Message -} - -func (m response_TeachingService_GetClassroomUsages_1) XXX_ResponseBody() interface{} { - response := m.Message.(*ClassroomUsagesResponse) - return response.Items -} - -type response_TeachingService_GetUnusedClassrooms_0 struct { - proto.Message -} - -func (m response_TeachingService_GetUnusedClassrooms_0) XXX_ResponseBody() interface{} { - response := m.Message.(*ClassroomsResponse) - return response.Items -} - -type response_TeachingService_GetUnusedClassrooms_1 struct { - proto.Message -} - -func (m response_TeachingService_GetUnusedClassrooms_1) XXX_ResponseBody() interface{} { - response := m.Message.(*ClassroomsResponse) - return response.Items -} - var ( pattern_TeachingService_GetSchedule_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"teaching", "v1", "schedule"}, "")) diff --git a/campusapis/teaching/v1/teaching.proto b/campusapis/teaching/v1/teaching.proto index a6835bf..c46d99d 100644 --- a/campusapis/teaching/v1/teaching.proto +++ b/campusapis/teaching/v1/teaching.proto @@ -34,14 +34,11 @@ service TeachingService { rpc GetSchedule(GetScheduleRequest) returns (GetScheduleResponse) { option (google.api.http) = { get: "/teaching/v1/schedule" - response_body: "items" additional_bindings { get: "/teaching/schedule" - response_body: "items" } additional_bindings { get: "/student/v2/schedule" - response_body: "items" } }; } @@ -70,37 +67,31 @@ service TeachingService { rpc GetGlobalSchedule(GetGlobalScheduleRequest) returns (GetGlobalScheduleResponse) {} // 获取所有教室列表 - rpc GetClassrooms(GetClassroomsRequest) returns (ClassroomsResponse) { + rpc GetClassrooms(GetClassroomsRequest) returns (GetClassroomsResponse) { option (google.api.http) = { get: "/teaching/v1/classroom" - response_body: "items" additional_bindings { get: "/teaching/classroom" - response_body: "items" } }; } // 获取某一教室的使用情况 - rpc GetClassroomUsages(GetClassroomUsageRequest) returns (ClassroomUsagesResponse) { + rpc GetClassroomUsages(GetClassroomUsagesRequest) returns (GetClassroomUsagesResponse) { option (google.api.http) = { get: "/teaching/v1/classroom/usage" - response_body: "items" additional_bindings { get: "/teaching/classroom/usage" - response_body: "items" } }; } // 获取所有空教室列表 - rpc GetUnusedClassrooms(GetUnusedClassroomsRequest) returns (ClassroomsResponse) { + rpc GetUnusedClassrooms(GetUnusedClassroomsRequest) returns (GetUnusedClassroomsResponse) { option (google.api.http) = { get: "/teaching/v1/classroom/unused" - response_body: "items" additional_bindings { get: "/teaching/classroom/unused" - response_body: "items" } }; } @@ -127,7 +118,9 @@ message GetScheduleRequest { // GetScheduleResponse 课表列表返回体 message GetScheduleResponse { - repeated ScheduleResponseCourse items = 1; + uint32 error = 1; + string msg = 2; + repeated ScheduleResponseCourse data = 3; } // ScheduleResponseCourse 单课程返回体(如高等数学课) @@ -262,6 +255,17 @@ message StaffInfo { // GetScheduleNowResponse 今天,明天课表信息返回体 message GetScheduleNowResponse { + uint32 error = 1; + string msg = 2; + Data data = 3; + + message Data { + // 今天课表 + repeated Course today = 1; + // 明天课表 + repeated Course tomorrow = 2; + } + // 课表 message Course { // 开始节次 @@ -281,18 +285,20 @@ message GetScheduleNowResponse { // 时长 string duration = 8; } - // 今天课表 - repeated Course today = 1; - // 明天课表 - repeated Course tomorrow = 2; } // GetScheduleNowV2Response 今天,明天课表信息返回体 message GetScheduleNowV2Response { - // 今天的课表 - repeated ScheduleResponseCourse Today = 1; - // 明天的课表 - repeated ScheduleResponseCourse Tomorrow = 2; + uint32 error = 1; + string msg = 2; + Data data = 3; + + message Data { + // 今天的课表 + repeated ScheduleResponseCourse Today = 1; + // 明天的课表 + repeated ScheduleResponseCourse Tomorrow = 2; + } } // GetGlobalScheduleRequest 全局课表请求体 @@ -311,7 +317,9 @@ message GetGlobalScheduleRequest { // GetGlobalScheduleResponse 全局课表返回体 message GetGlobalScheduleResponse { - repeated ScheduleResponseCourse items = 1; + uint32 error = 1; + string msg = 2; + repeated ScheduleResponseCourse data = 3; } // GetClassroomsRequest 教室列表查询关键字 @@ -322,11 +330,11 @@ message GetClassroomsRequest { string semester = 2; } -message GetClassroomUsageRequest { +message GetClassroomUsagesRequest { option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_schema) = { example: "{ \"locationID\": \"111222\" }" json_schema: { - title: "GetClassroomUsageRequest" + title: "GetClassroomUsagesRequest" description: "教室使用情况请求体" required: [ "locationID" @@ -360,6 +368,20 @@ message GetUnusedClassroomsRequest { int32 section = 5; } +message GetClassroomsResponse { + uint32 error = 1; + string msg = 2; + // 教室列表 + repeated Classroom data = 3; +} + +message GetUnusedClassroomsResponse { + uint32 error = 1; + string msg = 2; + // 教室列表 + repeated Classroom data = 3; +} + // ClassroomsResponse 教室查询返回体 message ClassroomsResponse { // 教室列表 @@ -382,8 +404,8 @@ message Classroom { string buildingName = 6; } -// ClassroomUsagesResponse 教室使用情况返回体 -message ClassroomUsagesResponse { +// GetClassroomUsagesResponse 教室使用情况返回体 +message GetClassroomUsagesResponse { // 内嵌信息 message Nested { // 教室信息 diff --git a/campusapis/teaching/v1/teaching_grpc.pb.go b/campusapis/teaching/v1/teaching_grpc.pb.go index 36bcdb1..0112685 100644 --- a/campusapis/teaching/v1/teaching_grpc.pb.go +++ b/campusapis/teaching/v1/teaching_grpc.pb.go @@ -32,11 +32,11 @@ type TeachingServiceClient interface { // 获取全局课表,用于推送课程信息,不开放HTTP接口对外使用 GetGlobalSchedule(ctx context.Context, in *GetGlobalScheduleRequest, opts ...grpc.CallOption) (*GetGlobalScheduleResponse, error) // 获取所有教室列表 - GetClassrooms(ctx context.Context, in *GetClassroomsRequest, opts ...grpc.CallOption) (*ClassroomsResponse, error) + GetClassrooms(ctx context.Context, in *GetClassroomsRequest, opts ...grpc.CallOption) (*GetClassroomsResponse, error) // 获取某一教室的使用情况 - GetClassroomUsages(ctx context.Context, in *GetClassroomUsageRequest, opts ...grpc.CallOption) (*ClassroomUsagesResponse, error) + GetClassroomUsages(ctx context.Context, in *GetClassroomUsagesRequest, opts ...grpc.CallOption) (*GetClassroomUsagesResponse, error) // 获取所有空教室列表 - GetUnusedClassrooms(ctx context.Context, in *GetUnusedClassroomsRequest, opts ...grpc.CallOption) (*ClassroomsResponse, error) + GetUnusedClassrooms(ctx context.Context, in *GetUnusedClassroomsRequest, opts ...grpc.CallOption) (*GetUnusedClassroomsResponse, error) } type teachingServiceClient struct { @@ -83,8 +83,8 @@ func (c *teachingServiceClient) GetGlobalSchedule(ctx context.Context, in *GetGl return out, nil } -func (c *teachingServiceClient) GetClassrooms(ctx context.Context, in *GetClassroomsRequest, opts ...grpc.CallOption) (*ClassroomsResponse, error) { - out := new(ClassroomsResponse) +func (c *teachingServiceClient) GetClassrooms(ctx context.Context, in *GetClassroomsRequest, opts ...grpc.CallOption) (*GetClassroomsResponse, error) { + out := new(GetClassroomsResponse) err := c.cc.Invoke(ctx, "/campusapis.teaching.v1.TeachingService/GetClassrooms", in, out, opts...) if err != nil { return nil, err @@ -92,8 +92,8 @@ func (c *teachingServiceClient) GetClassrooms(ctx context.Context, in *GetClassr return out, nil } -func (c *teachingServiceClient) GetClassroomUsages(ctx context.Context, in *GetClassroomUsageRequest, opts ...grpc.CallOption) (*ClassroomUsagesResponse, error) { - out := new(ClassroomUsagesResponse) +func (c *teachingServiceClient) GetClassroomUsages(ctx context.Context, in *GetClassroomUsagesRequest, opts ...grpc.CallOption) (*GetClassroomUsagesResponse, error) { + out := new(GetClassroomUsagesResponse) err := c.cc.Invoke(ctx, "/campusapis.teaching.v1.TeachingService/GetClassroomUsages", in, out, opts...) if err != nil { return nil, err @@ -101,8 +101,8 @@ func (c *teachingServiceClient) GetClassroomUsages(ctx context.Context, in *GetC return out, nil } -func (c *teachingServiceClient) GetUnusedClassrooms(ctx context.Context, in *GetUnusedClassroomsRequest, opts ...grpc.CallOption) (*ClassroomsResponse, error) { - out := new(ClassroomsResponse) +func (c *teachingServiceClient) GetUnusedClassrooms(ctx context.Context, in *GetUnusedClassroomsRequest, opts ...grpc.CallOption) (*GetUnusedClassroomsResponse, error) { + out := new(GetUnusedClassroomsResponse) err := c.cc.Invoke(ctx, "/campusapis.teaching.v1.TeachingService/GetUnusedClassrooms", in, out, opts...) if err != nil { return nil, err @@ -123,11 +123,11 @@ type TeachingServiceServer interface { // 获取全局课表,用于推送课程信息,不开放HTTP接口对外使用 GetGlobalSchedule(context.Context, *GetGlobalScheduleRequest) (*GetGlobalScheduleResponse, error) // 获取所有教室列表 - GetClassrooms(context.Context, *GetClassroomsRequest) (*ClassroomsResponse, error) + GetClassrooms(context.Context, *GetClassroomsRequest) (*GetClassroomsResponse, error) // 获取某一教室的使用情况 - GetClassroomUsages(context.Context, *GetClassroomUsageRequest) (*ClassroomUsagesResponse, error) + GetClassroomUsages(context.Context, *GetClassroomUsagesRequest) (*GetClassroomUsagesResponse, error) // 获取所有空教室列表 - GetUnusedClassrooms(context.Context, *GetUnusedClassroomsRequest) (*ClassroomsResponse, error) + GetUnusedClassrooms(context.Context, *GetUnusedClassroomsRequest) (*GetUnusedClassroomsResponse, error) } // UnimplementedTeachingServiceServer should be embedded to have forward compatible implementations. @@ -146,13 +146,13 @@ func (UnimplementedTeachingServiceServer) GetScheduleNowV2(context.Context, *emp func (UnimplementedTeachingServiceServer) GetGlobalSchedule(context.Context, *GetGlobalScheduleRequest) (*GetGlobalScheduleResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGlobalSchedule not implemented") } -func (UnimplementedTeachingServiceServer) GetClassrooms(context.Context, *GetClassroomsRequest) (*ClassroomsResponse, error) { +func (UnimplementedTeachingServiceServer) GetClassrooms(context.Context, *GetClassroomsRequest) (*GetClassroomsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetClassrooms not implemented") } -func (UnimplementedTeachingServiceServer) GetClassroomUsages(context.Context, *GetClassroomUsageRequest) (*ClassroomUsagesResponse, error) { +func (UnimplementedTeachingServiceServer) GetClassroomUsages(context.Context, *GetClassroomUsagesRequest) (*GetClassroomUsagesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetClassroomUsages not implemented") } -func (UnimplementedTeachingServiceServer) GetUnusedClassrooms(context.Context, *GetUnusedClassroomsRequest) (*ClassroomsResponse, error) { +func (UnimplementedTeachingServiceServer) GetUnusedClassrooms(context.Context, *GetUnusedClassroomsRequest) (*GetUnusedClassroomsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUnusedClassrooms not implemented") } @@ -258,7 +258,7 @@ func _TeachingService_GetClassrooms_Handler(srv interface{}, ctx context.Context } func _TeachingService_GetClassroomUsages_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetClassroomUsageRequest) + in := new(GetClassroomUsagesRequest) if err := dec(in); err != nil { return nil, err } @@ -270,7 +270,7 @@ func _TeachingService_GetClassroomUsages_Handler(srv interface{}, ctx context.Co FullMethod: "/campusapis.teaching.v1.TeachingService/GetClassroomUsages", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(TeachingServiceServer).GetClassroomUsages(ctx, req.(*GetClassroomUsageRequest)) + return srv.(TeachingServiceServer).GetClassroomUsages(ctx, req.(*GetClassroomUsagesRequest)) } return interceptor(ctx, in, info, handler) } diff --git a/consultingapis/faq/v1/faq.pb.go b/consultingapis/faq/v1/faq.pb.go index a59919c..fb77baa 100644 --- a/consultingapis/faq/v1/faq.pb.go +++ b/consultingapis/faq/v1/faq.pb.go @@ -11,7 +11,7 @@ import ( _ "google.golang.org/genproto/googleapis/api/httpbody" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - emptypb "google.golang.org/protobuf/types/known/emptypb" + _ "google.golang.org/protobuf/types/known/emptypb" _ "google.golang.org/protobuf/types/known/structpb" reflect "reflect" sync "sync" @@ -24,17 +24,16 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type FAQUpdateInfo struct { +type CreateFAQRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - FaqId string `protobuf:"bytes,1,opt,name=faq_id,json=faqId,proto3" json:"faq_id,omitempty"` - Info *FAQInfo `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"` + Data *FAQInfo `protobuf:"bytes,1,opt,name=data,proto3" json:"data,omitempty"` } -func (x *FAQUpdateInfo) Reset() { - *x = FAQUpdateInfo{} +func (x *CreateFAQRequest) Reset() { + *x = CreateFAQRequest{} if protoimpl.UnsafeEnabled { mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -42,13 +41,13 @@ func (x *FAQUpdateInfo) Reset() { } } -func (x *FAQUpdateInfo) String() string { +func (x *CreateFAQRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FAQUpdateInfo) ProtoMessage() {} +func (*CreateFAQRequest) ProtoMessage() {} -func (x *FAQUpdateInfo) ProtoReflect() protoreflect.Message { +func (x *CreateFAQRequest) ProtoReflect() protoreflect.Message { mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -60,54 +59,217 @@ func (x *FAQUpdateInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FAQUpdateInfo.ProtoReflect.Descriptor instead. -func (*FAQUpdateInfo) Descriptor() ([]byte, []int) { +// Deprecated: Use CreateFAQRequest.ProtoReflect.Descriptor instead. +func (*CreateFAQRequest) Descriptor() ([]byte, []int) { return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{0} } -func (x *FAQUpdateInfo) GetFaqId() string { +func (x *CreateFAQRequest) GetData() *FAQInfo { + if x != nil { + return x.Data + } + return nil +} + +type CreateFAQResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *FAQ `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *CreateFAQResponse) Reset() { + *x = CreateFAQResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CreateFAQResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CreateFAQResponse) ProtoMessage() {} + +func (x *CreateFAQResponse) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CreateFAQResponse.ProtoReflect.Descriptor instead. +func (*CreateFAQResponse) Descriptor() ([]byte, []int) { + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{1} +} + +func (x *CreateFAQResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *CreateFAQResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *CreateFAQResponse) GetData() *FAQ { + if x != nil { + return x.Data + } + return nil +} + +type GetFAQRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FaqId string `protobuf:"bytes,1,opt,name=faq_id,json=faqId,proto3" json:"faq_id,omitempty"` +} + +func (x *GetFAQRequest) Reset() { + *x = GetFAQRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFAQRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFAQRequest) ProtoMessage() {} + +func (x *GetFAQRequest) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFAQRequest.ProtoReflect.Descriptor instead. +func (*GetFAQRequest) Descriptor() ([]byte, []int) { + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{2} +} + +func (x *GetFAQRequest) GetFaqId() string { if x != nil { return x.FaqId } return "" } -func (x *FAQUpdateInfo) GetInfo() *FAQInfo { +type GetFAQResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *FAQ `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetFAQResponse) Reset() { + *x = GetFAQResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetFAQResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetFAQResponse) ProtoMessage() {} + +func (x *GetFAQResponse) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetFAQResponse.ProtoReflect.Descriptor instead. +func (*GetFAQResponse) Descriptor() ([]byte, []int) { + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{3} +} + +func (x *GetFAQResponse) GetError() uint32 { if x != nil { - return x.Info + return x.Error + } + return 0 +} + +func (x *GetFAQResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetFAQResponse) GetData() *FAQ { + if x != nil { + return x.Data } return nil } -type FAQInfo struct { +type UpdateFAQRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CategoryId string `protobuf:"bytes,1,opt,name=category_id,json=categoryId,proto3" json:"category_id,omitempty"` - Question string `protobuf:"bytes,2,opt,name=question,proto3" json:"question,omitempty"` - Answer string `protobuf:"bytes,3,opt,name=answer,proto3" json:"answer,omitempty"` - AnswerRichtext string `protobuf:"bytes,4,opt,name=answer_richtext,json=answerRichtext,proto3" json:"answer_richtext,omitempty"` - Tags []string `protobuf:"bytes,5,rep,name=tags,proto3" json:"tags,omitempty"` + FaqId string `protobuf:"bytes,1,opt,name=faq_id,json=faqId,proto3" json:"faq_id,omitempty"` + Data *FAQInfo `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` } -func (x *FAQInfo) Reset() { - *x = FAQInfo{} +func (x *UpdateFAQRequest) Reset() { + *x = UpdateFAQRequest{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[1] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FAQInfo) String() string { +func (x *UpdateFAQRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FAQInfo) ProtoMessage() {} +func (*UpdateFAQRequest) ProtoMessage() {} -func (x *FAQInfo) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[1] +func (x *UpdateFAQRequest) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -118,71 +280,274 @@ func (x *FAQInfo) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FAQInfo.ProtoReflect.Descriptor instead. -func (*FAQInfo) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{1} +// Deprecated: Use UpdateFAQRequest.ProtoReflect.Descriptor instead. +func (*UpdateFAQRequest) Descriptor() ([]byte, []int) { + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{4} } -func (x *FAQInfo) GetCategoryId() string { +func (x *UpdateFAQRequest) GetFaqId() string { if x != nil { - return x.CategoryId + return x.FaqId } return "" } -func (x *FAQInfo) GetQuestion() string { +func (x *UpdateFAQRequest) GetData() *FAQInfo { if x != nil { - return x.Question + return x.Data + } + return nil +} + +type UpdateFAQResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *FAQ `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *UpdateFAQResponse) Reset() { + *x = UpdateFAQResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UpdateFAQResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateFAQResponse) ProtoMessage() {} + +func (x *UpdateFAQResponse) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateFAQResponse.ProtoReflect.Descriptor instead. +func (*UpdateFAQResponse) Descriptor() ([]byte, []int) { + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{5} +} + +func (x *UpdateFAQResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *UpdateFAQResponse) GetMsg() string { + if x != nil { + return x.Msg } return "" } -func (x *FAQInfo) GetAnswer() string { +func (x *UpdateFAQResponse) GetData() *FAQ { if x != nil { - return x.Answer + return x.Data + } + return nil +} + +type DeleteFAQRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FaqId string `protobuf:"bytes,1,opt,name=faq_id,json=faqId,proto3" json:"faq_id,omitempty"` +} + +func (x *DeleteFAQRequest) Reset() { + *x = DeleteFAQRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteFAQRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFAQRequest) ProtoMessage() {} + +func (x *DeleteFAQRequest) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFAQRequest.ProtoReflect.Descriptor instead. +func (*DeleteFAQRequest) Descriptor() ([]byte, []int) { + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{6} +} + +func (x *DeleteFAQRequest) GetFaqId() string { + if x != nil { + return x.FaqId } return "" } -func (x *FAQInfo) GetAnswerRichtext() string { +type DeleteFAQResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *DeleteFAQResponse) Reset() { + *x = DeleteFAQResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteFAQResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteFAQResponse) ProtoMessage() {} + +func (x *DeleteFAQResponse) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteFAQResponse.ProtoReflect.Descriptor instead. +func (*DeleteFAQResponse) Descriptor() ([]byte, []int) { + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{7} +} + +func (x *DeleteFAQResponse) GetError() uint32 { if x != nil { - return x.AnswerRichtext + return x.Error + } + return 0 +} + +func (x *DeleteFAQResponse) GetMsg() string { + if x != nil { + return x.Msg } return "" } -func (x *FAQInfo) GetTags() []string { +type FAQUpdateInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FaqId string `protobuf:"bytes,1,opt,name=faq_id,json=faqId,proto3" json:"faq_id,omitempty"` + Info *FAQInfo `protobuf:"bytes,2,opt,name=info,proto3" json:"info,omitempty"` +} + +func (x *FAQUpdateInfo) Reset() { + *x = FAQUpdateInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FAQUpdateInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FAQUpdateInfo) ProtoMessage() {} + +func (x *FAQUpdateInfo) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FAQUpdateInfo.ProtoReflect.Descriptor instead. +func (*FAQUpdateInfo) Descriptor() ([]byte, []int) { + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{8} +} + +func (x *FAQUpdateInfo) GetFaqId() string { if x != nil { - return x.Tags + return x.FaqId + } + return "" +} + +func (x *FAQUpdateInfo) GetInfo() *FAQInfo { + if x != nil { + return x.Info } return nil } -type FAQIDRequest struct { +type FAQInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` + CategoryId string `protobuf:"bytes,1,opt,name=category_id,json=categoryId,proto3" json:"category_id,omitempty"` + Question string `protobuf:"bytes,2,opt,name=question,proto3" json:"question,omitempty"` + Answer string `protobuf:"bytes,3,opt,name=answer,proto3" json:"answer,omitempty"` + AnswerRichtext string `protobuf:"bytes,4,opt,name=answer_richtext,json=answerRichtext,proto3" json:"answer_richtext,omitempty"` + Tags []string `protobuf:"bytes,5,rep,name=tags,proto3" json:"tags,omitempty"` } -func (x *FAQIDRequest) Reset() { - *x = FAQIDRequest{} +func (x *FAQInfo) Reset() { + *x = FAQInfo{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[2] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FAQIDRequest) String() string { +func (x *FAQInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FAQIDRequest) ProtoMessage() {} +func (*FAQInfo) ProtoMessage() {} -func (x *FAQIDRequest) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[2] +func (x *FAQInfo) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -193,18 +558,46 @@ func (x *FAQIDRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FAQIDRequest.ProtoReflect.Descriptor instead. -func (*FAQIDRequest) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{2} +// Deprecated: Use FAQInfo.ProtoReflect.Descriptor instead. +func (*FAQInfo) Descriptor() ([]byte, []int) { + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{9} } -func (x *FAQIDRequest) GetId() string { +func (x *FAQInfo) GetCategoryId() string { if x != nil { - return x.Id + return x.CategoryId + } + return "" +} + +func (x *FAQInfo) GetQuestion() string { + if x != nil { + return x.Question } return "" } +func (x *FAQInfo) GetAnswer() string { + if x != nil { + return x.Answer + } + return "" +} + +func (x *FAQInfo) GetAnswerRichtext() string { + if x != nil { + return x.AnswerRichtext + } + return "" +} + +func (x *FAQInfo) GetTags() []string { + if x != nil { + return x.Tags + } + return nil +} + type GetFAQImageRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -217,7 +610,7 @@ type GetFAQImageRequest struct { func (x *GetFAQImageRequest) Reset() { *x = GetFAQImageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[3] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -230,7 +623,7 @@ func (x *GetFAQImageRequest) String() string { func (*GetFAQImageRequest) ProtoMessage() {} func (x *GetFAQImageRequest) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[3] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -243,7 +636,7 @@ func (x *GetFAQImageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFAQImageRequest.ProtoReflect.Descriptor instead. func (*GetFAQImageRequest) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{3} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{10} } func (x *GetFAQImageRequest) GetFaqId() string { @@ -271,7 +664,7 @@ type GetFAQImageResponse struct { func (x *GetFAQImageResponse) Reset() { *x = GetFAQImageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[4] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -284,7 +677,7 @@ func (x *GetFAQImageResponse) String() string { func (*GetFAQImageResponse) ProtoMessage() {} func (x *GetFAQImageResponse) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[4] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -297,7 +690,7 @@ func (x *GetFAQImageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFAQImageResponse.ProtoReflect.Descriptor instead. func (*GetFAQImageResponse) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{4} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{11} } func (x *GetFAQImageResponse) GetImage() []byte { @@ -318,7 +711,7 @@ type SearchFAQAnswerRichtextRequest struct { func (x *SearchFAQAnswerRichtextRequest) Reset() { *x = SearchFAQAnswerRichtextRequest{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[5] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -331,7 +724,7 @@ func (x *SearchFAQAnswerRichtextRequest) String() string { func (*SearchFAQAnswerRichtextRequest) ProtoMessage() {} func (x *SearchFAQAnswerRichtextRequest) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[5] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -344,7 +737,7 @@ func (x *SearchFAQAnswerRichtextRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchFAQAnswerRichtextRequest.ProtoReflect.Descriptor instead. func (*SearchFAQAnswerRichtextRequest) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{5} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{12} } func (x *SearchFAQAnswerRichtextRequest) GetKey() string { @@ -366,7 +759,7 @@ type SearchFAQAnswerRichtextResponse struct { func (x *SearchFAQAnswerRichtextResponse) Reset() { *x = SearchFAQAnswerRichtextResponse{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[6] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -379,7 +772,7 @@ func (x *SearchFAQAnswerRichtextResponse) String() string { func (*SearchFAQAnswerRichtextResponse) ProtoMessage() {} func (x *SearchFAQAnswerRichtextResponse) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[6] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -392,7 +785,7 @@ func (x *SearchFAQAnswerRichtextResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchFAQAnswerRichtextResponse.ProtoReflect.Descriptor instead. func (*SearchFAQAnswerRichtextResponse) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{6} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{13} } func (x *SearchFAQAnswerRichtextResponse) GetFaqId() string { @@ -432,7 +825,7 @@ type FAQ struct { func (x *FAQ) Reset() { *x = FAQ{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[7] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -445,7 +838,7 @@ func (x *FAQ) String() string { func (*FAQ) ProtoMessage() {} func (x *FAQ) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[7] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -458,7 +851,7 @@ func (x *FAQ) ProtoReflect() protoreflect.Message { // Deprecated: Use FAQ.ProtoReflect.Descriptor instead. func (*FAQ) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{7} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{14} } func (x *FAQ) GetFaqId() string { @@ -574,7 +967,7 @@ type AnswerRichtext struct { func (x *AnswerRichtext) Reset() { *x = AnswerRichtext{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[8] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -587,7 +980,7 @@ func (x *AnswerRichtext) String() string { func (*AnswerRichtext) ProtoMessage() {} func (x *AnswerRichtext) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[8] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -600,7 +993,7 @@ func (x *AnswerRichtext) ProtoReflect() protoreflect.Message { // Deprecated: Use AnswerRichtext.ProtoReflect.Descriptor instead. func (*AnswerRichtext) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{8} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{15} } func (x *AnswerRichtext) GetType() string { @@ -675,7 +1068,7 @@ type Category struct { func (x *Category) Reset() { *x = Category{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[9] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -688,7 +1081,7 @@ func (x *Category) String() string { func (*Category) ProtoMessage() {} func (x *Category) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[9] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -701,7 +1094,7 @@ func (x *Category) ProtoReflect() protoreflect.Message { // Deprecated: Use Category.ProtoReflect.Descriptor instead. func (*Category) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{9} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{16} } func (x *Category) GetCategoryId() string { @@ -759,7 +1152,7 @@ type User struct { func (x *User) Reset() { *x = User{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[10] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -772,7 +1165,7 @@ func (x *User) String() string { func (*User) ProtoMessage() {} func (x *User) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[10] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -785,7 +1178,7 @@ func (x *User) ProtoReflect() protoreflect.Message { // Deprecated: Use User.ProtoReflect.Descriptor instead. func (*User) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{10} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{17} } func (x *User) GetId() string { @@ -822,157 +1215,199 @@ var file_consultingapis_faq_v1_faq_proto_rawDesc = []byte{ 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x5a, 0x0a, 0x0d, - 0x46, 0x41, 0x51, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x0a, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x46, 0x0a, 0x10, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x6b, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, + 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x26, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x22, 0x68, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x5d, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x32, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, + 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x6b, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, + 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x29, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x5a, 0x0a, 0x0d, 0x46, 0x41, 0x51, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, + 0x32, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, + 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, + 0x6e, 0x66, 0x6f, 0x22, 0x9b, 0x01, 0x0a, 0x07, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x72, + 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x22, 0x48, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x1b, + 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x2b, 0x0a, 0x13, 0x47, + 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x32, 0x0a, 0x1e, 0x53, 0x65, 0x61, 0x72, + 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, + 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x77, 0x0a, 0x1f, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, + 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x06, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0xde, 0x03, 0x0a, 0x03, 0x46, 0x41, 0x51, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, - 0x61, 0x71, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x9b, 0x01, 0x0a, 0x07, 0x46, 0x41, 0x51, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x61, 0x71, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, + 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x6c, 0x70, 0x64, + 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x73, - 0x77, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x77, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, - 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x1e, 0x0a, 0x0c, 0x46, 0x41, 0x51, 0x49, 0x44, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x22, 0x48, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, - 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, - 0x71, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, - 0x22, 0x2b, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x32, 0x0a, - 0x1e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, - 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x22, 0x77, 0x0a, 0x1f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, - 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x61, - 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, - 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, - 0x78, 0x74, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0xde, 0x03, 0x0a, 0x03, 0x46, - 0x41, 0x51, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x6c, - 0x70, 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x27, - 0x0a, 0x0f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, - 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, - 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x63, 0x61, 0x74, - 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, + 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, + 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, - 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x0a, - 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, - 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x3c, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x3c, 0x0a, - 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x22, 0xb6, 0x01, 0x0a, 0x0e, - 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x73, 0x72, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, - 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, - 0x69, 0x67, 0x68, 0x74, 0x22, 0xa9, 0x01, 0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, - 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, - 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x5f, - 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, - 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, - 0x22, 0x49, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, - 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, - 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0xa6, 0x05, 0x0a, 0x0a, - 0x46, 0x41, 0x51, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5b, 0x0a, 0x09, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, - 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, - 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, - 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, - 0x46, 0x41, 0x51, 0x22, 0x12, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0c, 0x22, 0x07, 0x2f, 0x66, 0x61, - 0x71, 0x2f, 0x76, 0x31, 0x3a, 0x01, 0x2a, 0x12, 0x60, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x46, 0x41, - 0x51, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, - 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, - 0x46, 0x41, 0x51, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x63, + 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x22, 0xb6, 0x01, 0x0a, 0x0e, 0x41, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, + 0x03, 0x73, 0x72, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, + 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, + 0x79, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, + 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, + 0xa9, 0x01, 0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, + 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x49, 0x0a, 0x04, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, + 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, + 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0xf3, 0x05, 0x0a, 0x0a, 0x46, 0x41, 0x51, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x75, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, + 0x41, 0x51, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, + 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x07, 0x2f, + 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x66, 0x0a, 0x06, + 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, - 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x22, 0x0f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x09, - 0x12, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x12, 0x5a, 0x0a, 0x09, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, - 0x41, 0x51, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x22, 0x0f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x09, 0x32, 0x07, 0x2f, 0x66, - 0x61, 0x71, 0x2f, 0x76, 0x31, 0x12, 0x5d, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, - 0x41, 0x51, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x44, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, - 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, - 0x46, 0x41, 0x51, 0x22, 0x0f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x09, 0x2a, 0x07, 0x2f, 0x66, 0x61, - 0x71, 0x2f, 0x76, 0x31, 0x12, 0x7b, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x12, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, - 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, - 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6d, 0x61, 0x67, - 0x65, 0x12, 0xa0, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, - 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x35, 0x2e, - 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, - 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, - 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, - 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x42, 0xd8, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x6e, + 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x09, 0x12, 0x07, 0x2f, 0x66, 0x61, + 0x71, 0x2f, 0x76, 0x31, 0x12, 0x75, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, + 0x51, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, - 0x76, 0x31, 0x42, 0x08, 0x46, 0x61, 0x71, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, - 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, - 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x66, - 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x61, 0x71, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x46, - 0x58, 0xaa, 0x02, 0x15, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x46, 0x61, 0x71, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x43, 0x6f, 0x6e, 0x73, + 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x32, 0x07, 0x2f, 0x66, + 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x6f, 0x0a, 0x09, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x09, 0x2a, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x12, 0x7b, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x29, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x66, 0x61, 0x71, + 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0xa0, 0x01, 0x0a, 0x17, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, + 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, + 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, + 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x66, + 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0xd8, 0x01, 0x0a, + 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x46, 0x61, 0x71, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, + 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x61, + 0x71, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x46, 0x58, 0xaa, 0x02, 0x15, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x46, 0x61, 0x71, 0x2e, 0x56, + 0x31, 0xca, 0x02, 0x15, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x5c, 0x46, 0x61, 0x71, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x46, 0x61, 0x71, 0x5c, 0x56, - 0x31, 0xe2, 0x02, 0x21, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x5c, 0x46, 0x61, 0x71, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x46, 0x61, 0x71, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, + 0x46, 0x61, 0x71, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -987,44 +1422,55 @@ func file_consultingapis_faq_v1_faq_proto_rawDescGZIP() []byte { return file_consultingapis_faq_v1_faq_proto_rawDescData } -var file_consultingapis_faq_v1_faq_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_consultingapis_faq_v1_faq_proto_msgTypes = make([]protoimpl.MessageInfo, 18) var file_consultingapis_faq_v1_faq_proto_goTypes = []interface{}{ - (*FAQUpdateInfo)(nil), // 0: consultingapis.faq.v1.FAQUpdateInfo - (*FAQInfo)(nil), // 1: consultingapis.faq.v1.FAQInfo - (*FAQIDRequest)(nil), // 2: consultingapis.faq.v1.FAQIDRequest - (*GetFAQImageRequest)(nil), // 3: consultingapis.faq.v1.GetFAQImageRequest - (*GetFAQImageResponse)(nil), // 4: consultingapis.faq.v1.GetFAQImageResponse - (*SearchFAQAnswerRichtextRequest)(nil), // 5: consultingapis.faq.v1.SearchFAQAnswerRichtextRequest - (*SearchFAQAnswerRichtextResponse)(nil), // 6: consultingapis.faq.v1.SearchFAQAnswerRichtextResponse - (*FAQ)(nil), // 7: consultingapis.faq.v1.FAQ - (*AnswerRichtext)(nil), // 8: consultingapis.faq.v1.AnswerRichtext - (*Category)(nil), // 9: consultingapis.faq.v1.Category - (*User)(nil), // 10: consultingapis.faq.v1.User - (*emptypb.Empty)(nil), // 11: google.protobuf.Empty + (*CreateFAQRequest)(nil), // 0: consultingapis.faq.v1.CreateFAQRequest + (*CreateFAQResponse)(nil), // 1: consultingapis.faq.v1.CreateFAQResponse + (*GetFAQRequest)(nil), // 2: consultingapis.faq.v1.GetFAQRequest + (*GetFAQResponse)(nil), // 3: consultingapis.faq.v1.GetFAQResponse + (*UpdateFAQRequest)(nil), // 4: consultingapis.faq.v1.UpdateFAQRequest + (*UpdateFAQResponse)(nil), // 5: consultingapis.faq.v1.UpdateFAQResponse + (*DeleteFAQRequest)(nil), // 6: consultingapis.faq.v1.DeleteFAQRequest + (*DeleteFAQResponse)(nil), // 7: consultingapis.faq.v1.DeleteFAQResponse + (*FAQUpdateInfo)(nil), // 8: consultingapis.faq.v1.FAQUpdateInfo + (*FAQInfo)(nil), // 9: consultingapis.faq.v1.FAQInfo + (*GetFAQImageRequest)(nil), // 10: consultingapis.faq.v1.GetFAQImageRequest + (*GetFAQImageResponse)(nil), // 11: consultingapis.faq.v1.GetFAQImageResponse + (*SearchFAQAnswerRichtextRequest)(nil), // 12: consultingapis.faq.v1.SearchFAQAnswerRichtextRequest + (*SearchFAQAnswerRichtextResponse)(nil), // 13: consultingapis.faq.v1.SearchFAQAnswerRichtextResponse + (*FAQ)(nil), // 14: consultingapis.faq.v1.FAQ + (*AnswerRichtext)(nil), // 15: consultingapis.faq.v1.AnswerRichtext + (*Category)(nil), // 16: consultingapis.faq.v1.Category + (*User)(nil), // 17: consultingapis.faq.v1.User } var file_consultingapis_faq_v1_faq_proto_depIdxs = []int32{ - 1, // 0: consultingapis.faq.v1.FAQUpdateInfo.info:type_name -> consultingapis.faq.v1.FAQInfo - 8, // 1: consultingapis.faq.v1.SearchFAQAnswerRichtextResponse.answer:type_name -> consultingapis.faq.v1.AnswerRichtext - 9, // 2: consultingapis.faq.v1.FAQ.categories:type_name -> consultingapis.faq.v1.Category - 10, // 3: consultingapis.faq.v1.FAQ.update_user:type_name -> consultingapis.faq.v1.User - 10, // 4: consultingapis.faq.v1.FAQ.create_user:type_name -> consultingapis.faq.v1.User - 1, // 5: consultingapis.faq.v1.FAQService.CreateFAQ:input_type -> consultingapis.faq.v1.FAQInfo - 2, // 6: consultingapis.faq.v1.FAQService.GetFAQDetail:input_type -> consultingapis.faq.v1.FAQIDRequest - 0, // 7: consultingapis.faq.v1.FAQService.UpdateFAQ:input_type -> consultingapis.faq.v1.FAQUpdateInfo - 2, // 8: consultingapis.faq.v1.FAQService.DeleteFAQ:input_type -> consultingapis.faq.v1.FAQIDRequest - 3, // 9: consultingapis.faq.v1.FAQService.GetFAQImage:input_type -> consultingapis.faq.v1.GetFAQImageRequest - 5, // 10: consultingapis.faq.v1.FAQService.SearchFAQAnswerRichtext:input_type -> consultingapis.faq.v1.SearchFAQAnswerRichtextRequest - 7, // 11: consultingapis.faq.v1.FAQService.CreateFAQ:output_type -> consultingapis.faq.v1.FAQ - 7, // 12: consultingapis.faq.v1.FAQService.GetFAQDetail:output_type -> consultingapis.faq.v1.FAQ - 11, // 13: consultingapis.faq.v1.FAQService.UpdateFAQ:output_type -> google.protobuf.Empty - 7, // 14: consultingapis.faq.v1.FAQService.DeleteFAQ:output_type -> consultingapis.faq.v1.FAQ - 4, // 15: consultingapis.faq.v1.FAQService.GetFAQImage:output_type -> consultingapis.faq.v1.GetFAQImageResponse - 6, // 16: consultingapis.faq.v1.FAQService.SearchFAQAnswerRichtext:output_type -> consultingapis.faq.v1.SearchFAQAnswerRichtextResponse - 11, // [11:17] is the sub-list for method output_type - 5, // [5:11] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name + 9, // 0: consultingapis.faq.v1.CreateFAQRequest.data:type_name -> consultingapis.faq.v1.FAQInfo + 14, // 1: consultingapis.faq.v1.CreateFAQResponse.data:type_name -> consultingapis.faq.v1.FAQ + 14, // 2: consultingapis.faq.v1.GetFAQResponse.data:type_name -> consultingapis.faq.v1.FAQ + 9, // 3: consultingapis.faq.v1.UpdateFAQRequest.data:type_name -> consultingapis.faq.v1.FAQInfo + 14, // 4: consultingapis.faq.v1.UpdateFAQResponse.data:type_name -> consultingapis.faq.v1.FAQ + 9, // 5: consultingapis.faq.v1.FAQUpdateInfo.info:type_name -> consultingapis.faq.v1.FAQInfo + 15, // 6: consultingapis.faq.v1.SearchFAQAnswerRichtextResponse.answer:type_name -> consultingapis.faq.v1.AnswerRichtext + 16, // 7: consultingapis.faq.v1.FAQ.categories:type_name -> consultingapis.faq.v1.Category + 17, // 8: consultingapis.faq.v1.FAQ.update_user:type_name -> consultingapis.faq.v1.User + 17, // 9: consultingapis.faq.v1.FAQ.create_user:type_name -> consultingapis.faq.v1.User + 0, // 10: consultingapis.faq.v1.FAQService.CreateFAQ:input_type -> consultingapis.faq.v1.CreateFAQRequest + 2, // 11: consultingapis.faq.v1.FAQService.GetFAQ:input_type -> consultingapis.faq.v1.GetFAQRequest + 4, // 12: consultingapis.faq.v1.FAQService.UpdateFAQ:input_type -> consultingapis.faq.v1.UpdateFAQRequest + 6, // 13: consultingapis.faq.v1.FAQService.DeleteFAQ:input_type -> consultingapis.faq.v1.DeleteFAQRequest + 10, // 14: consultingapis.faq.v1.FAQService.GetFAQImage:input_type -> consultingapis.faq.v1.GetFAQImageRequest + 12, // 15: consultingapis.faq.v1.FAQService.SearchFAQAnswerRichtext:input_type -> consultingapis.faq.v1.SearchFAQAnswerRichtextRequest + 1, // 16: consultingapis.faq.v1.FAQService.CreateFAQ:output_type -> consultingapis.faq.v1.CreateFAQResponse + 3, // 17: consultingapis.faq.v1.FAQService.GetFAQ:output_type -> consultingapis.faq.v1.GetFAQResponse + 5, // 18: consultingapis.faq.v1.FAQService.UpdateFAQ:output_type -> consultingapis.faq.v1.UpdateFAQResponse + 7, // 19: consultingapis.faq.v1.FAQService.DeleteFAQ:output_type -> consultingapis.faq.v1.DeleteFAQResponse + 11, // 20: consultingapis.faq.v1.FAQService.GetFAQImage:output_type -> consultingapis.faq.v1.GetFAQImageResponse + 13, // 21: consultingapis.faq.v1.FAQService.SearchFAQAnswerRichtext:output_type -> consultingapis.faq.v1.SearchFAQAnswerRichtextResponse + 16, // [16:22] is the sub-list for method output_type + 10, // [10:16] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_consultingapis_faq_v1_faq_proto_init() } @@ -1034,7 +1480,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { } if !protoimpl.UnsafeEnabled { file_consultingapis_faq_v1_faq_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FAQUpdateInfo); i { + switch v := v.(*CreateFAQRequest); i { case 0: return &v.state case 1: @@ -1046,7 +1492,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { } } file_consultingapis_faq_v1_faq_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FAQInfo); i { + switch v := v.(*CreateFAQResponse); i { case 0: return &v.state case 1: @@ -1058,7 +1504,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { } } file_consultingapis_faq_v1_faq_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FAQIDRequest); i { + switch v := v.(*GetFAQRequest); i { case 0: return &v.state case 1: @@ -1070,7 +1516,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { } } file_consultingapis_faq_v1_faq_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFAQImageRequest); i { + switch v := v.(*GetFAQResponse); i { case 0: return &v.state case 1: @@ -1082,7 +1528,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { } } file_consultingapis_faq_v1_faq_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFAQImageResponse); i { + switch v := v.(*UpdateFAQRequest); i { case 0: return &v.state case 1: @@ -1094,7 +1540,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { } } file_consultingapis_faq_v1_faq_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchFAQAnswerRichtextRequest); i { + switch v := v.(*UpdateFAQResponse); i { case 0: return &v.state case 1: @@ -1106,7 +1552,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { } } file_consultingapis_faq_v1_faq_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SearchFAQAnswerRichtextResponse); i { + switch v := v.(*DeleteFAQRequest); i { case 0: return &v.state case 1: @@ -1118,7 +1564,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { } } file_consultingapis_faq_v1_faq_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FAQ); i { + switch v := v.(*DeleteFAQResponse); i { case 0: return &v.state case 1: @@ -1130,7 +1576,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { } } file_consultingapis_faq_v1_faq_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AnswerRichtext); i { + switch v := v.(*FAQUpdateInfo); i { case 0: return &v.state case 1: @@ -1142,7 +1588,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { } } file_consultingapis_faq_v1_faq_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Category); i { + switch v := v.(*FAQInfo); i { case 0: return &v.state case 1: @@ -1154,6 +1600,90 @@ func file_consultingapis_faq_v1_faq_proto_init() { } } file_consultingapis_faq_v1_faq_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFAQImageRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_consultingapis_faq_v1_faq_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFAQImageResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_consultingapis_faq_v1_faq_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchFAQAnswerRichtextRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_consultingapis_faq_v1_faq_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SearchFAQAnswerRichtextResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_consultingapis_faq_v1_faq_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FAQ); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_consultingapis_faq_v1_faq_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AnswerRichtext); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_consultingapis_faq_v1_faq_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Category); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_consultingapis_faq_v1_faq_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*User); i { case 0: return &v.state @@ -1172,7 +1702,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_consultingapis_faq_v1_faq_proto_rawDesc, NumEnums: 0, - NumMessages: 11, + NumMessages: 18, NumExtensions: 0, NumServices: 1, }, diff --git a/consultingapis/faq/v1/faq.pb.gw.go b/consultingapis/faq/v1/faq.pb.gw.go index 258303f..5250c3a 100644 --- a/consultingapis/faq/v1/faq.pb.gw.go +++ b/consultingapis/faq/v1/faq.pb.gw.go @@ -32,14 +32,14 @@ var _ = utilities.NewDoubleArray var _ = metadata.Join func request_FAQService_CreateFAQ_0(ctx context.Context, marshaler runtime.Marshaler, client FAQServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FAQInfo + var protoReq CreateFAQRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) if berr != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Data); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -49,14 +49,14 @@ func request_FAQService_CreateFAQ_0(ctx context.Context, marshaler runtime.Marsh } func local_request_FAQService_CreateFAQ_0(ctx context.Context, marshaler runtime.Marshaler, server FAQServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FAQInfo + var protoReq CreateFAQRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) if berr != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Data); err != nil && err != io.EOF { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -66,49 +66,57 @@ func local_request_FAQService_CreateFAQ_0(ctx context.Context, marshaler runtime } var ( - filter_FAQService_GetFAQDetail_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + filter_FAQService_GetFAQ_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) -func request_FAQService_GetFAQDetail_0(ctx context.Context, marshaler runtime.Marshaler, client FAQServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FAQIDRequest +func request_FAQService_GetFAQ_0(ctx context.Context, marshaler runtime.Marshaler, client FAQServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFAQRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FAQService_GetFAQDetail_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FAQService_GetFAQ_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetFAQDetail(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetFAQ(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_FAQService_GetFAQDetail_0(ctx context.Context, marshaler runtime.Marshaler, server FAQServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FAQIDRequest +func local_request_FAQService_GetFAQ_0(ctx context.Context, marshaler runtime.Marshaler, server FAQServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetFAQRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FAQService_GetFAQDetail_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_FAQService_GetFAQ_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetFAQDetail(ctx, &protoReq) + msg, err := server.GetFAQ(ctx, &protoReq) return msg, metadata, err } var ( - filter_FAQService_UpdateFAQ_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + filter_FAQService_UpdateFAQ_0 = &utilities.DoubleArray{Encoding: map[string]int{"data": 0}, Base: []int{1, 1, 0}, Check: []int{0, 1, 2}} ) func request_FAQService_UpdateFAQ_0(ctx context.Context, marshaler runtime.Marshaler, client FAQServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FAQUpdateInfo + var protoReq UpdateFAQRequest var metadata runtime.ServerMetadata + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Data); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -122,9 +130,17 @@ func request_FAQService_UpdateFAQ_0(ctx context.Context, marshaler runtime.Marsh } func local_request_FAQService_UpdateFAQ_0(ctx context.Context, marshaler runtime.Marshaler, server FAQServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FAQUpdateInfo + var protoReq UpdateFAQRequest var metadata runtime.ServerMetadata + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq.Data); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -142,7 +158,7 @@ var ( ) func request_FAQService_DeleteFAQ_0(ctx context.Context, marshaler runtime.Marshaler, client FAQServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FAQIDRequest + var protoReq DeleteFAQRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -158,7 +174,7 @@ func request_FAQService_DeleteFAQ_0(ctx context.Context, marshaler runtime.Marsh } func local_request_FAQService_DeleteFAQ_0(ctx context.Context, marshaler runtime.Marshaler, server FAQServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq FAQIDRequest + var protoReq DeleteFAQRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -275,19 +291,19 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, }) - mux.Handle("GET", pattern_FAQService_GetFAQDetail_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_FAQService_GetFAQ_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/GetFAQDetail", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/GetFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_FAQService_GetFAQDetail_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_FAQService_GetFAQ_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -295,7 +311,7 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, return } - forward_FAQService_GetFAQDetail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FAQService_GetFAQ_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -457,24 +473,24 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, }) - mux.Handle("GET", pattern_FAQService_GetFAQDetail_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_FAQService_GetFAQ_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/GetFAQDetail", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/GetFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_FAQService_GetFAQDetail_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_FAQService_GetFAQ_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_FAQService_GetFAQDetail_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_FAQService_GetFAQ_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -568,7 +584,7 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, var ( pattern_FAQService_CreateFAQ_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"faq", "v1"}, "")) - pattern_FAQService_GetFAQDetail_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"faq", "v1"}, "")) + pattern_FAQService_GetFAQ_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"faq", "v1"}, "")) pattern_FAQService_UpdateFAQ_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"faq", "v1"}, "")) @@ -582,7 +598,7 @@ var ( var ( forward_FAQService_CreateFAQ_0 = runtime.ForwardResponseMessage - forward_FAQService_GetFAQDetail_0 = runtime.ForwardResponseMessage + forward_FAQService_GetFAQ_0 = runtime.ForwardResponseMessage forward_FAQService_UpdateFAQ_0 = runtime.ForwardResponseMessage diff --git a/consultingapis/faq/v1/faq.proto b/consultingapis/faq/v1/faq.proto index fdfda56..2de1534 100644 --- a/consultingapis/faq/v1/faq.proto +++ b/consultingapis/faq/v1/faq.proto @@ -10,32 +10,39 @@ import "google/protobuf/struct.proto"; option go_package = "./consultingapis/faq/v1"; service FAQService { - rpc CreateFAQ(FAQInfo) returns (FAQ) { + + rpc CreateFAQ(CreateFAQRequest) returns (CreateFAQResponse) { option (google.api.http) = { post: "/faq/v1" - body: "*" + body: "data" }; } - rpc GetFAQDetail(FAQIDRequest) returns (FAQ) { + + rpc GetFAQ(GetFAQRequest) returns (GetFAQResponse) { option (google.api.http) = { get: "/faq/v1" }; } - rpc UpdateFAQ(FAQUpdateInfo) returns (google.protobuf.Empty) { + + rpc UpdateFAQ(UpdateFAQRequest) returns (UpdateFAQResponse) { option (google.api.http) = { patch: "/faq/v1" + body: "data" }; } - rpc DeleteFAQ(FAQIDRequest) returns (FAQ) { + + rpc DeleteFAQ(DeleteFAQRequest) returns (DeleteFAQResponse) { option (google.api.http) = { delete: "/faq/v1" }; } + rpc GetFAQImage(GetFAQImageRequest) returns (GetFAQImageResponse) { option (google.api.http) = { get: "/faq/v1/image" }; } + rpc SearchFAQAnswerRichtext(SearchFAQAnswerRichtextRequest) returns (SearchFAQAnswerRichtextResponse) { option (google.api.http) = { get: "/faq/v1/search" @@ -43,6 +50,46 @@ service FAQService { } } +message CreateFAQRequest { + FAQInfo data = 1; +} + +message CreateFAQResponse { + uint32 error = 1; + string msg = 2; + FAQ data = 3; +} + +message GetFAQRequest { + string faq_id = 1; +} + +message GetFAQResponse { + uint32 error = 1; + string msg = 2; + FAQ data = 3; +} + +message UpdateFAQRequest { + string faq_id = 1; + FAQInfo data = 2; +} + +message UpdateFAQResponse { + uint32 error = 1; + string msg = 2; + FAQ data = 3; +} + +message DeleteFAQRequest { + string faq_id = 1; +} + +message DeleteFAQResponse { + uint32 error = 1; + string msg = 2; +} + message FAQUpdateInfo { string faq_id = 1; FAQInfo info = 2; @@ -56,10 +103,6 @@ message FAQInfo { repeated string tags = 5; } -message FAQIDRequest { - string id = 1; -} - message GetFAQImageRequest { string faq_id = 1; string image_key = 2; diff --git a/consultingapis/faq/v1/faq_grpc.pb.go b/consultingapis/faq/v1/faq_grpc.pb.go index d131d3d..18e6822 100644 --- a/consultingapis/faq/v1/faq_grpc.pb.go +++ b/consultingapis/faq/v1/faq_grpc.pb.go @@ -11,7 +11,6 @@ import ( grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - emptypb "google.golang.org/protobuf/types/known/emptypb" ) // This is a compile-time assertion to ensure that this generated file @@ -23,10 +22,10 @@ const _ = grpc.SupportPackageIsVersion7 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type FAQServiceClient interface { - CreateFAQ(ctx context.Context, in *FAQInfo, opts ...grpc.CallOption) (*FAQ, error) - GetFAQDetail(ctx context.Context, in *FAQIDRequest, opts ...grpc.CallOption) (*FAQ, error) - UpdateFAQ(ctx context.Context, in *FAQUpdateInfo, opts ...grpc.CallOption) (*emptypb.Empty, error) - DeleteFAQ(ctx context.Context, in *FAQIDRequest, opts ...grpc.CallOption) (*FAQ, error) + CreateFAQ(ctx context.Context, in *CreateFAQRequest, opts ...grpc.CallOption) (*CreateFAQResponse, error) + GetFAQ(ctx context.Context, in *GetFAQRequest, opts ...grpc.CallOption) (*GetFAQResponse, error) + UpdateFAQ(ctx context.Context, in *UpdateFAQRequest, opts ...grpc.CallOption) (*UpdateFAQResponse, error) + DeleteFAQ(ctx context.Context, in *DeleteFAQRequest, opts ...grpc.CallOption) (*DeleteFAQResponse, error) GetFAQImage(ctx context.Context, in *GetFAQImageRequest, opts ...grpc.CallOption) (*GetFAQImageResponse, error) SearchFAQAnswerRichtext(ctx context.Context, in *SearchFAQAnswerRichtextRequest, opts ...grpc.CallOption) (*SearchFAQAnswerRichtextResponse, error) } @@ -39,8 +38,8 @@ func NewFAQServiceClient(cc grpc.ClientConnInterface) FAQServiceClient { return &fAQServiceClient{cc} } -func (c *fAQServiceClient) CreateFAQ(ctx context.Context, in *FAQInfo, opts ...grpc.CallOption) (*FAQ, error) { - out := new(FAQ) +func (c *fAQServiceClient) CreateFAQ(ctx context.Context, in *CreateFAQRequest, opts ...grpc.CallOption) (*CreateFAQResponse, error) { + out := new(CreateFAQResponse) err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/CreateFAQ", in, out, opts...) if err != nil { return nil, err @@ -48,17 +47,17 @@ func (c *fAQServiceClient) CreateFAQ(ctx context.Context, in *FAQInfo, opts ...g return out, nil } -func (c *fAQServiceClient) GetFAQDetail(ctx context.Context, in *FAQIDRequest, opts ...grpc.CallOption) (*FAQ, error) { - out := new(FAQ) - err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/GetFAQDetail", in, out, opts...) +func (c *fAQServiceClient) GetFAQ(ctx context.Context, in *GetFAQRequest, opts ...grpc.CallOption) (*GetFAQResponse, error) { + out := new(GetFAQResponse) + err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/GetFAQ", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *fAQServiceClient) UpdateFAQ(ctx context.Context, in *FAQUpdateInfo, opts ...grpc.CallOption) (*emptypb.Empty, error) { - out := new(emptypb.Empty) +func (c *fAQServiceClient) UpdateFAQ(ctx context.Context, in *UpdateFAQRequest, opts ...grpc.CallOption) (*UpdateFAQResponse, error) { + out := new(UpdateFAQResponse) err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/UpdateFAQ", in, out, opts...) if err != nil { return nil, err @@ -66,8 +65,8 @@ func (c *fAQServiceClient) UpdateFAQ(ctx context.Context, in *FAQUpdateInfo, opt return out, nil } -func (c *fAQServiceClient) DeleteFAQ(ctx context.Context, in *FAQIDRequest, opts ...grpc.CallOption) (*FAQ, error) { - out := new(FAQ) +func (c *fAQServiceClient) DeleteFAQ(ctx context.Context, in *DeleteFAQRequest, opts ...grpc.CallOption) (*DeleteFAQResponse, error) { + out := new(DeleteFAQResponse) err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/DeleteFAQ", in, out, opts...) if err != nil { return nil, err @@ -97,10 +96,10 @@ func (c *fAQServiceClient) SearchFAQAnswerRichtext(ctx context.Context, in *Sear // All implementations should embed UnimplementedFAQServiceServer // for forward compatibility type FAQServiceServer interface { - CreateFAQ(context.Context, *FAQInfo) (*FAQ, error) - GetFAQDetail(context.Context, *FAQIDRequest) (*FAQ, error) - UpdateFAQ(context.Context, *FAQUpdateInfo) (*emptypb.Empty, error) - DeleteFAQ(context.Context, *FAQIDRequest) (*FAQ, error) + CreateFAQ(context.Context, *CreateFAQRequest) (*CreateFAQResponse, error) + GetFAQ(context.Context, *GetFAQRequest) (*GetFAQResponse, error) + UpdateFAQ(context.Context, *UpdateFAQRequest) (*UpdateFAQResponse, error) + DeleteFAQ(context.Context, *DeleteFAQRequest) (*DeleteFAQResponse, error) GetFAQImage(context.Context, *GetFAQImageRequest) (*GetFAQImageResponse, error) SearchFAQAnswerRichtext(context.Context, *SearchFAQAnswerRichtextRequest) (*SearchFAQAnswerRichtextResponse, error) } @@ -109,16 +108,16 @@ type FAQServiceServer interface { type UnimplementedFAQServiceServer struct { } -func (UnimplementedFAQServiceServer) CreateFAQ(context.Context, *FAQInfo) (*FAQ, error) { +func (UnimplementedFAQServiceServer) CreateFAQ(context.Context, *CreateFAQRequest) (*CreateFAQResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateFAQ not implemented") } -func (UnimplementedFAQServiceServer) GetFAQDetail(context.Context, *FAQIDRequest) (*FAQ, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetFAQDetail not implemented") +func (UnimplementedFAQServiceServer) GetFAQ(context.Context, *GetFAQRequest) (*GetFAQResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetFAQ not implemented") } -func (UnimplementedFAQServiceServer) UpdateFAQ(context.Context, *FAQUpdateInfo) (*emptypb.Empty, error) { +func (UnimplementedFAQServiceServer) UpdateFAQ(context.Context, *UpdateFAQRequest) (*UpdateFAQResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method UpdateFAQ not implemented") } -func (UnimplementedFAQServiceServer) DeleteFAQ(context.Context, *FAQIDRequest) (*FAQ, error) { +func (UnimplementedFAQServiceServer) DeleteFAQ(context.Context, *DeleteFAQRequest) (*DeleteFAQResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteFAQ not implemented") } func (UnimplementedFAQServiceServer) GetFAQImage(context.Context, *GetFAQImageRequest) (*GetFAQImageResponse, error) { @@ -140,7 +139,7 @@ func RegisterFAQServiceServer(s grpc.ServiceRegistrar, srv FAQServiceServer) { } func _FAQService_CreateFAQ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FAQInfo) + in := new(CreateFAQRequest) if err := dec(in); err != nil { return nil, err } @@ -152,31 +151,31 @@ func _FAQService_CreateFAQ_Handler(srv interface{}, ctx context.Context, dec fun FullMethod: "/consultingapis.faq.v1.FAQService/CreateFAQ", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FAQServiceServer).CreateFAQ(ctx, req.(*FAQInfo)) + return srv.(FAQServiceServer).CreateFAQ(ctx, req.(*CreateFAQRequest)) } return interceptor(ctx, in, info, handler) } -func _FAQService_GetFAQDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FAQIDRequest) +func _FAQService_GetFAQ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFAQRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(FAQServiceServer).GetFAQDetail(ctx, in) + return srv.(FAQServiceServer).GetFAQ(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/consultingapis.faq.v1.FAQService/GetFAQDetail", + FullMethod: "/consultingapis.faq.v1.FAQService/GetFAQ", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FAQServiceServer).GetFAQDetail(ctx, req.(*FAQIDRequest)) + return srv.(FAQServiceServer).GetFAQ(ctx, req.(*GetFAQRequest)) } return interceptor(ctx, in, info, handler) } func _FAQService_UpdateFAQ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FAQUpdateInfo) + in := new(UpdateFAQRequest) if err := dec(in); err != nil { return nil, err } @@ -188,13 +187,13 @@ func _FAQService_UpdateFAQ_Handler(srv interface{}, ctx context.Context, dec fun FullMethod: "/consultingapis.faq.v1.FAQService/UpdateFAQ", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FAQServiceServer).UpdateFAQ(ctx, req.(*FAQUpdateInfo)) + return srv.(FAQServiceServer).UpdateFAQ(ctx, req.(*UpdateFAQRequest)) } return interceptor(ctx, in, info, handler) } func _FAQService_DeleteFAQ_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FAQIDRequest) + in := new(DeleteFAQRequest) if err := dec(in); err != nil { return nil, err } @@ -206,7 +205,7 @@ func _FAQService_DeleteFAQ_Handler(srv interface{}, ctx context.Context, dec fun FullMethod: "/consultingapis.faq.v1.FAQService/DeleteFAQ", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FAQServiceServer).DeleteFAQ(ctx, req.(*FAQIDRequest)) + return srv.(FAQServiceServer).DeleteFAQ(ctx, req.(*DeleteFAQRequest)) } return interceptor(ctx, in, info, handler) } @@ -259,8 +258,8 @@ var FAQService_ServiceDesc = grpc.ServiceDesc{ Handler: _FAQService_CreateFAQ_Handler, }, { - MethodName: "GetFAQDetail", - Handler: _FAQService_GetFAQDetail_Handler, + MethodName: "GetFAQ", + Handler: _FAQService_GetFAQ_Handler, }, { MethodName: "UpdateFAQ", diff --git a/docs/swagger/campusapis/card/v1/card.swagger.json b/docs/swagger/campusapis/card/v1/card.swagger.json index 103233b..8f22a83 100644 --- a/docs/swagger/campusapis/card/v1/card.swagger.json +++ b/docs/swagger/campusapis/card/v1/card.swagger.json @@ -22,10 +22,9 @@ "operationId": "CardService_GetCardBalance2", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "number", - "format": "float" + "$ref": "#/definitions/v1GetCardBalanceResponse" } }, "default": { @@ -46,12 +45,9 @@ "operationId": "CardService_GetCardConsume2", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1Consumption" - } + "$ref": "#/definitions/v1GetCardConsumeResponse" } }, "default": { @@ -95,10 +91,9 @@ "operationId": "CardService_GetCardBalance", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "number", - "format": "float" + "$ref": "#/definitions/v1GetCardBalanceResponse" } }, "default": { @@ -119,12 +114,9 @@ "operationId": "CardService_GetCardConsume", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1Consumption" - } + "$ref": "#/definitions/v1GetCardConsumeResponse" } }, "default": { @@ -164,6 +156,23 @@ } }, "definitions": { + "GetCardInfoResponseData": { + "type": "object", + "properties": { + "remaining": { + "type": "number", + "format": "float", + "title": "余额,精确到小数点后两位,单位元" + }, + "flow": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Consumption" + }, + "title": "交易记录" + } + } + }, "protobufAny": { "type": "object", "properties": { @@ -228,16 +237,31 @@ "v1GetCardBalanceResponse": { "type": "object", "properties": { - "remaining": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "number", - "format": "float" + "format": "float", + "title": "remaining 余额" } } }, "v1GetCardConsumeResponse": { "type": "object", "properties": { - "items": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { "$ref": "#/definitions/v1Consumption" @@ -248,17 +272,15 @@ "v1GetCardInfoResponse": { "type": "object", "properties": { - "remaining": { - "type": "number", - "format": "float", - "title": "余额,精确到小数点后两位,单位元" + "error": { + "type": "integer", + "format": "int64" }, - "flow": { - "type": "array", - "items": { - "$ref": "#/definitions/v1Consumption" - }, - "title": "交易记录" + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/GetCardInfoResponseData" } } } diff --git a/docs/swagger/campusapis/gate/v1/callback.swagger.json b/docs/swagger/campusapis/gate/v1/callback.swagger.json index 2a0df6e..44fe288 100644 --- a/docs/swagger/campusapis/gate/v1/callback.swagger.json +++ b/docs/swagger/campusapis/gate/v1/callback.swagger.json @@ -47,48 +47,60 @@ "v1AccessMethod": { "type": "string", "enum": [ - "SCHOOL_CARD", - "FACE" + "ACCESS_METHOD_UNSPECIFIED", + "ACCESS_METHOD_SCHOOL_CARD", + "ACCESS_METHOD_FACE" ], - "default": "SCHOOL_CARD", - "description": "- SCHOOL_CARD: 校园卡\n - FACE: 人脸识别", + "default": "ACCESS_METHOD_UNSPECIFIED", + "description": "- ACCESS_METHOD_SCHOOL_CARD: 校园卡\n - ACCESS_METHOD_FACE: 人脸识别", "title": "通过方式" }, "v1Direction": { "type": "string", "enum": [ - "IN", - "OUT" + "DIRECTION_UNSPECIFIED", + "DIRECTION_IN", + "DIRECTION_OUT" ], - "default": "IN", - "description": "- IN: 进\n - OUT: 出", + "default": "DIRECTION_UNSPECIFIED", + "description": "- DIRECTION_IN: 进\n - DIRECTION_OUT: 出", "title": "以门禁限制活动/保护的区域为主体的进出方向" }, "v1GateType": { "type": "string", "enum": [ - "CAMPUS", - "DORMITORY", - "LIBRARY" + "GATE_TYPE_UNSPECIFIED", + "GATE_TYPE_CAMPUS", + "GATE_TYPE_DORMITORY", + "GATE_TYPE_LIBRARY" ], - "default": "CAMPUS", - "description": "- CAMPUS: 学校大门门禁,包括生活区、教学区、研究生公寓门禁\n - DORMITORY: 宿舍门禁\n - LIBRARY: 图书馆门禁", + "default": "GATE_TYPE_UNSPECIFIED", + "description": "- GATE_TYPE_CAMPUS: 学校大门门禁,包括生活区、教学区、研究生公寓门禁\n - GATE_TYPE_DORMITORY: 宿舍门禁\n - GATE_TYPE_LIBRARY: 图书馆门禁", "title": "门禁类型" }, "v1PostGateEventCallbackResponse": { "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + }, "title": "推送门禁事件回调返回体" }, "v1Service": { "type": "string", "enum": [ - "UNKNOWN", - "HIKVISION", - "UNIVIEW", - "BACK_OFFICE" + "SERVICE_UNSPECIFIED", + "SERVICE_HIKVISION", + "SERVICE_UNIVIEW", + "SERVICE_BACK_OFFICE" ], - "default": "UNKNOWN", - "description": "- UNKNOWN: 未知设备\n - HIKVISION: 海康闸机\n - UNIVIEW: 宇视闸机\n - BACK_OFFICE: 生活区后勤管的闸机,即宿舍闸机", + "default": "SERVICE_UNSPECIFIED", + "description": "- SERVICE_UNSPECIFIED: 未知设备\n - SERVICE_HIKVISION: 海康闸机\n - SERVICE_UNIVIEW: 宇视闸机\n - SERVICE_BACK_OFFICE: 生活区后勤管的闸机,即宿舍闸机", "title": "门禁服务名称,以品牌或者第三方服务商名称划分,用于出问题时摔锅" } } diff --git a/docs/swagger/campusapis/gate/v1/manager.swagger.json b/docs/swagger/campusapis/gate/v1/manager.swagger.json index babd260..5767513 100644 --- a/docs/swagger/campusapis/gate/v1/manager.swagger.json +++ b/docs/swagger/campusapis/gate/v1/manager.swagger.json @@ -110,12 +110,13 @@ "v1GateType": { "type": "string", "enum": [ - "CAMPUS", - "DORMITORY", - "LIBRARY" + "GATE_TYPE_UNSPECIFIED", + "GATE_TYPE_CAMPUS", + "GATE_TYPE_DORMITORY", + "GATE_TYPE_LIBRARY" ], - "default": "CAMPUS", - "description": "- CAMPUS: 学校大门门禁,包括生活区、教学区、研究生公寓门禁\n - DORMITORY: 宿舍门禁\n - LIBRARY: 图书馆门禁", + "default": "GATE_TYPE_UNSPECIFIED", + "description": "- GATE_TYPE_CAMPUS: 学校大门门禁,包括生活区、教学区、研究生公寓门禁\n - GATE_TYPE_DORMITORY: 宿舍门禁\n - GATE_TYPE_LIBRARY: 图书馆门禁", "title": "门禁类型" }, "v1PostCampusGateEventCallbackResponse": { diff --git a/docs/swagger/campusapis/health/v1/health.swagger.json b/docs/swagger/campusapis/health/v1/health.swagger.json index 25e0279..724ad49 100644 --- a/docs/swagger/campusapis/health/v1/health.swagger.json +++ b/docs/swagger/campusapis/health/v1/health.swagger.json @@ -124,12 +124,9 @@ "operationId": "HealthService_GetCheckinRecords2", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetCheckinRecordResponse" - } + "$ref": "#/definitions/v1GetCheckinRecordsResponse" } }, "default": { @@ -196,7 +193,7 @@ "200": { "description": "A successful response.", "schema": { - "properties": {} + "$ref": "#/definitions/v1PostCheckinPhoneResponse" } }, "default": { @@ -297,12 +294,9 @@ "operationId": "HealthService_GetCheckinRecords", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetCheckinRecordResponse" - } + "$ref": "#/definitions/v1GetCheckinRecordsResponse" } }, "default": { @@ -346,9 +340,9 @@ "operationId": "HealthService_GetNucleicAcidTestLatest", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1NucleicAcidTest" + "$ref": "#/definitions/v1GetNucleicAcidTestLatestResponse" } }, "default": { @@ -415,7 +409,7 @@ "200": { "description": "A successful response.", "schema": { - "properties": {} + "$ref": "#/definitions/v1PostCheckinPhoneResponse" } }, "default": { @@ -502,18 +496,7 @@ } } }, - "v1GetCheckinPhoneResponse": { - "type": "object", - "properties": { - "Phone": { - "type": "string" - }, - "StaffID": { - "type": "string" - } - } - }, - "v1GetCheckinRecordResponse": { + "v1CheckinRecord": { "type": "object", "properties": { "id": { @@ -582,10 +565,58 @@ }, "title": "健康打卡记录" }, + "v1GetCheckinPhoneResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1GetCheckinPhoneResponseData" + } + } + }, + "v1GetCheckinPhoneResponseData": { + "type": "object", + "properties": { + "Phone": { + "type": "string" + }, + "StaffID": { + "type": "string" + } + } + }, + "v1GetCheckinRecordResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1CheckinRecord" + } + } + }, "v1GetCheckinRecordsResponse": { "type": "object", "properties": { - "items": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { "$ref": "#/definitions/v1GetCheckinRecordResponse" @@ -594,6 +625,92 @@ } }, "v1GetHealthCodeResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1HealthCodeRaw" + } + }, + "title": "健康码老" + }, + "v1GetNucleicAcidTestLatestResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1NucleicAcidTest" + } + }, + "title": "最新核酸检测返回体" + }, + "v1GetNucleicAcidTestsResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1GetNucleicAcidTestsResponseData" + } + }, + "title": "历史核酸检测返回体" + }, + "v1GetNucleicAcidTestsResponseData": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/v1NucleicAcidTest" + } + } + } + }, + "v1GetVaccineRecordsResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1GetVaccineRecordsResponseData" + } + }, + "title": "疫苗接种记录返回" + }, + "v1GetVaccineRecordsResponseData": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/v1VaccineRecord" + } + } + } + }, + "v1HealthCodeRaw": { "type": "object", "properties": { "staffId": { @@ -633,41 +750,7 @@ "type": "string", "title": "服务器更新时间(服务器获取到的时间)\n通常是每日更新一次" } - }, - "title": "健康码老" - }, - "v1GetNucleicAcidTestLatestResponse": { - "type": "object", - "properties": { - "item": { - "$ref": "#/definitions/v1NucleicAcidTest" - } - }, - "title": "最新核酸检测返回体" - }, - "v1GetNucleicAcidTestsResponse": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1NucleicAcidTest" - } - } - }, - "title": "历史核酸检测返回体" - }, - "v1GetVaccineRecordsResponse": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1VaccineRecord" - } - } - }, - "title": "疫苗接种记录返回" + } }, "v1NucleicAcidTest": { "type": "object", @@ -695,6 +778,21 @@ } } }, + "v1PostCheckinPhoneResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, "v1PostCheckinRecordBody": { "type": "object", "properties": { @@ -726,6 +824,21 @@ } }, "v1PostCheckinRecordResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1PostCheckinRecordResponseData" + } + } + }, + "v1PostCheckinRecordResponseData": { "type": "object", "properties": { "code": { @@ -738,7 +851,8 @@ "message": { "type": "string" } - } + }, + "title": "学校健康打卡服务返回值" }, "v1VaccineRecord": { "type": "object", diff --git a/docs/swagger/campusapis/library/v1/library.swagger.json b/docs/swagger/campusapis/library/v1/library.swagger.json index 2bab910..1da8790 100644 --- a/docs/swagger/campusapis/library/v1/library.swagger.json +++ b/docs/swagger/campusapis/library/v1/library.swagger.json @@ -22,9 +22,9 @@ "operationId": "LibraryService_GetBookInfo", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1BookInfo" + "$ref": "#/definitions/v1GetBookInfoResponse" } }, "default": { @@ -54,12 +54,9 @@ "operationId": "LibraryService_GetBookInfoList", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1BookInfo" - } + "$ref": "#/definitions/v1GetBookInfoListResponse" } }, "default": { @@ -89,12 +86,9 @@ "operationId": "LibraryService_GetBookLendHistory", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetBookLendHistoryResponseNested" - } + "$ref": "#/definitions/v1GetBookLendHistoryResponse" } }, "default": { @@ -131,12 +125,9 @@ "operationId": "LibraryService_GetBookLendLast", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetBookLendLastResponseNested" - } + "$ref": "#/definitions/v1GetBookLendLastResponse" } }, "default": { @@ -166,9 +157,9 @@ "operationId": "LibraryService_GetBookMARC", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1BookMARC" + "$ref": "#/definitions/v1GetBookMARCResponse" } }, "default": { @@ -203,12 +194,9 @@ "operationId": "LibraryService_GetBookMARCList", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1BookMARC" - } + "$ref": "#/definitions/v1GetBookMARCListResponse" } }, "default": { @@ -579,7 +567,14 @@ "v1GetBookInfoListResponse": { "type": "object", "properties": { - "books": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { "$ref": "#/definitions/v1BookInfo" @@ -590,7 +585,14 @@ "v1GetBookInfoResponse": { "type": "object", "properties": { - "book": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "$ref": "#/definitions/v1BookInfo" } } @@ -598,7 +600,14 @@ "v1GetBookLendHistoryResponse": { "type": "object", "properties": { - "items": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { "$ref": "#/definitions/v1GetBookLendHistoryResponseNested" @@ -642,7 +651,14 @@ "v1GetBookLendLastResponse": { "type": "object", "properties": { - "items": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { "$ref": "#/definitions/v1GetBookLendLastResponseNested" @@ -686,7 +702,14 @@ "v1GetBookMARCListResponse": { "type": "object", "properties": { - "marcs": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { "$ref": "#/definitions/v1BookMARC" @@ -697,7 +720,14 @@ "v1GetBookMARCResponse": { "type": "object", "properties": { - "marc": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "$ref": "#/definitions/v1BookMARC" } } @@ -705,12 +735,12 @@ "v1LendStatus": { "type": "string", "enum": [ - "UNKNOWN", - "LENDING", - "RETURNED" + "LEND_STATUS_UNSPECIFIED", + "LEND_STATUS_LENDING", + "LEND_STATUS_RETURNED" ], - "default": "UNKNOWN", - "title": "- UNKNOWN: 未知\n - LENDING: 借阅中\n - RETURNED: 已归还" + "default": "LEND_STATUS_UNSPECIFIED", + "title": "- LEND_STATUS_UNSPECIFIED: 未知\n - LEND_STATUS_LENDING: 借阅中\n - LEND_STATUS_RETURNED: 已归还" } } } diff --git a/docs/swagger/campusapis/schoolTime/v1/schoolTime.swagger.json b/docs/swagger/campusapis/schoolTime/v1/schoolTime.swagger.json index 4fec8fa..7c73687 100644 --- a/docs/swagger/campusapis/schoolTime/v1/schoolTime.swagger.json +++ b/docs/swagger/campusapis/schoolTime/v1/schoolTime.swagger.json @@ -22,12 +22,9 @@ "operationId": "SchoolTimeService_GetSemesterList", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetSemesterListResponseSemester" - } + "$ref": "#/definitions/v1GetSemesterListResponse" } }, "default": { @@ -85,12 +82,9 @@ "operationId": "SchoolTimeService_GetSemesterList2", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetSemesterListResponseSemester" - } + "$ref": "#/definitions/v1GetSemesterListResponse" } }, "default": { @@ -144,6 +138,33 @@ } }, "definitions": { + "GetSchoolTimeResponseData": { + "type": "object", + "properties": { + "schoolYear": { + "type": "string" + }, + "section": { + "type": "integer", + "format": "int32" + }, + "semester": { + "type": "string" + }, + "timeStamp": { + "type": "integer", + "format": "int64" + }, + "weekDayNow": { + "type": "integer", + "format": "int32" + }, + "weekNow": { + "type": "integer", + "format": "int32" + } + } + }, "protobufAny": { "type": "object", "properties": { @@ -174,34 +195,29 @@ "v1GetSchoolTimeResponse": { "type": "object", "properties": { - "schoolYear": { - "type": "string" - }, - "section": { - "type": "integer", - "format": "int32" - }, - "semester": { - "type": "string" - }, - "timeStamp": { + "error": { "type": "integer", "format": "int64" }, - "weekDayNow": { - "type": "integer", - "format": "int32" + "msg": { + "type": "string" }, - "weekNow": { - "type": "integer", - "format": "int32" + "data": { + "$ref": "#/definitions/GetSchoolTimeResponseData" } } }, "v1GetSemesterListResponse": { "type": "object", "properties": { - "items": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { "$ref": "#/definitions/v1GetSemesterListResponseSemester" diff --git a/docs/swagger/campusapis/staff/v1/campus.swagger.json b/docs/swagger/campusapis/staff/v1/campus.swagger.json index 8ee6bda..2c148b0 100644 --- a/docs/swagger/campusapis/staff/v1/campus.swagger.json +++ b/docs/swagger/campusapis/staff/v1/campus.swagger.json @@ -65,12 +65,12 @@ "/freshman/info": { "get": { "summary": "获取新生详细信息", - "operationId": "CampusService_GetFreshmanInfo2", + "operationId": "CampusService_GetFreshmanDetail2", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1GetFreshmanInfoResponse" + "$ref": "#/definitions/v1GetFreshmanDetailResponse" } }, "default": { @@ -226,12 +226,12 @@ "/staff/v1/freshman/info": { "get": { "summary": "获取新生详细信息", - "operationId": "CampusService_GetFreshmanInfo", + "operationId": "CampusService_GetFreshmanDetail", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1GetFreshmanInfoResponse" + "$ref": "#/definitions/v1GetFreshmanDetailResponse" } }, "default": { @@ -275,12 +275,9 @@ "operationId": "CampusService_GetFreshmanRoommates", "responses": { "200": { - "description": "室友列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/GetFreshmanRoommatesResponseRoommate" - } + "$ref": "#/definitions/v1GetFreshmanRoommatesResponse" } }, "default": { @@ -349,7 +346,7 @@ "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1GetStudentBirthdayResponse" + "$ref": "#/definitions/v1GetStudentBirthdayInfoResponse" } }, "default": { @@ -448,12 +445,9 @@ "operationId": "CampusService_GetStudentGrade", "responses": { "200": { - "description": "成绩详情列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetStudentGradeResponseNested" - } + "$ref": "#/definitions/v1GetStudentGradeResponse" } }, "default": { @@ -559,12 +553,9 @@ "operationId": "CampusService_GetStudentRewards", "responses": { "200": { - "description": "奖学金列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetStudentRewardsResponseNested" - } + "$ref": "#/definitions/v1GetStudentRewardsResponse" } }, "default": { @@ -598,15 +589,12 @@ "/staff/v1/student/select": { "get": { "summary": "获取学生选课信息", - "operationId": "CampusService_GetStudentSelect", + "operationId": "CampusService_GetStudentCourseSelections", "responses": { "200": { - "description": "详情列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetStudentSelectResponseNested" - } + "$ref": "#/definitions/v1GetStudentCourseSelectionsResponse" } }, "default": { @@ -645,7 +633,7 @@ "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1GetStudentBirthdayResponse" + "$ref": "#/definitions/v1GetStudentBirthdayInfoResponse" } }, "default": { @@ -744,12 +732,9 @@ "operationId": "CampusService_GetStudentGrade2", "responses": { "200": { - "description": "成绩详情列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetStudentGradeResponseNested" - } + "$ref": "#/definitions/v1GetStudentGradeResponse" } }, "default": { @@ -855,12 +840,9 @@ "operationId": "CampusService_GetStudentRewards2", "responses": { "200": { - "description": "奖学金列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetStudentRewardsResponseNested" - } + "$ref": "#/definitions/v1GetStudentRewardsResponse" } }, "default": { @@ -894,15 +876,12 @@ "/student/select": { "get": { "summary": "获取学生选课信息", - "operationId": "CampusService_GetStudentSelect2", + "operationId": "CampusService_GetStudentCourseSelections2", "responses": { "200": { - "description": "详情列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetStudentSelectResponseNested" - } + "$ref": "#/definitions/v1GetStudentCourseSelectionsResponse" } }, "default": { @@ -935,20 +914,20 @@ } }, "definitions": { - "GetFreshmanRoommatesResponseRoommate": { + "StudentNeedyInfoNested": { "type": "object", "properties": { - "staffName": { - "type": "string", - "title": "室友姓名" - }, - "qq": { - "type": "string" + "schoolYear": { + "type": "integer", + "format": "int32", + "title": "特定学年" }, - "phone": { - "type": "string" + "needyStudent": { + "type": "boolean", + "title": "是否是贫困生" } - } + }, + "title": "某年贫困详情" }, "campusapisstaffType": { "type": "string", @@ -989,7 +968,7 @@ } } }, - "v1GetFreshmanBaseInfoResponse": { + "v1FreshmanBaseInfo": { "type": "object", "properties": { "staffId": { @@ -1019,7 +998,7 @@ }, "title": "新生基本信息" }, - "v1GetFreshmanInfoResponse": { + "v1FreshmanDetail": { "type": "object", "properties": { "staffId": { @@ -1122,13 +1101,65 @@ }, "title": "新生详细信息" }, + "v1FreshmanRoommate": { + "type": "object", + "properties": { + "staffName": { + "type": "string", + "title": "室友姓名" + }, + "qq": { + "type": "string" + }, + "phone": { + "type": "string" + } + } + }, + "v1GetFreshmanBaseInfoResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1FreshmanBaseInfo" + } + } + }, + "v1GetFreshmanDetailResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1FreshmanDetail" + } + } + }, "v1GetFreshmanRoommatesResponse": { "type": "object", "properties": { - "items": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { - "$ref": "#/definitions/GetFreshmanRoommatesResponseRoommate" + "$ref": "#/definitions/v1FreshmanRoommate" }, "title": "室友列表" } @@ -1136,6 +1167,22 @@ "title": "新生室友查询" }, "v1GetPersonInfoResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1GetPersonInfoResponseData" + } + }, + "title": "查询人员信息返回体" + }, + "v1GetPersonInfoResponseData": { "type": "object", "properties": { "staffId": { @@ -1158,26 +1205,23 @@ "type": "string", "title": "学院代码" } - }, - "title": "查询人员信息返回体" + } }, - "v1GetStudentBirthdayResponse": { + "v1GetStudentBirthdayInfoResponse": { "type": "object", "properties": { - "staffId": { - "type": "string", - "title": "学工号" + "error": { + "type": "integer", + "format": "int64" }, - "name": { - "type": "string", - "title": "姓名" + "msg": { + "type": "string" }, - "birthday": { - "type": "string", - "title": "生日" + "data": { + "$ref": "#/definitions/v1StudentBirthdayInfo" } }, - "title": "GetStudentBirthdayResponse 学生生日查询返回体" + "title": "GetStudentBirthdayInfoResponse 学生生日查询返回体" }, "v1GetStudentBirthdaysInResponse": { "type": "object", @@ -1185,13 +1229,33 @@ "birthdays": { "type": "array", "items": { - "$ref": "#/definitions/v1GetStudentBirthdayResponse" + "$ref": "#/definitions/v1StudentBirthdayInfo" }, "title": "生日详情列表" } }, "title": "GetStudentBirthdaysInResponse 查询某天生日所有人员-返回体" }, + "v1GetStudentCourseSelectionsResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/v1StudentCourseSelection" + }, + "title": "详情列表" + } + }, + "title": "学生选课查询返回体" + }, "v1GetStudentDormInfoResponse": { "type": "object", "properties": { @@ -1208,88 +1272,45 @@ "title": "寝室号" } }, - "title": "GetStudentDormInfoResponse 查询学生寝室信息返回体" + "title": "查询学生寝室信息返回体" }, "v1GetStudentGradeResponse": { "type": "object", "properties": { - "items": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { - "$ref": "#/definitions/v1GetStudentGradeResponseNested" + "$ref": "#/definitions/v1StudentGrade" }, "title": "成绩详情列表" } }, - "title": "GetStudentGradeResponse 查询学生成绩返回体" + "title": "查询学生成绩返回体" }, - "v1GetStudentGradeResponseNested": { + "v1GetStudentInfoResponse": { "type": "object", "properties": { - "schoolYear": { - "type": "string", - "title": "学年" - }, - "semester": { - "type": "string", - "title": "学期" - }, - "selectCode": { - "type": "string", - "title": "选课号" - }, - "score": { - "type": "string", - "title": "最后分数" - }, - "scoreDaily": { - "type": "string", - "title": "平时分" - }, - "scoreMidTerm": { - "type": "string", - "title": "期中分数" - }, - "scoreFinal": { - "type": "string", - "title": "期末分数" - }, - "scoreSubstitute": { - "type": "string", - "title": "补考分数" - }, - "scorePractice": { - "type": "string", - "title": "实验分数" - }, - "courseCode": { - "type": "string", - "title": "课程号" - }, - "course": { - "type": "string", - "title": "课程名" - }, - "staffId": { - "type": "string", - "title": "学号" - }, - "staffName": { - "type": "string", - "title": "姓名" + "error": { + "type": "integer", + "format": "int64" }, - "credit": { - "type": "string", - "title": "学分" + "msg": { + "type": "string" }, - "GPA": { - "type": "string", - "title": "GPA" + "data": { + "$ref": "#/definitions/v1GetStudentInfoResponseData" } }, - "title": "成绩详情" + "title": "GetStudentInfoResponse 查询学生信息返回体" }, - "v1GetStudentInfoResponse": { + "v1GetStudentInfoResponseData": { "type": "object", "properties": { "staffId": { @@ -1328,111 +1349,106 @@ "type": "string", "title": "学生辅导员姓名" } - }, - "title": "GetStudentInfoResponse 查询学生信息返回体" + } }, "v1GetStudentNeedyInfoResponse": { "type": "object", "properties": { - "staffId": { - "type": "string", - "title": "学工号" + "error": { + "type": "integer", + "format": "int64" }, - "staffName": { - "type": "string", - "title": "姓名" + "msg": { + "type": "string" }, - "sex": { + "data": { + "$ref": "#/definitions/v1StudentNeedyInfo" + } + }, + "title": "查询贫困生信息返回体" + }, + "v1GetStudentRewardsResponse": { + "type": "object", + "properties": { + "error": { "type": "integer", - "format": "int32", - "title": "性别,枚举及含义:1-\u003e男 | 2-\u003e女" + "format": "int64" }, - "needyStudent": { - "type": "boolean", - "title": "是否贫困生" + "msg": { + "type": "string" }, - "items": { + "data": { "type": "array", "items": { - "$ref": "#/definitions/v1GetStudentNeedyInfoResponseNested" + "$ref": "#/definitions/v1StudentReward" }, - "title": "每学年贫困详情" + "title": "奖学金列表" } }, - "title": "查询贫困生信息返回体" + "title": "GetStudentRewardsResponse 奖学金查询返回体" }, - "v1GetStudentNeedyInfoResponseNested": { + "v1GetStudentStaySchoolInfoResponse": { "type": "object", "properties": { - "schoolYear": { + "error": { "type": "integer", - "format": "int32", - "title": "特定学年" + "format": "int64" }, - "needyStudent": { - "type": "boolean", - "title": "是否是贫困生" + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1StudentStaySchoolInfo" } }, - "title": "某年贫困详情" + "title": "留校生信息查询-返回体" }, - "v1GetStudentRewardsResponse": { + "v1PostStudentGateAccessResponse": { "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetStudentRewardsResponseNested" - }, - "title": "奖学金列表" + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1PostStudentGateAccessResponseData" } }, - "title": "GetStudentRewardsResponse 奖学金查询返回体" + "title": "PostStudentGateAccessResponse 推送学生门禁通行信息" }, - "v1GetStudentRewardsResponseNested": { + "v1PostStudentGateAccessResponseData": { "type": "object", "properties": { - "staffID": { + "done": { + "type": "boolean" + }, + "message": { + "type": "string" + } + } + }, + "v1StudentBirthdayInfo": { + "type": "object", + "properties": { + "staffId": { "type": "string", "title": "学工号" }, - "staffName": { + "name": { "type": "string", "title": "姓名" }, - "rewardName": { - "type": "string", - "title": "奖项名" - }, - "schoolYear": { - "type": "string", - "title": "学年" - }, - "semester": { - "type": "string", - "title": "学期" - }, - "rewardLevel": { + "birthday": { "type": "string", - "title": "奖项等级" - } - }, - "title": "奖学金信息" - }, - "v1GetStudentSelectResponse": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetStudentSelectResponseNested" - }, - "title": "详情列表" + "title": "生日" } }, - "title": "GetStudentSelectResponse 学生选课查询返回体" + "title": "学生生日信息" }, - "v1GetStudentSelectResponseNested": { + "v1StudentCourseSelection": { "type": "object", "properties": { "schoolYear": { @@ -1482,7 +1498,133 @@ }, "title": "选课详情" }, - "v1GetStudentStaySchoolInfoResponse": { + "v1StudentGrade": { + "type": "object", + "properties": { + "schoolYear": { + "type": "string", + "title": "学年" + }, + "semester": { + "type": "string", + "title": "学期" + }, + "selectCode": { + "type": "string", + "title": "选课号" + }, + "score": { + "type": "string", + "title": "最后分数" + }, + "scoreDaily": { + "type": "string", + "title": "平时分" + }, + "scoreMidTerm": { + "type": "string", + "title": "期中分数" + }, + "scoreFinal": { + "type": "string", + "title": "期末分数" + }, + "scoreSubstitute": { + "type": "string", + "title": "补考分数" + }, + "scorePractice": { + "type": "string", + "title": "实验分数" + }, + "courseCode": { + "type": "string", + "title": "课程号" + }, + "course": { + "type": "string", + "title": "课程名" + }, + "staffId": { + "type": "string", + "title": "学号" + }, + "staffName": { + "type": "string", + "title": "姓名" + }, + "credit": { + "type": "string", + "title": "学分" + }, + "GPA": { + "type": "string", + "title": "GPA" + } + }, + "title": "成绩详情" + }, + "v1StudentNeedyInfo": { + "type": "object", + "properties": { + "staffId": { + "type": "string", + "title": "学工号" + }, + "staffName": { + "type": "string", + "title": "姓名" + }, + "sex": { + "type": "integer", + "format": "int32", + "title": "性别,枚举及含义:1-\u003e男 | 2-\u003e女" + }, + "needyStudent": { + "type": "boolean", + "title": "是否贫困生" + }, + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/StudentNeedyInfoNested" + }, + "title": "每学年贫困详情" + } + }, + "title": "贫困生信息" + }, + "v1StudentReward": { + "type": "object", + "properties": { + "staffID": { + "type": "string", + "title": "学工号" + }, + "staffName": { + "type": "string", + "title": "姓名" + }, + "rewardName": { + "type": "string", + "title": "奖项名" + }, + "schoolYear": { + "type": "string", + "title": "学年" + }, + "semester": { + "type": "string", + "title": "学期" + }, + "rewardLevel": { + "type": "string", + "title": "奖项等级" + } + }, + "title": "奖学金信息" + }, + "v1StudentStaySchoolInfo": { "type": "object", "properties": { "staffId": { @@ -1546,19 +1688,7 @@ "title": "撤回状态,枚举及含义:1-\u003e未撤回 | 2-\u003e已撤回" } }, - "title": "留校生信息查询-返回体" - }, - "v1PostStudentGateAccessResponse": { - "type": "object", - "properties": { - "done": { - "type": "boolean" - }, - "message": { - "type": "string" - } - }, - "title": "PostStudentGateAccessResponse 推送学生门禁通行信息" + "title": "留校生信息" } } } diff --git a/docs/swagger/campusapis/teaching/v1/teaching.swagger.json b/docs/swagger/campusapis/teaching/v1/teaching.swagger.json index d0e5cb4..b955b43 100644 --- a/docs/swagger/campusapis/teaching/v1/teaching.swagger.json +++ b/docs/swagger/campusapis/teaching/v1/teaching.swagger.json @@ -58,12 +58,9 @@ "operationId": "TeachingService_GetSchedule3", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ScheduleResponseCourse" - } + "$ref": "#/definitions/v1GetScheduleResponse" } }, "default": { @@ -147,12 +144,9 @@ "operationId": "TeachingService_GetClassrooms2", "responses": { "200": { - "description": "教室列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1Classroom" - } + "$ref": "#/definitions/v1GetClassroomsResponse" } }, "default": { @@ -189,12 +183,9 @@ "operationId": "TeachingService_GetUnusedClassrooms2", "responses": { "200": { - "description": "教室列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1Classroom" - } + "$ref": "#/definitions/v1GetUnusedClassroomsResponse" } }, "default": { @@ -255,12 +246,9 @@ "operationId": "TeachingService_GetClassroomUsages2", "responses": { "200": { - "description": "教室使用情况列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/ClassroomUsagesResponseNested" - } + "$ref": "#/definitions/v1GetClassroomUsagesResponse" } }, "default": { @@ -304,12 +292,9 @@ "operationId": "TeachingService_GetSchedule2", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ScheduleResponseCourse" - } + "$ref": "#/definitions/v1GetScheduleResponse" } }, "default": { @@ -370,12 +355,9 @@ "operationId": "TeachingService_GetClassrooms", "responses": { "200": { - "description": "教室列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1Classroom" - } + "$ref": "#/definitions/v1GetClassroomsResponse" } }, "default": { @@ -412,12 +394,9 @@ "operationId": "TeachingService_GetUnusedClassrooms", "responses": { "200": { - "description": "教室列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1Classroom" - } + "$ref": "#/definitions/v1GetUnusedClassroomsResponse" } }, "default": { @@ -478,12 +457,9 @@ "operationId": "TeachingService_GetClassroomUsages", "responses": { "200": { - "description": "教室使用情况列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/ClassroomUsagesResponseNested" - } + "$ref": "#/definitions/v1GetClassroomUsagesResponse" } }, "default": { @@ -527,12 +503,9 @@ "operationId": "TeachingService_GetSchedule", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1ScheduleResponseCourse" - } + "$ref": "#/definitions/v1GetScheduleResponse" } }, "default": { @@ -635,7 +608,7 @@ } }, "definitions": { - "ClassroomUsagesResponseNested": { + "GetClassroomUsagesResponseNested": { "type": "object", "properties": { "classroom": { @@ -840,36 +813,49 @@ }, "title": "教室信息" }, - "v1ClassroomUsagesResponse": { + "v1GetClassroomUsagesResponse": { "type": "object", "properties": { "items": { "type": "array", "items": { - "$ref": "#/definitions/ClassroomUsagesResponseNested" + "$ref": "#/definitions/GetClassroomUsagesResponseNested" }, "title": "教室使用情况列表" } }, - "title": "ClassroomUsagesResponse 教室使用情况返回体" + "title": "GetClassroomUsagesResponse 教室使用情况返回体" }, - "v1ClassroomsResponse": { + "v1GetClassroomsResponse": { "type": "object", "properties": { - "items": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { "$ref": "#/definitions/v1Classroom" }, "title": "教室列表" } - }, - "title": "ClassroomsResponse 教室查询返回体" + } }, "v1GetGlobalScheduleResponse": { "type": "object", "properties": { - "items": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { "$ref": "#/definitions/v1ScheduleResponseCourse" @@ -879,6 +865,22 @@ "title": "GetGlobalScheduleResponse 全局课表返回体" }, "v1GetScheduleNowResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1GetScheduleNowResponseData" + } + }, + "title": "GetScheduleNowResponse 今天,明天课表信息返回体" + }, + "v1GetScheduleNowResponseData": { "type": "object", "properties": { "today": { @@ -895,10 +897,25 @@ }, "title": "明天课表" } - }, - "title": "GetScheduleNowResponse 今天,明天课表信息返回体" + } }, "v1GetScheduleNowV2Response": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1GetScheduleNowV2ResponseData" + } + }, + "title": "GetScheduleNowV2Response 今天,明天课表信息返回体" + }, + "v1GetScheduleNowV2ResponseData": { "type": "object", "properties": { "Today": { @@ -915,13 +932,19 @@ }, "title": "明天的课表" } - }, - "title": "GetScheduleNowV2Response 今天,明天课表信息返回体" + } }, "v1GetScheduleResponse": { "type": "object", "properties": { - "items": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { "$ref": "#/definitions/v1ScheduleResponseCourse" @@ -930,6 +953,25 @@ }, "title": "GetScheduleResponse 课表列表返回体" }, + "v1GetUnusedClassroomsResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Classroom" + }, + "title": "教室列表" + } + } + }, "v1ScheduleResponseCourse": { "type": "object", "properties": { diff --git a/docs/swagger/consultingapis/faq/v1/faq.swagger.json b/docs/swagger/consultingapis/faq/v1/faq.swagger.json index 64a2d29..8f15b2f 100644 --- a/docs/swagger/consultingapis/faq/v1/faq.swagger.json +++ b/docs/swagger/consultingapis/faq/v1/faq.swagger.json @@ -18,12 +18,12 @@ "paths": { "/faq/v1": { "get": { - "operationId": "FAQService_GetFAQDetail", + "operationId": "FAQService_GetFAQ", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1FAQ" + "$ref": "#/definitions/v1GetFAQResponse" } }, "default": { @@ -35,7 +35,7 @@ }, "parameters": [ { - "name": "id", + "name": "faqId", "in": "query", "required": false, "type": "string" @@ -51,7 +51,7 @@ "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1FAQ" + "$ref": "#/definitions/v1DeleteFAQResponse" } }, "default": { @@ -63,7 +63,7 @@ }, "parameters": [ { - "name": "id", + "name": "faqId", "in": "query", "required": false, "type": "string" @@ -79,7 +79,7 @@ "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1FAQ" + "$ref": "#/definitions/v1CreateFAQResponse" } }, "default": { @@ -91,7 +91,7 @@ }, "parameters": [ { - "name": "body", + "name": "data", "in": "body", "required": true, "schema": { @@ -109,7 +109,7 @@ "200": { "description": "A successful response.", "schema": { - "properties": {} + "$ref": "#/definitions/v1UpdateFAQResponse" } }, "default": { @@ -121,44 +121,18 @@ }, "parameters": [ { - "name": "faqId", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "info.categoryId", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "info.question", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "info.answer", - "in": "query", - "required": false, - "type": "string" + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1FAQInfo" + } }, { - "name": "info.answerRichtext", + "name": "faqId", "in": "query", "required": false, "type": "string" - }, - { - "name": "info.tags", - "in": "query", - "required": false, - "type": "array", - "items": { - "type": "string" - }, - "collectionFormat": "multi" } ], "tags": [ @@ -321,6 +295,33 @@ } } }, + "v1CreateFAQResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1FAQ" + } + } + }, + "v1DeleteFAQResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, "v1FAQ": { "type": "object", "properties": { @@ -406,6 +407,21 @@ } } }, + "v1GetFAQResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1FAQ" + } + } + }, "v1SearchFAQAnswerRichtextResponse": { "type": "object", "properties": { @@ -420,6 +436,21 @@ } } }, + "v1UpdateFAQResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1FAQ" + } + } + }, "v1User": { "type": "object", "properties": { From a36c47250db3ccd3b29089ada7c6fc2ceed6915f Mon Sep 17 00:00:00 2001 From: fdkevin Date: Thu, 26 May 2022 22:23:59 +0800 Subject: [PATCH 02/25] fix(health): rpc model error --- campusapis/health/v1/health.pb.go | 599 +++++++++--------- campusapis/health/v1/health.proto | 2 +- .../campusapis/health/v1/health.swagger.json | 2 +- 3 files changed, 301 insertions(+), 302 deletions(-) diff --git a/campusapis/health/v1/health.pb.go b/campusapis/health/v1/health.pb.go index 3f12607..468e975 100644 --- a/campusapis/health/v1/health.pb.go +++ b/campusapis/health/v1/health.pb.go @@ -79,9 +79,9 @@ type GetCheckinRecordsResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Data []*GetCheckinRecordResponse `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data []*CheckinRecord `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetCheckinRecordsResponse) Reset() { @@ -130,7 +130,7 @@ func (x *GetCheckinRecordsResponse) GetMsg() string { return "" } -func (x *GetCheckinRecordsResponse) GetData() []*GetCheckinRecordResponse { +func (x *GetCheckinRecordsResponse) GetData() []*CheckinRecord { if x != nil { return x.Data } @@ -1649,316 +1649,315 @@ var file_campusapis_health_v1_health_proto_rawDesc = []byte{ 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x19, 0x47, - 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x42, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2e, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x7b, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0xb2, 0x03, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, - 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, - 0x69, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x07, 0x63, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, - 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, - 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, - 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x22, 0x75, 0x0a, 0x18, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x45, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xb9, 0x01, - 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, - 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4a, 0x73, 0x6f, - 0x6e, 0x53, 0x74, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6e, 0x73, 0x77, - 0x65, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x22, 0xd7, 0x01, 0x0a, 0x19, 0x50, 0x6f, - 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, + 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x48, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, + 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x48, 0x0a, 0x04, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x46, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0x36, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x22, 0x2f, 0x0a, 0x17, 0x50, 0x6f, 0x73, 0x74, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x5c, 0x0a, 0x18, 0x50, 0x6f, 0x73, 0x74, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb2, 0x02, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x38, 0x0a, - 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x61, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x78, 0x0a, 0x15, 0x47, - 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7b, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xdb, 0x02, 0x0a, 0x0d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x43, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, - 0x26, 0x0a, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x41, 0x70, - 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, - 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, - 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x48, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x1a, 0x41, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x05, 0x69, - 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xa1, 0x02, 0x0a, 0x0d, 0x56, 0x61, 0x63, 0x63, 0x69, - 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x61, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x61, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x63, - 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2a, - 0x0a, 0x10, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, - 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, - 0x78, 0x49, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x6f, 0x63, 0x75, - 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x1b, 0x47, - 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, - 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x4a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, - 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x43, - 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x63, - 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x05, 0x69, 0x74, - 0x65, 0x6d, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x0f, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, - 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x55, - 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, - 0x65, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x72, - 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x72, 0x65, 0x70, - 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, - 0x85, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, - 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, - 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0xd5, 0x0a, 0x0a, 0x0d, 0x48, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x10, 0x47, 0x65, - 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2d, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, - 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, 0x12, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, - 0x31, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x68, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x5a, 0x17, 0x12, 0x15, - 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x2f, - 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x8d, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x13, 0x2f, 0x68, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, - 0x73, 0x5a, 0x12, 0x12, 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, - 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2e, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x61, + 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb2, 0x03, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, + 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, + 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, + 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, + 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, + 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, + 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, + 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x22, 0x75, 0x0a, 0x18, 0x50, 0x6f, + 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x45, 0x0a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x39, 0x22, 0x12, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, - 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x3a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x5a, 0x1a, 0x22, 0x0f, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x69, 0x6e, 0x3a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x83, 0x01, - 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x63, 0x6f, 0x72, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x22, 0xb9, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, + 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, + 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x22, 0xd7, 0x01, + 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x48, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x48, 0x0a, + 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x46, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, - 0x12, 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x68, 0x6f, - 0x6e, 0x65, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x70, 0x68, - 0x6f, 0x6e, 0x65, 0x12, 0xa2, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x1a, 0x36, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x22, 0x2f, 0x0a, 0x17, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, - 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x68, 0x6f, 0x6e, - 0x65, 0x3a, 0x01, 0x2a, 0x5a, 0x12, 0x22, 0x0d, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, - 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7d, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x48, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, - 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x0f, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, - 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x79, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x56, 0x61, - 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x5c, 0x0a, 0x18, + 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb2, 0x02, 0x0a, 0x0a, 0x48, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x64, + 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, + 0x64, 0x12, 0x38, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x67, + 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, + 0x78, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, + 0x52, 0x61, 0x77, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xdb, 0x02, 0x0a, 0x0d, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, + 0x73, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, + 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x73, + 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x63, 0x63, 0x69, 0x6e, - 0x65, 0x73, 0x12, 0x87, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, - 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, - 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x75, 0x63, 0x6c, 0x65, 0x69, - 0x63, 0x5f, 0x61, 0x63, 0x69, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x73, 0x12, 0x90, 0x01, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, - 0x65, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, - 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1e, 0x12, 0x1c, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x75, - 0x63, 0x6c, 0x65, 0x69, 0x63, 0x5f, 0x61, 0x63, 0x69, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x42, - 0xd8, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, - 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, - 0x31, 0x3b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x48, 0x58, - 0xaa, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x5c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5c, 0x56, 0x31, 0xe2, 0x02, - 0x20, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x48, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x48, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x41, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x39, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, + 0x6f, 0x72, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xa1, 0x02, 0x0a, 0x0d, 0x56, + 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x61, 0x63, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x61, 0x63, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x69, 0x6e, 0x6f, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x61, 0x74, + 0x63, 0x68, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, + 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x2e, + 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x49, + 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd6, + 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, + 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x4a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, + 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x1a, 0x43, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, + 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x0f, 0x4e, 0x75, 0x63, 0x6c, + 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, + 0x65, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x3a, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, + 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, + 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0xd5, 0x0a, 0x0a, 0x0d, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb9, 0x01, + 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, 0x12, 0x2f, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x5a, 0x11, 0x12, + 0x0f, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, + 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x69, 0x6e, 0x2f, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x8d, 0x01, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, + 0x12, 0x13, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x69, 0x6e, 0x73, 0x5a, 0x12, 0x12, 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x11, 0x50, 0x6f, + 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, + 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x22, 0x12, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x3a, 0x07, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5a, 0x1a, 0x22, 0x0f, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x3a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x83, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, + 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2d, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x23, 0x12, 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0xa2, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x74, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2d, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x29, 0x22, 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x5a, 0x12, 0x22, 0x0d, 0x2f, 0x68, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7d, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x0f, 0x2f, 0x68, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x79, 0x0a, 0x11, 0x47, + 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x15, 0x12, 0x13, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, + 0x63, 0x63, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x87, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x75, + 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1f, 0x12, 0x1d, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x75, + 0x63, 0x6c, 0x65, 0x69, 0x63, 0x5f, 0x61, 0x63, 0x69, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x73, + 0x12, 0x90, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, + 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, + 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, + 0x31, 0x2f, 0x6e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x5f, 0x61, 0x63, 0x69, 0x64, 0x5f, 0x74, + 0x65, 0x73, 0x74, 0x42, 0xd8, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x42, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, + 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, + 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x2f, 0x76, 0x31, 0x3b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x76, 0x31, 0xa2, 0x02, + 0x03, 0x43, 0x48, 0x58, 0xaa, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x14, 0x43, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5c, + 0x56, 0x31, 0xe2, 0x02, 0x20, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, + 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x3a, 0x3a, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2002,7 +2001,7 @@ var file_campusapis_health_v1_health_proto_goTypes = []interface{}{ (*emptypb.Empty)(nil), // 24: google.protobuf.Empty } var file_campusapis_health_v1_health_proto_depIdxs = []int32{ - 2, // 0: campusapis.health.v1.GetCheckinRecordsResponse.data:type_name -> campusapis.health.v1.GetCheckinRecordResponse + 3, // 0: campusapis.health.v1.GetCheckinRecordsResponse.data:type_name -> campusapis.health.v1.CheckinRecord 3, // 1: campusapis.health.v1.GetCheckinRecordResponse.data:type_name -> campusapis.health.v1.CheckinRecord 22, // 2: campusapis.health.v1.CheckinRecord.content:type_name -> google.protobuf.Struct 5, // 3: campusapis.health.v1.PostCheckinRecordRequest.content:type_name -> campusapis.health.v1.PostCheckinRecordBody diff --git a/campusapis/health/v1/health.proto b/campusapis/health/v1/health.proto index e5e6d76..d27a5af 100644 --- a/campusapis/health/v1/health.proto +++ b/campusapis/health/v1/health.proto @@ -102,7 +102,7 @@ message GetCheckinRecordRequest { message GetCheckinRecordsResponse { uint32 error = 1; string msg = 2; - repeated GetCheckinRecordResponse data = 3; + repeated CheckinRecord data = 3; } message GetCheckinRecordResponse { diff --git a/docs/swagger/campusapis/health/v1/health.swagger.json b/docs/swagger/campusapis/health/v1/health.swagger.json index 724ad49..8a0867c 100644 --- a/docs/swagger/campusapis/health/v1/health.swagger.json +++ b/docs/swagger/campusapis/health/v1/health.swagger.json @@ -619,7 +619,7 @@ "data": { "type": "array", "items": { - "$ref": "#/definitions/v1GetCheckinRecordResponse" + "$ref": "#/definitions/v1CheckinRecord" } } } From 9d40401c32cfbd531e9c736c655b958bced8a6e4 Mon Sep 17 00:00:00 2001 From: fdkevin Date: Thu, 26 May 2022 22:52:00 +0800 Subject: [PATCH 03/25] fix(staff): rpc dorm model error --- campusapis/staff/v1/campus.pb.go | 1364 +++++++++-------- campusapis/staff/v1/campus.proto | 6 + .../campusapis/staff/v1/campus.swagger.json | 33 +- 3 files changed, 754 insertions(+), 649 deletions(-) diff --git a/campusapis/staff/v1/campus.pb.go b/campusapis/staff/v1/campus.pb.go index 46718fe..b6ba0b0 100644 --- a/campusapis/staff/v1/campus.pb.go +++ b/campusapis/staff/v1/campus.pb.go @@ -536,12 +536,9 @@ type GetStudentDormInfoResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - //学工号 - StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` - //楼号 - Building string `protobuf:"bytes,2,opt,name=building,proto3" json:"building,omitempty"` - //寝室号 - Room string `protobuf:"bytes,3,opt,name=room,proto3" json:"room,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *DormInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetStudentDormInfoResponse) Reset() { @@ -576,21 +573,87 @@ func (*GetStudentDormInfoResponse) Descriptor() ([]byte, []int) { return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{8} } -func (x *GetStudentDormInfoResponse) GetStaffId() string { +func (x *GetStudentDormInfoResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetStudentDormInfoResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetStudentDormInfoResponse) GetData() *DormInfo { + if x != nil { + return x.Data + } + return nil +} + +type DormInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //学工号 + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + //楼号 + Building string `protobuf:"bytes,2,opt,name=building,proto3" json:"building,omitempty"` + //寝室号 + Room string `protobuf:"bytes,3,opt,name=room,proto3" json:"room,omitempty"` +} + +func (x *DormInfo) Reset() { + *x = DormInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DormInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DormInfo) ProtoMessage() {} + +func (x *DormInfo) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DormInfo.ProtoReflect.Descriptor instead. +func (*DormInfo) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9} +} + +func (x *DormInfo) GetStaffId() string { if x != nil { return x.StaffId } return "" } -func (x *GetStudentDormInfoResponse) GetBuilding() string { +func (x *DormInfo) GetBuilding() string { if x != nil { return x.Building } return "" } -func (x *GetStudentDormInfoResponse) GetRoom() string { +func (x *DormInfo) GetRoom() string { if x != nil { return x.Room } @@ -611,7 +674,7 @@ type GetStudentBirthdayInfoResponse struct { func (x *GetStudentBirthdayInfoResponse) Reset() { *x = GetStudentBirthdayInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -624,7 +687,7 @@ func (x *GetStudentBirthdayInfoResponse) String() string { func (*GetStudentBirthdayInfoResponse) ProtoMessage() {} func (x *GetStudentBirthdayInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -637,7 +700,7 @@ func (x *GetStudentBirthdayInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdayInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentBirthdayInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10} } func (x *GetStudentBirthdayInfoResponse) GetError() uint32 { @@ -678,7 +741,7 @@ type StudentBirthdayInfo struct { func (x *StudentBirthdayInfo) Reset() { *x = StudentBirthdayInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -691,7 +754,7 @@ func (x *StudentBirthdayInfo) String() string { func (*StudentBirthdayInfo) ProtoMessage() {} func (x *StudentBirthdayInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -704,7 +767,7 @@ func (x *StudentBirthdayInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentBirthdayInfo.ProtoReflect.Descriptor instead. func (*StudentBirthdayInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{11} } func (x *StudentBirthdayInfo) GetStaffId() string { @@ -745,7 +808,7 @@ type GetStudentBirthdaysInRequest struct { func (x *GetStudentBirthdaysInRequest) Reset() { *x = GetStudentBirthdaysInRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -758,7 +821,7 @@ func (x *GetStudentBirthdaysInRequest) String() string { func (*GetStudentBirthdaysInRequest) ProtoMessage() {} func (x *GetStudentBirthdaysInRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -771,7 +834,7 @@ func (x *GetStudentBirthdaysInRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdaysInRequest.ProtoReflect.Descriptor instead. func (*GetStudentBirthdaysInRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{11} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12} } func (x *GetStudentBirthdaysInRequest) GetType() staff.Type { @@ -808,7 +871,7 @@ type GetStudentBirthdaysInResponse struct { func (x *GetStudentBirthdaysInResponse) Reset() { *x = GetStudentBirthdaysInResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -821,7 +884,7 @@ func (x *GetStudentBirthdaysInResponse) String() string { func (*GetStudentBirthdaysInResponse) ProtoMessage() {} func (x *GetStudentBirthdaysInResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -834,7 +897,7 @@ func (x *GetStudentBirthdaysInResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdaysInResponse.ProtoReflect.Descriptor instead. func (*GetStudentBirthdaysInResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{13} } func (x *GetStudentBirthdaysInResponse) GetBirthdays() []*StudentBirthdayInfo { @@ -859,7 +922,7 @@ type GetStudentRewardsResponse struct { func (x *GetStudentRewardsResponse) Reset() { *x = GetStudentRewardsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -872,7 +935,7 @@ func (x *GetStudentRewardsResponse) String() string { func (*GetStudentRewardsResponse) ProtoMessage() {} func (x *GetStudentRewardsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -885,7 +948,7 @@ func (x *GetStudentRewardsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentRewardsResponse.ProtoReflect.Descriptor instead. func (*GetStudentRewardsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{13} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{14} } func (x *GetStudentRewardsResponse) GetError() uint32 { @@ -932,7 +995,7 @@ type StudentReward struct { func (x *StudentReward) Reset() { *x = StudentReward{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -945,7 +1008,7 @@ func (x *StudentReward) String() string { func (*StudentReward) ProtoMessage() {} func (x *StudentReward) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -958,7 +1021,7 @@ func (x *StudentReward) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentReward.ProtoReflect.Descriptor instead. func (*StudentReward) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{14} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{15} } func (x *StudentReward) GetStaffID() string { @@ -1018,7 +1081,7 @@ type GetStudentCourseSelectionsResponse struct { func (x *GetStudentCourseSelectionsResponse) Reset() { *x = GetStudentCourseSelectionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1031,7 +1094,7 @@ func (x *GetStudentCourseSelectionsResponse) String() string { func (*GetStudentCourseSelectionsResponse) ProtoMessage() {} func (x *GetStudentCourseSelectionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1044,7 +1107,7 @@ func (x *GetStudentCourseSelectionsResponse) ProtoReflect() protoreflect.Message // Deprecated: Use GetStudentCourseSelectionsResponse.ProtoReflect.Descriptor instead. func (*GetStudentCourseSelectionsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{15} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{16} } func (x *GetStudentCourseSelectionsResponse) GetError() uint32 { @@ -1101,7 +1164,7 @@ type StudentCourseSelection struct { func (x *StudentCourseSelection) Reset() { *x = StudentCourseSelection{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1114,7 +1177,7 @@ func (x *StudentCourseSelection) String() string { func (*StudentCourseSelection) ProtoMessage() {} func (x *StudentCourseSelection) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1127,7 +1190,7 @@ func (x *StudentCourseSelection) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentCourseSelection.ProtoReflect.Descriptor instead. func (*StudentCourseSelection) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{16} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{17} } func (x *StudentCourseSelection) GetSchoolYear() string { @@ -1222,7 +1285,7 @@ type GetStudentGradeResponse struct { func (x *GetStudentGradeResponse) Reset() { *x = GetStudentGradeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1235,7 +1298,7 @@ func (x *GetStudentGradeResponse) String() string { func (*GetStudentGradeResponse) ProtoMessage() {} func (x *GetStudentGradeResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1248,7 +1311,7 @@ func (x *GetStudentGradeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentGradeResponse.ProtoReflect.Descriptor instead. func (*GetStudentGradeResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{17} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{18} } func (x *GetStudentGradeResponse) GetError() uint32 { @@ -1313,7 +1376,7 @@ type StudentGrade struct { func (x *StudentGrade) Reset() { *x = StudentGrade{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1326,7 +1389,7 @@ func (x *StudentGrade) String() string { func (*StudentGrade) ProtoMessage() {} func (x *StudentGrade) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1339,7 +1402,7 @@ func (x *StudentGrade) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentGrade.ProtoReflect.Descriptor instead. func (*StudentGrade) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{18} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{19} } func (x *StudentGrade) GetSchoolYear() string { @@ -1475,7 +1538,7 @@ type PostStudentGateAccessRequest struct { func (x *PostStudentGateAccessRequest) Reset() { *x = PostStudentGateAccessRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1488,7 +1551,7 @@ func (x *PostStudentGateAccessRequest) String() string { func (*PostStudentGateAccessRequest) ProtoMessage() {} func (x *PostStudentGateAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1501,7 +1564,7 @@ func (x *PostStudentGateAccessRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PostStudentGateAccessRequest.ProtoReflect.Descriptor instead. func (*PostStudentGateAccessRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{19} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{20} } func (x *PostStudentGateAccessRequest) GetStaffId() string { @@ -1567,7 +1630,7 @@ type PostStudentGateAccessResponse struct { func (x *PostStudentGateAccessResponse) Reset() { *x = PostStudentGateAccessResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1580,7 +1643,7 @@ func (x *PostStudentGateAccessResponse) String() string { func (*PostStudentGateAccessResponse) ProtoMessage() {} func (x *PostStudentGateAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1593,7 +1656,7 @@ func (x *PostStudentGateAccessResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PostStudentGateAccessResponse.ProtoReflect.Descriptor instead. func (*PostStudentGateAccessResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{20} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{21} } func (x *PostStudentGateAccessResponse) GetError() uint32 { @@ -1631,7 +1694,7 @@ type GetStudentStaySchoolInfoResponse struct { func (x *GetStudentStaySchoolInfoResponse) Reset() { *x = GetStudentStaySchoolInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1644,7 +1707,7 @@ func (x *GetStudentStaySchoolInfoResponse) String() string { func (*GetStudentStaySchoolInfoResponse) ProtoMessage() {} func (x *GetStudentStaySchoolInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1657,7 +1720,7 @@ func (x *GetStudentStaySchoolInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentStaySchoolInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentStaySchoolInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{21} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{22} } func (x *GetStudentStaySchoolInfoResponse) GetError() uint32 { @@ -1722,7 +1785,7 @@ type StudentStaySchoolInfo struct { func (x *StudentStaySchoolInfo) Reset() { *x = StudentStaySchoolInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1735,7 +1798,7 @@ func (x *StudentStaySchoolInfo) String() string { func (*StudentStaySchoolInfo) ProtoMessage() {} func (x *StudentStaySchoolInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1748,7 +1811,7 @@ func (x *StudentStaySchoolInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentStaySchoolInfo.ProtoReflect.Descriptor instead. func (*StudentStaySchoolInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{22} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{23} } func (x *StudentStaySchoolInfo) GetStaffId() string { @@ -1872,7 +1935,7 @@ type GetFreshmanBaseInfoRequest struct { func (x *GetFreshmanBaseInfoRequest) Reset() { *x = GetFreshmanBaseInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1885,7 +1948,7 @@ func (x *GetFreshmanBaseInfoRequest) String() string { func (*GetFreshmanBaseInfoRequest) ProtoMessage() {} func (x *GetFreshmanBaseInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1898,7 +1961,7 @@ func (x *GetFreshmanBaseInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanBaseInfoRequest.ProtoReflect.Descriptor instead. func (*GetFreshmanBaseInfoRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{23} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{24} } func (x *GetFreshmanBaseInfoRequest) GetStaffId() string { @@ -1938,7 +2001,7 @@ type GetFreshmanDetailRequest struct { func (x *GetFreshmanDetailRequest) Reset() { *x = GetFreshmanDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1951,7 +2014,7 @@ func (x *GetFreshmanDetailRequest) String() string { func (*GetFreshmanDetailRequest) ProtoMessage() {} func (x *GetFreshmanDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1964,7 +2027,7 @@ func (x *GetFreshmanDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanDetailRequest.ProtoReflect.Descriptor instead. func (*GetFreshmanDetailRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{24} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{25} } func (x *GetFreshmanDetailRequest) GetStaffId() string { @@ -2004,7 +2067,7 @@ type GetFreshmanRoommatesRequest struct { func (x *GetFreshmanRoommatesRequest) Reset() { *x = GetFreshmanRoommatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2017,7 +2080,7 @@ func (x *GetFreshmanRoommatesRequest) String() string { func (*GetFreshmanRoommatesRequest) ProtoMessage() {} func (x *GetFreshmanRoommatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2030,7 +2093,7 @@ func (x *GetFreshmanRoommatesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanRoommatesRequest.ProtoReflect.Descriptor instead. func (*GetFreshmanRoommatesRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{25} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{26} } func (x *GetFreshmanRoommatesRequest) GetStaffId() string { @@ -2072,7 +2135,7 @@ type FreshmanKeywordRequest struct { func (x *FreshmanKeywordRequest) Reset() { *x = FreshmanKeywordRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2085,7 +2148,7 @@ func (x *FreshmanKeywordRequest) String() string { func (*FreshmanKeywordRequest) ProtoMessage() {} func (x *FreshmanKeywordRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2098,7 +2161,7 @@ func (x *FreshmanKeywordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanKeywordRequest.ProtoReflect.Descriptor instead. func (*FreshmanKeywordRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{26} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{27} } func (x *FreshmanKeywordRequest) GetStaffId() string { @@ -2135,7 +2198,7 @@ type GetFreshmanBaseInfoResponse struct { func (x *GetFreshmanBaseInfoResponse) Reset() { *x = GetFreshmanBaseInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2148,7 +2211,7 @@ func (x *GetFreshmanBaseInfoResponse) String() string { func (*GetFreshmanBaseInfoResponse) ProtoMessage() {} func (x *GetFreshmanBaseInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2161,7 +2224,7 @@ func (x *GetFreshmanBaseInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanBaseInfoResponse.ProtoReflect.Descriptor instead. func (*GetFreshmanBaseInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{27} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{28} } func (x *GetFreshmanBaseInfoResponse) GetError() uint32 { @@ -2208,7 +2271,7 @@ type FreshmanBaseInfo struct { func (x *FreshmanBaseInfo) Reset() { *x = FreshmanBaseInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2221,7 +2284,7 @@ func (x *FreshmanBaseInfo) String() string { func (*FreshmanBaseInfo) ProtoMessage() {} func (x *FreshmanBaseInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2234,7 +2297,7 @@ func (x *FreshmanBaseInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanBaseInfo.ProtoReflect.Descriptor instead. func (*FreshmanBaseInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{28} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{29} } func (x *FreshmanBaseInfo) GetStaffId() string { @@ -2292,7 +2355,7 @@ type GetFreshmanDetailResponse struct { func (x *GetFreshmanDetailResponse) Reset() { *x = GetFreshmanDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2305,7 +2368,7 @@ func (x *GetFreshmanDetailResponse) String() string { func (*GetFreshmanDetailResponse) ProtoMessage() {} func (x *GetFreshmanDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2318,7 +2381,7 @@ func (x *GetFreshmanDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanDetailResponse.ProtoReflect.Descriptor instead. func (*GetFreshmanDetailResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{29} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{30} } func (x *GetFreshmanDetailResponse) GetError() uint32 { @@ -2400,7 +2463,7 @@ type FreshmanDetail struct { func (x *FreshmanDetail) Reset() { *x = FreshmanDetail{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2413,7 +2476,7 @@ func (x *FreshmanDetail) String() string { func (*FreshmanDetail) ProtoMessage() {} func (x *FreshmanDetail) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2426,7 +2489,7 @@ func (x *FreshmanDetail) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanDetail.ProtoReflect.Descriptor instead. func (*FreshmanDetail) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{30} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{31} } func (x *FreshmanDetail) GetStaffId() string { @@ -2619,7 +2682,7 @@ type GetFreshmanRoommatesResponse struct { func (x *GetFreshmanRoommatesResponse) Reset() { *x = GetFreshmanRoommatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2632,7 +2695,7 @@ func (x *GetFreshmanRoommatesResponse) String() string { func (*GetFreshmanRoommatesResponse) ProtoMessage() {} func (x *GetFreshmanRoommatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2645,7 +2708,7 @@ func (x *GetFreshmanRoommatesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanRoommatesResponse.ProtoReflect.Descriptor instead. func (*GetFreshmanRoommatesResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{31} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{32} } func (x *GetFreshmanRoommatesResponse) GetError() uint32 { @@ -2683,7 +2746,7 @@ type FreshmanRoommate struct { func (x *FreshmanRoommate) Reset() { *x = FreshmanRoommate{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2696,7 +2759,7 @@ func (x *FreshmanRoommate) String() string { func (*FreshmanRoommate) ProtoMessage() {} func (x *FreshmanRoommate) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2709,7 +2772,7 @@ func (x *FreshmanRoommate) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanRoommate.ProtoReflect.Descriptor instead. func (*FreshmanRoommate) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{32} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{33} } func (x *FreshmanRoommate) GetStaffName() string { @@ -2753,7 +2816,7 @@ type GetPersonInfoResponse_Data struct { func (x *GetPersonInfoResponse_Data) Reset() { *x = GetPersonInfoResponse_Data{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2766,7 +2829,7 @@ func (x *GetPersonInfoResponse_Data) String() string { func (*GetPersonInfoResponse_Data) ProtoMessage() {} func (x *GetPersonInfoResponse_Data) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2845,7 +2908,7 @@ type GetStudentInfoResponse_Data struct { func (x *GetStudentInfoResponse_Data) Reset() { *x = GetStudentInfoResponse_Data{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2858,7 +2921,7 @@ func (x *GetStudentInfoResponse_Data) String() string { func (*GetStudentInfoResponse_Data) ProtoMessage() {} func (x *GetStudentInfoResponse_Data) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2952,7 +3015,7 @@ type StudentNeedyInfo_Nested struct { func (x *StudentNeedyInfo_Nested) Reset() { *x = StudentNeedyInfo_Nested{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2965,7 +3028,7 @@ func (x *StudentNeedyInfo_Nested) String() string { func (*StudentNeedyInfo_Nested) ProtoMessage() {} func (x *StudentNeedyInfo_Nested) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3007,7 +3070,7 @@ type PostStudentGateAccessResponse_Data struct { func (x *PostStudentGateAccessResponse_Data) Reset() { *x = PostStudentGateAccessResponse_Data{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3020,7 +3083,7 @@ func (x *PostStudentGateAccessResponse_Data) String() string { func (*PostStudentGateAccessResponse_Data) ProtoMessage() {} func (x *PostStudentGateAccessResponse_Data) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3033,7 +3096,7 @@ func (x *PostStudentGateAccessResponse_Data) ProtoReflect() protoreflect.Message // Deprecated: Use PostStudentGateAccessResponse_Data.ProtoReflect.Descriptor instead. func (*PostStudentGateAccessResponse_Data) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{20, 0} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{21, 0} } func (x *PostStudentGateAccessResponse_Data) GetDone() bool { @@ -3153,469 +3216,476 @@ var file_campusapis_staff_v1_campus_proto_rawDesc = []byte{ 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x22, 0x66, 0x0a, 0x1a, + 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, - 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x08, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1e, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, + 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x13, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, 0x72, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x79, 0x22, 0x67, 0x0a, 0x1d, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, + 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, - 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, - 0x13, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, 0x72, - 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, - 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, - 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, - 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, - 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, - 0x61, 0x79, 0x22, 0x67, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x22, 0x7b, 0x0a, 0x19, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc5, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, - 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x20, - 0x0a, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, - 0x22, 0x8d, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, - 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x22, 0xe8, 0x02, 0x0a, 0x16, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, - 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, - 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, - 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x22, 0x78, 0x0a, 0x17, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x35, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x03, 0x0a, 0x0c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, - 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, - 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0xda, 0x01, 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, 0x61, 0x72, - 0x67, 0x65, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x4b, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, - 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x34, 0x0a, 0x04, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x22, 0x8a, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, - 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3e, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x04, - 0x0a, 0x15, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x31, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, - 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x31, - 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x31, - 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, 0x6e, 0x64, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, 0x6e, 0x64, 0x12, - 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, - 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, - 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x2c, 0x0a, 0x11, 0x74, + 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x73, 0x22, 0x7b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xc5, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x8d, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe8, 0x02, 0x0a, 0x16, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, + 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, + 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, + 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, + 0x6f, 0x6d, 0x22, 0x78, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x03, 0x0a, + 0x0c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, + 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, + 0x65, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, + 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, + 0x50, 0x41, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0xda, 0x01, + 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, + 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, + 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, + 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, + 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, + 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x1d, 0x50, + 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x4b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x1a, 0x34, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x04, 0x0a, 0x15, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, + 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, + 0x6d, 0x65, 0x32, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, + 0x6d, 0x65, 0x32, 0x45, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, + 0x6d, 0x65, 0x32, 0x45, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, + 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, + 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, + 0x72, 0x6b, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, + 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, - 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, - 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, - 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, - 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, - 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x75, 0x6e, 0x69, - 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, - 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, - 0x64, 0x4e, 0x6f, 0x22, 0x6a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, - 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, + 0x12, 0x26, 0x0a, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, + 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x1a, + 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x6a, 0x0a, 0x18, 0x47, 0x65, + 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x6d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, + 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x68, 0x0a, 0x16, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, + 0x6e, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, - 0x6d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, - 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x68, - 0x0a, 0x16, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, - 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, - 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xba, 0x01, 0x0a, 0x10, - 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, + 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, + 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0xba, 0x01, 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, + 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, + 0x7c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, + 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x05, + 0x0a, 0x0e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x12, 0x1c, - 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x46, - 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x05, 0x0a, 0x0e, 0x46, 0x72, 0x65, 0x73, 0x68, - 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, - 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, - 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, - 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, - 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4c, 0x53, 0x54, - 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4c, 0x53, 0x54, 0x44, 0x12, 0x16, 0x0a, - 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, - 0x53, 0x54, 0x44, 0x58, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x18, - 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x12, 0x14, 0x0a, - 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, - 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x71, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, - 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, - 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, - 0x6f, 0x6f, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, - 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x18, 0x16, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x12, 0x1a, 0x0a, - 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, - 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, 0x18, 0x0a, - 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x46, - 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, + 0x72, 0x64, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x63, + 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, + 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x4c, 0x53, 0x54, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x4c, 0x53, 0x54, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x12, 0x16, 0x0a, 0x06, + 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, + 0x54, 0x44, 0x5a, 0x58, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x6f, + 0x6f, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, + 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, + 0x6d, 0x42, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x68, 0x69, 0x67, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, + 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, + 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x56, 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, + 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x71, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0xee, 0x11, 0x0a, 0x0d, 0x43, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, + 0x0d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, + 0x6f, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, + 0x6f, 0x12, 0x86, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x5a, 0x10, 0x12, + 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x12, + 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, + 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, - 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x56, 0x0a, 0x10, 0x46, - 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, - 0x02, 0x71, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, 0x14, 0x0a, - 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, - 0x6f, 0x6e, 0x65, 0x32, 0xee, 0x11, 0x0a, 0x0d, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, - 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x27, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, - 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x70, - 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x86, 0x01, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, - 0x66, 0x6f, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, - 0x6e, 0x66, 0x6f, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, + 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x5a, + 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, + 0x12, 0x9e, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x70, 0x74, 0x79, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, - 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x16, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x33, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, - 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x1a, 0x2f, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, - 0x74, 0x68, 0x64, 0x61, 0x79, 0x5a, 0x13, 0x12, 0x11, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0xb9, 0x01, 0x0a, 0x15, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, - 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, - 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, - 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2d, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, + 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, + 0x12, 0x1a, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x5a, 0x13, 0x12, 0x11, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x12, 0xb9, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5a, 0x11, 0x12, - 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, - 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, + 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, - 0x67, 0x72, 0x61, 0x64, 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x18, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x1d, - 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x5a, 0x16, 0x12, - 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, - 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, - 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, - 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, - 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, - 0x61, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, - 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, - 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xb6, 0x01, 0x0a, 0x14, - 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, - 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, - 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, + 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, + 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, + 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5a, 0x10, 0x12, 0x0e, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x80, + 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, + 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, + 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5a, 0x14, - 0x12, 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, - 0x6d, 0x61, 0x74, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x42, 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, - 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, - 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, - 0x53, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x53, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0xe2, 0x02, - 0x1f, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, - 0x66, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xea, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, - 0x74, 0x61, 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x1d, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, + 0x53, 0x74, 0x61, 0x79, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, + 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, + 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, + 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, + 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, + 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, + 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, + 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, + 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, + 0x66, 0x6f, 0x12, 0xb6, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, + 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, + 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, + 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, + 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, + 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, + 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, + 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3630,7 +3700,7 @@ func file_campusapis_staff_v1_campus_proto_rawDescGZIP() []byte { return file_campusapis_staff_v1_campus_proto_rawDescData } -var file_campusapis_staff_v1_campus_proto_msgTypes = make([]protoimpl.MessageInfo, 37) +var file_campusapis_staff_v1_campus_proto_msgTypes = make([]protoimpl.MessageInfo, 38) var file_campusapis_staff_v1_campus_proto_goTypes = []interface{}{ (*GetPersonInfoResponse)(nil), // 0: campusapis.staff.v1.GetPersonInfoResponse (*GetStudentRewardsRequest)(nil), // 1: campusapis.staff.v1.GetStudentRewardsRequest @@ -3641,86 +3711,88 @@ var file_campusapis_staff_v1_campus_proto_goTypes = []interface{}{ (*GetStudentNeedyInfoResponse)(nil), // 6: campusapis.staff.v1.GetStudentNeedyInfoResponse (*StudentNeedyInfo)(nil), // 7: campusapis.staff.v1.StudentNeedyInfo (*GetStudentDormInfoResponse)(nil), // 8: campusapis.staff.v1.GetStudentDormInfoResponse - (*GetStudentBirthdayInfoResponse)(nil), // 9: campusapis.staff.v1.GetStudentBirthdayInfoResponse - (*StudentBirthdayInfo)(nil), // 10: campusapis.staff.v1.StudentBirthdayInfo - (*GetStudentBirthdaysInRequest)(nil), // 11: campusapis.staff.v1.GetStudentBirthdaysInRequest - (*GetStudentBirthdaysInResponse)(nil), // 12: campusapis.staff.v1.GetStudentBirthdaysInResponse - (*GetStudentRewardsResponse)(nil), // 13: campusapis.staff.v1.GetStudentRewardsResponse - (*StudentReward)(nil), // 14: campusapis.staff.v1.StudentReward - (*GetStudentCourseSelectionsResponse)(nil), // 15: campusapis.staff.v1.GetStudentCourseSelectionsResponse - (*StudentCourseSelection)(nil), // 16: campusapis.staff.v1.StudentCourseSelection - (*GetStudentGradeResponse)(nil), // 17: campusapis.staff.v1.GetStudentGradeResponse - (*StudentGrade)(nil), // 18: campusapis.staff.v1.StudentGrade - (*PostStudentGateAccessRequest)(nil), // 19: campusapis.staff.v1.PostStudentGateAccessRequest - (*PostStudentGateAccessResponse)(nil), // 20: campusapis.staff.v1.PostStudentGateAccessResponse - (*GetStudentStaySchoolInfoResponse)(nil), // 21: campusapis.staff.v1.GetStudentStaySchoolInfoResponse - (*StudentStaySchoolInfo)(nil), // 22: campusapis.staff.v1.StudentStaySchoolInfo - (*GetFreshmanBaseInfoRequest)(nil), // 23: campusapis.staff.v1.GetFreshmanBaseInfoRequest - (*GetFreshmanDetailRequest)(nil), // 24: campusapis.staff.v1.GetFreshmanDetailRequest - (*GetFreshmanRoommatesRequest)(nil), // 25: campusapis.staff.v1.GetFreshmanRoommatesRequest - (*FreshmanKeywordRequest)(nil), // 26: campusapis.staff.v1.FreshmanKeywordRequest - (*GetFreshmanBaseInfoResponse)(nil), // 27: campusapis.staff.v1.GetFreshmanBaseInfoResponse - (*FreshmanBaseInfo)(nil), // 28: campusapis.staff.v1.FreshmanBaseInfo - (*GetFreshmanDetailResponse)(nil), // 29: campusapis.staff.v1.GetFreshmanDetailResponse - (*FreshmanDetail)(nil), // 30: campusapis.staff.v1.FreshmanDetail - (*GetFreshmanRoommatesResponse)(nil), // 31: campusapis.staff.v1.GetFreshmanRoommatesResponse - (*FreshmanRoommate)(nil), // 32: campusapis.staff.v1.FreshmanRoommate - (*GetPersonInfoResponse_Data)(nil), // 33: campusapis.staff.v1.GetPersonInfoResponse.Data - (*GetStudentInfoResponse_Data)(nil), // 34: campusapis.staff.v1.GetStudentInfoResponse.Data - (*StudentNeedyInfo_Nested)(nil), // 35: campusapis.staff.v1.StudentNeedyInfo.Nested - (*PostStudentGateAccessResponse_Data)(nil), // 36: campusapis.staff.v1.PostStudentGateAccessResponse.Data - (staff.Type)(0), // 37: campusapis.staff.Type - (*emptypb.Empty)(nil), // 38: google.protobuf.Empty + (*DormInfo)(nil), // 9: campusapis.staff.v1.DormInfo + (*GetStudentBirthdayInfoResponse)(nil), // 10: campusapis.staff.v1.GetStudentBirthdayInfoResponse + (*StudentBirthdayInfo)(nil), // 11: campusapis.staff.v1.StudentBirthdayInfo + (*GetStudentBirthdaysInRequest)(nil), // 12: campusapis.staff.v1.GetStudentBirthdaysInRequest + (*GetStudentBirthdaysInResponse)(nil), // 13: campusapis.staff.v1.GetStudentBirthdaysInResponse + (*GetStudentRewardsResponse)(nil), // 14: campusapis.staff.v1.GetStudentRewardsResponse + (*StudentReward)(nil), // 15: campusapis.staff.v1.StudentReward + (*GetStudentCourseSelectionsResponse)(nil), // 16: campusapis.staff.v1.GetStudentCourseSelectionsResponse + (*StudentCourseSelection)(nil), // 17: campusapis.staff.v1.StudentCourseSelection + (*GetStudentGradeResponse)(nil), // 18: campusapis.staff.v1.GetStudentGradeResponse + (*StudentGrade)(nil), // 19: campusapis.staff.v1.StudentGrade + (*PostStudentGateAccessRequest)(nil), // 20: campusapis.staff.v1.PostStudentGateAccessRequest + (*PostStudentGateAccessResponse)(nil), // 21: campusapis.staff.v1.PostStudentGateAccessResponse + (*GetStudentStaySchoolInfoResponse)(nil), // 22: campusapis.staff.v1.GetStudentStaySchoolInfoResponse + (*StudentStaySchoolInfo)(nil), // 23: campusapis.staff.v1.StudentStaySchoolInfo + (*GetFreshmanBaseInfoRequest)(nil), // 24: campusapis.staff.v1.GetFreshmanBaseInfoRequest + (*GetFreshmanDetailRequest)(nil), // 25: campusapis.staff.v1.GetFreshmanDetailRequest + (*GetFreshmanRoommatesRequest)(nil), // 26: campusapis.staff.v1.GetFreshmanRoommatesRequest + (*FreshmanKeywordRequest)(nil), // 27: campusapis.staff.v1.FreshmanKeywordRequest + (*GetFreshmanBaseInfoResponse)(nil), // 28: campusapis.staff.v1.GetFreshmanBaseInfoResponse + (*FreshmanBaseInfo)(nil), // 29: campusapis.staff.v1.FreshmanBaseInfo + (*GetFreshmanDetailResponse)(nil), // 30: campusapis.staff.v1.GetFreshmanDetailResponse + (*FreshmanDetail)(nil), // 31: campusapis.staff.v1.FreshmanDetail + (*GetFreshmanRoommatesResponse)(nil), // 32: campusapis.staff.v1.GetFreshmanRoommatesResponse + (*FreshmanRoommate)(nil), // 33: campusapis.staff.v1.FreshmanRoommate + (*GetPersonInfoResponse_Data)(nil), // 34: campusapis.staff.v1.GetPersonInfoResponse.Data + (*GetStudentInfoResponse_Data)(nil), // 35: campusapis.staff.v1.GetStudentInfoResponse.Data + (*StudentNeedyInfo_Nested)(nil), // 36: campusapis.staff.v1.StudentNeedyInfo.Nested + (*PostStudentGateAccessResponse_Data)(nil), // 37: campusapis.staff.v1.PostStudentGateAccessResponse.Data + (staff.Type)(0), // 38: campusapis.staff.Type + (*emptypb.Empty)(nil), // 39: google.protobuf.Empty } var file_campusapis_staff_v1_campus_proto_depIdxs = []int32{ - 33, // 0: campusapis.staff.v1.GetPersonInfoResponse.data:type_name -> campusapis.staff.v1.GetPersonInfoResponse.Data - 34, // 1: campusapis.staff.v1.GetStudentInfoResponse.data:type_name -> campusapis.staff.v1.GetStudentInfoResponse.Data + 34, // 0: campusapis.staff.v1.GetPersonInfoResponse.data:type_name -> campusapis.staff.v1.GetPersonInfoResponse.Data + 35, // 1: campusapis.staff.v1.GetStudentInfoResponse.data:type_name -> campusapis.staff.v1.GetStudentInfoResponse.Data 7, // 2: campusapis.staff.v1.GetStudentNeedyInfoResponse.data:type_name -> campusapis.staff.v1.StudentNeedyInfo - 35, // 3: campusapis.staff.v1.StudentNeedyInfo.items:type_name -> campusapis.staff.v1.StudentNeedyInfo.Nested - 10, // 4: campusapis.staff.v1.GetStudentBirthdayInfoResponse.data:type_name -> campusapis.staff.v1.StudentBirthdayInfo - 37, // 5: campusapis.staff.v1.GetStudentBirthdaysInRequest.type:type_name -> campusapis.staff.Type - 10, // 6: campusapis.staff.v1.GetStudentBirthdaysInResponse.birthdays:type_name -> campusapis.staff.v1.StudentBirthdayInfo - 14, // 7: campusapis.staff.v1.GetStudentRewardsResponse.data:type_name -> campusapis.staff.v1.StudentReward - 16, // 8: campusapis.staff.v1.GetStudentCourseSelectionsResponse.data:type_name -> campusapis.staff.v1.StudentCourseSelection - 18, // 9: campusapis.staff.v1.GetStudentGradeResponse.data:type_name -> campusapis.staff.v1.StudentGrade - 36, // 10: campusapis.staff.v1.PostStudentGateAccessResponse.data:type_name -> campusapis.staff.v1.PostStudentGateAccessResponse.Data - 22, // 11: campusapis.staff.v1.GetStudentStaySchoolInfoResponse.data:type_name -> campusapis.staff.v1.StudentStaySchoolInfo - 28, // 12: campusapis.staff.v1.GetFreshmanBaseInfoResponse.data:type_name -> campusapis.staff.v1.FreshmanBaseInfo - 30, // 13: campusapis.staff.v1.GetFreshmanDetailResponse.data:type_name -> campusapis.staff.v1.FreshmanDetail - 32, // 14: campusapis.staff.v1.GetFreshmanRoommatesResponse.data:type_name -> campusapis.staff.v1.FreshmanRoommate - 38, // 15: campusapis.staff.v1.CampusService.GetPersonInfo:input_type -> google.protobuf.Empty - 38, // 16: campusapis.staff.v1.CampusService.GetStudentInfo:input_type -> google.protobuf.Empty - 38, // 17: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:input_type -> google.protobuf.Empty - 38, // 18: campusapis.staff.v1.CampusService.GetStudentDormInfo:input_type -> google.protobuf.Empty - 38, // 19: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:input_type -> google.protobuf.Empty - 11, // 20: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:input_type -> campusapis.staff.v1.GetStudentBirthdaysInRequest - 1, // 21: campusapis.staff.v1.CampusService.GetStudentRewards:input_type -> campusapis.staff.v1.GetStudentRewardsRequest - 2, // 22: campusapis.staff.v1.CampusService.GetStudentCourseSelections:input_type -> campusapis.staff.v1.GetStudentCourseSelectionsRequest - 3, // 23: campusapis.staff.v1.CampusService.GetStudentGrade:input_type -> campusapis.staff.v1.GetStudentGradeRequest - 19, // 24: campusapis.staff.v1.CampusService.PostStudentGateAccess:input_type -> campusapis.staff.v1.PostStudentGateAccessRequest - 38, // 25: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:input_type -> google.protobuf.Empty - 23, // 26: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:input_type -> campusapis.staff.v1.GetFreshmanBaseInfoRequest - 24, // 27: campusapis.staff.v1.CampusService.GetFreshmanDetail:input_type -> campusapis.staff.v1.GetFreshmanDetailRequest - 25, // 28: campusapis.staff.v1.CampusService.GetFreshmanRoommates:input_type -> campusapis.staff.v1.GetFreshmanRoommatesRequest - 0, // 29: campusapis.staff.v1.CampusService.GetPersonInfo:output_type -> campusapis.staff.v1.GetPersonInfoResponse - 5, // 30: campusapis.staff.v1.CampusService.GetStudentInfo:output_type -> campusapis.staff.v1.GetStudentInfoResponse - 6, // 31: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:output_type -> campusapis.staff.v1.GetStudentNeedyInfoResponse - 8, // 32: campusapis.staff.v1.CampusService.GetStudentDormInfo:output_type -> campusapis.staff.v1.GetStudentDormInfoResponse - 9, // 33: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:output_type -> campusapis.staff.v1.GetStudentBirthdayInfoResponse - 12, // 34: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:output_type -> campusapis.staff.v1.GetStudentBirthdaysInResponse - 13, // 35: campusapis.staff.v1.CampusService.GetStudentRewards:output_type -> campusapis.staff.v1.GetStudentRewardsResponse - 15, // 36: campusapis.staff.v1.CampusService.GetStudentCourseSelections:output_type -> campusapis.staff.v1.GetStudentCourseSelectionsResponse - 17, // 37: campusapis.staff.v1.CampusService.GetStudentGrade:output_type -> campusapis.staff.v1.GetStudentGradeResponse - 20, // 38: campusapis.staff.v1.CampusService.PostStudentGateAccess:output_type -> campusapis.staff.v1.PostStudentGateAccessResponse - 21, // 39: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:output_type -> campusapis.staff.v1.GetStudentStaySchoolInfoResponse - 27, // 40: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:output_type -> campusapis.staff.v1.GetFreshmanBaseInfoResponse - 29, // 41: campusapis.staff.v1.CampusService.GetFreshmanDetail:output_type -> campusapis.staff.v1.GetFreshmanDetailResponse - 31, // 42: campusapis.staff.v1.CampusService.GetFreshmanRoommates:output_type -> campusapis.staff.v1.GetFreshmanRoommatesResponse - 29, // [29:43] is the sub-list for method output_type - 15, // [15:29] is the sub-list for method input_type - 15, // [15:15] is the sub-list for extension type_name - 15, // [15:15] is the sub-list for extension extendee - 0, // [0:15] is the sub-list for field type_name + 36, // 3: campusapis.staff.v1.StudentNeedyInfo.items:type_name -> campusapis.staff.v1.StudentNeedyInfo.Nested + 9, // 4: campusapis.staff.v1.GetStudentDormInfoResponse.data:type_name -> campusapis.staff.v1.DormInfo + 11, // 5: campusapis.staff.v1.GetStudentBirthdayInfoResponse.data:type_name -> campusapis.staff.v1.StudentBirthdayInfo + 38, // 6: campusapis.staff.v1.GetStudentBirthdaysInRequest.type:type_name -> campusapis.staff.Type + 11, // 7: campusapis.staff.v1.GetStudentBirthdaysInResponse.birthdays:type_name -> campusapis.staff.v1.StudentBirthdayInfo + 15, // 8: campusapis.staff.v1.GetStudentRewardsResponse.data:type_name -> campusapis.staff.v1.StudentReward + 17, // 9: campusapis.staff.v1.GetStudentCourseSelectionsResponse.data:type_name -> campusapis.staff.v1.StudentCourseSelection + 19, // 10: campusapis.staff.v1.GetStudentGradeResponse.data:type_name -> campusapis.staff.v1.StudentGrade + 37, // 11: campusapis.staff.v1.PostStudentGateAccessResponse.data:type_name -> campusapis.staff.v1.PostStudentGateAccessResponse.Data + 23, // 12: campusapis.staff.v1.GetStudentStaySchoolInfoResponse.data:type_name -> campusapis.staff.v1.StudentStaySchoolInfo + 29, // 13: campusapis.staff.v1.GetFreshmanBaseInfoResponse.data:type_name -> campusapis.staff.v1.FreshmanBaseInfo + 31, // 14: campusapis.staff.v1.GetFreshmanDetailResponse.data:type_name -> campusapis.staff.v1.FreshmanDetail + 33, // 15: campusapis.staff.v1.GetFreshmanRoommatesResponse.data:type_name -> campusapis.staff.v1.FreshmanRoommate + 39, // 16: campusapis.staff.v1.CampusService.GetPersonInfo:input_type -> google.protobuf.Empty + 39, // 17: campusapis.staff.v1.CampusService.GetStudentInfo:input_type -> google.protobuf.Empty + 39, // 18: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:input_type -> google.protobuf.Empty + 39, // 19: campusapis.staff.v1.CampusService.GetStudentDormInfo:input_type -> google.protobuf.Empty + 39, // 20: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:input_type -> google.protobuf.Empty + 12, // 21: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:input_type -> campusapis.staff.v1.GetStudentBirthdaysInRequest + 1, // 22: campusapis.staff.v1.CampusService.GetStudentRewards:input_type -> campusapis.staff.v1.GetStudentRewardsRequest + 2, // 23: campusapis.staff.v1.CampusService.GetStudentCourseSelections:input_type -> campusapis.staff.v1.GetStudentCourseSelectionsRequest + 3, // 24: campusapis.staff.v1.CampusService.GetStudentGrade:input_type -> campusapis.staff.v1.GetStudentGradeRequest + 20, // 25: campusapis.staff.v1.CampusService.PostStudentGateAccess:input_type -> campusapis.staff.v1.PostStudentGateAccessRequest + 39, // 26: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:input_type -> google.protobuf.Empty + 24, // 27: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:input_type -> campusapis.staff.v1.GetFreshmanBaseInfoRequest + 25, // 28: campusapis.staff.v1.CampusService.GetFreshmanDetail:input_type -> campusapis.staff.v1.GetFreshmanDetailRequest + 26, // 29: campusapis.staff.v1.CampusService.GetFreshmanRoommates:input_type -> campusapis.staff.v1.GetFreshmanRoommatesRequest + 0, // 30: campusapis.staff.v1.CampusService.GetPersonInfo:output_type -> campusapis.staff.v1.GetPersonInfoResponse + 5, // 31: campusapis.staff.v1.CampusService.GetStudentInfo:output_type -> campusapis.staff.v1.GetStudentInfoResponse + 6, // 32: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:output_type -> campusapis.staff.v1.GetStudentNeedyInfoResponse + 8, // 33: campusapis.staff.v1.CampusService.GetStudentDormInfo:output_type -> campusapis.staff.v1.GetStudentDormInfoResponse + 10, // 34: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:output_type -> campusapis.staff.v1.GetStudentBirthdayInfoResponse + 13, // 35: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:output_type -> campusapis.staff.v1.GetStudentBirthdaysInResponse + 14, // 36: campusapis.staff.v1.CampusService.GetStudentRewards:output_type -> campusapis.staff.v1.GetStudentRewardsResponse + 16, // 37: campusapis.staff.v1.CampusService.GetStudentCourseSelections:output_type -> campusapis.staff.v1.GetStudentCourseSelectionsResponse + 18, // 38: campusapis.staff.v1.CampusService.GetStudentGrade:output_type -> campusapis.staff.v1.GetStudentGradeResponse + 21, // 39: campusapis.staff.v1.CampusService.PostStudentGateAccess:output_type -> campusapis.staff.v1.PostStudentGateAccessResponse + 22, // 40: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:output_type -> campusapis.staff.v1.GetStudentStaySchoolInfoResponse + 28, // 41: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:output_type -> campusapis.staff.v1.GetFreshmanBaseInfoResponse + 30, // 42: campusapis.staff.v1.CampusService.GetFreshmanDetail:output_type -> campusapis.staff.v1.GetFreshmanDetailResponse + 32, // 43: campusapis.staff.v1.CampusService.GetFreshmanRoommates:output_type -> campusapis.staff.v1.GetFreshmanRoommatesResponse + 30, // [30:44] is the sub-list for method output_type + 16, // [16:30] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name } func init() { file_campusapis_staff_v1_campus_proto_init() } @@ -3838,7 +3910,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdayInfoResponse); i { + switch v := v.(*DormInfo); i { case 0: return &v.state case 1: @@ -3850,7 +3922,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentBirthdayInfo); i { + switch v := v.(*GetStudentBirthdayInfoResponse); i { case 0: return &v.state case 1: @@ -3862,7 +3934,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdaysInRequest); i { + switch v := v.(*StudentBirthdayInfo); i { case 0: return &v.state case 1: @@ -3874,7 +3946,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdaysInResponse); i { + switch v := v.(*GetStudentBirthdaysInRequest); i { case 0: return &v.state case 1: @@ -3886,7 +3958,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentRewardsResponse); i { + switch v := v.(*GetStudentBirthdaysInResponse); i { case 0: return &v.state case 1: @@ -3898,7 +3970,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentReward); i { + switch v := v.(*GetStudentRewardsResponse); i { case 0: return &v.state case 1: @@ -3910,7 +3982,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentCourseSelectionsResponse); i { + switch v := v.(*StudentReward); i { case 0: return &v.state case 1: @@ -3922,7 +3994,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentCourseSelection); i { + switch v := v.(*GetStudentCourseSelectionsResponse); i { case 0: return &v.state case 1: @@ -3934,7 +4006,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentGradeResponse); i { + switch v := v.(*StudentCourseSelection); i { case 0: return &v.state case 1: @@ -3946,7 +4018,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentGrade); i { + switch v := v.(*GetStudentGradeResponse); i { case 0: return &v.state case 1: @@ -3958,7 +4030,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostStudentGateAccessRequest); i { + switch v := v.(*StudentGrade); i { case 0: return &v.state case 1: @@ -3970,7 +4042,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostStudentGateAccessResponse); i { + switch v := v.(*PostStudentGateAccessRequest); i { case 0: return &v.state case 1: @@ -3982,7 +4054,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentStaySchoolInfoResponse); i { + switch v := v.(*PostStudentGateAccessResponse); i { case 0: return &v.state case 1: @@ -3994,7 +4066,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentStaySchoolInfo); i { + switch v := v.(*GetStudentStaySchoolInfoResponse); i { case 0: return &v.state case 1: @@ -4006,7 +4078,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanBaseInfoRequest); i { + switch v := v.(*StudentStaySchoolInfo); i { case 0: return &v.state case 1: @@ -4018,7 +4090,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanDetailRequest); i { + switch v := v.(*GetFreshmanBaseInfoRequest); i { case 0: return &v.state case 1: @@ -4030,7 +4102,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanRoommatesRequest); i { + switch v := v.(*GetFreshmanDetailRequest); i { case 0: return &v.state case 1: @@ -4042,7 +4114,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanKeywordRequest); i { + switch v := v.(*GetFreshmanRoommatesRequest); i { case 0: return &v.state case 1: @@ -4054,7 +4126,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanBaseInfoResponse); i { + switch v := v.(*FreshmanKeywordRequest); i { case 0: return &v.state case 1: @@ -4066,7 +4138,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanBaseInfo); i { + switch v := v.(*GetFreshmanBaseInfoResponse); i { case 0: return &v.state case 1: @@ -4078,7 +4150,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanDetailResponse); i { + switch v := v.(*FreshmanBaseInfo); i { case 0: return &v.state case 1: @@ -4090,7 +4162,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanDetail); i { + switch v := v.(*GetFreshmanDetailResponse); i { case 0: return &v.state case 1: @@ -4102,7 +4174,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanRoommatesResponse); i { + switch v := v.(*FreshmanDetail); i { case 0: return &v.state case 1: @@ -4114,7 +4186,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanRoommate); i { + switch v := v.(*GetFreshmanRoommatesResponse); i { case 0: return &v.state case 1: @@ -4126,7 +4198,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPersonInfoResponse_Data); i { + switch v := v.(*FreshmanRoommate); i { case 0: return &v.state case 1: @@ -4138,7 +4210,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentInfoResponse_Data); i { + switch v := v.(*GetPersonInfoResponse_Data); i { case 0: return &v.state case 1: @@ -4150,7 +4222,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentNeedyInfo_Nested); i { + switch v := v.(*GetStudentInfoResponse_Data); i { case 0: return &v.state case 1: @@ -4162,6 +4234,18 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StudentNeedyInfo_Nested); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PostStudentGateAccessResponse_Data); i { case 0: return &v.state @@ -4180,7 +4264,7 @@ func file_campusapis_staff_v1_campus_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_campusapis_staff_v1_campus_proto_rawDesc, NumEnums: 0, - NumMessages: 37, + NumMessages: 38, NumExtensions: 0, NumServices: 1, }, diff --git a/campusapis/staff/v1/campus.proto b/campusapis/staff/v1/campus.proto index a874b83..38ea608 100644 --- a/campusapis/staff/v1/campus.proto +++ b/campusapis/staff/v1/campus.proto @@ -247,6 +247,12 @@ message StudentNeedyInfo { // 查询学生寝室信息返回体 message GetStudentDormInfoResponse { + uint32 error = 1; + string msg = 2; + DormInfo data = 3; +} + +message DormInfo { //学工号 string staffId = 1; //楼号 diff --git a/docs/swagger/campusapis/staff/v1/campus.swagger.json b/docs/swagger/campusapis/staff/v1/campus.swagger.json index 2c148b0..b68e2b2 100644 --- a/docs/swagger/campusapis/staff/v1/campus.swagger.json +++ b/docs/swagger/campusapis/staff/v1/campus.swagger.json @@ -968,6 +968,23 @@ } } }, + "v1DormInfo": { + "type": "object", + "properties": { + "staffId": { + "type": "string", + "title": "学工号" + }, + "building": { + "type": "string", + "title": "楼号" + }, + "room": { + "type": "string", + "title": "寝室号" + } + } + }, "v1FreshmanBaseInfo": { "type": "object", "properties": { @@ -1259,17 +1276,15 @@ "v1GetStudentDormInfoResponse": { "type": "object", "properties": { - "staffId": { - "type": "string", - "title": "学工号" + "error": { + "type": "integer", + "format": "int64" }, - "building": { - "type": "string", - "title": "楼号" + "msg": { + "type": "string" }, - "room": { - "type": "string", - "title": "寝室号" + "data": { + "$ref": "#/definitions/v1DormInfo" } }, "title": "查询学生寝室信息返回体" From 377da1a0397e34fc983b0a731ef2f1bcc1fa2b20 Mon Sep 17 00:00:00 2001 From: FDKevin Date: Wed, 1 Jun 2022 19:51:47 +0800 Subject: [PATCH 04/25] updates --- README.md | 11 +- campusapis/card/v1/card.pb.go | 322 +-- campusapis/card/v1/card.proto | 14 +- campusapis/schoolTime/v1/schoolTime.pb.go | 398 ++-- campusapis/schoolTime/v1/schoolTime.proto | 50 +- campusapis/staff/v1/campus.pb.go | 1901 ++++++++--------- campusapis/staff/v1/campus.proto | 74 +- campusapis/teaching/v1/teaching.pb.go | 660 +++--- campusapis/teaching/v1/teaching.proto | 47 +- .../campusapis/card/v1/card.swagger.json | 36 +- .../schoolTime/v1/schoolTime.swagger.json | 60 +- .../campusapis/staff/v1/campus.swagger.json | 160 +- .../teaching/v1/teaching.swagger.json | 97 +- 13 files changed, 1895 insertions(+), 1935 deletions(-) diff --git a/README.md b/README.md index ab10195..f63d31e 100644 --- a/README.md +++ b/README.md @@ -19,6 +19,13 @@ make install-tools 3. 开启 swagger-ui 实时预览 ## 预览 swagger 效果 (多数情况下没必要预览) (感觉还有更简单的) + +### 公开文档 + +在 https://github.com/hduhelp/api/config.json 中添加对应 OpenAPI 文件,提交后会自动拉取api_open_sdk最新文档 + +可在 https://hduhelp.github.io/api/ 页面查看接口文档 + 1. 安装 swagger-ui ```shell # 新建目录 @@ -44,5 +51,5 @@ http://localhost:8080/campusapis/staff/v1/freshman.swagger.json ## 接口注释 -有效:rpc 方法前,Response message 前,message内部字段前 -无效(不会显示到 swagger 中):Request message 前 +- 有效:rpc 方法前,Response message 前,message内部字段前 +- 无效(不会显示到 swagger 中):Request message 前 diff --git a/campusapis/card/v1/card.pb.go b/campusapis/card/v1/card.pb.go index 28f08e7..b233b33 100644 --- a/campusapis/card/v1/card.pb.go +++ b/campusapis/card/v1/card.pb.go @@ -28,9 +28,9 @@ type GetCardInfoResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Data *GetCardInfoResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *CardInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetCardInfoResponse) Reset() { @@ -79,13 +79,70 @@ func (x *GetCardInfoResponse) GetMsg() string { return "" } -func (x *GetCardInfoResponse) GetData() *GetCardInfoResponse_Data { +func (x *GetCardInfoResponse) GetData() *CardInfo { if x != nil { return x.Data } return nil } +type CardInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //余额,精确到小数点后两位,单位元 + Remaining float32 `protobuf:"fixed32,1,opt,name=remaining,proto3" json:"remaining,omitempty"` + //交易记录 + Flow []*Consumption `protobuf:"bytes,2,rep,name=flow,proto3" json:"flow,omitempty"` +} + +func (x *CardInfo) Reset() { + *x = CardInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_card_v1_card_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CardInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CardInfo) ProtoMessage() {} + +func (x *CardInfo) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_card_v1_card_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CardInfo.ProtoReflect.Descriptor instead. +func (*CardInfo) Descriptor() ([]byte, []int) { + return file_campusapis_card_v1_card_proto_rawDescGZIP(), []int{1} +} + +func (x *CardInfo) GetRemaining() float32 { + if x != nil { + return x.Remaining + } + return 0 +} + +func (x *CardInfo) GetFlow() []*Consumption { + if x != nil { + return x.Flow + } + return nil +} + type Consumption struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -109,7 +166,7 @@ type Consumption struct { func (x *Consumption) Reset() { *x = Consumption{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_card_v1_card_proto_msgTypes[1] + mi := &file_campusapis_card_v1_card_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -122,7 +179,7 @@ func (x *Consumption) String() string { func (*Consumption) ProtoMessage() {} func (x *Consumption) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_card_v1_card_proto_msgTypes[1] + mi := &file_campusapis_card_v1_card_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -135,7 +192,7 @@ func (x *Consumption) ProtoReflect() protoreflect.Message { // Deprecated: Use Consumption.ProtoReflect.Descriptor instead. func (*Consumption) Descriptor() ([]byte, []int) { - return file_campusapis_card_v1_card_proto_rawDescGZIP(), []int{1} + return file_campusapis_card_v1_card_proto_rawDescGZIP(), []int{2} } func (x *Consumption) GetDeviceName() string { @@ -194,7 +251,7 @@ type GetCardBalanceResponse struct { func (x *GetCardBalanceResponse) Reset() { *x = GetCardBalanceResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_card_v1_card_proto_msgTypes[2] + mi := &file_campusapis_card_v1_card_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -207,7 +264,7 @@ func (x *GetCardBalanceResponse) String() string { func (*GetCardBalanceResponse) ProtoMessage() {} func (x *GetCardBalanceResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_card_v1_card_proto_msgTypes[2] + mi := &file_campusapis_card_v1_card_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -220,7 +277,7 @@ func (x *GetCardBalanceResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCardBalanceResponse.ProtoReflect.Descriptor instead. func (*GetCardBalanceResponse) Descriptor() ([]byte, []int) { - return file_campusapis_card_v1_card_proto_rawDescGZIP(), []int{2} + return file_campusapis_card_v1_card_proto_rawDescGZIP(), []int{3} } func (x *GetCardBalanceResponse) GetError() uint32 { @@ -257,7 +314,7 @@ type GetCardConsumeResponse struct { func (x *GetCardConsumeResponse) Reset() { *x = GetCardConsumeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_card_v1_card_proto_msgTypes[3] + mi := &file_campusapis_card_v1_card_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -270,7 +327,7 @@ func (x *GetCardConsumeResponse) String() string { func (*GetCardConsumeResponse) ProtoMessage() {} func (x *GetCardConsumeResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_card_v1_card_proto_msgTypes[3] + mi := &file_campusapis_card_v1_card_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -283,7 +340,7 @@ func (x *GetCardConsumeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetCardConsumeResponse.ProtoReflect.Descriptor instead. func (*GetCardConsumeResponse) Descriptor() ([]byte, []int) { - return file_campusapis_card_v1_card_proto_rawDescGZIP(), []int{3} + return file_campusapis_card_v1_card_proto_rawDescGZIP(), []int{4} } func (x *GetCardConsumeResponse) GetError() uint32 { @@ -307,63 +364,6 @@ func (x *GetCardConsumeResponse) GetData() []*Consumption { return nil } -type GetCardInfoResponse_Data struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - //余额,精确到小数点后两位,单位元 - Remaining float32 `protobuf:"fixed32,1,opt,name=remaining,proto3" json:"remaining,omitempty"` - //交易记录 - Flow []*Consumption `protobuf:"bytes,2,rep,name=flow,proto3" json:"flow,omitempty"` -} - -func (x *GetCardInfoResponse_Data) Reset() { - *x = GetCardInfoResponse_Data{} - if protoimpl.UnsafeEnabled { - mi := &file_campusapis_card_v1_card_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetCardInfoResponse_Data) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetCardInfoResponse_Data) ProtoMessage() {} - -func (x *GetCardInfoResponse_Data) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_card_v1_card_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetCardInfoResponse_Data.ProtoReflect.Descriptor instead. -func (*GetCardInfoResponse_Data) Descriptor() ([]byte, []int) { - return file_campusapis_card_v1_card_proto_rawDescGZIP(), []int{0, 0} -} - -func (x *GetCardInfoResponse_Data) GetRemaining() float32 { - if x != nil { - return x.Remaining - } - return 0 -} - -func (x *GetCardInfoResponse_Data) GetFlow() []*Consumption { - if x != nil { - return x.Flow - } - return nil -} - var File_campusapis_card_v1_card_proto protoreflect.FileDescriptor var file_campusapis_card_v1_card_proto_rawDesc = []byte{ @@ -375,83 +375,83 @@ var file_campusapis_card_v1_card_proto_rawDesc = []byte{ 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xda, 0x01, 0x0a, 0x13, 0x47, 0x65, - 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x40, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6f, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x59, 0x0a, 0x04, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, - 0x67, 0x12, 0x33, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x65, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x65, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x66, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, - 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x72, - 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, - 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x75, - 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x84, 0x03, 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x73, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x0d, 0x2f, - 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0c, 0x12, 0x0a, - 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x7f, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, - 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x10, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, - 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x63, - 0x61, 0x72, 0x64, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x7f, 0x0a, 0x0e, 0x47, - 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, - 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x10, 0x2f, 0x63, 0x61, 0x72, 0x64, - 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, - 0x63, 0x61, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x42, 0xc8, 0x01, 0x0a, - 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x43, 0x61, 0x72, 0x64, 0x50, 0x72, 0x6f, - 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, - 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, - 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x61, 0x72, 0x64, 0x76, 0x31, 0xa2, - 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x43, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x5c, 0x56, 0x31, 0xe2, - 0x02, 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x43, 0x61, 0x72, - 0x64, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xea, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x43, - 0x61, 0x72, 0x64, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x72, 0x64, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5d, 0x0a, 0x08, 0x43, 0x61, + 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, + 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, + 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x46, 0x65, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x16, 0x47, + 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x75, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, + 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x84, 0x03, 0x0a, 0x0b, 0x43, 0x61, 0x72, + 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x73, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, + 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x27, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, + 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, + 0x12, 0x0d, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, + 0x0c, 0x12, 0x0a, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x7f, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x10, 0x2f, 0x63, 0x61, + 0x72, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5a, 0x0f, 0x12, + 0x0d, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x7f, + 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x10, 0x2f, 0x63, + 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x5a, 0x0f, + 0x12, 0x0d, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x42, + 0xc8, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x43, 0x61, 0x72, 0x64, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, + 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x61, 0x72, 0x64, + 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, + 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x5c, + 0x56, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, + 0x43, 0x61, 0x72, 0x64, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x3a, 0x3a, 0x43, 0x61, 0x72, 0x64, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -468,23 +468,23 @@ func file_campusapis_card_v1_card_proto_rawDescGZIP() []byte { var file_campusapis_card_v1_card_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_campusapis_card_v1_card_proto_goTypes = []interface{}{ - (*GetCardInfoResponse)(nil), // 0: campusapis.card.v1.GetCardInfoResponse - (*Consumption)(nil), // 1: campusapis.card.v1.Consumption - (*GetCardBalanceResponse)(nil), // 2: campusapis.card.v1.GetCardBalanceResponse - (*GetCardConsumeResponse)(nil), // 3: campusapis.card.v1.GetCardConsumeResponse - (*GetCardInfoResponse_Data)(nil), // 4: campusapis.card.v1.GetCardInfoResponse.Data - (*emptypb.Empty)(nil), // 5: google.protobuf.Empty + (*GetCardInfoResponse)(nil), // 0: campusapis.card.v1.GetCardInfoResponse + (*CardInfo)(nil), // 1: campusapis.card.v1.CardInfo + (*Consumption)(nil), // 2: campusapis.card.v1.Consumption + (*GetCardBalanceResponse)(nil), // 3: campusapis.card.v1.GetCardBalanceResponse + (*GetCardConsumeResponse)(nil), // 4: campusapis.card.v1.GetCardConsumeResponse + (*emptypb.Empty)(nil), // 5: google.protobuf.Empty } var file_campusapis_card_v1_card_proto_depIdxs = []int32{ - 4, // 0: campusapis.card.v1.GetCardInfoResponse.data:type_name -> campusapis.card.v1.GetCardInfoResponse.Data - 1, // 1: campusapis.card.v1.GetCardConsumeResponse.data:type_name -> campusapis.card.v1.Consumption - 1, // 2: campusapis.card.v1.GetCardInfoResponse.Data.flow:type_name -> campusapis.card.v1.Consumption + 1, // 0: campusapis.card.v1.GetCardInfoResponse.data:type_name -> campusapis.card.v1.CardInfo + 2, // 1: campusapis.card.v1.CardInfo.flow:type_name -> campusapis.card.v1.Consumption + 2, // 2: campusapis.card.v1.GetCardConsumeResponse.data:type_name -> campusapis.card.v1.Consumption 5, // 3: campusapis.card.v1.CardService.GetCardInfo:input_type -> google.protobuf.Empty 5, // 4: campusapis.card.v1.CardService.GetCardBalance:input_type -> google.protobuf.Empty 5, // 5: campusapis.card.v1.CardService.GetCardConsume:input_type -> google.protobuf.Empty 0, // 6: campusapis.card.v1.CardService.GetCardInfo:output_type -> campusapis.card.v1.GetCardInfoResponse - 2, // 7: campusapis.card.v1.CardService.GetCardBalance:output_type -> campusapis.card.v1.GetCardBalanceResponse - 3, // 8: campusapis.card.v1.CardService.GetCardConsume:output_type -> campusapis.card.v1.GetCardConsumeResponse + 3, // 7: campusapis.card.v1.CardService.GetCardBalance:output_type -> campusapis.card.v1.GetCardBalanceResponse + 4, // 8: campusapis.card.v1.CardService.GetCardConsume:output_type -> campusapis.card.v1.GetCardConsumeResponse 6, // [6:9] is the sub-list for method output_type 3, // [3:6] is the sub-list for method input_type 3, // [3:3] is the sub-list for extension type_name @@ -511,7 +511,7 @@ func file_campusapis_card_v1_card_proto_init() { } } file_campusapis_card_v1_card_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Consumption); i { + switch v := v.(*CardInfo); i { case 0: return &v.state case 1: @@ -523,7 +523,7 @@ func file_campusapis_card_v1_card_proto_init() { } } file_campusapis_card_v1_card_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetCardBalanceResponse); i { + switch v := v.(*Consumption); i { case 0: return &v.state case 1: @@ -535,7 +535,7 @@ func file_campusapis_card_v1_card_proto_init() { } } file_campusapis_card_v1_card_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetCardConsumeResponse); i { + switch v := v.(*GetCardBalanceResponse); i { case 0: return &v.state case 1: @@ -547,7 +547,7 @@ func file_campusapis_card_v1_card_proto_init() { } } file_campusapis_card_v1_card_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetCardInfoResponse_Data); i { + switch v := v.(*GetCardConsumeResponse); i { case 0: return &v.state case 1: diff --git a/campusapis/card/v1/card.proto b/campusapis/card/v1/card.proto index 0e9a08f..b59c7dd 100644 --- a/campusapis/card/v1/card.proto +++ b/campusapis/card/v1/card.proto @@ -42,14 +42,14 @@ service CardService { message GetCardInfoResponse { uint32 error = 1; string msg = 2; - Data data = 3; + CardInfo data = 3; +} - message Data { - //余额,精确到小数点后两位,单位元 - float remaining = 1; - //交易记录 - repeated Consumption flow = 2; - } +message CardInfo { + //余额,精确到小数点后两位,单位元 + float remaining = 1; + //交易记录 + repeated Consumption flow = 2; } message Consumption { diff --git a/campusapis/schoolTime/v1/schoolTime.pb.go b/campusapis/schoolTime/v1/schoolTime.pb.go index 49550ac..a0cfebb 100644 --- a/campusapis/schoolTime/v1/schoolTime.pb.go +++ b/campusapis/schoolTime/v1/schoolTime.pb.go @@ -29,9 +29,9 @@ type GetSchoolTimeResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Data *GetSchoolTimeResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *SchoolTime `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetSchoolTimeResponse) Reset() { @@ -80,24 +80,28 @@ func (x *GetSchoolTimeResponse) GetMsg() string { return "" } -func (x *GetSchoolTimeResponse) GetData() *GetSchoolTimeResponse_Data { +func (x *GetSchoolTimeResponse) GetData() *SchoolTime { if x != nil { return x.Data } return nil } -type GetSemesterListRequest struct { +type SchoolTime struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - StartDate string `protobuf:"bytes,1,opt,name=startDate,proto3" json:"startDate,omitempty"` - EndDate string `protobuf:"bytes,2,opt,name=endDate,proto3" json:"endDate,omitempty"` + SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + Section int32 `protobuf:"varint,2,opt,name=section,proto3" json:"section,omitempty"` + Semester string `protobuf:"bytes,3,opt,name=semester,proto3" json:"semester,omitempty"` + TimeStamp uint32 `protobuf:"varint,4,opt,name=timeStamp,proto3" json:"timeStamp,omitempty"` + WeekDayNow int32 `protobuf:"varint,5,opt,name=weekDayNow,proto3" json:"weekDayNow,omitempty"` + WeekNow int32 `protobuf:"varint,6,opt,name=weekNow,proto3" json:"weekNow,omitempty"` } -func (x *GetSemesterListRequest) Reset() { - *x = GetSemesterListRequest{} +func (x *SchoolTime) Reset() { + *x = SchoolTime{} if protoimpl.UnsafeEnabled { mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -105,13 +109,13 @@ func (x *GetSemesterListRequest) Reset() { } } -func (x *GetSemesterListRequest) String() string { +func (x *SchoolTime) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetSemesterListRequest) ProtoMessage() {} +func (*SchoolTime) ProtoMessage() {} -func (x *GetSemesterListRequest) ProtoReflect() protoreflect.Message { +func (x *SchoolTime) ProtoReflect() protoreflect.Message { mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -123,37 +127,64 @@ func (x *GetSemesterListRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetSemesterListRequest.ProtoReflect.Descriptor instead. -func (*GetSemesterListRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use SchoolTime.ProtoReflect.Descriptor instead. +func (*SchoolTime) Descriptor() ([]byte, []int) { return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{1} } -func (x *GetSemesterListRequest) GetStartDate() string { +func (x *SchoolTime) GetSchoolYear() string { if x != nil { - return x.StartDate + return x.SchoolYear } return "" } -func (x *GetSemesterListRequest) GetEndDate() string { +func (x *SchoolTime) GetSection() int32 { if x != nil { - return x.EndDate + return x.Section + } + return 0 +} + +func (x *SchoolTime) GetSemester() string { + if x != nil { + return x.Semester } return "" } -type GetSemesterListResponse struct { +func (x *SchoolTime) GetTimeStamp() uint32 { + if x != nil { + return x.TimeStamp + } + return 0 +} + +func (x *SchoolTime) GetWeekDayNow() int32 { + if x != nil { + return x.WeekDayNow + } + return 0 +} + +func (x *SchoolTime) GetWeekNow() int32 { + if x != nil { + return x.WeekNow + } + return 0 +} + +type GetSemesterListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Data []*GetSemesterListResponse_Semester `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` + StartDate string `protobuf:"bytes,1,opt,name=startDate,proto3" json:"startDate,omitempty"` + EndDate string `protobuf:"bytes,2,opt,name=endDate,proto3" json:"endDate,omitempty"` } -func (x *GetSemesterListResponse) Reset() { - *x = GetSemesterListResponse{} +func (x *GetSemesterListRequest) Reset() { + *x = GetSemesterListRequest{} if protoimpl.UnsafeEnabled { mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -161,13 +192,13 @@ func (x *GetSemesterListResponse) Reset() { } } -func (x *GetSemesterListResponse) String() string { +func (x *GetSemesterListRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetSemesterListResponse) ProtoMessage() {} +func (*GetSemesterListRequest) ProtoMessage() {} -func (x *GetSemesterListResponse) ProtoReflect() protoreflect.Message { +func (x *GetSemesterListRequest) ProtoReflect() protoreflect.Message { mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -179,47 +210,37 @@ func (x *GetSemesterListResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetSemesterListResponse.ProtoReflect.Descriptor instead. -func (*GetSemesterListResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetSemesterListRequest.ProtoReflect.Descriptor instead. +func (*GetSemesterListRequest) Descriptor() ([]byte, []int) { return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{2} } -func (x *GetSemesterListResponse) GetError() uint32 { - if x != nil { - return x.Error - } - return 0 -} - -func (x *GetSemesterListResponse) GetMsg() string { +func (x *GetSemesterListRequest) GetStartDate() string { if x != nil { - return x.Msg + return x.StartDate } return "" } -func (x *GetSemesterListResponse) GetData() []*GetSemesterListResponse_Semester { +func (x *GetSemesterListRequest) GetEndDate() string { if x != nil { - return x.Data + return x.EndDate } - return nil + return "" } -type GetSchoolTimeResponse_Data struct { +type GetSemesterListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` - Section int32 `protobuf:"varint,2,opt,name=section,proto3" json:"section,omitempty"` - Semester string `protobuf:"bytes,3,opt,name=semester,proto3" json:"semester,omitempty"` - TimeStamp uint32 `protobuf:"varint,4,opt,name=timeStamp,proto3" json:"timeStamp,omitempty"` - WeekDayNow int32 `protobuf:"varint,5,opt,name=weekDayNow,proto3" json:"weekDayNow,omitempty"` - WeekNow int32 `protobuf:"varint,6,opt,name=weekNow,proto3" json:"weekNow,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data []*SemesterInfo `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } -func (x *GetSchoolTimeResponse_Data) Reset() { - *x = GetSchoolTimeResponse_Data{} +func (x *GetSemesterListResponse) Reset() { + *x = GetSemesterListResponse{} if protoimpl.UnsafeEnabled { mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -227,13 +248,13 @@ func (x *GetSchoolTimeResponse_Data) Reset() { } } -func (x *GetSchoolTimeResponse_Data) String() string { +func (x *GetSemesterListResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetSchoolTimeResponse_Data) ProtoMessage() {} +func (*GetSemesterListResponse) ProtoMessage() {} -func (x *GetSchoolTimeResponse_Data) ProtoReflect() protoreflect.Message { +func (x *GetSemesterListResponse) ProtoReflect() protoreflect.Message { mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -245,54 +266,33 @@ func (x *GetSchoolTimeResponse_Data) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetSchoolTimeResponse_Data.ProtoReflect.Descriptor instead. -func (*GetSchoolTimeResponse_Data) Descriptor() ([]byte, []int) { - return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{0, 0} -} - -func (x *GetSchoolTimeResponse_Data) GetSchoolYear() string { - if x != nil { - return x.SchoolYear - } - return "" +// Deprecated: Use GetSemesterListResponse.ProtoReflect.Descriptor instead. +func (*GetSemesterListResponse) Descriptor() ([]byte, []int) { + return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{3} } -func (x *GetSchoolTimeResponse_Data) GetSection() int32 { +func (x *GetSemesterListResponse) GetError() uint32 { if x != nil { - return x.Section + return x.Error } return 0 } -func (x *GetSchoolTimeResponse_Data) GetSemester() string { +func (x *GetSemesterListResponse) GetMsg() string { if x != nil { - return x.Semester + return x.Msg } return "" } -func (x *GetSchoolTimeResponse_Data) GetTimeStamp() uint32 { +func (x *GetSemesterListResponse) GetData() []*SemesterInfo { if x != nil { - return x.TimeStamp - } - return 0 -} - -func (x *GetSchoolTimeResponse_Data) GetWeekDayNow() int32 { - if x != nil { - return x.WeekDayNow - } - return 0 -} - -func (x *GetSchoolTimeResponse_Data) GetWeekNow() int32 { - if x != nil { - return x.WeekNow + return x.Data } - return 0 + return nil } -type GetSemesterListResponse_Semester struct { +type SemesterInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -304,8 +304,8 @@ type GetSemesterListResponse_Semester struct { State int32 `protobuf:"varint,5,opt,name=state,proto3" json:"state,omitempty"` } -func (x *GetSemesterListResponse_Semester) Reset() { - *x = GetSemesterListResponse_Semester{} +func (x *SemesterInfo) Reset() { + *x = SemesterInfo{} if protoimpl.UnsafeEnabled { mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -313,13 +313,13 @@ func (x *GetSemesterListResponse_Semester) Reset() { } } -func (x *GetSemesterListResponse_Semester) String() string { +func (x *SemesterInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetSemesterListResponse_Semester) ProtoMessage() {} +func (*SemesterInfo) ProtoMessage() {} -func (x *GetSemesterListResponse_Semester) ProtoReflect() protoreflect.Message { +func (x *SemesterInfo) ProtoReflect() protoreflect.Message { mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -331,40 +331,40 @@ func (x *GetSemesterListResponse_Semester) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetSemesterListResponse_Semester.ProtoReflect.Descriptor instead. -func (*GetSemesterListResponse_Semester) Descriptor() ([]byte, []int) { - return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{2, 0} +// Deprecated: Use SemesterInfo.ProtoReflect.Descriptor instead. +func (*SemesterInfo) Descriptor() ([]byte, []int) { + return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{4} } -func (x *GetSemesterListResponse_Semester) GetSchoolYear() string { +func (x *SemesterInfo) GetSchoolYear() string { if x != nil { return x.SchoolYear } return "" } -func (x *GetSemesterListResponse_Semester) GetSemester() string { +func (x *SemesterInfo) GetSemester() string { if x != nil { return x.Semester } return "" } -func (x *GetSemesterListResponse_Semester) GetStartDate() string { +func (x *SemesterInfo) GetStartDate() string { if x != nil { return x.StartDate } return "" } -func (x *GetSemesterListResponse_Semester) GetEndDate() string { +func (x *SemesterInfo) GetEndDate() string { if x != nil { return x.EndDate } return "" } -func (x *GetSemesterListResponse_Semester) GetState() int32 { +func (x *SemesterInfo) GetState() int32 { if x != nil { return x.State } @@ -378,96 +378,94 @@ var file_campusapis_schoolTime_v1_schoolTime_proto_rawDesc = []byte{ 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, - 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, + 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x23, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2f, 0x64, 0x65, 0x66, + 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x23, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc0, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x48, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x1a, 0xb4, 0x01, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x1e, 0x0a, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x12, - 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x22, 0x50, 0x0a, 0x16, 0x47, 0x65, 0x74, - 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0xa8, 0x02, 0x0a, 0x17, - 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x4e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x3a, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0x94, 0x01, 0x0a, 0x08, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, - 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x32, 0xd0, 0x02, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7e, 0x0a, 0x0d, - 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x79, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x13, - 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x74, - 0x69, 0x6d, 0x65, 0x5a, 0x07, 0x12, 0x05, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0xba, 0x01, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x22, 0x2f, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x44, 0x61, 0x74, - 0x65, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x6c, - 0x69, 0x73, 0x74, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x42, 0xf8, 0x01, 0x0a, 0x1c, 0x63, 0x6f, - 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x53, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, - 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x54, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, - 0x6d, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x18, 0x43, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, - 0x6d, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x5c, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, - 0xe2, 0x02, 0x24, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, - 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, + 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, + 0x79, 0x4e, 0x6f, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x22, 0x50, + 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x22, 0x7d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x98, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, + 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, + 0x44, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x32, 0xd0, 0x02, 0x0a, 0x11, 0x53, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x7e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x1e, 0x12, 0x13, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x2f, + 0x76, 0x31, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x07, 0x12, 0x05, 0x2f, 0x74, 0x69, 0x6d, 0x65, + 0x12, 0xba, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x3c, 0x12, 0x22, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, + 0x31, 0x2f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x42, + 0x79, 0x44, 0x61, 0x74, 0x65, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x42, 0xf8, 0x01, + 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0f, + 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, + 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, + 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, + 0x18, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x43, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x24, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x5c, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, 0x5c, + 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x43, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -484,20 +482,20 @@ func file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP() []byte { var file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_campusapis_schoolTime_v1_schoolTime_proto_goTypes = []interface{}{ - (*GetSchoolTimeResponse)(nil), // 0: campusapis.schoolTime.v1.GetSchoolTimeResponse - (*GetSemesterListRequest)(nil), // 1: campusapis.schoolTime.v1.GetSemesterListRequest - (*GetSemesterListResponse)(nil), // 2: campusapis.schoolTime.v1.GetSemesterListResponse - (*GetSchoolTimeResponse_Data)(nil), // 3: campusapis.schoolTime.v1.GetSchoolTimeResponse.Data - (*GetSemesterListResponse_Semester)(nil), // 4: campusapis.schoolTime.v1.GetSemesterListResponse.Semester - (*emptypb.Empty)(nil), // 5: google.protobuf.Empty + (*GetSchoolTimeResponse)(nil), // 0: campusapis.schoolTime.v1.GetSchoolTimeResponse + (*SchoolTime)(nil), // 1: campusapis.schoolTime.v1.SchoolTime + (*GetSemesterListRequest)(nil), // 2: campusapis.schoolTime.v1.GetSemesterListRequest + (*GetSemesterListResponse)(nil), // 3: campusapis.schoolTime.v1.GetSemesterListResponse + (*SemesterInfo)(nil), // 4: campusapis.schoolTime.v1.SemesterInfo + (*emptypb.Empty)(nil), // 5: google.protobuf.Empty } var file_campusapis_schoolTime_v1_schoolTime_proto_depIdxs = []int32{ - 3, // 0: campusapis.schoolTime.v1.GetSchoolTimeResponse.data:type_name -> campusapis.schoolTime.v1.GetSchoolTimeResponse.Data - 4, // 1: campusapis.schoolTime.v1.GetSemesterListResponse.data:type_name -> campusapis.schoolTime.v1.GetSemesterListResponse.Semester + 1, // 0: campusapis.schoolTime.v1.GetSchoolTimeResponse.data:type_name -> campusapis.schoolTime.v1.SchoolTime + 4, // 1: campusapis.schoolTime.v1.GetSemesterListResponse.data:type_name -> campusapis.schoolTime.v1.SemesterInfo 5, // 2: campusapis.schoolTime.v1.SchoolTimeService.GetSchoolTime:input_type -> google.protobuf.Empty - 1, // 3: campusapis.schoolTime.v1.SchoolTimeService.GetSemesterList:input_type -> campusapis.schoolTime.v1.GetSemesterListRequest + 2, // 3: campusapis.schoolTime.v1.SchoolTimeService.GetSemesterList:input_type -> campusapis.schoolTime.v1.GetSemesterListRequest 0, // 4: campusapis.schoolTime.v1.SchoolTimeService.GetSchoolTime:output_type -> campusapis.schoolTime.v1.GetSchoolTimeResponse - 2, // 5: campusapis.schoolTime.v1.SchoolTimeService.GetSemesterList:output_type -> campusapis.schoolTime.v1.GetSemesterListResponse + 3, // 5: campusapis.schoolTime.v1.SchoolTimeService.GetSemesterList:output_type -> campusapis.schoolTime.v1.GetSemesterListResponse 4, // [4:6] is the sub-list for method output_type 2, // [2:4] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name @@ -524,7 +522,7 @@ func file_campusapis_schoolTime_v1_schoolTime_proto_init() { } } file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSemesterListRequest); i { + switch v := v.(*SchoolTime); i { case 0: return &v.state case 1: @@ -536,7 +534,7 @@ func file_campusapis_schoolTime_v1_schoolTime_proto_init() { } } file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSemesterListResponse); i { + switch v := v.(*GetSemesterListRequest); i { case 0: return &v.state case 1: @@ -548,7 +546,7 @@ func file_campusapis_schoolTime_v1_schoolTime_proto_init() { } } file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSchoolTimeResponse_Data); i { + switch v := v.(*GetSemesterListResponse); i { case 0: return &v.state case 1: @@ -560,7 +558,7 @@ func file_campusapis_schoolTime_v1_schoolTime_proto_init() { } } file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSemesterListResponse_Semester); i { + switch v := v.(*SemesterInfo); i { case 0: return &v.state case 1: diff --git a/campusapis/schoolTime/v1/schoolTime.proto b/campusapis/schoolTime/v1/schoolTime.proto index 7b6fd11..fcc0c9c 100644 --- a/campusapis/schoolTime/v1/schoolTime.proto +++ b/campusapis/schoolTime/v1/schoolTime.proto @@ -2,16 +2,16 @@ syntax = "proto3"; package campusapis.schoolTime.v1; -option go_package = "./campusapis/schoolTime/v1"; - -import "google/protobuf/timestamp.proto"; -import "google/protobuf/empty.proto"; -import "google/api/annotations.proto"; import "campusapis/schoolTime/defined.proto"; +import "google/api/annotations.proto"; +import "google/protobuf/empty.proto"; +import "google/protobuf/timestamp.proto"; + +option go_package = "./campusapis/schoolTime/v1"; service SchoolTimeService { // 获取当前学校时间 - rpc GetSchoolTime (google.protobuf.Empty) returns (GetSchoolTimeResponse) { + rpc GetSchoolTime(google.protobuf.Empty) returns (GetSchoolTimeResponse) { option (google.api.http) = { get: "/schooltime/v1/time" additional_bindings { @@ -21,7 +21,7 @@ service SchoolTimeService { } // 获取学校学期信息列表 - rpc GetSemesterList (GetSemesterListRequest) returns (GetSemesterListResponse) { + rpc GetSemesterList(GetSemesterListRequest) returns (GetSemesterListResponse) { option (google.api.http) = { get: "/schooltime/v1/semester/listByDate" additional_bindings { @@ -34,16 +34,16 @@ service SchoolTimeService { message GetSchoolTimeResponse { uint32 error = 1; string msg = 2; - Data data = 3; + SchoolTime data = 3; +} - message Data { - string schoolYear = 1; - int32 section = 2; - string semester = 3; - uint32 timeStamp = 4; - int32 weekDayNow = 5; - int32 weekNow = 6; - } +message SchoolTime { + string schoolYear = 1; + int32 section = 2; + string semester = 3; + uint32 timeStamp = 4; + int32 weekDayNow = 5; + int32 weekNow = 6; } message GetSemesterListRequest { @@ -54,13 +54,13 @@ message GetSemesterListRequest { message GetSemesterListResponse { uint32 error = 1; string msg = 2; - repeated Semester data = 3; + repeated SemesterInfo data = 3; +} - message Semester { - string schoolYear = 1; - string semester = 2; - string startDate = 3; - string endDate = 4; - int32 state = 5; - } -} \ No newline at end of file +message SemesterInfo { + string schoolYear = 1; + string semester = 2; + string startDate = 3; + string endDate = 4; + int32 state = 5; +} diff --git a/campusapis/staff/v1/campus.pb.go b/campusapis/staff/v1/campus.pb.go index b6ba0b0..65b2b9a 100644 --- a/campusapis/staff/v1/campus.pb.go +++ b/campusapis/staff/v1/campus.pb.go @@ -30,9 +30,9 @@ type GetPersonInfoResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Data *GetPersonInfoResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *PersonInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetPersonInfoResponse) Reset() { @@ -81,13 +81,97 @@ func (x *GetPersonInfoResponse) GetMsg() string { return "" } -func (x *GetPersonInfoResponse) GetData() *GetPersonInfoResponse_Data { +func (x *GetPersonInfoResponse) GetData() *PersonInfo { if x != nil { return x.Data } return nil } +type PersonInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //学工号 + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + //姓名 + StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` + //人员状态 + StaffState string `protobuf:"bytes,3,opt,name=staffState,proto3" json:"staffState,omitempty"` + //人员类型 + StaffType string `protobuf:"bytes,4,opt,name=staffType,proto3" json:"staffType,omitempty"` + //学院代码 + UnitCode string `protobuf:"bytes,5,opt,name=unitCode,proto3" json:"unitCode,omitempty"` +} + +func (x *PersonInfo) Reset() { + *x = PersonInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PersonInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PersonInfo) ProtoMessage() {} + +func (x *PersonInfo) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PersonInfo.ProtoReflect.Descriptor instead. +func (*PersonInfo) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{1} +} + +func (x *PersonInfo) GetStaffId() string { + if x != nil { + return x.StaffId + } + return "" +} + +func (x *PersonInfo) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *PersonInfo) GetStaffState() string { + if x != nil { + return x.StaffState + } + return "" +} + +func (x *PersonInfo) GetStaffType() string { + if x != nil { + return x.StaffType + } + return "" +} + +func (x *PersonInfo) GetUnitCode() string { + if x != nil { + return x.UnitCode + } + return "" +} + type GetStudentRewardsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -102,7 +186,7 @@ type GetStudentRewardsRequest struct { func (x *GetStudentRewardsRequest) Reset() { *x = GetStudentRewardsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[1] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -115,7 +199,7 @@ func (x *GetStudentRewardsRequest) String() string { func (*GetStudentRewardsRequest) ProtoMessage() {} func (x *GetStudentRewardsRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[1] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -128,7 +212,7 @@ func (x *GetStudentRewardsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentRewardsRequest.ProtoReflect.Descriptor instead. func (*GetStudentRewardsRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{1} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{2} } func (x *GetStudentRewardsRequest) GetSchoolYear() string { @@ -159,7 +243,7 @@ type GetStudentCourseSelectionsRequest struct { func (x *GetStudentCourseSelectionsRequest) Reset() { *x = GetStudentCourseSelectionsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[2] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -172,7 +256,7 @@ func (x *GetStudentCourseSelectionsRequest) String() string { func (*GetStudentCourseSelectionsRequest) ProtoMessage() {} func (x *GetStudentCourseSelectionsRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[2] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -185,7 +269,7 @@ func (x *GetStudentCourseSelectionsRequest) ProtoReflect() protoreflect.Message // Deprecated: Use GetStudentCourseSelectionsRequest.ProtoReflect.Descriptor instead. func (*GetStudentCourseSelectionsRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{2} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{3} } func (x *GetStudentCourseSelectionsRequest) GetSchoolYear() string { @@ -216,7 +300,7 @@ type GetStudentGradeRequest struct { func (x *GetStudentGradeRequest) Reset() { *x = GetStudentGradeRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[3] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -229,7 +313,7 @@ func (x *GetStudentGradeRequest) String() string { func (*GetStudentGradeRequest) ProtoMessage() {} func (x *GetStudentGradeRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[3] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -242,7 +326,7 @@ func (x *GetStudentGradeRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentGradeRequest.ProtoReflect.Descriptor instead. func (*GetStudentGradeRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{3} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{4} } func (x *GetStudentGradeRequest) GetSchoolYear() string { @@ -274,7 +358,7 @@ type SemesterRequest struct { func (x *SemesterRequest) Reset() { *x = SemesterRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[4] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -287,7 +371,7 @@ func (x *SemesterRequest) String() string { func (*SemesterRequest) ProtoMessage() {} func (x *SemesterRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[4] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -300,7 +384,7 @@ func (x *SemesterRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SemesterRequest.ProtoReflect.Descriptor instead. func (*SemesterRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{4} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{5} } func (x *SemesterRequest) GetSchoolYear() string { @@ -323,15 +407,15 @@ type GetStudentInfoResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Data *GetStudentInfoResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *StudentInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetStudentInfoResponse) Reset() { *x = GetStudentInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[5] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -344,7 +428,7 @@ func (x *GetStudentInfoResponse) String() string { func (*GetStudentInfoResponse) ProtoMessage() {} func (x *GetStudentInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[5] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -357,7 +441,7 @@ func (x *GetStudentInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{5} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{6} } func (x *GetStudentInfoResponse) GetError() uint32 { @@ -374,13 +458,133 @@ func (x *GetStudentInfoResponse) GetMsg() string { return "" } -func (x *GetStudentInfoResponse) GetData() *GetStudentInfoResponse_Data { +func (x *GetStudentInfoResponse) GetData() *StudentInfo { if x != nil { return x.Data } return nil } +type StudentInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //学号 + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + //学生姓名 + StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` + //学生班级号 + ClassId string `protobuf:"bytes,3,opt,name=classId,proto3" json:"classId,omitempty"` + //学生学院编号 + UnitId string `protobuf:"bytes,4,opt,name=unitId,proto3" json:"unitId,omitempty"` + //学生学院名称 + UnitName string `protobuf:"bytes,5,opt,name=unitName,proto3" json:"unitName,omitempty"` + //学生专业编号 + MajorId string `protobuf:"bytes,6,opt,name=majorId,proto3" json:"majorId,omitempty"` + //学生专业名称 + MajorName string `protobuf:"bytes,7,opt,name=majorName,proto3" json:"majorName,omitempty"` + //学生辅导员工号 + TeacherId string `protobuf:"bytes,8,opt,name=teacherId,proto3" json:"teacherId,omitempty"` + //学生辅导员姓名 + TeacherName string `protobuf:"bytes,9,opt,name=teacherName,proto3" json:"teacherName,omitempty"` +} + +func (x *StudentInfo) Reset() { + *x = StudentInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StudentInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StudentInfo) ProtoMessage() {} + +func (x *StudentInfo) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StudentInfo.ProtoReflect.Descriptor instead. +func (*StudentInfo) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{7} +} + +func (x *StudentInfo) GetStaffId() string { + if x != nil { + return x.StaffId + } + return "" +} + +func (x *StudentInfo) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *StudentInfo) GetClassId() string { + if x != nil { + return x.ClassId + } + return "" +} + +func (x *StudentInfo) GetUnitId() string { + if x != nil { + return x.UnitId + } + return "" +} + +func (x *StudentInfo) GetUnitName() string { + if x != nil { + return x.UnitName + } + return "" +} + +func (x *StudentInfo) GetMajorId() string { + if x != nil { + return x.MajorId + } + return "" +} + +func (x *StudentInfo) GetMajorName() string { + if x != nil { + return x.MajorName + } + return "" +} + +func (x *StudentInfo) GetTeacherId() string { + if x != nil { + return x.TeacherId + } + return "" +} + +func (x *StudentInfo) GetTeacherName() string { + if x != nil { + return x.TeacherName + } + return "" +} + //查询贫困生信息返回体 type GetStudentNeedyInfoResponse struct { state protoimpl.MessageState @@ -395,7 +599,7 @@ type GetStudentNeedyInfoResponse struct { func (x *GetStudentNeedyInfoResponse) Reset() { *x = GetStudentNeedyInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[6] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -408,7 +612,7 @@ func (x *GetStudentNeedyInfoResponse) String() string { func (*GetStudentNeedyInfoResponse) ProtoMessage() {} func (x *GetStudentNeedyInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[6] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -421,7 +625,7 @@ func (x *GetStudentNeedyInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentNeedyInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentNeedyInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{6} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{8} } func (x *GetStudentNeedyInfoResponse) GetError() uint32 { @@ -466,7 +670,7 @@ type StudentNeedyInfo struct { func (x *StudentNeedyInfo) Reset() { *x = StudentNeedyInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[7] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -479,7 +683,7 @@ func (x *StudentNeedyInfo) String() string { func (*StudentNeedyInfo) ProtoMessage() {} func (x *StudentNeedyInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[7] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -492,7 +696,7 @@ func (x *StudentNeedyInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentNeedyInfo.ProtoReflect.Descriptor instead. func (*StudentNeedyInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{7} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9} } func (x *StudentNeedyInfo) GetStaffId() string { @@ -544,7 +748,7 @@ type GetStudentDormInfoResponse struct { func (x *GetStudentDormInfoResponse) Reset() { *x = GetStudentDormInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[8] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -557,7 +761,7 @@ func (x *GetStudentDormInfoResponse) String() string { func (*GetStudentDormInfoResponse) ProtoMessage() {} func (x *GetStudentDormInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[8] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -570,7 +774,7 @@ func (x *GetStudentDormInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentDormInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentDormInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{8} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10} } func (x *GetStudentDormInfoResponse) GetError() uint32 { @@ -610,7 +814,7 @@ type DormInfo struct { func (x *DormInfo) Reset() { *x = DormInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -623,7 +827,7 @@ func (x *DormInfo) String() string { func (*DormInfo) ProtoMessage() {} func (x *DormInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -636,7 +840,7 @@ func (x *DormInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use DormInfo.ProtoReflect.Descriptor instead. func (*DormInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{11} } func (x *DormInfo) GetStaffId() string { @@ -674,7 +878,7 @@ type GetStudentBirthdayInfoResponse struct { func (x *GetStudentBirthdayInfoResponse) Reset() { *x = GetStudentBirthdayInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -687,7 +891,7 @@ func (x *GetStudentBirthdayInfoResponse) String() string { func (*GetStudentBirthdayInfoResponse) ProtoMessage() {} func (x *GetStudentBirthdayInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -700,7 +904,7 @@ func (x *GetStudentBirthdayInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdayInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentBirthdayInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12} } func (x *GetStudentBirthdayInfoResponse) GetError() uint32 { @@ -741,7 +945,7 @@ type StudentBirthdayInfo struct { func (x *StudentBirthdayInfo) Reset() { *x = StudentBirthdayInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -754,7 +958,7 @@ func (x *StudentBirthdayInfo) String() string { func (*StudentBirthdayInfo) ProtoMessage() {} func (x *StudentBirthdayInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -767,7 +971,7 @@ func (x *StudentBirthdayInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentBirthdayInfo.ProtoReflect.Descriptor instead. func (*StudentBirthdayInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{11} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{13} } func (x *StudentBirthdayInfo) GetStaffId() string { @@ -808,7 +1012,7 @@ type GetStudentBirthdaysInRequest struct { func (x *GetStudentBirthdaysInRequest) Reset() { *x = GetStudentBirthdaysInRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -821,7 +1025,7 @@ func (x *GetStudentBirthdaysInRequest) String() string { func (*GetStudentBirthdaysInRequest) ProtoMessage() {} func (x *GetStudentBirthdaysInRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -834,7 +1038,7 @@ func (x *GetStudentBirthdaysInRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdaysInRequest.ProtoReflect.Descriptor instead. func (*GetStudentBirthdaysInRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{14} } func (x *GetStudentBirthdaysInRequest) GetType() staff.Type { @@ -871,7 +1075,7 @@ type GetStudentBirthdaysInResponse struct { func (x *GetStudentBirthdaysInResponse) Reset() { *x = GetStudentBirthdaysInResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -884,7 +1088,7 @@ func (x *GetStudentBirthdaysInResponse) String() string { func (*GetStudentBirthdaysInResponse) ProtoMessage() {} func (x *GetStudentBirthdaysInResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -897,7 +1101,7 @@ func (x *GetStudentBirthdaysInResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdaysInResponse.ProtoReflect.Descriptor instead. func (*GetStudentBirthdaysInResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{13} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{15} } func (x *GetStudentBirthdaysInResponse) GetBirthdays() []*StudentBirthdayInfo { @@ -922,7 +1126,7 @@ type GetStudentRewardsResponse struct { func (x *GetStudentRewardsResponse) Reset() { *x = GetStudentRewardsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -935,7 +1139,7 @@ func (x *GetStudentRewardsResponse) String() string { func (*GetStudentRewardsResponse) ProtoMessage() {} func (x *GetStudentRewardsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -948,7 +1152,7 @@ func (x *GetStudentRewardsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentRewardsResponse.ProtoReflect.Descriptor instead. func (*GetStudentRewardsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{14} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{16} } func (x *GetStudentRewardsResponse) GetError() uint32 { @@ -995,7 +1199,7 @@ type StudentReward struct { func (x *StudentReward) Reset() { *x = StudentReward{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1008,7 +1212,7 @@ func (x *StudentReward) String() string { func (*StudentReward) ProtoMessage() {} func (x *StudentReward) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1021,7 +1225,7 @@ func (x *StudentReward) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentReward.ProtoReflect.Descriptor instead. func (*StudentReward) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{15} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{17} } func (x *StudentReward) GetStaffID() string { @@ -1081,7 +1285,7 @@ type GetStudentCourseSelectionsResponse struct { func (x *GetStudentCourseSelectionsResponse) Reset() { *x = GetStudentCourseSelectionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1094,7 +1298,7 @@ func (x *GetStudentCourseSelectionsResponse) String() string { func (*GetStudentCourseSelectionsResponse) ProtoMessage() {} func (x *GetStudentCourseSelectionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1107,7 +1311,7 @@ func (x *GetStudentCourseSelectionsResponse) ProtoReflect() protoreflect.Message // Deprecated: Use GetStudentCourseSelectionsResponse.ProtoReflect.Descriptor instead. func (*GetStudentCourseSelectionsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{16} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{18} } func (x *GetStudentCourseSelectionsResponse) GetError() uint32 { @@ -1164,7 +1368,7 @@ type StudentCourseSelection struct { func (x *StudentCourseSelection) Reset() { *x = StudentCourseSelection{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1177,7 +1381,7 @@ func (x *StudentCourseSelection) String() string { func (*StudentCourseSelection) ProtoMessage() {} func (x *StudentCourseSelection) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1190,7 +1394,7 @@ func (x *StudentCourseSelection) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentCourseSelection.ProtoReflect.Descriptor instead. func (*StudentCourseSelection) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{17} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{19} } func (x *StudentCourseSelection) GetSchoolYear() string { @@ -1285,7 +1489,7 @@ type GetStudentGradeResponse struct { func (x *GetStudentGradeResponse) Reset() { *x = GetStudentGradeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1298,7 +1502,7 @@ func (x *GetStudentGradeResponse) String() string { func (*GetStudentGradeResponse) ProtoMessage() {} func (x *GetStudentGradeResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1311,7 +1515,7 @@ func (x *GetStudentGradeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentGradeResponse.ProtoReflect.Descriptor instead. func (*GetStudentGradeResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{18} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{20} } func (x *GetStudentGradeResponse) GetError() uint32 { @@ -1376,7 +1580,7 @@ type StudentGrade struct { func (x *StudentGrade) Reset() { *x = StudentGrade{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1389,7 +1593,7 @@ func (x *StudentGrade) String() string { func (*StudentGrade) ProtoMessage() {} func (x *StudentGrade) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1402,7 +1606,7 @@ func (x *StudentGrade) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentGrade.ProtoReflect.Descriptor instead. func (*StudentGrade) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{19} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{21} } func (x *StudentGrade) GetSchoolYear() string { @@ -1538,7 +1742,7 @@ type PostStudentGateAccessRequest struct { func (x *PostStudentGateAccessRequest) Reset() { *x = PostStudentGateAccessRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1551,7 +1755,7 @@ func (x *PostStudentGateAccessRequest) String() string { func (*PostStudentGateAccessRequest) ProtoMessage() {} func (x *PostStudentGateAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1564,7 +1768,7 @@ func (x *PostStudentGateAccessRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PostStudentGateAccessRequest.ProtoReflect.Descriptor instead. func (*PostStudentGateAccessRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{20} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{22} } func (x *PostStudentGateAccessRequest) GetStaffId() string { @@ -1630,7 +1834,7 @@ type PostStudentGateAccessResponse struct { func (x *PostStudentGateAccessResponse) Reset() { *x = PostStudentGateAccessResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1643,7 +1847,7 @@ func (x *PostStudentGateAccessResponse) String() string { func (*PostStudentGateAccessResponse) ProtoMessage() {} func (x *PostStudentGateAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1656,7 +1860,7 @@ func (x *PostStudentGateAccessResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PostStudentGateAccessResponse.ProtoReflect.Descriptor instead. func (*PostStudentGateAccessResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{21} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{23} } func (x *PostStudentGateAccessResponse) GetError() uint32 { @@ -1694,7 +1898,7 @@ type GetStudentStaySchoolInfoResponse struct { func (x *GetStudentStaySchoolInfoResponse) Reset() { *x = GetStudentStaySchoolInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1707,7 +1911,7 @@ func (x *GetStudentStaySchoolInfoResponse) String() string { func (*GetStudentStaySchoolInfoResponse) ProtoMessage() {} func (x *GetStudentStaySchoolInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1720,7 +1924,7 @@ func (x *GetStudentStaySchoolInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentStaySchoolInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentStaySchoolInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{22} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{24} } func (x *GetStudentStaySchoolInfoResponse) GetError() uint32 { @@ -1785,7 +1989,7 @@ type StudentStaySchoolInfo struct { func (x *StudentStaySchoolInfo) Reset() { *x = StudentStaySchoolInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1798,7 +2002,7 @@ func (x *StudentStaySchoolInfo) String() string { func (*StudentStaySchoolInfo) ProtoMessage() {} func (x *StudentStaySchoolInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1811,7 +2015,7 @@ func (x *StudentStaySchoolInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentStaySchoolInfo.ProtoReflect.Descriptor instead. func (*StudentStaySchoolInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{23} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{25} } func (x *StudentStaySchoolInfo) GetStaffId() string { @@ -1935,7 +2139,7 @@ type GetFreshmanBaseInfoRequest struct { func (x *GetFreshmanBaseInfoRequest) Reset() { *x = GetFreshmanBaseInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1948,7 +2152,7 @@ func (x *GetFreshmanBaseInfoRequest) String() string { func (*GetFreshmanBaseInfoRequest) ProtoMessage() {} func (x *GetFreshmanBaseInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1961,7 +2165,7 @@ func (x *GetFreshmanBaseInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanBaseInfoRequest.ProtoReflect.Descriptor instead. func (*GetFreshmanBaseInfoRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{24} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{26} } func (x *GetFreshmanBaseInfoRequest) GetStaffId() string { @@ -2001,7 +2205,7 @@ type GetFreshmanDetailRequest struct { func (x *GetFreshmanDetailRequest) Reset() { *x = GetFreshmanDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2014,7 +2218,7 @@ func (x *GetFreshmanDetailRequest) String() string { func (*GetFreshmanDetailRequest) ProtoMessage() {} func (x *GetFreshmanDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2027,7 +2231,7 @@ func (x *GetFreshmanDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanDetailRequest.ProtoReflect.Descriptor instead. func (*GetFreshmanDetailRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{25} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{27} } func (x *GetFreshmanDetailRequest) GetStaffId() string { @@ -2067,7 +2271,7 @@ type GetFreshmanRoommatesRequest struct { func (x *GetFreshmanRoommatesRequest) Reset() { *x = GetFreshmanRoommatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2080,7 +2284,7 @@ func (x *GetFreshmanRoommatesRequest) String() string { func (*GetFreshmanRoommatesRequest) ProtoMessage() {} func (x *GetFreshmanRoommatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2093,7 +2297,7 @@ func (x *GetFreshmanRoommatesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanRoommatesRequest.ProtoReflect.Descriptor instead. func (*GetFreshmanRoommatesRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{26} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{28} } func (x *GetFreshmanRoommatesRequest) GetStaffId() string { @@ -2135,7 +2339,7 @@ type FreshmanKeywordRequest struct { func (x *FreshmanKeywordRequest) Reset() { *x = FreshmanKeywordRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2148,7 +2352,7 @@ func (x *FreshmanKeywordRequest) String() string { func (*FreshmanKeywordRequest) ProtoMessage() {} func (x *FreshmanKeywordRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2161,7 +2365,7 @@ func (x *FreshmanKeywordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanKeywordRequest.ProtoReflect.Descriptor instead. func (*FreshmanKeywordRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{27} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{29} } func (x *FreshmanKeywordRequest) GetStaffId() string { @@ -2198,7 +2402,7 @@ type GetFreshmanBaseInfoResponse struct { func (x *GetFreshmanBaseInfoResponse) Reset() { *x = GetFreshmanBaseInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2211,7 +2415,7 @@ func (x *GetFreshmanBaseInfoResponse) String() string { func (*GetFreshmanBaseInfoResponse) ProtoMessage() {} func (x *GetFreshmanBaseInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2224,7 +2428,7 @@ func (x *GetFreshmanBaseInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanBaseInfoResponse.ProtoReflect.Descriptor instead. func (*GetFreshmanBaseInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{28} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{30} } func (x *GetFreshmanBaseInfoResponse) GetError() uint32 { @@ -2271,7 +2475,7 @@ type FreshmanBaseInfo struct { func (x *FreshmanBaseInfo) Reset() { *x = FreshmanBaseInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2284,7 +2488,7 @@ func (x *FreshmanBaseInfo) String() string { func (*FreshmanBaseInfo) ProtoMessage() {} func (x *FreshmanBaseInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2297,7 +2501,7 @@ func (x *FreshmanBaseInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanBaseInfo.ProtoReflect.Descriptor instead. func (*FreshmanBaseInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{29} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{31} } func (x *FreshmanBaseInfo) GetStaffId() string { @@ -2355,7 +2559,7 @@ type GetFreshmanDetailResponse struct { func (x *GetFreshmanDetailResponse) Reset() { *x = GetFreshmanDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2368,7 +2572,7 @@ func (x *GetFreshmanDetailResponse) String() string { func (*GetFreshmanDetailResponse) ProtoMessage() {} func (x *GetFreshmanDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2381,7 +2585,7 @@ func (x *GetFreshmanDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanDetailResponse.ProtoReflect.Descriptor instead. func (*GetFreshmanDetailResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{30} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{32} } func (x *GetFreshmanDetailResponse) GetError() uint32 { @@ -2463,7 +2667,7 @@ type FreshmanDetail struct { func (x *FreshmanDetail) Reset() { *x = FreshmanDetail{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2476,7 +2680,7 @@ func (x *FreshmanDetail) String() string { func (*FreshmanDetail) ProtoMessage() {} func (x *FreshmanDetail) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2489,7 +2693,7 @@ func (x *FreshmanDetail) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanDetail.ProtoReflect.Descriptor instead. func (*FreshmanDetail) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{31} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{33} } func (x *FreshmanDetail) GetStaffId() string { @@ -2682,7 +2886,7 @@ type GetFreshmanRoommatesResponse struct { func (x *GetFreshmanRoommatesResponse) Reset() { *x = GetFreshmanRoommatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2695,7 +2899,7 @@ func (x *GetFreshmanRoommatesResponse) String() string { func (*GetFreshmanRoommatesResponse) ProtoMessage() {} func (x *GetFreshmanRoommatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2708,7 +2912,7 @@ func (x *GetFreshmanRoommatesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanRoommatesResponse.ProtoReflect.Descriptor instead. func (*GetFreshmanRoommatesResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{32} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{34} } func (x *GetFreshmanRoommatesResponse) GetError() uint32 { @@ -2746,7 +2950,7 @@ type FreshmanRoommate struct { func (x *FreshmanRoommate) Reset() { *x = FreshmanRoommate{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2759,7 +2963,7 @@ func (x *FreshmanRoommate) String() string { func (*FreshmanRoommate) ProtoMessage() {} func (x *FreshmanRoommate) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2772,7 +2976,7 @@ func (x *FreshmanRoommate) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanRoommate.ProtoReflect.Descriptor instead. func (*FreshmanRoommate) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{33} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{35} } func (x *FreshmanRoommate) GetStaffName() string { @@ -2796,210 +3000,6 @@ func (x *FreshmanRoommate) GetPhone() string { return "" } -type GetPersonInfoResponse_Data struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - //学工号 - StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` - //姓名 - StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` - //人员状态 - StaffState string `protobuf:"bytes,3,opt,name=staffState,proto3" json:"staffState,omitempty"` - //人员类型 - StaffType string `protobuf:"bytes,4,opt,name=staffType,proto3" json:"staffType,omitempty"` - //学院代码 - UnitCode string `protobuf:"bytes,5,opt,name=unitCode,proto3" json:"unitCode,omitempty"` -} - -func (x *GetPersonInfoResponse_Data) Reset() { - *x = GetPersonInfoResponse_Data{} - if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetPersonInfoResponse_Data) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetPersonInfoResponse_Data) ProtoMessage() {} - -func (x *GetPersonInfoResponse_Data) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetPersonInfoResponse_Data.ProtoReflect.Descriptor instead. -func (*GetPersonInfoResponse_Data) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{0, 0} -} - -func (x *GetPersonInfoResponse_Data) GetStaffId() string { - if x != nil { - return x.StaffId - } - return "" -} - -func (x *GetPersonInfoResponse_Data) GetStaffName() string { - if x != nil { - return x.StaffName - } - return "" -} - -func (x *GetPersonInfoResponse_Data) GetStaffState() string { - if x != nil { - return x.StaffState - } - return "" -} - -func (x *GetPersonInfoResponse_Data) GetStaffType() string { - if x != nil { - return x.StaffType - } - return "" -} - -func (x *GetPersonInfoResponse_Data) GetUnitCode() string { - if x != nil { - return x.UnitCode - } - return "" -} - -type GetStudentInfoResponse_Data struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - //学号 - StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` - //学生姓名 - StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` - //学生班级号 - ClassId string `protobuf:"bytes,3,opt,name=classId,proto3" json:"classId,omitempty"` - //学生学院编号 - UnitId string `protobuf:"bytes,4,opt,name=unitId,proto3" json:"unitId,omitempty"` - //学生学院名称 - UnitName string `protobuf:"bytes,5,opt,name=unitName,proto3" json:"unitName,omitempty"` - //学生专业编号 - MajorId string `protobuf:"bytes,6,opt,name=majorId,proto3" json:"majorId,omitempty"` - //学生专业名称 - MajorName string `protobuf:"bytes,7,opt,name=majorName,proto3" json:"majorName,omitempty"` - //学生辅导员工号 - TeacherId string `protobuf:"bytes,8,opt,name=teacherId,proto3" json:"teacherId,omitempty"` - //学生辅导员姓名 - TeacherName string `protobuf:"bytes,9,opt,name=teacherName,proto3" json:"teacherName,omitempty"` -} - -func (x *GetStudentInfoResponse_Data) Reset() { - *x = GetStudentInfoResponse_Data{} - if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetStudentInfoResponse_Data) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetStudentInfoResponse_Data) ProtoMessage() {} - -func (x *GetStudentInfoResponse_Data) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetStudentInfoResponse_Data.ProtoReflect.Descriptor instead. -func (*GetStudentInfoResponse_Data) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{5, 0} -} - -func (x *GetStudentInfoResponse_Data) GetStaffId() string { - if x != nil { - return x.StaffId - } - return "" -} - -func (x *GetStudentInfoResponse_Data) GetStaffName() string { - if x != nil { - return x.StaffName - } - return "" -} - -func (x *GetStudentInfoResponse_Data) GetClassId() string { - if x != nil { - return x.ClassId - } - return "" -} - -func (x *GetStudentInfoResponse_Data) GetUnitId() string { - if x != nil { - return x.UnitId - } - return "" -} - -func (x *GetStudentInfoResponse_Data) GetUnitName() string { - if x != nil { - return x.UnitName - } - return "" -} - -func (x *GetStudentInfoResponse_Data) GetMajorId() string { - if x != nil { - return x.MajorId - } - return "" -} - -func (x *GetStudentInfoResponse_Data) GetMajorName() string { - if x != nil { - return x.MajorName - } - return "" -} - -func (x *GetStudentInfoResponse_Data) GetTeacherId() string { - if x != nil { - return x.TeacherId - } - return "" -} - -func (x *GetStudentInfoResponse_Data) GetTeacherName() string { - if x != nil { - return x.TeacherName - } - return "" -} - //某年贫困详情 type StudentNeedyInfo_Nested struct { state protoimpl.MessageState @@ -3041,7 +3041,7 @@ func (x *StudentNeedyInfo_Nested) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentNeedyInfo_Nested.ProtoReflect.Descriptor instead. func (*StudentNeedyInfo_Nested) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{7, 0} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9, 0} } func (x *StudentNeedyInfo_Nested) GetSchoolYear() int32 { @@ -3096,7 +3096,7 @@ func (x *PostStudentGateAccessResponse_Data) ProtoReflect() protoreflect.Message // Deprecated: Use PostStudentGateAccessResponse_Data.ProtoReflect.Descriptor instead. func (*PostStudentGateAccessResponse_Data) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{21, 0} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{23, 0} } func (x *PostStudentGateAccessResponse_Data) GetDone() bool { @@ -3126,566 +3126,565 @@ var file_campusapis_staff_v1_campus_proto_rawDesc = []byte{ 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x13, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x9f, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, - 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x43, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, - 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x98, 0x01, 0x0a, 0x04, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x74, 0x61, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, - 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, - 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x56, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, - 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x5f, - 0x0a, 0x21, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, - 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, - 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, - 0x54, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, - 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x4d, 0x0a, 0x0f, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x9e, 0x01, 0x0a, 0x0a, 0x50, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x56, 0x0a, 0x18, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, + 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, + 0x74, 0x65, 0x72, 0x22, 0x5f, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x22, 0x8d, 0x03, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x44, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x84, 0x02, - 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x74, - 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x74, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, - 0x61, 0x6a, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x92, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, - 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x05, 0x69, 0x74, - 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x73, 0x74, 0x65, 0x72, 0x22, 0x54, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x4d, 0x0a, 0x0f, 0x53, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x76, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c, - 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, - 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x1a, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x08, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x8b, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, - 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x13, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, - 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x72, - 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, 0x72, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x79, 0x22, 0x67, 0x0a, 0x1d, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, - 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x62, 0x69, - 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, - 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x73, 0x22, 0x7b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x6a, 0x6f, 0x72, + 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, + 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0xc5, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x8d, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x92, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, + 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, + 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe8, 0x02, 0x0a, 0x16, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, - 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, - 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, - 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, - 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, - 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, - 0x6f, 0x6d, 0x22, 0x78, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x03, 0x0a, - 0x0c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1e, 0x0a, + 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c, 0x0a, 0x06, 0x4e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, + 0x65, 0x61, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x31, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x54, 0x0a, 0x08, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x5f, 0x0a, 0x13, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, + 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, + 0x22, 0x72, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x64, 0x61, 0x79, 0x22, 0x67, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x22, 0x7b, 0x0a, + 0x19, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc5, 0x01, 0x0a, 0x0d, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x22, 0x8d, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, + 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0xe8, 0x02, 0x0a, 0x16, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, - 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, - 0x65, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, - 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, - 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, - 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, - 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, - 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, - 0x50, 0x41, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0xda, 0x01, - 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, - 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, - 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, - 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, - 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, - 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x1d, 0x50, - 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x12, 0x4b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x1a, 0x34, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x04, 0x0a, 0x15, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, - 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, - 0x6d, 0x65, 0x32, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, - 0x6d, 0x65, 0x32, 0x45, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, - 0x6d, 0x65, 0x32, 0x45, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, - 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, - 0x72, 0x6b, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, - 0x12, 0x26, 0x0a, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, - 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x1a, - 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x6a, 0x0a, 0x18, 0x47, 0x65, - 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, - 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, - 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x6d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x22, 0x78, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, + 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x03, 0x0a, 0x0c, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x28, + 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, + 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0xda, 0x01, 0x0a, 0x1c, 0x50, 0x6f, 0x73, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x4b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, + 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x34, 0x0a, 0x04, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x85, 0x04, 0x0a, 0x15, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, + 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, + 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, + 0x65, 0x31, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, + 0x65, 0x31, 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, 0x6e, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, 0x6e, + 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x2c, 0x0a, + 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, + 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, + 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x75, + 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x75, + 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x46, 0x72, + 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x68, 0x0a, 0x16, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, - 0x6e, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, - 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, - 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, - 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0xba, 0x01, 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, - 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, - 0x7c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, - 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x05, - 0x0a, 0x0e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x6a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, + 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, + 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, + 0x6f, 0x22, 0x6d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, + 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, - 0x72, 0x64, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x63, - 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, - 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, - 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x4c, 0x53, 0x54, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x4c, 0x53, 0x54, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x12, 0x16, 0x0a, 0x06, - 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, - 0x54, 0x44, 0x5a, 0x58, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x6f, - 0x6f, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, - 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, - 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, - 0x6d, 0x42, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x68, 0x69, 0x67, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, - 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, - 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x56, 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, - 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x71, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0xee, 0x11, 0x0a, 0x0d, 0x43, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, - 0x0d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, - 0x6f, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, - 0x6f, 0x12, 0x86, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, - 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x5a, 0x10, 0x12, - 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x12, - 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, - 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, - 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x5a, - 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, - 0x12, 0x9e, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, - 0x12, 0x1a, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x5a, 0x13, 0x12, 0x11, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x12, 0xb9, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, - 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, + 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, + 0x22, 0x68, 0x0a, 0x16, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x4b, 0x65, 0x79, 0x77, + 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, + 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, + 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xba, 0x01, + 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, + 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, + 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x05, 0x0a, 0x0e, 0x46, 0x72, 0x65, + 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x73, 0x73, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4c, + 0x53, 0x54, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4c, 0x53, 0x54, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, + 0x58, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x12, + 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x6f, 0x6f, + 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, + 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, + 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, + 0x69, 0x67, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x1c, 0x47, 0x65, + 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, + 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x56, 0x0a, + 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, + 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0xee, 0x11, 0x0a, 0x0d, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0e, 0x12, 0x0c, + 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x86, 0x01, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, + 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, + 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, + 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, - 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, - 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x1a, 0x2f, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x5a, 0x13, 0x12, 0x11, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0xb9, 0x01, 0x0a, + 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, + 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, + 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, + 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x73, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, - 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, - 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, - 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5a, 0x10, 0x12, 0x0e, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x80, - 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, - 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5a, + 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, - 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x1d, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, - 0x53, 0x74, 0x61, 0x79, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, - 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, - 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, - 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, - 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, - 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, + 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x15, 0x50, 0x6f, + 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, + 0x12, 0x1d, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x5a, + 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, + 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, + 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, - 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, - 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, - 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, - 0x66, 0x6f, 0x12, 0xb6, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, - 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, + 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, + 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, + 0x61, 0x73, 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, + 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, + 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, - 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, - 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, - 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, - 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, - 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, - 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, - 0x66, 0x66, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, + 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x10, 0x12, 0x0e, 0x2f, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xb6, 0x01, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, + 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, + 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, + 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, + 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x42, 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, + 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, + 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, + 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, + 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, + 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, + 0x3a, 0x53, 0x74, 0x61, 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -3703,91 +3702,91 @@ func file_campusapis_staff_v1_campus_proto_rawDescGZIP() []byte { var file_campusapis_staff_v1_campus_proto_msgTypes = make([]protoimpl.MessageInfo, 38) var file_campusapis_staff_v1_campus_proto_goTypes = []interface{}{ (*GetPersonInfoResponse)(nil), // 0: campusapis.staff.v1.GetPersonInfoResponse - (*GetStudentRewardsRequest)(nil), // 1: campusapis.staff.v1.GetStudentRewardsRequest - (*GetStudentCourseSelectionsRequest)(nil), // 2: campusapis.staff.v1.GetStudentCourseSelectionsRequest - (*GetStudentGradeRequest)(nil), // 3: campusapis.staff.v1.GetStudentGradeRequest - (*SemesterRequest)(nil), // 4: campusapis.staff.v1.SemesterRequest - (*GetStudentInfoResponse)(nil), // 5: campusapis.staff.v1.GetStudentInfoResponse - (*GetStudentNeedyInfoResponse)(nil), // 6: campusapis.staff.v1.GetStudentNeedyInfoResponse - (*StudentNeedyInfo)(nil), // 7: campusapis.staff.v1.StudentNeedyInfo - (*GetStudentDormInfoResponse)(nil), // 8: campusapis.staff.v1.GetStudentDormInfoResponse - (*DormInfo)(nil), // 9: campusapis.staff.v1.DormInfo - (*GetStudentBirthdayInfoResponse)(nil), // 10: campusapis.staff.v1.GetStudentBirthdayInfoResponse - (*StudentBirthdayInfo)(nil), // 11: campusapis.staff.v1.StudentBirthdayInfo - (*GetStudentBirthdaysInRequest)(nil), // 12: campusapis.staff.v1.GetStudentBirthdaysInRequest - (*GetStudentBirthdaysInResponse)(nil), // 13: campusapis.staff.v1.GetStudentBirthdaysInResponse - (*GetStudentRewardsResponse)(nil), // 14: campusapis.staff.v1.GetStudentRewardsResponse - (*StudentReward)(nil), // 15: campusapis.staff.v1.StudentReward - (*GetStudentCourseSelectionsResponse)(nil), // 16: campusapis.staff.v1.GetStudentCourseSelectionsResponse - (*StudentCourseSelection)(nil), // 17: campusapis.staff.v1.StudentCourseSelection - (*GetStudentGradeResponse)(nil), // 18: campusapis.staff.v1.GetStudentGradeResponse - (*StudentGrade)(nil), // 19: campusapis.staff.v1.StudentGrade - (*PostStudentGateAccessRequest)(nil), // 20: campusapis.staff.v1.PostStudentGateAccessRequest - (*PostStudentGateAccessResponse)(nil), // 21: campusapis.staff.v1.PostStudentGateAccessResponse - (*GetStudentStaySchoolInfoResponse)(nil), // 22: campusapis.staff.v1.GetStudentStaySchoolInfoResponse - (*StudentStaySchoolInfo)(nil), // 23: campusapis.staff.v1.StudentStaySchoolInfo - (*GetFreshmanBaseInfoRequest)(nil), // 24: campusapis.staff.v1.GetFreshmanBaseInfoRequest - (*GetFreshmanDetailRequest)(nil), // 25: campusapis.staff.v1.GetFreshmanDetailRequest - (*GetFreshmanRoommatesRequest)(nil), // 26: campusapis.staff.v1.GetFreshmanRoommatesRequest - (*FreshmanKeywordRequest)(nil), // 27: campusapis.staff.v1.FreshmanKeywordRequest - (*GetFreshmanBaseInfoResponse)(nil), // 28: campusapis.staff.v1.GetFreshmanBaseInfoResponse - (*FreshmanBaseInfo)(nil), // 29: campusapis.staff.v1.FreshmanBaseInfo - (*GetFreshmanDetailResponse)(nil), // 30: campusapis.staff.v1.GetFreshmanDetailResponse - (*FreshmanDetail)(nil), // 31: campusapis.staff.v1.FreshmanDetail - (*GetFreshmanRoommatesResponse)(nil), // 32: campusapis.staff.v1.GetFreshmanRoommatesResponse - (*FreshmanRoommate)(nil), // 33: campusapis.staff.v1.FreshmanRoommate - (*GetPersonInfoResponse_Data)(nil), // 34: campusapis.staff.v1.GetPersonInfoResponse.Data - (*GetStudentInfoResponse_Data)(nil), // 35: campusapis.staff.v1.GetStudentInfoResponse.Data + (*PersonInfo)(nil), // 1: campusapis.staff.v1.PersonInfo + (*GetStudentRewardsRequest)(nil), // 2: campusapis.staff.v1.GetStudentRewardsRequest + (*GetStudentCourseSelectionsRequest)(nil), // 3: campusapis.staff.v1.GetStudentCourseSelectionsRequest + (*GetStudentGradeRequest)(nil), // 4: campusapis.staff.v1.GetStudentGradeRequest + (*SemesterRequest)(nil), // 5: campusapis.staff.v1.SemesterRequest + (*GetStudentInfoResponse)(nil), // 6: campusapis.staff.v1.GetStudentInfoResponse + (*StudentInfo)(nil), // 7: campusapis.staff.v1.StudentInfo + (*GetStudentNeedyInfoResponse)(nil), // 8: campusapis.staff.v1.GetStudentNeedyInfoResponse + (*StudentNeedyInfo)(nil), // 9: campusapis.staff.v1.StudentNeedyInfo + (*GetStudentDormInfoResponse)(nil), // 10: campusapis.staff.v1.GetStudentDormInfoResponse + (*DormInfo)(nil), // 11: campusapis.staff.v1.DormInfo + (*GetStudentBirthdayInfoResponse)(nil), // 12: campusapis.staff.v1.GetStudentBirthdayInfoResponse + (*StudentBirthdayInfo)(nil), // 13: campusapis.staff.v1.StudentBirthdayInfo + (*GetStudentBirthdaysInRequest)(nil), // 14: campusapis.staff.v1.GetStudentBirthdaysInRequest + (*GetStudentBirthdaysInResponse)(nil), // 15: campusapis.staff.v1.GetStudentBirthdaysInResponse + (*GetStudentRewardsResponse)(nil), // 16: campusapis.staff.v1.GetStudentRewardsResponse + (*StudentReward)(nil), // 17: campusapis.staff.v1.StudentReward + (*GetStudentCourseSelectionsResponse)(nil), // 18: campusapis.staff.v1.GetStudentCourseSelectionsResponse + (*StudentCourseSelection)(nil), // 19: campusapis.staff.v1.StudentCourseSelection + (*GetStudentGradeResponse)(nil), // 20: campusapis.staff.v1.GetStudentGradeResponse + (*StudentGrade)(nil), // 21: campusapis.staff.v1.StudentGrade + (*PostStudentGateAccessRequest)(nil), // 22: campusapis.staff.v1.PostStudentGateAccessRequest + (*PostStudentGateAccessResponse)(nil), // 23: campusapis.staff.v1.PostStudentGateAccessResponse + (*GetStudentStaySchoolInfoResponse)(nil), // 24: campusapis.staff.v1.GetStudentStaySchoolInfoResponse + (*StudentStaySchoolInfo)(nil), // 25: campusapis.staff.v1.StudentStaySchoolInfo + (*GetFreshmanBaseInfoRequest)(nil), // 26: campusapis.staff.v1.GetFreshmanBaseInfoRequest + (*GetFreshmanDetailRequest)(nil), // 27: campusapis.staff.v1.GetFreshmanDetailRequest + (*GetFreshmanRoommatesRequest)(nil), // 28: campusapis.staff.v1.GetFreshmanRoommatesRequest + (*FreshmanKeywordRequest)(nil), // 29: campusapis.staff.v1.FreshmanKeywordRequest + (*GetFreshmanBaseInfoResponse)(nil), // 30: campusapis.staff.v1.GetFreshmanBaseInfoResponse + (*FreshmanBaseInfo)(nil), // 31: campusapis.staff.v1.FreshmanBaseInfo + (*GetFreshmanDetailResponse)(nil), // 32: campusapis.staff.v1.GetFreshmanDetailResponse + (*FreshmanDetail)(nil), // 33: campusapis.staff.v1.FreshmanDetail + (*GetFreshmanRoommatesResponse)(nil), // 34: campusapis.staff.v1.GetFreshmanRoommatesResponse + (*FreshmanRoommate)(nil), // 35: campusapis.staff.v1.FreshmanRoommate (*StudentNeedyInfo_Nested)(nil), // 36: campusapis.staff.v1.StudentNeedyInfo.Nested (*PostStudentGateAccessResponse_Data)(nil), // 37: campusapis.staff.v1.PostStudentGateAccessResponse.Data (staff.Type)(0), // 38: campusapis.staff.Type (*emptypb.Empty)(nil), // 39: google.protobuf.Empty } var file_campusapis_staff_v1_campus_proto_depIdxs = []int32{ - 34, // 0: campusapis.staff.v1.GetPersonInfoResponse.data:type_name -> campusapis.staff.v1.GetPersonInfoResponse.Data - 35, // 1: campusapis.staff.v1.GetStudentInfoResponse.data:type_name -> campusapis.staff.v1.GetStudentInfoResponse.Data - 7, // 2: campusapis.staff.v1.GetStudentNeedyInfoResponse.data:type_name -> campusapis.staff.v1.StudentNeedyInfo + 1, // 0: campusapis.staff.v1.GetPersonInfoResponse.data:type_name -> campusapis.staff.v1.PersonInfo + 7, // 1: campusapis.staff.v1.GetStudentInfoResponse.data:type_name -> campusapis.staff.v1.StudentInfo + 9, // 2: campusapis.staff.v1.GetStudentNeedyInfoResponse.data:type_name -> campusapis.staff.v1.StudentNeedyInfo 36, // 3: campusapis.staff.v1.StudentNeedyInfo.items:type_name -> campusapis.staff.v1.StudentNeedyInfo.Nested - 9, // 4: campusapis.staff.v1.GetStudentDormInfoResponse.data:type_name -> campusapis.staff.v1.DormInfo - 11, // 5: campusapis.staff.v1.GetStudentBirthdayInfoResponse.data:type_name -> campusapis.staff.v1.StudentBirthdayInfo + 11, // 4: campusapis.staff.v1.GetStudentDormInfoResponse.data:type_name -> campusapis.staff.v1.DormInfo + 13, // 5: campusapis.staff.v1.GetStudentBirthdayInfoResponse.data:type_name -> campusapis.staff.v1.StudentBirthdayInfo 38, // 6: campusapis.staff.v1.GetStudentBirthdaysInRequest.type:type_name -> campusapis.staff.Type - 11, // 7: campusapis.staff.v1.GetStudentBirthdaysInResponse.birthdays:type_name -> campusapis.staff.v1.StudentBirthdayInfo - 15, // 8: campusapis.staff.v1.GetStudentRewardsResponse.data:type_name -> campusapis.staff.v1.StudentReward - 17, // 9: campusapis.staff.v1.GetStudentCourseSelectionsResponse.data:type_name -> campusapis.staff.v1.StudentCourseSelection - 19, // 10: campusapis.staff.v1.GetStudentGradeResponse.data:type_name -> campusapis.staff.v1.StudentGrade + 13, // 7: campusapis.staff.v1.GetStudentBirthdaysInResponse.birthdays:type_name -> campusapis.staff.v1.StudentBirthdayInfo + 17, // 8: campusapis.staff.v1.GetStudentRewardsResponse.data:type_name -> campusapis.staff.v1.StudentReward + 19, // 9: campusapis.staff.v1.GetStudentCourseSelectionsResponse.data:type_name -> campusapis.staff.v1.StudentCourseSelection + 21, // 10: campusapis.staff.v1.GetStudentGradeResponse.data:type_name -> campusapis.staff.v1.StudentGrade 37, // 11: campusapis.staff.v1.PostStudentGateAccessResponse.data:type_name -> campusapis.staff.v1.PostStudentGateAccessResponse.Data - 23, // 12: campusapis.staff.v1.GetStudentStaySchoolInfoResponse.data:type_name -> campusapis.staff.v1.StudentStaySchoolInfo - 29, // 13: campusapis.staff.v1.GetFreshmanBaseInfoResponse.data:type_name -> campusapis.staff.v1.FreshmanBaseInfo - 31, // 14: campusapis.staff.v1.GetFreshmanDetailResponse.data:type_name -> campusapis.staff.v1.FreshmanDetail - 33, // 15: campusapis.staff.v1.GetFreshmanRoommatesResponse.data:type_name -> campusapis.staff.v1.FreshmanRoommate + 25, // 12: campusapis.staff.v1.GetStudentStaySchoolInfoResponse.data:type_name -> campusapis.staff.v1.StudentStaySchoolInfo + 31, // 13: campusapis.staff.v1.GetFreshmanBaseInfoResponse.data:type_name -> campusapis.staff.v1.FreshmanBaseInfo + 33, // 14: campusapis.staff.v1.GetFreshmanDetailResponse.data:type_name -> campusapis.staff.v1.FreshmanDetail + 35, // 15: campusapis.staff.v1.GetFreshmanRoommatesResponse.data:type_name -> campusapis.staff.v1.FreshmanRoommate 39, // 16: campusapis.staff.v1.CampusService.GetPersonInfo:input_type -> google.protobuf.Empty 39, // 17: campusapis.staff.v1.CampusService.GetStudentInfo:input_type -> google.protobuf.Empty 39, // 18: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:input_type -> google.protobuf.Empty 39, // 19: campusapis.staff.v1.CampusService.GetStudentDormInfo:input_type -> google.protobuf.Empty 39, // 20: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:input_type -> google.protobuf.Empty - 12, // 21: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:input_type -> campusapis.staff.v1.GetStudentBirthdaysInRequest - 1, // 22: campusapis.staff.v1.CampusService.GetStudentRewards:input_type -> campusapis.staff.v1.GetStudentRewardsRequest - 2, // 23: campusapis.staff.v1.CampusService.GetStudentCourseSelections:input_type -> campusapis.staff.v1.GetStudentCourseSelectionsRequest - 3, // 24: campusapis.staff.v1.CampusService.GetStudentGrade:input_type -> campusapis.staff.v1.GetStudentGradeRequest - 20, // 25: campusapis.staff.v1.CampusService.PostStudentGateAccess:input_type -> campusapis.staff.v1.PostStudentGateAccessRequest + 14, // 21: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:input_type -> campusapis.staff.v1.GetStudentBirthdaysInRequest + 2, // 22: campusapis.staff.v1.CampusService.GetStudentRewards:input_type -> campusapis.staff.v1.GetStudentRewardsRequest + 3, // 23: campusapis.staff.v1.CampusService.GetStudentCourseSelections:input_type -> campusapis.staff.v1.GetStudentCourseSelectionsRequest + 4, // 24: campusapis.staff.v1.CampusService.GetStudentGrade:input_type -> campusapis.staff.v1.GetStudentGradeRequest + 22, // 25: campusapis.staff.v1.CampusService.PostStudentGateAccess:input_type -> campusapis.staff.v1.PostStudentGateAccessRequest 39, // 26: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:input_type -> google.protobuf.Empty - 24, // 27: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:input_type -> campusapis.staff.v1.GetFreshmanBaseInfoRequest - 25, // 28: campusapis.staff.v1.CampusService.GetFreshmanDetail:input_type -> campusapis.staff.v1.GetFreshmanDetailRequest - 26, // 29: campusapis.staff.v1.CampusService.GetFreshmanRoommates:input_type -> campusapis.staff.v1.GetFreshmanRoommatesRequest + 26, // 27: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:input_type -> campusapis.staff.v1.GetFreshmanBaseInfoRequest + 27, // 28: campusapis.staff.v1.CampusService.GetFreshmanDetail:input_type -> campusapis.staff.v1.GetFreshmanDetailRequest + 28, // 29: campusapis.staff.v1.CampusService.GetFreshmanRoommates:input_type -> campusapis.staff.v1.GetFreshmanRoommatesRequest 0, // 30: campusapis.staff.v1.CampusService.GetPersonInfo:output_type -> campusapis.staff.v1.GetPersonInfoResponse - 5, // 31: campusapis.staff.v1.CampusService.GetStudentInfo:output_type -> campusapis.staff.v1.GetStudentInfoResponse - 6, // 32: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:output_type -> campusapis.staff.v1.GetStudentNeedyInfoResponse - 8, // 33: campusapis.staff.v1.CampusService.GetStudentDormInfo:output_type -> campusapis.staff.v1.GetStudentDormInfoResponse - 10, // 34: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:output_type -> campusapis.staff.v1.GetStudentBirthdayInfoResponse - 13, // 35: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:output_type -> campusapis.staff.v1.GetStudentBirthdaysInResponse - 14, // 36: campusapis.staff.v1.CampusService.GetStudentRewards:output_type -> campusapis.staff.v1.GetStudentRewardsResponse - 16, // 37: campusapis.staff.v1.CampusService.GetStudentCourseSelections:output_type -> campusapis.staff.v1.GetStudentCourseSelectionsResponse - 18, // 38: campusapis.staff.v1.CampusService.GetStudentGrade:output_type -> campusapis.staff.v1.GetStudentGradeResponse - 21, // 39: campusapis.staff.v1.CampusService.PostStudentGateAccess:output_type -> campusapis.staff.v1.PostStudentGateAccessResponse - 22, // 40: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:output_type -> campusapis.staff.v1.GetStudentStaySchoolInfoResponse - 28, // 41: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:output_type -> campusapis.staff.v1.GetFreshmanBaseInfoResponse - 30, // 42: campusapis.staff.v1.CampusService.GetFreshmanDetail:output_type -> campusapis.staff.v1.GetFreshmanDetailResponse - 32, // 43: campusapis.staff.v1.CampusService.GetFreshmanRoommates:output_type -> campusapis.staff.v1.GetFreshmanRoommatesResponse + 6, // 31: campusapis.staff.v1.CampusService.GetStudentInfo:output_type -> campusapis.staff.v1.GetStudentInfoResponse + 8, // 32: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:output_type -> campusapis.staff.v1.GetStudentNeedyInfoResponse + 10, // 33: campusapis.staff.v1.CampusService.GetStudentDormInfo:output_type -> campusapis.staff.v1.GetStudentDormInfoResponse + 12, // 34: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:output_type -> campusapis.staff.v1.GetStudentBirthdayInfoResponse + 15, // 35: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:output_type -> campusapis.staff.v1.GetStudentBirthdaysInResponse + 16, // 36: campusapis.staff.v1.CampusService.GetStudentRewards:output_type -> campusapis.staff.v1.GetStudentRewardsResponse + 18, // 37: campusapis.staff.v1.CampusService.GetStudentCourseSelections:output_type -> campusapis.staff.v1.GetStudentCourseSelectionsResponse + 20, // 38: campusapis.staff.v1.CampusService.GetStudentGrade:output_type -> campusapis.staff.v1.GetStudentGradeResponse + 23, // 39: campusapis.staff.v1.CampusService.PostStudentGateAccess:output_type -> campusapis.staff.v1.PostStudentGateAccessResponse + 24, // 40: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:output_type -> campusapis.staff.v1.GetStudentStaySchoolInfoResponse + 30, // 41: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:output_type -> campusapis.staff.v1.GetFreshmanBaseInfoResponse + 32, // 42: campusapis.staff.v1.CampusService.GetFreshmanDetail:output_type -> campusapis.staff.v1.GetFreshmanDetailResponse + 34, // 43: campusapis.staff.v1.CampusService.GetFreshmanRoommates:output_type -> campusapis.staff.v1.GetFreshmanRoommatesResponse 30, // [30:44] is the sub-list for method output_type 16, // [16:30] is the sub-list for method input_type 16, // [16:16] is the sub-list for extension type_name @@ -3814,7 +3813,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentRewardsRequest); i { + switch v := v.(*PersonInfo); i { case 0: return &v.state case 1: @@ -3826,7 +3825,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentCourseSelectionsRequest); i { + switch v := v.(*GetStudentRewardsRequest); i { case 0: return &v.state case 1: @@ -3838,7 +3837,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentGradeRequest); i { + switch v := v.(*GetStudentCourseSelectionsRequest); i { case 0: return &v.state case 1: @@ -3850,7 +3849,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SemesterRequest); i { + switch v := v.(*GetStudentGradeRequest); i { case 0: return &v.state case 1: @@ -3862,7 +3861,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentInfoResponse); i { + switch v := v.(*SemesterRequest); i { case 0: return &v.state case 1: @@ -3874,7 +3873,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentNeedyInfoResponse); i { + switch v := v.(*GetStudentInfoResponse); i { case 0: return &v.state case 1: @@ -3886,7 +3885,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentNeedyInfo); i { + switch v := v.(*StudentInfo); i { case 0: return &v.state case 1: @@ -3898,7 +3897,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentDormInfoResponse); i { + switch v := v.(*GetStudentNeedyInfoResponse); i { case 0: return &v.state case 1: @@ -3910,7 +3909,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DormInfo); i { + switch v := v.(*StudentNeedyInfo); i { case 0: return &v.state case 1: @@ -3922,7 +3921,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdayInfoResponse); i { + switch v := v.(*GetStudentDormInfoResponse); i { case 0: return &v.state case 1: @@ -3934,7 +3933,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentBirthdayInfo); i { + switch v := v.(*DormInfo); i { case 0: return &v.state case 1: @@ -3946,7 +3945,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdaysInRequest); i { + switch v := v.(*GetStudentBirthdayInfoResponse); i { case 0: return &v.state case 1: @@ -3958,7 +3957,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdaysInResponse); i { + switch v := v.(*StudentBirthdayInfo); i { case 0: return &v.state case 1: @@ -3970,7 +3969,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentRewardsResponse); i { + switch v := v.(*GetStudentBirthdaysInRequest); i { case 0: return &v.state case 1: @@ -3982,7 +3981,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentReward); i { + switch v := v.(*GetStudentBirthdaysInResponse); i { case 0: return &v.state case 1: @@ -3994,7 +3993,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentCourseSelectionsResponse); i { + switch v := v.(*GetStudentRewardsResponse); i { case 0: return &v.state case 1: @@ -4006,7 +4005,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentCourseSelection); i { + switch v := v.(*StudentReward); i { case 0: return &v.state case 1: @@ -4018,7 +4017,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentGradeResponse); i { + switch v := v.(*GetStudentCourseSelectionsResponse); i { case 0: return &v.state case 1: @@ -4030,7 +4029,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentGrade); i { + switch v := v.(*StudentCourseSelection); i { case 0: return &v.state case 1: @@ -4042,7 +4041,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostStudentGateAccessRequest); i { + switch v := v.(*GetStudentGradeResponse); i { case 0: return &v.state case 1: @@ -4054,7 +4053,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostStudentGateAccessResponse); i { + switch v := v.(*StudentGrade); i { case 0: return &v.state case 1: @@ -4066,7 +4065,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentStaySchoolInfoResponse); i { + switch v := v.(*PostStudentGateAccessRequest); i { case 0: return &v.state case 1: @@ -4078,7 +4077,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentStaySchoolInfo); i { + switch v := v.(*PostStudentGateAccessResponse); i { case 0: return &v.state case 1: @@ -4090,7 +4089,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanBaseInfoRequest); i { + switch v := v.(*GetStudentStaySchoolInfoResponse); i { case 0: return &v.state case 1: @@ -4102,7 +4101,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanDetailRequest); i { + switch v := v.(*StudentStaySchoolInfo); i { case 0: return &v.state case 1: @@ -4114,7 +4113,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanRoommatesRequest); i { + switch v := v.(*GetFreshmanBaseInfoRequest); i { case 0: return &v.state case 1: @@ -4126,7 +4125,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanKeywordRequest); i { + switch v := v.(*GetFreshmanDetailRequest); i { case 0: return &v.state case 1: @@ -4138,7 +4137,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanBaseInfoResponse); i { + switch v := v.(*GetFreshmanRoommatesRequest); i { case 0: return &v.state case 1: @@ -4150,7 +4149,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanBaseInfo); i { + switch v := v.(*FreshmanKeywordRequest); i { case 0: return &v.state case 1: @@ -4162,7 +4161,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanDetailResponse); i { + switch v := v.(*GetFreshmanBaseInfoResponse); i { case 0: return &v.state case 1: @@ -4174,7 +4173,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanDetail); i { + switch v := v.(*FreshmanBaseInfo); i { case 0: return &v.state case 1: @@ -4186,7 +4185,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanRoommatesResponse); i { + switch v := v.(*GetFreshmanDetailResponse); i { case 0: return &v.state case 1: @@ -4198,7 +4197,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanRoommate); i { + switch v := v.(*FreshmanDetail); i { case 0: return &v.state case 1: @@ -4210,7 +4209,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetPersonInfoResponse_Data); i { + switch v := v.(*GetFreshmanRoommatesResponse); i { case 0: return &v.state case 1: @@ -4222,7 +4221,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentInfoResponse_Data); i { + switch v := v.(*FreshmanRoommate); i { case 0: return &v.state case 1: diff --git a/campusapis/staff/v1/campus.proto b/campusapis/staff/v1/campus.proto index 38ea608..cd0a61b 100644 --- a/campusapis/staff/v1/campus.proto +++ b/campusapis/staff/v1/campus.proto @@ -145,19 +145,20 @@ service CampusService { message GetPersonInfoResponse { uint32 error = 1; string msg = 2; - Data data = 3; - message Data { - //学工号 - string staffId = 1; - //姓名 - string staffName = 2; - //人员状态 - string staffState = 3; - //人员类型 - string staffType = 4; - //学院代码 - string unitCode = 5; - } + PersonInfo data = 3; +} + +message PersonInfo { + //学工号 + string staffId = 1; + //姓名 + string staffName = 2; + //人员状态 + string staffState = 3; + //人员类型 + string staffType = 4; + //学院代码 + string unitCode = 5; } message GetStudentRewardsRequest { @@ -193,27 +194,28 @@ message SemesterRequest { message GetStudentInfoResponse { uint32 error = 1; string msg = 2; - Data data = 3; - message Data { - //学号 - string staffId = 1; - //学生姓名 - string staffName = 2; - //学生班级号 - string classId = 3; - //学生学院编号 - string unitId = 4; - //学生学院名称 - string unitName = 5; - //学生专业编号 - string majorId = 6; - //学生专业名称 - string majorName = 7; - //学生辅导员工号 - string teacherId = 8; - //学生辅导员姓名 - string teacherName = 9; - } + StudentInfo data = 3; +} + +message StudentInfo { + //学号 + string staffId = 1; + //学生姓名 + string staffName = 2; + //学生班级号 + string classId = 3; + //学生学院编号 + string unitId = 4; + //学生学院名称 + string unitName = 5; + //学生专业编号 + string majorId = 6; + //学生专业名称 + string majorName = 7; + //学生辅导员工号 + string teacherId = 8; + //学生辅导员姓名 + string teacherName = 9; } //查询贫困生信息返回体 @@ -428,7 +430,7 @@ message PostStudentGateAccessResponse { } // 留校生信息查询-返回体 -message GetStudentStaySchoolInfoResponse { +message GetStudentStaySchoolInfoResponse { uint32 error = 1; string msg = 2; StudentStaySchoolInfo data = 3; @@ -598,4 +600,4 @@ message FreshmanRoommate { string staffName = 1; string qq = 2; string phone = 3; -} \ No newline at end of file +} diff --git a/campusapis/teaching/v1/teaching.pb.go b/campusapis/teaching/v1/teaching.pb.go index b49cd6e..1fdccf6 100644 --- a/campusapis/teaching/v1/teaching.pb.go +++ b/campusapis/teaching/v1/teaching.pb.go @@ -1340,55 +1340,6 @@ func (x *GetUnusedClassroomsResponse) GetData() []*Classroom { return nil } -// ClassroomsResponse 教室查询返回体 -type ClassroomsResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // 教室列表 - Items []*Classroom `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` -} - -func (x *ClassroomsResponse) Reset() { - *x = ClassroomsResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *ClassroomsResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*ClassroomsResponse) ProtoMessage() {} - -func (x *ClassroomsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use ClassroomsResponse.ProtoReflect.Descriptor instead. -func (*ClassroomsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{17} -} - -func (x *ClassroomsResponse) GetItems() []*Classroom { - if x != nil { - return x.Items - } - return nil -} - // 教室信息 type Classroom struct { state protoimpl.MessageState @@ -1412,7 +1363,7 @@ type Classroom struct { func (x *Classroom) Reset() { *x = Classroom{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[18] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1425,7 +1376,7 @@ func (x *Classroom) String() string { func (*Classroom) ProtoMessage() {} func (x *Classroom) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[18] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1438,7 +1389,7 @@ func (x *Classroom) ProtoReflect() protoreflect.Message { // Deprecated: Use Classroom.ProtoReflect.Descriptor instead. func (*Classroom) Descriptor() ([]byte, []int) { - return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{18} + return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{17} } func (x *Classroom) GetSemester() int32 { @@ -1489,14 +1440,16 @@ type GetClassroomUsagesResponse struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // 教室使用情况列表 - Items []*GetClassroomUsagesResponse_Nested `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Data []*ClassroomUsage `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetClassroomUsagesResponse) Reset() { *x = GetClassroomUsagesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[19] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1509,7 +1462,7 @@ func (x *GetClassroomUsagesResponse) String() string { func (*GetClassroomUsagesResponse) ProtoMessage() {} func (x *GetClassroomUsagesResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[19] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1522,16 +1475,133 @@ func (x *GetClassroomUsagesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetClassroomUsagesResponse.ProtoReflect.Descriptor instead. func (*GetClassroomUsagesResponse) Descriptor() ([]byte, []int) { + return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{18} +} + +func (x *GetClassroomUsagesResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetClassroomUsagesResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetClassroomUsagesResponse) GetData() []*ClassroomUsage { + if x != nil { + return x.Data + } + return nil +} + +// 教室使用情况 +type ClassroomUsage struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 教室信息 + Classroom *Classroom `protobuf:"bytes,1,opt,name=classroom,proto3" json:"classroom,omitempty"` + // 星期 + Weekday int32 `protobuf:"varint,2,opt,name=weekday,proto3" json:"weekday,omitempty"` + // 周次列表 + Week []int32 `protobuf:"varint,3,rep,packed,name=week,proto3" json:"week,omitempty"` + // 节次列表 + Section []int32 `protobuf:"varint,4,rep,packed,name=Section,proto3" json:"Section,omitempty"` + // 课程内部ID + ClassID string `protobuf:"bytes,5,opt,name=ClassID,proto3" json:"ClassID,omitempty"` + // 课程号 + CourseCode string `protobuf:"bytes,6,opt,name=CourseCode,proto3" json:"CourseCode,omitempty"` + // 课程名 + CourseName string `protobuf:"bytes,7,opt,name=CourseName,proto3" json:"CourseName,omitempty"` +} + +func (x *ClassroomUsage) Reset() { + *x = ClassroomUsage{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ClassroomUsage) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ClassroomUsage) ProtoMessage() {} + +func (x *ClassroomUsage) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ClassroomUsage.ProtoReflect.Descriptor instead. +func (*ClassroomUsage) Descriptor() ([]byte, []int) { return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{19} } -func (x *GetClassroomUsagesResponse) GetItems() []*GetClassroomUsagesResponse_Nested { +func (x *ClassroomUsage) GetClassroom() *Classroom { if x != nil { - return x.Items + return x.Classroom } return nil } +func (x *ClassroomUsage) GetWeekday() int32 { + if x != nil { + return x.Weekday + } + return 0 +} + +func (x *ClassroomUsage) GetWeek() []int32 { + if x != nil { + return x.Week + } + return nil +} + +func (x *ClassroomUsage) GetSection() []int32 { + if x != nil { + return x.Section + } + return nil +} + +func (x *ClassroomUsage) GetClassID() string { + if x != nil { + return x.ClassID + } + return "" +} + +func (x *ClassroomUsage) GetCourseCode() string { + if x != nil { + return x.CourseCode + } + return "" +} + +func (x *ClassroomUsage) GetCourseName() string { + if x != nil { + return x.CourseName + } + return "" +} + //人员信息 type ScheduleResponseCourse_StaffInfo struct { state protoimpl.MessageState @@ -1955,109 +2025,6 @@ func (x *GetScheduleNowV2Response_Data) GetTomorrow() []*ScheduleResponseCourse return nil } -// 内嵌信息 -type GetClassroomUsagesResponse_Nested struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - // 教室信息 - Classroom *Classroom `protobuf:"bytes,1,opt,name=classroom,proto3" json:"classroom,omitempty"` - // 星期 - Weekday int32 `protobuf:"varint,2,opt,name=weekday,proto3" json:"weekday,omitempty"` - // 周次列表 - Week []int32 `protobuf:"varint,3,rep,packed,name=week,proto3" json:"week,omitempty"` - // 节次列表 - Section []int32 `protobuf:"varint,4,rep,packed,name=Section,proto3" json:"Section,omitempty"` - // 课程内部ID - ClassID string `protobuf:"bytes,5,opt,name=ClassID,proto3" json:"ClassID,omitempty"` - // 课程号 - CourseCode string `protobuf:"bytes,6,opt,name=CourseCode,proto3" json:"CourseCode,omitempty"` - // 课程名 - CourseName string `protobuf:"bytes,7,opt,name=CourseName,proto3" json:"CourseName,omitempty"` -} - -func (x *GetClassroomUsagesResponse_Nested) Reset() { - *x = GetClassroomUsagesResponse_Nested{} - if protoimpl.UnsafeEnabled { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetClassroomUsagesResponse_Nested) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetClassroomUsagesResponse_Nested) ProtoMessage() {} - -func (x *GetClassroomUsagesResponse_Nested) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetClassroomUsagesResponse_Nested.ProtoReflect.Descriptor instead. -func (*GetClassroomUsagesResponse_Nested) Descriptor() ([]byte, []int) { - return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{19, 0} -} - -func (x *GetClassroomUsagesResponse_Nested) GetClassroom() *Classroom { - if x != nil { - return x.Classroom - } - return nil -} - -func (x *GetClassroomUsagesResponse_Nested) GetWeekday() int32 { - if x != nil { - return x.Weekday - } - return 0 -} - -func (x *GetClassroomUsagesResponse_Nested) GetWeek() []int32 { - if x != nil { - return x.Week - } - return nil -} - -func (x *GetClassroomUsagesResponse_Nested) GetSection() []int32 { - if x != nil { - return x.Section - } - return nil -} - -func (x *GetClassroomUsagesResponse_Nested) GetClassID() string { - if x != nil { - return x.ClassID - } - return "" -} - -func (x *GetClassroomUsagesResponse_Nested) GetCourseCode() string { - if x != nil { - return x.CourseCode - } - return "" -} - -func (x *GetClassroomUsagesResponse_Nested) GetCourseName() string { - if x != nil { - return x.CourseName - } - return "" -} - var File_campusapis_teaching_v1_teaching_proto protoreflect.FileDescriptor var file_campusapis_teaching_v1_teaching_proto_rawDesc = []byte{ @@ -2340,153 +2307,150 @@ var file_campusapis_teaching_v1_teaching_proto_rawDesc = []byte{ 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x4d, 0x0a, 0x12, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, - 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, 0x05, 0x69, 0x74, - 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, - 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x05, 0x69, 0x74, - 0x65, 0x6d, 0x73, 0x22, 0xcf, 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, - 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, - 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1e, 0x0a, - 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, - 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x44, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x49, - 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, - 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xdb, 0x02, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x39, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0xeb, 0x01, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, - 0x12, 0x3f, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, - 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x77, - 0x65, 0x65, 0x6b, 0x18, 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x77, 0x65, 0x65, 0x6b, 0x12, - 0x18, 0x0a, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, - 0x52, 0x07, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6c, 0x61, - 0x73, 0x73, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6c, 0x61, 0x73, - 0x73, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x32, 0xa8, 0x09, 0x0a, 0x0f, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb3, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x64, 0x61, 0x74, 0x61, 0x22, 0xcf, 0x01, 0x0a, 0x09, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, + 0x6f, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1e, + 0x0a, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, + 0x0a, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, + 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3a, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf3, 0x01, 0x0a, 0x0e, 0x43, 0x6c, + 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x12, 0x3f, 0x0a, 0x09, + 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, + 0x6f, 0x6d, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, + 0x07, 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x77, 0x65, 0x65, 0x6b, 0x64, 0x61, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x77, 0x65, 0x65, 0x6b, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x05, 0x52, 0x04, 0x77, 0x65, 0x65, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x53, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x03, 0x28, 0x05, 0x52, 0x07, 0x53, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x32, + 0xa8, 0x09, 0x0a, 0x0f, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0xb3, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x4b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x45, 0x12, 0x15, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5a, - 0x14, 0x12, 0x12, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x94, 0x01, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, - 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x4b, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x45, 0x12, 0x15, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5a, 0x14, 0x12, 0x12, 0x2f, + 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x32, + 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x94, 0x01, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, 0x12, 0x19, 0x2f, 0x74, + 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x77, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x77, + 0x12, 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x4e, 0x6f, 0x77, 0x56, 0x32, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x4e, 0x6f, 0x77, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x1c, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x76, + 0x32, 0x2f, 0x6e, 0x6f, 0x77, 0x5a, 0x1a, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, + 0x77, 0x12, 0x7a, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x34, - 0x12, 0x19, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x2f, 0x6e, 0x6f, 0x77, 0x5a, 0x17, 0x12, 0x15, 0x2f, - 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x2f, 0x6e, 0x6f, 0x77, 0x12, 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, 0x56, 0x32, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x4e, 0x6f, 0x77, 0x56, 0x32, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x40, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3a, 0x12, 0x1c, 0x2f, 0x74, 0x65, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x2f, 0x76, 0x32, 0x2f, 0x6e, 0x6f, 0x77, 0x5a, 0x1a, 0x12, 0x18, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x76, 0x32, 0x2f, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x2f, 0x6e, 0x6f, 0x77, 0x12, 0x7a, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, - 0x61, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa3, 0x01, + 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x12, + 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, + 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, + 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, + 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x35, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x16, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, + 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x5a, 0x15, 0x12, 0x13, + 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, + 0x6f, 0x6f, 0x6d, 0x12, 0xbe, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, + 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, + 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, + 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x1c, 0x2f, 0x74, 0x65, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, + 0x6d, 0x2f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5a, 0x1b, 0x12, 0x19, 0x2f, 0x74, 0x65, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x75, + 0x73, 0x61, 0x67, 0x65, 0x12, 0xc3, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x75, 0x73, + 0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x12, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, - 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x6c, 0x6f, 0x62, 0x61, 0x6c, 0x53, - 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0xa3, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, - 0x6f, 0x6d, 0x73, 0x12, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x35, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2f, 0x12, 0x16, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, - 0x5a, 0x15, 0x12, 0x13, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0xbe, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x12, 0x31, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, - 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, 0x61, 0x73, 0x73, - 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x6c, - 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x55, 0x73, 0x61, 0x67, 0x65, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x41, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3b, 0x12, 0x1c, 0x2f, - 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x5a, 0x1b, 0x12, 0x19, 0x2f, - 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, - 0x6f, 0x6d, 0x2f, 0x75, 0x73, 0x61, 0x67, 0x65, 0x12, 0xc3, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, - 0x12, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, + 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, + 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x6e, 0x75, - 0x73, 0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3d, 0x12, 0x1d, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, - 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, - 0x5a, 0x1c, 0x12, 0x1a, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x42, 0xf4, - 0x03, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x54, - 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, - 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, - 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x76, - 0x31, 0xa2, 0x02, 0x03, 0x43, 0x54, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, - 0xca, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x54, 0x65, - 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5c, - 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x18, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x54, 0x65, 0x61, - 0x63, 0x68, 0x69, 0x6e, 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x88, 0x02, 0x12, 0xde, 0x01, - 0x0a, 0x0c, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x12, 0x0c, - 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x22, 0x5b, 0x0a, 0x1b, - 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x20, 0x73, 0x61, 0x6c, 0x6d, 0x6f, 0x6e, 0x20, 0x62, - 0x61, 0x73, 0x65, 0x20, 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2a, 0x68, 0x74, 0x74, - 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x73, 0x61, 0x6c, 0x6d, 0x6f, 0x6e, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x62, 0x61, 0x73, 0x65, 0x1a, 0x10, 0x6e, 0x6f, 0x6e, 0x65, 0x40, 0x65, 0x78, - 0x61, 0x6d, 0x70, 0x6c, 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2a, 0x5e, 0x0a, 0x14, 0x42, 0x53, 0x44, - 0x20, 0x33, 0x2d, 0x43, 0x6c, 0x61, 0x75, 0x73, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, - 0x65, 0x12, 0x46, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x65, 0x63, 0x6f, 0x73, 0x79, - 0x73, 0x74, 0x65, 0x6d, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x2f, 0x62, 0x6c, 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x4c, 0x49, - 0x43, 0x45, 0x4e, 0x53, 0x45, 0x2e, 0x74, 0x78, 0x74, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x2a, 0x01, - 0x02, 0x32, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, - 0x73, 0x6f, 0x6e, 0x3a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x65, 0x64, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 0x12, 0x1d, 0x2f, + 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x2f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x5a, 0x1c, 0x12, 0x1a, + 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, + 0x6f, 0x6f, 0x6d, 0x2f, 0x75, 0x6e, 0x75, 0x73, 0x65, 0x64, 0x42, 0xf4, 0x03, 0x0a, 0x1a, 0x63, + 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x65, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x54, 0x65, 0x61, 0x63, 0x68, + 0x69, 0x6e, 0x67, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x41, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, + 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2f, + 0x76, 0x31, 0x3b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x76, 0x31, 0xa2, 0x02, 0x03, + 0x43, 0x54, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x43, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, + 0x6e, 0x67, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x5c, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x5c, 0x56, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x43, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x54, 0x65, 0x61, 0x63, 0x68, 0x69, 0x6e, + 0x67, 0x3a, 0x3a, 0x56, 0x31, 0x92, 0x41, 0x88, 0x02, 0x12, 0xde, 0x01, 0x0a, 0x0c, 0x54, 0x65, + 0x61, 0x63, 0x68, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x12, 0x0c, 0x54, 0x65, 0x61, 0x63, + 0x68, 0x69, 0x6e, 0x67, 0x20, 0x41, 0x50, 0x49, 0x22, 0x5b, 0x0a, 0x1b, 0x68, 0x64, 0x75, 0x68, + 0x65, 0x6c, 0x70, 0x20, 0x73, 0x61, 0x6c, 0x6d, 0x6f, 0x6e, 0x20, 0x62, 0x61, 0x73, 0x65, 0x20, + 0x70, 0x72, 0x6f, 0x6a, 0x65, 0x63, 0x74, 0x12, 0x2a, 0x68, 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, + 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, + 0x65, 0x6c, 0x70, 0x2f, 0x73, 0x61, 0x6c, 0x6d, 0x6f, 0x6e, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x62, + 0x61, 0x73, 0x65, 0x1a, 0x10, 0x6e, 0x6f, 0x6e, 0x65, 0x40, 0x65, 0x78, 0x61, 0x6d, 0x70, 0x6c, + 0x65, 0x2e, 0x63, 0x6f, 0x6d, 0x2a, 0x5e, 0x0a, 0x14, 0x42, 0x53, 0x44, 0x20, 0x33, 0x2d, 0x43, + 0x6c, 0x61, 0x75, 0x73, 0x65, 0x20, 0x4c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x68, + 0x74, 0x74, 0x70, 0x73, 0x3a, 0x2f, 0x2f, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x65, 0x63, 0x6f, 0x73, 0x79, 0x73, 0x74, 0x65, 0x6d, + 0x2f, 0x67, 0x72, 0x70, 0x63, 0x2d, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x2f, 0x62, 0x6c, + 0x6f, 0x62, 0x2f, 0x6d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x4c, 0x49, 0x43, 0x45, 0x4e, 0x53, + 0x45, 0x2e, 0x74, 0x78, 0x74, 0x32, 0x03, 0x30, 0x2e, 0x31, 0x2a, 0x01, 0x02, 0x32, 0x10, 0x61, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, 0x6e, 0x3a, + 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2f, 0x6a, 0x73, 0x6f, + 0x6e, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2501,7 +2465,7 @@ func file_campusapis_teaching_v1_teaching_proto_rawDescGZIP() []byte { return file_campusapis_teaching_v1_teaching_proto_rawDescData } -var file_campusapis_teaching_v1_teaching_proto_msgTypes = make([]protoimpl.MessageInfo, 28) +var file_campusapis_teaching_v1_teaching_proto_msgTypes = make([]protoimpl.MessageInfo, 27) var file_campusapis_teaching_v1_teaching_proto_goTypes = []interface{}{ (*GetScheduleRequest)(nil), // 0: campusapis.teaching.v1.GetScheduleRequest (*GetScheduleResponse)(nil), // 1: campusapis.teaching.v1.GetScheduleResponse @@ -2520,9 +2484,9 @@ var file_campusapis_teaching_v1_teaching_proto_goTypes = []interface{}{ (*GetUnusedClassroomsRequest)(nil), // 14: campusapis.teaching.v1.GetUnusedClassroomsRequest (*GetClassroomsResponse)(nil), // 15: campusapis.teaching.v1.GetClassroomsResponse (*GetUnusedClassroomsResponse)(nil), // 16: campusapis.teaching.v1.GetUnusedClassroomsResponse - (*ClassroomsResponse)(nil), // 17: campusapis.teaching.v1.ClassroomsResponse - (*Classroom)(nil), // 18: campusapis.teaching.v1.Classroom - (*GetClassroomUsagesResponse)(nil), // 19: campusapis.teaching.v1.GetClassroomUsagesResponse + (*Classroom)(nil), // 17: campusapis.teaching.v1.Classroom + (*GetClassroomUsagesResponse)(nil), // 18: campusapis.teaching.v1.GetClassroomUsagesResponse + (*ClassroomUsage)(nil), // 19: campusapis.teaching.v1.ClassroomUsage (*ScheduleResponseCourse_StaffInfo)(nil), // 20: campusapis.teaching.v1.ScheduleResponseCourse.StaffInfo (*ScheduleResponseCourse_ScheduleInfo)(nil), // 21: campusapis.teaching.v1.ScheduleResponseCourse.ScheduleInfo nil, // 22: campusapis.teaching.v1.Courses.ItemsEntry @@ -2530,29 +2494,28 @@ var file_campusapis_teaching_v1_teaching_proto_goTypes = []interface{}{ (*GetScheduleNowResponse_Data)(nil), // 24: campusapis.teaching.v1.GetScheduleNowResponse.Data (*GetScheduleNowResponse_Course)(nil), // 25: campusapis.teaching.v1.GetScheduleNowResponse.Course (*GetScheduleNowV2Response_Data)(nil), // 26: campusapis.teaching.v1.GetScheduleNowV2Response.Data - (*GetClassroomUsagesResponse_Nested)(nil), // 27: campusapis.teaching.v1.GetClassroomUsagesResponse.Nested - (*schoolTime.SchoolYear)(nil), // 28: campusapis.schoolTime.SchoolYear - (*schoolTime.Semester)(nil), // 29: campusapis.schoolTime.Semester - (*staff.InfoMapList)(nil), // 30: campusapis.staff.InfoMapList - (*emptypb.Empty)(nil), // 31: google.protobuf.Empty + (*schoolTime.SchoolYear)(nil), // 27: campusapis.schoolTime.SchoolYear + (*schoolTime.Semester)(nil), // 28: campusapis.schoolTime.Semester + (*staff.InfoMapList)(nil), // 29: campusapis.staff.InfoMapList + (*emptypb.Empty)(nil), // 30: google.protobuf.Empty } var file_campusapis_teaching_v1_teaching_proto_depIdxs = []int32{ 2, // 0: campusapis.teaching.v1.GetScheduleResponse.data:type_name -> campusapis.teaching.v1.ScheduleResponseCourse 21, // 1: campusapis.teaching.v1.ScheduleResponseCourse.Schedule:type_name -> campusapis.teaching.v1.ScheduleResponseCourse.ScheduleInfo 22, // 2: campusapis.teaching.v1.Courses.Items:type_name -> campusapis.teaching.v1.Courses.ItemsEntry - 28, // 3: campusapis.teaching.v1.CourseItem.SchoolYear:type_name -> campusapis.schoolTime.SchoolYear - 29, // 4: campusapis.teaching.v1.CourseItem.Semester:type_name -> campusapis.schoolTime.Semester + 27, // 3: campusapis.teaching.v1.CourseItem.SchoolYear:type_name -> campusapis.schoolTime.SchoolYear + 28, // 4: campusapis.teaching.v1.CourseItem.Semester:type_name -> campusapis.schoolTime.Semester 5, // 5: campusapis.teaching.v1.CourseItem.Schedule:type_name -> campusapis.teaching.v1.Schedule 23, // 6: campusapis.teaching.v1.Schedule.Items:type_name -> campusapis.teaching.v1.Schedule.ItemsEntry - 30, // 7: campusapis.teaching.v1.ScheduleItem.Teachers:type_name -> campusapis.staff.InfoMapList - 30, // 8: campusapis.teaching.v1.ScheduleItem.Students:type_name -> campusapis.staff.InfoMapList + 29, // 7: campusapis.teaching.v1.ScheduleItem.Teachers:type_name -> campusapis.staff.InfoMapList + 29, // 8: campusapis.teaching.v1.ScheduleItem.Students:type_name -> campusapis.staff.InfoMapList 24, // 9: campusapis.teaching.v1.GetScheduleNowResponse.data:type_name -> campusapis.teaching.v1.GetScheduleNowResponse.Data 26, // 10: campusapis.teaching.v1.GetScheduleNowV2Response.data:type_name -> campusapis.teaching.v1.GetScheduleNowV2Response.Data 2, // 11: campusapis.teaching.v1.GetGlobalScheduleResponse.data:type_name -> campusapis.teaching.v1.ScheduleResponseCourse - 18, // 12: campusapis.teaching.v1.GetClassroomsResponse.data:type_name -> campusapis.teaching.v1.Classroom - 18, // 13: campusapis.teaching.v1.GetUnusedClassroomsResponse.data:type_name -> campusapis.teaching.v1.Classroom - 18, // 14: campusapis.teaching.v1.ClassroomsResponse.items:type_name -> campusapis.teaching.v1.Classroom - 27, // 15: campusapis.teaching.v1.GetClassroomUsagesResponse.items:type_name -> campusapis.teaching.v1.GetClassroomUsagesResponse.Nested + 17, // 12: campusapis.teaching.v1.GetClassroomsResponse.data:type_name -> campusapis.teaching.v1.Classroom + 17, // 13: campusapis.teaching.v1.GetUnusedClassroomsResponse.data:type_name -> campusapis.teaching.v1.Classroom + 19, // 14: campusapis.teaching.v1.GetClassroomUsagesResponse.data:type_name -> campusapis.teaching.v1.ClassroomUsage + 17, // 15: campusapis.teaching.v1.ClassroomUsage.classroom:type_name -> campusapis.teaching.v1.Classroom 20, // 16: campusapis.teaching.v1.ScheduleResponseCourse.ScheduleInfo.Teachers:type_name -> campusapis.teaching.v1.ScheduleResponseCourse.StaffInfo 20, // 17: campusapis.teaching.v1.ScheduleResponseCourse.ScheduleInfo.Students:type_name -> campusapis.teaching.v1.ScheduleResponseCourse.StaffInfo 4, // 18: campusapis.teaching.v1.Courses.ItemsEntry.value:type_name -> campusapis.teaching.v1.CourseItem @@ -2561,26 +2524,25 @@ var file_campusapis_teaching_v1_teaching_proto_depIdxs = []int32{ 25, // 21: campusapis.teaching.v1.GetScheduleNowResponse.Data.tomorrow:type_name -> campusapis.teaching.v1.GetScheduleNowResponse.Course 2, // 22: campusapis.teaching.v1.GetScheduleNowV2Response.Data.Today:type_name -> campusapis.teaching.v1.ScheduleResponseCourse 2, // 23: campusapis.teaching.v1.GetScheduleNowV2Response.Data.Tomorrow:type_name -> campusapis.teaching.v1.ScheduleResponseCourse - 18, // 24: campusapis.teaching.v1.GetClassroomUsagesResponse.Nested.classroom:type_name -> campusapis.teaching.v1.Classroom - 0, // 25: campusapis.teaching.v1.TeachingService.GetSchedule:input_type -> campusapis.teaching.v1.GetScheduleRequest - 31, // 26: campusapis.teaching.v1.TeachingService.GetScheduleNow:input_type -> google.protobuf.Empty - 31, // 27: campusapis.teaching.v1.TeachingService.GetScheduleNowV2:input_type -> google.protobuf.Empty - 10, // 28: campusapis.teaching.v1.TeachingService.GetGlobalSchedule:input_type -> campusapis.teaching.v1.GetGlobalScheduleRequest - 12, // 29: campusapis.teaching.v1.TeachingService.GetClassrooms:input_type -> campusapis.teaching.v1.GetClassroomsRequest - 13, // 30: campusapis.teaching.v1.TeachingService.GetClassroomUsages:input_type -> campusapis.teaching.v1.GetClassroomUsagesRequest - 14, // 31: campusapis.teaching.v1.TeachingService.GetUnusedClassrooms:input_type -> campusapis.teaching.v1.GetUnusedClassroomsRequest - 1, // 32: campusapis.teaching.v1.TeachingService.GetSchedule:output_type -> campusapis.teaching.v1.GetScheduleResponse - 8, // 33: campusapis.teaching.v1.TeachingService.GetScheduleNow:output_type -> campusapis.teaching.v1.GetScheduleNowResponse - 9, // 34: campusapis.teaching.v1.TeachingService.GetScheduleNowV2:output_type -> campusapis.teaching.v1.GetScheduleNowV2Response - 11, // 35: campusapis.teaching.v1.TeachingService.GetGlobalSchedule:output_type -> campusapis.teaching.v1.GetGlobalScheduleResponse - 15, // 36: campusapis.teaching.v1.TeachingService.GetClassrooms:output_type -> campusapis.teaching.v1.GetClassroomsResponse - 19, // 37: campusapis.teaching.v1.TeachingService.GetClassroomUsages:output_type -> campusapis.teaching.v1.GetClassroomUsagesResponse - 16, // 38: campusapis.teaching.v1.TeachingService.GetUnusedClassrooms:output_type -> campusapis.teaching.v1.GetUnusedClassroomsResponse - 32, // [32:39] is the sub-list for method output_type - 25, // [25:32] is the sub-list for method input_type - 25, // [25:25] is the sub-list for extension type_name - 25, // [25:25] is the sub-list for extension extendee - 0, // [0:25] is the sub-list for field type_name + 0, // 24: campusapis.teaching.v1.TeachingService.GetSchedule:input_type -> campusapis.teaching.v1.GetScheduleRequest + 30, // 25: campusapis.teaching.v1.TeachingService.GetScheduleNow:input_type -> google.protobuf.Empty + 30, // 26: campusapis.teaching.v1.TeachingService.GetScheduleNowV2:input_type -> google.protobuf.Empty + 10, // 27: campusapis.teaching.v1.TeachingService.GetGlobalSchedule:input_type -> campusapis.teaching.v1.GetGlobalScheduleRequest + 12, // 28: campusapis.teaching.v1.TeachingService.GetClassrooms:input_type -> campusapis.teaching.v1.GetClassroomsRequest + 13, // 29: campusapis.teaching.v1.TeachingService.GetClassroomUsages:input_type -> campusapis.teaching.v1.GetClassroomUsagesRequest + 14, // 30: campusapis.teaching.v1.TeachingService.GetUnusedClassrooms:input_type -> campusapis.teaching.v1.GetUnusedClassroomsRequest + 1, // 31: campusapis.teaching.v1.TeachingService.GetSchedule:output_type -> campusapis.teaching.v1.GetScheduleResponse + 8, // 32: campusapis.teaching.v1.TeachingService.GetScheduleNow:output_type -> campusapis.teaching.v1.GetScheduleNowResponse + 9, // 33: campusapis.teaching.v1.TeachingService.GetScheduleNowV2:output_type -> campusapis.teaching.v1.GetScheduleNowV2Response + 11, // 34: campusapis.teaching.v1.TeachingService.GetGlobalSchedule:output_type -> campusapis.teaching.v1.GetGlobalScheduleResponse + 15, // 35: campusapis.teaching.v1.TeachingService.GetClassrooms:output_type -> campusapis.teaching.v1.GetClassroomsResponse + 18, // 36: campusapis.teaching.v1.TeachingService.GetClassroomUsages:output_type -> campusapis.teaching.v1.GetClassroomUsagesResponse + 16, // 37: campusapis.teaching.v1.TeachingService.GetUnusedClassrooms:output_type -> campusapis.teaching.v1.GetUnusedClassroomsResponse + 31, // [31:38] is the sub-list for method output_type + 24, // [24:31] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name } func init() { file_campusapis_teaching_v1_teaching_proto_init() } @@ -2794,7 +2756,7 @@ func file_campusapis_teaching_v1_teaching_proto_init() { } } file_campusapis_teaching_v1_teaching_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ClassroomsResponse); i { + switch v := v.(*Classroom); i { case 0: return &v.state case 1: @@ -2806,7 +2768,7 @@ func file_campusapis_teaching_v1_teaching_proto_init() { } } file_campusapis_teaching_v1_teaching_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Classroom); i { + switch v := v.(*GetClassroomUsagesResponse); i { case 0: return &v.state case 1: @@ -2818,7 +2780,7 @@ func file_campusapis_teaching_v1_teaching_proto_init() { } } file_campusapis_teaching_v1_teaching_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetClassroomUsagesResponse); i { + switch v := v.(*ClassroomUsage); i { case 0: return &v.state case 1: @@ -2889,18 +2851,6 @@ func file_campusapis_teaching_v1_teaching_proto_init() { return nil } } - file_campusapis_teaching_v1_teaching_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetClassroomUsagesResponse_Nested); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } } type x struct{} out := protoimpl.TypeBuilder{ @@ -2908,7 +2858,7 @@ func file_campusapis_teaching_v1_teaching_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_campusapis_teaching_v1_teaching_proto_rawDesc, NumEnums: 0, - NumMessages: 28, + NumMessages: 27, NumExtensions: 0, NumServices: 1, }, diff --git a/campusapis/teaching/v1/teaching.proto b/campusapis/teaching/v1/teaching.proto index c46d99d..fd300dc 100644 --- a/campusapis/teaching/v1/teaching.proto +++ b/campusapis/teaching/v1/teaching.proto @@ -8,6 +8,7 @@ import "google/api/annotations.proto"; import "google/protobuf/empty.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; +option go_package = "./campusapis/teaching/v1"; option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { info: { title: "Teaching API"; @@ -27,7 +28,6 @@ option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { consumes: "application/json"; produces: "application/json"; }; -option go_package = "./campusapis/teaching/v1"; service TeachingService { // 获取学生/教师课程表 @@ -382,12 +382,6 @@ message GetUnusedClassroomsResponse { repeated Classroom data = 3; } -// ClassroomsResponse 教室查询返回体 -message ClassroomsResponse { - // 教室列表 - repeated Classroom items = 1; -} - // 教室信息 message Classroom { // 学期 @@ -406,23 +400,26 @@ message Classroom { // GetClassroomUsagesResponse 教室使用情况返回体 message GetClassroomUsagesResponse { - // 内嵌信息 - message Nested { - // 教室信息 - Classroom classroom = 1; - // 星期 - int32 weekday = 2; - // 周次列表 - repeated int32 week = 3; - // 节次列表 - repeated int32 Section = 4; - // 课程内部ID - string ClassID = 5; - // 课程号 - string CourseCode = 6; - // 课程名 - string CourseName = 7; - } + uint32 error = 1; + string msg = 2; // 教室使用情况列表 - repeated Nested items = 1; + repeated ClassroomUsage data = 3; +} + +// 教室使用情况 +message ClassroomUsage { + // 教室信息 + Classroom classroom = 1; + // 星期 + int32 weekday = 2; + // 周次列表 + repeated int32 week = 3; + // 节次列表 + repeated int32 Section = 4; + // 课程内部ID + string ClassID = 5; + // 课程号 + string CourseCode = 6; + // 课程名 + string CourseName = 7; } diff --git a/docs/swagger/campusapis/card/v1/card.swagger.json b/docs/swagger/campusapis/card/v1/card.swagger.json index 8f22a83..d5267de 100644 --- a/docs/swagger/campusapis/card/v1/card.swagger.json +++ b/docs/swagger/campusapis/card/v1/card.swagger.json @@ -156,23 +156,6 @@ } }, "definitions": { - "GetCardInfoResponseData": { - "type": "object", - "properties": { - "remaining": { - "type": "number", - "format": "float", - "title": "余额,精确到小数点后两位,单位元" - }, - "flow": { - "type": "array", - "items": { - "$ref": "#/definitions/v1Consumption" - }, - "title": "交易记录" - } - } - }, "protobufAny": { "type": "object", "properties": { @@ -202,6 +185,23 @@ } } }, + "v1CardInfo": { + "type": "object", + "properties": { + "remaining": { + "type": "number", + "format": "float", + "title": "余额,精确到小数点后两位,单位元" + }, + "flow": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Consumption" + }, + "title": "交易记录" + } + } + }, "v1Consumption": { "type": "object", "properties": { @@ -280,7 +280,7 @@ "type": "string" }, "data": { - "$ref": "#/definitions/GetCardInfoResponseData" + "$ref": "#/definitions/v1CardInfo" } } } diff --git a/docs/swagger/campusapis/schoolTime/v1/schoolTime.swagger.json b/docs/swagger/campusapis/schoolTime/v1/schoolTime.swagger.json index 7c73687..4260cd1 100644 --- a/docs/swagger/campusapis/schoolTime/v1/schoolTime.swagger.json +++ b/docs/swagger/campusapis/schoolTime/v1/schoolTime.swagger.json @@ -138,33 +138,6 @@ } }, "definitions": { - "GetSchoolTimeResponseData": { - "type": "object", - "properties": { - "schoolYear": { - "type": "string" - }, - "section": { - "type": "integer", - "format": "int32" - }, - "semester": { - "type": "string" - }, - "timeStamp": { - "type": "integer", - "format": "int64" - }, - "weekDayNow": { - "type": "integer", - "format": "int32" - }, - "weekNow": { - "type": "integer", - "format": "int32" - } - } - }, "protobufAny": { "type": "object", "properties": { @@ -203,7 +176,7 @@ "type": "string" }, "data": { - "$ref": "#/definitions/GetSchoolTimeResponseData" + "$ref": "#/definitions/v1SchoolTime" } } }, @@ -220,12 +193,39 @@ "data": { "type": "array", "items": { - "$ref": "#/definitions/v1GetSemesterListResponseSemester" + "$ref": "#/definitions/v1SemesterInfo" } } } }, - "v1GetSemesterListResponseSemester": { + "v1SchoolTime": { + "type": "object", + "properties": { + "schoolYear": { + "type": "string" + }, + "section": { + "type": "integer", + "format": "int32" + }, + "semester": { + "type": "string" + }, + "timeStamp": { + "type": "integer", + "format": "int64" + }, + "weekDayNow": { + "type": "integer", + "format": "int32" + }, + "weekNow": { + "type": "integer", + "format": "int32" + } + } + }, + "v1SemesterInfo": { "type": "object", "properties": { "schoolYear": { diff --git a/docs/swagger/campusapis/staff/v1/campus.swagger.json b/docs/swagger/campusapis/staff/v1/campus.swagger.json index b68e2b2..04b0674 100644 --- a/docs/swagger/campusapis/staff/v1/campus.swagger.json +++ b/docs/swagger/campusapis/staff/v1/campus.swagger.json @@ -914,6 +914,17 @@ } }, "definitions": { + "PostStudentGateAccessResponseData": { + "type": "object", + "properties": { + "done": { + "type": "boolean" + }, + "message": { + "type": "string" + } + } + }, "StudentNeedyInfoNested": { "type": "object", "properties": { @@ -1194,36 +1205,11 @@ "type": "string" }, "data": { - "$ref": "#/definitions/v1GetPersonInfoResponseData" + "$ref": "#/definitions/v1PersonInfo" } }, "title": "查询人员信息返回体" }, - "v1GetPersonInfoResponseData": { - "type": "object", - "properties": { - "staffId": { - "type": "string", - "title": "学工号" - }, - "staffName": { - "type": "string", - "title": "姓名" - }, - "staffState": { - "type": "string", - "title": "人员状态" - }, - "staffType": { - "type": "string", - "title": "人员类型" - }, - "unitCode": { - "type": "string", - "title": "学院代码" - } - } - }, "v1GetStudentBirthdayInfoResponse": { "type": "object", "properties": { @@ -1320,52 +1306,11 @@ "type": "string" }, "data": { - "$ref": "#/definitions/v1GetStudentInfoResponseData" + "$ref": "#/definitions/v1StudentInfo" } }, "title": "GetStudentInfoResponse 查询学生信息返回体" }, - "v1GetStudentInfoResponseData": { - "type": "object", - "properties": { - "staffId": { - "type": "string", - "title": "学号" - }, - "staffName": { - "type": "string", - "title": "学生姓名" - }, - "classId": { - "type": "string", - "title": "学生班级号" - }, - "unitId": { - "type": "string", - "title": "学生学院编号" - }, - "unitName": { - "type": "string", - "title": "学生学院名称" - }, - "majorId": { - "type": "string", - "title": "学生专业编号" - }, - "majorName": { - "type": "string", - "title": "学生专业名称" - }, - "teacherId": { - "type": "string", - "title": "学生辅导员工号" - }, - "teacherName": { - "type": "string", - "title": "学生辅导员姓名" - } - } - }, "v1GetStudentNeedyInfoResponse": { "type": "object", "properties": { @@ -1418,6 +1363,31 @@ }, "title": "留校生信息查询-返回体" }, + "v1PersonInfo": { + "type": "object", + "properties": { + "staffId": { + "type": "string", + "title": "学工号" + }, + "staffName": { + "type": "string", + "title": "姓名" + }, + "staffState": { + "type": "string", + "title": "人员状态" + }, + "staffType": { + "type": "string", + "title": "人员类型" + }, + "unitCode": { + "type": "string", + "title": "学院代码" + } + } + }, "v1PostStudentGateAccessResponse": { "type": "object", "properties": { @@ -1429,22 +1399,11 @@ "type": "string" }, "data": { - "$ref": "#/definitions/v1PostStudentGateAccessResponseData" + "$ref": "#/definitions/PostStudentGateAccessResponseData" } }, "title": "PostStudentGateAccessResponse 推送学生门禁通行信息" }, - "v1PostStudentGateAccessResponseData": { - "type": "object", - "properties": { - "done": { - "type": "boolean" - }, - "message": { - "type": "string" - } - } - }, "v1StudentBirthdayInfo": { "type": "object", "properties": { @@ -1579,6 +1538,47 @@ }, "title": "成绩详情" }, + "v1StudentInfo": { + "type": "object", + "properties": { + "staffId": { + "type": "string", + "title": "学号" + }, + "staffName": { + "type": "string", + "title": "学生姓名" + }, + "classId": { + "type": "string", + "title": "学生班级号" + }, + "unitId": { + "type": "string", + "title": "学生学院编号" + }, + "unitName": { + "type": "string", + "title": "学生学院名称" + }, + "majorId": { + "type": "string", + "title": "学生专业编号" + }, + "majorName": { + "type": "string", + "title": "学生专业名称" + }, + "teacherId": { + "type": "string", + "title": "学生辅导员工号" + }, + "teacherName": { + "type": "string", + "title": "学生辅导员姓名" + } + } + }, "v1StudentNeedyInfo": { "type": "object", "properties": { diff --git a/docs/swagger/campusapis/teaching/v1/teaching.swagger.json b/docs/swagger/campusapis/teaching/v1/teaching.swagger.json index b955b43..305d33d 100644 --- a/docs/swagger/campusapis/teaching/v1/teaching.swagger.json +++ b/docs/swagger/campusapis/teaching/v1/teaching.swagger.json @@ -608,49 +608,6 @@ } }, "definitions": { - "GetClassroomUsagesResponseNested": { - "type": "object", - "properties": { - "classroom": { - "$ref": "#/definitions/v1Classroom", - "title": "教室信息" - }, - "weekday": { - "type": "integer", - "format": "int32", - "title": "星期" - }, - "week": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "title": "周次列表" - }, - "Section": { - "type": "array", - "items": { - "type": "integer", - "format": "int32" - }, - "title": "节次列表" - }, - "ClassID": { - "type": "string", - "title": "课程内部ID" - }, - "CourseCode": { - "type": "string", - "title": "课程号" - }, - "CourseName": { - "type": "string", - "title": "课程名" - } - }, - "title": "内嵌信息" - }, "GetScheduleNowResponseCourse": { "type": "object", "properties": { @@ -813,13 +770,63 @@ }, "title": "教室信息" }, + "v1ClassroomUsage": { + "type": "object", + "properties": { + "classroom": { + "$ref": "#/definitions/v1Classroom", + "title": "教室信息" + }, + "weekday": { + "type": "integer", + "format": "int32", + "title": "星期" + }, + "week": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "title": "周次列表" + }, + "Section": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "title": "节次列表" + }, + "ClassID": { + "type": "string", + "title": "课程内部ID" + }, + "CourseCode": { + "type": "string", + "title": "课程号" + }, + "CourseName": { + "type": "string", + "title": "课程名" + } + }, + "title": "教室使用情况" + }, "v1GetClassroomUsagesResponse": { "type": "object", "properties": { - "items": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { - "$ref": "#/definitions/GetClassroomUsagesResponseNested" + "$ref": "#/definitions/v1ClassroomUsage" }, "title": "教室使用情况列表" } From adb4891ffa70acee4a32292630c5e44844ffe48d Mon Sep 17 00:00:00 2001 From: FDKevin Date: Thu, 2 Jun 2022 01:01:50 +0800 Subject: [PATCH 05/25] updates --- buf.yaml | 2 + campusapis/required.go | 2 +- campusapis/status.go | 2 +- campusapis/status.pb.go | 106 +- campusapis/status.proto | 36 +- .../gatewayapis/auth/v1/auth.swagger.json | 794 +++- gatewayapis/auth/v1/auth.go | 8 +- gatewayapis/auth/v1/auth.pb.go | 3402 +++++++++++++++-- gatewayapis/auth/v1/auth.pb.gw.go | 2058 +++++++++- gatewayapis/auth/v1/auth.proto | 304 +- gatewayapis/auth/v1/auth_grpc.pb.go | 631 ++- gatewayapis/option.pb.go | 100 - gatewayapis/option.proto | 11 - 13 files changed, 6891 insertions(+), 565 deletions(-) delete mode 100644 gatewayapis/option.pb.go delete mode 100644 gatewayapis/option.proto diff --git a/buf.yaml b/buf.yaml index b622aa6..e40ae5e 100644 --- a/buf.yaml +++ b/buf.yaml @@ -12,6 +12,8 @@ lint: - FIELD_LOWER_SNAKE_CASE - PACKAGE_VERSION_SUFFIX - PACKAGE_LOWER_SNAKE_CASE + - ENUM_VALUE_PREFIX + - ENUM_ZERO_VALUE_SUFFIX enum_zero_value_suffix: _UNSPECIFIED rpc_allow_google_protobuf_empty_requests: true rpc_allow_google_protobuf_empty_responses: false diff --git a/campusapis/required.go b/campusapis/required.go index f70a522..350d822 100644 --- a/campusapis/required.go +++ b/campusapis/required.go @@ -44,7 +44,7 @@ func splitrTagToName(tag string) string { func RequireWarped(req any, list ...string) error { if err := Require(req, list...); err != nil { - return Status_STATUS_INVALID_ARGUMENT.With(codes.InvalidArgument, err.Error()) + return Status_INVALID_ARGUMENT.With(codes.InvalidArgument, err.Error()) } return nil } diff --git a/campusapis/status.go b/campusapis/status.go index 006316f..47d23af 100644 --- a/campusapis/status.go +++ b/campusapis/status.go @@ -31,7 +31,7 @@ type Codes struct { func UnwarpCode(code codes.Code) Codes { if code < 10000 { return Codes{ - Status: Status_STATUS_OK, + Status: Status_OK, GrpcCode: code, } } diff --git a/campusapis/status.pb.go b/campusapis/status.pb.go index 6871440..747f429 100644 --- a/campusapis/status.pb.go +++ b/campusapis/status.pb.go @@ -24,48 +24,48 @@ const ( type Status int32 const ( - Status_STATUS_UNSPECIFIED Status = 0 + Status_UNSPECIFIED Status = 0 // 成功 - Status_STATUS_OK Status = 20000 + Status_OK Status = 20000 //通用参数错误 - Status_STATUS_INVALID_ARGUMENT Status = 40000 + Status_INVALID_ARGUMENT Status = 40000 //人员类型参数缺失 - Status_STATUS_STAFF_TYPE_NOT_FOUND Status = 40001 + Status_STAFF_TYPE_NOT_FOUND Status = 40001 //不支持的人员类型 - Status_STATUS_UNSUPPORTED_STAFF_TYPE Status = 40003 + Status_UNSUPPORTED_STAFF_TYPE Status = 40003 //人员工号缺失 - Status_STATUS_STAFF_ID_CANNOT_BE_EMPTY Status = 40004 + Status_STAFF_ID_CANNOT_BE_EMPTY Status = 40004 //通用无法找到 - Status_STATUS_NOT_FOUND Status = 40400 + Status_NOT_FOUND Status = 40400 //未找到人员 - Status_STATUS_STAFF_NOT_FOUND Status = 40401 + Status_STAFF_NOT_FOUND Status = 40401 //服务错误 - Status_STATUS_SERVICE_ERROR Status = 50000 + Status_SERVICE_ERROR Status = 50000 ) // Enum value maps for Status. var ( Status_name = map[int32]string{ - 0: "STATUS_UNSPECIFIED", - 20000: "STATUS_OK", - 40000: "STATUS_INVALID_ARGUMENT", - 40001: "STATUS_STAFF_TYPE_NOT_FOUND", - 40003: "STATUS_UNSUPPORTED_STAFF_TYPE", - 40004: "STATUS_STAFF_ID_CANNOT_BE_EMPTY", - 40400: "STATUS_NOT_FOUND", - 40401: "STATUS_STAFF_NOT_FOUND", - 50000: "STATUS_SERVICE_ERROR", + 0: "UNSPECIFIED", + 20000: "OK", + 40000: "INVALID_ARGUMENT", + 40001: "STAFF_TYPE_NOT_FOUND", + 40003: "UNSUPPORTED_STAFF_TYPE", + 40004: "STAFF_ID_CANNOT_BE_EMPTY", + 40400: "NOT_FOUND", + 40401: "STAFF_NOT_FOUND", + 50000: "SERVICE_ERROR", } Status_value = map[string]int32{ - "STATUS_UNSPECIFIED": 0, - "STATUS_OK": 20000, - "STATUS_INVALID_ARGUMENT": 40000, - "STATUS_STAFF_TYPE_NOT_FOUND": 40001, - "STATUS_UNSUPPORTED_STAFF_TYPE": 40003, - "STATUS_STAFF_ID_CANNOT_BE_EMPTY": 40004, - "STATUS_NOT_FOUND": 40400, - "STATUS_STAFF_NOT_FOUND": 40401, - "STATUS_SERVICE_ERROR": 50000, + "UNSPECIFIED": 0, + "OK": 20000, + "INVALID_ARGUMENT": 40000, + "STAFF_TYPE_NOT_FOUND": 40001, + "UNSUPPORTED_STAFF_TYPE": 40003, + "STAFF_ID_CANNOT_BE_EMPTY": 40004, + "NOT_FOUND": 40400, + "STAFF_NOT_FOUND": 40401, + "SERVICE_ERROR": 50000, } ) @@ -101,34 +101,30 @@ var File_campusapis_status_proto protoreflect.FileDescriptor var file_campusapis_status_proto_rawDesc = []byte{ 0x0a, 0x17, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2a, 0x91, 0x02, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x16, 0x0a, 0x12, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, - 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0f, 0x0a, 0x09, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x4f, 0x4b, 0x10, 0xa0, 0x9c, 0x01, 0x12, 0x1d, 0x0a, 0x17, 0x53, 0x54, 0x41, - 0x54, 0x55, 0x53, 0x5f, 0x49, 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, - 0x4d, 0x45, 0x4e, 0x54, 0x10, 0xc0, 0xb8, 0x02, 0x12, 0x21, 0x0a, 0x1b, 0x53, 0x54, 0x41, 0x54, - 0x55, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x46, 0x46, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x5f, 0x4e, 0x4f, - 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xc1, 0xb8, 0x02, 0x12, 0x23, 0x0a, 0x1d, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, - 0x44, 0x5f, 0x53, 0x54, 0x41, 0x46, 0x46, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0xc3, 0xb8, 0x02, - 0x12, 0x25, 0x0a, 0x1f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x46, 0x46, - 0x5f, 0x49, 0x44, 0x5f, 0x43, 0x41, 0x4e, 0x4e, 0x4f, 0x54, 0x5f, 0x42, 0x45, 0x5f, 0x45, 0x4d, - 0x50, 0x54, 0x59, 0x10, 0xc4, 0xb8, 0x02, 0x12, 0x16, 0x0a, 0x10, 0x53, 0x54, 0x41, 0x54, 0x55, - 0x53, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xd0, 0xbb, 0x02, 0x12, - 0x1c, 0x0a, 0x16, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x54, 0x41, 0x46, 0x46, 0x5f, - 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xd1, 0xbb, 0x02, 0x12, 0x1a, 0x0a, - 0x14, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, 0x5f, - 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0xd0, 0x86, 0x03, 0x42, 0x91, 0x01, 0x0a, 0x0e, 0x63, 0x6f, - 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x42, 0x0b, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2a, 0x67, 0x69, 0x74, - 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, - 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0xa2, 0x02, 0x03, 0x43, 0x58, 0x58, 0xaa, 0x02, 0x0a, - 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0xca, 0x02, 0x0a, 0x43, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0xe2, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xea, 0x02, 0x0a, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x62, 0x06, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2a, 0xd2, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, + 0x00, 0x12, 0x08, 0x0a, 0x02, 0x4f, 0x4b, 0x10, 0xa0, 0x9c, 0x01, 0x12, 0x16, 0x0a, 0x10, 0x49, + 0x4e, 0x56, 0x41, 0x4c, 0x49, 0x44, 0x5f, 0x41, 0x52, 0x47, 0x55, 0x4d, 0x45, 0x4e, 0x54, 0x10, + 0xc0, 0xb8, 0x02, 0x12, 0x1a, 0x0a, 0x14, 0x53, 0x54, 0x41, 0x46, 0x46, 0x5f, 0x54, 0x59, 0x50, + 0x45, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xc1, 0xb8, 0x02, 0x12, + 0x1c, 0x0a, 0x16, 0x55, 0x4e, 0x53, 0x55, 0x50, 0x50, 0x4f, 0x52, 0x54, 0x45, 0x44, 0x5f, 0x53, + 0x54, 0x41, 0x46, 0x46, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x10, 0xc3, 0xb8, 0x02, 0x12, 0x1e, 0x0a, + 0x18, 0x53, 0x54, 0x41, 0x46, 0x46, 0x5f, 0x49, 0x44, 0x5f, 0x43, 0x41, 0x4e, 0x4e, 0x4f, 0x54, + 0x5f, 0x42, 0x45, 0x5f, 0x45, 0x4d, 0x50, 0x54, 0x59, 0x10, 0xc4, 0xb8, 0x02, 0x12, 0x0f, 0x0a, + 0x09, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, 0x44, 0x10, 0xd0, 0xbb, 0x02, 0x12, 0x15, + 0x0a, 0x0f, 0x53, 0x54, 0x41, 0x46, 0x46, 0x5f, 0x4e, 0x4f, 0x54, 0x5f, 0x46, 0x4f, 0x55, 0x4e, + 0x44, 0x10, 0xd1, 0xbb, 0x02, 0x12, 0x13, 0x0a, 0x0d, 0x53, 0x45, 0x52, 0x56, 0x49, 0x43, 0x45, + 0x5f, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0xd0, 0x86, 0x03, 0x42, 0x91, 0x01, 0x0a, 0x0e, 0x63, + 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x42, 0x0b, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2a, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, + 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0xa2, 0x02, 0x03, 0x43, 0x58, 0x58, 0xaa, 0x02, + 0x0a, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0xca, 0x02, 0x0a, 0x43, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0xe2, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x0a, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x62, 0x06, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/campusapis/status.proto b/campusapis/status.proto index 8f899d3..68b6990 100644 --- a/campusapis/status.proto +++ b/campusapis/status.proto @@ -6,25 +6,25 @@ option go_package = "./campusapis"; // 请求状态 错误定义 enum Status { - STATUS_UNSPECIFIED = 0; + UNSPECIFIED = 0; - // 成功 - STATUS_OK = 20000; + // 成功 + OK = 20000; - //通用参数错误 - STATUS_INVALID_ARGUMENT = 40000; - //人员类型参数缺失 - STATUS_STAFF_TYPE_NOT_FOUND = 40001; - //不支持的人员类型 - STATUS_UNSUPPORTED_STAFF_TYPE = 40003; - //人员工号缺失 - STATUS_STAFF_ID_CANNOT_BE_EMPTY = 40004; + //通用参数错误 + INVALID_ARGUMENT = 40000; + //人员类型参数缺失 + STAFF_TYPE_NOT_FOUND = 40001; + //不支持的人员类型 + UNSUPPORTED_STAFF_TYPE = 40003; + //人员工号缺失 + STAFF_ID_CANNOT_BE_EMPTY = 40004; - //通用无法找到 - STATUS_NOT_FOUND = 40400; - //未找到人员 - STATUS_STAFF_NOT_FOUND = 40401; + //通用无法找到 + NOT_FOUND = 40400; + //未找到人员 + STAFF_NOT_FOUND = 40401; - //服务错误 - STATUS_SERVICE_ERROR = 50000; -} \ No newline at end of file + //服务错误 + SERVICE_ERROR = 50000; +} diff --git a/docs/swagger/gatewayapis/auth/v1/auth.swagger.json b/docs/swagger/gatewayapis/auth/v1/auth.swagger.json index caad074..9addeaa 100644 --- a/docs/swagger/gatewayapis/auth/v1/auth.swagger.json +++ b/docs/swagger/gatewayapis/auth/v1/auth.swagger.json @@ -15,7 +15,457 @@ "produces": [ "application/json" ], - "paths": {}, + "paths": { + "/console/bind": { + "delete": { + "summary": "删除用户绑定", + "operationId": "AuthService_DeleteUserBind2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DeleteUserBindResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "platformID", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AuthService" + ] + } + }, + "/console/bind/check": { + "get": { + "summary": "检查用户绑定", + "operationId": "AuthService_GetUserBindCheck2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetUserBindCheckResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "platform", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AuthService" + ] + } + }, + "/console/binds": { + "get": { + "summary": "用户获取绑定列表", + "operationId": "AuthService_GetUserBindList2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetUserBindListResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "AuthService" + ] + } + }, + "/console/login": { + "delete": { + "summary": "删除用户指定令牌", + "operationId": "AuthService_DeleteUserLoginToken2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DeleteUserLoginTokenResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "EncryptedToken", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AuthService" + ] + } + }, + "/console/login/history": { + "get": { + "summary": "获取用户登录历史信息", + "operationId": "AuthService_GetUserLoginHistory2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetUserLoginHistoryResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "page", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "rpp", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "showAll", + "in": "query", + "required": false, + "type": "boolean" + } + ], + "tags": [ + "AuthService" + ] + } + }, + "/token": { + "delete": { + "summary": "用户注销当前令牌", + "operationId": "AuthService_DeleteToken2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DeleteTokenResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "token", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AuthService" + ] + } + }, + "/token/validate": { + "get": { + "summary": "用户获得Token基本信息", + "operationId": "AuthService_GetTokenInfo2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetTokenInfoResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "AuthService" + ] + } + }, + "/v1/token": { + "get": { + "summary": "用户获得Token基本信息", + "operationId": "AuthService_GetTokenInfo", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetTokenInfoResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "AuthService" + ] + }, + "delete": { + "summary": "用户注销当前令牌", + "operationId": "AuthService_DeleteToken", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DeleteTokenResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "token", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AuthService" + ] + } + }, + "/v1/user/bind": { + "get": { + "summary": "获取用户绑定信息", + "operationId": "AuthService_GetUserBind", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetUserBindResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "AuthService" + ] + }, + "delete": { + "summary": "删除用户绑定", + "operationId": "AuthService_DeleteUserBind", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DeleteUserBindResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "platformID", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AuthService" + ] + } + }, + "/v1/user/bind/check": { + "get": { + "summary": "检查用户绑定", + "operationId": "AuthService_GetUserBindCheck", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetUserBindCheckResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "platform", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AuthService" + ] + } + }, + "/v1/user/bind/list": { + "get": { + "summary": "用户获取绑定列表", + "operationId": "AuthService_GetUserBindList", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetUserBindListResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "AuthService" + ] + } + }, + "/v1/user/login/history": { + "get": { + "summary": "获取用户登录历史信息", + "operationId": "AuthService_GetUserLoginHistory", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetUserLoginHistoryResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "page", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "rpp", + "in": "query", + "required": false, + "type": "integer", + "format": "int64" + }, + { + "name": "showAll", + "in": "query", + "required": false, + "type": "boolean" + } + ], + "tags": [ + "AuthService" + ] + } + }, + "/v1/user/login/token": { + "delete": { + "summary": "删除用户指定令牌", + "operationId": "AuthService_DeleteUserLoginToken", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DeleteUserLoginTokenResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "EncryptedToken", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AuthService" + ] + } + } + }, "definitions": { "protobufAny": { "type": "object", @@ -57,19 +507,17 @@ "properties": { "userId": { "type": "string", - "title": "助手用户user_id" + "title": "用户user_id" }, "platform": { "type": "string", - "title": "绑定平台:\nplatform=hdu 杭电学(工)号,uid 为学工号,同一用户可能存在多个学号(二学位,研究生);\nplatform=qzu 衢州学院学(工)号,uid 为学工号\nplatform=wxmp 微信公众号,uid 为微信open id,uid2 为微信union id;\nplatform=dingtalk 钉钉,uid 为钉钉 user id,同一用户可能存在多个钉钉绑定记录,优先用 uid2 存在的记录条的 uid;\nplatform=idCard 身份证,uid 为身份证号;\nplatform=alipay 支付宝, uid todo\nplatform=apple 苹果,uid todo, uid2 todo\nplatform=github github, uid todo, uid2 todo\nplatform=qq QQ号,uid todo, uid2 todo\nplatform=yiban 易班,uid todo" + "title": "绑定平台" }, "uid": { - "type": "string", - "title": "uid 不同平台含义不同,见 platform 解释" + "type": "string" }, "uid2": { - "type": "string", - "title": "uid 不同平台含义不同,见 platform 解释" + "type": "string" }, "primary": { "type": "boolean", @@ -86,10 +534,80 @@ }, "title": "用户绑定信息" }, - "v1BindListResponse": { + "v1BindInfo": { + "type": "object", + "properties": { + "platformID": { + "type": "string" + }, + "platformName": { + "type": "string" + }, + "createdAt": { + "type": "integer", + "format": "int64" + } + } + }, + "v1DeleteTokenResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1DeleteUserBindResponse": { "type": "object", "properties": { - "items": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1DeleteUserDeviceResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1DeleteUserLoginTokenResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1GetBindListByUserIdListResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { "$ref": "#/definitions/v1Bind" @@ -99,7 +617,248 @@ }, "title": "用户绑定信息查询响应" }, + "v1GetImageUploadTicketResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "Data": { + "$ref": "#/definitions/v1ImageUploadTicket" + } + } + }, "v1GetTokenInfoResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1TokenInfo" + } + } + }, + "v1GetUserBindCheckResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1GetUserBindListResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1GetUserBindListResponseData" + } + } + }, + "v1GetUserBindListResponseData": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int64" + }, + "bindDetail": { + "type": "array", + "items": { + "$ref": "#/definitions/v1BindInfo" + } + } + } + }, + "v1GetUserBindResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1GetUserDeviceListResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1GetUserDeviceResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1GetUserInfoLegacyResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1UserInfoLegacy" + } + } + }, + "v1GetUserInfoResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1GetUserLoginHistoryResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1GetUserLoginHistoryResponseData" + } + } + }, + "v1GetUserLoginHistoryResponseData": { + "type": "object", + "properties": { + "count": { + "type": "integer", + "format": "int64" + }, + "detail": { + "type": "array", + "items": { + "$ref": "#/definitions/v1LoginSession" + } + } + } + }, + "v1ImageUploadTicket": { + "type": "object", + "properties": { + "ticket": { + "type": "string" + }, + "validTIme": { + "type": "integer", + "format": "int64" + } + } + }, + "v1LoginSession": { + "type": "object", + "properties": { + "createdAt": { + "type": "integer", + "format": "int64" + }, + "deletedAt": { + "type": "integer", + "format": "int64" + }, + "encryptedToken": { + "type": "string" + }, + "clientID": { + "type": "string" + }, + "clientName": { + "type": "string" + }, + "grantType": { + "type": "string" + }, + "grantTypeDesc": { + "type": "string" + } + } + }, + "v1PostUserDeviceResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1PutUserPrimaryBindLegacyResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1PutUserPrimaryBindResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1TokenInfo": { "type": "object", "properties": { "isValid": { @@ -130,6 +889,23 @@ "OAUTH" ], "default": "ORIGIN" + }, + "v1UserInfoLegacy": { + "type": "object", + "properties": { + "nowStaffId": { + "type": "string" + }, + "staffIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "school": { + "type": "string" + } + } } } } diff --git a/gatewayapis/auth/v1/auth.go b/gatewayapis/auth/v1/auth.go index 8b5c906..8b1ff49 100644 --- a/gatewayapis/auth/v1/auth.go +++ b/gatewayapis/auth/v1/auth.go @@ -2,14 +2,14 @@ package authv1 import "github.com/hduhelp/api_open_sdk/loh" -func (x *BindListResponse) UserIdList() []string { - return loh.Array(x.Items, func(b *Bind) string { +func (x *GetBindListByUserIdListResponse) UserIdList() []string { + return loh.Array(x.Data, func(b *Bind) string { return b.UserId }) } -func (x *BindListResponse) UIDList() []string { - return loh.Array(x.Items, func(b *Bind) string { +func (x *GetBindListByUserIdListResponse) UIDList() []string { + return loh.Array(x.Data, func(b *Bind) string { return b.Uid }) } diff --git a/gatewayapis/auth/v1/auth.pb.go b/gatewayapis/auth/v1/auth.pb.go index 7117be7..ebad5ed 100644 --- a/gatewayapis/auth/v1/auth.pb.go +++ b/gatewayapis/auth/v1/auth.pb.go @@ -7,10 +7,11 @@ package authv1 import ( - _ "github.com/hduhelp/api_open_sdk/gatewayapis" + _ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options" + _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - emptypb "google.golang.org/protobuf/types/known/emptypb" + _ "google.golang.org/protobuf/types/known/emptypb" structpb "google.golang.org/protobuf/types/known/structpb" reflect "reflect" sync "sync" @@ -69,23 +70,58 @@ func (TokenType) EnumDescriptor() ([]byte, []int) { return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{0} } +type GetTokenInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetTokenInfoRequest) Reset() { + *x = GetTokenInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetTokenInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetTokenInfoRequest) ProtoMessage() {} + +func (x *GetTokenInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetTokenInfoRequest.ProtoReflect.Descriptor instead. +func (*GetTokenInfoRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{0} +} + type GetTokenInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - IsValid bool `protobuf:"varint,1,opt,name=isValid,proto3" json:"isValid,omitempty"` - AccessToken string `protobuf:"bytes,2,opt,name=accessToken,proto3" json:"accessToken,omitempty"` - ExpiredTime uint32 `protobuf:"varint,3,opt,name=expiredTime,proto3" json:"expiredTime,omitempty"` - GrantType string `protobuf:"bytes,4,opt,name=grantType,proto3" json:"grantType,omitempty"` - ClientID string `protobuf:"bytes,5,opt,name=clientID,proto3" json:"clientID,omitempty"` - TokenType TokenType `protobuf:"varint,6,opt,name=tokenType,proto3,enum=gatewayapis.auth.v1.TokenType" json:"tokenType,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *TokenInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetTokenInfoResponse) Reset() { *x = GetTokenInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[0] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -98,7 +134,7 @@ func (x *GetTokenInfoResponse) String() string { func (*GetTokenInfoResponse) ProtoMessage() {} func (x *GetTokenInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[0] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -111,77 +147,142 @@ func (x *GetTokenInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTokenInfoResponse.ProtoReflect.Descriptor instead. func (*GetTokenInfoResponse) Descriptor() ([]byte, []int) { - return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{0} + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{1} +} + +func (x *GetTokenInfoResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetTokenInfoResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetTokenInfoResponse) GetData() *TokenInfo { + if x != nil { + return x.Data + } + return nil +} + +type TokenInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsValid bool `protobuf:"varint,1,opt,name=isValid,proto3" json:"isValid,omitempty"` + AccessToken string `protobuf:"bytes,2,opt,name=accessToken,proto3" json:"accessToken,omitempty"` + ExpiredTime uint32 `protobuf:"varint,3,opt,name=expiredTime,proto3" json:"expiredTime,omitempty"` + GrantType string `protobuf:"bytes,4,opt,name=grantType,proto3" json:"grantType,omitempty"` + ClientID string `protobuf:"bytes,5,opt,name=clientID,proto3" json:"clientID,omitempty"` + TokenType TokenType `protobuf:"varint,6,opt,name=tokenType,proto3,enum=gatewayapis.auth.v1.TokenType" json:"tokenType,omitempty"` +} + +func (x *TokenInfo) Reset() { + *x = TokenInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TokenInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TokenInfo) ProtoMessage() {} + +func (x *TokenInfo) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use TokenInfo.ProtoReflect.Descriptor instead. +func (*TokenInfo) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{2} } -func (x *GetTokenInfoResponse) GetIsValid() bool { +func (x *TokenInfo) GetIsValid() bool { if x != nil { return x.IsValid } return false } -func (x *GetTokenInfoResponse) GetAccessToken() string { +func (x *TokenInfo) GetAccessToken() string { if x != nil { return x.AccessToken } return "" } -func (x *GetTokenInfoResponse) GetExpiredTime() uint32 { +func (x *TokenInfo) GetExpiredTime() uint32 { if x != nil { return x.ExpiredTime } return 0 } -func (x *GetTokenInfoResponse) GetGrantType() string { +func (x *TokenInfo) GetGrantType() string { if x != nil { return x.GrantType } return "" } -func (x *GetTokenInfoResponse) GetClientID() string { +func (x *TokenInfo) GetClientID() string { if x != nil { return x.ClientID } return "" } -func (x *GetTokenInfoResponse) GetTokenType() TokenType { +func (x *TokenInfo) GetTokenType() TokenType { if x != nil { return x.TokenType } return TokenType_ORIGIN } -type UserIdListRequest struct { +type DeleteTokenRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 助手user_id列表 - UserIds []string `protobuf:"bytes,1,rep,name=userIds,proto3" json:"userIds,omitempty"` + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` } -func (x *UserIdListRequest) Reset() { - *x = UserIdListRequest{} +func (x *DeleteTokenRequest) Reset() { + *x = DeleteTokenRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[1] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UserIdListRequest) String() string { +func (x *DeleteTokenRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserIdListRequest) ProtoMessage() {} +func (*DeleteTokenRequest) ProtoMessage() {} -func (x *UserIdListRequest) ProtoReflect() protoreflect.Message { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[1] +func (x *DeleteTokenRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -192,45 +293,44 @@ func (x *UserIdListRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserIdListRequest.ProtoReflect.Descriptor instead. -func (*UserIdListRequest) Descriptor() ([]byte, []int) { - return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{1} +// Deprecated: Use DeleteTokenRequest.ProtoReflect.Descriptor instead. +func (*DeleteTokenRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{3} } -func (x *UserIdListRequest) GetUserIds() []string { +func (x *DeleteTokenRequest) GetToken() string { if x != nil { - return x.UserIds + return x.Token } - return nil + return "" } -// 用户绑定信息查询响应 -type BindListResponse struct { +type DeleteTokenResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 绑定信息列表 - Items []*Bind `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` } -func (x *BindListResponse) Reset() { - *x = BindListResponse{} +func (x *DeleteTokenResponse) Reset() { + *x = DeleteTokenResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[2] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *BindListResponse) String() string { +func (x *DeleteTokenResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BindListResponse) ProtoMessage() {} +func (*DeleteTokenResponse) ProtoMessage() {} -func (x *BindListResponse) ProtoReflect() protoreflect.Message { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[2] +func (x *DeleteTokenResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -241,67 +341,90 @@ func (x *BindListResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BindListResponse.ProtoReflect.Descriptor instead. -func (*BindListResponse) Descriptor() ([]byte, []int) { - return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{2} +// Deprecated: Use DeleteTokenResponse.ProtoReflect.Descriptor instead. +func (*DeleteTokenResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{4} } -func (x *BindListResponse) GetItems() []*Bind { +func (x *DeleteTokenResponse) GetError() uint32 { if x != nil { - return x.Items + return x.Error } - return nil + return 0 } -// 用户绑定信息 -type Bind struct { +func (x *DeleteTokenResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type GetUserBindListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields +} - // 助手用户user_id - UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId,omitempty"` - // 绑定平台: - // platform=hdu 杭电学(工)号,uid 为学工号,同一用户可能存在多个学号(二学位,研究生); - // platform=qzu 衢州学院学(工)号,uid 为学工号 - // platform=wxmp 微信公众号,uid 为微信open id,uid2 为微信union id; - // platform=dingtalk 钉钉,uid 为钉钉 user id,同一用户可能存在多个钉钉绑定记录,优先用 uid2 存在的记录条的 uid; - // platform=idCard 身份证,uid 为身份证号; - // platform=alipay 支付宝, uid todo - // platform=apple 苹果,uid todo, uid2 todo - // platform=github github, uid todo, uid2 todo - // platform=qq QQ号,uid todo, uid2 todo - // platform=yiban 易班,uid todo - Platform string `protobuf:"bytes,2,opt,name=platform,proto3" json:"platform,omitempty"` - // uid 不同平台含义不同,见 platform 解释 - Uid string `protobuf:"bytes,3,opt,name=uid,proto3" json:"uid,omitempty"` - // uid 不同平台含义不同,见 platform 解释 - Uid2 string `protobuf:"bytes,4,opt,name=uid2,proto3" json:"uid2,omitempty"` - // 是否为主学工号 - Primary bool `protobuf:"varint,5,opt,name=primary,proto3" json:"primary,omitempty"` - // 备注 - Remark string `protobuf:"bytes,6,opt,name=remark,proto3" json:"remark,omitempty"` - // 额外信息,json 格式 - Attributes *structpb.Struct `protobuf:"bytes,7,opt,name=attributes,proto3" json:"attributes,omitempty"` +func (x *GetUserBindListRequest) Reset() { + *x = GetUserBindListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (x *Bind) Reset() { - *x = Bind{} +func (x *GetUserBindListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserBindListRequest) ProtoMessage() {} + +func (x *GetUserBindListRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserBindListRequest.ProtoReflect.Descriptor instead. +func (*GetUserBindListRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{5} +} + +type GetUserBindListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *GetUserBindListResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetUserBindListResponse) Reset() { + *x = GetUserBindListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[3] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *Bind) String() string { +func (x *GetUserBindListResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*Bind) ProtoMessage() {} +func (*GetUserBindListResponse) ProtoMessage() {} -func (x *Bind) ProtoReflect() protoreflect.Message { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[3] +func (x *GetUserBindListResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -312,174 +435,2535 @@ func (x *Bind) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use Bind.ProtoReflect.Descriptor instead. -func (*Bind) Descriptor() ([]byte, []int) { - return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{3} +// Deprecated: Use GetUserBindListResponse.ProtoReflect.Descriptor instead. +func (*GetUserBindListResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{6} } -func (x *Bind) GetUserId() string { +func (x *GetUserBindListResponse) GetError() uint32 { if x != nil { - return x.UserId + return x.Error } - return "" + return 0 } -func (x *Bind) GetPlatform() string { +func (x *GetUserBindListResponse) GetMsg() string { if x != nil { - return x.Platform + return x.Msg } return "" } -func (x *Bind) GetUid() string { +func (x *GetUserBindListResponse) GetData() *GetUserBindListResponse_Data { if x != nil { - return x.Uid + return x.Data } - return "" + return nil } -func (x *Bind) GetUid2() string { - if x != nil { - return x.Uid2 +type BindInfo struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlatformID string `protobuf:"bytes,1,opt,name=platformID,proto3" json:"platformID,omitempty"` + PlatformName string `protobuf:"bytes,2,opt,name=platformName,proto3" json:"platformName,omitempty"` + CreatedAt uint32 `protobuf:"varint,3,opt,name=createdAt,proto3" json:"createdAt,omitempty"` +} + +func (x *BindInfo) Reset() { + *x = BindInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *Bind) GetPrimary() bool { +func (x *BindInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BindInfo) ProtoMessage() {} + +func (x *BindInfo) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BindInfo.ProtoReflect.Descriptor instead. +func (*BindInfo) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{7} +} + +func (x *BindInfo) GetPlatformID() string { if x != nil { - return x.Primary + return x.PlatformID } - return false + return "" } -func (x *Bind) GetRemark() string { +func (x *BindInfo) GetPlatformName() string { if x != nil { - return x.Remark + return x.PlatformName } return "" } -func (x *Bind) GetAttributes() *structpb.Struct { +func (x *BindInfo) GetCreatedAt() uint32 { if x != nil { - return x.Attributes + return x.CreatedAt } - return nil + return 0 } -var File_gatewayapis_auth_v1_auth_proto protoreflect.FileDescriptor +type GetUserBindRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} -var file_gatewayapis_auth_v1_auth_proto_rawDesc = []byte{ - 0x0a, 0x1e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x75, - 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x13, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x1a, 0x18, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, - 0x69, 0x73, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xec, 0x01, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x09, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, - 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2d, 0x0a, 0x11, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x43, 0x0a, 0x10, 0x42, 0x69, 0x6e, 0x64, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2f, 0x0a, 0x05, - 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xcb, 0x01, - 0x0a, 0x04, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, - 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x75, 0x69, 0x64, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x69, 0x64, 0x32, - 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, - 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, - 0x72, 0x6b, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, - 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2a, 0x22, 0x0a, 0x09, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x52, 0x49, 0x47, - 0x49, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x41, 0x55, 0x54, 0x48, 0x10, 0x01, 0x32, - 0xd2, 0x01, 0x0a, 0x0b, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x53, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, - 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x26, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, - 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x04, - 0x80, 0xb5, 0x18, 0x01, 0x42, 0xce, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x42, 0x09, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, - 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, - 0x76, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x41, 0x58, 0xaa, - 0x02, 0x13, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x41, 0x75, - 0x74, 0x68, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, - 0x70, 0x69, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x47, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, - 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, - 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +func (x *GetUserBindRequest) Reset() { + *x = GetUserBindRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -var ( - file_gatewayapis_auth_v1_auth_proto_rawDescOnce sync.Once - file_gatewayapis_auth_v1_auth_proto_rawDescData = file_gatewayapis_auth_v1_auth_proto_rawDesc -) +func (x *GetUserBindRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} -func file_gatewayapis_auth_v1_auth_proto_rawDescGZIP() []byte { - file_gatewayapis_auth_v1_auth_proto_rawDescOnce.Do(func() { - file_gatewayapis_auth_v1_auth_proto_rawDescData = protoimpl.X.CompressGZIP(file_gatewayapis_auth_v1_auth_proto_rawDescData) - }) - return file_gatewayapis_auth_v1_auth_proto_rawDescData +func (*GetUserBindRequest) ProtoMessage() {} + +func (x *GetUserBindRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var file_gatewayapis_auth_v1_auth_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_gatewayapis_auth_v1_auth_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_gatewayapis_auth_v1_auth_proto_goTypes = []interface{}{ - (TokenType)(0), // 0: gatewayapis.auth.v1.TokenType - (*GetTokenInfoResponse)(nil), // 1: gatewayapis.auth.v1.GetTokenInfoResponse - (*UserIdListRequest)(nil), // 2: gatewayapis.auth.v1.UserIdListRequest - (*BindListResponse)(nil), // 3: gatewayapis.auth.v1.BindListResponse - (*Bind)(nil), // 4: gatewayapis.auth.v1.Bind - (*structpb.Struct)(nil), // 5: google.protobuf.Struct - (*emptypb.Empty)(nil), // 6: google.protobuf.Empty +// Deprecated: Use GetUserBindRequest.ProtoReflect.Descriptor instead. +func (*GetUserBindRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{8} } -var file_gatewayapis_auth_v1_auth_proto_depIdxs = []int32{ - 0, // 0: gatewayapis.auth.v1.GetTokenInfoResponse.tokenType:type_name -> gatewayapis.auth.v1.TokenType - 4, // 1: gatewayapis.auth.v1.BindListResponse.items:type_name -> gatewayapis.auth.v1.Bind - 5, // 2: gatewayapis.auth.v1.Bind.attributes:type_name -> google.protobuf.Struct - 6, // 3: gatewayapis.auth.v1.AuthService.GetTokenInfo:input_type -> google.protobuf.Empty - 2, // 4: gatewayapis.auth.v1.AuthService.GetBindListByUserIdList:input_type -> gatewayapis.auth.v1.UserIdListRequest - 1, // 5: gatewayapis.auth.v1.AuthService.GetTokenInfo:output_type -> gatewayapis.auth.v1.GetTokenInfoResponse - 3, // 6: gatewayapis.auth.v1.AuthService.GetBindListByUserIdList:output_type -> gatewayapis.auth.v1.BindListResponse - 5, // [5:7] is the sub-list for method output_type - 3, // [3:5] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name + +type GetUserBindResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *GetUserBindResponse) Reset() { + *x = GetUserBindResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserBindResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserBindResponse) ProtoMessage() {} + +func (x *GetUserBindResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserBindResponse.ProtoReflect.Descriptor instead. +func (*GetUserBindResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{9} +} + +func (x *GetUserBindResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetUserBindResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type DeleteUserBindRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PlatformID string `protobuf:"bytes,1,opt,name=platformID,proto3" json:"platformID,omitempty"` +} + +func (x *DeleteUserBindRequest) Reset() { + *x = DeleteUserBindRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteUserBindRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUserBindRequest) ProtoMessage() {} + +func (x *DeleteUserBindRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteUserBindRequest.ProtoReflect.Descriptor instead. +func (*DeleteUserBindRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{10} +} + +func (x *DeleteUserBindRequest) GetPlatformID() string { + if x != nil { + return x.PlatformID + } + return "" +} + +type DeleteUserBindResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *DeleteUserBindResponse) Reset() { + *x = DeleteUserBindResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteUserBindResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUserBindResponse) ProtoMessage() {} + +func (x *DeleteUserBindResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteUserBindResponse.ProtoReflect.Descriptor instead. +func (*DeleteUserBindResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{11} +} + +func (x *DeleteUserBindResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *DeleteUserBindResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type GetUserLoginHistoryRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Page uint32 `protobuf:"varint,1,opt,name=page,proto3" json:"page,omitempty"` + Rpp uint32 `protobuf:"varint,2,opt,name=rpp,proto3" json:"rpp,omitempty"` + ShowAll bool `protobuf:"varint,3,opt,name=showAll,proto3" json:"showAll,omitempty"` +} + +func (x *GetUserLoginHistoryRequest) Reset() { + *x = GetUserLoginHistoryRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserLoginHistoryRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserLoginHistoryRequest) ProtoMessage() {} + +func (x *GetUserLoginHistoryRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserLoginHistoryRequest.ProtoReflect.Descriptor instead. +func (*GetUserLoginHistoryRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{12} +} + +func (x *GetUserLoginHistoryRequest) GetPage() uint32 { + if x != nil { + return x.Page + } + return 0 +} + +func (x *GetUserLoginHistoryRequest) GetRpp() uint32 { + if x != nil { + return x.Rpp + } + return 0 +} + +func (x *GetUserLoginHistoryRequest) GetShowAll() bool { + if x != nil { + return x.ShowAll + } + return false +} + +type GetUserLoginHistoryResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *GetUserLoginHistoryResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetUserLoginHistoryResponse) Reset() { + *x = GetUserLoginHistoryResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserLoginHistoryResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserLoginHistoryResponse) ProtoMessage() {} + +func (x *GetUserLoginHistoryResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserLoginHistoryResponse.ProtoReflect.Descriptor instead. +func (*GetUserLoginHistoryResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{13} +} + +func (x *GetUserLoginHistoryResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetUserLoginHistoryResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetUserLoginHistoryResponse) GetData() *GetUserLoginHistoryResponse_Data { + if x != nil { + return x.Data + } + return nil +} + +type LoginSession struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatedAt uint32 `protobuf:"varint,1,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + DeletedAt uint32 `protobuf:"varint,2,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` + EncryptedToken string `protobuf:"bytes,3,opt,name=encryptedToken,proto3" json:"encryptedToken,omitempty"` + ClientID string `protobuf:"bytes,4,opt,name=clientID,proto3" json:"clientID,omitempty"` + ClientName string `protobuf:"bytes,5,opt,name=clientName,proto3" json:"clientName,omitempty"` + GrantType string `protobuf:"bytes,6,opt,name=grantType,proto3" json:"grantType,omitempty"` + GrantTypeDesc string `protobuf:"bytes,7,opt,name=grantTypeDesc,proto3" json:"grantTypeDesc,omitempty"` +} + +func (x *LoginSession) Reset() { + *x = LoginSession{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *LoginSession) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*LoginSession) ProtoMessage() {} + +func (x *LoginSession) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use LoginSession.ProtoReflect.Descriptor instead. +func (*LoginSession) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{14} +} + +func (x *LoginSession) GetCreatedAt() uint32 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *LoginSession) GetDeletedAt() uint32 { + if x != nil { + return x.DeletedAt + } + return 0 +} + +func (x *LoginSession) GetEncryptedToken() string { + if x != nil { + return x.EncryptedToken + } + return "" +} + +func (x *LoginSession) GetClientID() string { + if x != nil { + return x.ClientID + } + return "" +} + +func (x *LoginSession) GetClientName() string { + if x != nil { + return x.ClientName + } + return "" +} + +func (x *LoginSession) GetGrantType() string { + if x != nil { + return x.GrantType + } + return "" +} + +func (x *LoginSession) GetGrantTypeDesc() string { + if x != nil { + return x.GrantTypeDesc + } + return "" +} + +type DeleteUserLoginTokenRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + EncryptedToken string `protobuf:"bytes,1,opt,name=EncryptedToken,proto3" json:"EncryptedToken,omitempty"` +} + +func (x *DeleteUserLoginTokenRequest) Reset() { + *x = DeleteUserLoginTokenRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteUserLoginTokenRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUserLoginTokenRequest) ProtoMessage() {} + +func (x *DeleteUserLoginTokenRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteUserLoginTokenRequest.ProtoReflect.Descriptor instead. +func (*DeleteUserLoginTokenRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{15} +} + +func (x *DeleteUserLoginTokenRequest) GetEncryptedToken() string { + if x != nil { + return x.EncryptedToken + } + return "" +} + +type DeleteUserLoginTokenResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *DeleteUserLoginTokenResponse) Reset() { + *x = DeleteUserLoginTokenResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteUserLoginTokenResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUserLoginTokenResponse) ProtoMessage() {} + +func (x *DeleteUserLoginTokenResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteUserLoginTokenResponse.ProtoReflect.Descriptor instead. +func (*DeleteUserLoginTokenResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{16} +} + +func (x *DeleteUserLoginTokenResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *DeleteUserLoginTokenResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type GetUserBindCheckRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` +} + +func (x *GetUserBindCheckRequest) Reset() { + *x = GetUserBindCheckRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserBindCheckRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserBindCheckRequest) ProtoMessage() {} + +func (x *GetUserBindCheckRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserBindCheckRequest.ProtoReflect.Descriptor instead. +func (*GetUserBindCheckRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{17} +} + +func (x *GetUserBindCheckRequest) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +type GetUserBindCheckResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *GetUserBindCheckResponse) Reset() { + *x = GetUserBindCheckResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserBindCheckResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserBindCheckResponse) ProtoMessage() {} + +func (x *GetUserBindCheckResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserBindCheckResponse.ProtoReflect.Descriptor instead. +func (*GetUserBindCheckResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{18} +} + +func (x *GetUserBindCheckResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetUserBindCheckResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type GetUserDeviceListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetUserDeviceListRequest) Reset() { + *x = GetUserDeviceListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserDeviceListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserDeviceListRequest) ProtoMessage() {} + +func (x *GetUserDeviceListRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserDeviceListRequest.ProtoReflect.Descriptor instead. +func (*GetUserDeviceListRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{19} +} + +type GetUserDeviceListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *GetUserDeviceListResponse) Reset() { + *x = GetUserDeviceListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserDeviceListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserDeviceListResponse) ProtoMessage() {} + +func (x *GetUserDeviceListResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserDeviceListResponse.ProtoReflect.Descriptor instead. +func (*GetUserDeviceListResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{20} +} + +func (x *GetUserDeviceListResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetUserDeviceListResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type GetUserDeviceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetUserDeviceRequest) Reset() { + *x = GetUserDeviceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserDeviceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserDeviceRequest) ProtoMessage() {} + +func (x *GetUserDeviceRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserDeviceRequest.ProtoReflect.Descriptor instead. +func (*GetUserDeviceRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{21} +} + +type GetUserDeviceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *GetUserDeviceResponse) Reset() { + *x = GetUserDeviceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserDeviceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserDeviceResponse) ProtoMessage() {} + +func (x *GetUserDeviceResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserDeviceResponse.ProtoReflect.Descriptor instead. +func (*GetUserDeviceResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{22} +} + +func (x *GetUserDeviceResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetUserDeviceResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type PostUserDeviceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PostUserDeviceRequest) Reset() { + *x = PostUserDeviceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostUserDeviceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostUserDeviceRequest) ProtoMessage() {} + +func (x *PostUserDeviceRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostUserDeviceRequest.ProtoReflect.Descriptor instead. +func (*PostUserDeviceRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{23} +} + +type PostUserDeviceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *PostUserDeviceResponse) Reset() { + *x = PostUserDeviceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostUserDeviceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostUserDeviceResponse) ProtoMessage() {} + +func (x *PostUserDeviceResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostUserDeviceResponse.ProtoReflect.Descriptor instead. +func (*PostUserDeviceResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{24} +} + +func (x *PostUserDeviceResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *PostUserDeviceResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type DeleteUserDeviceRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteUserDeviceRequest) Reset() { + *x = DeleteUserDeviceRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteUserDeviceRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUserDeviceRequest) ProtoMessage() {} + +func (x *DeleteUserDeviceRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteUserDeviceRequest.ProtoReflect.Descriptor instead. +func (*DeleteUserDeviceRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{25} +} + +type DeleteUserDeviceResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *DeleteUserDeviceResponse) Reset() { + *x = DeleteUserDeviceResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteUserDeviceResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUserDeviceResponse) ProtoMessage() {} + +func (x *DeleteUserDeviceResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteUserDeviceResponse.ProtoReflect.Descriptor instead. +func (*DeleteUserDeviceResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{26} +} + +func (x *DeleteUserDeviceResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *DeleteUserDeviceResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type GetUserInfoRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetUserInfoRequest) Reset() { + *x = GetUserInfoRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserInfoRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserInfoRequest) ProtoMessage() {} + +func (x *GetUserInfoRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserInfoRequest.ProtoReflect.Descriptor instead. +func (*GetUserInfoRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{27} +} + +type GetUserInfoResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *GetUserInfoResponse) Reset() { + *x = GetUserInfoResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserInfoResponse) ProtoMessage() {} + +func (x *GetUserInfoResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserInfoResponse.ProtoReflect.Descriptor instead. +func (*GetUserInfoResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{28} +} + +func (x *GetUserInfoResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetUserInfoResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type GetUserInfoLegacyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetUserInfoLegacyRequest) Reset() { + *x = GetUserInfoLegacyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserInfoLegacyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserInfoLegacyRequest) ProtoMessage() {} + +func (x *GetUserInfoLegacyRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserInfoLegacyRequest.ProtoReflect.Descriptor instead. +func (*GetUserInfoLegacyRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{29} +} + +type GetUserInfoLegacyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *UserInfoLegacy `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetUserInfoLegacyResponse) Reset() { + *x = GetUserInfoLegacyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserInfoLegacyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserInfoLegacyResponse) ProtoMessage() {} + +func (x *GetUserInfoLegacyResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserInfoLegacyResponse.ProtoReflect.Descriptor instead. +func (*GetUserInfoLegacyResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{30} +} + +func (x *GetUserInfoLegacyResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetUserInfoLegacyResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetUserInfoLegacyResponse) GetData() *UserInfoLegacy { + if x != nil { + return x.Data + } + return nil +} + +type UserInfoLegacy struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NowStaffId string `protobuf:"bytes,1,opt,name=nowStaffId,proto3" json:"nowStaffId,omitempty"` + StaffIds []string `protobuf:"bytes,2,rep,name=staffIds,proto3" json:"staffIds,omitempty"` + School string `protobuf:"bytes,3,opt,name=school,proto3" json:"school,omitempty"` +} + +func (x *UserInfoLegacy) Reset() { + *x = UserInfoLegacy{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserInfoLegacy) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserInfoLegacy) ProtoMessage() {} + +func (x *UserInfoLegacy) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserInfoLegacy.ProtoReflect.Descriptor instead. +func (*UserInfoLegacy) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{31} +} + +func (x *UserInfoLegacy) GetNowStaffId() string { + if x != nil { + return x.NowStaffId + } + return "" +} + +func (x *UserInfoLegacy) GetStaffIds() []string { + if x != nil { + return x.StaffIds + } + return nil +} + +func (x *UserInfoLegacy) GetSchool() string { + if x != nil { + return x.School + } + return "" +} + +type PutUserPrimaryBindRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PutUserPrimaryBindRequest) Reset() { + *x = PutUserPrimaryBindRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PutUserPrimaryBindRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PutUserPrimaryBindRequest) ProtoMessage() {} + +func (x *PutUserPrimaryBindRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PutUserPrimaryBindRequest.ProtoReflect.Descriptor instead. +func (*PutUserPrimaryBindRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{32} +} + +type PutUserPrimaryBindResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *PutUserPrimaryBindResponse) Reset() { + *x = PutUserPrimaryBindResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PutUserPrimaryBindResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PutUserPrimaryBindResponse) ProtoMessage() {} + +func (x *PutUserPrimaryBindResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PutUserPrimaryBindResponse.ProtoReflect.Descriptor instead. +func (*PutUserPrimaryBindResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{33} +} + +func (x *PutUserPrimaryBindResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *PutUserPrimaryBindResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type PutUserPrimaryBindLegacyRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NewStaffId string `protobuf:"bytes,1,opt,name=newStaffId,proto3" json:"newStaffId,omitempty"` +} + +func (x *PutUserPrimaryBindLegacyRequest) Reset() { + *x = PutUserPrimaryBindLegacyRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PutUserPrimaryBindLegacyRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PutUserPrimaryBindLegacyRequest) ProtoMessage() {} + +func (x *PutUserPrimaryBindLegacyRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PutUserPrimaryBindLegacyRequest.ProtoReflect.Descriptor instead. +func (*PutUserPrimaryBindLegacyRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{34} +} + +func (x *PutUserPrimaryBindLegacyRequest) GetNewStaffId() string { + if x != nil { + return x.NewStaffId + } + return "" +} + +type PutUserPrimaryBindLegacyResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *PutUserPrimaryBindLegacyResponse) Reset() { + *x = PutUserPrimaryBindLegacyResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PutUserPrimaryBindLegacyResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PutUserPrimaryBindLegacyResponse) ProtoMessage() {} + +func (x *PutUserPrimaryBindLegacyResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PutUserPrimaryBindLegacyResponse.ProtoReflect.Descriptor instead. +func (*PutUserPrimaryBindLegacyResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{35} +} + +func (x *PutUserPrimaryBindLegacyResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *PutUserPrimaryBindLegacyResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type GetImageUploadTicketRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetImageUploadTicketRequest) Reset() { + *x = GetImageUploadTicketRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetImageUploadTicketRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetImageUploadTicketRequest) ProtoMessage() {} + +func (x *GetImageUploadTicketRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetImageUploadTicketRequest.ProtoReflect.Descriptor instead. +func (*GetImageUploadTicketRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{36} +} + +type GetImageUploadTicketResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *ImageUploadTicket `protobuf:"bytes,3,opt,name=Data,proto3" json:"Data,omitempty"` +} + +func (x *GetImageUploadTicketResponse) Reset() { + *x = GetImageUploadTicketResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetImageUploadTicketResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetImageUploadTicketResponse) ProtoMessage() {} + +func (x *GetImageUploadTicketResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetImageUploadTicketResponse.ProtoReflect.Descriptor instead. +func (*GetImageUploadTicketResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{37} +} + +func (x *GetImageUploadTicketResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetImageUploadTicketResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetImageUploadTicketResponse) GetData() *ImageUploadTicket { + if x != nil { + return x.Data + } + return nil +} + +type ImageUploadTicket struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Ticket string `protobuf:"bytes,1,opt,name=ticket,proto3" json:"ticket,omitempty"` + ValidTIme uint32 `protobuf:"varint,2,opt,name=validTIme,proto3" json:"validTIme,omitempty"` +} + +func (x *ImageUploadTicket) Reset() { + *x = ImageUploadTicket{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ImageUploadTicket) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ImageUploadTicket) ProtoMessage() {} + +func (x *ImageUploadTicket) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ImageUploadTicket.ProtoReflect.Descriptor instead. +func (*ImageUploadTicket) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{38} +} + +func (x *ImageUploadTicket) GetTicket() string { + if x != nil { + return x.Ticket + } + return "" +} + +func (x *ImageUploadTicket) GetValidTIme() uint32 { + if x != nil { + return x.ValidTIme + } + return 0 +} + +type GetBindListByUserIdListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 用户user_id列表 + UserIds []string `protobuf:"bytes,1,rep,name=userIds,proto3" json:"userIds,omitempty"` +} + +func (x *GetBindListByUserIdListRequest) Reset() { + *x = GetBindListByUserIdListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBindListByUserIdListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBindListByUserIdListRequest) ProtoMessage() {} + +func (x *GetBindListByUserIdListRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBindListByUserIdListRequest.ProtoReflect.Descriptor instead. +func (*GetBindListByUserIdListRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{39} +} + +func (x *GetBindListByUserIdListRequest) GetUserIds() []string { + if x != nil { + return x.UserIds + } + return nil +} + +// 用户绑定信息查询响应 +type GetBindListByUserIdListResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + // 绑定信息列表 + Data []*Bind `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetBindListByUserIdListResponse) Reset() { + *x = GetBindListByUserIdListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBindListByUserIdListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBindListByUserIdListResponse) ProtoMessage() {} + +func (x *GetBindListByUserIdListResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBindListByUserIdListResponse.ProtoReflect.Descriptor instead. +func (*GetBindListByUserIdListResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{40} +} + +func (x *GetBindListByUserIdListResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetBindListByUserIdListResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetBindListByUserIdListResponse) GetData() []*Bind { + if x != nil { + return x.Data + } + return nil +} + +// 用户绑定信息 +type Bind struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 用户user_id + UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId,omitempty"` + // 绑定平台 + Platform string `protobuf:"bytes,2,opt,name=platform,proto3" json:"platform,omitempty"` + Uid string `protobuf:"bytes,3,opt,name=uid,proto3" json:"uid,omitempty"` + Uid2 string `protobuf:"bytes,4,opt,name=uid2,proto3" json:"uid2,omitempty"` + // 是否为主学工号 + Primary bool `protobuf:"varint,5,opt,name=primary,proto3" json:"primary,omitempty"` + // 备注 + Remark string `protobuf:"bytes,6,opt,name=remark,proto3" json:"remark,omitempty"` + // 额外信息,json 格式 + Attributes *structpb.Struct `protobuf:"bytes,7,opt,name=attributes,proto3" json:"attributes,omitempty"` +} + +func (x *Bind) Reset() { + *x = Bind{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Bind) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Bind) ProtoMessage() {} + +func (x *Bind) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use Bind.ProtoReflect.Descriptor instead. +func (*Bind) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{41} +} + +func (x *Bind) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *Bind) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *Bind) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *Bind) GetUid2() string { + if x != nil { + return x.Uid2 + } + return "" +} + +func (x *Bind) GetPrimary() bool { + if x != nil { + return x.Primary + } + return false +} + +func (x *Bind) GetRemark() string { + if x != nil { + return x.Remark + } + return "" +} + +func (x *Bind) GetAttributes() *structpb.Struct { + if x != nil { + return x.Attributes + } + return nil +} + +type GetUserBindListResponse_Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count uint32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` + BindDetail []*BindInfo `protobuf:"bytes,2,rep,name=bindDetail,proto3" json:"bindDetail,omitempty"` +} + +func (x *GetUserBindListResponse_Data) Reset() { + *x = GetUserBindListResponse_Data{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserBindListResponse_Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserBindListResponse_Data) ProtoMessage() {} + +func (x *GetUserBindListResponse_Data) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserBindListResponse_Data.ProtoReflect.Descriptor instead. +func (*GetUserBindListResponse_Data) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{6, 0} +} + +func (x *GetUserBindListResponse_Data) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *GetUserBindListResponse_Data) GetBindDetail() []*BindInfo { + if x != nil { + return x.BindDetail + } + return nil +} + +type GetUserLoginHistoryResponse_Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Count uint32 `protobuf:"varint,1,opt,name=count,proto3" json:"count,omitempty"` + Detail []*LoginSession `protobuf:"bytes,2,rep,name=detail,proto3" json:"detail,omitempty"` +} + +func (x *GetUserLoginHistoryResponse_Data) Reset() { + *x = GetUserLoginHistoryResponse_Data{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserLoginHistoryResponse_Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserLoginHistoryResponse_Data) ProtoMessage() {} + +func (x *GetUserLoginHistoryResponse_Data) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserLoginHistoryResponse_Data.ProtoReflect.Descriptor instead. +func (*GetUserLoginHistoryResponse_Data) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{13, 0} +} + +func (x *GetUserLoginHistoryResponse_Data) GetCount() uint32 { + if x != nil { + return x.Count + } + return 0 +} + +func (x *GetUserLoginHistoryResponse_Data) GetDetail() []*LoginSession { + if x != nil { + return x.Detail + } + return nil +} + +var File_gatewayapis_auth_v1_auth_proto protoreflect.FileDescriptor + +var file_gatewayapis_auth_v1_auth_proto_rawDesc = []byte{ + 0x0a, 0x1e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x75, + 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x12, 0x13, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, + 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, + 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, + 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x15, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x72, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe1, 0x01, 0x0a, 0x09, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, + 0x3c, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2a, 0x0a, + 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3d, 0x0a, 0x13, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0xe5, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, + 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x45, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5b, 0x0a, + 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0a, 0x62, + 0x69, 0x6e, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, + 0x62, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x6c, 0x0a, 0x08, 0x42, 0x69, + 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3d, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x37, 0x0a, + 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x22, 0x40, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x5c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x70, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x70, 0x70, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x68, 0x6f, 0x77, 0x41, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, + 0x68, 0x6f, 0x77, 0x41, 0x6c, 0x6c, 0x22, 0xe9, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, + 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x57, 0x0a, 0x04, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x26, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, + 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, + 0x73, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x44, 0x65, 0x73, 0x63, 0x22, 0x45, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, + 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x46, + 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x35, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x42, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, + 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3f, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x17, 0x0a, 0x15, 0x50, + 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x16, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x42, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3d, 0x0a, 0x13, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x64, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x77, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x77, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x22, 0x1b, 0x0a, 0x19, 0x50, 0x75, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x44, 0x0a, 0x1a, 0x50, 0x75, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x41, 0x0a, + 0x1f, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, + 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x22, 0x4a, 0x0a, 0x20, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, + 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x1d, 0x0a, 0x1b, + 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, + 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, + 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, + 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, + 0x22, 0x49, 0x0a, 0x11, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, + 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x49, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x49, 0x6d, 0x65, 0x22, 0x3a, 0x0a, 0x1e, 0x47, + 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x78, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x42, 0x69, + 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x19, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0xcb, 0x01, 0x0a, 0x04, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x75, 0x69, 0x64, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x75, 0x69, 0x64, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2a, + 0x22, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, + 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x41, 0x55, 0x54, + 0x48, 0x10, 0x01, 0x32, 0xf2, 0x12, 0x0a, 0x0b, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x1e, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5a, 0x11, 0x12, 0x0f, + 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x7d, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x2a, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x5a, 0x08, 0x2a, 0x06, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x9a, + 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, + 0x62, 0x69, 0x6e, 0x64, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x63, 0x6f, + 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x77, 0x0a, 0x0b, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x27, 0x2e, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, + 0x62, 0x69, 0x6e, 0x64, 0x12, 0x91, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x5a, 0x0f, 0x2a, 0x0d, 0x2f, 0x63, 0x6f, 0x6e, 0x73, + 0x6f, 0x6c, 0x65, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x12, 0xb2, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x12, 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x16, 0x2f, 0x76, 0x31, + 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x68, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x5a, 0x18, 0x12, 0x16, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, + 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0xab, 0x01, + 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x28, 0x2a, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, + 0x67, 0x69, 0x6e, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5a, 0x10, 0x2a, 0x0e, 0x2f, 0x63, 0x6f, + 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0xa3, 0x01, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x12, 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, + 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, + 0x62, 0x69, 0x6e, 0x64, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5a, 0x15, 0x12, 0x13, 0x2f, 0x63, + 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x2f, 0x63, 0x68, 0x65, 0x63, + 0x6b, 0x12, 0x74, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x6b, 0x0a, 0x0e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, + 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x27, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x2d, 0x2e, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, + 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x12, 0x50, + 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, + 0x64, 0x12, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x18, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, + 0x79, 0x12, 0x34, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, + 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, + 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, + 0x12, 0x7d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, + 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, + 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x86, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, + 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x2e, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x34, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xce, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, + 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, + 0x64, 0x6b, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, + 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x76, 0x31, 0xa2, 0x02, 0x03, + 0x47, 0x41, 0x58, 0xaa, 0x02, 0x13, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x47, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0xe2, + 0x02, 0x1f, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x41, 0x75, + 0x74, 0x68, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x15, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, + 0x3a, 0x41, 0x75, 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_gatewayapis_auth_v1_auth_proto_rawDescOnce sync.Once + file_gatewayapis_auth_v1_auth_proto_rawDescData = file_gatewayapis_auth_v1_auth_proto_rawDesc +) + +func file_gatewayapis_auth_v1_auth_proto_rawDescGZIP() []byte { + file_gatewayapis_auth_v1_auth_proto_rawDescOnce.Do(func() { + file_gatewayapis_auth_v1_auth_proto_rawDescData = protoimpl.X.CompressGZIP(file_gatewayapis_auth_v1_auth_proto_rawDescData) + }) + return file_gatewayapis_auth_v1_auth_proto_rawDescData +} + +var file_gatewayapis_auth_v1_auth_proto_enumTypes = make([]protoimpl.EnumInfo, 1) +var file_gatewayapis_auth_v1_auth_proto_msgTypes = make([]protoimpl.MessageInfo, 44) +var file_gatewayapis_auth_v1_auth_proto_goTypes = []interface{}{ + (TokenType)(0), // 0: gatewayapis.auth.v1.TokenType + (*GetTokenInfoRequest)(nil), // 1: gatewayapis.auth.v1.GetTokenInfoRequest + (*GetTokenInfoResponse)(nil), // 2: gatewayapis.auth.v1.GetTokenInfoResponse + (*TokenInfo)(nil), // 3: gatewayapis.auth.v1.TokenInfo + (*DeleteTokenRequest)(nil), // 4: gatewayapis.auth.v1.DeleteTokenRequest + (*DeleteTokenResponse)(nil), // 5: gatewayapis.auth.v1.DeleteTokenResponse + (*GetUserBindListRequest)(nil), // 6: gatewayapis.auth.v1.GetUserBindListRequest + (*GetUserBindListResponse)(nil), // 7: gatewayapis.auth.v1.GetUserBindListResponse + (*BindInfo)(nil), // 8: gatewayapis.auth.v1.BindInfo + (*GetUserBindRequest)(nil), // 9: gatewayapis.auth.v1.GetUserBindRequest + (*GetUserBindResponse)(nil), // 10: gatewayapis.auth.v1.GetUserBindResponse + (*DeleteUserBindRequest)(nil), // 11: gatewayapis.auth.v1.DeleteUserBindRequest + (*DeleteUserBindResponse)(nil), // 12: gatewayapis.auth.v1.DeleteUserBindResponse + (*GetUserLoginHistoryRequest)(nil), // 13: gatewayapis.auth.v1.GetUserLoginHistoryRequest + (*GetUserLoginHistoryResponse)(nil), // 14: gatewayapis.auth.v1.GetUserLoginHistoryResponse + (*LoginSession)(nil), // 15: gatewayapis.auth.v1.LoginSession + (*DeleteUserLoginTokenRequest)(nil), // 16: gatewayapis.auth.v1.DeleteUserLoginTokenRequest + (*DeleteUserLoginTokenResponse)(nil), // 17: gatewayapis.auth.v1.DeleteUserLoginTokenResponse + (*GetUserBindCheckRequest)(nil), // 18: gatewayapis.auth.v1.GetUserBindCheckRequest + (*GetUserBindCheckResponse)(nil), // 19: gatewayapis.auth.v1.GetUserBindCheckResponse + (*GetUserDeviceListRequest)(nil), // 20: gatewayapis.auth.v1.GetUserDeviceListRequest + (*GetUserDeviceListResponse)(nil), // 21: gatewayapis.auth.v1.GetUserDeviceListResponse + (*GetUserDeviceRequest)(nil), // 22: gatewayapis.auth.v1.GetUserDeviceRequest + (*GetUserDeviceResponse)(nil), // 23: gatewayapis.auth.v1.GetUserDeviceResponse + (*PostUserDeviceRequest)(nil), // 24: gatewayapis.auth.v1.PostUserDeviceRequest + (*PostUserDeviceResponse)(nil), // 25: gatewayapis.auth.v1.PostUserDeviceResponse + (*DeleteUserDeviceRequest)(nil), // 26: gatewayapis.auth.v1.DeleteUserDeviceRequest + (*DeleteUserDeviceResponse)(nil), // 27: gatewayapis.auth.v1.DeleteUserDeviceResponse + (*GetUserInfoRequest)(nil), // 28: gatewayapis.auth.v1.GetUserInfoRequest + (*GetUserInfoResponse)(nil), // 29: gatewayapis.auth.v1.GetUserInfoResponse + (*GetUserInfoLegacyRequest)(nil), // 30: gatewayapis.auth.v1.GetUserInfoLegacyRequest + (*GetUserInfoLegacyResponse)(nil), // 31: gatewayapis.auth.v1.GetUserInfoLegacyResponse + (*UserInfoLegacy)(nil), // 32: gatewayapis.auth.v1.UserInfoLegacy + (*PutUserPrimaryBindRequest)(nil), // 33: gatewayapis.auth.v1.PutUserPrimaryBindRequest + (*PutUserPrimaryBindResponse)(nil), // 34: gatewayapis.auth.v1.PutUserPrimaryBindResponse + (*PutUserPrimaryBindLegacyRequest)(nil), // 35: gatewayapis.auth.v1.PutUserPrimaryBindLegacyRequest + (*PutUserPrimaryBindLegacyResponse)(nil), // 36: gatewayapis.auth.v1.PutUserPrimaryBindLegacyResponse + (*GetImageUploadTicketRequest)(nil), // 37: gatewayapis.auth.v1.GetImageUploadTicketRequest + (*GetImageUploadTicketResponse)(nil), // 38: gatewayapis.auth.v1.GetImageUploadTicketResponse + (*ImageUploadTicket)(nil), // 39: gatewayapis.auth.v1.ImageUploadTicket + (*GetBindListByUserIdListRequest)(nil), // 40: gatewayapis.auth.v1.GetBindListByUserIdListRequest + (*GetBindListByUserIdListResponse)(nil), // 41: gatewayapis.auth.v1.GetBindListByUserIdListResponse + (*Bind)(nil), // 42: gatewayapis.auth.v1.Bind + (*GetUserBindListResponse_Data)(nil), // 43: gatewayapis.auth.v1.GetUserBindListResponse.Data + (*GetUserLoginHistoryResponse_Data)(nil), // 44: gatewayapis.auth.v1.GetUserLoginHistoryResponse.Data + (*structpb.Struct)(nil), // 45: google.protobuf.Struct +} +var file_gatewayapis_auth_v1_auth_proto_depIdxs = []int32{ + 3, // 0: gatewayapis.auth.v1.GetTokenInfoResponse.data:type_name -> gatewayapis.auth.v1.TokenInfo + 0, // 1: gatewayapis.auth.v1.TokenInfo.tokenType:type_name -> gatewayapis.auth.v1.TokenType + 43, // 2: gatewayapis.auth.v1.GetUserBindListResponse.data:type_name -> gatewayapis.auth.v1.GetUserBindListResponse.Data + 44, // 3: gatewayapis.auth.v1.GetUserLoginHistoryResponse.data:type_name -> gatewayapis.auth.v1.GetUserLoginHistoryResponse.Data + 32, // 4: gatewayapis.auth.v1.GetUserInfoLegacyResponse.data:type_name -> gatewayapis.auth.v1.UserInfoLegacy + 39, // 5: gatewayapis.auth.v1.GetImageUploadTicketResponse.Data:type_name -> gatewayapis.auth.v1.ImageUploadTicket + 42, // 6: gatewayapis.auth.v1.GetBindListByUserIdListResponse.data:type_name -> gatewayapis.auth.v1.Bind + 45, // 7: gatewayapis.auth.v1.Bind.attributes:type_name -> google.protobuf.Struct + 8, // 8: gatewayapis.auth.v1.GetUserBindListResponse.Data.bindDetail:type_name -> gatewayapis.auth.v1.BindInfo + 15, // 9: gatewayapis.auth.v1.GetUserLoginHistoryResponse.Data.detail:type_name -> gatewayapis.auth.v1.LoginSession + 1, // 10: gatewayapis.auth.v1.AuthService.GetTokenInfo:input_type -> gatewayapis.auth.v1.GetTokenInfoRequest + 4, // 11: gatewayapis.auth.v1.AuthService.DeleteToken:input_type -> gatewayapis.auth.v1.DeleteTokenRequest + 6, // 12: gatewayapis.auth.v1.AuthService.GetUserBindList:input_type -> gatewayapis.auth.v1.GetUserBindListRequest + 9, // 13: gatewayapis.auth.v1.AuthService.GetUserBind:input_type -> gatewayapis.auth.v1.GetUserBindRequest + 11, // 14: gatewayapis.auth.v1.AuthService.DeleteUserBind:input_type -> gatewayapis.auth.v1.DeleteUserBindRequest + 13, // 15: gatewayapis.auth.v1.AuthService.GetUserLoginHistory:input_type -> gatewayapis.auth.v1.GetUserLoginHistoryRequest + 16, // 16: gatewayapis.auth.v1.AuthService.DeleteUserLoginToken:input_type -> gatewayapis.auth.v1.DeleteUserLoginTokenRequest + 18, // 17: gatewayapis.auth.v1.AuthService.GetUserBindCheck:input_type -> gatewayapis.auth.v1.GetUserBindCheckRequest + 20, // 18: gatewayapis.auth.v1.AuthService.GetUserDeviceList:input_type -> gatewayapis.auth.v1.GetUserDeviceListRequest + 22, // 19: gatewayapis.auth.v1.AuthService.GetUserDevice:input_type -> gatewayapis.auth.v1.GetUserDeviceRequest + 24, // 20: gatewayapis.auth.v1.AuthService.PostUserDevice:input_type -> gatewayapis.auth.v1.PostUserDeviceRequest + 26, // 21: gatewayapis.auth.v1.AuthService.DeleteUserDevice:input_type -> gatewayapis.auth.v1.DeleteUserDeviceRequest + 28, // 22: gatewayapis.auth.v1.AuthService.GetUserInfo:input_type -> gatewayapis.auth.v1.GetUserInfoRequest + 30, // 23: gatewayapis.auth.v1.AuthService.GetUserInfoLegacy:input_type -> gatewayapis.auth.v1.GetUserInfoLegacyRequest + 33, // 24: gatewayapis.auth.v1.AuthService.PutUserPrimaryBind:input_type -> gatewayapis.auth.v1.PutUserPrimaryBindRequest + 35, // 25: gatewayapis.auth.v1.AuthService.PutUserPrimaryBindLegacy:input_type -> gatewayapis.auth.v1.PutUserPrimaryBindLegacyRequest + 37, // 26: gatewayapis.auth.v1.AuthService.GetImageUploadTicket:input_type -> gatewayapis.auth.v1.GetImageUploadTicketRequest + 40, // 27: gatewayapis.auth.v1.AuthService.GetBindListByUserIdList:input_type -> gatewayapis.auth.v1.GetBindListByUserIdListRequest + 2, // 28: gatewayapis.auth.v1.AuthService.GetTokenInfo:output_type -> gatewayapis.auth.v1.GetTokenInfoResponse + 5, // 29: gatewayapis.auth.v1.AuthService.DeleteToken:output_type -> gatewayapis.auth.v1.DeleteTokenResponse + 7, // 30: gatewayapis.auth.v1.AuthService.GetUserBindList:output_type -> gatewayapis.auth.v1.GetUserBindListResponse + 10, // 31: gatewayapis.auth.v1.AuthService.GetUserBind:output_type -> gatewayapis.auth.v1.GetUserBindResponse + 12, // 32: gatewayapis.auth.v1.AuthService.DeleteUserBind:output_type -> gatewayapis.auth.v1.DeleteUserBindResponse + 14, // 33: gatewayapis.auth.v1.AuthService.GetUserLoginHistory:output_type -> gatewayapis.auth.v1.GetUserLoginHistoryResponse + 17, // 34: gatewayapis.auth.v1.AuthService.DeleteUserLoginToken:output_type -> gatewayapis.auth.v1.DeleteUserLoginTokenResponse + 19, // 35: gatewayapis.auth.v1.AuthService.GetUserBindCheck:output_type -> gatewayapis.auth.v1.GetUserBindCheckResponse + 21, // 36: gatewayapis.auth.v1.AuthService.GetUserDeviceList:output_type -> gatewayapis.auth.v1.GetUserDeviceListResponse + 23, // 37: gatewayapis.auth.v1.AuthService.GetUserDevice:output_type -> gatewayapis.auth.v1.GetUserDeviceResponse + 25, // 38: gatewayapis.auth.v1.AuthService.PostUserDevice:output_type -> gatewayapis.auth.v1.PostUserDeviceResponse + 27, // 39: gatewayapis.auth.v1.AuthService.DeleteUserDevice:output_type -> gatewayapis.auth.v1.DeleteUserDeviceResponse + 29, // 40: gatewayapis.auth.v1.AuthService.GetUserInfo:output_type -> gatewayapis.auth.v1.GetUserInfoResponse + 31, // 41: gatewayapis.auth.v1.AuthService.GetUserInfoLegacy:output_type -> gatewayapis.auth.v1.GetUserInfoLegacyResponse + 34, // 42: gatewayapis.auth.v1.AuthService.PutUserPrimaryBind:output_type -> gatewayapis.auth.v1.PutUserPrimaryBindResponse + 36, // 43: gatewayapis.auth.v1.AuthService.PutUserPrimaryBindLegacy:output_type -> gatewayapis.auth.v1.PutUserPrimaryBindLegacyResponse + 38, // 44: gatewayapis.auth.v1.AuthService.GetImageUploadTicket:output_type -> gatewayapis.auth.v1.GetImageUploadTicketResponse + 41, // 45: gatewayapis.auth.v1.AuthService.GetBindListByUserIdList:output_type -> gatewayapis.auth.v1.GetBindListByUserIdListResponse + 28, // [28:46] is the sub-list for method output_type + 10, // [10:28] is the sub-list for method input_type + 10, // [10:10] is the sub-list for extension type_name + 10, // [10:10] is the sub-list for extension extendee + 0, // [0:10] is the sub-list for field type_name } func init() { file_gatewayapis_auth_v1_auth_proto_init() } @@ -489,6 +2973,18 @@ func file_gatewayapis_auth_v1_auth_proto_init() { } if !protoimpl.UnsafeEnabled { file_gatewayapis_auth_v1_auth_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTokenInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetTokenInfoResponse); i { case 0: return &v.state @@ -500,8 +2996,176 @@ func file_gatewayapis_auth_v1_auth_proto_init() { return nil } } - file_gatewayapis_auth_v1_auth_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserIdListRequest); i { + file_gatewayapis_auth_v1_auth_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TokenInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteTokenRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteTokenResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserBindListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserBindListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BindInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserBindRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserBindResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserBindRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserBindResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserLoginHistoryRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserLoginHistoryResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LoginSession); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserLoginTokenRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserLoginTokenResponse); i { case 0: return &v.state case 1: @@ -512,8 +3176,8 @@ func file_gatewayapis_auth_v1_auth_proto_init() { return nil } } - file_gatewayapis_auth_v1_auth_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BindListResponse); i { + file_gatewayapis_auth_v1_auth_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserBindCheckRequest); i { case 0: return &v.state case 1: @@ -524,7 +3188,283 @@ func file_gatewayapis_auth_v1_auth_proto_init() { return nil } } - file_gatewayapis_auth_v1_auth_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_gatewayapis_auth_v1_auth_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserBindCheckResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserDeviceListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserDeviceListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserDeviceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserDeviceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PostUserDeviceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PostUserDeviceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserDeviceRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserDeviceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoLegacyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoLegacyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserInfoLegacy); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PutUserPrimaryBindRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PutUserPrimaryBindResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PutUserPrimaryBindLegacyRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PutUserPrimaryBindLegacyResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetImageUploadTicketRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetImageUploadTicketResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImageUploadTicket); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBindListByUserIdListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBindListByUserIdListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Bind); i { case 0: return &v.state @@ -536,6 +3476,30 @@ func file_gatewayapis_auth_v1_auth_proto_init() { return nil } } + file_gatewayapis_auth_v1_auth_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserBindListResponse_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserLoginHistoryResponse_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -543,7 +3507,7 @@ func file_gatewayapis_auth_v1_auth_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gatewayapis_auth_v1_auth_proto_rawDesc, NumEnums: 1, - NumMessages: 4, + NumMessages: 44, NumExtensions: 0, NumServices: 1, }, diff --git a/gatewayapis/auth/v1/auth.pb.gw.go b/gatewayapis/auth/v1/auth.pb.gw.go index 698e0bf..021f52b 100644 --- a/gatewayapis/auth/v1/auth.pb.gw.go +++ b/gatewayapis/auth/v1/auth.pb.gw.go @@ -21,7 +21,6 @@ import ( "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/types/known/emptypb" ) // Suppress "imported and not used" errors @@ -33,186 +32,1943 @@ var _ = utilities.NewDoubleArray var _ = metadata.Join func request_AuthService_GetTokenInfo_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq emptypb.Empty + var protoReq GetTokenInfoRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + msg, err := client.GetTokenInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetTokenInfo_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetTokenInfoRequest + var metadata runtime.ServerMetadata + + msg, err := server.GetTokenInfo(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_GetTokenInfo_1(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetTokenInfoRequest + var metadata runtime.ServerMetadata + + msg, err := client.GetTokenInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetTokenInfo_1(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetTokenInfoRequest + var metadata runtime.ServerMetadata + + msg, err := server.GetTokenInfo(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AuthService_DeleteToken_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AuthService_DeleteToken_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteTokenRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_DeleteToken_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteToken(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_DeleteToken_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteTokenRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_DeleteToken_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteToken(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AuthService_DeleteToken_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AuthService_DeleteToken_1(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteTokenRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_DeleteToken_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteToken(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_DeleteToken_1(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteTokenRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_DeleteToken_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteToken(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_GetUserBindList_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserBindListRequest + var metadata runtime.ServerMetadata + + msg, err := client.GetUserBindList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetUserBindList_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserBindListRequest + var metadata runtime.ServerMetadata + + msg, err := server.GetUserBindList(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_GetUserBindList_1(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserBindListRequest + var metadata runtime.ServerMetadata + + msg, err := client.GetUserBindList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetUserBindList_1(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserBindListRequest + var metadata runtime.ServerMetadata + + msg, err := server.GetUserBindList(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_GetUserBind_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserBindRequest + var metadata runtime.ServerMetadata + + msg, err := client.GetUserBind(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetUserBind_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserBindRequest + var metadata runtime.ServerMetadata + + msg, err := server.GetUserBind(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AuthService_DeleteUserBind_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AuthService_DeleteUserBind_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteUserBindRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_DeleteUserBind_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteUserBind(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_DeleteUserBind_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteUserBindRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_DeleteUserBind_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteUserBind(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AuthService_DeleteUserBind_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AuthService_DeleteUserBind_1(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteUserBindRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_DeleteUserBind_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteUserBind(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_DeleteUserBind_1(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteUserBindRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_DeleteUserBind_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteUserBind(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AuthService_GetUserLoginHistory_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AuthService_GetUserLoginHistory_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserLoginHistoryRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_GetUserLoginHistory_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetUserLoginHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetUserLoginHistory_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserLoginHistoryRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_GetUserLoginHistory_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetUserLoginHistory(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AuthService_GetUserLoginHistory_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AuthService_GetUserLoginHistory_1(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserLoginHistoryRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_GetUserLoginHistory_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetUserLoginHistory(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetUserLoginHistory_1(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserLoginHistoryRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_GetUserLoginHistory_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetUserLoginHistory(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AuthService_DeleteUserLoginToken_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AuthService_DeleteUserLoginToken_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteUserLoginTokenRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_DeleteUserLoginToken_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteUserLoginToken(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_DeleteUserLoginToken_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteUserLoginTokenRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_DeleteUserLoginToken_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteUserLoginToken(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AuthService_DeleteUserLoginToken_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AuthService_DeleteUserLoginToken_1(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteUserLoginTokenRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_DeleteUserLoginToken_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetTokenInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err + msg, err := client.DeleteUserLoginToken(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_DeleteUserLoginToken_1(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteUserLoginTokenRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_DeleteUserLoginToken_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteUserLoginToken(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AuthService_GetUserBindCheck_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AuthService_GetUserBindCheck_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserBindCheckRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_GetUserBindCheck_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetUserBindCheck(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetUserBindCheck_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserBindCheckRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_GetUserBindCheck_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetUserBindCheck(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AuthService_GetUserBindCheck_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AuthService_GetUserBindCheck_1(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserBindCheckRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_GetUserBindCheck_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetUserBindCheck(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetUserBindCheck_1(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserBindCheckRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_GetUserBindCheck_1); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetUserBindCheck(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_GetUserDeviceList_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserDeviceListRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetUserDeviceList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetUserDeviceList_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserDeviceListRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetUserDeviceList(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_GetUserDevice_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserDeviceRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetUserDevice(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetUserDevice_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserDeviceRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetUserDevice(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_PostUserDevice_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PostUserDeviceRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.PostUserDevice(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_PostUserDevice_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PostUserDeviceRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.PostUserDevice(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_DeleteUserDevice_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteUserDeviceRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.DeleteUserDevice(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_DeleteUserDevice_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DeleteUserDeviceRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.DeleteUserDevice(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_GetUserInfo_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserInfoRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetUserInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetUserInfo_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserInfoRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetUserInfo(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_GetUserInfoLegacy_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserInfoLegacyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetUserInfoLegacy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetUserInfoLegacy_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetUserInfoLegacyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetUserInfoLegacy(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_PutUserPrimaryBind_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PutUserPrimaryBindRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.PutUserPrimaryBind(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_PutUserPrimaryBind_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PutUserPrimaryBindRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.PutUserPrimaryBind(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_PutUserPrimaryBindLegacy_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PutUserPrimaryBindLegacyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.PutUserPrimaryBindLegacy(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_PutUserPrimaryBindLegacy_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PutUserPrimaryBindLegacyRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.PutUserPrimaryBindLegacy(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_GetImageUploadTicket_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetImageUploadTicketRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetImageUploadTicket(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetImageUploadTicket_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetImageUploadTicketRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetImageUploadTicket(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_GetBindListByUserIdList_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetBindListByUserIdListRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetBindListByUserIdList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetBindListByUserIdList_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetBindListByUserIdListRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetBindListByUserIdList(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterAuthServiceHandlerServer registers the http handlers for service AuthService to "mux". +// UnaryRPC :call AuthServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterAuthServiceHandlerFromEndpoint instead. +func RegisterAuthServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server AuthServiceServer) error { + + mux.Handle("GET", pattern_AuthService_GetTokenInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetTokenInfo", runtime.WithHTTPPathPattern("/v1/token")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetTokenInfo_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetTokenInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetTokenInfo_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetTokenInfo", runtime.WithHTTPPathPattern("/token/validate")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetTokenInfo_1(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetTokenInfo_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_DeleteToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteToken", runtime.WithHTTPPathPattern("/v1/token")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_DeleteToken_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_DeleteToken_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_DeleteToken_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteToken", runtime.WithHTTPPathPattern("/token")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_DeleteToken_1(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_DeleteToken_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetUserBindList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserBindList", runtime.WithHTTPPathPattern("/v1/user/bind/list")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetUserBindList_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserBindList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetUserBindList_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserBindList", runtime.WithHTTPPathPattern("/console/binds")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetUserBindList_1(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserBindList_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetUserBind_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserBind", runtime.WithHTTPPathPattern("/v1/user/bind")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetUserBind_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserBind_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_DeleteUserBind_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteUserBind", runtime.WithHTTPPathPattern("/v1/user/bind")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_DeleteUserBind_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_DeleteUserBind_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_DeleteUserBind_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteUserBind", runtime.WithHTTPPathPattern("/console/bind")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_DeleteUserBind_1(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_DeleteUserBind_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetUserLoginHistory_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserLoginHistory", runtime.WithHTTPPathPattern("/v1/user/login/history")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetUserLoginHistory_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserLoginHistory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetUserLoginHistory_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserLoginHistory", runtime.WithHTTPPathPattern("/console/login/history")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetUserLoginHistory_1(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserLoginHistory_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_DeleteUserLoginToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteUserLoginToken", runtime.WithHTTPPathPattern("/v1/user/login/token")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_DeleteUserLoginToken_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_DeleteUserLoginToken_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_DeleteUserLoginToken_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteUserLoginToken", runtime.WithHTTPPathPattern("/console/login")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_DeleteUserLoginToken_1(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_DeleteUserLoginToken_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetUserBindCheck_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserBindCheck", runtime.WithHTTPPathPattern("/v1/user/bind/check")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetUserBindCheck_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserBindCheck_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetUserBindCheck_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserBindCheck", runtime.WithHTTPPathPattern("/console/bind/check")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetUserBindCheck_1(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserBindCheck_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AuthService_GetUserDeviceList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserDeviceList", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetUserDeviceList")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetUserDeviceList_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserDeviceList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AuthService_GetUserDevice_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserDevice", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetUserDevice")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetUserDevice_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserDevice_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AuthService_PostUserDevice_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/PostUserDevice", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/PostUserDevice")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_PostUserDevice_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_PostUserDevice_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AuthService_DeleteUserDevice_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteUserDevice", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/DeleteUserDevice")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_DeleteUserDevice_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_DeleteUserDevice_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AuthService_GetUserInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserInfo", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetUserInfo")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetUserInfo_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AuthService_GetUserInfoLegacy_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserInfoLegacy", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetUserInfoLegacy")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetUserInfoLegacy_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserInfoLegacy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AuthService_PutUserPrimaryBind_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/PutUserPrimaryBind", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/PutUserPrimaryBind")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_PutUserPrimaryBind_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_PutUserPrimaryBind_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AuthService_PutUserPrimaryBindLegacy_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/PutUserPrimaryBindLegacy", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/PutUserPrimaryBindLegacy")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_PutUserPrimaryBindLegacy_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_PutUserPrimaryBindLegacy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AuthService_GetImageUploadTicket_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetImageUploadTicket", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetImageUploadTicket")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetImageUploadTicket_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetImageUploadTicket_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AuthService_GetBindListByUserIdList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetBindListByUserIdList", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetBindListByUserIdList")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetBindListByUserIdList_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetBindListByUserIdList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterAuthServiceHandlerFromEndpoint is same as RegisterAuthServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterAuthServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterAuthServiceHandler(ctx, mux, conn) +} + +// RegisterAuthServiceHandler registers the http handlers for service AuthService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterAuthServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterAuthServiceHandlerClient(ctx, mux, NewAuthServiceClient(conn)) +} + +// RegisterAuthServiceHandlerClient registers the http handlers for service AuthService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "AuthServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "AuthServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "AuthServiceClient" to call the correct interceptors. +func RegisterAuthServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client AuthServiceClient) error { + + mux.Handle("GET", pattern_AuthService_GetTokenInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetTokenInfo", runtime.WithHTTPPathPattern("/v1/token")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetTokenInfo_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetTokenInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetTokenInfo_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetTokenInfo", runtime.WithHTTPPathPattern("/token/validate")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetTokenInfo_1(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetTokenInfo_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_DeleteToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteToken", runtime.WithHTTPPathPattern("/v1/token")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_DeleteToken_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_DeleteToken_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_DeleteToken_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteToken", runtime.WithHTTPPathPattern("/token")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_DeleteToken_1(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_DeleteToken_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetUserBindList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserBindList", runtime.WithHTTPPathPattern("/v1/user/bind/list")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetUserBindList_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserBindList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetUserBindList_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserBindList", runtime.WithHTTPPathPattern("/console/binds")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetUserBindList_1(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserBindList_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetUserBind_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserBind", runtime.WithHTTPPathPattern("/v1/user/bind")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetUserBind_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserBind_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_DeleteUserBind_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteUserBind", runtime.WithHTTPPathPattern("/v1/user/bind")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_DeleteUserBind_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_DeleteUserBind_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_DeleteUserBind_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteUserBind", runtime.WithHTTPPathPattern("/console/bind")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_DeleteUserBind_1(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_DeleteUserBind_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetUserLoginHistory_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserLoginHistory", runtime.WithHTTPPathPattern("/v1/user/login/history")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetUserLoginHistory_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserLoginHistory_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetUserLoginHistory_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserLoginHistory", runtime.WithHTTPPathPattern("/console/login/history")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetUserLoginHistory_1(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetUserLoginHistory_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_DeleteUserLoginToken_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteUserLoginToken", runtime.WithHTTPPathPattern("/v1/user/login/token")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_DeleteUserLoginToken_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_DeleteUserLoginToken_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("DELETE", pattern_AuthService_DeleteUserLoginToken_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteUserLoginToken", runtime.WithHTTPPathPattern("/console/login")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_DeleteUserLoginToken_1(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_DeleteUserLoginToken_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) -} + }) -func local_request_AuthService_GetTokenInfo_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq emptypb.Empty - var metadata runtime.ServerMetadata + mux.Handle("GET", pattern_AuthService_GetUserBindCheck_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserBindCheck", runtime.WithHTTPPathPattern("/v1/user/bind/check")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetUserBindCheck_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } + forward_AuthService_GetUserBindCheck_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - msg, err := server.GetTokenInfo(ctx, &protoReq) - return msg, metadata, err + }) -} + mux.Handle("GET", pattern_AuthService_GetUserBindCheck_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserBindCheck", runtime.WithHTTPPathPattern("/console/bind/check")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetUserBindCheck_1(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } -func request_AuthService_GetBindListByUserIdList_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserIdListRequest - var metadata runtime.ServerMetadata + forward_AuthService_GetUserBindCheck_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } + }) - msg, err := client.GetBindListByUserIdList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err + mux.Handle("POST", pattern_AuthService_GetUserDeviceList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserDeviceList", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetUserDeviceList")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetUserDeviceList_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } -} + forward_AuthService_GetUserDeviceList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) -func local_request_AuthService_GetBindListByUserIdList_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq UserIdListRequest - var metadata runtime.ServerMetadata + }) - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) - } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } + mux.Handle("POST", pattern_AuthService_GetUserDevice_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserDevice", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetUserDevice")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetUserDevice_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } - msg, err := server.GetBindListByUserIdList(ctx, &protoReq) - return msg, metadata, err + forward_AuthService_GetUserDevice_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) -} + }) -// RegisterAuthServiceHandlerServer registers the http handlers for service AuthService to "mux". -// UnaryRPC :call AuthServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterAuthServiceHandlerFromEndpoint instead. -func RegisterAuthServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server AuthServiceServer) error { + mux.Handle("POST", pattern_AuthService_PostUserDevice_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/PostUserDevice", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/PostUserDevice")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_PostUserDevice_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_PostUserDevice_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) - mux.Handle("POST", pattern_AuthService_GetTokenInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AuthService_DeleteUserDevice_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetTokenInfo", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetTokenInfo")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/DeleteUserDevice", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/DeleteUserDevice")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_AuthService_GetTokenInfo_0(ctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + resp, md, err := request_AuthService_DeleteUserDevice_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AuthService_GetTokenInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_DeleteUserDevice_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - mux.Handle("POST", pattern_AuthService_GetBindListByUserIdList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AuthService_GetUserInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetBindListByUserIdList", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetBindListByUserIdList")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserInfo", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetUserInfo")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_AuthService_GetBindListByUserIdList_0(ctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + resp, md, err := request_AuthService_GetUserInfo_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AuthService_GetBindListByUserIdList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_GetUserInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - return nil -} + mux.Handle("POST", pattern_AuthService_GetUserInfoLegacy_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetUserInfoLegacy", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetUserInfoLegacy")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetUserInfoLegacy_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } -// RegisterAuthServiceHandlerFromEndpoint is same as RegisterAuthServiceHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterAuthServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { + forward_AuthService_GetUserInfoLegacy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("POST", pattern_AuthService_PutUserPrimaryBind_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/PutUserPrimaryBind", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/PutUserPrimaryBind")) if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_PutUserPrimaryBind_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - return RegisterAuthServiceHandler(ctx, mux, conn) -} + forward_AuthService_PutUserPrimaryBind_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) -// RegisterAuthServiceHandler registers the http handlers for service AuthService to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterAuthServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterAuthServiceHandlerClient(ctx, mux, NewAuthServiceClient(conn)) -} + }) -// RegisterAuthServiceHandlerClient registers the http handlers for service AuthService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "AuthServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "AuthServiceClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "AuthServiceClient" to call the correct interceptors. -func RegisterAuthServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client AuthServiceClient) error { + mux.Handle("POST", pattern_AuthService_PutUserPrimaryBindLegacy_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/PutUserPrimaryBindLegacy", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/PutUserPrimaryBindLegacy")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_PutUserPrimaryBindLegacy_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_PutUserPrimaryBindLegacy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) - mux.Handle("POST", pattern_AuthService_GetTokenInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("POST", pattern_AuthService_GetImageUploadTicket_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetTokenInfo", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetTokenInfo")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetImageUploadTicket", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetImageUploadTicket")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_AuthService_GetTokenInfo_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_AuthService_GetImageUploadTicket_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_AuthService_GetTokenInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_GetImageUploadTicket_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -241,7 +1997,53 @@ func RegisterAuthServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux } var ( - pattern_AuthService_GetTokenInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "GetTokenInfo"}, "")) + pattern_AuthService_GetTokenInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "token"}, "")) + + pattern_AuthService_GetTokenInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"token", "validate"}, "")) + + pattern_AuthService_DeleteToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"v1", "token"}, "")) + + pattern_AuthService_DeleteToken_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"token"}, "")) + + pattern_AuthService_GetUserBindList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "user", "bind", "list"}, "")) + + pattern_AuthService_GetUserBindList_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"console", "binds"}, "")) + + pattern_AuthService_GetUserBind_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "user", "bind"}, "")) + + pattern_AuthService_DeleteUserBind_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "user", "bind"}, "")) + + pattern_AuthService_DeleteUserBind_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"console", "bind"}, "")) + + pattern_AuthService_GetUserLoginHistory_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "user", "login", "history"}, "")) + + pattern_AuthService_GetUserLoginHistory_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"console", "login", "history"}, "")) + + pattern_AuthService_DeleteUserLoginToken_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "user", "login", "token"}, "")) + + pattern_AuthService_DeleteUserLoginToken_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"console", "login"}, "")) + + pattern_AuthService_GetUserBindCheck_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"v1", "user", "bind", "check"}, "")) + + pattern_AuthService_GetUserBindCheck_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"console", "bind", "check"}, "")) + + pattern_AuthService_GetUserDeviceList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "GetUserDeviceList"}, "")) + + pattern_AuthService_GetUserDevice_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "GetUserDevice"}, "")) + + pattern_AuthService_PostUserDevice_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "PostUserDevice"}, "")) + + pattern_AuthService_DeleteUserDevice_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "DeleteUserDevice"}, "")) + + pattern_AuthService_GetUserInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "GetUserInfo"}, "")) + + pattern_AuthService_GetUserInfoLegacy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "GetUserInfoLegacy"}, "")) + + pattern_AuthService_PutUserPrimaryBind_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "PutUserPrimaryBind"}, "")) + + pattern_AuthService_PutUserPrimaryBindLegacy_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "PutUserPrimaryBindLegacy"}, "")) + + pattern_AuthService_GetImageUploadTicket_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "GetImageUploadTicket"}, "")) pattern_AuthService_GetBindListByUserIdList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "GetBindListByUserIdList"}, "")) ) @@ -249,5 +2051,51 @@ var ( var ( forward_AuthService_GetTokenInfo_0 = runtime.ForwardResponseMessage + forward_AuthService_GetTokenInfo_1 = runtime.ForwardResponseMessage + + forward_AuthService_DeleteToken_0 = runtime.ForwardResponseMessage + + forward_AuthService_DeleteToken_1 = runtime.ForwardResponseMessage + + forward_AuthService_GetUserBindList_0 = runtime.ForwardResponseMessage + + forward_AuthService_GetUserBindList_1 = runtime.ForwardResponseMessage + + forward_AuthService_GetUserBind_0 = runtime.ForwardResponseMessage + + forward_AuthService_DeleteUserBind_0 = runtime.ForwardResponseMessage + + forward_AuthService_DeleteUserBind_1 = runtime.ForwardResponseMessage + + forward_AuthService_GetUserLoginHistory_0 = runtime.ForwardResponseMessage + + forward_AuthService_GetUserLoginHistory_1 = runtime.ForwardResponseMessage + + forward_AuthService_DeleteUserLoginToken_0 = runtime.ForwardResponseMessage + + forward_AuthService_DeleteUserLoginToken_1 = runtime.ForwardResponseMessage + + forward_AuthService_GetUserBindCheck_0 = runtime.ForwardResponseMessage + + forward_AuthService_GetUserBindCheck_1 = runtime.ForwardResponseMessage + + forward_AuthService_GetUserDeviceList_0 = runtime.ForwardResponseMessage + + forward_AuthService_GetUserDevice_0 = runtime.ForwardResponseMessage + + forward_AuthService_PostUserDevice_0 = runtime.ForwardResponseMessage + + forward_AuthService_DeleteUserDevice_0 = runtime.ForwardResponseMessage + + forward_AuthService_GetUserInfo_0 = runtime.ForwardResponseMessage + + forward_AuthService_GetUserInfoLegacy_0 = runtime.ForwardResponseMessage + + forward_AuthService_PutUserPrimaryBind_0 = runtime.ForwardResponseMessage + + forward_AuthService_PutUserPrimaryBindLegacy_0 = runtime.ForwardResponseMessage + + forward_AuthService_GetImageUploadTicket_0 = runtime.ForwardResponseMessage + forward_AuthService_GetBindListByUserIdList_0 = runtime.ForwardResponseMessage ) diff --git a/gatewayapis/auth/v1/auth.proto b/gatewayapis/auth/v1/auth.proto index 8f57fcc..ac5b5e0 100644 --- a/gatewayapis/auth/v1/auth.proto +++ b/gatewayapis/auth/v1/auth.proto @@ -2,19 +2,110 @@ syntax = "proto3"; package gatewayapis.auth.v1; -import "gatewayapis/option.proto"; +import "google/api/annotations.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/struct.proto"; +import "protoc-gen-openapiv2/options/annotations.proto"; option go_package = "./gatewayapis/auth/v1"; service AuthService { - //获得Token基本信息 - rpc GetTokenInfo(google.protobuf.Empty) returns (GetTokenInfoResponse) {} - // 通过助手user_id获得用户的其他绑定id信息(学号、微信open id、钉钉id、身份证等) - rpc GetBindListByUserIdList(UserIdListRequest) returns (BindListResponse) { - option (gatewayapis.auth_token_needed) = true; + //用户获得Token基本信息 + rpc GetTokenInfo(GetTokenInfoRequest) returns (GetTokenInfoResponse) { + option (google.api.http) = { + get: "/v1/token" + additional_bindings { + get: "/token/validate" + } + }; } + + //用户注销当前令牌 + rpc DeleteToken(DeleteTokenRequest) returns (DeleteTokenResponse) { + option (google.api.http) = { + delete: "/v1/token" + additional_bindings { + delete: "/token" + } + }; + } + + //用户获取绑定列表 + rpc GetUserBindList(GetUserBindListRequest) returns (GetUserBindListResponse) { + option (google.api.http) = { + get: "/v1/user/bind/list" + additional_bindings { + get: "/console/binds" + } + }; + } + + //获取用户绑定信息 + rpc GetUserBind(GetUserBindRequest) returns (GetUserBindResponse) { + option (google.api.http) = { + get: "/v1/user/bind" + }; + } + + //删除用户绑定 + rpc DeleteUserBind(DeleteUserBindRequest) returns (DeleteUserBindResponse) { + option (google.api.http) = { + delete: "/v1/user/bind" + additional_bindings { + delete: "/console/bind" + } + }; + } + + //获取用户登录历史信息 + rpc GetUserLoginHistory(GetUserLoginHistoryRequest) returns (GetUserLoginHistoryResponse) { + option (google.api.http) = { + get: "/v1/user/login/history" + additional_bindings { + get: "/console/login/history" + } + }; + } + + //删除用户指定令牌 + rpc DeleteUserLoginToken(DeleteUserLoginTokenRequest) returns (DeleteUserLoginTokenResponse) { + option (google.api.http) = { + delete: "/v1/user/login/token" + additional_bindings { + delete: "/console/login" + } + }; + } + + //检查用户绑定 + rpc GetUserBindCheck(GetUserBindCheckRequest) returns (GetUserBindCheckResponse) { + option (google.api.http) = { + get: "/v1/user/bind/check" + additional_bindings { + get: "/console/bind/check" + } + }; + } + + //Devices Management + rpc GetUserDeviceList(GetUserDeviceListRequest) returns (GetUserDeviceListResponse) {} + rpc GetUserDevice(GetUserDeviceRequest) returns (GetUserDeviceResponse) {} + rpc PostUserDevice(PostUserDeviceRequest) returns (PostUserDeviceResponse) {} + rpc DeleteUserDevice(DeleteUserDeviceRequest) returns (DeleteUserDeviceResponse) {} + + //OAUTH2 Server + + //User + rpc GetUserInfo(GetUserInfoRequest) returns (GetUserInfoResponse) {} + rpc GetUserInfoLegacy(GetUserInfoLegacyRequest) returns (GetUserInfoLegacyResponse) {} + rpc PutUserPrimaryBind(PutUserPrimaryBindRequest) returns (PutUserPrimaryBindResponse) {} + rpc PutUserPrimaryBindLegacy(PutUserPrimaryBindLegacyRequest) returns (PutUserPrimaryBindLegacyResponse) {} + + //Static Server + rpc GetImageUploadTicket(GetImageUploadTicketRequest) returns (GetImageUploadTicketResponse) {} + + //(内部接口)通过助手user_id获得用户的其他绑定信息 + rpc GetBindListByUserIdList(GetBindListByUserIdListRequest) returns (GetBindListByUserIdListResponse) {} } enum TokenType { @@ -22,7 +113,15 @@ enum TokenType { OAUTH = 1; } +message GetTokenInfoRequest {} + message GetTokenInfoResponse { + uint32 error = 1; + string msg = 2; + TokenInfo data = 3; +} + +message TokenInfo { bool isValid = 1; string accessToken = 2; uint32 expiredTime = 3; @@ -31,36 +130,193 @@ message GetTokenInfoResponse { TokenType tokenType = 6; } -message UserIdListRequest { - // 助手user_id列表 +message DeleteTokenRequest { + string token = 1; +} + +message DeleteTokenResponse { + uint32 error = 1; + string msg = 2; +} + +message GetUserBindListRequest {} + +message GetUserBindListResponse { + uint32 error = 1; + string msg = 2; + Data data = 3; + + message Data { + uint32 count = 1; + repeated BindInfo bindDetail = 2; + } +} + +message BindInfo { + string platformID = 1; + string platformName = 2; + uint32 createdAt = 3; +} + +message GetUserBindRequest {} + +message GetUserBindResponse { + uint32 error = 1; + string msg = 2; +} + +message DeleteUserBindRequest { + string platformID = 1; +} + +message DeleteUserBindResponse { + uint32 error = 1; + string msg = 2; +} + +message GetUserLoginHistoryRequest { + uint32 page = 1; + uint32 rpp = 2; + bool showAll = 3; +} + +message GetUserLoginHistoryResponse { + uint32 error = 1; + string msg = 2; + Data data = 3; + + message Data { + uint32 count = 1; + repeated LoginSession detail = 2; + } +} + +message LoginSession { + uint32 createdAt = 1; + uint32 deletedAt = 2; + string encryptedToken = 3; + string clientID = 4; + string clientName = 5; + string grantType = 6; + string grantTypeDesc = 7; +} + +message DeleteUserLoginTokenRequest { + string EncryptedToken = 1; +} + +message DeleteUserLoginTokenResponse { + uint32 error = 1; + string msg = 2; +} + +message GetUserBindCheckRequest { + string platform = 1; +} + +message GetUserBindCheckResponse { + uint32 error = 1; + string msg = 2; +} + +message GetUserDeviceListRequest {} + +message GetUserDeviceListResponse { + uint32 error = 1; + string msg = 2; +} + +message GetUserDeviceRequest {} + +message GetUserDeviceResponse { + uint32 error = 1; + string msg = 2; +} + +message PostUserDeviceRequest {} + +message PostUserDeviceResponse { + uint32 error = 1; + string msg = 2; +} + +message DeleteUserDeviceRequest {} + +message DeleteUserDeviceResponse { + uint32 error = 1; + string msg = 2; +} + +message GetUserInfoRequest {} + +message GetUserInfoResponse { + uint32 error = 1; + string msg = 2; +} + +message GetUserInfoLegacyRequest {} + +message GetUserInfoLegacyResponse { + uint32 error = 1; + string msg = 2; + UserInfoLegacy data = 3; +} + +message UserInfoLegacy { + string nowStaffId = 1; + repeated string staffIds = 2; + string school = 3; +} + +message PutUserPrimaryBindRequest {} + +message PutUserPrimaryBindResponse { + uint32 error = 1; + string msg = 2; +} + +message PutUserPrimaryBindLegacyRequest { + string newStaffId = 1; +} + +message PutUserPrimaryBindLegacyResponse { + uint32 error = 1; + string msg = 2; +} + +message GetImageUploadTicketRequest {} + +message GetImageUploadTicketResponse { + uint32 error = 1; + string msg = 2; + ImageUploadTicket Data = 3; +} + +message ImageUploadTicket { + string ticket = 1; + uint32 validTIme = 2; +} + +message GetBindListByUserIdListRequest { + // 用户user_id列表 repeated string userIds = 1; } // 用户绑定信息查询响应 -message BindListResponse { +message GetBindListByUserIdListResponse { + uint32 error = 1; + string msg = 2; // 绑定信息列表 - repeated Bind items = 1; + repeated Bind data = 3; } // 用户绑定信息 message Bind { - // 助手用户user_id + // 用户user_id string userId = 1; - // 绑定平台: - // platform=hdu 杭电学(工)号,uid 为学工号,同一用户可能存在多个学号(二学位,研究生); - // platform=qzu 衢州学院学(工)号,uid 为学工号 - // platform=wxmp 微信公众号,uid 为微信open id,uid2 为微信union id; - // platform=dingtalk 钉钉,uid 为钉钉 user id,同一用户可能存在多个钉钉绑定记录,优先用 uid2 存在的记录条的 uid; - // platform=idCard 身份证,uid 为身份证号; - // platform=alipay 支付宝, uid todo - // platform=apple 苹果,uid todo, uid2 todo - // platform=github github, uid todo, uid2 todo - // platform=qq QQ号,uid todo, uid2 todo - // platform=yiban 易班,uid todo + // 绑定平台 string platform = 2; - // uid 不同平台含义不同,见 platform 解释 string uid = 3; - // uid 不同平台含义不同,见 platform 解释 string uid2 = 4; // 是否为主学工号 bool primary = 5; diff --git a/gatewayapis/auth/v1/auth_grpc.pb.go b/gatewayapis/auth/v1/auth_grpc.pb.go index 779865d..d566b12 100644 --- a/gatewayapis/auth/v1/auth_grpc.pb.go +++ b/gatewayapis/auth/v1/auth_grpc.pb.go @@ -11,7 +11,6 @@ import ( grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - emptypb "google.golang.org/protobuf/types/known/emptypb" ) // This is a compile-time assertion to ensure that this generated file @@ -23,10 +22,36 @@ const _ = grpc.SupportPackageIsVersion7 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type AuthServiceClient interface { - //获得Token基本信息 - GetTokenInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetTokenInfoResponse, error) - // 通过助手user_id获得用户的其他绑定id信息(学号、微信open id、钉钉id、身份证等) - GetBindListByUserIdList(ctx context.Context, in *UserIdListRequest, opts ...grpc.CallOption) (*BindListResponse, error) + //用户获得Token基本信息 + GetTokenInfo(ctx context.Context, in *GetTokenInfoRequest, opts ...grpc.CallOption) (*GetTokenInfoResponse, error) + //用户注销当前令牌 + DeleteToken(ctx context.Context, in *DeleteTokenRequest, opts ...grpc.CallOption) (*DeleteTokenResponse, error) + //用户获取绑定列表 + GetUserBindList(ctx context.Context, in *GetUserBindListRequest, opts ...grpc.CallOption) (*GetUserBindListResponse, error) + //获取用户绑定信息 + GetUserBind(ctx context.Context, in *GetUserBindRequest, opts ...grpc.CallOption) (*GetUserBindResponse, error) + //删除用户绑定 + DeleteUserBind(ctx context.Context, in *DeleteUserBindRequest, opts ...grpc.CallOption) (*DeleteUserBindResponse, error) + //获取用户登录历史信息 + GetUserLoginHistory(ctx context.Context, in *GetUserLoginHistoryRequest, opts ...grpc.CallOption) (*GetUserLoginHistoryResponse, error) + //删除用户指定令牌 + DeleteUserLoginToken(ctx context.Context, in *DeleteUserLoginTokenRequest, opts ...grpc.CallOption) (*DeleteUserLoginTokenResponse, error) + //检查用户绑定 + GetUserBindCheck(ctx context.Context, in *GetUserBindCheckRequest, opts ...grpc.CallOption) (*GetUserBindCheckResponse, error) + //Devices Management + GetUserDeviceList(ctx context.Context, in *GetUserDeviceListRequest, opts ...grpc.CallOption) (*GetUserDeviceListResponse, error) + GetUserDevice(ctx context.Context, in *GetUserDeviceRequest, opts ...grpc.CallOption) (*GetUserDeviceResponse, error) + PostUserDevice(ctx context.Context, in *PostUserDeviceRequest, opts ...grpc.CallOption) (*PostUserDeviceResponse, error) + DeleteUserDevice(ctx context.Context, in *DeleteUserDeviceRequest, opts ...grpc.CallOption) (*DeleteUserDeviceResponse, error) + //User + GetUserInfo(ctx context.Context, in *GetUserInfoRequest, opts ...grpc.CallOption) (*GetUserInfoResponse, error) + GetUserInfoLegacy(ctx context.Context, in *GetUserInfoLegacyRequest, opts ...grpc.CallOption) (*GetUserInfoLegacyResponse, error) + PutUserPrimaryBind(ctx context.Context, in *PutUserPrimaryBindRequest, opts ...grpc.CallOption) (*PutUserPrimaryBindResponse, error) + PutUserPrimaryBindLegacy(ctx context.Context, in *PutUserPrimaryBindLegacyRequest, opts ...grpc.CallOption) (*PutUserPrimaryBindLegacyResponse, error) + //Static Server + GetImageUploadTicket(ctx context.Context, in *GetImageUploadTicketRequest, opts ...grpc.CallOption) (*GetImageUploadTicketResponse, error) + //(内部接口)通过助手user_id获得用户的其他绑定信息 + GetBindListByUserIdList(ctx context.Context, in *GetBindListByUserIdListRequest, opts ...grpc.CallOption) (*GetBindListByUserIdListResponse, error) } type authServiceClient struct { @@ -37,7 +62,7 @@ func NewAuthServiceClient(cc grpc.ClientConnInterface) AuthServiceClient { return &authServiceClient{cc} } -func (c *authServiceClient) GetTokenInfo(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetTokenInfoResponse, error) { +func (c *authServiceClient) GetTokenInfo(ctx context.Context, in *GetTokenInfoRequest, opts ...grpc.CallOption) (*GetTokenInfoResponse, error) { out := new(GetTokenInfoResponse) err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetTokenInfo", in, out, opts...) if err != nil { @@ -46,8 +71,152 @@ func (c *authServiceClient) GetTokenInfo(ctx context.Context, in *emptypb.Empty, return out, nil } -func (c *authServiceClient) GetBindListByUserIdList(ctx context.Context, in *UserIdListRequest, opts ...grpc.CallOption) (*BindListResponse, error) { - out := new(BindListResponse) +func (c *authServiceClient) DeleteToken(ctx context.Context, in *DeleteTokenRequest, opts ...grpc.CallOption) (*DeleteTokenResponse, error) { + out := new(DeleteTokenResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/DeleteToken", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) GetUserBindList(ctx context.Context, in *GetUserBindListRequest, opts ...grpc.CallOption) (*GetUserBindListResponse, error) { + out := new(GetUserBindListResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetUserBindList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) GetUserBind(ctx context.Context, in *GetUserBindRequest, opts ...grpc.CallOption) (*GetUserBindResponse, error) { + out := new(GetUserBindResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetUserBind", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) DeleteUserBind(ctx context.Context, in *DeleteUserBindRequest, opts ...grpc.CallOption) (*DeleteUserBindResponse, error) { + out := new(DeleteUserBindResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/DeleteUserBind", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) GetUserLoginHistory(ctx context.Context, in *GetUserLoginHistoryRequest, opts ...grpc.CallOption) (*GetUserLoginHistoryResponse, error) { + out := new(GetUserLoginHistoryResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetUserLoginHistory", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) DeleteUserLoginToken(ctx context.Context, in *DeleteUserLoginTokenRequest, opts ...grpc.CallOption) (*DeleteUserLoginTokenResponse, error) { + out := new(DeleteUserLoginTokenResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/DeleteUserLoginToken", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) GetUserBindCheck(ctx context.Context, in *GetUserBindCheckRequest, opts ...grpc.CallOption) (*GetUserBindCheckResponse, error) { + out := new(GetUserBindCheckResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetUserBindCheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) GetUserDeviceList(ctx context.Context, in *GetUserDeviceListRequest, opts ...grpc.CallOption) (*GetUserDeviceListResponse, error) { + out := new(GetUserDeviceListResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetUserDeviceList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) GetUserDevice(ctx context.Context, in *GetUserDeviceRequest, opts ...grpc.CallOption) (*GetUserDeviceResponse, error) { + out := new(GetUserDeviceResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetUserDevice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) PostUserDevice(ctx context.Context, in *PostUserDeviceRequest, opts ...grpc.CallOption) (*PostUserDeviceResponse, error) { + out := new(PostUserDeviceResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/PostUserDevice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) DeleteUserDevice(ctx context.Context, in *DeleteUserDeviceRequest, opts ...grpc.CallOption) (*DeleteUserDeviceResponse, error) { + out := new(DeleteUserDeviceResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/DeleteUserDevice", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) GetUserInfo(ctx context.Context, in *GetUserInfoRequest, opts ...grpc.CallOption) (*GetUserInfoResponse, error) { + out := new(GetUserInfoResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetUserInfo", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) GetUserInfoLegacy(ctx context.Context, in *GetUserInfoLegacyRequest, opts ...grpc.CallOption) (*GetUserInfoLegacyResponse, error) { + out := new(GetUserInfoLegacyResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetUserInfoLegacy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) PutUserPrimaryBind(ctx context.Context, in *PutUserPrimaryBindRequest, opts ...grpc.CallOption) (*PutUserPrimaryBindResponse, error) { + out := new(PutUserPrimaryBindResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/PutUserPrimaryBind", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) PutUserPrimaryBindLegacy(ctx context.Context, in *PutUserPrimaryBindLegacyRequest, opts ...grpc.CallOption) (*PutUserPrimaryBindLegacyResponse, error) { + out := new(PutUserPrimaryBindLegacyResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/PutUserPrimaryBindLegacy", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) GetImageUploadTicket(ctx context.Context, in *GetImageUploadTicketRequest, opts ...grpc.CallOption) (*GetImageUploadTicketResponse, error) { + out := new(GetImageUploadTicketResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetImageUploadTicket", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) GetBindListByUserIdList(ctx context.Context, in *GetBindListByUserIdListRequest, opts ...grpc.CallOption) (*GetBindListByUserIdListResponse, error) { + out := new(GetBindListByUserIdListResponse) err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetBindListByUserIdList", in, out, opts...) if err != nil { return nil, err @@ -59,20 +228,94 @@ func (c *authServiceClient) GetBindListByUserIdList(ctx context.Context, in *Use // All implementations should embed UnimplementedAuthServiceServer // for forward compatibility type AuthServiceServer interface { - //获得Token基本信息 - GetTokenInfo(context.Context, *emptypb.Empty) (*GetTokenInfoResponse, error) - // 通过助手user_id获得用户的其他绑定id信息(学号、微信open id、钉钉id、身份证等) - GetBindListByUserIdList(context.Context, *UserIdListRequest) (*BindListResponse, error) + //用户获得Token基本信息 + GetTokenInfo(context.Context, *GetTokenInfoRequest) (*GetTokenInfoResponse, error) + //用户注销当前令牌 + DeleteToken(context.Context, *DeleteTokenRequest) (*DeleteTokenResponse, error) + //用户获取绑定列表 + GetUserBindList(context.Context, *GetUserBindListRequest) (*GetUserBindListResponse, error) + //获取用户绑定信息 + GetUserBind(context.Context, *GetUserBindRequest) (*GetUserBindResponse, error) + //删除用户绑定 + DeleteUserBind(context.Context, *DeleteUserBindRequest) (*DeleteUserBindResponse, error) + //获取用户登录历史信息 + GetUserLoginHistory(context.Context, *GetUserLoginHistoryRequest) (*GetUserLoginHistoryResponse, error) + //删除用户指定令牌 + DeleteUserLoginToken(context.Context, *DeleteUserLoginTokenRequest) (*DeleteUserLoginTokenResponse, error) + //检查用户绑定 + GetUserBindCheck(context.Context, *GetUserBindCheckRequest) (*GetUserBindCheckResponse, error) + //Devices Management + GetUserDeviceList(context.Context, *GetUserDeviceListRequest) (*GetUserDeviceListResponse, error) + GetUserDevice(context.Context, *GetUserDeviceRequest) (*GetUserDeviceResponse, error) + PostUserDevice(context.Context, *PostUserDeviceRequest) (*PostUserDeviceResponse, error) + DeleteUserDevice(context.Context, *DeleteUserDeviceRequest) (*DeleteUserDeviceResponse, error) + //User + GetUserInfo(context.Context, *GetUserInfoRequest) (*GetUserInfoResponse, error) + GetUserInfoLegacy(context.Context, *GetUserInfoLegacyRequest) (*GetUserInfoLegacyResponse, error) + PutUserPrimaryBind(context.Context, *PutUserPrimaryBindRequest) (*PutUserPrimaryBindResponse, error) + PutUserPrimaryBindLegacy(context.Context, *PutUserPrimaryBindLegacyRequest) (*PutUserPrimaryBindLegacyResponse, error) + //Static Server + GetImageUploadTicket(context.Context, *GetImageUploadTicketRequest) (*GetImageUploadTicketResponse, error) + //(内部接口)通过助手user_id获得用户的其他绑定信息 + GetBindListByUserIdList(context.Context, *GetBindListByUserIdListRequest) (*GetBindListByUserIdListResponse, error) } // UnimplementedAuthServiceServer should be embedded to have forward compatible implementations. type UnimplementedAuthServiceServer struct { } -func (UnimplementedAuthServiceServer) GetTokenInfo(context.Context, *emptypb.Empty) (*GetTokenInfoResponse, error) { +func (UnimplementedAuthServiceServer) GetTokenInfo(context.Context, *GetTokenInfoRequest) (*GetTokenInfoResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTokenInfo not implemented") } -func (UnimplementedAuthServiceServer) GetBindListByUserIdList(context.Context, *UserIdListRequest) (*BindListResponse, error) { +func (UnimplementedAuthServiceServer) DeleteToken(context.Context, *DeleteTokenRequest) (*DeleteTokenResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteToken not implemented") +} +func (UnimplementedAuthServiceServer) GetUserBindList(context.Context, *GetUserBindListRequest) (*GetUserBindListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserBindList not implemented") +} +func (UnimplementedAuthServiceServer) GetUserBind(context.Context, *GetUserBindRequest) (*GetUserBindResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserBind not implemented") +} +func (UnimplementedAuthServiceServer) DeleteUserBind(context.Context, *DeleteUserBindRequest) (*DeleteUserBindResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteUserBind not implemented") +} +func (UnimplementedAuthServiceServer) GetUserLoginHistory(context.Context, *GetUserLoginHistoryRequest) (*GetUserLoginHistoryResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserLoginHistory not implemented") +} +func (UnimplementedAuthServiceServer) DeleteUserLoginToken(context.Context, *DeleteUserLoginTokenRequest) (*DeleteUserLoginTokenResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteUserLoginToken not implemented") +} +func (UnimplementedAuthServiceServer) GetUserBindCheck(context.Context, *GetUserBindCheckRequest) (*GetUserBindCheckResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserBindCheck not implemented") +} +func (UnimplementedAuthServiceServer) GetUserDeviceList(context.Context, *GetUserDeviceListRequest) (*GetUserDeviceListResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserDeviceList not implemented") +} +func (UnimplementedAuthServiceServer) GetUserDevice(context.Context, *GetUserDeviceRequest) (*GetUserDeviceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserDevice not implemented") +} +func (UnimplementedAuthServiceServer) PostUserDevice(context.Context, *PostUserDeviceRequest) (*PostUserDeviceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PostUserDevice not implemented") +} +func (UnimplementedAuthServiceServer) DeleteUserDevice(context.Context, *DeleteUserDeviceRequest) (*DeleteUserDeviceResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteUserDevice not implemented") +} +func (UnimplementedAuthServiceServer) GetUserInfo(context.Context, *GetUserInfoRequest) (*GetUserInfoResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserInfo not implemented") +} +func (UnimplementedAuthServiceServer) GetUserInfoLegacy(context.Context, *GetUserInfoLegacyRequest) (*GetUserInfoLegacyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserInfoLegacy not implemented") +} +func (UnimplementedAuthServiceServer) PutUserPrimaryBind(context.Context, *PutUserPrimaryBindRequest) (*PutUserPrimaryBindResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PutUserPrimaryBind not implemented") +} +func (UnimplementedAuthServiceServer) PutUserPrimaryBindLegacy(context.Context, *PutUserPrimaryBindLegacyRequest) (*PutUserPrimaryBindLegacyResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PutUserPrimaryBindLegacy not implemented") +} +func (UnimplementedAuthServiceServer) GetImageUploadTicket(context.Context, *GetImageUploadTicketRequest) (*GetImageUploadTicketResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetImageUploadTicket not implemented") +} +func (UnimplementedAuthServiceServer) GetBindListByUserIdList(context.Context, *GetBindListByUserIdListRequest) (*GetBindListByUserIdListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBindListByUserIdList not implemented") } @@ -88,7 +331,7 @@ func RegisterAuthServiceServer(s grpc.ServiceRegistrar, srv AuthServiceServer) { } func _AuthService_GetTokenInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(emptypb.Empty) + in := new(GetTokenInfoRequest) if err := dec(in); err != nil { return nil, err } @@ -100,13 +343,301 @@ func _AuthService_GetTokenInfo_Handler(srv interface{}, ctx context.Context, dec FullMethod: "/gatewayapis.auth.v1.AuthService/GetTokenInfo", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthServiceServer).GetTokenInfo(ctx, req.(*emptypb.Empty)) + return srv.(AuthServiceServer).GetTokenInfo(ctx, req.(*GetTokenInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_DeleteToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteTokenRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).DeleteToken(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/DeleteToken", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).DeleteToken(ctx, req.(*DeleteTokenRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_GetUserBindList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserBindListRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).GetUserBindList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/GetUserBindList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).GetUserBindList(ctx, req.(*GetUserBindListRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_GetUserBind_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserBindRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).GetUserBind(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/GetUserBind", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).GetUserBind(ctx, req.(*GetUserBindRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_DeleteUserBind_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteUserBindRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).DeleteUserBind(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/DeleteUserBind", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).DeleteUserBind(ctx, req.(*DeleteUserBindRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_GetUserLoginHistory_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserLoginHistoryRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).GetUserLoginHistory(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/GetUserLoginHistory", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).GetUserLoginHistory(ctx, req.(*GetUserLoginHistoryRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_DeleteUserLoginToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteUserLoginTokenRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).DeleteUserLoginToken(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/DeleteUserLoginToken", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).DeleteUserLoginToken(ctx, req.(*DeleteUserLoginTokenRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_GetUserBindCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserBindCheckRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).GetUserBindCheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/GetUserBindCheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).GetUserBindCheck(ctx, req.(*GetUserBindCheckRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_GetUserDeviceList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserDeviceListRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).GetUserDeviceList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/GetUserDeviceList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).GetUserDeviceList(ctx, req.(*GetUserDeviceListRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_GetUserDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserDeviceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).GetUserDevice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/GetUserDevice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).GetUserDevice(ctx, req.(*GetUserDeviceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_PostUserDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PostUserDeviceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).PostUserDevice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/PostUserDevice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).PostUserDevice(ctx, req.(*PostUserDeviceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_DeleteUserDevice_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteUserDeviceRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).DeleteUserDevice(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/DeleteUserDevice", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).DeleteUserDevice(ctx, req.(*DeleteUserDeviceRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_GetUserInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserInfoRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).GetUserInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/GetUserInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).GetUserInfo(ctx, req.(*GetUserInfoRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_GetUserInfoLegacy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserInfoLegacyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).GetUserInfoLegacy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/GetUserInfoLegacy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).GetUserInfoLegacy(ctx, req.(*GetUserInfoLegacyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_PutUserPrimaryBind_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PutUserPrimaryBindRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).PutUserPrimaryBind(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/PutUserPrimaryBind", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).PutUserPrimaryBind(ctx, req.(*PutUserPrimaryBindRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_PutUserPrimaryBindLegacy_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PutUserPrimaryBindLegacyRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).PutUserPrimaryBindLegacy(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/PutUserPrimaryBindLegacy", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).PutUserPrimaryBindLegacy(ctx, req.(*PutUserPrimaryBindLegacyRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_GetImageUploadTicket_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetImageUploadTicketRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).GetImageUploadTicket(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/GetImageUploadTicket", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).GetImageUploadTicket(ctx, req.(*GetImageUploadTicketRequest)) } return interceptor(ctx, in, info, handler) } func _AuthService_GetBindListByUserIdList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UserIdListRequest) + in := new(GetBindListByUserIdListRequest) if err := dec(in); err != nil { return nil, err } @@ -118,7 +649,7 @@ func _AuthService_GetBindListByUserIdList_Handler(srv interface{}, ctx context.C FullMethod: "/gatewayapis.auth.v1.AuthService/GetBindListByUserIdList", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthServiceServer).GetBindListByUserIdList(ctx, req.(*UserIdListRequest)) + return srv.(AuthServiceServer).GetBindListByUserIdList(ctx, req.(*GetBindListByUserIdListRequest)) } return interceptor(ctx, in, info, handler) } @@ -134,6 +665,70 @@ var AuthService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetTokenInfo", Handler: _AuthService_GetTokenInfo_Handler, }, + { + MethodName: "DeleteToken", + Handler: _AuthService_DeleteToken_Handler, + }, + { + MethodName: "GetUserBindList", + Handler: _AuthService_GetUserBindList_Handler, + }, + { + MethodName: "GetUserBind", + Handler: _AuthService_GetUserBind_Handler, + }, + { + MethodName: "DeleteUserBind", + Handler: _AuthService_DeleteUserBind_Handler, + }, + { + MethodName: "GetUserLoginHistory", + Handler: _AuthService_GetUserLoginHistory_Handler, + }, + { + MethodName: "DeleteUserLoginToken", + Handler: _AuthService_DeleteUserLoginToken_Handler, + }, + { + MethodName: "GetUserBindCheck", + Handler: _AuthService_GetUserBindCheck_Handler, + }, + { + MethodName: "GetUserDeviceList", + Handler: _AuthService_GetUserDeviceList_Handler, + }, + { + MethodName: "GetUserDevice", + Handler: _AuthService_GetUserDevice_Handler, + }, + { + MethodName: "PostUserDevice", + Handler: _AuthService_PostUserDevice_Handler, + }, + { + MethodName: "DeleteUserDevice", + Handler: _AuthService_DeleteUserDevice_Handler, + }, + { + MethodName: "GetUserInfo", + Handler: _AuthService_GetUserInfo_Handler, + }, + { + MethodName: "GetUserInfoLegacy", + Handler: _AuthService_GetUserInfoLegacy_Handler, + }, + { + MethodName: "PutUserPrimaryBind", + Handler: _AuthService_PutUserPrimaryBind_Handler, + }, + { + MethodName: "PutUserPrimaryBindLegacy", + Handler: _AuthService_PutUserPrimaryBindLegacy_Handler, + }, + { + MethodName: "GetImageUploadTicket", + Handler: _AuthService_GetImageUploadTicket_Handler, + }, { MethodName: "GetBindListByUserIdList", Handler: _AuthService_GetBindListByUserIdList_Handler, diff --git a/gatewayapis/option.pb.go b/gatewayapis/option.pb.go deleted file mode 100644 index 77512e4..0000000 --- a/gatewayapis/option.pb.go +++ /dev/null @@ -1,100 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc (unknown) -// source: gatewayapis/option.proto - -package gatewayapis - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - descriptorpb "google.golang.org/protobuf/types/descriptorpb" - reflect "reflect" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -var file_gatewayapis_option_proto_extTypes = []protoimpl.ExtensionInfo{ - { - ExtendedType: (*descriptorpb.MethodOptions)(nil), - ExtensionType: (*bool)(nil), - Field: 50000, - Name: "gatewayapis.auth_token_needed", - Tag: "varint,50000,opt,name=auth_token_needed", - Filename: "gatewayapis/option.proto", - }, -} - -// Extension fields to descriptorpb.MethodOptions. -var ( - // optional bool auth_token_needed = 50000; - E_AuthTokenNeeded = &file_gatewayapis_option_proto_extTypes[0] -) - -var File_gatewayapis_option_proto protoreflect.FileDescriptor - -var file_gatewayapis_option_proto_rawDesc = []byte{ - 0x0a, 0x18, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x6f, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0b, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x1a, 0x20, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x6f, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x3a, 0x4f, 0x0a, 0x11, 0x61, 0x75, 0x74, - 0x68, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5f, 0x6e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x12, 0x1e, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0xd0, - 0x86, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x61, 0x75, 0x74, 0x68, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x4e, 0x65, 0x65, 0x64, 0x65, 0x64, 0x88, 0x01, 0x01, 0x42, 0x97, 0x01, 0x0a, 0x0f, 0x63, - 0x6f, 0x6d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x42, 0x0b, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x2b, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, - 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0xa2, 0x02, 0x03, 0x47, 0x58, 0x58, - 0xaa, 0x02, 0x0b, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0xca, 0x02, - 0x0b, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0xe2, 0x02, 0x17, 0x47, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x0b, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x61, 0x70, 0x69, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var file_gatewayapis_option_proto_goTypes = []interface{}{ - (*descriptorpb.MethodOptions)(nil), // 0: google.protobuf.MethodOptions -} -var file_gatewayapis_option_proto_depIdxs = []int32{ - 0, // 0: gatewayapis.auth_token_needed:extendee -> google.protobuf.MethodOptions - 1, // [1:1] is the sub-list for method output_type - 1, // [1:1] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 0, // [0:1] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_gatewayapis_option_proto_init() } -func file_gatewayapis_option_proto_init() { - if File_gatewayapis_option_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_gatewayapis_option_proto_rawDesc, - NumEnums: 0, - NumMessages: 0, - NumExtensions: 1, - NumServices: 0, - }, - GoTypes: file_gatewayapis_option_proto_goTypes, - DependencyIndexes: file_gatewayapis_option_proto_depIdxs, - ExtensionInfos: file_gatewayapis_option_proto_extTypes, - }.Build() - File_gatewayapis_option_proto = out.File - file_gatewayapis_option_proto_rawDesc = nil - file_gatewayapis_option_proto_goTypes = nil - file_gatewayapis_option_proto_depIdxs = nil -} diff --git a/gatewayapis/option.proto b/gatewayapis/option.proto deleted file mode 100644 index e336a2f..0000000 --- a/gatewayapis/option.proto +++ /dev/null @@ -1,11 +0,0 @@ -syntax = "proto3"; - -package gatewayapis; - -import "google/protobuf/descriptor.proto"; - -option go_package = "./gatewayapis"; - -extend google.protobuf.MethodOptions { - optional bool auth_token_needed = 50000; -} From 03132e176805f31ed412df4b5b709711ae9a8189 Mon Sep 17 00:00:00 2001 From: FDKevin Date: Thu, 2 Jun 2022 01:31:08 +0800 Subject: [PATCH 06/25] updates --- .../gatewayapis/auth/v1/auth.swagger.json | 251 ++- .../server/v1/manager.swagger.json | 21 + .../server/v1/register.swagger.json | 9 + gatewayapis/auth/v1/auth.pb.go | 1814 +++++++++++++---- gatewayapis/auth/v1/auth.pb.gw.go | 369 ++++ gatewayapis/auth/v1/auth.proto | 85 + gatewayapis/auth/v1/auth_grpc.pb.go | 148 ++ gatewayapis/server/v1/defined.go | 2 +- gatewayapis/server/v1/manager.pb.go | 584 +++++- gatewayapis/server/v1/manager.pb.gw.go | 17 +- gatewayapis/server/v1/manager.proto | 36 +- gatewayapis/server/v1/manager_grpc.pb.go | 55 +- gatewayapis/server/v1/register.pb.go | 289 ++- gatewayapis/server/v1/register.pb.gw.go | 4 +- gatewayapis/server/v1/register.proto | 14 +- gatewayapis/server/v1/register_grpc.pb.go | 35 +- 16 files changed, 3065 insertions(+), 668 deletions(-) diff --git a/docs/swagger/gatewayapis/auth/v1/auth.swagger.json b/docs/swagger/gatewayapis/auth/v1/auth.swagger.json index 9addeaa..d386fa2 100644 --- a/docs/swagger/gatewayapis/auth/v1/auth.swagger.json +++ b/docs/swagger/gatewayapis/auth/v1/auth.swagger.json @@ -177,6 +177,52 @@ ] } }, + "/doctor": { + "get": { + "summary": "HTML", + "operationId": "AuthService_GetDoctorPage2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetDoctorPageResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "AuthService" + ] + } + }, + "/time": { + "get": { + "summary": "Deprecated APIs", + "operationId": "AuthService_GetSchoolTime", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetSchoolTimeResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "AuthService" + ] + } + }, "/token": { "delete": { "summary": "用户注销当前令牌", @@ -231,6 +277,29 @@ ] } }, + "/v1/doctor/page": { + "get": { + "summary": "HTML", + "operationId": "AuthService_GetDoctorPage", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetDoctorPageResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "AuthService" + ] + } + }, "/v1/token": { "get": { "summary": "用户获得Token基本信息", @@ -464,17 +533,71 @@ "AuthService" ] } + }, + "/wechat/sign": { + "get": { + "operationId": "AuthService_GetWeChatSignature", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetWeChatSignatureResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "url", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "AuthService" + ] + } } }, "definitions": { + "apiHttpBody": { + "type": "object", + "properties": { + "contentType": { + "type": "string", + "description": "The HTTP Content-Type header value specifying the content type of the body." + }, + "data": { + "type": "string", + "format": "byte", + "description": "The HTTP request/response body as raw binary." + }, + "extensions": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + }, + "description": "Application specific response metadata. Must be set in the first response\nfor streaming APIs." + } + }, + "description": "Message that represents an arbitrary HTTP body. It should only be used for\npayload formats that can't be represented as JSON, such as raw binary or\nan HTML page.\n\n\nThis message can be used both in streaming and non-streaming API methods in\nthe request as well as the response.\n\nIt can be used as a top-level request field, which is convenient if one\nwants to extract parameters from either the URL or HTTP template into the\nrequest fields and also want access to the raw HTTP body.\n\nExample:\n\n message GetResourceRequest {\n // A unique request id.\n string request_id = 1;\n\n // The raw HTTP body is bound to this field.\n google.api.HttpBody http_body = 2;\n\n }\n\n service ResourceService {\n rpc GetResource(GetResourceRequest)\n returns (google.api.HttpBody);\n rpc UpdateResource(google.api.HttpBody)\n returns (google.protobuf.Empty);\n\n }\n\nExample with streaming methods:\n\n service CaldavService {\n rpc GetCalendar(stream google.api.HttpBody)\n returns (stream google.api.HttpBody);\n rpc UpdateCalendar(stream google.api.HttpBody)\n returns (stream google.api.HttpBody);\n\n }\n\nUse of this type only changes how the request and response bodies are\nhandled, all other features will continue to work unchanged." + }, "protobufAny": { "type": "object", "properties": { "@type": { - "type": "string" + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." } }, - "additionalProperties": {} + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" }, "protobufNullValue": { "type": "string", @@ -617,6 +740,21 @@ }, "title": "用户绑定信息查询响应" }, + "v1GetDoctorPageResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/apiHttpBody" + } + } + }, "v1GetImageUploadTicketResponse": { "type": "object", "properties": { @@ -632,6 +770,21 @@ } } }, + "v1GetSchoolTimeResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1SchoolTime" + } + } + }, "v1GetTokenInfoResponse": { "type": "object", "properties": { @@ -782,6 +935,21 @@ } } }, + "v1GetWeChatSignatureResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1WeChatSignature" + } + } + }, "v1ImageUploadTicket": { "type": "object", "properties": { @@ -834,6 +1002,33 @@ } } }, + "v1PutUploadImageResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1PutUploadImageResponseData" + } + } + }, + "v1PutUploadImageResponseData": { + "type": "object", + "properties": { + "URL": { + "type": "string" + }, + "Size": { + "type": "integer", + "format": "int64" + } + } + }, "v1PutUserPrimaryBindLegacyResponse": { "type": "object", "properties": { @@ -858,6 +1053,37 @@ } } }, + "v1SchoolTime": { + "type": "object", + "properties": { + "schoolYear": { + "type": "string" + }, + "semester": { + "type": "string" + }, + "semesterStartTimestamp": { + "type": "integer", + "format": "int64" + }, + "weekNow": { + "type": "integer", + "format": "int64" + }, + "weekDayNow": { + "type": "integer", + "format": "int64" + }, + "timeStamp": { + "type": "integer", + "format": "int64" + }, + "section": { + "type": "integer", + "format": "int32" + } + } + }, "v1TokenInfo": { "type": "object", "properties": { @@ -906,6 +1132,27 @@ "type": "string" } } + }, + "v1WeChatSignature": { + "type": "object", + "properties": { + "sign": { + "type": "string" + }, + "nonce": { + "type": "string" + }, + "timestamp": { + "type": "integer", + "format": "int64" + }, + "appid": { + "type": "string" + }, + "url": { + "type": "string" + } + } } } } diff --git a/docs/swagger/gatewayapis/server/v1/manager.swagger.json b/docs/swagger/gatewayapis/server/v1/manager.swagger.json index bc83f42..93314d5 100644 --- a/docs/swagger/gatewayapis/server/v1/manager.swagger.json +++ b/docs/swagger/gatewayapis/server/v1/manager.swagger.json @@ -44,6 +44,9 @@ } } }, + "v1DeleteHTTPRouterResponse": { + "type": "object" + }, "v1GetHTTPRouterListResponse": { "type": "object", "properties": { @@ -55,6 +58,21 @@ } } }, + "v1GetHTTPRouterResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1HTTPRouter" + } + } + }, "v1HTTPRouter": { "type": "object", "properties": { @@ -111,6 +129,9 @@ } }, "title": "HTTP路由注册" + }, + "v1PostOrPutHTTPRouterResponse": { + "type": "object" } } } diff --git a/docs/swagger/gatewayapis/server/v1/register.swagger.json b/docs/swagger/gatewayapis/server/v1/register.swagger.json index 7736819..82ac121 100644 --- a/docs/swagger/gatewayapis/server/v1/register.swagger.json +++ b/docs/swagger/gatewayapis/server/v1/register.swagger.json @@ -121,6 +121,15 @@ }, "title": "HTTP路由注册" }, + "v1PostRegistGRPCMethodsResponse": { + "type": "object" + }, + "v1PostRegistHTTPRoutersResponse": { + "type": "object" + }, + "v1PostRegistServiceInstanceResponse": { + "type": "object" + }, "v1ServiceInstance": { "type": "object", "properties": { diff --git a/gatewayapis/auth/v1/auth.pb.go b/gatewayapis/auth/v1/auth.pb.go index ebad5ed..8af02cf 100644 --- a/gatewayapis/auth/v1/auth.pb.go +++ b/gatewayapis/auth/v1/auth.pb.go @@ -9,6 +9,7 @@ package authv1 import ( _ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options" _ "google.golang.org/genproto/googleapis/api/annotations" + httpbody "google.golang.org/genproto/googleapis/api/httpbody" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" _ "google.golang.org/protobuf/types/known/emptypb" @@ -2069,6 +2070,132 @@ func (x *GetImageUploadTicketResponse) GetData() *ImageUploadTicket { return nil } +type PutUploadImageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FType string `protobuf:"bytes,1,opt,name=fType,proto3" json:"fType,omitempty"` + Ticket string `protobuf:"bytes,2,opt,name=ticket,proto3" json:"ticket,omitempty"` + Usage string `protobuf:"bytes,3,opt,name=usage,proto3" json:"usage,omitempty"` +} + +func (x *PutUploadImageRequest) Reset() { + *x = PutUploadImageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PutUploadImageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PutUploadImageRequest) ProtoMessage() {} + +func (x *PutUploadImageRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PutUploadImageRequest.ProtoReflect.Descriptor instead. +func (*PutUploadImageRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{38} +} + +func (x *PutUploadImageRequest) GetFType() string { + if x != nil { + return x.FType + } + return "" +} + +func (x *PutUploadImageRequest) GetTicket() string { + if x != nil { + return x.Ticket + } + return "" +} + +func (x *PutUploadImageRequest) GetUsage() string { + if x != nil { + return x.Usage + } + return "" +} + +type PutUploadImageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *PutUploadImageResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *PutUploadImageResponse) Reset() { + *x = PutUploadImageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PutUploadImageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PutUploadImageResponse) ProtoMessage() {} + +func (x *PutUploadImageResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PutUploadImageResponse.ProtoReflect.Descriptor instead. +func (*PutUploadImageResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{39} +} + +func (x *PutUploadImageResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *PutUploadImageResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *PutUploadImageResponse) GetData() *PutUploadImageResponse_Data { + if x != nil { + return x.Data + } + return nil +} + type ImageUploadTicket struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2081,7 +2208,7 @@ type ImageUploadTicket struct { func (x *ImageUploadTicket) Reset() { *x = ImageUploadTicket{} if protoimpl.UnsafeEnabled { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[38] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2094,7 +2221,7 @@ func (x *ImageUploadTicket) String() string { func (*ImageUploadTicket) ProtoMessage() {} func (x *ImageUploadTicket) ProtoReflect() protoreflect.Message { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[38] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2107,7 +2234,7 @@ func (x *ImageUploadTicket) ProtoReflect() protoreflect.Message { // Deprecated: Use ImageUploadTicket.ProtoReflect.Descriptor instead. func (*ImageUploadTicket) Descriptor() ([]byte, []int) { - return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{38} + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{40} } func (x *ImageUploadTicket) GetTicket() string { @@ -2124,6 +2251,492 @@ func (x *ImageUploadTicket) GetValidTIme() uint32 { return 0 } +type GetDoctorPageRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetDoctorPageRequest) Reset() { + *x = GetDoctorPageRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDoctorPageRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDoctorPageRequest) ProtoMessage() {} + +func (x *GetDoctorPageRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDoctorPageRequest.ProtoReflect.Descriptor instead. +func (*GetDoctorPageRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{41} +} + +type GetDoctorPageResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *httpbody.HttpBody `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetDoctorPageResponse) Reset() { + *x = GetDoctorPageResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetDoctorPageResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetDoctorPageResponse) ProtoMessage() {} + +func (x *GetDoctorPageResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetDoctorPageResponse.ProtoReflect.Descriptor instead. +func (*GetDoctorPageResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{42} +} + +func (x *GetDoctorPageResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetDoctorPageResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetDoctorPageResponse) GetData() *httpbody.HttpBody { + if x != nil { + return x.Data + } + return nil +} + +type GetSchoolTimeRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetSchoolTimeRequest) Reset() { + *x = GetSchoolTimeRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSchoolTimeRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSchoolTimeRequest) ProtoMessage() {} + +func (x *GetSchoolTimeRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSchoolTimeRequest.ProtoReflect.Descriptor instead. +func (*GetSchoolTimeRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{43} +} + +type GetSchoolTimeResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *SchoolTime `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetSchoolTimeResponse) Reset() { + *x = GetSchoolTimeResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSchoolTimeResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSchoolTimeResponse) ProtoMessage() {} + +func (x *GetSchoolTimeResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSchoolTimeResponse.ProtoReflect.Descriptor instead. +func (*GetSchoolTimeResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{44} +} + +func (x *GetSchoolTimeResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetSchoolTimeResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetSchoolTimeResponse) GetData() *SchoolTime { + if x != nil { + return x.Data + } + return nil +} + +type SchoolTime struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + Semester string `protobuf:"bytes,2,opt,name=semester,proto3" json:"semester,omitempty"` + SemesterStartTimestamp uint32 `protobuf:"varint,3,opt,name=semester_start_timestamp,json=semesterStartTimestamp,proto3" json:"semester_start_timestamp,omitempty"` + WeekNow uint32 `protobuf:"varint,4,opt,name=weekNow,proto3" json:"weekNow,omitempty"` + WeekDayNow uint32 `protobuf:"varint,5,opt,name=weekDayNow,proto3" json:"weekDayNow,omitempty"` + TimeStamp uint32 `protobuf:"varint,6,opt,name=timeStamp,proto3" json:"timeStamp,omitempty"` + Section int32 `protobuf:"varint,7,opt,name=section,proto3" json:"section,omitempty"` +} + +func (x *SchoolTime) Reset() { + *x = SchoolTime{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SchoolTime) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SchoolTime) ProtoMessage() {} + +func (x *SchoolTime) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SchoolTime.ProtoReflect.Descriptor instead. +func (*SchoolTime) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{45} +} + +func (x *SchoolTime) GetSchoolYear() string { + if x != nil { + return x.SchoolYear + } + return "" +} + +func (x *SchoolTime) GetSemester() string { + if x != nil { + return x.Semester + } + return "" +} + +func (x *SchoolTime) GetSemesterStartTimestamp() uint32 { + if x != nil { + return x.SemesterStartTimestamp + } + return 0 +} + +func (x *SchoolTime) GetWeekNow() uint32 { + if x != nil { + return x.WeekNow + } + return 0 +} + +func (x *SchoolTime) GetWeekDayNow() uint32 { + if x != nil { + return x.WeekDayNow + } + return 0 +} + +func (x *SchoolTime) GetTimeStamp() uint32 { + if x != nil { + return x.TimeStamp + } + return 0 +} + +func (x *SchoolTime) GetSection() int32 { + if x != nil { + return x.Section + } + return 0 +} + +type GetWeChatSignatureRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Url string `protobuf:"bytes,1,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *GetWeChatSignatureRequest) Reset() { + *x = GetWeChatSignatureRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetWeChatSignatureRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWeChatSignatureRequest) ProtoMessage() {} + +func (x *GetWeChatSignatureRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetWeChatSignatureRequest.ProtoReflect.Descriptor instead. +func (*GetWeChatSignatureRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{46} +} + +func (x *GetWeChatSignatureRequest) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + +type GetWeChatSignatureResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *WeChatSignature `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetWeChatSignatureResponse) Reset() { + *x = GetWeChatSignatureResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetWeChatSignatureResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetWeChatSignatureResponse) ProtoMessage() {} + +func (x *GetWeChatSignatureResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetWeChatSignatureResponse.ProtoReflect.Descriptor instead. +func (*GetWeChatSignatureResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{47} +} + +func (x *GetWeChatSignatureResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetWeChatSignatureResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetWeChatSignatureResponse) GetData() *WeChatSignature { + if x != nil { + return x.Data + } + return nil +} + +type WeChatSignature struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Sign string `protobuf:"bytes,1,opt,name=sign,proto3" json:"sign,omitempty"` + Nonce string `protobuf:"bytes,2,opt,name=nonce,proto3" json:"nonce,omitempty"` + Timestamp uint32 `protobuf:"varint,3,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Appid string `protobuf:"bytes,4,opt,name=appid,proto3" json:"appid,omitempty"` + Url string `protobuf:"bytes,5,opt,name=url,proto3" json:"url,omitempty"` +} + +func (x *WeChatSignature) Reset() { + *x = WeChatSignature{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[48] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WeChatSignature) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WeChatSignature) ProtoMessage() {} + +func (x *WeChatSignature) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[48] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WeChatSignature.ProtoReflect.Descriptor instead. +func (*WeChatSignature) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{48} +} + +func (x *WeChatSignature) GetSign() string { + if x != nil { + return x.Sign + } + return "" +} + +func (x *WeChatSignature) GetNonce() string { + if x != nil { + return x.Nonce + } + return "" +} + +func (x *WeChatSignature) GetTimestamp() uint32 { + if x != nil { + return x.Timestamp + } + return 0 +} + +func (x *WeChatSignature) GetAppid() string { + if x != nil { + return x.Appid + } + return "" +} + +func (x *WeChatSignature) GetUrl() string { + if x != nil { + return x.Url + } + return "" +} + type GetBindListByUserIdListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2136,7 +2749,7 @@ type GetBindListByUserIdListRequest struct { func (x *GetBindListByUserIdListRequest) Reset() { *x = GetBindListByUserIdListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[39] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2149,7 +2762,7 @@ func (x *GetBindListByUserIdListRequest) String() string { func (*GetBindListByUserIdListRequest) ProtoMessage() {} func (x *GetBindListByUserIdListRequest) ProtoReflect() protoreflect.Message { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[39] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2162,7 +2775,7 @@ func (x *GetBindListByUserIdListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBindListByUserIdListRequest.ProtoReflect.Descriptor instead. func (*GetBindListByUserIdListRequest) Descriptor() ([]byte, []int) { - return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{39} + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{49} } func (x *GetBindListByUserIdListRequest) GetUserIds() []string { @@ -2187,7 +2800,7 @@ type GetBindListByUserIdListResponse struct { func (x *GetBindListByUserIdListResponse) Reset() { *x = GetBindListByUserIdListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[40] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2200,7 +2813,7 @@ func (x *GetBindListByUserIdListResponse) String() string { func (*GetBindListByUserIdListResponse) ProtoMessage() {} func (x *GetBindListByUserIdListResponse) ProtoReflect() protoreflect.Message { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[40] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2213,7 +2826,7 @@ func (x *GetBindListByUserIdListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBindListByUserIdListResponse.ProtoReflect.Descriptor instead. func (*GetBindListByUserIdListResponse) Descriptor() ([]byte, []int) { - return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{40} + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{50} } func (x *GetBindListByUserIdListResponse) GetError() uint32 { @@ -2260,7 +2873,7 @@ type Bind struct { func (x *Bind) Reset() { *x = Bind{} if protoimpl.UnsafeEnabled { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[41] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[51] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2273,7 +2886,7 @@ func (x *Bind) String() string { func (*Bind) ProtoMessage() {} func (x *Bind) ProtoReflect() protoreflect.Message { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[41] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[51] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2286,7 +2899,7 @@ func (x *Bind) ProtoReflect() protoreflect.Message { // Deprecated: Use Bind.ProtoReflect.Descriptor instead. func (*Bind) Descriptor() ([]byte, []int) { - return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{41} + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{51} } func (x *Bind) GetUserId() string { @@ -2350,7 +2963,7 @@ type GetUserBindListResponse_Data struct { func (x *GetUserBindListResponse_Data) Reset() { *x = GetUserBindListResponse_Data{} if protoimpl.UnsafeEnabled { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[42] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[52] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2363,7 +2976,7 @@ func (x *GetUserBindListResponse_Data) String() string { func (*GetUserBindListResponse_Data) ProtoMessage() {} func (x *GetUserBindListResponse_Data) ProtoReflect() protoreflect.Message { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[42] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[52] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2405,7 +3018,7 @@ type GetUserLoginHistoryResponse_Data struct { func (x *GetUserLoginHistoryResponse_Data) Reset() { *x = GetUserLoginHistoryResponse_Data{} if protoimpl.UnsafeEnabled { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[43] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[53] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2418,7 +3031,7 @@ func (x *GetUserLoginHistoryResponse_Data) String() string { func (*GetUserLoginHistoryResponse_Data) ProtoMessage() {} func (x *GetUserLoginHistoryResponse_Data) ProtoReflect() protoreflect.Message { - mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[43] + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[53] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2448,6 +3061,61 @@ func (x *GetUserLoginHistoryResponse_Data) GetDetail() []*LoginSession { return nil } +type PutUploadImageResponse_Data struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + URL string `protobuf:"bytes,1,opt,name=URL,proto3" json:"URL,omitempty"` + Size uint32 `protobuf:"varint,2,opt,name=Size,proto3" json:"Size,omitempty"` +} + +func (x *PutUploadImageResponse_Data) Reset() { + *x = PutUploadImageResponse_Data{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[54] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PutUploadImageResponse_Data) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PutUploadImageResponse_Data) ProtoMessage() {} + +func (x *PutUploadImageResponse_Data) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_auth_v1_auth_proto_msgTypes[54] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PutUploadImageResponse_Data.ProtoReflect.Descriptor instead. +func (*PutUploadImageResponse_Data) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{39, 0} +} + +func (x *PutUploadImageResponse_Data) GetURL() string { + if x != nil { + return x.URL + } + return "" +} + +func (x *PutUploadImageResponse_Data) GetSize() uint32 { + if x != nil { + return x.Size + } + return 0 +} + var File_gatewayapis_auth_v1_auth_proto protoreflect.FileDescriptor var file_gatewayapis_auth_v1_auth_proto_rawDesc = []byte{ @@ -2456,398 +3124,500 @@ var file_gatewayapis_auth_v1_auth_proto_rawDesc = []byte{ 0x12, 0x13, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, - 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, - 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x15, - 0x0a, 0x13, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x72, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe1, 0x01, 0x0a, 0x09, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, - 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, - 0x3c, 0x0a, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0e, 0x32, 0x1e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2a, 0x0a, - 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3d, 0x0a, 0x13, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0xe5, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, - 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x45, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5b, 0x0a, - 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0a, 0x62, - 0x69, 0x6e, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, - 0x62, 0x69, 0x6e, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x6c, 0x0a, 0x08, 0x42, 0x69, - 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3d, - 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x37, 0x0a, - 0x15, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x22, 0x40, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, + 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, + 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, + 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0x72, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0xe1, 0x01, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, + 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x09, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3d, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, + 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xe5, 0x01, + 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x45, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5b, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0a, 0x62, 0x69, 0x6e, 0x64, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x62, 0x69, 0x6e, 0x64, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x6c, 0x0a, 0x08, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, + 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, + 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x41, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, + 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3d, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x5c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x70, - 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x70, 0x70, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x68, 0x6f, 0x77, 0x41, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, - 0x68, 0x6f, 0x77, 0x41, 0x6c, 0x6c, 0x22, 0xe9, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x57, 0x0a, 0x04, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, - 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, - 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x26, 0x0a, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, - 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x44, 0x65, 0x73, 0x63, 0x22, 0x45, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, - 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x46, - 0x0a, 0x1c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x35, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x42, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x37, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, + 0x44, 0x22, 0x40, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, + 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x22, 0x5c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x70, 0x70, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x03, 0x72, 0x70, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x41, + 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x41, 0x6c, + 0x6c, 0x22, 0xe9, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, + 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0x57, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, + 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0xf2, 0x01, + 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x73, 0x63, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, + 0x73, 0x63, 0x22, 0x45, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x63, 0x72, 0x79, + 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x46, 0x0a, 0x1c, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, - 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3f, 0x0a, 0x15, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x17, 0x0a, 0x15, 0x50, - 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x22, 0x40, 0x0a, 0x16, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x67, 0x22, 0x35, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x42, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x1a, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x16, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x42, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x17, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x40, 0x0a, 0x16, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x42, 0x0a, 0x18, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3d, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3d, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x64, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, + 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x22, 0x1b, 0x0a, 0x19, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x44, 0x0a, 0x1a, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x41, 0x0a, 0x1f, 0x50, 0x75, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, + 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, + 0x65, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x20, 0x50, + 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, + 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x1d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x3a, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, + 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5b, 0x0a, 0x15, 0x50, + 0x75, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, + 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x16, 0x50, 0x75, 0x74, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x61, 0x74, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x44, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x64, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x77, 0x53, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x77, 0x53, - 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x22, 0x1b, 0x0a, 0x19, 0x50, 0x75, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x44, 0x0a, 0x1a, 0x50, 0x75, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x41, 0x0a, - 0x1f, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, - 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x22, 0x4a, 0x0a, 0x20, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, - 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x50, 0x75, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x1a, 0x2c, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x52, 0x4c, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x52, 0x4c, 0x12, 0x12, 0x0a, 0x04, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x22, + 0x49, 0x0a, 0x11, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, + 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x49, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x49, 0x6d, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x44, 0x6f, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x69, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x74, 0x6f, 0x72, 0x50, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, + 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x16, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf4, 0x01, 0x0a, 0x0a, + 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x65, + 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, + 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x2d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x57, 0x65, 0x43, 0x68, 0x61, 0x74, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, + 0x6c, 0x22, 0x7e, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x57, 0x65, 0x43, 0x68, 0x61, 0x74, 0x53, 0x69, + 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x43, 0x68, + 0x61, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x81, 0x01, 0x0a, 0x0f, 0x57, 0x65, 0x43, 0x68, 0x61, 0x74, 0x53, 0x69, 0x67, 0x6e, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, + 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, + 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, + 0x70, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x3a, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, + 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x73, 0x22, 0x78, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, + 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x1d, 0x0a, 0x1b, - 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, - 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, - 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, - 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, - 0x22, 0x49, 0x0a, 0x11, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, - 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x49, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x49, 0x6d, 0x65, 0x22, 0x3a, 0x0a, 0x1e, 0x47, - 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x22, 0x78, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x42, 0x69, - 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x19, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0xcb, 0x01, 0x0a, 0x04, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, - 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x75, 0x69, 0x64, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x75, 0x69, 0x64, 0x32, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, - 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2a, - 0x22, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, - 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x41, 0x55, 0x54, - 0x48, 0x10, 0x01, 0x32, 0xf2, 0x12, 0x0a, 0x0b, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x89, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2d, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x01, 0x0a, 0x04, + 0x42, 0x69, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x69, + 0x64, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x69, 0x64, 0x32, 0x12, 0x18, + 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, + 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, + 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, + 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2a, 0x22, 0x0a, 0x09, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, + 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x41, 0x55, 0x54, 0x48, 0x10, 0x01, 0x32, 0xf1, 0x16, + 0x0a, 0x0b, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x89, 0x01, + 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1e, 0x12, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5a, 0x11, 0x12, 0x0f, - 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, - 0x7d, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, - 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x2a, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x5a, 0x08, 0x2a, 0x06, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x9a, - 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x09, 0x2f, 0x76, 0x31, + 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x7d, 0x0a, 0x0b, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x15, 0x2a, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5a, 0x08, + 0x2a, 0x06, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x9a, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x2e, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, + 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x2f, 0x6c, + 0x69, 0x73, 0x74, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, + 0x62, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x77, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x42, 0x69, 0x6e, 0x64, 0x12, 0x27, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, + 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x12, 0x91, + 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, + 0x64, 0x12, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x20, 0x2a, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6e, + 0x64, 0x5a, 0x0f, 0x2a, 0x0d, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x62, 0x69, + 0x6e, 0x64, 0x12, 0xb2, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, + 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2f, 0x2e, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, + 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5a, 0x18, 0x12, + 0x16, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x12, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x2a, 0x14, 0x2f, + 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x5a, 0x10, 0x2a, 0x0e, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, + 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0xa3, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x2c, 0x2e, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, + 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x2f, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x5a, 0x15, 0x12, 0x13, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, + 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x74, 0x0a, 0x11, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, - 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, - 0x62, 0x69, 0x6e, 0x64, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x63, 0x6f, - 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x77, 0x0a, 0x0b, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x27, 0x2e, 0x67, 0x61, 0x74, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x0e, 0x50, + 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2a, 0x2e, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, + 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, - 0x62, 0x69, 0x6e, 0x64, 0x12, 0x91, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, - 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x5a, 0x0f, 0x2a, 0x0d, 0x2f, 0x63, 0x6f, 0x6e, 0x73, - 0x6f, 0x6c, 0x65, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x12, 0xb2, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x12, 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, - 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, - 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x16, 0x2f, 0x76, 0x31, - 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x68, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x5a, 0x18, 0x12, 0x16, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, - 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0xab, 0x01, - 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, - 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x28, 0x2a, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, - 0x67, 0x69, 0x6e, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5a, 0x10, 0x2a, 0x0e, 0x2f, 0x63, 0x6f, - 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0xa3, 0x01, 0x0a, 0x10, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x12, 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, - 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, - 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, - 0x62, 0x69, 0x6e, 0x64, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5a, 0x15, 0x12, 0x13, 0x2f, 0x63, - 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x2f, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x12, 0x74, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x74, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, + 0x67, 0x61, 0x63, 0x79, 0x12, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x6b, 0x0a, 0x0e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, - 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x27, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x74, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x2d, 0x2e, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, - 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x12, 0x50, - 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, - 0x64, 0x12, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, 0x01, 0x0a, 0x18, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, - 0x79, 0x12, 0x34, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x12, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x2e, 0x2e, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, + 0x01, 0x0a, 0x18, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, + 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x34, 0x2e, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7d, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x0e, 0x50, 0x75, 0x74, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, - 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x12, 0x7d, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, - 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x6f, + 0x63, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, - 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, - 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x86, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, - 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x2e, 0x67, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x34, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xce, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, - 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, - 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, - 0x64, 0x6b, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, - 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x47, 0x41, 0x58, 0xaa, 0x02, 0x13, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x47, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0xe2, - 0x02, 0x1f, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x41, 0x75, - 0x74, 0x68, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x15, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, - 0x3a, 0x41, 0x75, 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x65, 0x74, 0x44, 0x6f, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, + 0x74, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x6f, 0x63, + 0x74, 0x6f, 0x72, 0x2f, 0x70, 0x61, 0x67, 0x65, 0x5a, 0x09, 0x12, 0x07, 0x2f, 0x64, 0x6f, 0x63, + 0x74, 0x6f, 0x72, 0x12, 0x75, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, + 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0d, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x07, 0x12, 0x05, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x57, 0x65, 0x43, 0x68, 0x61, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, + 0x65, 0x12, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x43, 0x68, 0x61, + 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x43, 0x68, 0x61, + 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x77, 0x65, 0x63, + 0x68, 0x61, 0x74, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x86, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, + 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, + 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x42, 0xce, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x41, + 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, + 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x3b, + 0x61, 0x75, 0x74, 0x68, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x41, 0x58, 0xaa, 0x02, 0x13, 0x47, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x2e, + 0x56, 0x31, 0xca, 0x02, 0x13, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x47, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, 0x68, 0x3a, 0x3a, + 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2863,7 +3633,7 @@ func file_gatewayapis_auth_v1_auth_proto_rawDescGZIP() []byte { } var file_gatewayapis_auth_v1_auth_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_gatewayapis_auth_v1_auth_proto_msgTypes = make([]protoimpl.MessageInfo, 44) +var file_gatewayapis_auth_v1_auth_proto_msgTypes = make([]protoimpl.MessageInfo, 55) var file_gatewayapis_auth_v1_auth_proto_goTypes = []interface{}{ (TokenType)(0), // 0: gatewayapis.auth.v1.TokenType (*GetTokenInfoRequest)(nil), // 1: gatewayapis.auth.v1.GetTokenInfoRequest @@ -2904,66 +3674,90 @@ var file_gatewayapis_auth_v1_auth_proto_goTypes = []interface{}{ (*PutUserPrimaryBindLegacyResponse)(nil), // 36: gatewayapis.auth.v1.PutUserPrimaryBindLegacyResponse (*GetImageUploadTicketRequest)(nil), // 37: gatewayapis.auth.v1.GetImageUploadTicketRequest (*GetImageUploadTicketResponse)(nil), // 38: gatewayapis.auth.v1.GetImageUploadTicketResponse - (*ImageUploadTicket)(nil), // 39: gatewayapis.auth.v1.ImageUploadTicket - (*GetBindListByUserIdListRequest)(nil), // 40: gatewayapis.auth.v1.GetBindListByUserIdListRequest - (*GetBindListByUserIdListResponse)(nil), // 41: gatewayapis.auth.v1.GetBindListByUserIdListResponse - (*Bind)(nil), // 42: gatewayapis.auth.v1.Bind - (*GetUserBindListResponse_Data)(nil), // 43: gatewayapis.auth.v1.GetUserBindListResponse.Data - (*GetUserLoginHistoryResponse_Data)(nil), // 44: gatewayapis.auth.v1.GetUserLoginHistoryResponse.Data - (*structpb.Struct)(nil), // 45: google.protobuf.Struct + (*PutUploadImageRequest)(nil), // 39: gatewayapis.auth.v1.PutUploadImageRequest + (*PutUploadImageResponse)(nil), // 40: gatewayapis.auth.v1.PutUploadImageResponse + (*ImageUploadTicket)(nil), // 41: gatewayapis.auth.v1.ImageUploadTicket + (*GetDoctorPageRequest)(nil), // 42: gatewayapis.auth.v1.GetDoctorPageRequest + (*GetDoctorPageResponse)(nil), // 43: gatewayapis.auth.v1.GetDoctorPageResponse + (*GetSchoolTimeRequest)(nil), // 44: gatewayapis.auth.v1.GetSchoolTimeRequest + (*GetSchoolTimeResponse)(nil), // 45: gatewayapis.auth.v1.GetSchoolTimeResponse + (*SchoolTime)(nil), // 46: gatewayapis.auth.v1.SchoolTime + (*GetWeChatSignatureRequest)(nil), // 47: gatewayapis.auth.v1.GetWeChatSignatureRequest + (*GetWeChatSignatureResponse)(nil), // 48: gatewayapis.auth.v1.GetWeChatSignatureResponse + (*WeChatSignature)(nil), // 49: gatewayapis.auth.v1.WeChatSignature + (*GetBindListByUserIdListRequest)(nil), // 50: gatewayapis.auth.v1.GetBindListByUserIdListRequest + (*GetBindListByUserIdListResponse)(nil), // 51: gatewayapis.auth.v1.GetBindListByUserIdListResponse + (*Bind)(nil), // 52: gatewayapis.auth.v1.Bind + (*GetUserBindListResponse_Data)(nil), // 53: gatewayapis.auth.v1.GetUserBindListResponse.Data + (*GetUserLoginHistoryResponse_Data)(nil), // 54: gatewayapis.auth.v1.GetUserLoginHistoryResponse.Data + (*PutUploadImageResponse_Data)(nil), // 55: gatewayapis.auth.v1.PutUploadImageResponse.Data + (*httpbody.HttpBody)(nil), // 56: google.api.HttpBody + (*structpb.Struct)(nil), // 57: google.protobuf.Struct } var file_gatewayapis_auth_v1_auth_proto_depIdxs = []int32{ 3, // 0: gatewayapis.auth.v1.GetTokenInfoResponse.data:type_name -> gatewayapis.auth.v1.TokenInfo 0, // 1: gatewayapis.auth.v1.TokenInfo.tokenType:type_name -> gatewayapis.auth.v1.TokenType - 43, // 2: gatewayapis.auth.v1.GetUserBindListResponse.data:type_name -> gatewayapis.auth.v1.GetUserBindListResponse.Data - 44, // 3: gatewayapis.auth.v1.GetUserLoginHistoryResponse.data:type_name -> gatewayapis.auth.v1.GetUserLoginHistoryResponse.Data + 53, // 2: gatewayapis.auth.v1.GetUserBindListResponse.data:type_name -> gatewayapis.auth.v1.GetUserBindListResponse.Data + 54, // 3: gatewayapis.auth.v1.GetUserLoginHistoryResponse.data:type_name -> gatewayapis.auth.v1.GetUserLoginHistoryResponse.Data 32, // 4: gatewayapis.auth.v1.GetUserInfoLegacyResponse.data:type_name -> gatewayapis.auth.v1.UserInfoLegacy - 39, // 5: gatewayapis.auth.v1.GetImageUploadTicketResponse.Data:type_name -> gatewayapis.auth.v1.ImageUploadTicket - 42, // 6: gatewayapis.auth.v1.GetBindListByUserIdListResponse.data:type_name -> gatewayapis.auth.v1.Bind - 45, // 7: gatewayapis.auth.v1.Bind.attributes:type_name -> google.protobuf.Struct - 8, // 8: gatewayapis.auth.v1.GetUserBindListResponse.Data.bindDetail:type_name -> gatewayapis.auth.v1.BindInfo - 15, // 9: gatewayapis.auth.v1.GetUserLoginHistoryResponse.Data.detail:type_name -> gatewayapis.auth.v1.LoginSession - 1, // 10: gatewayapis.auth.v1.AuthService.GetTokenInfo:input_type -> gatewayapis.auth.v1.GetTokenInfoRequest - 4, // 11: gatewayapis.auth.v1.AuthService.DeleteToken:input_type -> gatewayapis.auth.v1.DeleteTokenRequest - 6, // 12: gatewayapis.auth.v1.AuthService.GetUserBindList:input_type -> gatewayapis.auth.v1.GetUserBindListRequest - 9, // 13: gatewayapis.auth.v1.AuthService.GetUserBind:input_type -> gatewayapis.auth.v1.GetUserBindRequest - 11, // 14: gatewayapis.auth.v1.AuthService.DeleteUserBind:input_type -> gatewayapis.auth.v1.DeleteUserBindRequest - 13, // 15: gatewayapis.auth.v1.AuthService.GetUserLoginHistory:input_type -> gatewayapis.auth.v1.GetUserLoginHistoryRequest - 16, // 16: gatewayapis.auth.v1.AuthService.DeleteUserLoginToken:input_type -> gatewayapis.auth.v1.DeleteUserLoginTokenRequest - 18, // 17: gatewayapis.auth.v1.AuthService.GetUserBindCheck:input_type -> gatewayapis.auth.v1.GetUserBindCheckRequest - 20, // 18: gatewayapis.auth.v1.AuthService.GetUserDeviceList:input_type -> gatewayapis.auth.v1.GetUserDeviceListRequest - 22, // 19: gatewayapis.auth.v1.AuthService.GetUserDevice:input_type -> gatewayapis.auth.v1.GetUserDeviceRequest - 24, // 20: gatewayapis.auth.v1.AuthService.PostUserDevice:input_type -> gatewayapis.auth.v1.PostUserDeviceRequest - 26, // 21: gatewayapis.auth.v1.AuthService.DeleteUserDevice:input_type -> gatewayapis.auth.v1.DeleteUserDeviceRequest - 28, // 22: gatewayapis.auth.v1.AuthService.GetUserInfo:input_type -> gatewayapis.auth.v1.GetUserInfoRequest - 30, // 23: gatewayapis.auth.v1.AuthService.GetUserInfoLegacy:input_type -> gatewayapis.auth.v1.GetUserInfoLegacyRequest - 33, // 24: gatewayapis.auth.v1.AuthService.PutUserPrimaryBind:input_type -> gatewayapis.auth.v1.PutUserPrimaryBindRequest - 35, // 25: gatewayapis.auth.v1.AuthService.PutUserPrimaryBindLegacy:input_type -> gatewayapis.auth.v1.PutUserPrimaryBindLegacyRequest - 37, // 26: gatewayapis.auth.v1.AuthService.GetImageUploadTicket:input_type -> gatewayapis.auth.v1.GetImageUploadTicketRequest - 40, // 27: gatewayapis.auth.v1.AuthService.GetBindListByUserIdList:input_type -> gatewayapis.auth.v1.GetBindListByUserIdListRequest - 2, // 28: gatewayapis.auth.v1.AuthService.GetTokenInfo:output_type -> gatewayapis.auth.v1.GetTokenInfoResponse - 5, // 29: gatewayapis.auth.v1.AuthService.DeleteToken:output_type -> gatewayapis.auth.v1.DeleteTokenResponse - 7, // 30: gatewayapis.auth.v1.AuthService.GetUserBindList:output_type -> gatewayapis.auth.v1.GetUserBindListResponse - 10, // 31: gatewayapis.auth.v1.AuthService.GetUserBind:output_type -> gatewayapis.auth.v1.GetUserBindResponse - 12, // 32: gatewayapis.auth.v1.AuthService.DeleteUserBind:output_type -> gatewayapis.auth.v1.DeleteUserBindResponse - 14, // 33: gatewayapis.auth.v1.AuthService.GetUserLoginHistory:output_type -> gatewayapis.auth.v1.GetUserLoginHistoryResponse - 17, // 34: gatewayapis.auth.v1.AuthService.DeleteUserLoginToken:output_type -> gatewayapis.auth.v1.DeleteUserLoginTokenResponse - 19, // 35: gatewayapis.auth.v1.AuthService.GetUserBindCheck:output_type -> gatewayapis.auth.v1.GetUserBindCheckResponse - 21, // 36: gatewayapis.auth.v1.AuthService.GetUserDeviceList:output_type -> gatewayapis.auth.v1.GetUserDeviceListResponse - 23, // 37: gatewayapis.auth.v1.AuthService.GetUserDevice:output_type -> gatewayapis.auth.v1.GetUserDeviceResponse - 25, // 38: gatewayapis.auth.v1.AuthService.PostUserDevice:output_type -> gatewayapis.auth.v1.PostUserDeviceResponse - 27, // 39: gatewayapis.auth.v1.AuthService.DeleteUserDevice:output_type -> gatewayapis.auth.v1.DeleteUserDeviceResponse - 29, // 40: gatewayapis.auth.v1.AuthService.GetUserInfo:output_type -> gatewayapis.auth.v1.GetUserInfoResponse - 31, // 41: gatewayapis.auth.v1.AuthService.GetUserInfoLegacy:output_type -> gatewayapis.auth.v1.GetUserInfoLegacyResponse - 34, // 42: gatewayapis.auth.v1.AuthService.PutUserPrimaryBind:output_type -> gatewayapis.auth.v1.PutUserPrimaryBindResponse - 36, // 43: gatewayapis.auth.v1.AuthService.PutUserPrimaryBindLegacy:output_type -> gatewayapis.auth.v1.PutUserPrimaryBindLegacyResponse - 38, // 44: gatewayapis.auth.v1.AuthService.GetImageUploadTicket:output_type -> gatewayapis.auth.v1.GetImageUploadTicketResponse - 41, // 45: gatewayapis.auth.v1.AuthService.GetBindListByUserIdList:output_type -> gatewayapis.auth.v1.GetBindListByUserIdListResponse - 28, // [28:46] is the sub-list for method output_type - 10, // [10:28] is the sub-list for method input_type - 10, // [10:10] is the sub-list for extension type_name - 10, // [10:10] is the sub-list for extension extendee - 0, // [0:10] is the sub-list for field type_name + 41, // 5: gatewayapis.auth.v1.GetImageUploadTicketResponse.Data:type_name -> gatewayapis.auth.v1.ImageUploadTicket + 55, // 6: gatewayapis.auth.v1.PutUploadImageResponse.data:type_name -> gatewayapis.auth.v1.PutUploadImageResponse.Data + 56, // 7: gatewayapis.auth.v1.GetDoctorPageResponse.data:type_name -> google.api.HttpBody + 46, // 8: gatewayapis.auth.v1.GetSchoolTimeResponse.data:type_name -> gatewayapis.auth.v1.SchoolTime + 49, // 9: gatewayapis.auth.v1.GetWeChatSignatureResponse.data:type_name -> gatewayapis.auth.v1.WeChatSignature + 52, // 10: gatewayapis.auth.v1.GetBindListByUserIdListResponse.data:type_name -> gatewayapis.auth.v1.Bind + 57, // 11: gatewayapis.auth.v1.Bind.attributes:type_name -> google.protobuf.Struct + 8, // 12: gatewayapis.auth.v1.GetUserBindListResponse.Data.bindDetail:type_name -> gatewayapis.auth.v1.BindInfo + 15, // 13: gatewayapis.auth.v1.GetUserLoginHistoryResponse.Data.detail:type_name -> gatewayapis.auth.v1.LoginSession + 1, // 14: gatewayapis.auth.v1.AuthService.GetTokenInfo:input_type -> gatewayapis.auth.v1.GetTokenInfoRequest + 4, // 15: gatewayapis.auth.v1.AuthService.DeleteToken:input_type -> gatewayapis.auth.v1.DeleteTokenRequest + 6, // 16: gatewayapis.auth.v1.AuthService.GetUserBindList:input_type -> gatewayapis.auth.v1.GetUserBindListRequest + 9, // 17: gatewayapis.auth.v1.AuthService.GetUserBind:input_type -> gatewayapis.auth.v1.GetUserBindRequest + 11, // 18: gatewayapis.auth.v1.AuthService.DeleteUserBind:input_type -> gatewayapis.auth.v1.DeleteUserBindRequest + 13, // 19: gatewayapis.auth.v1.AuthService.GetUserLoginHistory:input_type -> gatewayapis.auth.v1.GetUserLoginHistoryRequest + 16, // 20: gatewayapis.auth.v1.AuthService.DeleteUserLoginToken:input_type -> gatewayapis.auth.v1.DeleteUserLoginTokenRequest + 18, // 21: gatewayapis.auth.v1.AuthService.GetUserBindCheck:input_type -> gatewayapis.auth.v1.GetUserBindCheckRequest + 20, // 22: gatewayapis.auth.v1.AuthService.GetUserDeviceList:input_type -> gatewayapis.auth.v1.GetUserDeviceListRequest + 22, // 23: gatewayapis.auth.v1.AuthService.GetUserDevice:input_type -> gatewayapis.auth.v1.GetUserDeviceRequest + 24, // 24: gatewayapis.auth.v1.AuthService.PostUserDevice:input_type -> gatewayapis.auth.v1.PostUserDeviceRequest + 26, // 25: gatewayapis.auth.v1.AuthService.DeleteUserDevice:input_type -> gatewayapis.auth.v1.DeleteUserDeviceRequest + 28, // 26: gatewayapis.auth.v1.AuthService.GetUserInfo:input_type -> gatewayapis.auth.v1.GetUserInfoRequest + 30, // 27: gatewayapis.auth.v1.AuthService.GetUserInfoLegacy:input_type -> gatewayapis.auth.v1.GetUserInfoLegacyRequest + 33, // 28: gatewayapis.auth.v1.AuthService.PutUserPrimaryBind:input_type -> gatewayapis.auth.v1.PutUserPrimaryBindRequest + 35, // 29: gatewayapis.auth.v1.AuthService.PutUserPrimaryBindLegacy:input_type -> gatewayapis.auth.v1.PutUserPrimaryBindLegacyRequest + 37, // 30: gatewayapis.auth.v1.AuthService.GetImageUploadTicket:input_type -> gatewayapis.auth.v1.GetImageUploadTicketRequest + 39, // 31: gatewayapis.auth.v1.AuthService.PutUploadImage:input_type -> gatewayapis.auth.v1.PutUploadImageRequest + 42, // 32: gatewayapis.auth.v1.AuthService.GetDoctorPage:input_type -> gatewayapis.auth.v1.GetDoctorPageRequest + 44, // 33: gatewayapis.auth.v1.AuthService.GetSchoolTime:input_type -> gatewayapis.auth.v1.GetSchoolTimeRequest + 47, // 34: gatewayapis.auth.v1.AuthService.GetWeChatSignature:input_type -> gatewayapis.auth.v1.GetWeChatSignatureRequest + 50, // 35: gatewayapis.auth.v1.AuthService.GetBindListByUserIdList:input_type -> gatewayapis.auth.v1.GetBindListByUserIdListRequest + 2, // 36: gatewayapis.auth.v1.AuthService.GetTokenInfo:output_type -> gatewayapis.auth.v1.GetTokenInfoResponse + 5, // 37: gatewayapis.auth.v1.AuthService.DeleteToken:output_type -> gatewayapis.auth.v1.DeleteTokenResponse + 7, // 38: gatewayapis.auth.v1.AuthService.GetUserBindList:output_type -> gatewayapis.auth.v1.GetUserBindListResponse + 10, // 39: gatewayapis.auth.v1.AuthService.GetUserBind:output_type -> gatewayapis.auth.v1.GetUserBindResponse + 12, // 40: gatewayapis.auth.v1.AuthService.DeleteUserBind:output_type -> gatewayapis.auth.v1.DeleteUserBindResponse + 14, // 41: gatewayapis.auth.v1.AuthService.GetUserLoginHistory:output_type -> gatewayapis.auth.v1.GetUserLoginHistoryResponse + 17, // 42: gatewayapis.auth.v1.AuthService.DeleteUserLoginToken:output_type -> gatewayapis.auth.v1.DeleteUserLoginTokenResponse + 19, // 43: gatewayapis.auth.v1.AuthService.GetUserBindCheck:output_type -> gatewayapis.auth.v1.GetUserBindCheckResponse + 21, // 44: gatewayapis.auth.v1.AuthService.GetUserDeviceList:output_type -> gatewayapis.auth.v1.GetUserDeviceListResponse + 23, // 45: gatewayapis.auth.v1.AuthService.GetUserDevice:output_type -> gatewayapis.auth.v1.GetUserDeviceResponse + 25, // 46: gatewayapis.auth.v1.AuthService.PostUserDevice:output_type -> gatewayapis.auth.v1.PostUserDeviceResponse + 27, // 47: gatewayapis.auth.v1.AuthService.DeleteUserDevice:output_type -> gatewayapis.auth.v1.DeleteUserDeviceResponse + 29, // 48: gatewayapis.auth.v1.AuthService.GetUserInfo:output_type -> gatewayapis.auth.v1.GetUserInfoResponse + 31, // 49: gatewayapis.auth.v1.AuthService.GetUserInfoLegacy:output_type -> gatewayapis.auth.v1.GetUserInfoLegacyResponse + 34, // 50: gatewayapis.auth.v1.AuthService.PutUserPrimaryBind:output_type -> gatewayapis.auth.v1.PutUserPrimaryBindResponse + 36, // 51: gatewayapis.auth.v1.AuthService.PutUserPrimaryBindLegacy:output_type -> gatewayapis.auth.v1.PutUserPrimaryBindLegacyResponse + 38, // 52: gatewayapis.auth.v1.AuthService.GetImageUploadTicket:output_type -> gatewayapis.auth.v1.GetImageUploadTicketResponse + 40, // 53: gatewayapis.auth.v1.AuthService.PutUploadImage:output_type -> gatewayapis.auth.v1.PutUploadImageResponse + 43, // 54: gatewayapis.auth.v1.AuthService.GetDoctorPage:output_type -> gatewayapis.auth.v1.GetDoctorPageResponse + 45, // 55: gatewayapis.auth.v1.AuthService.GetSchoolTime:output_type -> gatewayapis.auth.v1.GetSchoolTimeResponse + 48, // 56: gatewayapis.auth.v1.AuthService.GetWeChatSignature:output_type -> gatewayapis.auth.v1.GetWeChatSignatureResponse + 51, // 57: gatewayapis.auth.v1.AuthService.GetBindListByUserIdList:output_type -> gatewayapis.auth.v1.GetBindListByUserIdListResponse + 36, // [36:58] is the sub-list for method output_type + 14, // [14:36] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_gatewayapis_auth_v1_auth_proto_init() } @@ -3429,7 +4223,7 @@ func file_gatewayapis_auth_v1_auth_proto_init() { } } file_gatewayapis_auth_v1_auth_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImageUploadTicket); i { + switch v := v.(*PutUploadImageRequest); i { case 0: return &v.state case 1: @@ -3441,7 +4235,7 @@ func file_gatewayapis_auth_v1_auth_proto_init() { } } file_gatewayapis_auth_v1_auth_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBindListByUserIdListRequest); i { + switch v := v.(*PutUploadImageResponse); i { case 0: return &v.state case 1: @@ -3453,7 +4247,7 @@ func file_gatewayapis_auth_v1_auth_proto_init() { } } file_gatewayapis_auth_v1_auth_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBindListByUserIdListResponse); i { + switch v := v.(*ImageUploadTicket); i { case 0: return &v.state case 1: @@ -3465,7 +4259,7 @@ func file_gatewayapis_auth_v1_auth_proto_init() { } } file_gatewayapis_auth_v1_auth_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Bind); i { + switch v := v.(*GetDoctorPageRequest); i { case 0: return &v.state case 1: @@ -3477,7 +4271,7 @@ func file_gatewayapis_auth_v1_auth_proto_init() { } } file_gatewayapis_auth_v1_auth_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserBindListResponse_Data); i { + switch v := v.(*GetDoctorPageResponse); i { case 0: return &v.state case 1: @@ -3489,6 +4283,126 @@ func file_gatewayapis_auth_v1_auth_proto_init() { } } file_gatewayapis_auth_v1_auth_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSchoolTimeRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetSchoolTimeResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SchoolTime); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetWeChatSignatureRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetWeChatSignatureResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WeChatSignature); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBindListByUserIdListRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBindListByUserIdListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Bind); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserBindListResponse_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_auth_v1_auth_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetUserLoginHistoryResponse_Data); i { case 0: return &v.state @@ -3500,6 +4414,18 @@ func file_gatewayapis_auth_v1_auth_proto_init() { return nil } } + file_gatewayapis_auth_v1_auth_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PutUploadImageResponse_Data); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3507,7 +4433,7 @@ func file_gatewayapis_auth_v1_auth_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gatewayapis_auth_v1_auth_proto_rawDesc, NumEnums: 1, - NumMessages: 44, + NumMessages: 55, NumExtensions: 0, NumServices: 1, }, diff --git a/gatewayapis/auth/v1/auth.pb.gw.go b/gatewayapis/auth/v1/auth.pb.gw.go index 021f52b..114a1a3 100644 --- a/gatewayapis/auth/v1/auth.pb.gw.go +++ b/gatewayapis/auth/v1/auth.pb.gw.go @@ -787,6 +787,130 @@ func local_request_AuthService_GetImageUploadTicket_0(ctx context.Context, marsh } +func request_AuthService_PutUploadImage_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PutUploadImageRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.PutUploadImage(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_PutUploadImage_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PutUploadImageRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.PutUploadImage(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_GetDoctorPage_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetDoctorPageRequest + var metadata runtime.ServerMetadata + + msg, err := client.GetDoctorPage(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetDoctorPage_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetDoctorPageRequest + var metadata runtime.ServerMetadata + + msg, err := server.GetDoctorPage(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_GetDoctorPage_1(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetDoctorPageRequest + var metadata runtime.ServerMetadata + + msg, err := client.GetDoctorPage(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetDoctorPage_1(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetDoctorPageRequest + var metadata runtime.ServerMetadata + + msg, err := server.GetDoctorPage(ctx, &protoReq) + return msg, metadata, err + +} + +func request_AuthService_GetSchoolTime_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetSchoolTimeRequest + var metadata runtime.ServerMetadata + + msg, err := client.GetSchoolTime(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetSchoolTime_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetSchoolTimeRequest + var metadata runtime.ServerMetadata + + msg, err := server.GetSchoolTime(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_AuthService_GetWeChatSignature_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_AuthService_GetWeChatSignature_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetWeChatSignatureRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_GetWeChatSignature_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetWeChatSignature(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_AuthService_GetWeChatSignature_0(ctx context.Context, marshaler runtime.Marshaler, server AuthServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetWeChatSignatureRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_AuthService_GetWeChatSignature_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetWeChatSignature(ctx, &protoReq) + return msg, metadata, err + +} + func request_AuthService_GetBindListByUserIdList_0(ctx context.Context, marshaler runtime.Marshaler, client AuthServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq GetBindListByUserIdListRequest var metadata runtime.ServerMetadata @@ -1403,6 +1527,126 @@ func RegisterAuthServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("POST", pattern_AuthService_PutUploadImage_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/PutUploadImage", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/PutUploadImage")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_PutUploadImage_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_PutUploadImage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetDoctorPage_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetDoctorPage", runtime.WithHTTPPathPattern("/v1/doctor/page")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetDoctorPage_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetDoctorPage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetDoctorPage_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetDoctorPage", runtime.WithHTTPPathPattern("/doctor")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetDoctorPage_1(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetDoctorPage_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetSchoolTime_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetSchoolTime", runtime.WithHTTPPathPattern("/time")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetSchoolTime_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetSchoolTime_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetWeChatSignature_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetWeChatSignature", runtime.WithHTTPPathPattern("/wechat/sign")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_AuthService_GetWeChatSignature_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetWeChatSignature_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_AuthService_GetBindListByUserIdList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1972,6 +2216,111 @@ func RegisterAuthServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux }) + mux.Handle("POST", pattern_AuthService_PutUploadImage_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/PutUploadImage", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/PutUploadImage")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_PutUploadImage_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_PutUploadImage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetDoctorPage_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetDoctorPage", runtime.WithHTTPPathPattern("/v1/doctor/page")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetDoctorPage_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetDoctorPage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetDoctorPage_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetDoctorPage", runtime.WithHTTPPathPattern("/doctor")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetDoctorPage_1(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetDoctorPage_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetSchoolTime_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetSchoolTime", runtime.WithHTTPPathPattern("/time")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetSchoolTime_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetSchoolTime_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_AuthService_GetWeChatSignature_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/gatewayapis.auth.v1.AuthService/GetWeChatSignature", runtime.WithHTTPPathPattern("/wechat/sign")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_AuthService_GetWeChatSignature_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_AuthService_GetWeChatSignature_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("POST", pattern_AuthService_GetBindListByUserIdList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -2045,6 +2394,16 @@ var ( pattern_AuthService_GetImageUploadTicket_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "GetImageUploadTicket"}, "")) + pattern_AuthService_PutUploadImage_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "PutUploadImage"}, "")) + + pattern_AuthService_GetDoctorPage_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"v1", "doctor", "page"}, "")) + + pattern_AuthService_GetDoctorPage_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"doctor"}, "")) + + pattern_AuthService_GetSchoolTime_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0}, []string{"time"}, "")) + + pattern_AuthService_GetWeChatSignature_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"wechat", "sign"}, "")) + pattern_AuthService_GetBindListByUserIdList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"gatewayapis.auth.v1.AuthService", "GetBindListByUserIdList"}, "")) ) @@ -2097,5 +2456,15 @@ var ( forward_AuthService_GetImageUploadTicket_0 = runtime.ForwardResponseMessage + forward_AuthService_PutUploadImage_0 = runtime.ForwardResponseMessage + + forward_AuthService_GetDoctorPage_0 = runtime.ForwardResponseMessage + + forward_AuthService_GetDoctorPage_1 = runtime.ForwardResponseMessage + + forward_AuthService_GetSchoolTime_0 = runtime.ForwardResponseMessage + + forward_AuthService_GetWeChatSignature_0 = runtime.ForwardResponseMessage + forward_AuthService_GetBindListByUserIdList_0 = runtime.ForwardResponseMessage ) diff --git a/gatewayapis/auth/v1/auth.proto b/gatewayapis/auth/v1/auth.proto index ac5b5e0..e758254 100644 --- a/gatewayapis/auth/v1/auth.proto +++ b/gatewayapis/auth/v1/auth.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package gatewayapis.auth.v1; import "google/api/annotations.proto"; +import "google/api/httpbody.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/struct.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; @@ -103,6 +104,29 @@ service AuthService { //Static Server rpc GetImageUploadTicket(GetImageUploadTicketRequest) returns (GetImageUploadTicketResponse) {} + rpc PutUploadImage(PutUploadImageRequest) returns (PutUploadImageResponse) {} + + //HTML + rpc GetDoctorPage(GetDoctorPageRequest) returns (GetDoctorPageResponse) { + option (google.api.http) = { + get: "/v1/doctor/page" + additional_bindings { + get: "/doctor" + } + }; + } + + //Deprecated APIs + rpc GetSchoolTime(GetSchoolTimeRequest) returns (GetSchoolTimeResponse) { + option (google.api.http) = { + get: "/time" + }; + } + rpc GetWeChatSignature(GetWeChatSignatureRequest) returns (GetWeChatSignatureResponse) { + option (google.api.http) = { + get: "/wechat/sign" + }; + } //(内部接口)通过助手user_id获得用户的其他绑定信息 rpc GetBindListByUserIdList(GetBindListByUserIdListRequest) returns (GetBindListByUserIdListResponse) {} @@ -292,11 +316,72 @@ message GetImageUploadTicketResponse { ImageUploadTicket Data = 3; } +message PutUploadImageRequest { + string fType = 1; + string ticket = 2; + string usage = 3; +} + +message PutUploadImageResponse { + uint32 error = 1; + string msg = 2; + Data data = 3; + + message Data { + string URL = 1; + uint32 Size = 2; + } +} + message ImageUploadTicket { string ticket = 1; uint32 validTIme = 2; } +message GetDoctorPageRequest {} + +message GetDoctorPageResponse { + uint32 error = 1; + string msg = 2; + google.api.HttpBody data = 3; +} + +message GetSchoolTimeRequest {} + +message GetSchoolTimeResponse { + uint32 error = 1; + string msg = 2; + SchoolTime data = 3; +} + +message SchoolTime { + string schoolYear = 1; + string semester = 2; + uint32 semester_start_timestamp = 3; + uint32 weekNow = 4; + uint32 weekDayNow = 5; + uint32 timeStamp = 6; + int32 section = 7; +} + +message GetWeChatSignatureRequest { + string url = 1; +} + +message GetWeChatSignatureResponse { + uint32 error = 1; + string msg = 2; + WeChatSignature data = 3; +} + +message WeChatSignature { + string sign = 1; + string nonce = 2; + uint32 timestamp = 3; + string appid = 4; + string url = 5; +} + message GetBindListByUserIdListRequest { // 用户user_id列表 repeated string userIds = 1; diff --git a/gatewayapis/auth/v1/auth_grpc.pb.go b/gatewayapis/auth/v1/auth_grpc.pb.go index d566b12..1cc7cdb 100644 --- a/gatewayapis/auth/v1/auth_grpc.pb.go +++ b/gatewayapis/auth/v1/auth_grpc.pb.go @@ -50,6 +50,12 @@ type AuthServiceClient interface { PutUserPrimaryBindLegacy(ctx context.Context, in *PutUserPrimaryBindLegacyRequest, opts ...grpc.CallOption) (*PutUserPrimaryBindLegacyResponse, error) //Static Server GetImageUploadTicket(ctx context.Context, in *GetImageUploadTicketRequest, opts ...grpc.CallOption) (*GetImageUploadTicketResponse, error) + PutUploadImage(ctx context.Context, in *PutUploadImageRequest, opts ...grpc.CallOption) (*PutUploadImageResponse, error) + //HTML + GetDoctorPage(ctx context.Context, in *GetDoctorPageRequest, opts ...grpc.CallOption) (*GetDoctorPageResponse, error) + //Deprecated APIs + GetSchoolTime(ctx context.Context, in *GetSchoolTimeRequest, opts ...grpc.CallOption) (*GetSchoolTimeResponse, error) + GetWeChatSignature(ctx context.Context, in *GetWeChatSignatureRequest, opts ...grpc.CallOption) (*GetWeChatSignatureResponse, error) //(内部接口)通过助手user_id获得用户的其他绑定信息 GetBindListByUserIdList(ctx context.Context, in *GetBindListByUserIdListRequest, opts ...grpc.CallOption) (*GetBindListByUserIdListResponse, error) } @@ -215,6 +221,42 @@ func (c *authServiceClient) GetImageUploadTicket(ctx context.Context, in *GetIma return out, nil } +func (c *authServiceClient) PutUploadImage(ctx context.Context, in *PutUploadImageRequest, opts ...grpc.CallOption) (*PutUploadImageResponse, error) { + out := new(PutUploadImageResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/PutUploadImage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) GetDoctorPage(ctx context.Context, in *GetDoctorPageRequest, opts ...grpc.CallOption) (*GetDoctorPageResponse, error) { + out := new(GetDoctorPageResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetDoctorPage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) GetSchoolTime(ctx context.Context, in *GetSchoolTimeRequest, opts ...grpc.CallOption) (*GetSchoolTimeResponse, error) { + out := new(GetSchoolTimeResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetSchoolTime", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authServiceClient) GetWeChatSignature(ctx context.Context, in *GetWeChatSignatureRequest, opts ...grpc.CallOption) (*GetWeChatSignatureResponse, error) { + out := new(GetWeChatSignatureResponse) + err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetWeChatSignature", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *authServiceClient) GetBindListByUserIdList(ctx context.Context, in *GetBindListByUserIdListRequest, opts ...grpc.CallOption) (*GetBindListByUserIdListResponse, error) { out := new(GetBindListByUserIdListResponse) err := c.cc.Invoke(ctx, "/gatewayapis.auth.v1.AuthService/GetBindListByUserIdList", in, out, opts...) @@ -256,6 +298,12 @@ type AuthServiceServer interface { PutUserPrimaryBindLegacy(context.Context, *PutUserPrimaryBindLegacyRequest) (*PutUserPrimaryBindLegacyResponse, error) //Static Server GetImageUploadTicket(context.Context, *GetImageUploadTicketRequest) (*GetImageUploadTicketResponse, error) + PutUploadImage(context.Context, *PutUploadImageRequest) (*PutUploadImageResponse, error) + //HTML + GetDoctorPage(context.Context, *GetDoctorPageRequest) (*GetDoctorPageResponse, error) + //Deprecated APIs + GetSchoolTime(context.Context, *GetSchoolTimeRequest) (*GetSchoolTimeResponse, error) + GetWeChatSignature(context.Context, *GetWeChatSignatureRequest) (*GetWeChatSignatureResponse, error) //(内部接口)通过助手user_id获得用户的其他绑定信息 GetBindListByUserIdList(context.Context, *GetBindListByUserIdListRequest) (*GetBindListByUserIdListResponse, error) } @@ -315,6 +363,18 @@ func (UnimplementedAuthServiceServer) PutUserPrimaryBindLegacy(context.Context, func (UnimplementedAuthServiceServer) GetImageUploadTicket(context.Context, *GetImageUploadTicketRequest) (*GetImageUploadTicketResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetImageUploadTicket not implemented") } +func (UnimplementedAuthServiceServer) PutUploadImage(context.Context, *PutUploadImageRequest) (*PutUploadImageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method PutUploadImage not implemented") +} +func (UnimplementedAuthServiceServer) GetDoctorPage(context.Context, *GetDoctorPageRequest) (*GetDoctorPageResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDoctorPage not implemented") +} +func (UnimplementedAuthServiceServer) GetSchoolTime(context.Context, *GetSchoolTimeRequest) (*GetSchoolTimeResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetSchoolTime not implemented") +} +func (UnimplementedAuthServiceServer) GetWeChatSignature(context.Context, *GetWeChatSignatureRequest) (*GetWeChatSignatureResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetWeChatSignature not implemented") +} func (UnimplementedAuthServiceServer) GetBindListByUserIdList(context.Context, *GetBindListByUserIdListRequest) (*GetBindListByUserIdListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBindListByUserIdList not implemented") } @@ -636,6 +696,78 @@ func _AuthService_GetImageUploadTicket_Handler(srv interface{}, ctx context.Cont return interceptor(ctx, in, info, handler) } +func _AuthService_PutUploadImage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PutUploadImageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).PutUploadImage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/PutUploadImage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).PutUploadImage(ctx, req.(*PutUploadImageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_GetDoctorPage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetDoctorPageRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).GetDoctorPage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/GetDoctorPage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).GetDoctorPage(ctx, req.(*GetDoctorPageRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_GetSchoolTime_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetSchoolTimeRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).GetSchoolTime(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/GetSchoolTime", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).GetSchoolTime(ctx, req.(*GetSchoolTimeRequest)) + } + return interceptor(ctx, in, info, handler) +} + +func _AuthService_GetWeChatSignature_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetWeChatSignatureRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServiceServer).GetWeChatSignature(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/gatewayapis.auth.v1.AuthService/GetWeChatSignature", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServiceServer).GetWeChatSignature(ctx, req.(*GetWeChatSignatureRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _AuthService_GetBindListByUserIdList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetBindListByUserIdListRequest) if err := dec(in); err != nil { @@ -729,6 +861,22 @@ var AuthService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetImageUploadTicket", Handler: _AuthService_GetImageUploadTicket_Handler, }, + { + MethodName: "PutUploadImage", + Handler: _AuthService_PutUploadImage_Handler, + }, + { + MethodName: "GetDoctorPage", + Handler: _AuthService_GetDoctorPage_Handler, + }, + { + MethodName: "GetSchoolTime", + Handler: _AuthService_GetSchoolTime_Handler, + }, + { + MethodName: "GetWeChatSignature", + Handler: _AuthService_GetWeChatSignature_Handler, + }, { MethodName: "GetBindListByUserIdList", Handler: _AuthService_GetBindListByUserIdList_Handler, diff --git a/gatewayapis/server/v1/defined.go b/gatewayapis/server/v1/defined.go index 82f2be3..3d30a76 100644 --- a/gatewayapis/server/v1/defined.go +++ b/gatewayapis/server/v1/defined.go @@ -21,7 +21,7 @@ func (x *PostRegistGRPCMethodsRequest) FormGRPCServer(server interface { } } -func (x *PostRegistRoutersRequest) FromGinEngine(e *gin.Engine) { +func (x *PostRegistHTTPRoutersRequest) FromGinEngine(e *gin.Engine) { x.Routers = make([]*HTTPRouter, 0) for _, route := range e.Routes() { x.Routers = append(x.Routers, &HTTPRouter{ diff --git a/gatewayapis/server/v1/manager.pb.go b/gatewayapis/server/v1/manager.pb.go index 8189740..9df4ebe 100644 --- a/gatewayapis/server/v1/manager.pb.go +++ b/gatewayapis/server/v1/manager.pb.go @@ -10,7 +10,7 @@ import ( _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - emptypb "google.golang.org/protobuf/types/known/emptypb" + _ "google.golang.org/protobuf/types/known/emptypb" _ "google.golang.org/protobuf/types/known/structpb" _ "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" @@ -24,6 +24,44 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) +type GetHTTPRouterListRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *GetHTTPRouterListRequest) Reset() { + *x = GetHTTPRouterListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHTTPRouterListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHTTPRouterListRequest) ProtoMessage() {} + +func (x *GetHTTPRouterListRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetHTTPRouterListRequest.ProtoReflect.Descriptor instead. +func (*GetHTTPRouterListRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_server_v1_manager_proto_rawDescGZIP(), []int{0} +} + type GetHTTPRouterListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -35,7 +73,7 @@ type GetHTTPRouterListResponse struct { func (x *GetHTTPRouterListResponse) Reset() { *x = GetHTTPRouterListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[0] + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48,7 +86,7 @@ func (x *GetHTTPRouterListResponse) String() string { func (*GetHTTPRouterListResponse) ProtoMessage() {} func (x *GetHTTPRouterListResponse) ProtoReflect() protoreflect.Message { - mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[0] + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61,7 +99,7 @@ func (x *GetHTTPRouterListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetHTTPRouterListResponse.ProtoReflect.Descriptor instead. func (*GetHTTPRouterListResponse) Descriptor() ([]byte, []int) { - return file_gatewayapis_server_v1_manager_proto_rawDescGZIP(), []int{0} + return file_gatewayapis_server_v1_manager_proto_rawDescGZIP(), []int{1} } func (x *GetHTTPRouterListResponse) GetRouters() []*HTTPRouter { @@ -71,8 +109,7 @@ func (x *GetHTTPRouterListResponse) GetRouters() []*HTTPRouter { return nil } -//三个参数需要都不为空 -type HTTPRouterKeyRequest struct { +type GetHTTPRouterRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -85,23 +122,23 @@ type HTTPRouterKeyRequest struct { ServePath string `protobuf:"bytes,3,opt,name=servePath,proto3" json:"servePath,omitempty"` } -func (x *HTTPRouterKeyRequest) Reset() { - *x = HTTPRouterKeyRequest{} +func (x *GetHTTPRouterRequest) Reset() { + *x = GetHTTPRouterRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[1] + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *HTTPRouterKeyRequest) String() string { +func (x *GetHTTPRouterRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*HTTPRouterKeyRequest) ProtoMessage() {} +func (*GetHTTPRouterRequest) ProtoMessage() {} -func (x *HTTPRouterKeyRequest) ProtoReflect() protoreflect.Message { - mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[1] +func (x *GetHTTPRouterRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -112,32 +149,284 @@ func (x *HTTPRouterKeyRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use HTTPRouterKeyRequest.ProtoReflect.Descriptor instead. -func (*HTTPRouterKeyRequest) Descriptor() ([]byte, []int) { - return file_gatewayapis_server_v1_manager_proto_rawDescGZIP(), []int{1} +// Deprecated: Use GetHTTPRouterRequest.ProtoReflect.Descriptor instead. +func (*GetHTTPRouterRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_server_v1_manager_proto_rawDescGZIP(), []int{2} } -func (x *HTTPRouterKeyRequest) GetService() string { +func (x *GetHTTPRouterRequest) GetService() string { if x != nil { return x.Service } return "" } -func (x *HTTPRouterKeyRequest) GetMethod() string { +func (x *GetHTTPRouterRequest) GetMethod() string { if x != nil { return x.Method } return "" } -func (x *HTTPRouterKeyRequest) GetServePath() string { +func (x *GetHTTPRouterRequest) GetServePath() string { if x != nil { return x.ServePath } return "" } +type GetHTTPRouterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *HTTPRouter `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetHTTPRouterResponse) Reset() { + *x = GetHTTPRouterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetHTTPRouterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetHTTPRouterResponse) ProtoMessage() {} + +func (x *GetHTTPRouterResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetHTTPRouterResponse.ProtoReflect.Descriptor instead. +func (*GetHTTPRouterResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_server_v1_manager_proto_rawDescGZIP(), []int{3} +} + +func (x *GetHTTPRouterResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetHTTPRouterResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetHTTPRouterResponse) GetData() *HTTPRouter { + if x != nil { + return x.Data + } + return nil +} + +type PostOrPutHTTPRouterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Router *HTTPRouter `protobuf:"bytes,1,opt,name=router,proto3" json:"router,omitempty"` +} + +func (x *PostOrPutHTTPRouterRequest) Reset() { + *x = PostOrPutHTTPRouterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostOrPutHTTPRouterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostOrPutHTTPRouterRequest) ProtoMessage() {} + +func (x *PostOrPutHTTPRouterRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostOrPutHTTPRouterRequest.ProtoReflect.Descriptor instead. +func (*PostOrPutHTTPRouterRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_server_v1_manager_proto_rawDescGZIP(), []int{4} +} + +func (x *PostOrPutHTTPRouterRequest) GetRouter() *HTTPRouter { + if x != nil { + return x.Router + } + return nil +} + +type PostOrPutHTTPRouterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PostOrPutHTTPRouterResponse) Reset() { + *x = PostOrPutHTTPRouterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostOrPutHTTPRouterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostOrPutHTTPRouterResponse) ProtoMessage() {} + +func (x *PostOrPutHTTPRouterResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostOrPutHTTPRouterResponse.ProtoReflect.Descriptor instead. +func (*PostOrPutHTTPRouterResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_server_v1_manager_proto_rawDescGZIP(), []int{5} +} + +type DeleteHTTPRouterRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //服务名称 + Service string `protobuf:"bytes,1,opt,name=service,proto3" json:"service,omitempty"` + //方法 + Method string `protobuf:"bytes,2,opt,name=method,proto3" json:"method,omitempty"` + //挂载地址 + ServePath string `protobuf:"bytes,3,opt,name=servePath,proto3" json:"servePath,omitempty"` +} + +func (x *DeleteHTTPRouterRequest) Reset() { + *x = DeleteHTTPRouterRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteHTTPRouterRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteHTTPRouterRequest) ProtoMessage() {} + +func (x *DeleteHTTPRouterRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteHTTPRouterRequest.ProtoReflect.Descriptor instead. +func (*DeleteHTTPRouterRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_server_v1_manager_proto_rawDescGZIP(), []int{6} +} + +func (x *DeleteHTTPRouterRequest) GetService() string { + if x != nil { + return x.Service + } + return "" +} + +func (x *DeleteHTTPRouterRequest) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +func (x *DeleteHTTPRouterRequest) GetServePath() string { + if x != nil { + return x.ServePath + } + return "" +} + +type DeleteHTTPRouterResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteHTTPRouterResponse) Reset() { + *x = DeleteHTTPRouterResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteHTTPRouterResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteHTTPRouterResponse) ProtoMessage() {} + +func (x *DeleteHTTPRouterResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_server_v1_manager_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteHTTPRouterResponse.ProtoReflect.Descriptor instead. +func (*DeleteHTTPRouterResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_server_v1_manager_proto_rawDescGZIP(), []int{7} +} + var File_gatewayapis_server_v1_manager_proto protoreflect.FileDescriptor var file_gatewayapis_server_v1_manager_proto_rawDesc = []byte{ @@ -154,59 +443,91 @@ var file_gatewayapis_server_v1_manager_proto_rawDesc = []byte{ 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x58, 0x0a, 0x19, 0x47, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x58, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x48, 0x54, + 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, + 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x73, 0x22, 0x66, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, + 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x76, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x57, 0x0a, 0x1a, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, + 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x39, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x50, 0x6f, + 0x73, 0x74, 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x17, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x50, + 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x50, 0x61, 0x74, 0x68, 0x22, 0x1a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x54, + 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x32, 0xf6, 0x03, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x54, + 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, + 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x07, 0x72, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x73, 0x22, 0x66, 0x0a, 0x14, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, - 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x32, 0x8a, 0x03, - 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x65, 0x72, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x48, 0x54, - 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, - 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x61, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x48, - 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, - 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x22, 0x00, 0x12, 0x52, 0x0a, 0x13, 0x50, - 0x6f, 0x73, 0x74, 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x12, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, - 0x59, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4b, 0x65, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x42, 0xdf, 0x01, 0x0a, 0x19, 0x63, - 0x6f, 0x6d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, - 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, - 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x3b, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x53, 0x58, 0xaa, 0x02, - 0x15, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, - 0x21, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x17, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, - 0x3a, 0x3a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, + 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, + 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xdf, 0x01, 0x0a, 0x19, 0x63, 0x6f, + 0x6d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, + 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x3b, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x53, 0x58, 0xaa, 0x02, 0x15, + 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, + 0x70, 0x69, 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, + 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, + 0x61, 0xea, 0x02, 0x17, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, + 0x3a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -221,28 +542,35 @@ func file_gatewayapis_server_v1_manager_proto_rawDescGZIP() []byte { return file_gatewayapis_server_v1_manager_proto_rawDescData } -var file_gatewayapis_server_v1_manager_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_gatewayapis_server_v1_manager_proto_msgTypes = make([]protoimpl.MessageInfo, 8) var file_gatewayapis_server_v1_manager_proto_goTypes = []interface{}{ - (*GetHTTPRouterListResponse)(nil), // 0: gatewayapis.server.v1.GetHTTPRouterListResponse - (*HTTPRouterKeyRequest)(nil), // 1: gatewayapis.server.v1.HTTPRouterKeyRequest - (*HTTPRouter)(nil), // 2: gatewayapis.server.v1.HTTPRouter - (*emptypb.Empty)(nil), // 3: google.protobuf.Empty + (*GetHTTPRouterListRequest)(nil), // 0: gatewayapis.server.v1.GetHTTPRouterListRequest + (*GetHTTPRouterListResponse)(nil), // 1: gatewayapis.server.v1.GetHTTPRouterListResponse + (*GetHTTPRouterRequest)(nil), // 2: gatewayapis.server.v1.GetHTTPRouterRequest + (*GetHTTPRouterResponse)(nil), // 3: gatewayapis.server.v1.GetHTTPRouterResponse + (*PostOrPutHTTPRouterRequest)(nil), // 4: gatewayapis.server.v1.PostOrPutHTTPRouterRequest + (*PostOrPutHTTPRouterResponse)(nil), // 5: gatewayapis.server.v1.PostOrPutHTTPRouterResponse + (*DeleteHTTPRouterRequest)(nil), // 6: gatewayapis.server.v1.DeleteHTTPRouterRequest + (*DeleteHTTPRouterResponse)(nil), // 7: gatewayapis.server.v1.DeleteHTTPRouterResponse + (*HTTPRouter)(nil), // 8: gatewayapis.server.v1.HTTPRouter } var file_gatewayapis_server_v1_manager_proto_depIdxs = []int32{ - 2, // 0: gatewayapis.server.v1.GetHTTPRouterListResponse.routers:type_name -> gatewayapis.server.v1.HTTPRouter - 3, // 1: gatewayapis.server.v1.ServerManageerService.GetHTTPRouterList:input_type -> google.protobuf.Empty - 1, // 2: gatewayapis.server.v1.ServerManageerService.GetHTTPRouter:input_type -> gatewayapis.server.v1.HTTPRouterKeyRequest - 2, // 3: gatewayapis.server.v1.ServerManageerService.PostOrPutHTTPRouter:input_type -> gatewayapis.server.v1.HTTPRouter - 1, // 4: gatewayapis.server.v1.ServerManageerService.DeleteHTTPRouter:input_type -> gatewayapis.server.v1.HTTPRouterKeyRequest - 0, // 5: gatewayapis.server.v1.ServerManageerService.GetHTTPRouterList:output_type -> gatewayapis.server.v1.GetHTTPRouterListResponse - 2, // 6: gatewayapis.server.v1.ServerManageerService.GetHTTPRouter:output_type -> gatewayapis.server.v1.HTTPRouter - 3, // 7: gatewayapis.server.v1.ServerManageerService.PostOrPutHTTPRouter:output_type -> google.protobuf.Empty - 3, // 8: gatewayapis.server.v1.ServerManageerService.DeleteHTTPRouter:output_type -> google.protobuf.Empty - 5, // [5:9] is the sub-list for method output_type - 1, // [1:5] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name + 8, // 0: gatewayapis.server.v1.GetHTTPRouterListResponse.routers:type_name -> gatewayapis.server.v1.HTTPRouter + 8, // 1: gatewayapis.server.v1.GetHTTPRouterResponse.data:type_name -> gatewayapis.server.v1.HTTPRouter + 8, // 2: gatewayapis.server.v1.PostOrPutHTTPRouterRequest.router:type_name -> gatewayapis.server.v1.HTTPRouter + 0, // 3: gatewayapis.server.v1.ServerManageerService.GetHTTPRouterList:input_type -> gatewayapis.server.v1.GetHTTPRouterListRequest + 2, // 4: gatewayapis.server.v1.ServerManageerService.GetHTTPRouter:input_type -> gatewayapis.server.v1.GetHTTPRouterRequest + 4, // 5: gatewayapis.server.v1.ServerManageerService.PostOrPutHTTPRouter:input_type -> gatewayapis.server.v1.PostOrPutHTTPRouterRequest + 6, // 6: gatewayapis.server.v1.ServerManageerService.DeleteHTTPRouter:input_type -> gatewayapis.server.v1.DeleteHTTPRouterRequest + 1, // 7: gatewayapis.server.v1.ServerManageerService.GetHTTPRouterList:output_type -> gatewayapis.server.v1.GetHTTPRouterListResponse + 3, // 8: gatewayapis.server.v1.ServerManageerService.GetHTTPRouter:output_type -> gatewayapis.server.v1.GetHTTPRouterResponse + 5, // 9: gatewayapis.server.v1.ServerManageerService.PostOrPutHTTPRouter:output_type -> gatewayapis.server.v1.PostOrPutHTTPRouterResponse + 7, // 10: gatewayapis.server.v1.ServerManageerService.DeleteHTTPRouter:output_type -> gatewayapis.server.v1.DeleteHTTPRouterResponse + 7, // [7:11] is the sub-list for method output_type + 3, // [3:7] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name } func init() { file_gatewayapis_server_v1_manager_proto_init() } @@ -253,7 +581,7 @@ func file_gatewayapis_server_v1_manager_proto_init() { file_gatewayapis_server_v1_defined_proto_init() if !protoimpl.UnsafeEnabled { file_gatewayapis_server_v1_manager_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetHTTPRouterListResponse); i { + switch v := v.(*GetHTTPRouterListRequest); i { case 0: return &v.state case 1: @@ -265,7 +593,79 @@ func file_gatewayapis_server_v1_manager_proto_init() { } } file_gatewayapis_server_v1_manager_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*HTTPRouterKeyRequest); i { + switch v := v.(*GetHTTPRouterListResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_server_v1_manager_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHTTPRouterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_server_v1_manager_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetHTTPRouterResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_server_v1_manager_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PostOrPutHTTPRouterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_server_v1_manager_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PostOrPutHTTPRouterResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_server_v1_manager_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteHTTPRouterRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_server_v1_manager_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteHTTPRouterResponse); i { case 0: return &v.state case 1: @@ -283,7 +683,7 @@ func file_gatewayapis_server_v1_manager_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gatewayapis_server_v1_manager_proto_rawDesc, NumEnums: 0, - NumMessages: 2, + NumMessages: 8, NumExtensions: 0, NumServices: 1, }, diff --git a/gatewayapis/server/v1/manager.pb.gw.go b/gatewayapis/server/v1/manager.pb.gw.go index 9eb8048..d399440 100644 --- a/gatewayapis/server/v1/manager.pb.gw.go +++ b/gatewayapis/server/v1/manager.pb.gw.go @@ -21,7 +21,6 @@ import ( "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" "google.golang.org/protobuf/proto" - "google.golang.org/protobuf/types/known/emptypb" ) // Suppress "imported and not used" errors @@ -33,7 +32,7 @@ var _ = utilities.NewDoubleArray var _ = metadata.Join func request_ServerManageerService_GetHTTPRouterList_0(ctx context.Context, marshaler runtime.Marshaler, client ServerManageerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq emptypb.Empty + var protoReq GetHTTPRouterListRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -50,7 +49,7 @@ func request_ServerManageerService_GetHTTPRouterList_0(ctx context.Context, mars } func local_request_ServerManageerService_GetHTTPRouterList_0(ctx context.Context, marshaler runtime.Marshaler, server ServerManageerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq emptypb.Empty + var protoReq GetHTTPRouterListRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -67,7 +66,7 @@ func local_request_ServerManageerService_GetHTTPRouterList_0(ctx context.Context } func request_ServerManageerService_GetHTTPRouter_0(ctx context.Context, marshaler runtime.Marshaler, client ServerManageerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq HTTPRouterKeyRequest + var protoReq GetHTTPRouterRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -84,7 +83,7 @@ func request_ServerManageerService_GetHTTPRouter_0(ctx context.Context, marshale } func local_request_ServerManageerService_GetHTTPRouter_0(ctx context.Context, marshaler runtime.Marshaler, server ServerManageerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq HTTPRouterKeyRequest + var protoReq GetHTTPRouterRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -101,7 +100,7 @@ func local_request_ServerManageerService_GetHTTPRouter_0(ctx context.Context, ma } func request_ServerManageerService_PostOrPutHTTPRouter_0(ctx context.Context, marshaler runtime.Marshaler, client ServerManageerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq HTTPRouter + var protoReq PostOrPutHTTPRouterRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -118,7 +117,7 @@ func request_ServerManageerService_PostOrPutHTTPRouter_0(ctx context.Context, ma } func local_request_ServerManageerService_PostOrPutHTTPRouter_0(ctx context.Context, marshaler runtime.Marshaler, server ServerManageerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq HTTPRouter + var protoReq PostOrPutHTTPRouterRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -135,7 +134,7 @@ func local_request_ServerManageerService_PostOrPutHTTPRouter_0(ctx context.Conte } func request_ServerManageerService_DeleteHTTPRouter_0(ctx context.Context, marshaler runtime.Marshaler, client ServerManageerServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq HTTPRouterKeyRequest + var protoReq DeleteHTTPRouterRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -152,7 +151,7 @@ func request_ServerManageerService_DeleteHTTPRouter_0(ctx context.Context, marsh } func local_request_ServerManageerService_DeleteHTTPRouter_0(ctx context.Context, marshaler runtime.Marshaler, server ServerManageerServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq HTTPRouterKeyRequest + var protoReq DeleteHTTPRouterRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) diff --git a/gatewayapis/server/v1/manager.proto b/gatewayapis/server/v1/manager.proto index f5d7376..903ab9e 100644 --- a/gatewayapis/server/v1/manager.proto +++ b/gatewayapis/server/v1/manager.proto @@ -13,21 +13,22 @@ option go_package = "./gatewayapis/server/v1"; //服务管理端 service ServerManageerService { //获取可管理的所有HTTP路由 - rpc GetHTTPRouterList(google.protobuf.Empty) returns (GetHTTPRouterListResponse) {} + rpc GetHTTPRouterList(GetHTTPRouterListRequest) returns (GetHTTPRouterListResponse) {} //查询路由 - rpc GetHTTPRouter(HTTPRouterKeyRequest) returns (gatewayapis.server.v1.HTTPRouter) {} + rpc GetHTTPRouter(GetHTTPRouterRequest) returns (GetHTTPRouterResponse) {} //创建或者更新路由 - rpc PostOrPutHTTPRouter(gatewayapis.server.v1.HTTPRouter) returns (google.protobuf.Empty) {} + rpc PostOrPutHTTPRouter(PostOrPutHTTPRouterRequest) returns (PostOrPutHTTPRouterResponse) {} //删除路由 - rpc DeleteHTTPRouter(HTTPRouterKeyRequest) returns (google.protobuf.Empty) {} + rpc DeleteHTTPRouter(DeleteHTTPRouterRequest) returns (DeleteHTTPRouterResponse) {} } +message GetHTTPRouterListRequest {} + message GetHTTPRouterListResponse { repeated gatewayapis.server.v1.HTTPRouter routers = 1; } -//三个参数需要都不为空 -message HTTPRouterKeyRequest { +message GetHTTPRouterRequest { //服务名称 string service = 1; //方法 @@ -35,3 +36,26 @@ message HTTPRouterKeyRequest { //挂载地址 string servePath = 3; } + +message GetHTTPRouterResponse { + uint32 error = 1; + string msg = 2; + gatewayapis.server.v1.HTTPRouter data = 3; +} + +message PostOrPutHTTPRouterRequest { + gatewayapis.server.v1.HTTPRouter router = 1; +} + +message PostOrPutHTTPRouterResponse {} + +message DeleteHTTPRouterRequest { + //服务名称 + string service = 1; + //方法 + string method = 2; + //挂载地址 + string servePath = 3; +} + +message DeleteHTTPRouterResponse {} diff --git a/gatewayapis/server/v1/manager_grpc.pb.go b/gatewayapis/server/v1/manager_grpc.pb.go index 7c779e3..bd85561 100644 --- a/gatewayapis/server/v1/manager_grpc.pb.go +++ b/gatewayapis/server/v1/manager_grpc.pb.go @@ -11,7 +11,6 @@ import ( grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - emptypb "google.golang.org/protobuf/types/known/emptypb" ) // This is a compile-time assertion to ensure that this generated file @@ -24,13 +23,13 @@ const _ = grpc.SupportPackageIsVersion7 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type ServerManageerServiceClient interface { //获取可管理的所有HTTP路由 - GetHTTPRouterList(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetHTTPRouterListResponse, error) + GetHTTPRouterList(ctx context.Context, in *GetHTTPRouterListRequest, opts ...grpc.CallOption) (*GetHTTPRouterListResponse, error) //查询路由 - GetHTTPRouter(ctx context.Context, in *HTTPRouterKeyRequest, opts ...grpc.CallOption) (*HTTPRouter, error) + GetHTTPRouter(ctx context.Context, in *GetHTTPRouterRequest, opts ...grpc.CallOption) (*GetHTTPRouterResponse, error) //创建或者更新路由 - PostOrPutHTTPRouter(ctx context.Context, in *HTTPRouter, opts ...grpc.CallOption) (*emptypb.Empty, error) + PostOrPutHTTPRouter(ctx context.Context, in *PostOrPutHTTPRouterRequest, opts ...grpc.CallOption) (*PostOrPutHTTPRouterResponse, error) //删除路由 - DeleteHTTPRouter(ctx context.Context, in *HTTPRouterKeyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + DeleteHTTPRouter(ctx context.Context, in *DeleteHTTPRouterRequest, opts ...grpc.CallOption) (*DeleteHTTPRouterResponse, error) } type serverManageerServiceClient struct { @@ -41,7 +40,7 @@ func NewServerManageerServiceClient(cc grpc.ClientConnInterface) ServerManageerS return &serverManageerServiceClient{cc} } -func (c *serverManageerServiceClient) GetHTTPRouterList(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetHTTPRouterListResponse, error) { +func (c *serverManageerServiceClient) GetHTTPRouterList(ctx context.Context, in *GetHTTPRouterListRequest, opts ...grpc.CallOption) (*GetHTTPRouterListResponse, error) { out := new(GetHTTPRouterListResponse) err := c.cc.Invoke(ctx, "/gatewayapis.server.v1.ServerManageerService/GetHTTPRouterList", in, out, opts...) if err != nil { @@ -50,8 +49,8 @@ func (c *serverManageerServiceClient) GetHTTPRouterList(ctx context.Context, in return out, nil } -func (c *serverManageerServiceClient) GetHTTPRouter(ctx context.Context, in *HTTPRouterKeyRequest, opts ...grpc.CallOption) (*HTTPRouter, error) { - out := new(HTTPRouter) +func (c *serverManageerServiceClient) GetHTTPRouter(ctx context.Context, in *GetHTTPRouterRequest, opts ...grpc.CallOption) (*GetHTTPRouterResponse, error) { + out := new(GetHTTPRouterResponse) err := c.cc.Invoke(ctx, "/gatewayapis.server.v1.ServerManageerService/GetHTTPRouter", in, out, opts...) if err != nil { return nil, err @@ -59,8 +58,8 @@ func (c *serverManageerServiceClient) GetHTTPRouter(ctx context.Context, in *HTT return out, nil } -func (c *serverManageerServiceClient) PostOrPutHTTPRouter(ctx context.Context, in *HTTPRouter, opts ...grpc.CallOption) (*emptypb.Empty, error) { - out := new(emptypb.Empty) +func (c *serverManageerServiceClient) PostOrPutHTTPRouter(ctx context.Context, in *PostOrPutHTTPRouterRequest, opts ...grpc.CallOption) (*PostOrPutHTTPRouterResponse, error) { + out := new(PostOrPutHTTPRouterResponse) err := c.cc.Invoke(ctx, "/gatewayapis.server.v1.ServerManageerService/PostOrPutHTTPRouter", in, out, opts...) if err != nil { return nil, err @@ -68,8 +67,8 @@ func (c *serverManageerServiceClient) PostOrPutHTTPRouter(ctx context.Context, i return out, nil } -func (c *serverManageerServiceClient) DeleteHTTPRouter(ctx context.Context, in *HTTPRouterKeyRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - out := new(emptypb.Empty) +func (c *serverManageerServiceClient) DeleteHTTPRouter(ctx context.Context, in *DeleteHTTPRouterRequest, opts ...grpc.CallOption) (*DeleteHTTPRouterResponse, error) { + out := new(DeleteHTTPRouterResponse) err := c.cc.Invoke(ctx, "/gatewayapis.server.v1.ServerManageerService/DeleteHTTPRouter", in, out, opts...) if err != nil { return nil, err @@ -82,29 +81,29 @@ func (c *serverManageerServiceClient) DeleteHTTPRouter(ctx context.Context, in * // for forward compatibility type ServerManageerServiceServer interface { //获取可管理的所有HTTP路由 - GetHTTPRouterList(context.Context, *emptypb.Empty) (*GetHTTPRouterListResponse, error) + GetHTTPRouterList(context.Context, *GetHTTPRouterListRequest) (*GetHTTPRouterListResponse, error) //查询路由 - GetHTTPRouter(context.Context, *HTTPRouterKeyRequest) (*HTTPRouter, error) + GetHTTPRouter(context.Context, *GetHTTPRouterRequest) (*GetHTTPRouterResponse, error) //创建或者更新路由 - PostOrPutHTTPRouter(context.Context, *HTTPRouter) (*emptypb.Empty, error) + PostOrPutHTTPRouter(context.Context, *PostOrPutHTTPRouterRequest) (*PostOrPutHTTPRouterResponse, error) //删除路由 - DeleteHTTPRouter(context.Context, *HTTPRouterKeyRequest) (*emptypb.Empty, error) + DeleteHTTPRouter(context.Context, *DeleteHTTPRouterRequest) (*DeleteHTTPRouterResponse, error) } // UnimplementedServerManageerServiceServer should be embedded to have forward compatible implementations. type UnimplementedServerManageerServiceServer struct { } -func (UnimplementedServerManageerServiceServer) GetHTTPRouterList(context.Context, *emptypb.Empty) (*GetHTTPRouterListResponse, error) { +func (UnimplementedServerManageerServiceServer) GetHTTPRouterList(context.Context, *GetHTTPRouterListRequest) (*GetHTTPRouterListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetHTTPRouterList not implemented") } -func (UnimplementedServerManageerServiceServer) GetHTTPRouter(context.Context, *HTTPRouterKeyRequest) (*HTTPRouter, error) { +func (UnimplementedServerManageerServiceServer) GetHTTPRouter(context.Context, *GetHTTPRouterRequest) (*GetHTTPRouterResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetHTTPRouter not implemented") } -func (UnimplementedServerManageerServiceServer) PostOrPutHTTPRouter(context.Context, *HTTPRouter) (*emptypb.Empty, error) { +func (UnimplementedServerManageerServiceServer) PostOrPutHTTPRouter(context.Context, *PostOrPutHTTPRouterRequest) (*PostOrPutHTTPRouterResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PostOrPutHTTPRouter not implemented") } -func (UnimplementedServerManageerServiceServer) DeleteHTTPRouter(context.Context, *HTTPRouterKeyRequest) (*emptypb.Empty, error) { +func (UnimplementedServerManageerServiceServer) DeleteHTTPRouter(context.Context, *DeleteHTTPRouterRequest) (*DeleteHTTPRouterResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteHTTPRouter not implemented") } @@ -120,7 +119,7 @@ func RegisterServerManageerServiceServer(s grpc.ServiceRegistrar, srv ServerMana } func _ServerManageerService_GetHTTPRouterList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(emptypb.Empty) + in := new(GetHTTPRouterListRequest) if err := dec(in); err != nil { return nil, err } @@ -132,13 +131,13 @@ func _ServerManageerService_GetHTTPRouterList_Handler(srv interface{}, ctx conte FullMethod: "/gatewayapis.server.v1.ServerManageerService/GetHTTPRouterList", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ServerManageerServiceServer).GetHTTPRouterList(ctx, req.(*emptypb.Empty)) + return srv.(ServerManageerServiceServer).GetHTTPRouterList(ctx, req.(*GetHTTPRouterListRequest)) } return interceptor(ctx, in, info, handler) } func _ServerManageerService_GetHTTPRouter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(HTTPRouterKeyRequest) + in := new(GetHTTPRouterRequest) if err := dec(in); err != nil { return nil, err } @@ -150,13 +149,13 @@ func _ServerManageerService_GetHTTPRouter_Handler(srv interface{}, ctx context.C FullMethod: "/gatewayapis.server.v1.ServerManageerService/GetHTTPRouter", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ServerManageerServiceServer).GetHTTPRouter(ctx, req.(*HTTPRouterKeyRequest)) + return srv.(ServerManageerServiceServer).GetHTTPRouter(ctx, req.(*GetHTTPRouterRequest)) } return interceptor(ctx, in, info, handler) } func _ServerManageerService_PostOrPutHTTPRouter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(HTTPRouter) + in := new(PostOrPutHTTPRouterRequest) if err := dec(in); err != nil { return nil, err } @@ -168,13 +167,13 @@ func _ServerManageerService_PostOrPutHTTPRouter_Handler(srv interface{}, ctx con FullMethod: "/gatewayapis.server.v1.ServerManageerService/PostOrPutHTTPRouter", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ServerManageerServiceServer).PostOrPutHTTPRouter(ctx, req.(*HTTPRouter)) + return srv.(ServerManageerServiceServer).PostOrPutHTTPRouter(ctx, req.(*PostOrPutHTTPRouterRequest)) } return interceptor(ctx, in, info, handler) } func _ServerManageerService_DeleteHTTPRouter_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(HTTPRouterKeyRequest) + in := new(DeleteHTTPRouterRequest) if err := dec(in); err != nil { return nil, err } @@ -186,7 +185,7 @@ func _ServerManageerService_DeleteHTTPRouter_Handler(srv interface{}, ctx contex FullMethod: "/gatewayapis.server.v1.ServerManageerService/DeleteHTTPRouter", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ServerManageerServiceServer).DeleteHTTPRouter(ctx, req.(*HTTPRouterKeyRequest)) + return srv.(ServerManageerServiceServer).DeleteHTTPRouter(ctx, req.(*DeleteHTTPRouterRequest)) } return interceptor(ctx, in, info, handler) } diff --git a/gatewayapis/server/v1/register.pb.go b/gatewayapis/server/v1/register.pb.go index b8917eb..2294123 100644 --- a/gatewayapis/server/v1/register.pb.go +++ b/gatewayapis/server/v1/register.pb.go @@ -10,7 +10,7 @@ import ( _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - emptypb "google.golang.org/protobuf/types/known/emptypb" + _ "google.golang.org/protobuf/types/known/emptypb" _ "google.golang.org/protobuf/types/known/structpb" _ "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" @@ -71,16 +71,14 @@ func (x *PostRegistServiceInstanceRequest) GetInstance() *ServiceInstance { return nil } -type PostRegistRoutersRequest struct { +type PostRegistServiceInstanceResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - - Routers []*HTTPRouter `protobuf:"bytes,1,rep,name=routers,proto3" json:"routers,omitempty"` } -func (x *PostRegistRoutersRequest) Reset() { - *x = PostRegistRoutersRequest{} +func (x *PostRegistServiceInstanceResponse) Reset() { + *x = PostRegistServiceInstanceResponse{} if protoimpl.UnsafeEnabled { mi := &file_gatewayapis_server_v1_register_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -88,13 +86,13 @@ func (x *PostRegistRoutersRequest) Reset() { } } -func (x *PostRegistRoutersRequest) String() string { +func (x *PostRegistServiceInstanceResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PostRegistRoutersRequest) ProtoMessage() {} +func (*PostRegistServiceInstanceResponse) ProtoMessage() {} -func (x *PostRegistRoutersRequest) ProtoReflect() protoreflect.Message { +func (x *PostRegistServiceInstanceResponse) ProtoReflect() protoreflect.Message { mi := &file_gatewayapis_server_v1_register_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -106,18 +104,96 @@ func (x *PostRegistRoutersRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PostRegistRoutersRequest.ProtoReflect.Descriptor instead. -func (*PostRegistRoutersRequest) Descriptor() ([]byte, []int) { +// Deprecated: Use PostRegistServiceInstanceResponse.ProtoReflect.Descriptor instead. +func (*PostRegistServiceInstanceResponse) Descriptor() ([]byte, []int) { return file_gatewayapis_server_v1_register_proto_rawDescGZIP(), []int{1} } -func (x *PostRegistRoutersRequest) GetRouters() []*HTTPRouter { +type PostRegistHTTPRoutersRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Routers []*HTTPRouter `protobuf:"bytes,1,rep,name=routers,proto3" json:"routers,omitempty"` +} + +func (x *PostRegistHTTPRoutersRequest) Reset() { + *x = PostRegistHTTPRoutersRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_server_v1_register_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostRegistHTTPRoutersRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostRegistHTTPRoutersRequest) ProtoMessage() {} + +func (x *PostRegistHTTPRoutersRequest) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_server_v1_register_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostRegistHTTPRoutersRequest.ProtoReflect.Descriptor instead. +func (*PostRegistHTTPRoutersRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_server_v1_register_proto_rawDescGZIP(), []int{2} +} + +func (x *PostRegistHTTPRoutersRequest) GetRouters() []*HTTPRouter { if x != nil { return x.Routers } return nil } +type PostRegistHTTPRoutersResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PostRegistHTTPRoutersResponse) Reset() { + *x = PostRegistHTTPRoutersResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_server_v1_register_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostRegistHTTPRoutersResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostRegistHTTPRoutersResponse) ProtoMessage() {} + +func (x *PostRegistHTTPRoutersResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_server_v1_register_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostRegistHTTPRoutersResponse.ProtoReflect.Descriptor instead. +func (*PostRegistHTTPRoutersResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_server_v1_register_proto_rawDescGZIP(), []int{3} +} + type PostRegistGRPCMethodsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -129,7 +205,7 @@ type PostRegistGRPCMethodsRequest struct { func (x *PostRegistGRPCMethodsRequest) Reset() { *x = PostRegistGRPCMethodsRequest{} if protoimpl.UnsafeEnabled { - mi := &file_gatewayapis_server_v1_register_proto_msgTypes[2] + mi := &file_gatewayapis_server_v1_register_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -142,7 +218,7 @@ func (x *PostRegistGRPCMethodsRequest) String() string { func (*PostRegistGRPCMethodsRequest) ProtoMessage() {} func (x *PostRegistGRPCMethodsRequest) ProtoReflect() protoreflect.Message { - mi := &file_gatewayapis_server_v1_register_proto_msgTypes[2] + mi := &file_gatewayapis_server_v1_register_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -155,7 +231,7 @@ func (x *PostRegistGRPCMethodsRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use PostRegistGRPCMethodsRequest.ProtoReflect.Descriptor instead. func (*PostRegistGRPCMethodsRequest) Descriptor() ([]byte, []int) { - return file_gatewayapis_server_v1_register_proto_rawDescGZIP(), []int{2} + return file_gatewayapis_server_v1_register_proto_rawDescGZIP(), []int{4} } func (x *PostRegistGRPCMethodsRequest) GetMethods() []*GRPCMethod { @@ -165,6 +241,44 @@ func (x *PostRegistGRPCMethodsRequest) GetMethods() []*GRPCMethod { return nil } +type PostRegistGRPCMethodsResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *PostRegistGRPCMethodsResponse) Reset() { + *x = PostRegistGRPCMethodsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_gatewayapis_server_v1_register_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostRegistGRPCMethodsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostRegistGRPCMethodsResponse) ProtoMessage() {} + +func (x *PostRegistGRPCMethodsResponse) ProtoReflect() protoreflect.Message { + mi := &file_gatewayapis_server_v1_register_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostRegistGRPCMethodsResponse.ProtoReflect.Descriptor instead. +func (*PostRegistGRPCMethodsResponse) Descriptor() ([]byte, []int) { + return file_gatewayapis_server_v1_register_proto_rawDescGZIP(), []int{5} +} + var File_gatewayapis_server_v1_register_proto protoreflect.FileDescriptor var file_gatewayapis_server_v1_register_proto_rawDesc = []byte{ @@ -188,39 +302,52 @@ var file_gatewayapis_server_v1_register_proto_rawDesc = []byte{ 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x22, 0x57, 0x0a, 0x18, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x3b, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, - 0x75, 0x74, 0x65, 0x72, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x22, 0x5b, 0x0a, - 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, - 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x32, 0xd3, 0x02, 0x0a, 0x15, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x6e, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, + 0x61, 0x6e, 0x63, 0x65, 0x22, 0x23, 0x0a, 0x21, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x12, 0x37, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, - 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, - 0x74, 0x79, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x2f, 0x2e, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, 0x1c, 0x50, 0x6f, 0x73, + 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x07, 0x72, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, + 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x07, 0x72, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x22, 0x1f, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x07, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x73, 0x22, 0x1f, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, + 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xb8, 0x03, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x90, 0x01, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x37, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x73, 0x12, 0x33, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x33, 0x2e, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x48, + 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x22, 0x00, + 0x67, 0x69, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x50, 0x6f, + 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, + 0x6f, 0x64, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xe0, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, @@ -250,26 +377,28 @@ func file_gatewayapis_server_v1_register_proto_rawDescGZIP() []byte { return file_gatewayapis_server_v1_register_proto_rawDescData } -var file_gatewayapis_server_v1_register_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_gatewayapis_server_v1_register_proto_msgTypes = make([]protoimpl.MessageInfo, 6) var file_gatewayapis_server_v1_register_proto_goTypes = []interface{}{ - (*PostRegistServiceInstanceRequest)(nil), // 0: gatewayapis.server.v1.PostRegistServiceInstanceRequest - (*PostRegistRoutersRequest)(nil), // 1: gatewayapis.server.v1.PostRegistRoutersRequest - (*PostRegistGRPCMethodsRequest)(nil), // 2: gatewayapis.server.v1.PostRegistGRPCMethodsRequest - (*ServiceInstance)(nil), // 3: gatewayapis.server.v1.ServiceInstance - (*HTTPRouter)(nil), // 4: gatewayapis.server.v1.HTTPRouter - (*GRPCMethod)(nil), // 5: gatewayapis.server.v1.GRPCMethod - (*emptypb.Empty)(nil), // 6: google.protobuf.Empty + (*PostRegistServiceInstanceRequest)(nil), // 0: gatewayapis.server.v1.PostRegistServiceInstanceRequest + (*PostRegistServiceInstanceResponse)(nil), // 1: gatewayapis.server.v1.PostRegistServiceInstanceResponse + (*PostRegistHTTPRoutersRequest)(nil), // 2: gatewayapis.server.v1.PostRegistHTTPRoutersRequest + (*PostRegistHTTPRoutersResponse)(nil), // 3: gatewayapis.server.v1.PostRegistHTTPRoutersResponse + (*PostRegistGRPCMethodsRequest)(nil), // 4: gatewayapis.server.v1.PostRegistGRPCMethodsRequest + (*PostRegistGRPCMethodsResponse)(nil), // 5: gatewayapis.server.v1.PostRegistGRPCMethodsResponse + (*ServiceInstance)(nil), // 6: gatewayapis.server.v1.ServiceInstance + (*HTTPRouter)(nil), // 7: gatewayapis.server.v1.HTTPRouter + (*GRPCMethod)(nil), // 8: gatewayapis.server.v1.GRPCMethod } var file_gatewayapis_server_v1_register_proto_depIdxs = []int32{ - 3, // 0: gatewayapis.server.v1.PostRegistServiceInstanceRequest.instance:type_name -> gatewayapis.server.v1.ServiceInstance - 4, // 1: gatewayapis.server.v1.PostRegistRoutersRequest.routers:type_name -> gatewayapis.server.v1.HTTPRouter - 5, // 2: gatewayapis.server.v1.PostRegistGRPCMethodsRequest.methods:type_name -> gatewayapis.server.v1.GRPCMethod + 6, // 0: gatewayapis.server.v1.PostRegistServiceInstanceRequest.instance:type_name -> gatewayapis.server.v1.ServiceInstance + 7, // 1: gatewayapis.server.v1.PostRegistHTTPRoutersRequest.routers:type_name -> gatewayapis.server.v1.HTTPRouter + 8, // 2: gatewayapis.server.v1.PostRegistGRPCMethodsRequest.methods:type_name -> gatewayapis.server.v1.GRPCMethod 0, // 3: gatewayapis.server.v1.ServerRegisterService.PostRegistServiceInstance:input_type -> gatewayapis.server.v1.PostRegistServiceInstanceRequest - 1, // 4: gatewayapis.server.v1.ServerRegisterService.PostRegistHTTPRouters:input_type -> gatewayapis.server.v1.PostRegistRoutersRequest - 2, // 5: gatewayapis.server.v1.ServerRegisterService.PostRegistGRPCMethods:input_type -> gatewayapis.server.v1.PostRegistGRPCMethodsRequest - 6, // 6: gatewayapis.server.v1.ServerRegisterService.PostRegistServiceInstance:output_type -> google.protobuf.Empty - 6, // 7: gatewayapis.server.v1.ServerRegisterService.PostRegistHTTPRouters:output_type -> google.protobuf.Empty - 6, // 8: gatewayapis.server.v1.ServerRegisterService.PostRegistGRPCMethods:output_type -> google.protobuf.Empty + 2, // 4: gatewayapis.server.v1.ServerRegisterService.PostRegistHTTPRouters:input_type -> gatewayapis.server.v1.PostRegistHTTPRoutersRequest + 4, // 5: gatewayapis.server.v1.ServerRegisterService.PostRegistGRPCMethods:input_type -> gatewayapis.server.v1.PostRegistGRPCMethodsRequest + 1, // 6: gatewayapis.server.v1.ServerRegisterService.PostRegistServiceInstance:output_type -> gatewayapis.server.v1.PostRegistServiceInstanceResponse + 3, // 7: gatewayapis.server.v1.ServerRegisterService.PostRegistHTTPRouters:output_type -> gatewayapis.server.v1.PostRegistHTTPRoutersResponse + 5, // 8: gatewayapis.server.v1.ServerRegisterService.PostRegistGRPCMethods:output_type -> gatewayapis.server.v1.PostRegistGRPCMethodsResponse 6, // [6:9] is the sub-list for method output_type 3, // [3:6] is the sub-list for method input_type 3, // [3:3] is the sub-list for extension type_name @@ -297,7 +426,7 @@ func file_gatewayapis_server_v1_register_proto_init() { } } file_gatewayapis_server_v1_register_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostRegistRoutersRequest); i { + switch v := v.(*PostRegistServiceInstanceResponse); i { case 0: return &v.state case 1: @@ -309,6 +438,30 @@ func file_gatewayapis_server_v1_register_proto_init() { } } file_gatewayapis_server_v1_register_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PostRegistHTTPRoutersRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_server_v1_register_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PostRegistHTTPRoutersResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_gatewayapis_server_v1_register_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PostRegistGRPCMethodsRequest); i { case 0: return &v.state @@ -320,6 +473,18 @@ func file_gatewayapis_server_v1_register_proto_init() { return nil } } + file_gatewayapis_server_v1_register_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PostRegistGRPCMethodsResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -327,7 +492,7 @@ func file_gatewayapis_server_v1_register_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_gatewayapis_server_v1_register_proto_rawDesc, NumEnums: 0, - NumMessages: 3, + NumMessages: 6, NumExtensions: 0, NumServices: 1, }, diff --git a/gatewayapis/server/v1/register.pb.gw.go b/gatewayapis/server/v1/register.pb.gw.go index 429b520..c12d352 100644 --- a/gatewayapis/server/v1/register.pb.gw.go +++ b/gatewayapis/server/v1/register.pb.gw.go @@ -66,7 +66,7 @@ func local_request_ServerRegisterService_PostRegistServiceInstance_0(ctx context } func request_ServerRegisterService_PostRegistHTTPRouters_0(ctx context.Context, marshaler runtime.Marshaler, client ServerRegisterServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PostRegistRoutersRequest + var protoReq PostRegistHTTPRoutersRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) @@ -83,7 +83,7 @@ func request_ServerRegisterService_PostRegistHTTPRouters_0(ctx context.Context, } func local_request_ServerRegisterService_PostRegistHTTPRouters_0(ctx context.Context, marshaler runtime.Marshaler, server ServerRegisterServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PostRegistRoutersRequest + var protoReq PostRegistHTTPRoutersRequest var metadata runtime.ServerMetadata newReader, berr := utilities.IOReaderFactory(req.Body) diff --git a/gatewayapis/server/v1/register.proto b/gatewayapis/server/v1/register.proto index b271d9c..c479684 100644 --- a/gatewayapis/server/v1/register.proto +++ b/gatewayapis/server/v1/register.proto @@ -13,21 +13,27 @@ option go_package = "./gatewayapis/server/v1"; //服务注册方 service ServerRegisterService { //注册服务实例 - rpc PostRegistServiceInstance(PostRegistServiceInstanceRequest) returns (google.protobuf.Empty) {} + rpc PostRegistServiceInstance(PostRegistServiceInstanceRequest) returns (PostRegistServiceInstanceResponse) {} //注册服务HTTP路由 - rpc PostRegistHTTPRouters(PostRegistRoutersRequest) returns (google.protobuf.Empty) {} + rpc PostRegistHTTPRouters(PostRegistHTTPRoutersRequest) returns (PostRegistHTTPRoutersResponse) {} //注册服务GRPC方法 - rpc PostRegistGRPCMethods(PostRegistGRPCMethodsRequest) returns (google.protobuf.Empty) {} + rpc PostRegistGRPCMethods(PostRegistGRPCMethodsRequest) returns (PostRegistGRPCMethodsResponse) {} } message PostRegistServiceInstanceRequest { gatewayapis.server.v1.ServiceInstance instance = 1; } -message PostRegistRoutersRequest { +message PostRegistServiceInstanceResponse {} + +message PostRegistHTTPRoutersRequest { repeated gatewayapis.server.v1.HTTPRouter routers = 1; } +message PostRegistHTTPRoutersResponse {} + message PostRegistGRPCMethodsRequest { repeated gatewayapis.server.v1.GRPCMethod methods = 1; } + +message PostRegistGRPCMethodsResponse {} diff --git a/gatewayapis/server/v1/register_grpc.pb.go b/gatewayapis/server/v1/register_grpc.pb.go index 9f6fb14..7af8c7e 100644 --- a/gatewayapis/server/v1/register_grpc.pb.go +++ b/gatewayapis/server/v1/register_grpc.pb.go @@ -11,7 +11,6 @@ import ( grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" status "google.golang.org/grpc/status" - emptypb "google.golang.org/protobuf/types/known/emptypb" ) // This is a compile-time assertion to ensure that this generated file @@ -24,11 +23,11 @@ const _ = grpc.SupportPackageIsVersion7 // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type ServerRegisterServiceClient interface { //注册服务实例 - PostRegistServiceInstance(ctx context.Context, in *PostRegistServiceInstanceRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + PostRegistServiceInstance(ctx context.Context, in *PostRegistServiceInstanceRequest, opts ...grpc.CallOption) (*PostRegistServiceInstanceResponse, error) //注册服务HTTP路由 - PostRegistHTTPRouters(ctx context.Context, in *PostRegistRoutersRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + PostRegistHTTPRouters(ctx context.Context, in *PostRegistHTTPRoutersRequest, opts ...grpc.CallOption) (*PostRegistHTTPRoutersResponse, error) //注册服务GRPC方法 - PostRegistGRPCMethods(ctx context.Context, in *PostRegistGRPCMethodsRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) + PostRegistGRPCMethods(ctx context.Context, in *PostRegistGRPCMethodsRequest, opts ...grpc.CallOption) (*PostRegistGRPCMethodsResponse, error) } type serverRegisterServiceClient struct { @@ -39,8 +38,8 @@ func NewServerRegisterServiceClient(cc grpc.ClientConnInterface) ServerRegisterS return &serverRegisterServiceClient{cc} } -func (c *serverRegisterServiceClient) PostRegistServiceInstance(ctx context.Context, in *PostRegistServiceInstanceRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - out := new(emptypb.Empty) +func (c *serverRegisterServiceClient) PostRegistServiceInstance(ctx context.Context, in *PostRegistServiceInstanceRequest, opts ...grpc.CallOption) (*PostRegistServiceInstanceResponse, error) { + out := new(PostRegistServiceInstanceResponse) err := c.cc.Invoke(ctx, "/gatewayapis.server.v1.ServerRegisterService/PostRegistServiceInstance", in, out, opts...) if err != nil { return nil, err @@ -48,8 +47,8 @@ func (c *serverRegisterServiceClient) PostRegistServiceInstance(ctx context.Cont return out, nil } -func (c *serverRegisterServiceClient) PostRegistHTTPRouters(ctx context.Context, in *PostRegistRoutersRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - out := new(emptypb.Empty) +func (c *serverRegisterServiceClient) PostRegistHTTPRouters(ctx context.Context, in *PostRegistHTTPRoutersRequest, opts ...grpc.CallOption) (*PostRegistHTTPRoutersResponse, error) { + out := new(PostRegistHTTPRoutersResponse) err := c.cc.Invoke(ctx, "/gatewayapis.server.v1.ServerRegisterService/PostRegistHTTPRouters", in, out, opts...) if err != nil { return nil, err @@ -57,8 +56,8 @@ func (c *serverRegisterServiceClient) PostRegistHTTPRouters(ctx context.Context, return out, nil } -func (c *serverRegisterServiceClient) PostRegistGRPCMethods(ctx context.Context, in *PostRegistGRPCMethodsRequest, opts ...grpc.CallOption) (*emptypb.Empty, error) { - out := new(emptypb.Empty) +func (c *serverRegisterServiceClient) PostRegistGRPCMethods(ctx context.Context, in *PostRegistGRPCMethodsRequest, opts ...grpc.CallOption) (*PostRegistGRPCMethodsResponse, error) { + out := new(PostRegistGRPCMethodsResponse) err := c.cc.Invoke(ctx, "/gatewayapis.server.v1.ServerRegisterService/PostRegistGRPCMethods", in, out, opts...) if err != nil { return nil, err @@ -71,24 +70,24 @@ func (c *serverRegisterServiceClient) PostRegistGRPCMethods(ctx context.Context, // for forward compatibility type ServerRegisterServiceServer interface { //注册服务实例 - PostRegistServiceInstance(context.Context, *PostRegistServiceInstanceRequest) (*emptypb.Empty, error) + PostRegistServiceInstance(context.Context, *PostRegistServiceInstanceRequest) (*PostRegistServiceInstanceResponse, error) //注册服务HTTP路由 - PostRegistHTTPRouters(context.Context, *PostRegistRoutersRequest) (*emptypb.Empty, error) + PostRegistHTTPRouters(context.Context, *PostRegistHTTPRoutersRequest) (*PostRegistHTTPRoutersResponse, error) //注册服务GRPC方法 - PostRegistGRPCMethods(context.Context, *PostRegistGRPCMethodsRequest) (*emptypb.Empty, error) + PostRegistGRPCMethods(context.Context, *PostRegistGRPCMethodsRequest) (*PostRegistGRPCMethodsResponse, error) } // UnimplementedServerRegisterServiceServer should be embedded to have forward compatible implementations. type UnimplementedServerRegisterServiceServer struct { } -func (UnimplementedServerRegisterServiceServer) PostRegistServiceInstance(context.Context, *PostRegistServiceInstanceRequest) (*emptypb.Empty, error) { +func (UnimplementedServerRegisterServiceServer) PostRegistServiceInstance(context.Context, *PostRegistServiceInstanceRequest) (*PostRegistServiceInstanceResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PostRegistServiceInstance not implemented") } -func (UnimplementedServerRegisterServiceServer) PostRegistHTTPRouters(context.Context, *PostRegistRoutersRequest) (*emptypb.Empty, error) { +func (UnimplementedServerRegisterServiceServer) PostRegistHTTPRouters(context.Context, *PostRegistHTTPRoutersRequest) (*PostRegistHTTPRoutersResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PostRegistHTTPRouters not implemented") } -func (UnimplementedServerRegisterServiceServer) PostRegistGRPCMethods(context.Context, *PostRegistGRPCMethodsRequest) (*emptypb.Empty, error) { +func (UnimplementedServerRegisterServiceServer) PostRegistGRPCMethods(context.Context, *PostRegistGRPCMethodsRequest) (*PostRegistGRPCMethodsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PostRegistGRPCMethods not implemented") } @@ -122,7 +121,7 @@ func _ServerRegisterService_PostRegistServiceInstance_Handler(srv interface{}, c } func _ServerRegisterService_PostRegistHTTPRouters_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PostRegistRoutersRequest) + in := new(PostRegistHTTPRoutersRequest) if err := dec(in); err != nil { return nil, err } @@ -134,7 +133,7 @@ func _ServerRegisterService_PostRegistHTTPRouters_Handler(srv interface{}, ctx c FullMethod: "/gatewayapis.server.v1.ServerRegisterService/PostRegistHTTPRouters", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ServerRegisterServiceServer).PostRegistHTTPRouters(ctx, req.(*PostRegistRoutersRequest)) + return srv.(ServerRegisterServiceServer).PostRegistHTTPRouters(ctx, req.(*PostRegistHTTPRoutersRequest)) } return interceptor(ctx, in, info, handler) } From c3d1ac99daa5eca7124abac5d1fe280734a984fb Mon Sep 17 00:00:00 2001 From: sunalwaysknows <86180691+sunalwaysknows@users.noreply.github.com> Date: Tue, 28 Jun 2022 17:55:33 +0800 Subject: [PATCH 07/25] update(campus): buf generate up to date --- campusapis/staff/v1/campus.pb.go | 1912 ++++++++++++++----------- campusapis/staff/v1/campus.pb.gw.go | 457 +++--- campusapis/staff/v1/campus_grpc.pb.go | 48 +- 3 files changed, 1399 insertions(+), 1018 deletions(-) diff --git a/campusapis/staff/v1/campus.pb.go b/campusapis/staff/v1/campus.pb.go index 65b2b9a..4ad47d0 100644 --- a/campusapis/staff/v1/campus.pb.go +++ b/campusapis/staff/v1/campus.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.0 -// protoc (unknown) +// protoc v3.18.1 // source: campusapis/staff/v1/campus.proto package staffv1 @@ -343,6 +343,63 @@ func (x *GetStudentGradeRequest) GetSemester() string { return "" } +type GetStudentExamRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //学年,只支持一种格式,例:2021-2022学年,应传 2021 + SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + //学期,枚举:第一学期 | 第二学期 + Semester string `protobuf:"bytes,2,opt,name=semester,proto3" json:"semester,omitempty"` +} + +func (x *GetStudentExamRequest) Reset() { + *x = GetStudentExamRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStudentExamRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStudentExamRequest) ProtoMessage() {} + +func (x *GetStudentExamRequest) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStudentExamRequest.ProtoReflect.Descriptor instead. +func (*GetStudentExamRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{5} +} + +func (x *GetStudentExamRequest) GetSchoolYear() string { + if x != nil { + return x.SchoolYear + } + return "" +} + +func (x *GetStudentExamRequest) GetSemester() string { + if x != nil { + return x.Semester + } + return "" +} + //学期查询关键字 type SemesterRequest struct { state protoimpl.MessageState @@ -358,7 +415,7 @@ type SemesterRequest struct { func (x *SemesterRequest) Reset() { *x = SemesterRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[5] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -371,7 +428,7 @@ func (x *SemesterRequest) String() string { func (*SemesterRequest) ProtoMessage() {} func (x *SemesterRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[5] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -384,7 +441,7 @@ func (x *SemesterRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SemesterRequest.ProtoReflect.Descriptor instead. func (*SemesterRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{5} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{6} } func (x *SemesterRequest) GetSchoolYear() string { @@ -415,7 +472,7 @@ type GetStudentInfoResponse struct { func (x *GetStudentInfoResponse) Reset() { *x = GetStudentInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[6] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -428,7 +485,7 @@ func (x *GetStudentInfoResponse) String() string { func (*GetStudentInfoResponse) ProtoMessage() {} func (x *GetStudentInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[6] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -441,7 +498,7 @@ func (x *GetStudentInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{6} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{7} } func (x *GetStudentInfoResponse) GetError() uint32 { @@ -493,7 +550,7 @@ type StudentInfo struct { func (x *StudentInfo) Reset() { *x = StudentInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[7] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -506,7 +563,7 @@ func (x *StudentInfo) String() string { func (*StudentInfo) ProtoMessage() {} func (x *StudentInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[7] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -519,7 +576,7 @@ func (x *StudentInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentInfo.ProtoReflect.Descriptor instead. func (*StudentInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{7} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{8} } func (x *StudentInfo) GetStaffId() string { @@ -599,7 +656,7 @@ type GetStudentNeedyInfoResponse struct { func (x *GetStudentNeedyInfoResponse) Reset() { *x = GetStudentNeedyInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[8] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -612,7 +669,7 @@ func (x *GetStudentNeedyInfoResponse) String() string { func (*GetStudentNeedyInfoResponse) ProtoMessage() {} func (x *GetStudentNeedyInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[8] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -625,7 +682,7 @@ func (x *GetStudentNeedyInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentNeedyInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentNeedyInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{8} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9} } func (x *GetStudentNeedyInfoResponse) GetError() uint32 { @@ -670,7 +727,7 @@ type StudentNeedyInfo struct { func (x *StudentNeedyInfo) Reset() { *x = StudentNeedyInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -683,7 +740,7 @@ func (x *StudentNeedyInfo) String() string { func (*StudentNeedyInfo) ProtoMessage() {} func (x *StudentNeedyInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -696,7 +753,7 @@ func (x *StudentNeedyInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentNeedyInfo.ProtoReflect.Descriptor instead. func (*StudentNeedyInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10} } func (x *StudentNeedyInfo) GetStaffId() string { @@ -748,7 +805,7 @@ type GetStudentDormInfoResponse struct { func (x *GetStudentDormInfoResponse) Reset() { *x = GetStudentDormInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -761,7 +818,7 @@ func (x *GetStudentDormInfoResponse) String() string { func (*GetStudentDormInfoResponse) ProtoMessage() {} func (x *GetStudentDormInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -774,7 +831,7 @@ func (x *GetStudentDormInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentDormInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentDormInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{11} } func (x *GetStudentDormInfoResponse) GetError() uint32 { @@ -814,7 +871,7 @@ type DormInfo struct { func (x *DormInfo) Reset() { *x = DormInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -827,7 +884,7 @@ func (x *DormInfo) String() string { func (*DormInfo) ProtoMessage() {} func (x *DormInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -840,7 +897,7 @@ func (x *DormInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use DormInfo.ProtoReflect.Descriptor instead. func (*DormInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{11} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12} } func (x *DormInfo) GetStaffId() string { @@ -878,7 +935,7 @@ type GetStudentBirthdayInfoResponse struct { func (x *GetStudentBirthdayInfoResponse) Reset() { *x = GetStudentBirthdayInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -891,7 +948,7 @@ func (x *GetStudentBirthdayInfoResponse) String() string { func (*GetStudentBirthdayInfoResponse) ProtoMessage() {} func (x *GetStudentBirthdayInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -904,7 +961,7 @@ func (x *GetStudentBirthdayInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdayInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentBirthdayInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{13} } func (x *GetStudentBirthdayInfoResponse) GetError() uint32 { @@ -945,7 +1002,7 @@ type StudentBirthdayInfo struct { func (x *StudentBirthdayInfo) Reset() { *x = StudentBirthdayInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -958,7 +1015,7 @@ func (x *StudentBirthdayInfo) String() string { func (*StudentBirthdayInfo) ProtoMessage() {} func (x *StudentBirthdayInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -971,7 +1028,7 @@ func (x *StudentBirthdayInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentBirthdayInfo.ProtoReflect.Descriptor instead. func (*StudentBirthdayInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{13} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{14} } func (x *StudentBirthdayInfo) GetStaffId() string { @@ -1012,7 +1069,7 @@ type GetStudentBirthdaysInRequest struct { func (x *GetStudentBirthdaysInRequest) Reset() { *x = GetStudentBirthdaysInRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1025,7 +1082,7 @@ func (x *GetStudentBirthdaysInRequest) String() string { func (*GetStudentBirthdaysInRequest) ProtoMessage() {} func (x *GetStudentBirthdaysInRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1038,7 +1095,7 @@ func (x *GetStudentBirthdaysInRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdaysInRequest.ProtoReflect.Descriptor instead. func (*GetStudentBirthdaysInRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{14} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{15} } func (x *GetStudentBirthdaysInRequest) GetType() staff.Type { @@ -1075,7 +1132,7 @@ type GetStudentBirthdaysInResponse struct { func (x *GetStudentBirthdaysInResponse) Reset() { *x = GetStudentBirthdaysInResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1088,7 +1145,7 @@ func (x *GetStudentBirthdaysInResponse) String() string { func (*GetStudentBirthdaysInResponse) ProtoMessage() {} func (x *GetStudentBirthdaysInResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1101,7 +1158,7 @@ func (x *GetStudentBirthdaysInResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdaysInResponse.ProtoReflect.Descriptor instead. func (*GetStudentBirthdaysInResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{15} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{16} } func (x *GetStudentBirthdaysInResponse) GetBirthdays() []*StudentBirthdayInfo { @@ -1126,7 +1183,7 @@ type GetStudentRewardsResponse struct { func (x *GetStudentRewardsResponse) Reset() { *x = GetStudentRewardsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1139,7 +1196,7 @@ func (x *GetStudentRewardsResponse) String() string { func (*GetStudentRewardsResponse) ProtoMessage() {} func (x *GetStudentRewardsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1152,7 +1209,7 @@ func (x *GetStudentRewardsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentRewardsResponse.ProtoReflect.Descriptor instead. func (*GetStudentRewardsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{16} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{17} } func (x *GetStudentRewardsResponse) GetError() uint32 { @@ -1199,7 +1256,7 @@ type StudentReward struct { func (x *StudentReward) Reset() { *x = StudentReward{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1212,7 +1269,7 @@ func (x *StudentReward) String() string { func (*StudentReward) ProtoMessage() {} func (x *StudentReward) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1225,7 +1282,7 @@ func (x *StudentReward) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentReward.ProtoReflect.Descriptor instead. func (*StudentReward) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{17} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{18} } func (x *StudentReward) GetStaffID() string { @@ -1285,7 +1342,7 @@ type GetStudentCourseSelectionsResponse struct { func (x *GetStudentCourseSelectionsResponse) Reset() { *x = GetStudentCourseSelectionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1298,7 +1355,7 @@ func (x *GetStudentCourseSelectionsResponse) String() string { func (*GetStudentCourseSelectionsResponse) ProtoMessage() {} func (x *GetStudentCourseSelectionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1311,7 +1368,7 @@ func (x *GetStudentCourseSelectionsResponse) ProtoReflect() protoreflect.Message // Deprecated: Use GetStudentCourseSelectionsResponse.ProtoReflect.Descriptor instead. func (*GetStudentCourseSelectionsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{18} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{19} } func (x *GetStudentCourseSelectionsResponse) GetError() uint32 { @@ -1368,7 +1425,7 @@ type StudentCourseSelection struct { func (x *StudentCourseSelection) Reset() { *x = StudentCourseSelection{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1381,7 +1438,7 @@ func (x *StudentCourseSelection) String() string { func (*StudentCourseSelection) ProtoMessage() {} func (x *StudentCourseSelection) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1394,7 +1451,7 @@ func (x *StudentCourseSelection) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentCourseSelection.ProtoReflect.Descriptor instead. func (*StudentCourseSelection) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{19} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{20} } func (x *StudentCourseSelection) GetSchoolYear() string { @@ -1489,7 +1546,7 @@ type GetStudentGradeResponse struct { func (x *GetStudentGradeResponse) Reset() { *x = GetStudentGradeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1502,7 +1559,7 @@ func (x *GetStudentGradeResponse) String() string { func (*GetStudentGradeResponse) ProtoMessage() {} func (x *GetStudentGradeResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1515,7 +1572,7 @@ func (x *GetStudentGradeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentGradeResponse.ProtoReflect.Descriptor instead. func (*GetStudentGradeResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{20} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{21} } func (x *GetStudentGradeResponse) GetError() uint32 { @@ -1580,7 +1637,7 @@ type StudentGrade struct { func (x *StudentGrade) Reset() { *x = StudentGrade{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1593,7 +1650,7 @@ func (x *StudentGrade) String() string { func (*StudentGrade) ProtoMessage() {} func (x *StudentGrade) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1606,7 +1663,7 @@ func (x *StudentGrade) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentGrade.ProtoReflect.Descriptor instead. func (*StudentGrade) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{21} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{22} } func (x *StudentGrade) GetSchoolYear() string { @@ -1714,48 +1771,35 @@ func (x *StudentGrade) GetGPA() string { return "" } -// 推送学生门禁通行信息-请求关键字 -type PostStudentGateAccessRequest struct { +// 查询学生考试返回体 +type GetStudentExamResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 学工号(重要) - StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` - // 请假类型,数字,一个数字对应一大类请假,枚举及含义: - // 0->临时请假 | 1->当天假 | 2->单位实习(目前没用)| - // 3->特殊(目前没用) | 4->身份码(目前没用) | - // 5->离校 | 6->按周(目前没用) | 7->按月(目前没用) - DayOffType string `protobuf:"bytes,2,opt,name=dayOffType,proto3" json:"dayOffType,omitempty"` - // 请假类型,中文名 - DayOffName string `protobuf:"bytes,3,opt,name=dayOffName,proto3" json:"dayOffName,omitempty"` - // 开始时间(重要) - TimeStart string `protobuf:"bytes,4,opt,name=timeStart,proto3" json:"timeStart,omitempty"` - // 结束时间(重要) - TimeEnd string `protobuf:"bytes,5,opt,name=timeEnd,proto3" json:"timeEnd,omitempty"` - // 假条 uid - Uid string `protobuf:"bytes,6,opt,name=uid,proto3" json:"uid,omitempty"` - // 闸机牌子(重要),枚举及含义:hikvision -> 海康 | uniview -> 宇视 - Target string `protobuf:"bytes,7,opt,name=Target,proto3" json:"Target,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + // 考试详情列表 + Data []*StudentExam `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } -func (x *PostStudentGateAccessRequest) Reset() { - *x = PostStudentGateAccessRequest{} +func (x *GetStudentExamResponse) Reset() { + *x = GetStudentExamResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PostStudentGateAccessRequest) String() string { +func (x *GetStudentExamResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PostStudentGateAccessRequest) ProtoMessage() {} +func (*GetStudentExamResponse) ProtoMessage() {} -func (x *PostStudentGateAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] +func (x *GetStudentExamResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1766,88 +1810,75 @@ func (x *PostStudentGateAccessRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PostStudentGateAccessRequest.ProtoReflect.Descriptor instead. -func (*PostStudentGateAccessRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{22} -} - -func (x *PostStudentGateAccessRequest) GetStaffId() string { - if x != nil { - return x.StaffId - } - return "" -} - -func (x *PostStudentGateAccessRequest) GetDayOffType() string { - if x != nil { - return x.DayOffType - } - return "" -} - -func (x *PostStudentGateAccessRequest) GetDayOffName() string { - if x != nil { - return x.DayOffName - } - return "" -} - -func (x *PostStudentGateAccessRequest) GetTimeStart() string { - if x != nil { - return x.TimeStart - } - return "" +// Deprecated: Use GetStudentExamResponse.ProtoReflect.Descriptor instead. +func (*GetStudentExamResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{23} } -func (x *PostStudentGateAccessRequest) GetTimeEnd() string { +func (x *GetStudentExamResponse) GetError() uint32 { if x != nil { - return x.TimeEnd + return x.Error } - return "" + return 0 } -func (x *PostStudentGateAccessRequest) GetUid() string { +func (x *GetStudentExamResponse) GetMsg() string { if x != nil { - return x.Uid + return x.Msg } return "" } -func (x *PostStudentGateAccessRequest) GetTarget() string { +func (x *GetStudentExamResponse) GetData() []*StudentExam { if x != nil { - return x.Target + return x.Data } - return "" + return nil } -// PostStudentGateAccessResponse 推送学生门禁通行信息 -type PostStudentGateAccessResponse struct { +// 考试详情 +type StudentExam struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Data *PostStudentGateAccessResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` -} - -func (x *PostStudentGateAccessResponse) Reset() { - *x = PostStudentGateAccessResponse{} + // 教室 + Classroom string `protobuf:"bytes,1,opt,name=classroom,proto3" json:"classroom,omitempty"` + // 课程 + Course string `protobuf:"bytes,2,opt,name=course,proto3" json:"course,omitempty"` + // 考试时间 + ExamTime string `protobuf:"bytes,3,opt,name=examTime,proto3" json:"examTime,omitempty"` + // 考试类型 + ExamType string `protobuf:"bytes,4,opt,name=examType,proto3" json:"examType,omitempty"` + // 学年 + SchoolYear string `protobuf:"bytes,5,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + // 学期 + Semester string `protobuf:"bytes,6,opt,name=semester,proto3" json:"semester,omitempty"` + // 座位号 + Seat string `protobuf:"bytes,7,opt,name=seat,proto3" json:"seat,omitempty"` + // 课程号 + SelectCode string `protobuf:"bytes,8,opt,name=selectCode,proto3" json:"selectCode,omitempty"` + // 学号 + StaffId string `protobuf:"bytes,9,opt,name=staffId,proto3" json:"staffId,omitempty"` +} + +func (x *StudentExam) Reset() { + *x = StudentExam{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PostStudentGateAccessResponse) String() string { +func (x *StudentExam) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PostStudentGateAccessResponse) ProtoMessage() {} +func (*StudentExam) ProtoMessage() {} -func (x *PostStudentGateAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] +func (x *StudentExam) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1858,33 +1889,245 @@ func (x *PostStudentGateAccessResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PostStudentGateAccessResponse.ProtoReflect.Descriptor instead. -func (*PostStudentGateAccessResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{23} +// Deprecated: Use StudentExam.ProtoReflect.Descriptor instead. +func (*StudentExam) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{24} } -func (x *PostStudentGateAccessResponse) GetError() uint32 { +func (x *StudentExam) GetClassroom() string { if x != nil { - return x.Error + return x.Classroom } - return 0 + return "" } -func (x *PostStudentGateAccessResponse) GetMsg() string { +func (x *StudentExam) GetCourse() string { if x != nil { - return x.Msg + return x.Course } return "" } -func (x *PostStudentGateAccessResponse) GetData() *PostStudentGateAccessResponse_Data { +func (x *StudentExam) GetExamTime() string { if x != nil { - return x.Data + return x.ExamTime } - return nil + return "" } -// 留校生信息查询-返回体 +func (x *StudentExam) GetExamType() string { + if x != nil { + return x.ExamType + } + return "" +} + +func (x *StudentExam) GetSchoolYear() string { + if x != nil { + return x.SchoolYear + } + return "" +} + +func (x *StudentExam) GetSemester() string { + if x != nil { + return x.Semester + } + return "" +} + +func (x *StudentExam) GetSeat() string { + if x != nil { + return x.Seat + } + return "" +} + +func (x *StudentExam) GetSelectCode() string { + if x != nil { + return x.SelectCode + } + return "" +} + +func (x *StudentExam) GetStaffId() string { + if x != nil { + return x.StaffId + } + return "" +} + +// 推送学生门禁通行信息-请求关键字 +type PostStudentGateAccessRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 学工号(重要) + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + // 请假类型,数字,一个数字对应一大类请假,枚举及含义: + // 0->临时请假 | 1->当天假 | 2->单位实习(目前没用)| + // 3->特殊(目前没用) | 4->身份码(目前没用) | + // 5->离校 | 6->按周(目前没用) | 7->按月(目前没用) + DayOffType string `protobuf:"bytes,2,opt,name=dayOffType,proto3" json:"dayOffType,omitempty"` + // 请假类型,中文名 + DayOffName string `protobuf:"bytes,3,opt,name=dayOffName,proto3" json:"dayOffName,omitempty"` + // 开始时间(重要) + TimeStart string `protobuf:"bytes,4,opt,name=timeStart,proto3" json:"timeStart,omitempty"` + // 结束时间(重要) + TimeEnd string `protobuf:"bytes,5,opt,name=timeEnd,proto3" json:"timeEnd,omitempty"` + // 假条 uid + Uid string `protobuf:"bytes,6,opt,name=uid,proto3" json:"uid,omitempty"` + // 闸机牌子(重要),枚举及含义:hikvision -> 海康 | uniview -> 宇视 + Target string `protobuf:"bytes,7,opt,name=Target,proto3" json:"Target,omitempty"` +} + +func (x *PostStudentGateAccessRequest) Reset() { + *x = PostStudentGateAccessRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostStudentGateAccessRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostStudentGateAccessRequest) ProtoMessage() {} + +func (x *PostStudentGateAccessRequest) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostStudentGateAccessRequest.ProtoReflect.Descriptor instead. +func (*PostStudentGateAccessRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{25} +} + +func (x *PostStudentGateAccessRequest) GetStaffId() string { + if x != nil { + return x.StaffId + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetDayOffType() string { + if x != nil { + return x.DayOffType + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetDayOffName() string { + if x != nil { + return x.DayOffName + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetTimeStart() string { + if x != nil { + return x.TimeStart + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetTimeEnd() string { + if x != nil { + return x.TimeEnd + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetTarget() string { + if x != nil { + return x.Target + } + return "" +} + +// PostStudentGateAccessResponse 推送学生门禁通行信息 +type PostStudentGateAccessResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *PostStudentGateAccessResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *PostStudentGateAccessResponse) Reset() { + *x = PostStudentGateAccessResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostStudentGateAccessResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostStudentGateAccessResponse) ProtoMessage() {} + +func (x *PostStudentGateAccessResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostStudentGateAccessResponse.ProtoReflect.Descriptor instead. +func (*PostStudentGateAccessResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{26} +} + +func (x *PostStudentGateAccessResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *PostStudentGateAccessResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *PostStudentGateAccessResponse) GetData() *PostStudentGateAccessResponse_Data { + if x != nil { + return x.Data + } + return nil +} + +// 留校生信息查询-返回体 type GetStudentStaySchoolInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1898,7 +2141,7 @@ type GetStudentStaySchoolInfoResponse struct { func (x *GetStudentStaySchoolInfoResponse) Reset() { *x = GetStudentStaySchoolInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1911,7 +2154,7 @@ func (x *GetStudentStaySchoolInfoResponse) String() string { func (*GetStudentStaySchoolInfoResponse) ProtoMessage() {} func (x *GetStudentStaySchoolInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1924,7 +2167,7 @@ func (x *GetStudentStaySchoolInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentStaySchoolInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentStaySchoolInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{24} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{27} } func (x *GetStudentStaySchoolInfoResponse) GetError() uint32 { @@ -1989,7 +2232,7 @@ type StudentStaySchoolInfo struct { func (x *StudentStaySchoolInfo) Reset() { *x = StudentStaySchoolInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2002,7 +2245,7 @@ func (x *StudentStaySchoolInfo) String() string { func (*StudentStaySchoolInfo) ProtoMessage() {} func (x *StudentStaySchoolInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2015,7 +2258,7 @@ func (x *StudentStaySchoolInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentStaySchoolInfo.ProtoReflect.Descriptor instead. func (*StudentStaySchoolInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{25} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{28} } func (x *StudentStaySchoolInfo) GetStaffId() string { @@ -2139,7 +2382,7 @@ type GetFreshmanBaseInfoRequest struct { func (x *GetFreshmanBaseInfoRequest) Reset() { *x = GetFreshmanBaseInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2152,7 +2395,7 @@ func (x *GetFreshmanBaseInfoRequest) String() string { func (*GetFreshmanBaseInfoRequest) ProtoMessage() {} func (x *GetFreshmanBaseInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2165,7 +2408,7 @@ func (x *GetFreshmanBaseInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanBaseInfoRequest.ProtoReflect.Descriptor instead. func (*GetFreshmanBaseInfoRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{26} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{29} } func (x *GetFreshmanBaseInfoRequest) GetStaffId() string { @@ -2205,7 +2448,7 @@ type GetFreshmanDetailRequest struct { func (x *GetFreshmanDetailRequest) Reset() { *x = GetFreshmanDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2218,7 +2461,7 @@ func (x *GetFreshmanDetailRequest) String() string { func (*GetFreshmanDetailRequest) ProtoMessage() {} func (x *GetFreshmanDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2231,7 +2474,7 @@ func (x *GetFreshmanDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanDetailRequest.ProtoReflect.Descriptor instead. func (*GetFreshmanDetailRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{27} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{30} } func (x *GetFreshmanDetailRequest) GetStaffId() string { @@ -2271,7 +2514,7 @@ type GetFreshmanRoommatesRequest struct { func (x *GetFreshmanRoommatesRequest) Reset() { *x = GetFreshmanRoommatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2284,7 +2527,7 @@ func (x *GetFreshmanRoommatesRequest) String() string { func (*GetFreshmanRoommatesRequest) ProtoMessage() {} func (x *GetFreshmanRoommatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2297,7 +2540,7 @@ func (x *GetFreshmanRoommatesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanRoommatesRequest.ProtoReflect.Descriptor instead. func (*GetFreshmanRoommatesRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{28} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{31} } func (x *GetFreshmanRoommatesRequest) GetStaffId() string { @@ -2339,7 +2582,7 @@ type FreshmanKeywordRequest struct { func (x *FreshmanKeywordRequest) Reset() { *x = FreshmanKeywordRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2352,7 +2595,7 @@ func (x *FreshmanKeywordRequest) String() string { func (*FreshmanKeywordRequest) ProtoMessage() {} func (x *FreshmanKeywordRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2365,7 +2608,7 @@ func (x *FreshmanKeywordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanKeywordRequest.ProtoReflect.Descriptor instead. func (*FreshmanKeywordRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{29} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{32} } func (x *FreshmanKeywordRequest) GetStaffId() string { @@ -2402,7 +2645,7 @@ type GetFreshmanBaseInfoResponse struct { func (x *GetFreshmanBaseInfoResponse) Reset() { *x = GetFreshmanBaseInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2415,7 +2658,7 @@ func (x *GetFreshmanBaseInfoResponse) String() string { func (*GetFreshmanBaseInfoResponse) ProtoMessage() {} func (x *GetFreshmanBaseInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2428,7 +2671,7 @@ func (x *GetFreshmanBaseInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanBaseInfoResponse.ProtoReflect.Descriptor instead. func (*GetFreshmanBaseInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{30} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{33} } func (x *GetFreshmanBaseInfoResponse) GetError() uint32 { @@ -2475,7 +2718,7 @@ type FreshmanBaseInfo struct { func (x *FreshmanBaseInfo) Reset() { *x = FreshmanBaseInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2488,7 +2731,7 @@ func (x *FreshmanBaseInfo) String() string { func (*FreshmanBaseInfo) ProtoMessage() {} func (x *FreshmanBaseInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2501,7 +2744,7 @@ func (x *FreshmanBaseInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanBaseInfo.ProtoReflect.Descriptor instead. func (*FreshmanBaseInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{31} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{34} } func (x *FreshmanBaseInfo) GetStaffId() string { @@ -2559,7 +2802,7 @@ type GetFreshmanDetailResponse struct { func (x *GetFreshmanDetailResponse) Reset() { *x = GetFreshmanDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2572,7 +2815,7 @@ func (x *GetFreshmanDetailResponse) String() string { func (*GetFreshmanDetailResponse) ProtoMessage() {} func (x *GetFreshmanDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2585,7 +2828,7 @@ func (x *GetFreshmanDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanDetailResponse.ProtoReflect.Descriptor instead. func (*GetFreshmanDetailResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{32} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{35} } func (x *GetFreshmanDetailResponse) GetError() uint32 { @@ -2667,7 +2910,7 @@ type FreshmanDetail struct { func (x *FreshmanDetail) Reset() { *x = FreshmanDetail{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2680,7 +2923,7 @@ func (x *FreshmanDetail) String() string { func (*FreshmanDetail) ProtoMessage() {} func (x *FreshmanDetail) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2693,7 +2936,7 @@ func (x *FreshmanDetail) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanDetail.ProtoReflect.Descriptor instead. func (*FreshmanDetail) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{33} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{36} } func (x *FreshmanDetail) GetStaffId() string { @@ -2886,7 +3129,7 @@ type GetFreshmanRoommatesResponse struct { func (x *GetFreshmanRoommatesResponse) Reset() { *x = GetFreshmanRoommatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2899,7 +3142,7 @@ func (x *GetFreshmanRoommatesResponse) String() string { func (*GetFreshmanRoommatesResponse) ProtoMessage() {} func (x *GetFreshmanRoommatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2912,7 +3155,7 @@ func (x *GetFreshmanRoommatesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanRoommatesResponse.ProtoReflect.Descriptor instead. func (*GetFreshmanRoommatesResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{34} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{37} } func (x *GetFreshmanRoommatesResponse) GetError() uint32 { @@ -2950,7 +3193,7 @@ type FreshmanRoommate struct { func (x *FreshmanRoommate) Reset() { *x = FreshmanRoommate{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2963,7 +3206,7 @@ func (x *FreshmanRoommate) String() string { func (*FreshmanRoommate) ProtoMessage() {} func (x *FreshmanRoommate) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2976,7 +3219,7 @@ func (x *FreshmanRoommate) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanRoommate.ProtoReflect.Descriptor instead. func (*FreshmanRoommate) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{35} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{38} } func (x *FreshmanRoommate) GetStaffName() string { @@ -3015,7 +3258,7 @@ type StudentNeedyInfo_Nested struct { func (x *StudentNeedyInfo_Nested) Reset() { *x = StudentNeedyInfo_Nested{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3028,7 +3271,7 @@ func (x *StudentNeedyInfo_Nested) String() string { func (*StudentNeedyInfo_Nested) ProtoMessage() {} func (x *StudentNeedyInfo_Nested) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3041,7 +3284,7 @@ func (x *StudentNeedyInfo_Nested) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentNeedyInfo_Nested.ProtoReflect.Descriptor instead. func (*StudentNeedyInfo_Nested) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9, 0} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10, 0} } func (x *StudentNeedyInfo_Nested) GetSchoolYear() int32 { @@ -3070,7 +3313,7 @@ type PostStudentGateAccessResponse_Data struct { func (x *PostStudentGateAccessResponse_Data) Reset() { *x = PostStudentGateAccessResponse_Data{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[37] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3083,7 +3326,7 @@ func (x *PostStudentGateAccessResponse_Data) String() string { func (*PostStudentGateAccessResponse_Data) ProtoMessage() {} func (x *PostStudentGateAccessResponse_Data) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[37] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3096,7 +3339,7 @@ func (x *PostStudentGateAccessResponse_Data) ProtoReflect() protoreflect.Message // Deprecated: Use PostStudentGateAccessResponse_Data.ProtoReflect.Descriptor instead. func (*PostStudentGateAccessResponse_Data) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{23, 0} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{26, 0} } func (x *PostStudentGateAccessResponse_Data) GetDone() bool { @@ -3160,531 +3403,558 @@ var file_campusapis_staff_v1_campus_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x4d, 0x0a, 0x0f, 0x53, 0x65, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, - 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, - 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x76, 0x0a, 0x16, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x53, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, + 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, + 0x4d, 0x0a, 0x0f, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x76, + 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8b, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x74, + 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x74, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, + 0x61, 0x6a, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x92, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, + 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x8b, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c, + 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, + 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x1a, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x08, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, - 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, - 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x6a, 0x6f, 0x72, - 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, - 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1e, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, + 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x13, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, 0x72, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x79, 0x22, 0x67, 0x0a, 0x1d, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, + 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, + 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x73, 0x22, 0x7b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x92, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, - 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, - 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xc5, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x8d, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c, 0x0a, 0x06, 0x4e, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, - 0x65, 0x61, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x31, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x54, 0x0a, 0x08, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, - 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, - 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, - 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x5f, 0x0a, 0x13, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, - 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, - 0x22, 0x72, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, - 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x6f, 0x6e, - 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x64, 0x61, 0x79, 0x22, 0x67, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x22, 0x7b, 0x0a, - 0x19, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc5, 0x01, 0x0a, 0x0d, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, - 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x22, 0x8d, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, - 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0xe8, 0x02, 0x0a, 0x16, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, - 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, + 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe8, 0x02, 0x0a, 0x16, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, + 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, + 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, + 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, + 0x6f, 0x6d, 0x22, 0x78, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x03, 0x0a, + 0x0c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x22, 0x78, 0x0a, - 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, - 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x03, 0x0a, 0x0c, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x1e, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x28, - 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, - 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0xda, 0x01, 0x0a, 0x1c, 0x50, 0x6f, 0x73, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x4b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, - 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x34, 0x0a, 0x04, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, + 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, + 0x65, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, + 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, + 0x50, 0x41, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0x76, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x85, 0x04, 0x0a, 0x15, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, - 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, - 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, - 0x65, 0x31, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, - 0x65, 0x31, 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, 0x6e, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, 0x6e, - 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, - 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x2c, 0x0a, - 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, - 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, - 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x75, - 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x75, - 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x46, 0x72, - 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x6a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, - 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, - 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, - 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, - 0x6f, 0x22, 0x6d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, - 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, - 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, - 0x22, 0x68, 0x0a, 0x16, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x4b, 0x65, 0x79, 0x77, - 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, + 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, + 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, + 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, + 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, + 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x65, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, + 0x65, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0xda, 0x01, + 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, + 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, + 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, + 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, + 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, + 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, + 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x1d, 0x50, + 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x4b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x1a, 0x34, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x04, 0x0a, 0x15, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, + 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, + 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, + 0x6d, 0x65, 0x32, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, + 0x6d, 0x65, 0x32, 0x45, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, + 0x6d, 0x65, 0x32, 0x45, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, + 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, + 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, + 0x72, 0x6b, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, + 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, + 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, + 0x12, 0x26, 0x0a, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, + 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x1a, + 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, - 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, - 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xba, 0x01, - 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, - 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, - 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, + 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x6a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x05, 0x0a, 0x0e, 0x46, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, - 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x22, 0x0a, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, - 0x6f, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4c, - 0x53, 0x54, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4c, 0x53, 0x54, 0x44, 0x12, - 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, - 0x58, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x12, - 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x69, - 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x6f, 0x6f, - 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, - 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, - 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, - 0x69, 0x67, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, - 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x1c, 0x47, 0x65, - 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, - 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x56, 0x0a, - 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x6d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, + 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x68, 0x0a, 0x16, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, + 0x6e, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, + 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, + 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0xba, 0x01, 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, + 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, - 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0xee, 0x11, 0x0a, 0x0d, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, - 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, - 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0e, 0x12, 0x0c, - 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x86, 0x01, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, - 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, - 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x16, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, - 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x33, + 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, + 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, + 0x7c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, + 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x05, + 0x0a, 0x0e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, + 0x72, 0x64, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x63, + 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, + 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x4c, 0x53, 0x54, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x4c, 0x53, 0x54, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x18, 0x10, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x12, 0x16, 0x0a, 0x06, + 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, + 0x54, 0x44, 0x5a, 0x58, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x6f, + 0x6f, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, + 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, + 0x6d, 0x42, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x68, 0x69, 0x67, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, + 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, + 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x56, 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, + 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x02, 0x71, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0x8b, 0x13, 0x0a, 0x0d, 0x43, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, + 0x0d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, + 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, + 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, + 0x6f, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, + 0x6f, 0x12, 0x86, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x5a, 0x10, 0x12, + 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x12, + 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, + 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, + 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x5a, + 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, + 0x12, 0x9e, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, + 0x12, 0x1a, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x5a, 0x13, 0x12, 0x11, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x12, 0xb9, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, + 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x1a, 0x2f, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x5a, 0x13, 0x12, 0x11, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0xb9, 0x01, 0x0a, - 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, - 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, - 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, - 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x73, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2d, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, + 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, + 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, + 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5a, - 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, + 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, + 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5a, 0x10, 0x12, 0x0e, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x9a, + 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, + 0x6d, 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, - 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x80, 0x01, 0x0a, 0x15, 0x50, 0x6f, - 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, - 0x12, 0x1d, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x5a, - 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, - 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, - 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, - 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, - 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, - 0x61, 0x73, 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, - 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, - 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, - 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x10, 0x12, 0x0e, 0x2f, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xb6, 0x01, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, - 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, + 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x80, 0x01, 0x0a, 0x15, + 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, + 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, + 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x37, 0x12, 0x1d, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, + 0x79, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, + 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, + 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, + 0x2f, 0x62, 0x61, 0x73, 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, + 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, + 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, + 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x10, 0x12, + 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, + 0xb6, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, + 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, - 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, - 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, - 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x42, 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, - 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, - 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, - 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, - 0x3a, 0x53, 0x74, 0x61, 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, + 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, + 0x74, 0x65, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, + 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x42, 0x17, 0x5a, 0x15, 0x2e, 0x2f, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3699,99 +3969,105 @@ func file_campusapis_staff_v1_campus_proto_rawDescGZIP() []byte { return file_campusapis_staff_v1_campus_proto_rawDescData } -var file_campusapis_staff_v1_campus_proto_msgTypes = make([]protoimpl.MessageInfo, 38) +var file_campusapis_staff_v1_campus_proto_msgTypes = make([]protoimpl.MessageInfo, 41) var file_campusapis_staff_v1_campus_proto_goTypes = []interface{}{ (*GetPersonInfoResponse)(nil), // 0: campusapis.staff.v1.GetPersonInfoResponse (*PersonInfo)(nil), // 1: campusapis.staff.v1.PersonInfo (*GetStudentRewardsRequest)(nil), // 2: campusapis.staff.v1.GetStudentRewardsRequest (*GetStudentCourseSelectionsRequest)(nil), // 3: campusapis.staff.v1.GetStudentCourseSelectionsRequest (*GetStudentGradeRequest)(nil), // 4: campusapis.staff.v1.GetStudentGradeRequest - (*SemesterRequest)(nil), // 5: campusapis.staff.v1.SemesterRequest - (*GetStudentInfoResponse)(nil), // 6: campusapis.staff.v1.GetStudentInfoResponse - (*StudentInfo)(nil), // 7: campusapis.staff.v1.StudentInfo - (*GetStudentNeedyInfoResponse)(nil), // 8: campusapis.staff.v1.GetStudentNeedyInfoResponse - (*StudentNeedyInfo)(nil), // 9: campusapis.staff.v1.StudentNeedyInfo - (*GetStudentDormInfoResponse)(nil), // 10: campusapis.staff.v1.GetStudentDormInfoResponse - (*DormInfo)(nil), // 11: campusapis.staff.v1.DormInfo - (*GetStudentBirthdayInfoResponse)(nil), // 12: campusapis.staff.v1.GetStudentBirthdayInfoResponse - (*StudentBirthdayInfo)(nil), // 13: campusapis.staff.v1.StudentBirthdayInfo - (*GetStudentBirthdaysInRequest)(nil), // 14: campusapis.staff.v1.GetStudentBirthdaysInRequest - (*GetStudentBirthdaysInResponse)(nil), // 15: campusapis.staff.v1.GetStudentBirthdaysInResponse - (*GetStudentRewardsResponse)(nil), // 16: campusapis.staff.v1.GetStudentRewardsResponse - (*StudentReward)(nil), // 17: campusapis.staff.v1.StudentReward - (*GetStudentCourseSelectionsResponse)(nil), // 18: campusapis.staff.v1.GetStudentCourseSelectionsResponse - (*StudentCourseSelection)(nil), // 19: campusapis.staff.v1.StudentCourseSelection - (*GetStudentGradeResponse)(nil), // 20: campusapis.staff.v1.GetStudentGradeResponse - (*StudentGrade)(nil), // 21: campusapis.staff.v1.StudentGrade - (*PostStudentGateAccessRequest)(nil), // 22: campusapis.staff.v1.PostStudentGateAccessRequest - (*PostStudentGateAccessResponse)(nil), // 23: campusapis.staff.v1.PostStudentGateAccessResponse - (*GetStudentStaySchoolInfoResponse)(nil), // 24: campusapis.staff.v1.GetStudentStaySchoolInfoResponse - (*StudentStaySchoolInfo)(nil), // 25: campusapis.staff.v1.StudentStaySchoolInfo - (*GetFreshmanBaseInfoRequest)(nil), // 26: campusapis.staff.v1.GetFreshmanBaseInfoRequest - (*GetFreshmanDetailRequest)(nil), // 27: campusapis.staff.v1.GetFreshmanDetailRequest - (*GetFreshmanRoommatesRequest)(nil), // 28: campusapis.staff.v1.GetFreshmanRoommatesRequest - (*FreshmanKeywordRequest)(nil), // 29: campusapis.staff.v1.FreshmanKeywordRequest - (*GetFreshmanBaseInfoResponse)(nil), // 30: campusapis.staff.v1.GetFreshmanBaseInfoResponse - (*FreshmanBaseInfo)(nil), // 31: campusapis.staff.v1.FreshmanBaseInfo - (*GetFreshmanDetailResponse)(nil), // 32: campusapis.staff.v1.GetFreshmanDetailResponse - (*FreshmanDetail)(nil), // 33: campusapis.staff.v1.FreshmanDetail - (*GetFreshmanRoommatesResponse)(nil), // 34: campusapis.staff.v1.GetFreshmanRoommatesResponse - (*FreshmanRoommate)(nil), // 35: campusapis.staff.v1.FreshmanRoommate - (*StudentNeedyInfo_Nested)(nil), // 36: campusapis.staff.v1.StudentNeedyInfo.Nested - (*PostStudentGateAccessResponse_Data)(nil), // 37: campusapis.staff.v1.PostStudentGateAccessResponse.Data - (staff.Type)(0), // 38: campusapis.staff.Type - (*emptypb.Empty)(nil), // 39: google.protobuf.Empty + (*GetStudentExamRequest)(nil), // 5: campusapis.staff.v1.GetStudentExamRequest + (*SemesterRequest)(nil), // 6: campusapis.staff.v1.SemesterRequest + (*GetStudentInfoResponse)(nil), // 7: campusapis.staff.v1.GetStudentInfoResponse + (*StudentInfo)(nil), // 8: campusapis.staff.v1.StudentInfo + (*GetStudentNeedyInfoResponse)(nil), // 9: campusapis.staff.v1.GetStudentNeedyInfoResponse + (*StudentNeedyInfo)(nil), // 10: campusapis.staff.v1.StudentNeedyInfo + (*GetStudentDormInfoResponse)(nil), // 11: campusapis.staff.v1.GetStudentDormInfoResponse + (*DormInfo)(nil), // 12: campusapis.staff.v1.DormInfo + (*GetStudentBirthdayInfoResponse)(nil), // 13: campusapis.staff.v1.GetStudentBirthdayInfoResponse + (*StudentBirthdayInfo)(nil), // 14: campusapis.staff.v1.StudentBirthdayInfo + (*GetStudentBirthdaysInRequest)(nil), // 15: campusapis.staff.v1.GetStudentBirthdaysInRequest + (*GetStudentBirthdaysInResponse)(nil), // 16: campusapis.staff.v1.GetStudentBirthdaysInResponse + (*GetStudentRewardsResponse)(nil), // 17: campusapis.staff.v1.GetStudentRewardsResponse + (*StudentReward)(nil), // 18: campusapis.staff.v1.StudentReward + (*GetStudentCourseSelectionsResponse)(nil), // 19: campusapis.staff.v1.GetStudentCourseSelectionsResponse + (*StudentCourseSelection)(nil), // 20: campusapis.staff.v1.StudentCourseSelection + (*GetStudentGradeResponse)(nil), // 21: campusapis.staff.v1.GetStudentGradeResponse + (*StudentGrade)(nil), // 22: campusapis.staff.v1.StudentGrade + (*GetStudentExamResponse)(nil), // 23: campusapis.staff.v1.GetStudentExamResponse + (*StudentExam)(nil), // 24: campusapis.staff.v1.StudentExam + (*PostStudentGateAccessRequest)(nil), // 25: campusapis.staff.v1.PostStudentGateAccessRequest + (*PostStudentGateAccessResponse)(nil), // 26: campusapis.staff.v1.PostStudentGateAccessResponse + (*GetStudentStaySchoolInfoResponse)(nil), // 27: campusapis.staff.v1.GetStudentStaySchoolInfoResponse + (*StudentStaySchoolInfo)(nil), // 28: campusapis.staff.v1.StudentStaySchoolInfo + (*GetFreshmanBaseInfoRequest)(nil), // 29: campusapis.staff.v1.GetFreshmanBaseInfoRequest + (*GetFreshmanDetailRequest)(nil), // 30: campusapis.staff.v1.GetFreshmanDetailRequest + (*GetFreshmanRoommatesRequest)(nil), // 31: campusapis.staff.v1.GetFreshmanRoommatesRequest + (*FreshmanKeywordRequest)(nil), // 32: campusapis.staff.v1.FreshmanKeywordRequest + (*GetFreshmanBaseInfoResponse)(nil), // 33: campusapis.staff.v1.GetFreshmanBaseInfoResponse + (*FreshmanBaseInfo)(nil), // 34: campusapis.staff.v1.FreshmanBaseInfo + (*GetFreshmanDetailResponse)(nil), // 35: campusapis.staff.v1.GetFreshmanDetailResponse + (*FreshmanDetail)(nil), // 36: campusapis.staff.v1.FreshmanDetail + (*GetFreshmanRoommatesResponse)(nil), // 37: campusapis.staff.v1.GetFreshmanRoommatesResponse + (*FreshmanRoommate)(nil), // 38: campusapis.staff.v1.FreshmanRoommate + (*StudentNeedyInfo_Nested)(nil), // 39: campusapis.staff.v1.StudentNeedyInfo.Nested + (*PostStudentGateAccessResponse_Data)(nil), // 40: campusapis.staff.v1.PostStudentGateAccessResponse.Data + (staff.Type)(0), // 41: campusapis.staff.Type + (*emptypb.Empty)(nil), // 42: google.protobuf.Empty } var file_campusapis_staff_v1_campus_proto_depIdxs = []int32{ 1, // 0: campusapis.staff.v1.GetPersonInfoResponse.data:type_name -> campusapis.staff.v1.PersonInfo - 7, // 1: campusapis.staff.v1.GetStudentInfoResponse.data:type_name -> campusapis.staff.v1.StudentInfo - 9, // 2: campusapis.staff.v1.GetStudentNeedyInfoResponse.data:type_name -> campusapis.staff.v1.StudentNeedyInfo - 36, // 3: campusapis.staff.v1.StudentNeedyInfo.items:type_name -> campusapis.staff.v1.StudentNeedyInfo.Nested - 11, // 4: campusapis.staff.v1.GetStudentDormInfoResponse.data:type_name -> campusapis.staff.v1.DormInfo - 13, // 5: campusapis.staff.v1.GetStudentBirthdayInfoResponse.data:type_name -> campusapis.staff.v1.StudentBirthdayInfo - 38, // 6: campusapis.staff.v1.GetStudentBirthdaysInRequest.type:type_name -> campusapis.staff.Type - 13, // 7: campusapis.staff.v1.GetStudentBirthdaysInResponse.birthdays:type_name -> campusapis.staff.v1.StudentBirthdayInfo - 17, // 8: campusapis.staff.v1.GetStudentRewardsResponse.data:type_name -> campusapis.staff.v1.StudentReward - 19, // 9: campusapis.staff.v1.GetStudentCourseSelectionsResponse.data:type_name -> campusapis.staff.v1.StudentCourseSelection - 21, // 10: campusapis.staff.v1.GetStudentGradeResponse.data:type_name -> campusapis.staff.v1.StudentGrade - 37, // 11: campusapis.staff.v1.PostStudentGateAccessResponse.data:type_name -> campusapis.staff.v1.PostStudentGateAccessResponse.Data - 25, // 12: campusapis.staff.v1.GetStudentStaySchoolInfoResponse.data:type_name -> campusapis.staff.v1.StudentStaySchoolInfo - 31, // 13: campusapis.staff.v1.GetFreshmanBaseInfoResponse.data:type_name -> campusapis.staff.v1.FreshmanBaseInfo - 33, // 14: campusapis.staff.v1.GetFreshmanDetailResponse.data:type_name -> campusapis.staff.v1.FreshmanDetail - 35, // 15: campusapis.staff.v1.GetFreshmanRoommatesResponse.data:type_name -> campusapis.staff.v1.FreshmanRoommate - 39, // 16: campusapis.staff.v1.CampusService.GetPersonInfo:input_type -> google.protobuf.Empty - 39, // 17: campusapis.staff.v1.CampusService.GetStudentInfo:input_type -> google.protobuf.Empty - 39, // 18: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:input_type -> google.protobuf.Empty - 39, // 19: campusapis.staff.v1.CampusService.GetStudentDormInfo:input_type -> google.protobuf.Empty - 39, // 20: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:input_type -> google.protobuf.Empty - 14, // 21: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:input_type -> campusapis.staff.v1.GetStudentBirthdaysInRequest - 2, // 22: campusapis.staff.v1.CampusService.GetStudentRewards:input_type -> campusapis.staff.v1.GetStudentRewardsRequest - 3, // 23: campusapis.staff.v1.CampusService.GetStudentCourseSelections:input_type -> campusapis.staff.v1.GetStudentCourseSelectionsRequest - 4, // 24: campusapis.staff.v1.CampusService.GetStudentGrade:input_type -> campusapis.staff.v1.GetStudentGradeRequest - 22, // 25: campusapis.staff.v1.CampusService.PostStudentGateAccess:input_type -> campusapis.staff.v1.PostStudentGateAccessRequest - 39, // 26: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:input_type -> google.protobuf.Empty - 26, // 27: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:input_type -> campusapis.staff.v1.GetFreshmanBaseInfoRequest - 27, // 28: campusapis.staff.v1.CampusService.GetFreshmanDetail:input_type -> campusapis.staff.v1.GetFreshmanDetailRequest - 28, // 29: campusapis.staff.v1.CampusService.GetFreshmanRoommates:input_type -> campusapis.staff.v1.GetFreshmanRoommatesRequest - 0, // 30: campusapis.staff.v1.CampusService.GetPersonInfo:output_type -> campusapis.staff.v1.GetPersonInfoResponse - 6, // 31: campusapis.staff.v1.CampusService.GetStudentInfo:output_type -> campusapis.staff.v1.GetStudentInfoResponse - 8, // 32: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:output_type -> campusapis.staff.v1.GetStudentNeedyInfoResponse - 10, // 33: campusapis.staff.v1.CampusService.GetStudentDormInfo:output_type -> campusapis.staff.v1.GetStudentDormInfoResponse - 12, // 34: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:output_type -> campusapis.staff.v1.GetStudentBirthdayInfoResponse - 15, // 35: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:output_type -> campusapis.staff.v1.GetStudentBirthdaysInResponse - 16, // 36: campusapis.staff.v1.CampusService.GetStudentRewards:output_type -> campusapis.staff.v1.GetStudentRewardsResponse - 18, // 37: campusapis.staff.v1.CampusService.GetStudentCourseSelections:output_type -> campusapis.staff.v1.GetStudentCourseSelectionsResponse - 20, // 38: campusapis.staff.v1.CampusService.GetStudentGrade:output_type -> campusapis.staff.v1.GetStudentGradeResponse - 23, // 39: campusapis.staff.v1.CampusService.PostStudentGateAccess:output_type -> campusapis.staff.v1.PostStudentGateAccessResponse - 24, // 40: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:output_type -> campusapis.staff.v1.GetStudentStaySchoolInfoResponse - 30, // 41: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:output_type -> campusapis.staff.v1.GetFreshmanBaseInfoResponse - 32, // 42: campusapis.staff.v1.CampusService.GetFreshmanDetail:output_type -> campusapis.staff.v1.GetFreshmanDetailResponse - 34, // 43: campusapis.staff.v1.CampusService.GetFreshmanRoommates:output_type -> campusapis.staff.v1.GetFreshmanRoommatesResponse - 30, // [30:44] is the sub-list for method output_type - 16, // [16:30] is the sub-list for method input_type - 16, // [16:16] is the sub-list for extension type_name - 16, // [16:16] is the sub-list for extension extendee - 0, // [0:16] is the sub-list for field type_name + 8, // 1: campusapis.staff.v1.GetStudentInfoResponse.data:type_name -> campusapis.staff.v1.StudentInfo + 10, // 2: campusapis.staff.v1.GetStudentNeedyInfoResponse.data:type_name -> campusapis.staff.v1.StudentNeedyInfo + 39, // 3: campusapis.staff.v1.StudentNeedyInfo.items:type_name -> campusapis.staff.v1.StudentNeedyInfo.Nested + 12, // 4: campusapis.staff.v1.GetStudentDormInfoResponse.data:type_name -> campusapis.staff.v1.DormInfo + 14, // 5: campusapis.staff.v1.GetStudentBirthdayInfoResponse.data:type_name -> campusapis.staff.v1.StudentBirthdayInfo + 41, // 6: campusapis.staff.v1.GetStudentBirthdaysInRequest.type:type_name -> campusapis.staff.Type + 14, // 7: campusapis.staff.v1.GetStudentBirthdaysInResponse.birthdays:type_name -> campusapis.staff.v1.StudentBirthdayInfo + 18, // 8: campusapis.staff.v1.GetStudentRewardsResponse.data:type_name -> campusapis.staff.v1.StudentReward + 20, // 9: campusapis.staff.v1.GetStudentCourseSelectionsResponse.data:type_name -> campusapis.staff.v1.StudentCourseSelection + 22, // 10: campusapis.staff.v1.GetStudentGradeResponse.data:type_name -> campusapis.staff.v1.StudentGrade + 24, // 11: campusapis.staff.v1.GetStudentExamResponse.data:type_name -> campusapis.staff.v1.StudentExam + 40, // 12: campusapis.staff.v1.PostStudentGateAccessResponse.data:type_name -> campusapis.staff.v1.PostStudentGateAccessResponse.Data + 28, // 13: campusapis.staff.v1.GetStudentStaySchoolInfoResponse.data:type_name -> campusapis.staff.v1.StudentStaySchoolInfo + 34, // 14: campusapis.staff.v1.GetFreshmanBaseInfoResponse.data:type_name -> campusapis.staff.v1.FreshmanBaseInfo + 36, // 15: campusapis.staff.v1.GetFreshmanDetailResponse.data:type_name -> campusapis.staff.v1.FreshmanDetail + 38, // 16: campusapis.staff.v1.GetFreshmanRoommatesResponse.data:type_name -> campusapis.staff.v1.FreshmanRoommate + 42, // 17: campusapis.staff.v1.CampusService.GetPersonInfo:input_type -> google.protobuf.Empty + 42, // 18: campusapis.staff.v1.CampusService.GetStudentInfo:input_type -> google.protobuf.Empty + 42, // 19: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:input_type -> google.protobuf.Empty + 42, // 20: campusapis.staff.v1.CampusService.GetStudentDormInfo:input_type -> google.protobuf.Empty + 42, // 21: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:input_type -> google.protobuf.Empty + 15, // 22: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:input_type -> campusapis.staff.v1.GetStudentBirthdaysInRequest + 2, // 23: campusapis.staff.v1.CampusService.GetStudentRewards:input_type -> campusapis.staff.v1.GetStudentRewardsRequest + 3, // 24: campusapis.staff.v1.CampusService.GetStudentCourseSelections:input_type -> campusapis.staff.v1.GetStudentCourseSelectionsRequest + 4, // 25: campusapis.staff.v1.CampusService.GetStudentGrade:input_type -> campusapis.staff.v1.GetStudentGradeRequest + 5, // 26: campusapis.staff.v1.CampusService.GetStudentExam:input_type -> campusapis.staff.v1.GetStudentExamRequest + 25, // 27: campusapis.staff.v1.CampusService.PostStudentGateAccess:input_type -> campusapis.staff.v1.PostStudentGateAccessRequest + 42, // 28: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:input_type -> google.protobuf.Empty + 29, // 29: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:input_type -> campusapis.staff.v1.GetFreshmanBaseInfoRequest + 30, // 30: campusapis.staff.v1.CampusService.GetFreshmanDetail:input_type -> campusapis.staff.v1.GetFreshmanDetailRequest + 31, // 31: campusapis.staff.v1.CampusService.GetFreshmanRoommates:input_type -> campusapis.staff.v1.GetFreshmanRoommatesRequest + 0, // 32: campusapis.staff.v1.CampusService.GetPersonInfo:output_type -> campusapis.staff.v1.GetPersonInfoResponse + 7, // 33: campusapis.staff.v1.CampusService.GetStudentInfo:output_type -> campusapis.staff.v1.GetStudentInfoResponse + 9, // 34: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:output_type -> campusapis.staff.v1.GetStudentNeedyInfoResponse + 11, // 35: campusapis.staff.v1.CampusService.GetStudentDormInfo:output_type -> campusapis.staff.v1.GetStudentDormInfoResponse + 13, // 36: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:output_type -> campusapis.staff.v1.GetStudentBirthdayInfoResponse + 16, // 37: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:output_type -> campusapis.staff.v1.GetStudentBirthdaysInResponse + 17, // 38: campusapis.staff.v1.CampusService.GetStudentRewards:output_type -> campusapis.staff.v1.GetStudentRewardsResponse + 19, // 39: campusapis.staff.v1.CampusService.GetStudentCourseSelections:output_type -> campusapis.staff.v1.GetStudentCourseSelectionsResponse + 21, // 40: campusapis.staff.v1.CampusService.GetStudentGrade:output_type -> campusapis.staff.v1.GetStudentGradeResponse + 23, // 41: campusapis.staff.v1.CampusService.GetStudentExam:output_type -> campusapis.staff.v1.GetStudentExamResponse + 26, // 42: campusapis.staff.v1.CampusService.PostStudentGateAccess:output_type -> campusapis.staff.v1.PostStudentGateAccessResponse + 27, // 43: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:output_type -> campusapis.staff.v1.GetStudentStaySchoolInfoResponse + 33, // 44: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:output_type -> campusapis.staff.v1.GetFreshmanBaseInfoResponse + 35, // 45: campusapis.staff.v1.CampusService.GetFreshmanDetail:output_type -> campusapis.staff.v1.GetFreshmanDetailResponse + 37, // 46: campusapis.staff.v1.CampusService.GetFreshmanRoommates:output_type -> campusapis.staff.v1.GetFreshmanRoommatesResponse + 32, // [32:47] is the sub-list for method output_type + 17, // [17:32] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name } func init() { file_campusapis_staff_v1_campus_proto_init() } @@ -3861,7 +4137,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SemesterRequest); i { + switch v := v.(*GetStudentExamRequest); i { case 0: return &v.state case 1: @@ -3873,7 +4149,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentInfoResponse); i { + switch v := v.(*SemesterRequest); i { case 0: return &v.state case 1: @@ -3885,7 +4161,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentInfo); i { + switch v := v.(*GetStudentInfoResponse); i { case 0: return &v.state case 1: @@ -3897,7 +4173,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentNeedyInfoResponse); i { + switch v := v.(*StudentInfo); i { case 0: return &v.state case 1: @@ -3909,7 +4185,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentNeedyInfo); i { + switch v := v.(*GetStudentNeedyInfoResponse); i { case 0: return &v.state case 1: @@ -3921,7 +4197,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentDormInfoResponse); i { + switch v := v.(*StudentNeedyInfo); i { case 0: return &v.state case 1: @@ -3933,7 +4209,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DormInfo); i { + switch v := v.(*GetStudentDormInfoResponse); i { case 0: return &v.state case 1: @@ -3945,7 +4221,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdayInfoResponse); i { + switch v := v.(*DormInfo); i { case 0: return &v.state case 1: @@ -3957,7 +4233,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentBirthdayInfo); i { + switch v := v.(*GetStudentBirthdayInfoResponse); i { case 0: return &v.state case 1: @@ -3969,7 +4245,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdaysInRequest); i { + switch v := v.(*StudentBirthdayInfo); i { case 0: return &v.state case 1: @@ -3981,7 +4257,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdaysInResponse); i { + switch v := v.(*GetStudentBirthdaysInRequest); i { case 0: return &v.state case 1: @@ -3993,7 +4269,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentRewardsResponse); i { + switch v := v.(*GetStudentBirthdaysInResponse); i { case 0: return &v.state case 1: @@ -4005,7 +4281,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentReward); i { + switch v := v.(*GetStudentRewardsResponse); i { case 0: return &v.state case 1: @@ -4017,7 +4293,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentCourseSelectionsResponse); i { + switch v := v.(*StudentReward); i { case 0: return &v.state case 1: @@ -4029,7 +4305,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentCourseSelection); i { + switch v := v.(*GetStudentCourseSelectionsResponse); i { case 0: return &v.state case 1: @@ -4041,7 +4317,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentGradeResponse); i { + switch v := v.(*StudentCourseSelection); i { case 0: return &v.state case 1: @@ -4053,7 +4329,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentGrade); i { + switch v := v.(*GetStudentGradeResponse); i { case 0: return &v.state case 1: @@ -4065,7 +4341,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostStudentGateAccessRequest); i { + switch v := v.(*StudentGrade); i { case 0: return &v.state case 1: @@ -4077,7 +4353,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostStudentGateAccessResponse); i { + switch v := v.(*GetStudentExamResponse); i { case 0: return &v.state case 1: @@ -4089,7 +4365,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentStaySchoolInfoResponse); i { + switch v := v.(*StudentExam); i { case 0: return &v.state case 1: @@ -4101,7 +4377,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentStaySchoolInfo); i { + switch v := v.(*PostStudentGateAccessRequest); i { case 0: return &v.state case 1: @@ -4113,7 +4389,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanBaseInfoRequest); i { + switch v := v.(*PostStudentGateAccessResponse); i { case 0: return &v.state case 1: @@ -4125,7 +4401,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanDetailRequest); i { + switch v := v.(*GetStudentStaySchoolInfoResponse); i { case 0: return &v.state case 1: @@ -4137,7 +4413,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanRoommatesRequest); i { + switch v := v.(*StudentStaySchoolInfo); i { case 0: return &v.state case 1: @@ -4149,7 +4425,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanKeywordRequest); i { + switch v := v.(*GetFreshmanBaseInfoRequest); i { case 0: return &v.state case 1: @@ -4161,7 +4437,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanBaseInfoResponse); i { + switch v := v.(*GetFreshmanDetailRequest); i { case 0: return &v.state case 1: @@ -4173,7 +4449,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanBaseInfo); i { + switch v := v.(*GetFreshmanRoommatesRequest); i { case 0: return &v.state case 1: @@ -4185,7 +4461,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanDetailResponse); i { + switch v := v.(*FreshmanKeywordRequest); i { case 0: return &v.state case 1: @@ -4197,7 +4473,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanDetail); i { + switch v := v.(*GetFreshmanBaseInfoResponse); i { case 0: return &v.state case 1: @@ -4209,7 +4485,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanRoommatesResponse); i { + switch v := v.(*FreshmanBaseInfo); i { case 0: return &v.state case 1: @@ -4221,7 +4497,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanRoommate); i { + switch v := v.(*GetFreshmanDetailResponse); i { case 0: return &v.state case 1: @@ -4233,7 +4509,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentNeedyInfo_Nested); i { + switch v := v.(*FreshmanDetail); i { case 0: return &v.state case 1: @@ -4245,6 +4521,42 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFreshmanRoommatesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FreshmanRoommate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StudentNeedyInfo_Nested); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PostStudentGateAccessResponse_Data); i { case 0: return &v.state @@ -4263,7 +4575,7 @@ func file_campusapis_staff_v1_campus_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_campusapis_staff_v1_campus_proto_rawDesc, NumEnums: 0, - NumMessages: 38, + NumMessages: 41, NumExtensions: 0, NumServices: 1, }, diff --git a/campusapis/staff/v1/campus.pb.gw.go b/campusapis/staff/v1/campus.pb.gw.go index 34fedd6..832e2e0 100644 --- a/campusapis/staff/v1/campus.pb.gw.go +++ b/campusapis/staff/v1/campus.pb.gw.go @@ -2,7 +2,7 @@ // source: campusapis/staff/v1/campus.proto /* -Package staffv1 is a reverse proxy. +Package v1 is a reverse proxy. It translates gRPC into RESTful JSON APIs. */ @@ -13,14 +13,15 @@ import ( "io" "net/http" - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "github.com/golang/protobuf/descriptor" + "github.com/golang/protobuf/proto" + "github.com/grpc-ecosystem/grpc-gateway/runtime" + "github.com/grpc-ecosystem/grpc-gateway/utilities" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/emptypb" ) @@ -30,6 +31,7 @@ var _ io.Reader var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray +var _ = descriptor.ForMessage var _ = metadata.Join func request_CampusService_GetPersonInfo_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { @@ -500,36 +502,74 @@ func local_request_CampusService_GetStudentGrade_1(ctx context.Context, marshale } -func request_CampusService_PostStudentGateAccess_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PostStudentGateAccessRequest +var ( + filter_CampusService_GetStudentExam_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_CampusService_GetStudentExam_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStudentExamRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetStudentExam_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetStudentExam(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_CampusService_GetStudentExam_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStudentExamRequest + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetStudentExam_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetStudentExam(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_CampusService_GetStudentExam_1 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_CampusService_GetStudentExam_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStudentExamRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetStudentExam_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.PostStudentGateAccess(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetStudentExam(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_CampusService_PostStudentGateAccess_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq PostStudentGateAccessRequest +func local_request_CampusService_GetStudentExam_1(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetStudentExamRequest var metadata runtime.ServerMetadata - newReader, berr := utilities.IOReaderFactory(req.Body) - if berr != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_CampusService_GetStudentExam_1); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.PostStudentGateAccess(ctx, &protoReq) + msg, err := server.GetStudentExam(ctx, &protoReq) return msg, metadata, err } @@ -798,13 +838,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetPersonInfo", runtime.WithHTTPPathPattern("/staff/v1/person/info")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetPersonInfo_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetPersonInfo_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -822,13 +861,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetPersonInfo", runtime.WithHTTPPathPattern("/person/info")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetPersonInfo_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetPersonInfo_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -846,13 +884,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentInfo", runtime.WithHTTPPathPattern("/staff/v1/student/info")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentInfo_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentInfo_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -870,13 +907,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentInfo", runtime.WithHTTPPathPattern("/student/info")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentInfo_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentInfo_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -894,13 +930,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentNeedyInfo", runtime.WithHTTPPathPattern("/staff/v1/student/needy")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentNeedyInfo_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentNeedyInfo_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -918,13 +953,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentNeedyInfo", runtime.WithHTTPPathPattern("/student/needy")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentNeedyInfo_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentNeedyInfo_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -942,13 +976,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentDormInfo", runtime.WithHTTPPathPattern("/staff/v1/student/dorm")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentDormInfo_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentDormInfo_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -966,13 +999,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentDormInfo", runtime.WithHTTPPathPattern("/student/dorm")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentDormInfo_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentDormInfo_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -990,13 +1022,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdayInfo", runtime.WithHTTPPathPattern("/staff/v1/student/birthday")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentBirthdayInfo_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentBirthdayInfo_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1014,13 +1045,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdayInfo", runtime.WithHTTPPathPattern("/student/birthday")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentBirthdayInfo_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentBirthdayInfo_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1038,13 +1068,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdaysIn", runtime.WithHTTPPathPattern("/staff/v1/student/birthdays")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentBirthdaysIn_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentBirthdaysIn_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1062,13 +1091,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdaysIn", runtime.WithHTTPPathPattern("/student/birthdays")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentBirthdaysIn_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentBirthdaysIn_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1086,13 +1114,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentRewards", runtime.WithHTTPPathPattern("/staff/v1/student/reward")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentRewards_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentRewards_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1110,13 +1137,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentRewards", runtime.WithHTTPPathPattern("/student/reward")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentRewards_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentRewards_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1134,13 +1160,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", runtime.WithHTTPPathPattern("/staff/v1/student/select")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentCourseSelections_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentCourseSelections_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1158,13 +1183,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", runtime.WithHTTPPathPattern("/student/select")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentCourseSelections_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentCourseSelections_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1182,13 +1206,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentGrade", runtime.WithHTTPPathPattern("/staff/v1/student/grade")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentGrade_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentGrade_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1206,13 +1229,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentGrade", runtime.WithHTTPPathPattern("/student/grade")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentGrade_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentGrade_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1224,19 +1246,18 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM }) - mux.Handle("POST", pattern_CampusService_PostStudentGateAccess_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_CampusService_GetStudentExam_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/PostStudentGateAccess", runtime.WithHTTPPathPattern("/campusapis.staff.v1.CampusService/PostStudentGateAccess")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_PostStudentGateAccess_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentExam_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1244,7 +1265,30 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM return } - forward_CampusService_PostStudentGateAccess_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentExam_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_CampusService_GetStudentExam_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CampusService_GetStudentExam_1(rctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CampusService_GetStudentExam_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1254,13 +1298,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentStaySchoolInfo", runtime.WithHTTPPathPattern("/staff/v1/student/holidayStay")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentStaySchoolInfo_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentStaySchoolInfo_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1278,13 +1321,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentStaySchoolInfo", runtime.WithHTTPPathPattern("/student/holidayStay")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentStaySchoolInfo_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentStaySchoolInfo_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1302,13 +1344,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanBaseInfo", runtime.WithHTTPPathPattern("/staff/v1/freshman/base")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanBaseInfo_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanBaseInfo_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1326,13 +1367,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanBaseInfo", runtime.WithHTTPPathPattern("/freshman/base")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanBaseInfo_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanBaseInfo_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1350,13 +1390,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanDetail", runtime.WithHTTPPathPattern("/staff/v1/freshman/info")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanDetail_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanDetail_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1374,13 +1413,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanDetail", runtime.WithHTTPPathPattern("/freshman/info")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanDetail_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanDetail_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1398,13 +1436,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanRoommates", runtime.WithHTTPPathPattern("/staff/v1/freshman/roommate")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanRoommates_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanRoommates_0(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1422,13 +1459,12 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanRoommates", runtime.WithHTTPPathPattern("/freshman/roommate")) + rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanRoommates_1(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanRoommates_1(rctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1485,13 +1521,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetPersonInfo", runtime.WithHTTPPathPattern("/staff/v1/person/info")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetPersonInfo_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetPersonInfo_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1506,13 +1541,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetPersonInfo", runtime.WithHTTPPathPattern("/person/info")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetPersonInfo_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetPersonInfo_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1527,13 +1561,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentInfo", runtime.WithHTTPPathPattern("/staff/v1/student/info")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentInfo_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentInfo_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1548,13 +1581,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentInfo", runtime.WithHTTPPathPattern("/student/info")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentInfo_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentInfo_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1569,13 +1601,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentNeedyInfo", runtime.WithHTTPPathPattern("/staff/v1/student/needy")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentNeedyInfo_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentNeedyInfo_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1590,13 +1621,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentNeedyInfo", runtime.WithHTTPPathPattern("/student/needy")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentNeedyInfo_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentNeedyInfo_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1611,13 +1641,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentDormInfo", runtime.WithHTTPPathPattern("/staff/v1/student/dorm")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentDormInfo_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentDormInfo_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1632,13 +1661,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentDormInfo", runtime.WithHTTPPathPattern("/student/dorm")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentDormInfo_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentDormInfo_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1653,13 +1681,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdayInfo", runtime.WithHTTPPathPattern("/staff/v1/student/birthday")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentBirthdayInfo_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentBirthdayInfo_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1674,13 +1701,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdayInfo", runtime.WithHTTPPathPattern("/student/birthday")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentBirthdayInfo_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentBirthdayInfo_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1695,13 +1721,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdaysIn", runtime.WithHTTPPathPattern("/staff/v1/student/birthdays")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentBirthdaysIn_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentBirthdaysIn_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1716,13 +1741,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdaysIn", runtime.WithHTTPPathPattern("/student/birthdays")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentBirthdaysIn_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentBirthdaysIn_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1737,13 +1761,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentRewards", runtime.WithHTTPPathPattern("/staff/v1/student/reward")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentRewards_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentRewards_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1758,13 +1781,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentRewards", runtime.WithHTTPPathPattern("/student/reward")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentRewards_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentRewards_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1779,13 +1801,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", runtime.WithHTTPPathPattern("/staff/v1/student/select")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentCourseSelections_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentCourseSelections_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1800,13 +1821,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", runtime.WithHTTPPathPattern("/student/select")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentCourseSelections_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentCourseSelections_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1821,13 +1841,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentGrade", runtime.WithHTTPPathPattern("/staff/v1/student/grade")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentGrade_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentGrade_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1842,13 +1861,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentGrade", runtime.WithHTTPPathPattern("/student/grade")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentGrade_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentGrade_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1859,24 +1877,43 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM }) - mux.Handle("POST", pattern_CampusService_PostStudentGateAccess_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_CampusService_GetStudentExam_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/PostStudentGateAccess", runtime.WithHTTPPathPattern("/campusapis.staff.v1.CampusService/PostStudentGateAccess")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_PostStudentGateAccess_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentExam_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_CampusService_PostStudentGateAccess_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_CampusService_GetStudentExam_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_CampusService_GetStudentExam_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + rctx, err := runtime.AnnotateContext(ctx, mux, req) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CampusService_GetStudentExam_1(rctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CampusService_GetStudentExam_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -1884,13 +1921,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentStaySchoolInfo", runtime.WithHTTPPathPattern("/staff/v1/student/holidayStay")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentStaySchoolInfo_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentStaySchoolInfo_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1905,13 +1941,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentStaySchoolInfo", runtime.WithHTTPPathPattern("/student/holidayStay")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentStaySchoolInfo_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentStaySchoolInfo_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1926,13 +1961,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanBaseInfo", runtime.WithHTTPPathPattern("/staff/v1/freshman/base")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanBaseInfo_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanBaseInfo_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1947,13 +1981,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanBaseInfo", runtime.WithHTTPPathPattern("/freshman/base")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanBaseInfo_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanBaseInfo_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1968,13 +2001,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanDetail", runtime.WithHTTPPathPattern("/staff/v1/freshman/info")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanDetail_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanDetail_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1989,13 +2021,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanDetail", runtime.WithHTTPPathPattern("/freshman/info")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanDetail_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanDetail_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -2010,13 +2041,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanRoommates", runtime.WithHTTPPathPattern("/staff/v1/freshman/roommate")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanRoommates_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanRoommates_0(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -2031,13 +2061,12 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanRoommates", runtime.WithHTTPPathPattern("/freshman/roommate")) + rctx, err := runtime.AnnotateContext(ctx, mux, req) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanRoommates_1(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanRoommates_1(rctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -2052,59 +2081,61 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM } var ( - pattern_CampusService_GetPersonInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "person", "info"}, "")) + pattern_CampusService_GetPersonInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "person", "info"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetPersonInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"person", "info"}, "")) + pattern_CampusService_GetPersonInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"person", "info"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "info"}, "")) + pattern_CampusService_GetStudentInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "info"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "info"}, "")) + pattern_CampusService_GetStudentInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "info"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentNeedyInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "needy"}, "")) + pattern_CampusService_GetStudentNeedyInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "needy"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentNeedyInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "needy"}, "")) + pattern_CampusService_GetStudentNeedyInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "needy"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentDormInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "dorm"}, "")) + pattern_CampusService_GetStudentDormInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "dorm"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentDormInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "dorm"}, "")) + pattern_CampusService_GetStudentDormInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "dorm"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentBirthdayInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "birthday"}, "")) + pattern_CampusService_GetStudentBirthdayInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "birthday"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentBirthdayInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "birthday"}, "")) + pattern_CampusService_GetStudentBirthdayInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "birthday"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentBirthdaysIn_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "birthdays"}, "")) + pattern_CampusService_GetStudentBirthdaysIn_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "birthdays"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentBirthdaysIn_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "birthdays"}, "")) + pattern_CampusService_GetStudentBirthdaysIn_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "birthdays"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentRewards_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "reward"}, "")) + pattern_CampusService_GetStudentRewards_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "reward"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentRewards_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "reward"}, "")) + pattern_CampusService_GetStudentRewards_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "reward"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentCourseSelections_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "select"}, "")) + pattern_CampusService_GetStudentCourseSelections_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "select"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentCourseSelections_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "select"}, "")) + pattern_CampusService_GetStudentCourseSelections_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "select"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentGrade_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "grade"}, "")) + pattern_CampusService_GetStudentGrade_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "grade"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentGrade_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "grade"}, "")) + pattern_CampusService_GetStudentGrade_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "grade"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_PostStudentGateAccess_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"campusapis.staff.v1.CampusService", "PostStudentGateAccess"}, "")) + pattern_CampusService_GetStudentExam_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "exam"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentStaySchoolInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "holidayStay"}, "")) + pattern_CampusService_GetStudentExam_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "exam"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetStudentStaySchoolInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "holidayStay"}, "")) + pattern_CampusService_GetStudentStaySchoolInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "holidayStay"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetFreshmanBaseInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "base"}, "")) + pattern_CampusService_GetStudentStaySchoolInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "holidayStay"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetFreshmanBaseInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "base"}, "")) + pattern_CampusService_GetFreshmanBaseInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "base"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetFreshmanDetail_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "info"}, "")) + pattern_CampusService_GetFreshmanBaseInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "base"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetFreshmanDetail_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "info"}, "")) + pattern_CampusService_GetFreshmanDetail_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "info"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetFreshmanRoommates_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "roommate"}, "")) + pattern_CampusService_GetFreshmanDetail_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "info"}, "", runtime.AssumeColonVerbOpt(true))) - pattern_CampusService_GetFreshmanRoommates_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "roommate"}, "")) + pattern_CampusService_GetFreshmanRoommates_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "roommate"}, "", runtime.AssumeColonVerbOpt(true))) + + pattern_CampusService_GetFreshmanRoommates_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "roommate"}, "", runtime.AssumeColonVerbOpt(true))) ) var ( @@ -2144,7 +2175,9 @@ var ( forward_CampusService_GetStudentGrade_1 = runtime.ForwardResponseMessage - forward_CampusService_PostStudentGateAccess_0 = runtime.ForwardResponseMessage + forward_CampusService_GetStudentExam_0 = runtime.ForwardResponseMessage + + forward_CampusService_GetStudentExam_1 = runtime.ForwardResponseMessage forward_CampusService_GetStudentStaySchoolInfo_0 = runtime.ForwardResponseMessage diff --git a/campusapis/staff/v1/campus_grpc.pb.go b/campusapis/staff/v1/campus_grpc.pb.go index c060156..714a887 100644 --- a/campusapis/staff/v1/campus_grpc.pb.go +++ b/campusapis/staff/v1/campus_grpc.pb.go @@ -1,8 +1,4 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc (unknown) -// source: campusapis/staff/v1/campus.proto package staffv1 @@ -41,6 +37,8 @@ type CampusServiceClient interface { GetStudentCourseSelections(ctx context.Context, in *GetStudentCourseSelectionsRequest, opts ...grpc.CallOption) (*GetStudentCourseSelectionsResponse, error) //获取学生成绩信息 GetStudentGrade(ctx context.Context, in *GetStudentGradeRequest, opts ...grpc.CallOption) (*GetStudentGradeResponse, error) + //获取学生考试信息 + GetStudentExam(ctx context.Context, in *GetStudentExamRequest, opts ...grpc.CallOption) (*GetStudentExamResponse, error) //推送学生门禁通行信息 PostStudentGateAccess(ctx context.Context, in *PostStudentGateAccessRequest, opts ...grpc.CallOption) (*PostStudentGateAccessResponse, error) //获取学生留校信息 @@ -142,6 +140,15 @@ func (c *campusServiceClient) GetStudentGrade(ctx context.Context, in *GetStuden return out, nil } +func (c *campusServiceClient) GetStudentExam(ctx context.Context, in *GetStudentExamRequest, opts ...grpc.CallOption) (*GetStudentExamResponse, error) { + out := new(GetStudentExamResponse) + err := c.cc.Invoke(ctx, "/campusapis.staff.v1.CampusService/GetStudentExam", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *campusServiceClient) PostStudentGateAccess(ctx context.Context, in *PostStudentGateAccessRequest, opts ...grpc.CallOption) (*PostStudentGateAccessResponse, error) { out := new(PostStudentGateAccessResponse) err := c.cc.Invoke(ctx, "/campusapis.staff.v1.CampusService/PostStudentGateAccess", in, out, opts...) @@ -188,7 +195,7 @@ func (c *campusServiceClient) GetFreshmanRoommates(ctx context.Context, in *GetF } // CampusServiceServer is the server API for CampusService service. -// All implementations should embed UnimplementedCampusServiceServer +// All implementations must embed UnimplementedCampusServiceServer // for forward compatibility type CampusServiceServer interface { //获取员工信息 @@ -209,6 +216,8 @@ type CampusServiceServer interface { GetStudentCourseSelections(context.Context, *GetStudentCourseSelectionsRequest) (*GetStudentCourseSelectionsResponse, error) //获取学生成绩信息 GetStudentGrade(context.Context, *GetStudentGradeRequest) (*GetStudentGradeResponse, error) + //获取学生考试信息 + GetStudentExam(context.Context, *GetStudentExamRequest) (*GetStudentExamResponse, error) //推送学生门禁通行信息 PostStudentGateAccess(context.Context, *PostStudentGateAccessRequest) (*PostStudentGateAccessResponse, error) //获取学生留校信息 @@ -219,9 +228,10 @@ type CampusServiceServer interface { GetFreshmanDetail(context.Context, *GetFreshmanDetailRequest) (*GetFreshmanDetailResponse, error) //获取新生宿舍信息 GetFreshmanRoommates(context.Context, *GetFreshmanRoommatesRequest) (*GetFreshmanRoommatesResponse, error) + mustEmbedUnimplementedCampusServiceServer() } -// UnimplementedCampusServiceServer should be embedded to have forward compatible implementations. +// UnimplementedCampusServiceServer must be embedded to have forward compatible implementations. type UnimplementedCampusServiceServer struct { } @@ -252,6 +262,9 @@ func (UnimplementedCampusServiceServer) GetStudentCourseSelections(context.Conte func (UnimplementedCampusServiceServer) GetStudentGrade(context.Context, *GetStudentGradeRequest) (*GetStudentGradeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetStudentGrade not implemented") } +func (UnimplementedCampusServiceServer) GetStudentExam(context.Context, *GetStudentExamRequest) (*GetStudentExamResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetStudentExam not implemented") +} func (UnimplementedCampusServiceServer) PostStudentGateAccess(context.Context, *PostStudentGateAccessRequest) (*PostStudentGateAccessResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PostStudentGateAccess not implemented") } @@ -267,6 +280,7 @@ func (UnimplementedCampusServiceServer) GetFreshmanDetail(context.Context, *GetF func (UnimplementedCampusServiceServer) GetFreshmanRoommates(context.Context, *GetFreshmanRoommatesRequest) (*GetFreshmanRoommatesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetFreshmanRoommates not implemented") } +func (UnimplementedCampusServiceServer) mustEmbedUnimplementedCampusServiceServer() {} // UnsafeCampusServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to CampusServiceServer will @@ -441,6 +455,24 @@ func _CampusService_GetStudentGrade_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } +func _CampusService_GetStudentExam_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetStudentExamRequest) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(CampusServiceServer).GetStudentExam(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/campusapis.staff.v1.CampusService/GetStudentExam", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(CampusServiceServer).GetStudentExam(ctx, req.(*GetStudentExamRequest)) + } + return interceptor(ctx, in, info, handler) +} + func _CampusService_PostStudentGateAccess_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(PostStudentGateAccessRequest) if err := dec(in); err != nil { @@ -574,6 +606,10 @@ var CampusService_ServiceDesc = grpc.ServiceDesc{ MethodName: "GetStudentGrade", Handler: _CampusService_GetStudentGrade_Handler, }, + { + MethodName: "GetStudentExam", + Handler: _CampusService_GetStudentExam_Handler, + }, { MethodName: "PostStudentGateAccess", Handler: _CampusService_PostStudentGateAccess_Handler, From 0ffd1010efa6de4b48f1dfed987635a7ae28e2d3 Mon Sep 17 00:00:00 2001 From: sunalwaysknows <86180691+sunalwaysknows@users.noreply.github.com> Date: Tue, 28 Jun 2022 18:26:45 +0800 Subject: [PATCH 08/25] update(aggregatingapis): update --- .github/workflows/buf.yml | 5 +++-- {consultingapis => aggregatingapis}/faq/v1/faq.go | 0 {consultingapis => aggregatingapis}/faq/v1/faq.pb.go | 0 {consultingapis => aggregatingapis}/faq/v1/faq.pb.gw.go | 0 {consultingapis => aggregatingapis}/faq/v1/faq.proto | 4 ++-- {consultingapis => aggregatingapis}/faq/v1/faq_grpc.pb.go | 0 aggregatingapis/infostream/v1/infostream.proto | 4 ++-- {consultingapis => aggregatingapis}/wiki/v1/wiki.go | 0 {consultingapis => aggregatingapis}/wiki/v1/wiki.pb.go | 0 {consultingapis => aggregatingapis}/wiki/v1/wiki.pb.gw.go | 0 {consultingapis => aggregatingapis}/wiki/v1/wiki_grpc.pb.go | 0 11 files changed, 7 insertions(+), 6 deletions(-) rename {consultingapis => aggregatingapis}/faq/v1/faq.go (100%) rename {consultingapis => aggregatingapis}/faq/v1/faq.pb.go (100%) rename {consultingapis => aggregatingapis}/faq/v1/faq.pb.gw.go (100%) rename {consultingapis => aggregatingapis}/faq/v1/faq.proto (97%) rename {consultingapis => aggregatingapis}/faq/v1/faq_grpc.pb.go (100%) rename {consultingapis => aggregatingapis}/wiki/v1/wiki.go (100%) rename {consultingapis => aggregatingapis}/wiki/v1/wiki.pb.go (100%) rename {consultingapis => aggregatingapis}/wiki/v1/wiki.pb.gw.go (100%) rename {consultingapis => aggregatingapis}/wiki/v1/wiki_grpc.pb.go (100%) diff --git a/.github/workflows/buf.yml b/.github/workflows/buf.yml index 484710c..146b801 100644 --- a/.github/workflows/buf.yml +++ b/.github/workflows/buf.yml @@ -2,7 +2,8 @@ name: check buf generate up to date on: push: branches: - - main + #- main + - dev-standard-rpc jobs: build: name: Build @@ -46,7 +47,7 @@ jobs: git config --global user.email 'fdkevinzero@gmail.com' git add -A git commit -m "ci(gen): buf generate up to date" - git push + git push origin dev-standard-rpc fi - name: warming go proxy diff --git a/consultingapis/faq/v1/faq.go b/aggregatingapis/faq/v1/faq.go similarity index 100% rename from consultingapis/faq/v1/faq.go rename to aggregatingapis/faq/v1/faq.go diff --git a/consultingapis/faq/v1/faq.pb.go b/aggregatingapis/faq/v1/faq.pb.go similarity index 100% rename from consultingapis/faq/v1/faq.pb.go rename to aggregatingapis/faq/v1/faq.pb.go diff --git a/consultingapis/faq/v1/faq.pb.gw.go b/aggregatingapis/faq/v1/faq.pb.gw.go similarity index 100% rename from consultingapis/faq/v1/faq.pb.gw.go rename to aggregatingapis/faq/v1/faq.pb.gw.go diff --git a/consultingapis/faq/v1/faq.proto b/aggregatingapis/faq/v1/faq.proto similarity index 97% rename from consultingapis/faq/v1/faq.proto rename to aggregatingapis/faq/v1/faq.proto index 2de1534..1e1e146 100644 --- a/consultingapis/faq/v1/faq.proto +++ b/aggregatingapis/faq/v1/faq.proto @@ -1,13 +1,13 @@ syntax = "proto3"; -package consultingapis.faq.v1; +package aggregatingapis.faq.v1; import "google/api/annotations.proto"; import "google/api/httpbody.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/struct.proto"; -option go_package = "./consultingapis/faq/v1"; +option go_package = "./aggregatingapis/faq/v1"; service FAQService { diff --git a/consultingapis/faq/v1/faq_grpc.pb.go b/aggregatingapis/faq/v1/faq_grpc.pb.go similarity index 100% rename from consultingapis/faq/v1/faq_grpc.pb.go rename to aggregatingapis/faq/v1/faq_grpc.pb.go diff --git a/aggregatingapis/infostream/v1/infostream.proto b/aggregatingapis/infostream/v1/infostream.proto index a5e0d82..8b3ac0d 100644 --- a/aggregatingapis/infostream/v1/infostream.proto +++ b/aggregatingapis/infostream/v1/infostream.proto @@ -1,10 +1,10 @@ syntax = "proto3"; -package flutterapis.infoStream.v1; +package aggregatingapis.infoStream.v1; import "google/api/annotations.proto"; -option go_package = "./flutterapis/infoStream/v1"; +option go_package = "./aggregatingapis/infoStream/v1"; service InfoStreamService { rpc GetInfoStream(InfoStreamReq) returns (InfoStreamResp) { diff --git a/consultingapis/wiki/v1/wiki.go b/aggregatingapis/wiki/v1/wiki.go similarity index 100% rename from consultingapis/wiki/v1/wiki.go rename to aggregatingapis/wiki/v1/wiki.go diff --git a/consultingapis/wiki/v1/wiki.pb.go b/aggregatingapis/wiki/v1/wiki.pb.go similarity index 100% rename from consultingapis/wiki/v1/wiki.pb.go rename to aggregatingapis/wiki/v1/wiki.pb.go diff --git a/consultingapis/wiki/v1/wiki.pb.gw.go b/aggregatingapis/wiki/v1/wiki.pb.gw.go similarity index 100% rename from consultingapis/wiki/v1/wiki.pb.gw.go rename to aggregatingapis/wiki/v1/wiki.pb.gw.go diff --git a/consultingapis/wiki/v1/wiki_grpc.pb.go b/aggregatingapis/wiki/v1/wiki_grpc.pb.go similarity index 100% rename from consultingapis/wiki/v1/wiki_grpc.pb.go rename to aggregatingapis/wiki/v1/wiki_grpc.pb.go From 0831807649f457ef380d5ebc4dfd96e740d420b6 Mon Sep 17 00:00:00 2001 From: FDKevin Date: Tue, 28 Jun 2022 10:27:29 +0000 Subject: [PATCH 09/25] ci(gen): buf generate up to date --- aggregatingapis/faq/v1/faq.pb.go | 674 +++++++++--------- aggregatingapis/faq/v1/faq.pb.gw.go | 26 +- aggregatingapis/faq/v1/faq_grpc.pb.go | 30 +- .../infostream/v1/infostream.pb.go | 645 +++++++++-------- .../infostream/v1/infostream.pb.gw.go | 4 +- .../infostream/v1/infostream_grpc.pb.go | 6 +- campusapis/staff/v1/campus.pb.go | 20 +- campusapis/staff/v1/campus.pb.gw.go | 429 +++++++---- campusapis/staff/v1/campus_grpc.pb.go | 10 +- consultingapis/wiki/v1/wiki.pb.go | 606 ++++++++++++++++ consultingapis/wiki/v1/wiki.pb.gw.go | 256 +++++++ consultingapis/wiki/v1/wiki_grpc.pb.go | 139 ++++ .../aggregatingapis/faq/v1/faq.swagger.json | 469 ++++++++++++ .../infostream/v1/infostream.swagger.json | 25 +- .../campusapis/health/v1/health.swagger.json | 244 +++++-- .../campusapis/staff/v1/campus.swagger.json | 140 ++++ 16 files changed, 2834 insertions(+), 889 deletions(-) create mode 100644 consultingapis/wiki/v1/wiki.pb.go create mode 100644 consultingapis/wiki/v1/wiki.pb.gw.go create mode 100644 consultingapis/wiki/v1/wiki_grpc.pb.go create mode 100644 docs/swagger/aggregatingapis/faq/v1/faq.swagger.json diff --git a/aggregatingapis/faq/v1/faq.pb.go b/aggregatingapis/faq/v1/faq.pb.go index fb77baa..e05d2b3 100644 --- a/aggregatingapis/faq/v1/faq.pb.go +++ b/aggregatingapis/faq/v1/faq.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.28.0 // protoc (unknown) -// source: consultingapis/faq/v1/faq.proto +// source: aggregatingapis/faq/v1/faq.proto package faqv1 @@ -35,7 +35,7 @@ type CreateFAQRequest struct { func (x *CreateFAQRequest) Reset() { *x = CreateFAQRequest{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[0] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -48,7 +48,7 @@ func (x *CreateFAQRequest) String() string { func (*CreateFAQRequest) ProtoMessage() {} func (x *CreateFAQRequest) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[0] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -61,7 +61,7 @@ func (x *CreateFAQRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateFAQRequest.ProtoReflect.Descriptor instead. func (*CreateFAQRequest) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{0} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{0} } func (x *CreateFAQRequest) GetData() *FAQInfo { @@ -84,7 +84,7 @@ type CreateFAQResponse struct { func (x *CreateFAQResponse) Reset() { *x = CreateFAQResponse{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[1] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -97,7 +97,7 @@ func (x *CreateFAQResponse) String() string { func (*CreateFAQResponse) ProtoMessage() {} func (x *CreateFAQResponse) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[1] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -110,7 +110,7 @@ func (x *CreateFAQResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateFAQResponse.ProtoReflect.Descriptor instead. func (*CreateFAQResponse) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{1} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{1} } func (x *CreateFAQResponse) GetError() uint32 { @@ -145,7 +145,7 @@ type GetFAQRequest struct { func (x *GetFAQRequest) Reset() { *x = GetFAQRequest{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[2] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -158,7 +158,7 @@ func (x *GetFAQRequest) String() string { func (*GetFAQRequest) ProtoMessage() {} func (x *GetFAQRequest) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[2] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -171,7 +171,7 @@ func (x *GetFAQRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFAQRequest.ProtoReflect.Descriptor instead. func (*GetFAQRequest) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{2} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{2} } func (x *GetFAQRequest) GetFaqId() string { @@ -194,7 +194,7 @@ type GetFAQResponse struct { func (x *GetFAQResponse) Reset() { *x = GetFAQResponse{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[3] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -207,7 +207,7 @@ func (x *GetFAQResponse) String() string { func (*GetFAQResponse) ProtoMessage() {} func (x *GetFAQResponse) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[3] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -220,7 +220,7 @@ func (x *GetFAQResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFAQResponse.ProtoReflect.Descriptor instead. func (*GetFAQResponse) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{3} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{3} } func (x *GetFAQResponse) GetError() uint32 { @@ -256,7 +256,7 @@ type UpdateFAQRequest struct { func (x *UpdateFAQRequest) Reset() { *x = UpdateFAQRequest{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[4] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -269,7 +269,7 @@ func (x *UpdateFAQRequest) String() string { func (*UpdateFAQRequest) ProtoMessage() {} func (x *UpdateFAQRequest) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[4] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -282,7 +282,7 @@ func (x *UpdateFAQRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateFAQRequest.ProtoReflect.Descriptor instead. func (*UpdateFAQRequest) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{4} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{4} } func (x *UpdateFAQRequest) GetFaqId() string { @@ -312,7 +312,7 @@ type UpdateFAQResponse struct { func (x *UpdateFAQResponse) Reset() { *x = UpdateFAQResponse{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[5] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -325,7 +325,7 @@ func (x *UpdateFAQResponse) String() string { func (*UpdateFAQResponse) ProtoMessage() {} func (x *UpdateFAQResponse) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[5] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -338,7 +338,7 @@ func (x *UpdateFAQResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateFAQResponse.ProtoReflect.Descriptor instead. func (*UpdateFAQResponse) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{5} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{5} } func (x *UpdateFAQResponse) GetError() uint32 { @@ -373,7 +373,7 @@ type DeleteFAQRequest struct { func (x *DeleteFAQRequest) Reset() { *x = DeleteFAQRequest{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[6] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -386,7 +386,7 @@ func (x *DeleteFAQRequest) String() string { func (*DeleteFAQRequest) ProtoMessage() {} func (x *DeleteFAQRequest) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[6] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -399,7 +399,7 @@ func (x *DeleteFAQRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteFAQRequest.ProtoReflect.Descriptor instead. func (*DeleteFAQRequest) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{6} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{6} } func (x *DeleteFAQRequest) GetFaqId() string { @@ -421,7 +421,7 @@ type DeleteFAQResponse struct { func (x *DeleteFAQResponse) Reset() { *x = DeleteFAQResponse{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[7] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -434,7 +434,7 @@ func (x *DeleteFAQResponse) String() string { func (*DeleteFAQResponse) ProtoMessage() {} func (x *DeleteFAQResponse) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[7] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -447,7 +447,7 @@ func (x *DeleteFAQResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteFAQResponse.ProtoReflect.Descriptor instead. func (*DeleteFAQResponse) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{7} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{7} } func (x *DeleteFAQResponse) GetError() uint32 { @@ -476,7 +476,7 @@ type FAQUpdateInfo struct { func (x *FAQUpdateInfo) Reset() { *x = FAQUpdateInfo{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[8] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -489,7 +489,7 @@ func (x *FAQUpdateInfo) String() string { func (*FAQUpdateInfo) ProtoMessage() {} func (x *FAQUpdateInfo) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[8] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -502,7 +502,7 @@ func (x *FAQUpdateInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FAQUpdateInfo.ProtoReflect.Descriptor instead. func (*FAQUpdateInfo) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{8} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{8} } func (x *FAQUpdateInfo) GetFaqId() string { @@ -534,7 +534,7 @@ type FAQInfo struct { func (x *FAQInfo) Reset() { *x = FAQInfo{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[9] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -547,7 +547,7 @@ func (x *FAQInfo) String() string { func (*FAQInfo) ProtoMessage() {} func (x *FAQInfo) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[9] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -560,7 +560,7 @@ func (x *FAQInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FAQInfo.ProtoReflect.Descriptor instead. func (*FAQInfo) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{9} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{9} } func (x *FAQInfo) GetCategoryId() string { @@ -610,7 +610,7 @@ type GetFAQImageRequest struct { func (x *GetFAQImageRequest) Reset() { *x = GetFAQImageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[10] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -623,7 +623,7 @@ func (x *GetFAQImageRequest) String() string { func (*GetFAQImageRequest) ProtoMessage() {} func (x *GetFAQImageRequest) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[10] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -636,7 +636,7 @@ func (x *GetFAQImageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFAQImageRequest.ProtoReflect.Descriptor instead. func (*GetFAQImageRequest) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{10} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{10} } func (x *GetFAQImageRequest) GetFaqId() string { @@ -664,7 +664,7 @@ type GetFAQImageResponse struct { func (x *GetFAQImageResponse) Reset() { *x = GetFAQImageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[11] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -677,7 +677,7 @@ func (x *GetFAQImageResponse) String() string { func (*GetFAQImageResponse) ProtoMessage() {} func (x *GetFAQImageResponse) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[11] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -690,7 +690,7 @@ func (x *GetFAQImageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFAQImageResponse.ProtoReflect.Descriptor instead. func (*GetFAQImageResponse) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{11} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{11} } func (x *GetFAQImageResponse) GetImage() []byte { @@ -711,7 +711,7 @@ type SearchFAQAnswerRichtextRequest struct { func (x *SearchFAQAnswerRichtextRequest) Reset() { *x = SearchFAQAnswerRichtextRequest{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[12] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -724,7 +724,7 @@ func (x *SearchFAQAnswerRichtextRequest) String() string { func (*SearchFAQAnswerRichtextRequest) ProtoMessage() {} func (x *SearchFAQAnswerRichtextRequest) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[12] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -737,7 +737,7 @@ func (x *SearchFAQAnswerRichtextRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchFAQAnswerRichtextRequest.ProtoReflect.Descriptor instead. func (*SearchFAQAnswerRichtextRequest) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{12} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{12} } func (x *SearchFAQAnswerRichtextRequest) GetKey() string { @@ -759,7 +759,7 @@ type SearchFAQAnswerRichtextResponse struct { func (x *SearchFAQAnswerRichtextResponse) Reset() { *x = SearchFAQAnswerRichtextResponse{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[13] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -772,7 +772,7 @@ func (x *SearchFAQAnswerRichtextResponse) String() string { func (*SearchFAQAnswerRichtextResponse) ProtoMessage() {} func (x *SearchFAQAnswerRichtextResponse) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[13] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -785,7 +785,7 @@ func (x *SearchFAQAnswerRichtextResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchFAQAnswerRichtextResponse.ProtoReflect.Descriptor instead. func (*SearchFAQAnswerRichtextResponse) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{13} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{13} } func (x *SearchFAQAnswerRichtextResponse) GetFaqId() string { @@ -825,7 +825,7 @@ type FAQ struct { func (x *FAQ) Reset() { *x = FAQ{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[14] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -838,7 +838,7 @@ func (x *FAQ) String() string { func (*FAQ) ProtoMessage() {} func (x *FAQ) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[14] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -851,7 +851,7 @@ func (x *FAQ) ProtoReflect() protoreflect.Message { // Deprecated: Use FAQ.ProtoReflect.Descriptor instead. func (*FAQ) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{14} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{14} } func (x *FAQ) GetFaqId() string { @@ -967,7 +967,7 @@ type AnswerRichtext struct { func (x *AnswerRichtext) Reset() { *x = AnswerRichtext{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[15] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -980,7 +980,7 @@ func (x *AnswerRichtext) String() string { func (*AnswerRichtext) ProtoMessage() {} func (x *AnswerRichtext) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[15] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -993,7 +993,7 @@ func (x *AnswerRichtext) ProtoReflect() protoreflect.Message { // Deprecated: Use AnswerRichtext.ProtoReflect.Descriptor instead. func (*AnswerRichtext) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{15} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{15} } func (x *AnswerRichtext) GetType() string { @@ -1068,7 +1068,7 @@ type Category struct { func (x *Category) Reset() { *x = Category{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[16] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1081,7 +1081,7 @@ func (x *Category) String() string { func (*Category) ProtoMessage() {} func (x *Category) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[16] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1094,7 +1094,7 @@ func (x *Category) ProtoReflect() protoreflect.Message { // Deprecated: Use Category.ProtoReflect.Descriptor instead. func (*Category) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{16} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{16} } func (x *Category) GetCategoryId() string { @@ -1152,7 +1152,7 @@ type User struct { func (x *User) Reset() { *x = User{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[17] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1165,7 +1165,7 @@ func (x *User) String() string { func (*User) ProtoMessage() {} func (x *User) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[17] + mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1178,7 +1178,7 @@ func (x *User) ProtoReflect() protoreflect.Message { // Deprecated: Use User.ProtoReflect.Descriptor instead. func (*User) Descriptor() ([]byte, []int) { - return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{17} + return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{17} } func (x *User) GetId() string { @@ -1202,270 +1202,272 @@ func (x *User) GetName() string { return "" } -var File_consultingapis_faq_v1_faq_proto protoreflect.FileDescriptor - -var file_consultingapis_faq_v1_faq_proto_rawDesc = []byte{ - 0x0a, 0x1f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x71, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x15, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x46, 0x0a, 0x10, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x6b, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, - 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x26, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x22, 0x68, 0x0a, 0x0e, 0x47, 0x65, 0x74, - 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x5d, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x32, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, - 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, - 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x6b, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, - 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, - 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x29, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, +var File_aggregatingapis_faq_v1_faq_proto protoreflect.FileDescriptor + +var file_aggregatingapis_faq_v1_faq_proto_rawDesc = []byte{ + 0x0a, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x71, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x12, 0x16, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x47, + 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1f, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6c, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x26, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x22, 0x69, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x5a, 0x0a, 0x0d, 0x46, 0x41, 0x51, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, - 0x32, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, - 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, - 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, - 0x6e, 0x66, 0x6f, 0x22, 0x9b, 0x01, 0x0a, 0x07, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, - 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, - 0x73, 0x77, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x72, - 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, - 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, - 0x73, 0x22, 0x48, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x1b, - 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x2b, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x32, 0x0a, 0x1e, 0x53, 0x65, 0x61, 0x72, - 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, - 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, - 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x77, 0x0a, 0x1f, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, - 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5e, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, + 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, + 0x71, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x29, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, + 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, + 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x5b, + 0x0a, 0x0d, 0x46, 0x41, 0x51, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x3d, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x41, - 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x06, 0x61, - 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0xde, 0x03, 0x0a, 0x03, 0x46, 0x41, 0x51, 0x12, 0x15, 0x0a, - 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, - 0x61, 0x71, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, - 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x6c, 0x70, 0x64, - 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x73, - 0x77, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, - 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, - 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, - 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, - 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, - 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, - 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x22, 0xb6, 0x01, 0x0a, 0x0e, 0x41, 0x6e, 0x73, 0x77, 0x65, - 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, - 0x03, 0x73, 0x72, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, - 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, - 0x79, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, - 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, - 0xa9, 0x01, 0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, - 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, - 0x0a, 0x0b, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x49, 0x0a, 0x04, 0x55, - 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, - 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, - 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0xf3, 0x05, 0x0a, 0x0a, 0x46, 0x41, 0x51, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x75, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, - 0x41, 0x51, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, - 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x07, 0x2f, - 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x66, 0x0a, 0x06, - 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, - 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, + 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, + 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x9b, 0x01, 0x0a, 0x07, + 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, + 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x48, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, + 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x4b, 0x65, 0x79, 0x22, 0x2b, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x22, 0x32, 0x0a, 0x1e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6b, 0x65, 0x79, 0x22, 0x78, 0x0a, 0x1f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, + 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x3e, + 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, + 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, + 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0xe1, + 0x03, 0x0a, 0x03, 0x46, 0x41, 0x51, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x63, + 0x68, 0x74, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, + 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, + 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, + 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x73, + 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x22, 0xb6, 0x01, 0x0a, 0x0e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, + 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x72, 0x63, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x6b, + 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, + 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, + 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xa9, 0x01, 0x0a, 0x08, + 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, + 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, + 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, + 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, + 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x49, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x32, 0xff, 0x05, 0x0a, 0x0a, 0x46, 0x41, 0x51, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x77, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x28, + 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, + 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x07, 0x2f, 0x66, 0x61, + 0x71, 0x2f, 0x76, 0x31, 0x3a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x68, 0x0a, 0x06, 0x47, 0x65, + 0x74, 0x46, 0x41, 0x51, 0x12, 0x25, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x09, 0x12, 0x07, 0x2f, 0x66, 0x61, - 0x71, 0x2f, 0x76, 0x31, 0x12, 0x75, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, - 0x51, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x6e, - 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x32, 0x07, 0x2f, 0x66, - 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x6f, 0x0a, 0x09, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, - 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x09, 0x2a, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x12, 0x7b, 0x0a, 0x0b, - 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x29, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x66, 0x61, 0x71, - 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0xa0, 0x01, 0x0a, 0x17, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, - 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, - 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x63, - 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, + 0x71, 0x2f, 0x76, 0x31, 0x12, 0x77, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, + 0x51, 0x12, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, + 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x32, 0x07, + 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x71, 0x0a, + 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x28, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x0f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x09, 0x2a, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, + 0x12, 0x7d, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, + 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, + 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, + 0x12, 0x0d, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, + 0xa2, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x36, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, - 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x66, - 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0xd8, 0x01, 0x0a, - 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x46, 0x61, 0x71, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, - 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x61, - 0x71, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x46, 0x58, 0xaa, 0x02, 0x15, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x46, 0x61, 0x71, 0x2e, 0x56, - 0x31, 0xca, 0x02, 0x15, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x5c, 0x46, 0x61, 0x71, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x46, 0x61, 0x71, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, - 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, - 0x46, 0x61, 0x71, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, + 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x42, 0xde, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, + 0x2e, 0x76, 0x31, 0x42, 0x08, 0x46, 0x61, 0x71, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, + 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, + 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, + 0x2f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x61, 0x71, 0x76, 0x31, 0xa2, 0x02, 0x03, + 0x41, 0x46, 0x58, 0xaa, 0x02, 0x16, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x46, 0x61, 0x71, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x46, + 0x61, 0x71, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x46, 0x61, 0x71, 0x5c, 0x56, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x41, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x46, 0x61, + 0x71, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_consultingapis_faq_v1_faq_proto_rawDescOnce sync.Once - file_consultingapis_faq_v1_faq_proto_rawDescData = file_consultingapis_faq_v1_faq_proto_rawDesc + file_aggregatingapis_faq_v1_faq_proto_rawDescOnce sync.Once + file_aggregatingapis_faq_v1_faq_proto_rawDescData = file_aggregatingapis_faq_v1_faq_proto_rawDesc ) -func file_consultingapis_faq_v1_faq_proto_rawDescGZIP() []byte { - file_consultingapis_faq_v1_faq_proto_rawDescOnce.Do(func() { - file_consultingapis_faq_v1_faq_proto_rawDescData = protoimpl.X.CompressGZIP(file_consultingapis_faq_v1_faq_proto_rawDescData) +func file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP() []byte { + file_aggregatingapis_faq_v1_faq_proto_rawDescOnce.Do(func() { + file_aggregatingapis_faq_v1_faq_proto_rawDescData = protoimpl.X.CompressGZIP(file_aggregatingapis_faq_v1_faq_proto_rawDescData) }) - return file_consultingapis_faq_v1_faq_proto_rawDescData -} - -var file_consultingapis_faq_v1_faq_proto_msgTypes = make([]protoimpl.MessageInfo, 18) -var file_consultingapis_faq_v1_faq_proto_goTypes = []interface{}{ - (*CreateFAQRequest)(nil), // 0: consultingapis.faq.v1.CreateFAQRequest - (*CreateFAQResponse)(nil), // 1: consultingapis.faq.v1.CreateFAQResponse - (*GetFAQRequest)(nil), // 2: consultingapis.faq.v1.GetFAQRequest - (*GetFAQResponse)(nil), // 3: consultingapis.faq.v1.GetFAQResponse - (*UpdateFAQRequest)(nil), // 4: consultingapis.faq.v1.UpdateFAQRequest - (*UpdateFAQResponse)(nil), // 5: consultingapis.faq.v1.UpdateFAQResponse - (*DeleteFAQRequest)(nil), // 6: consultingapis.faq.v1.DeleteFAQRequest - (*DeleteFAQResponse)(nil), // 7: consultingapis.faq.v1.DeleteFAQResponse - (*FAQUpdateInfo)(nil), // 8: consultingapis.faq.v1.FAQUpdateInfo - (*FAQInfo)(nil), // 9: consultingapis.faq.v1.FAQInfo - (*GetFAQImageRequest)(nil), // 10: consultingapis.faq.v1.GetFAQImageRequest - (*GetFAQImageResponse)(nil), // 11: consultingapis.faq.v1.GetFAQImageResponse - (*SearchFAQAnswerRichtextRequest)(nil), // 12: consultingapis.faq.v1.SearchFAQAnswerRichtextRequest - (*SearchFAQAnswerRichtextResponse)(nil), // 13: consultingapis.faq.v1.SearchFAQAnswerRichtextResponse - (*FAQ)(nil), // 14: consultingapis.faq.v1.FAQ - (*AnswerRichtext)(nil), // 15: consultingapis.faq.v1.AnswerRichtext - (*Category)(nil), // 16: consultingapis.faq.v1.Category - (*User)(nil), // 17: consultingapis.faq.v1.User -} -var file_consultingapis_faq_v1_faq_proto_depIdxs = []int32{ - 9, // 0: consultingapis.faq.v1.CreateFAQRequest.data:type_name -> consultingapis.faq.v1.FAQInfo - 14, // 1: consultingapis.faq.v1.CreateFAQResponse.data:type_name -> consultingapis.faq.v1.FAQ - 14, // 2: consultingapis.faq.v1.GetFAQResponse.data:type_name -> consultingapis.faq.v1.FAQ - 9, // 3: consultingapis.faq.v1.UpdateFAQRequest.data:type_name -> consultingapis.faq.v1.FAQInfo - 14, // 4: consultingapis.faq.v1.UpdateFAQResponse.data:type_name -> consultingapis.faq.v1.FAQ - 9, // 5: consultingapis.faq.v1.FAQUpdateInfo.info:type_name -> consultingapis.faq.v1.FAQInfo - 15, // 6: consultingapis.faq.v1.SearchFAQAnswerRichtextResponse.answer:type_name -> consultingapis.faq.v1.AnswerRichtext - 16, // 7: consultingapis.faq.v1.FAQ.categories:type_name -> consultingapis.faq.v1.Category - 17, // 8: consultingapis.faq.v1.FAQ.update_user:type_name -> consultingapis.faq.v1.User - 17, // 9: consultingapis.faq.v1.FAQ.create_user:type_name -> consultingapis.faq.v1.User - 0, // 10: consultingapis.faq.v1.FAQService.CreateFAQ:input_type -> consultingapis.faq.v1.CreateFAQRequest - 2, // 11: consultingapis.faq.v1.FAQService.GetFAQ:input_type -> consultingapis.faq.v1.GetFAQRequest - 4, // 12: consultingapis.faq.v1.FAQService.UpdateFAQ:input_type -> consultingapis.faq.v1.UpdateFAQRequest - 6, // 13: consultingapis.faq.v1.FAQService.DeleteFAQ:input_type -> consultingapis.faq.v1.DeleteFAQRequest - 10, // 14: consultingapis.faq.v1.FAQService.GetFAQImage:input_type -> consultingapis.faq.v1.GetFAQImageRequest - 12, // 15: consultingapis.faq.v1.FAQService.SearchFAQAnswerRichtext:input_type -> consultingapis.faq.v1.SearchFAQAnswerRichtextRequest - 1, // 16: consultingapis.faq.v1.FAQService.CreateFAQ:output_type -> consultingapis.faq.v1.CreateFAQResponse - 3, // 17: consultingapis.faq.v1.FAQService.GetFAQ:output_type -> consultingapis.faq.v1.GetFAQResponse - 5, // 18: consultingapis.faq.v1.FAQService.UpdateFAQ:output_type -> consultingapis.faq.v1.UpdateFAQResponse - 7, // 19: consultingapis.faq.v1.FAQService.DeleteFAQ:output_type -> consultingapis.faq.v1.DeleteFAQResponse - 11, // 20: consultingapis.faq.v1.FAQService.GetFAQImage:output_type -> consultingapis.faq.v1.GetFAQImageResponse - 13, // 21: consultingapis.faq.v1.FAQService.SearchFAQAnswerRichtext:output_type -> consultingapis.faq.v1.SearchFAQAnswerRichtextResponse + return file_aggregatingapis_faq_v1_faq_proto_rawDescData +} + +var file_aggregatingapis_faq_v1_faq_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_aggregatingapis_faq_v1_faq_proto_goTypes = []interface{}{ + (*CreateFAQRequest)(nil), // 0: aggregatingapis.faq.v1.CreateFAQRequest + (*CreateFAQResponse)(nil), // 1: aggregatingapis.faq.v1.CreateFAQResponse + (*GetFAQRequest)(nil), // 2: aggregatingapis.faq.v1.GetFAQRequest + (*GetFAQResponse)(nil), // 3: aggregatingapis.faq.v1.GetFAQResponse + (*UpdateFAQRequest)(nil), // 4: aggregatingapis.faq.v1.UpdateFAQRequest + (*UpdateFAQResponse)(nil), // 5: aggregatingapis.faq.v1.UpdateFAQResponse + (*DeleteFAQRequest)(nil), // 6: aggregatingapis.faq.v1.DeleteFAQRequest + (*DeleteFAQResponse)(nil), // 7: aggregatingapis.faq.v1.DeleteFAQResponse + (*FAQUpdateInfo)(nil), // 8: aggregatingapis.faq.v1.FAQUpdateInfo + (*FAQInfo)(nil), // 9: aggregatingapis.faq.v1.FAQInfo + (*GetFAQImageRequest)(nil), // 10: aggregatingapis.faq.v1.GetFAQImageRequest + (*GetFAQImageResponse)(nil), // 11: aggregatingapis.faq.v1.GetFAQImageResponse + (*SearchFAQAnswerRichtextRequest)(nil), // 12: aggregatingapis.faq.v1.SearchFAQAnswerRichtextRequest + (*SearchFAQAnswerRichtextResponse)(nil), // 13: aggregatingapis.faq.v1.SearchFAQAnswerRichtextResponse + (*FAQ)(nil), // 14: aggregatingapis.faq.v1.FAQ + (*AnswerRichtext)(nil), // 15: aggregatingapis.faq.v1.AnswerRichtext + (*Category)(nil), // 16: aggregatingapis.faq.v1.Category + (*User)(nil), // 17: aggregatingapis.faq.v1.User +} +var file_aggregatingapis_faq_v1_faq_proto_depIdxs = []int32{ + 9, // 0: aggregatingapis.faq.v1.CreateFAQRequest.data:type_name -> aggregatingapis.faq.v1.FAQInfo + 14, // 1: aggregatingapis.faq.v1.CreateFAQResponse.data:type_name -> aggregatingapis.faq.v1.FAQ + 14, // 2: aggregatingapis.faq.v1.GetFAQResponse.data:type_name -> aggregatingapis.faq.v1.FAQ + 9, // 3: aggregatingapis.faq.v1.UpdateFAQRequest.data:type_name -> aggregatingapis.faq.v1.FAQInfo + 14, // 4: aggregatingapis.faq.v1.UpdateFAQResponse.data:type_name -> aggregatingapis.faq.v1.FAQ + 9, // 5: aggregatingapis.faq.v1.FAQUpdateInfo.info:type_name -> aggregatingapis.faq.v1.FAQInfo + 15, // 6: aggregatingapis.faq.v1.SearchFAQAnswerRichtextResponse.answer:type_name -> aggregatingapis.faq.v1.AnswerRichtext + 16, // 7: aggregatingapis.faq.v1.FAQ.categories:type_name -> aggregatingapis.faq.v1.Category + 17, // 8: aggregatingapis.faq.v1.FAQ.update_user:type_name -> aggregatingapis.faq.v1.User + 17, // 9: aggregatingapis.faq.v1.FAQ.create_user:type_name -> aggregatingapis.faq.v1.User + 0, // 10: aggregatingapis.faq.v1.FAQService.CreateFAQ:input_type -> aggregatingapis.faq.v1.CreateFAQRequest + 2, // 11: aggregatingapis.faq.v1.FAQService.GetFAQ:input_type -> aggregatingapis.faq.v1.GetFAQRequest + 4, // 12: aggregatingapis.faq.v1.FAQService.UpdateFAQ:input_type -> aggregatingapis.faq.v1.UpdateFAQRequest + 6, // 13: aggregatingapis.faq.v1.FAQService.DeleteFAQ:input_type -> aggregatingapis.faq.v1.DeleteFAQRequest + 10, // 14: aggregatingapis.faq.v1.FAQService.GetFAQImage:input_type -> aggregatingapis.faq.v1.GetFAQImageRequest + 12, // 15: aggregatingapis.faq.v1.FAQService.SearchFAQAnswerRichtext:input_type -> aggregatingapis.faq.v1.SearchFAQAnswerRichtextRequest + 1, // 16: aggregatingapis.faq.v1.FAQService.CreateFAQ:output_type -> aggregatingapis.faq.v1.CreateFAQResponse + 3, // 17: aggregatingapis.faq.v1.FAQService.GetFAQ:output_type -> aggregatingapis.faq.v1.GetFAQResponse + 5, // 18: aggregatingapis.faq.v1.FAQService.UpdateFAQ:output_type -> aggregatingapis.faq.v1.UpdateFAQResponse + 7, // 19: aggregatingapis.faq.v1.FAQService.DeleteFAQ:output_type -> aggregatingapis.faq.v1.DeleteFAQResponse + 11, // 20: aggregatingapis.faq.v1.FAQService.GetFAQImage:output_type -> aggregatingapis.faq.v1.GetFAQImageResponse + 13, // 21: aggregatingapis.faq.v1.FAQService.SearchFAQAnswerRichtext:output_type -> aggregatingapis.faq.v1.SearchFAQAnswerRichtextResponse 16, // [16:22] is the sub-list for method output_type 10, // [10:16] is the sub-list for method input_type 10, // [10:10] is the sub-list for extension type_name @@ -1473,13 +1475,13 @@ var file_consultingapis_faq_v1_faq_proto_depIdxs = []int32{ 0, // [0:10] is the sub-list for field type_name } -func init() { file_consultingapis_faq_v1_faq_proto_init() } -func file_consultingapis_faq_v1_faq_proto_init() { - if File_consultingapis_faq_v1_faq_proto != nil { +func init() { file_aggregatingapis_faq_v1_faq_proto_init() } +func file_aggregatingapis_faq_v1_faq_proto_init() { + if File_aggregatingapis_faq_v1_faq_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_consultingapis_faq_v1_faq_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateFAQRequest); i { case 0: return &v.state @@ -1491,7 +1493,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateFAQResponse); i { case 0: return &v.state @@ -1503,7 +1505,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFAQRequest); i { case 0: return &v.state @@ -1515,7 +1517,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFAQResponse); i { case 0: return &v.state @@ -1527,7 +1529,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateFAQRequest); i { case 0: return &v.state @@ -1539,7 +1541,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateFAQResponse); i { case 0: return &v.state @@ -1551,7 +1553,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteFAQRequest); i { case 0: return &v.state @@ -1563,7 +1565,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteFAQResponse); i { case 0: return &v.state @@ -1575,7 +1577,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FAQUpdateInfo); i { case 0: return &v.state @@ -1587,7 +1589,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FAQInfo); i { case 0: return &v.state @@ -1599,7 +1601,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFAQImageRequest); i { case 0: return &v.state @@ -1611,7 +1613,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFAQImageResponse); i { case 0: return &v.state @@ -1623,7 +1625,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchFAQAnswerRichtextRequest); i { case 0: return &v.state @@ -1635,7 +1637,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchFAQAnswerRichtextResponse); i { case 0: return &v.state @@ -1647,7 +1649,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FAQ); i { case 0: return &v.state @@ -1659,7 +1661,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnswerRichtext); i { case 0: return &v.state @@ -1671,7 +1673,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Category); i { case 0: return &v.state @@ -1683,7 +1685,7 @@ func file_consultingapis_faq_v1_faq_proto_init() { return nil } } - file_consultingapis_faq_v1_faq_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_faq_v1_faq_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*User); i { case 0: return &v.state @@ -1700,18 +1702,18 @@ func file_consultingapis_faq_v1_faq_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_consultingapis_faq_v1_faq_proto_rawDesc, + RawDescriptor: file_aggregatingapis_faq_v1_faq_proto_rawDesc, NumEnums: 0, NumMessages: 18, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_consultingapis_faq_v1_faq_proto_goTypes, - DependencyIndexes: file_consultingapis_faq_v1_faq_proto_depIdxs, - MessageInfos: file_consultingapis_faq_v1_faq_proto_msgTypes, + GoTypes: file_aggregatingapis_faq_v1_faq_proto_goTypes, + DependencyIndexes: file_aggregatingapis_faq_v1_faq_proto_depIdxs, + MessageInfos: file_aggregatingapis_faq_v1_faq_proto_msgTypes, }.Build() - File_consultingapis_faq_v1_faq_proto = out.File - file_consultingapis_faq_v1_faq_proto_rawDesc = nil - file_consultingapis_faq_v1_faq_proto_goTypes = nil - file_consultingapis_faq_v1_faq_proto_depIdxs = nil + File_aggregatingapis_faq_v1_faq_proto = out.File + file_aggregatingapis_faq_v1_faq_proto_rawDesc = nil + file_aggregatingapis_faq_v1_faq_proto_goTypes = nil + file_aggregatingapis_faq_v1_faq_proto_depIdxs = nil } diff --git a/aggregatingapis/faq/v1/faq.pb.gw.go b/aggregatingapis/faq/v1/faq.pb.gw.go index 5250c3a..afb2a8a 100644 --- a/aggregatingapis/faq/v1/faq.pb.gw.go +++ b/aggregatingapis/faq/v1/faq.pb.gw.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: consultingapis/faq/v1/faq.proto +// source: aggregatingapis/faq/v1/faq.proto /* Package faqv1 is a reverse proxy. @@ -274,7 +274,7 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/CreateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/CreateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -298,7 +298,7 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/GetFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/GetFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -322,7 +322,7 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/UpdateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/UpdateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -346,7 +346,7 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/DeleteFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/DeleteFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -370,7 +370,7 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/GetFAQImage", runtime.WithHTTPPathPattern("/faq/v1/image")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/GetFAQImage", runtime.WithHTTPPathPattern("/faq/v1/image")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -394,7 +394,7 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", runtime.WithHTTPPathPattern("/faq/v1/search")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", runtime.WithHTTPPathPattern("/faq/v1/search")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -457,7 +457,7 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/CreateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/CreateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -478,7 +478,7 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/GetFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/GetFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -499,7 +499,7 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/UpdateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/UpdateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -520,7 +520,7 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/DeleteFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/DeleteFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -541,7 +541,7 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/GetFAQImage", runtime.WithHTTPPathPattern("/faq/v1/image")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/GetFAQImage", runtime.WithHTTPPathPattern("/faq/v1/image")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -562,7 +562,7 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", runtime.WithHTTPPathPattern("/faq/v1/search")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", runtime.WithHTTPPathPattern("/faq/v1/search")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return diff --git a/aggregatingapis/faq/v1/faq_grpc.pb.go b/aggregatingapis/faq/v1/faq_grpc.pb.go index 18e6822..de8ad70 100644 --- a/aggregatingapis/faq/v1/faq_grpc.pb.go +++ b/aggregatingapis/faq/v1/faq_grpc.pb.go @@ -2,7 +2,7 @@ // versions: // - protoc-gen-go-grpc v1.2.0 // - protoc (unknown) -// source: consultingapis/faq/v1/faq.proto +// source: aggregatingapis/faq/v1/faq.proto package faqv1 @@ -40,7 +40,7 @@ func NewFAQServiceClient(cc grpc.ClientConnInterface) FAQServiceClient { func (c *fAQServiceClient) CreateFAQ(ctx context.Context, in *CreateFAQRequest, opts ...grpc.CallOption) (*CreateFAQResponse, error) { out := new(CreateFAQResponse) - err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/CreateFAQ", in, out, opts...) + err := c.cc.Invoke(ctx, "/aggregatingapis.faq.v1.FAQService/CreateFAQ", in, out, opts...) if err != nil { return nil, err } @@ -49,7 +49,7 @@ func (c *fAQServiceClient) CreateFAQ(ctx context.Context, in *CreateFAQRequest, func (c *fAQServiceClient) GetFAQ(ctx context.Context, in *GetFAQRequest, opts ...grpc.CallOption) (*GetFAQResponse, error) { out := new(GetFAQResponse) - err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/GetFAQ", in, out, opts...) + err := c.cc.Invoke(ctx, "/aggregatingapis.faq.v1.FAQService/GetFAQ", in, out, opts...) if err != nil { return nil, err } @@ -58,7 +58,7 @@ func (c *fAQServiceClient) GetFAQ(ctx context.Context, in *GetFAQRequest, opts . func (c *fAQServiceClient) UpdateFAQ(ctx context.Context, in *UpdateFAQRequest, opts ...grpc.CallOption) (*UpdateFAQResponse, error) { out := new(UpdateFAQResponse) - err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/UpdateFAQ", in, out, opts...) + err := c.cc.Invoke(ctx, "/aggregatingapis.faq.v1.FAQService/UpdateFAQ", in, out, opts...) if err != nil { return nil, err } @@ -67,7 +67,7 @@ func (c *fAQServiceClient) UpdateFAQ(ctx context.Context, in *UpdateFAQRequest, func (c *fAQServiceClient) DeleteFAQ(ctx context.Context, in *DeleteFAQRequest, opts ...grpc.CallOption) (*DeleteFAQResponse, error) { out := new(DeleteFAQResponse) - err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/DeleteFAQ", in, out, opts...) + err := c.cc.Invoke(ctx, "/aggregatingapis.faq.v1.FAQService/DeleteFAQ", in, out, opts...) if err != nil { return nil, err } @@ -76,7 +76,7 @@ func (c *fAQServiceClient) DeleteFAQ(ctx context.Context, in *DeleteFAQRequest, func (c *fAQServiceClient) GetFAQImage(ctx context.Context, in *GetFAQImageRequest, opts ...grpc.CallOption) (*GetFAQImageResponse, error) { out := new(GetFAQImageResponse) - err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/GetFAQImage", in, out, opts...) + err := c.cc.Invoke(ctx, "/aggregatingapis.faq.v1.FAQService/GetFAQImage", in, out, opts...) if err != nil { return nil, err } @@ -85,7 +85,7 @@ func (c *fAQServiceClient) GetFAQImage(ctx context.Context, in *GetFAQImageReque func (c *fAQServiceClient) SearchFAQAnswerRichtext(ctx context.Context, in *SearchFAQAnswerRichtextRequest, opts ...grpc.CallOption) (*SearchFAQAnswerRichtextResponse, error) { out := new(SearchFAQAnswerRichtextResponse) - err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", in, out, opts...) + err := c.cc.Invoke(ctx, "/aggregatingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", in, out, opts...) if err != nil { return nil, err } @@ -148,7 +148,7 @@ func _FAQService_CreateFAQ_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/consultingapis.faq.v1.FAQService/CreateFAQ", + FullMethod: "/aggregatingapis.faq.v1.FAQService/CreateFAQ", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FAQServiceServer).CreateFAQ(ctx, req.(*CreateFAQRequest)) @@ -166,7 +166,7 @@ func _FAQService_GetFAQ_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/consultingapis.faq.v1.FAQService/GetFAQ", + FullMethod: "/aggregatingapis.faq.v1.FAQService/GetFAQ", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FAQServiceServer).GetFAQ(ctx, req.(*GetFAQRequest)) @@ -184,7 +184,7 @@ func _FAQService_UpdateFAQ_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/consultingapis.faq.v1.FAQService/UpdateFAQ", + FullMethod: "/aggregatingapis.faq.v1.FAQService/UpdateFAQ", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FAQServiceServer).UpdateFAQ(ctx, req.(*UpdateFAQRequest)) @@ -202,7 +202,7 @@ func _FAQService_DeleteFAQ_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/consultingapis.faq.v1.FAQService/DeleteFAQ", + FullMethod: "/aggregatingapis.faq.v1.FAQService/DeleteFAQ", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FAQServiceServer).DeleteFAQ(ctx, req.(*DeleteFAQRequest)) @@ -220,7 +220,7 @@ func _FAQService_GetFAQImage_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/consultingapis.faq.v1.FAQService/GetFAQImage", + FullMethod: "/aggregatingapis.faq.v1.FAQService/GetFAQImage", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FAQServiceServer).GetFAQImage(ctx, req.(*GetFAQImageRequest)) @@ -238,7 +238,7 @@ func _FAQService_SearchFAQAnswerRichtext_Handler(srv interface{}, ctx context.Co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/consultingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", + FullMethod: "/aggregatingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FAQServiceServer).SearchFAQAnswerRichtext(ctx, req.(*SearchFAQAnswerRichtextRequest)) @@ -250,7 +250,7 @@ func _FAQService_SearchFAQAnswerRichtext_Handler(srv interface{}, ctx context.Co // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var FAQService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "consultingapis.faq.v1.FAQService", + ServiceName: "aggregatingapis.faq.v1.FAQService", HandlerType: (*FAQServiceServer)(nil), Methods: []grpc.MethodDesc{ { @@ -279,5 +279,5 @@ var FAQService_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "consultingapis/faq/v1/faq.proto", + Metadata: "aggregatingapis/faq/v1/faq.proto", } diff --git a/aggregatingapis/infostream/v1/infostream.pb.go b/aggregatingapis/infostream/v1/infostream.pb.go index 2897906..b75142a 100644 --- a/aggregatingapis/infostream/v1/infostream.pb.go +++ b/aggregatingapis/infostream/v1/infostream.pb.go @@ -191,13 +191,18 @@ type WeatherData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Aqi uint32 `protobuf:"varint,1,opt,name=aqi,proto3" json:"aqi,omitempty"` - Desc string `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"` - SkyconNow string `protobuf:"bytes,3,opt,name=skycon_now,json=skyconNow,proto3" json:"skycon_now,omitempty"` - TemperatureMax uint32 `protobuf:"varint,4,opt,name=temperature_max,json=temperatureMax,proto3" json:"temperature_max,omitempty"` - TemperatureMin uint32 `protobuf:"varint,5,opt,name=temperature_min,json=temperatureMin,proto3" json:"temperature_min,omitempty"` - TemperatureNow uint32 `protobuf:"varint,6,opt,name=temperature_now,json=temperatureNow,proto3" json:"temperature_now,omitempty"` - Timestamp uint32 `protobuf:"varint,7,opt,name=timestamp,proto3" json:"timestamp,omitempty"` + Aqi uint32 `protobuf:"varint,1,opt,name=aqi,proto3" json:"aqi,omitempty"` + Desc string `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"` + SkyconNow string `protobuf:"bytes,3,opt,name=skyconNow,proto3" json:"skyconNow,omitempty"` + IsRain bool `protobuf:"varint,4,opt,name=isRain,proto3" json:"isRain,omitempty"` + WillStop bool `protobuf:"varint,5,opt,name=willStop,proto3" json:"willStop,omitempty"` + WillRain bool `protobuf:"varint,6,opt,name=willRain,proto3" json:"willRain,omitempty"` + RainContinue uint32 `protobuf:"varint,7,opt,name=RainContinue,proto3" json:"RainContinue,omitempty"` + RainCome uint32 `protobuf:"varint,8,opt,name=RainCome,proto3" json:"RainCome,omitempty"` + TemperatureMax float32 `protobuf:"fixed32,9,opt,name=temperatureMax,proto3" json:"temperatureMax,omitempty"` + TemperatureMin float32 `protobuf:"fixed32,10,opt,name=temperatureMin,proto3" json:"temperatureMin,omitempty"` + TemperatureNow float32 `protobuf:"fixed32,11,opt,name=temperatureNow,proto3" json:"temperatureNow,omitempty"` + Timestamp uint32 `protobuf:"varint,12,opt,name=timestamp,proto3" json:"timestamp,omitempty"` } func (x *WeatherData) Reset() { @@ -253,21 +258,56 @@ func (x *WeatherData) GetSkyconNow() string { return "" } -func (x *WeatherData) GetTemperatureMax() uint32 { +func (x *WeatherData) GetIsRain() bool { + if x != nil { + return x.IsRain + } + return false +} + +func (x *WeatherData) GetWillStop() bool { + if x != nil { + return x.WillStop + } + return false +} + +func (x *WeatherData) GetWillRain() bool { + if x != nil { + return x.WillRain + } + return false +} + +func (x *WeatherData) GetRainContinue() uint32 { + if x != nil { + return x.RainContinue + } + return 0 +} + +func (x *WeatherData) GetRainCome() uint32 { + if x != nil { + return x.RainCome + } + return 0 +} + +func (x *WeatherData) GetTemperatureMax() float32 { if x != nil { return x.TemperatureMax } return 0 } -func (x *WeatherData) GetTemperatureMin() uint32 { +func (x *WeatherData) GetTemperatureMin() float32 { if x != nil { return x.TemperatureMin } return 0 } -func (x *WeatherData) GetTemperatureNow() uint32 { +func (x *WeatherData) GetTemperatureNow() float32 { if x != nil { return x.TemperatureNow } @@ -349,11 +389,11 @@ type ScheduleData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - StartSection uint32 `protobuf:"varint,1,opt,name=start_section,json=startSection,proto3" json:"start_section,omitempty"` - EndSection uint32 `protobuf:"varint,2,opt,name=end_section,json=endSection,proto3" json:"end_section,omitempty"` - StartTime string `protobuf:"bytes,3,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` - EndTime string `protobuf:"bytes,4,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` - CourseName string `protobuf:"bytes,5,opt,name=course_name,json=courseName,proto3" json:"course_name,omitempty"` + StartSection uint32 `protobuf:"varint,1,opt,name=startSection,proto3" json:"startSection,omitempty"` + EndSection uint32 `protobuf:"varint,2,opt,name=endSection,proto3" json:"endSection,omitempty"` + StartTime string `protobuf:"bytes,3,opt,name=startTime,proto3" json:"startTime,omitempty"` + EndTime string `protobuf:"bytes,4,opt,name=endTime,proto3" json:"endTime,omitempty"` + CourseName string `protobuf:"bytes,5,opt,name=courseName,proto3" json:"courseName,omitempty"` Classroom string `protobuf:"bytes,6,opt,name=classroom,proto3" json:"classroom,omitempty"` Teacher string `protobuf:"bytes,7,opt,name=teacher,proto3" json:"teacher,omitempty"` Duration string `protobuf:"bytes,8,opt,name=duration,proto3" json:"duration,omitempty"` @@ -509,13 +549,13 @@ type ExamData struct { Classroom string `protobuf:"bytes,1,opt,name=classroom,proto3" json:"classroom,omitempty"` Course string `protobuf:"bytes,2,opt,name=course,proto3" json:"course,omitempty"` - ExamTime string `protobuf:"bytes,3,opt,name=exam_time,json=examTime,proto3" json:"exam_time,omitempty"` - ExamType string `protobuf:"bytes,4,opt,name=exam_type,json=examType,proto3" json:"exam_type,omitempty"` - SchoolYear string `protobuf:"bytes,5,opt,name=school_year,json=schoolYear,proto3" json:"school_year,omitempty"` + ExamTime string `protobuf:"bytes,3,opt,name=examTime,proto3" json:"examTime,omitempty"` + ExamType string `protobuf:"bytes,4,opt,name=examType,proto3" json:"examType,omitempty"` + SchoolYear string `protobuf:"bytes,5,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` Seat string `protobuf:"bytes,6,opt,name=seat,proto3" json:"seat,omitempty"` - SelectCode string `protobuf:"bytes,7,opt,name=select_code,json=selectCode,proto3" json:"select_code,omitempty"` + SelectCode string `protobuf:"bytes,7,opt,name=selectCode,proto3" json:"selectCode,omitempty"` Semester string `protobuf:"bytes,8,opt,name=semester,proto3" json:"semester,omitempty"` - StaffId string `protobuf:"bytes,9,opt,name=staff_id,json=staffId,proto3" json:"staff_id,omitempty"` + StaffId string `protobuf:"bytes,9,opt,name=staffId,proto3" json:"staffId,omitempty"` } func (x *ExamData) Reset() { @@ -902,23 +942,23 @@ type SunRunData struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AmMileage uint32 `protobuf:"varint,1,opt,name=am_mileage,json=amMileage,proto3" json:"am_mileage,omitempty"` - AmSpeed float64 `protobuf:"fixed64,2,opt,name=am_speed,json=amSpeed,proto3" json:"am_speed,omitempty"` - CreatedAt string `protobuf:"bytes,3,opt,name=created_at,json=createdAt,proto3" json:"created_at,omitempty"` - DataUpdatedAt string `protobuf:"bytes,4,opt,name=data_updated_at,json=dataUpdatedAt,proto3" json:"data_updated_at,omitempty"` + AmMileage uint32 `protobuf:"varint,1,opt,name=amMileage,proto3" json:"amMileage,omitempty"` + AmSpeed float64 `protobuf:"fixed64,2,opt,name=amSpeed,proto3" json:"amSpeed,omitempty"` + CreatedAt string `protobuf:"bytes,3,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + DataUpdatedAt string `protobuf:"bytes,4,opt,name=dataUpdatedAt,proto3" json:"dataUpdatedAt,omitempty"` Date string `protobuf:"bytes,5,opt,name=date,proto3" json:"date,omitempty"` Days uint32 `protobuf:"varint,6,opt,name=days,proto3" json:"days,omitempty"` - FinalTimes uint32 `protobuf:"varint,7,opt,name=final_times,json=finalTimes,proto3" json:"final_times,omitempty"` + FinalTimes uint32 `protobuf:"varint,7,opt,name=finalTimes,proto3" json:"finalTimes,omitempty"` Name string `protobuf:"bytes,8,opt,name=name,proto3" json:"name,omitempty"` - PmMileage uint32 `protobuf:"varint,9,opt,name=pm_mileage,json=pmMileage,proto3" json:"pm_mileage,omitempty"` - PmSpeed float64 `protobuf:"fixed64,10,opt,name=pm_speed,json=pmSpeed,proto3" json:"pm_speed,omitempty"` + PmMileage uint32 `protobuf:"varint,9,opt,name=pmMileage,proto3" json:"pmMileage,omitempty"` + PmSpeed float64 `protobuf:"fixed64,10,opt,name=pmSpeed,proto3" json:"pmSpeed,omitempty"` Rand uint32 `protobuf:"varint,11,opt,name=rand,proto3" json:"rand,omitempty"` Sex string `protobuf:"bytes,12,opt,name=sex,proto3" json:"sex,omitempty"` Speed float64 `protobuf:"fixed64,13,opt,name=speed,proto3" json:"speed,omitempty"` - TotalMileages uint32 `protobuf:"varint,14,opt,name=total_mileages,json=totalMileages,proto3" json:"total_mileages,omitempty"` - UpdatedAt string `protobuf:"bytes,15,opt,name=updated_at,json=updatedAt,proto3" json:"updated_at,omitempty"` - ValidMileages uint32 `protobuf:"varint,16,opt,name=valid_mileages,json=validMileages,proto3" json:"valid_mileages,omitempty"` - ValidTimes uint32 `protobuf:"varint,17,opt,name=valid_times,json=validTimes,proto3" json:"valid_times,omitempty"` + TotalMileages uint32 `protobuf:"varint,14,opt,name=totalMileages,proto3" json:"totalMileages,omitempty"` + UpdatedAt string `protobuf:"bytes,15,opt,name=updatedAt,proto3" json:"updatedAt,omitempty"` + ValidMileages uint32 `protobuf:"varint,16,opt,name=validMileages,proto3" json:"validMileages,omitempty"` + ValidTimes uint32 `protobuf:"varint,17,opt,name=validTimes,proto3" json:"validTimes,omitempty"` Code string `protobuf:"bytes,18,opt,name=code,proto3" json:"code,omitempty"` } @@ -1196,8 +1236,8 @@ type ElectricData struct { unknownFields protoimpl.UnknownFields Fee string `protobuf:"bytes,1,opt,name=fee,proto3" json:"fee,omitempty"` - RoomId string `protobuf:"bytes,2,opt,name=room_id,json=roomId,proto3" json:"room_id,omitempty"` - RoomName string `protobuf:"bytes,3,opt,name=room_name,json=roomName,proto3" json:"room_name,omitempty"` + RoomId string `protobuf:"bytes,2,opt,name=roomId,proto3" json:"roomId,omitempty"` + RoomName string `protobuf:"bytes,3,opt,name=roomName,proto3" json:"roomName,omitempty"` } func (x *ElectricData) Reset() { @@ -1400,242 +1440,255 @@ var file_aggregatingapis_infostream_v1_infostream_proto_rawDesc = []byte{ 0x0a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x19, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x29, 0x0a, 0x0d, 0x49, 0x6e, 0x66, - 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x22, 0x83, 0x05, 0x0a, 0x0e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x42, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, - 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x1a, 0x84, 0x04, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x40, 0x0a, 0x07, - 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x52, 0x07, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x12, 0x43, - 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, + 0x12, 0x1d, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x1a, + 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x29, 0x0a, + 0x0d, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0xa7, 0x05, 0x0a, 0x0e, 0x49, 0x6e, 0x66, + 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x46, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xa4, 0x04, 0x0a, 0x04, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x44, 0x0a, 0x07, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x52, 0x07, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x08, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x65, 0x78, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x78, - 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x3a, 0x0a, 0x05, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x66, 0x6c, - 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x3d, 0x0a, 0x06, 0x73, 0x75, 0x6e, 0x72, - 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, - 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, - 0x06, 0x73, 0x75, 0x6e, 0x72, 0x75, 0x6e, 0x12, 0x37, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, + 0x75, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x65, 0x78, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, - 0x12, 0x43, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x72, 0x69, 0x63, 0x12, 0x43, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, - 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x67, 0x0a, 0x0b, 0x77, 0x65, - 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, + 0x31, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x65, 0x78, 0x61, 0x6d, + 0x12, 0x3e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x12, 0x41, 0x0a, 0x06, 0x73, 0x75, 0x6e, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x06, 0x73, 0x75, 0x6e, + 0x72, 0x75, 0x6e, 0x12, 0x3b, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0xeb, 0x01, 0x0a, 0x0b, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, - 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x71, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x03, 0x61, 0x71, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x6b, 0x79, - 0x63, 0x6f, 0x6e, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x6b, 0x79, 0x63, 0x6f, 0x6e, 0x4e, 0x6f, 0x77, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x65, 0x6d, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6d, 0x61, 0x78, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, - 0x78, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x74, 0x65, - 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x4e, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x22, 0xb0, 0x01, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x3d, 0x0a, 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x27, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, - 0x43, 0x0a, 0x08, 0x74, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, + 0x12, 0x47, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x52, + 0x08, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x12, 0x47, 0x0a, 0x08, 0x73, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x65, 0x74, 0x74, + 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, + 0x67, 0x73, 0x22, 0x6b, 0x0a, 0x0b, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x77, 0x65, + 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xf7, 0x02, 0x0a, 0x0b, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x10, 0x0a, 0x03, 0x61, 0x71, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x71, + 0x69, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6b, 0x79, 0x63, 0x6f, 0x6e, 0x4e, + 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6b, 0x79, 0x63, 0x6f, 0x6e, + 0x4e, 0x6f, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, + 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, + 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x52, + 0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x52, + 0x61, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x69, + 0x6e, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x52, 0x61, 0x69, 0x6e, 0x43, + 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x69, 0x6e, 0x43, + 0x6f, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x52, 0x61, 0x69, 0x6e, 0x43, + 0x6f, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x65, 0x6d, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x26, 0x0a, 0x0e, 0x74, + 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x4d, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x4e, 0x6f, 0x77, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x65, 0x6d, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb8, 0x01, 0x0a, 0x0c, 0x73, 0x63, + 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x74, 0x6f, 0x64, 0x61, + 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x47, 0x0a, 0x08, 0x74, + 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x74, 0x6f, 0x6d, 0x6f, - 0x72, 0x72, 0x6f, 0x77, 0x22, 0x83, 0x02, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x73, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, - 0x64, 0x5f, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, 0x6e, - 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, - 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, - 0x6f, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x61, 0x0a, 0x08, 0x65, 0x78, - 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x72, 0x72, 0x6f, 0x77, 0x22, 0xfe, 0x01, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, + 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, + 0x6e, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, + 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x65, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, + 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x78, + 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x82, 0x02, 0x0a, + 0x08, 0x65, 0x78, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, + 0x78, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, + 0x78, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x61, 0x74, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x22, 0x67, 0x0a, 0x09, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x03, 0x0a, 0x09, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x28, + 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, + 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0x69, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x52, + 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, - 0x78, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x87, 0x02, - 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, - 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x61, 0x6d, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x65, 0x78, 0x61, 0x6d, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, - 0x65, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x61, 0x74, 0x12, - 0x1f, 0x0a, 0x0b, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x19, 0x0a, 0x08, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0x63, 0x0a, 0x09, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x03, 0x0a, - 0x09, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, - 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, - 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, - 0x75, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, - 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0x65, 0x0a, 0x0a, 0x73, 0x75, - 0x6e, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, + 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0xf6, 0x03, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x01, 0x52, 0x07, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x64, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x61, + 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6d, + 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, + 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6d, 0x53, 0x70, + 0x65, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x70, 0x6d, 0x53, 0x70, 0x65, + 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, + 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x24, + 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x65, + 0x61, 0x67, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, + 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x61, + 0x67, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x61, + 0x6c, 0x69, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3c, 0x0a, 0x08, + 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, - 0x2e, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x82, 0x04, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x6d, 0x5f, 0x6d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x12, - 0x19, 0x0a, 0x08, 0x61, 0x6d, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x07, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x64, 0x61, 0x74, - 0x61, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x69, 0x6e, - 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1d, - 0x0a, 0x0a, 0x70, 0x6d, 0x5f, 0x6d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x12, 0x19, 0x0a, - 0x08, 0x70, 0x6d, 0x5f, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, - 0x07, 0x70, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x64, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, - 0x73, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x14, - 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, - 0x70, 0x65, 0x65, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x6d, 0x69, - 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x75, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x25, 0x0a, 0x0e, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x5f, 0x6d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, - 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3c, 0x0a, 0x08, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x69, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x27, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x56, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, - 0x65, 0x12, 0x17, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x72, 0x6f, - 0x6f, 0x6d, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, - 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x32, 0x91, 0x01, 0x0a, 0x11, 0x49, 0x6e, 0x66, 0x6f, - 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7c, 0x0a, - 0x0d, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x28, - 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x53, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x29, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, - 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x69, 0x6e, - 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x42, 0x82, 0x02, 0x0a, 0x1d, - 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x49, - 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, - 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, - 0x6b, 0x2f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x3b, - 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x46, - 0x49, 0x58, 0xaa, 0x02, 0x19, 0x46, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, - 0x19, 0x46, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, 0x66, - 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x25, 0x46, 0x6c, 0x75, - 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, - 0x74, 0x61, 0xea, 0x02, 0x1b, 0x46, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, - 0x3a, 0x3a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x3a, 0x3a, 0x56, 0x31, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6d, 0x0a, 0x0c, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x0c, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, + 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x0e, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x32, + 0x9a, 0x01, 0x0a, 0x11, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x2c, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x2d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x69, + 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x42, 0x96, 0x02, 0x0a, + 0x21, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x31, 0x42, 0x0f, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, + 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x76, + 0x31, 0xa2, 0x02, 0x03, 0x41, 0x49, 0x58, 0xaa, 0x02, 0x1d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x29, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, + 0x61, 0x74, 0x61, 0xea, 0x02, 0x1f, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1652,43 +1705,43 @@ func file_aggregatingapis_infostream_v1_infostream_proto_rawDescGZIP() []byte { var file_aggregatingapis_infostream_v1_infostream_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_aggregatingapis_infostream_v1_infostream_proto_goTypes = []interface{}{ - (*InfoStreamReq)(nil), // 0: flutterapis.infoStream.v1.InfoStreamReq - (*InfoStreamResp)(nil), // 1: flutterapis.infoStream.v1.InfoStreamResp - (*WeatherResp)(nil), // 2: flutterapis.infoStream.v1.weatherResp - (*WeatherData)(nil), // 3: flutterapis.infoStream.v1.weatherData - (*ScheduleResp)(nil), // 4: flutterapis.infoStream.v1.scheduleResp - (*ScheduleData)(nil), // 5: flutterapis.infoStream.v1.scheduleData - (*ExamResp)(nil), // 6: flutterapis.infoStream.v1.examResp - (*ExamData)(nil), // 7: flutterapis.infoStream.v1.examData - (*ScoreResp)(nil), // 8: flutterapis.infoStream.v1.scoreResp - (*ScoreData)(nil), // 9: flutterapis.infoStream.v1.scoreData - (*SunRunResp)(nil), // 10: flutterapis.infoStream.v1.sunRunResp - (*SunRunData)(nil), // 11: flutterapis.infoStream.v1.sunRunData - (*CardResp)(nil), // 12: flutterapis.infoStream.v1.cardResp - (*ElectricResp)(nil), // 13: flutterapis.infoStream.v1.electricResp - (*ElectricData)(nil), // 14: flutterapis.infoStream.v1.electricData - (*SettingsResp)(nil), // 15: flutterapis.infoStream.v1.settingsResp - (*InfoStreamResp_Data)(nil), // 16: flutterapis.infoStream.v1.InfoStreamResp.Data + (*InfoStreamReq)(nil), // 0: aggregatingapis.infoStream.v1.InfoStreamReq + (*InfoStreamResp)(nil), // 1: aggregatingapis.infoStream.v1.InfoStreamResp + (*WeatherResp)(nil), // 2: aggregatingapis.infoStream.v1.weatherResp + (*WeatherData)(nil), // 3: aggregatingapis.infoStream.v1.weatherData + (*ScheduleResp)(nil), // 4: aggregatingapis.infoStream.v1.scheduleResp + (*ScheduleData)(nil), // 5: aggregatingapis.infoStream.v1.scheduleData + (*ExamResp)(nil), // 6: aggregatingapis.infoStream.v1.examResp + (*ExamData)(nil), // 7: aggregatingapis.infoStream.v1.examData + (*ScoreResp)(nil), // 8: aggregatingapis.infoStream.v1.scoreResp + (*ScoreData)(nil), // 9: aggregatingapis.infoStream.v1.scoreData + (*SunRunResp)(nil), // 10: aggregatingapis.infoStream.v1.sunRunResp + (*SunRunData)(nil), // 11: aggregatingapis.infoStream.v1.sunRunData + (*CardResp)(nil), // 12: aggregatingapis.infoStream.v1.cardResp + (*ElectricResp)(nil), // 13: aggregatingapis.infoStream.v1.electricResp + (*ElectricData)(nil), // 14: aggregatingapis.infoStream.v1.electricData + (*SettingsResp)(nil), // 15: aggregatingapis.infoStream.v1.settingsResp + (*InfoStreamResp_Data)(nil), // 16: aggregatingapis.infoStream.v1.InfoStreamResp.Data } var file_aggregatingapis_infostream_v1_infostream_proto_depIdxs = []int32{ - 16, // 0: flutterapis.infoStream.v1.InfoStreamResp.data:type_name -> flutterapis.infoStream.v1.InfoStreamResp.Data - 3, // 1: flutterapis.infoStream.v1.weatherResp.data:type_name -> flutterapis.infoStream.v1.weatherData - 5, // 2: flutterapis.infoStream.v1.scheduleResp.today:type_name -> flutterapis.infoStream.v1.scheduleData - 5, // 3: flutterapis.infoStream.v1.scheduleResp.tomorrow:type_name -> flutterapis.infoStream.v1.scheduleData - 7, // 4: flutterapis.infoStream.v1.examResp.data:type_name -> flutterapis.infoStream.v1.examData - 9, // 5: flutterapis.infoStream.v1.scoreResp.data:type_name -> flutterapis.infoStream.v1.scoreData - 11, // 6: flutterapis.infoStream.v1.sunRunResp.data:type_name -> flutterapis.infoStream.v1.sunRunData - 14, // 7: flutterapis.infoStream.v1.electricResp.data:type_name -> flutterapis.infoStream.v1.electricData - 2, // 8: flutterapis.infoStream.v1.InfoStreamResp.Data.weather:type_name -> flutterapis.infoStream.v1.weatherResp - 4, // 9: flutterapis.infoStream.v1.InfoStreamResp.Data.schedule:type_name -> flutterapis.infoStream.v1.scheduleResp - 6, // 10: flutterapis.infoStream.v1.InfoStreamResp.Data.exam:type_name -> flutterapis.infoStream.v1.examResp - 8, // 11: flutterapis.infoStream.v1.InfoStreamResp.Data.score:type_name -> flutterapis.infoStream.v1.scoreResp - 10, // 12: flutterapis.infoStream.v1.InfoStreamResp.Data.sunrun:type_name -> flutterapis.infoStream.v1.sunRunResp - 12, // 13: flutterapis.infoStream.v1.InfoStreamResp.Data.card:type_name -> flutterapis.infoStream.v1.cardResp - 13, // 14: flutterapis.infoStream.v1.InfoStreamResp.Data.electric:type_name -> flutterapis.infoStream.v1.electricResp - 15, // 15: flutterapis.infoStream.v1.InfoStreamResp.Data.settings:type_name -> flutterapis.infoStream.v1.settingsResp - 0, // 16: flutterapis.infoStream.v1.InfoStreamService.GetInfoStream:input_type -> flutterapis.infoStream.v1.InfoStreamReq - 1, // 17: flutterapis.infoStream.v1.InfoStreamService.GetInfoStream:output_type -> flutterapis.infoStream.v1.InfoStreamResp + 16, // 0: aggregatingapis.infoStream.v1.InfoStreamResp.data:type_name -> aggregatingapis.infoStream.v1.InfoStreamResp.Data + 3, // 1: aggregatingapis.infoStream.v1.weatherResp.data:type_name -> aggregatingapis.infoStream.v1.weatherData + 5, // 2: aggregatingapis.infoStream.v1.scheduleResp.today:type_name -> aggregatingapis.infoStream.v1.scheduleData + 5, // 3: aggregatingapis.infoStream.v1.scheduleResp.tomorrow:type_name -> aggregatingapis.infoStream.v1.scheduleData + 7, // 4: aggregatingapis.infoStream.v1.examResp.data:type_name -> aggregatingapis.infoStream.v1.examData + 9, // 5: aggregatingapis.infoStream.v1.scoreResp.data:type_name -> aggregatingapis.infoStream.v1.scoreData + 11, // 6: aggregatingapis.infoStream.v1.sunRunResp.data:type_name -> aggregatingapis.infoStream.v1.sunRunData + 14, // 7: aggregatingapis.infoStream.v1.electricResp.data:type_name -> aggregatingapis.infoStream.v1.electricData + 2, // 8: aggregatingapis.infoStream.v1.InfoStreamResp.Data.weather:type_name -> aggregatingapis.infoStream.v1.weatherResp + 4, // 9: aggregatingapis.infoStream.v1.InfoStreamResp.Data.schedule:type_name -> aggregatingapis.infoStream.v1.scheduleResp + 6, // 10: aggregatingapis.infoStream.v1.InfoStreamResp.Data.exam:type_name -> aggregatingapis.infoStream.v1.examResp + 8, // 11: aggregatingapis.infoStream.v1.InfoStreamResp.Data.score:type_name -> aggregatingapis.infoStream.v1.scoreResp + 10, // 12: aggregatingapis.infoStream.v1.InfoStreamResp.Data.sunrun:type_name -> aggregatingapis.infoStream.v1.sunRunResp + 12, // 13: aggregatingapis.infoStream.v1.InfoStreamResp.Data.card:type_name -> aggregatingapis.infoStream.v1.cardResp + 13, // 14: aggregatingapis.infoStream.v1.InfoStreamResp.Data.electric:type_name -> aggregatingapis.infoStream.v1.electricResp + 15, // 15: aggregatingapis.infoStream.v1.InfoStreamResp.Data.settings:type_name -> aggregatingapis.infoStream.v1.settingsResp + 0, // 16: aggregatingapis.infoStream.v1.InfoStreamService.GetInfoStream:input_type -> aggregatingapis.infoStream.v1.InfoStreamReq + 1, // 17: aggregatingapis.infoStream.v1.InfoStreamService.GetInfoStream:output_type -> aggregatingapis.infoStream.v1.InfoStreamResp 17, // [17:18] is the sub-list for method output_type 16, // [16:17] is the sub-list for method input_type 16, // [16:16] is the sub-list for extension type_name diff --git a/aggregatingapis/infostream/v1/infostream.pb.gw.go b/aggregatingapis/infostream/v1/infostream.pb.gw.go index ffc6198..000a120 100644 --- a/aggregatingapis/infostream/v1/infostream.pb.gw.go +++ b/aggregatingapis/infostream/v1/infostream.pb.gw.go @@ -80,7 +80,7 @@ func RegisterInfoStreamServiceHandlerServer(ctx context.Context, mux *runtime.Se ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/flutterapis.infoStream.v1.InfoStreamService/GetInfoStream", runtime.WithHTTPPathPattern("/infoStream/v1")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.infoStream.v1.InfoStreamService/GetInfoStream", runtime.WithHTTPPathPattern("/infoStream/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -143,7 +143,7 @@ func RegisterInfoStreamServiceHandlerClient(ctx context.Context, mux *runtime.Se defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/flutterapis.infoStream.v1.InfoStreamService/GetInfoStream", runtime.WithHTTPPathPattern("/infoStream/v1")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.infoStream.v1.InfoStreamService/GetInfoStream", runtime.WithHTTPPathPattern("/infoStream/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return diff --git a/aggregatingapis/infostream/v1/infostream_grpc.pb.go b/aggregatingapis/infostream/v1/infostream_grpc.pb.go index 77d9e4d..b1ecf7b 100644 --- a/aggregatingapis/infostream/v1/infostream_grpc.pb.go +++ b/aggregatingapis/infostream/v1/infostream_grpc.pb.go @@ -35,7 +35,7 @@ func NewInfoStreamServiceClient(cc grpc.ClientConnInterface) InfoStreamServiceCl func (c *infoStreamServiceClient) GetInfoStream(ctx context.Context, in *InfoStreamReq, opts ...grpc.CallOption) (*InfoStreamResp, error) { out := new(InfoStreamResp) - err := c.cc.Invoke(ctx, "/flutterapis.infoStream.v1.InfoStreamService/GetInfoStream", in, out, opts...) + err := c.cc.Invoke(ctx, "/aggregatingapis.infoStream.v1.InfoStreamService/GetInfoStream", in, out, opts...) if err != nil { return nil, err } @@ -78,7 +78,7 @@ func _InfoStreamService_GetInfoStream_Handler(srv interface{}, ctx context.Conte } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flutterapis.infoStream.v1.InfoStreamService/GetInfoStream", + FullMethod: "/aggregatingapis.infoStream.v1.InfoStreamService/GetInfoStream", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(InfoStreamServiceServer).GetInfoStream(ctx, req.(*InfoStreamReq)) @@ -90,7 +90,7 @@ func _InfoStreamService_GetInfoStream_Handler(srv interface{}, ctx context.Conte // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var InfoStreamService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "flutterapis.infoStream.v1.InfoStreamService", + ServiceName: "aggregatingapis.infoStream.v1.InfoStreamService", HandlerType: (*InfoStreamServiceServer)(nil), Methods: []grpc.MethodDesc{ { diff --git a/campusapis/staff/v1/campus.pb.go b/campusapis/staff/v1/campus.pb.go index 4ad47d0..2e4cc00 100644 --- a/campusapis/staff/v1/campus.pb.go +++ b/campusapis/staff/v1/campus.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.0 -// protoc v3.18.1 +// protoc (unknown) // source: campusapis/staff/v1/campus.proto package staffv1 @@ -3952,9 +3952,21 @@ var file_campusapis_staff_v1_campus_proto_rawDesc = []byte{ 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, - 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x42, 0x17, 0x5a, 0x15, 0x2e, 0x2f, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, - 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, + 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, + 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, + 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, + 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/campusapis/staff/v1/campus.pb.gw.go b/campusapis/staff/v1/campus.pb.gw.go index 832e2e0..9315d22 100644 --- a/campusapis/staff/v1/campus.pb.gw.go +++ b/campusapis/staff/v1/campus.pb.gw.go @@ -2,7 +2,7 @@ // source: campusapis/staff/v1/campus.proto /* -Package v1 is a reverse proxy. +Package staffv1 is a reverse proxy. It translates gRPC into RESTful JSON APIs. */ @@ -13,15 +13,14 @@ import ( "io" "net/http" - "github.com/golang/protobuf/descriptor" - "github.com/golang/protobuf/proto" - "github.com/grpc-ecosystem/grpc-gateway/runtime" - "github.com/grpc-ecosystem/grpc-gateway/utilities" + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" "google.golang.org/grpc" "google.golang.org/grpc/codes" "google.golang.org/grpc/grpclog" "google.golang.org/grpc/metadata" "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" "google.golang.org/protobuf/types/known/emptypb" ) @@ -31,7 +30,6 @@ var _ io.Reader var _ status.Status var _ = runtime.String var _ = utilities.NewDoubleArray -var _ = descriptor.ForMessage var _ = metadata.Join func request_CampusService_GetPersonInfo_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { @@ -574,6 +572,40 @@ func local_request_CampusService_GetStudentExam_1(ctx context.Context, marshaler } +func request_CampusService_PostStudentGateAccess_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PostStudentGateAccessRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.PostStudentGateAccess(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_CampusService_PostStudentGateAccess_0(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq PostStudentGateAccessRequest + var metadata runtime.ServerMetadata + + newReader, berr := utilities.IOReaderFactory(req.Body) + if berr != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", berr) + } + if err := marshaler.NewDecoder(newReader()).Decode(&protoReq); err != nil && err != io.EOF { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.PostStudentGateAccess(ctx, &protoReq) + return msg, metadata, err + +} + func request_CampusService_GetStudentStaySchoolInfo_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq emptypb.Empty var metadata runtime.ServerMetadata @@ -838,12 +870,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetPersonInfo", runtime.WithHTTPPathPattern("/staff/v1/person/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetPersonInfo_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetPersonInfo_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -861,12 +894,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetPersonInfo", runtime.WithHTTPPathPattern("/person/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetPersonInfo_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetPersonInfo_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -884,12 +918,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentInfo", runtime.WithHTTPPathPattern("/staff/v1/student/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentInfo_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentInfo_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -907,12 +942,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentInfo", runtime.WithHTTPPathPattern("/student/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentInfo_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentInfo_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -930,12 +966,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentNeedyInfo", runtime.WithHTTPPathPattern("/staff/v1/student/needy")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentNeedyInfo_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentNeedyInfo_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -953,12 +990,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentNeedyInfo", runtime.WithHTTPPathPattern("/student/needy")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentNeedyInfo_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentNeedyInfo_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -976,12 +1014,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentDormInfo", runtime.WithHTTPPathPattern("/staff/v1/student/dorm")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentDormInfo_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentDormInfo_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -999,12 +1038,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentDormInfo", runtime.WithHTTPPathPattern("/student/dorm")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentDormInfo_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentDormInfo_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1022,12 +1062,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdayInfo", runtime.WithHTTPPathPattern("/staff/v1/student/birthday")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentBirthdayInfo_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentBirthdayInfo_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1045,12 +1086,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdayInfo", runtime.WithHTTPPathPattern("/student/birthday")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentBirthdayInfo_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentBirthdayInfo_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1068,12 +1110,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdaysIn", runtime.WithHTTPPathPattern("/staff/v1/student/birthdays")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentBirthdaysIn_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentBirthdaysIn_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1091,12 +1134,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdaysIn", runtime.WithHTTPPathPattern("/student/birthdays")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentBirthdaysIn_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentBirthdaysIn_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1114,12 +1158,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentRewards", runtime.WithHTTPPathPattern("/staff/v1/student/reward")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentRewards_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentRewards_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1137,12 +1182,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentRewards", runtime.WithHTTPPathPattern("/student/reward")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentRewards_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentRewards_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1160,12 +1206,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", runtime.WithHTTPPathPattern("/staff/v1/student/select")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentCourseSelections_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentCourseSelections_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1183,12 +1230,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", runtime.WithHTTPPathPattern("/student/select")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentCourseSelections_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentCourseSelections_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1206,12 +1254,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentGrade", runtime.WithHTTPPathPattern("/staff/v1/student/grade")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentGrade_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentGrade_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1229,12 +1278,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentGrade", runtime.WithHTTPPathPattern("/student/grade")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentGrade_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentGrade_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1252,12 +1302,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentExam", runtime.WithHTTPPathPattern("/staff/v1/student/exam")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentExam_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentExam_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1275,12 +1326,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentExam", runtime.WithHTTPPathPattern("/student/exam")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentExam_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentExam_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1292,18 +1344,43 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM }) + mux.Handle("POST", pattern_CampusService_PostStudentGateAccess_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/PostStudentGateAccess", runtime.WithHTTPPathPattern("/campusapis.staff.v1.CampusService/PostStudentGateAccess")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CampusService_PostStudentGateAccess_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CampusService_PostStudentGateAccess_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_CampusService_GetStudentStaySchoolInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentStaySchoolInfo", runtime.WithHTTPPathPattern("/staff/v1/student/holidayStay")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentStaySchoolInfo_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentStaySchoolInfo_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1321,12 +1398,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentStaySchoolInfo", runtime.WithHTTPPathPattern("/student/holidayStay")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetStudentStaySchoolInfo_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetStudentStaySchoolInfo_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1344,12 +1422,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanBaseInfo", runtime.WithHTTPPathPattern("/staff/v1/freshman/base")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanBaseInfo_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanBaseInfo_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1367,12 +1446,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanBaseInfo", runtime.WithHTTPPathPattern("/freshman/base")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanBaseInfo_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanBaseInfo_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1390,12 +1470,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanDetail", runtime.WithHTTPPathPattern("/staff/v1/freshman/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanDetail_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanDetail_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1413,12 +1494,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanDetail", runtime.WithHTTPPathPattern("/freshman/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanDetail_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanDetail_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1436,12 +1518,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanRoommates", runtime.WithHTTPPathPattern("/staff/v1/freshman/roommate")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanRoommates_0(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanRoommates_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1459,12 +1542,13 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateIncomingContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanRoommates", runtime.WithHTTPPathPattern("/freshman/roommate")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_CampusService_GetFreshmanRoommates_1(rctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_CampusService_GetFreshmanRoommates_1(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -1521,12 +1605,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetPersonInfo", runtime.WithHTTPPathPattern("/staff/v1/person/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetPersonInfo_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetPersonInfo_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1541,12 +1626,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetPersonInfo", runtime.WithHTTPPathPattern("/person/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetPersonInfo_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetPersonInfo_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1561,12 +1647,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentInfo", runtime.WithHTTPPathPattern("/staff/v1/student/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentInfo_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentInfo_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1581,12 +1668,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentInfo", runtime.WithHTTPPathPattern("/student/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentInfo_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentInfo_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1601,12 +1689,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentNeedyInfo", runtime.WithHTTPPathPattern("/staff/v1/student/needy")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentNeedyInfo_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentNeedyInfo_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1621,12 +1710,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentNeedyInfo", runtime.WithHTTPPathPattern("/student/needy")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentNeedyInfo_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentNeedyInfo_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1641,12 +1731,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentDormInfo", runtime.WithHTTPPathPattern("/staff/v1/student/dorm")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentDormInfo_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentDormInfo_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1661,12 +1752,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentDormInfo", runtime.WithHTTPPathPattern("/student/dorm")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentDormInfo_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentDormInfo_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1681,12 +1773,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdayInfo", runtime.WithHTTPPathPattern("/staff/v1/student/birthday")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentBirthdayInfo_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentBirthdayInfo_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1701,12 +1794,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdayInfo", runtime.WithHTTPPathPattern("/student/birthday")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentBirthdayInfo_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentBirthdayInfo_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1721,12 +1815,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdaysIn", runtime.WithHTTPPathPattern("/staff/v1/student/birthdays")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentBirthdaysIn_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentBirthdaysIn_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1741,12 +1836,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentBirthdaysIn", runtime.WithHTTPPathPattern("/student/birthdays")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentBirthdaysIn_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentBirthdaysIn_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1761,12 +1857,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentRewards", runtime.WithHTTPPathPattern("/staff/v1/student/reward")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentRewards_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentRewards_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1781,12 +1878,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentRewards", runtime.WithHTTPPathPattern("/student/reward")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentRewards_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentRewards_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1801,12 +1899,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", runtime.WithHTTPPathPattern("/staff/v1/student/select")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentCourseSelections_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentCourseSelections_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1821,12 +1920,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentCourseSelections", runtime.WithHTTPPathPattern("/student/select")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentCourseSelections_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentCourseSelections_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1841,12 +1941,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentGrade", runtime.WithHTTPPathPattern("/staff/v1/student/grade")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentGrade_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentGrade_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1861,12 +1962,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentGrade", runtime.WithHTTPPathPattern("/student/grade")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentGrade_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentGrade_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1881,12 +1983,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentExam", runtime.WithHTTPPathPattern("/staff/v1/student/exam")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentExam_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentExam_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1901,12 +2004,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentExam", runtime.WithHTTPPathPattern("/student/exam")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentExam_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentExam_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1917,16 +2021,38 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM }) + mux.Handle("POST", pattern_CampusService_PostStudentGateAccess_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/PostStudentGateAccess", runtime.WithHTTPPathPattern("/campusapis.staff.v1.CampusService/PostStudentGateAccess")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CampusService_PostStudentGateAccess_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CampusService_PostStudentGateAccess_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_CampusService_GetStudentStaySchoolInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentStaySchoolInfo", runtime.WithHTTPPathPattern("/staff/v1/student/holidayStay")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentStaySchoolInfo_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentStaySchoolInfo_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1941,12 +2067,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentStaySchoolInfo", runtime.WithHTTPPathPattern("/student/holidayStay")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetStudentStaySchoolInfo_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetStudentStaySchoolInfo_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1961,12 +2088,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanBaseInfo", runtime.WithHTTPPathPattern("/staff/v1/freshman/base")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanBaseInfo_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanBaseInfo_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -1981,12 +2109,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanBaseInfo", runtime.WithHTTPPathPattern("/freshman/base")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanBaseInfo_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanBaseInfo_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -2001,12 +2130,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanDetail", runtime.WithHTTPPathPattern("/staff/v1/freshman/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanDetail_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanDetail_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -2021,12 +2151,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanDetail", runtime.WithHTTPPathPattern("/freshman/info")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanDetail_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanDetail_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -2041,12 +2172,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanRoommates", runtime.WithHTTPPathPattern("/staff/v1/freshman/roommate")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanRoommates_0(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanRoommates_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -2061,12 +2193,13 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - rctx, err := runtime.AnnotateContext(ctx, mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetFreshmanRoommates", runtime.WithHTTPPathPattern("/freshman/roommate")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_CampusService_GetFreshmanRoommates_1(rctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_CampusService_GetFreshmanRoommates_1(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) @@ -2081,61 +2214,63 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM } var ( - pattern_CampusService_GetPersonInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "person", "info"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetPersonInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "person", "info"}, "")) + + pattern_CampusService_GetPersonInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"person", "info"}, "")) - pattern_CampusService_GetPersonInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"person", "info"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "info"}, "")) - pattern_CampusService_GetStudentInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "info"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "info"}, "")) - pattern_CampusService_GetStudentInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "info"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentNeedyInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "needy"}, "")) - pattern_CampusService_GetStudentNeedyInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "needy"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentNeedyInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "needy"}, "")) - pattern_CampusService_GetStudentNeedyInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "needy"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentDormInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "dorm"}, "")) - pattern_CampusService_GetStudentDormInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "dorm"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentDormInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "dorm"}, "")) - pattern_CampusService_GetStudentDormInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "dorm"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentBirthdayInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "birthday"}, "")) - pattern_CampusService_GetStudentBirthdayInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "birthday"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentBirthdayInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "birthday"}, "")) - pattern_CampusService_GetStudentBirthdayInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "birthday"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentBirthdaysIn_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "birthdays"}, "")) - pattern_CampusService_GetStudentBirthdaysIn_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "birthdays"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentBirthdaysIn_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "birthdays"}, "")) - pattern_CampusService_GetStudentBirthdaysIn_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "birthdays"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentRewards_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "reward"}, "")) - pattern_CampusService_GetStudentRewards_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "reward"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentRewards_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "reward"}, "")) - pattern_CampusService_GetStudentRewards_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "reward"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentCourseSelections_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "select"}, "")) - pattern_CampusService_GetStudentCourseSelections_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "select"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentCourseSelections_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "select"}, "")) - pattern_CampusService_GetStudentCourseSelections_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "select"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentGrade_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "grade"}, "")) - pattern_CampusService_GetStudentGrade_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "grade"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentGrade_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "grade"}, "")) - pattern_CampusService_GetStudentGrade_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "grade"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentExam_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "exam"}, "")) - pattern_CampusService_GetStudentExam_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "exam"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentExam_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "exam"}, "")) - pattern_CampusService_GetStudentExam_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "exam"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_PostStudentGateAccess_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"campusapis.staff.v1.CampusService", "PostStudentGateAccess"}, "")) - pattern_CampusService_GetStudentStaySchoolInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "holidayStay"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentStaySchoolInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "holidayStay"}, "")) - pattern_CampusService_GetStudentStaySchoolInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "holidayStay"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetStudentStaySchoolInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "holidayStay"}, "")) - pattern_CampusService_GetFreshmanBaseInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "base"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetFreshmanBaseInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "base"}, "")) - pattern_CampusService_GetFreshmanBaseInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "base"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetFreshmanBaseInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "base"}, "")) - pattern_CampusService_GetFreshmanDetail_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "info"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetFreshmanDetail_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "info"}, "")) - pattern_CampusService_GetFreshmanDetail_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "info"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetFreshmanDetail_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "info"}, "")) - pattern_CampusService_GetFreshmanRoommates_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "roommate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetFreshmanRoommates_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "freshman", "roommate"}, "")) - pattern_CampusService_GetFreshmanRoommates_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "roommate"}, "", runtime.AssumeColonVerbOpt(true))) + pattern_CampusService_GetFreshmanRoommates_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"freshman", "roommate"}, "")) ) var ( @@ -2179,6 +2314,8 @@ var ( forward_CampusService_GetStudentExam_1 = runtime.ForwardResponseMessage + forward_CampusService_PostStudentGateAccess_0 = runtime.ForwardResponseMessage + forward_CampusService_GetStudentStaySchoolInfo_0 = runtime.ForwardResponseMessage forward_CampusService_GetStudentStaySchoolInfo_1 = runtime.ForwardResponseMessage diff --git a/campusapis/staff/v1/campus_grpc.pb.go b/campusapis/staff/v1/campus_grpc.pb.go index 714a887..9951b7f 100644 --- a/campusapis/staff/v1/campus_grpc.pb.go +++ b/campusapis/staff/v1/campus_grpc.pb.go @@ -1,4 +1,8 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc (unknown) +// source: campusapis/staff/v1/campus.proto package staffv1 @@ -195,7 +199,7 @@ func (c *campusServiceClient) GetFreshmanRoommates(ctx context.Context, in *GetF } // CampusServiceServer is the server API for CampusService service. -// All implementations must embed UnimplementedCampusServiceServer +// All implementations should embed UnimplementedCampusServiceServer // for forward compatibility type CampusServiceServer interface { //获取员工信息 @@ -228,10 +232,9 @@ type CampusServiceServer interface { GetFreshmanDetail(context.Context, *GetFreshmanDetailRequest) (*GetFreshmanDetailResponse, error) //获取新生宿舍信息 GetFreshmanRoommates(context.Context, *GetFreshmanRoommatesRequest) (*GetFreshmanRoommatesResponse, error) - mustEmbedUnimplementedCampusServiceServer() } -// UnimplementedCampusServiceServer must be embedded to have forward compatible implementations. +// UnimplementedCampusServiceServer should be embedded to have forward compatible implementations. type UnimplementedCampusServiceServer struct { } @@ -280,7 +283,6 @@ func (UnimplementedCampusServiceServer) GetFreshmanDetail(context.Context, *GetF func (UnimplementedCampusServiceServer) GetFreshmanRoommates(context.Context, *GetFreshmanRoommatesRequest) (*GetFreshmanRoommatesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetFreshmanRoommates not implemented") } -func (UnimplementedCampusServiceServer) mustEmbedUnimplementedCampusServiceServer() {} // UnsafeCampusServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to CampusServiceServer will diff --git a/consultingapis/wiki/v1/wiki.pb.go b/consultingapis/wiki/v1/wiki.pb.go new file mode 100644 index 0000000..2d395af --- /dev/null +++ b/consultingapis/wiki/v1/wiki.pb.go @@ -0,0 +1,606 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc (unknown) +// source: consultingapis/wiki/v1/wiki.proto + +package wikiv1 + +import ( + _ "google.golang.org/genproto/googleapis/api/annotations" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type DocTokenReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` +} + +func (x *DocTokenReq) Reset() { + *x = DocTokenReq{} + if protoimpl.UnsafeEnabled { + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DocTokenReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DocTokenReq) ProtoMessage() {} + +func (x *DocTokenReq) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DocTokenReq.ProtoReflect.Descriptor instead. +func (*DocTokenReq) Descriptor() ([]byte, []int) { + return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{0} +} + +func (x *DocTokenReq) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +type DocTokenResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` + Revision uint32 `protobuf:"varint,2,opt,name=revision,proto3" json:"revision,omitempty"` +} + +func (x *DocTokenResp) Reset() { + *x = DocTokenResp{} + if protoimpl.UnsafeEnabled { + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DocTokenResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DocTokenResp) ProtoMessage() {} + +func (x *DocTokenResp) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DocTokenResp.ProtoReflect.Descriptor instead. +func (*DocTokenResp) Descriptor() ([]byte, []int) { + return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{1} +} + +func (x *DocTokenResp) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *DocTokenResp) GetRevision() uint32 { + if x != nil { + return x.Revision + } + return 0 +} + +type NodeReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SpaceId string `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"` + ParentNodeToken string `protobuf:"bytes,2,opt,name=parent_node_token,json=parentNodeToken,proto3" json:"parent_node_token,omitempty"` +} + +func (x *NodeReq) Reset() { + *x = NodeReq{} + if protoimpl.UnsafeEnabled { + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeReq) ProtoMessage() {} + +func (x *NodeReq) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodeReq.ProtoReflect.Descriptor instead. +func (*NodeReq) Descriptor() ([]byte, []int) { + return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{2} +} + +func (x *NodeReq) GetSpaceId() string { + if x != nil { + return x.SpaceId + } + return "" +} + +func (x *NodeReq) GetParentNodeToken() string { + if x != nil { + return x.ParentNodeToken + } + return "" +} + +type NodeResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Items []*NodeItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` + HasMore bool `protobuf:"varint,3,opt,name=has_more,json=hasMore,proto3" json:"has_more,omitempty"` +} + +func (x *NodeResp) Reset() { + *x = NodeResp{} + if protoimpl.UnsafeEnabled { + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeResp) ProtoMessage() {} + +func (x *NodeResp) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodeResp.ProtoReflect.Descriptor instead. +func (*NodeResp) Descriptor() ([]byte, []int) { + return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{3} +} + +func (x *NodeResp) GetItems() []*NodeItem { + if x != nil { + return x.Items + } + return nil +} + +func (x *NodeResp) GetPageToken() string { + if x != nil { + return x.PageToken + } + return "" +} + +func (x *NodeResp) GetHasMore() bool { + if x != nil { + return x.HasMore + } + return false +} + +type NodeItem struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SpaceId string `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"` + NodeToken string `protobuf:"bytes,2,opt,name=node_token,json=nodeToken,proto3" json:"node_token,omitempty"` + ObjToken string `protobuf:"bytes,3,opt,name=obj_token,json=objToken,proto3" json:"obj_token,omitempty"` + ObjType string `protobuf:"bytes,4,opt,name=obj_type,json=objType,proto3" json:"obj_type,omitempty"` + ParentNodeToken string `protobuf:"bytes,5,opt,name=parent_node_token,json=parentNodeToken,proto3" json:"parent_node_token,omitempty"` + NodeType string `protobuf:"bytes,6,opt,name=node_type,json=nodeType,proto3" json:"node_type,omitempty"` + OriginNodeToken string `protobuf:"bytes,7,opt,name=origin_node_token,json=originNodeToken,proto3" json:"origin_node_token,omitempty"` + OriginSpaceId string `protobuf:"bytes,8,opt,name=origin_space_id,json=originSpaceId,proto3" json:"origin_space_id,omitempty"` + HasChild bool `protobuf:"varint,9,opt,name=has_child,json=hasChild,proto3" json:"has_child,omitempty"` + Title string `protobuf:"bytes,10,opt,name=title,proto3" json:"title,omitempty"` + ObjCreateTime string `protobuf:"bytes,11,opt,name=obj_create_time,json=objCreateTime,proto3" json:"obj_create_time,omitempty"` + ObjEditTime string `protobuf:"bytes,12,opt,name=obj_edit_time,json=objEditTime,proto3" json:"obj_edit_time,omitempty"` + NodeCreateTime string `protobuf:"bytes,13,opt,name=node_create_time,json=nodeCreateTime,proto3" json:"node_create_time,omitempty"` + SubNode []*NodeItem `protobuf:"bytes,14,rep,name=subNode,proto3" json:"subNode,omitempty"` +} + +func (x *NodeItem) Reset() { + *x = NodeItem{} + if protoimpl.UnsafeEnabled { + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *NodeItem) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*NodeItem) ProtoMessage() {} + +func (x *NodeItem) ProtoReflect() protoreflect.Message { + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use NodeItem.ProtoReflect.Descriptor instead. +func (*NodeItem) Descriptor() ([]byte, []int) { + return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{4} +} + +func (x *NodeItem) GetSpaceId() string { + if x != nil { + return x.SpaceId + } + return "" +} + +func (x *NodeItem) GetNodeToken() string { + if x != nil { + return x.NodeToken + } + return "" +} + +func (x *NodeItem) GetObjToken() string { + if x != nil { + return x.ObjToken + } + return "" +} + +func (x *NodeItem) GetObjType() string { + if x != nil { + return x.ObjType + } + return "" +} + +func (x *NodeItem) GetParentNodeToken() string { + if x != nil { + return x.ParentNodeToken + } + return "" +} + +func (x *NodeItem) GetNodeType() string { + if x != nil { + return x.NodeType + } + return "" +} + +func (x *NodeItem) GetOriginNodeToken() string { + if x != nil { + return x.OriginNodeToken + } + return "" +} + +func (x *NodeItem) GetOriginSpaceId() string { + if x != nil { + return x.OriginSpaceId + } + return "" +} + +func (x *NodeItem) GetHasChild() bool { + if x != nil { + return x.HasChild + } + return false +} + +func (x *NodeItem) GetTitle() string { + if x != nil { + return x.Title + } + return "" +} + +func (x *NodeItem) GetObjCreateTime() string { + if x != nil { + return x.ObjCreateTime + } + return "" +} + +func (x *NodeItem) GetObjEditTime() string { + if x != nil { + return x.ObjEditTime + } + return "" +} + +func (x *NodeItem) GetNodeCreateTime() string { + if x != nil { + return x.NodeCreateTime + } + return "" +} + +func (x *NodeItem) GetSubNode() []*NodeItem { + if x != nil { + return x.SubNode + } + return nil +} + +var File_consultingapis_wiki_v1_wiki_proto protoreflect.FileDescriptor + +var file_consultingapis_wiki_v1_wiki_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x23, 0x0a, 0x0b, 0x44, 0x6f, 0x63, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x44, + 0x0a, 0x0c, 0x44, 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, + 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, + 0x19, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, + 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7c, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x36, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x49, + 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, + 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, + 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, + 0x4d, 0x6f, 0x72, 0x65, 0x22, 0xfe, 0x03, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, + 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6f, + 0x62, 0x6a, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6f, 0x62, 0x6a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x62, 0x6a, 0x5f, + 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, + 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4e, + 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x62, 0x6a, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x62, + 0x6a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, + 0x62, 0x6a, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x62, 0x6a, 0x45, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x28, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x73, 0x75, 0x62, + 0x4e, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x73, 0x75, + 0x62, 0x4e, 0x6f, 0x64, 0x65, 0x32, 0xed, 0x01, 0x0a, 0x0b, 0x57, 0x69, 0x6b, 0x69, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x74, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x44, 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x77, 0x69, 0x6b, 0x69, + 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x0b, 0x47, + 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x16, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x42, 0xe0, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, + 0x69, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x57, 0x69, 0x6b, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, + 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, + 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, + 0x64, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x77, 0x69, 0x6b, 0x69, 0x76, 0x31, + 0xa2, 0x02, 0x03, 0x43, 0x57, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x57, 0x69, 0x6b, 0x69, 0x2e, 0x56, 0x31, 0xca, + 0x02, 0x16, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x5c, 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, + 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, + 0x57, 0x69, 0x6b, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_consultingapis_wiki_v1_wiki_proto_rawDescOnce sync.Once + file_consultingapis_wiki_v1_wiki_proto_rawDescData = file_consultingapis_wiki_v1_wiki_proto_rawDesc +) + +func file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP() []byte { + file_consultingapis_wiki_v1_wiki_proto_rawDescOnce.Do(func() { + file_consultingapis_wiki_v1_wiki_proto_rawDescData = protoimpl.X.CompressGZIP(file_consultingapis_wiki_v1_wiki_proto_rawDescData) + }) + return file_consultingapis_wiki_v1_wiki_proto_rawDescData +} + +var file_consultingapis_wiki_v1_wiki_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_consultingapis_wiki_v1_wiki_proto_goTypes = []interface{}{ + (*DocTokenReq)(nil), // 0: consultingapis.wiki.v1.DocTokenReq + (*DocTokenResp)(nil), // 1: consultingapis.wiki.v1.DocTokenResp + (*NodeReq)(nil), // 2: consultingapis.wiki.v1.nodeReq + (*NodeResp)(nil), // 3: consultingapis.wiki.v1.nodeResp + (*NodeItem)(nil), // 4: consultingapis.wiki.v1.nodeItem +} +var file_consultingapis_wiki_v1_wiki_proto_depIdxs = []int32{ + 4, // 0: consultingapis.wiki.v1.nodeResp.items:type_name -> consultingapis.wiki.v1.nodeItem + 4, // 1: consultingapis.wiki.v1.nodeItem.subNode:type_name -> consultingapis.wiki.v1.nodeItem + 0, // 2: consultingapis.wiki.v1.WikiService.GetDocContent:input_type -> consultingapis.wiki.v1.DocTokenReq + 2, // 3: consultingapis.wiki.v1.WikiService.GetNodeList:input_type -> consultingapis.wiki.v1.nodeReq + 1, // 4: consultingapis.wiki.v1.WikiService.GetDocContent:output_type -> consultingapis.wiki.v1.DocTokenResp + 3, // 5: consultingapis.wiki.v1.WikiService.GetNodeList:output_type -> consultingapis.wiki.v1.nodeResp + 4, // [4:6] is the sub-list for method output_type + 2, // [2:4] is the sub-list for method input_type + 2, // [2:2] is the sub-list for extension type_name + 2, // [2:2] is the sub-list for extension extendee + 0, // [0:2] is the sub-list for field type_name +} + +func init() { file_consultingapis_wiki_v1_wiki_proto_init() } +func file_consultingapis_wiki_v1_wiki_proto_init() { + if File_consultingapis_wiki_v1_wiki_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_consultingapis_wiki_v1_wiki_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DocTokenReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_consultingapis_wiki_v1_wiki_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DocTokenResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_consultingapis_wiki_v1_wiki_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_consultingapis_wiki_v1_wiki_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_consultingapis_wiki_v1_wiki_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*NodeItem); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_consultingapis_wiki_v1_wiki_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_consultingapis_wiki_v1_wiki_proto_goTypes, + DependencyIndexes: file_consultingapis_wiki_v1_wiki_proto_depIdxs, + MessageInfos: file_consultingapis_wiki_v1_wiki_proto_msgTypes, + }.Build() + File_consultingapis_wiki_v1_wiki_proto = out.File + file_consultingapis_wiki_v1_wiki_proto_rawDesc = nil + file_consultingapis_wiki_v1_wiki_proto_goTypes = nil + file_consultingapis_wiki_v1_wiki_proto_depIdxs = nil +} diff --git a/consultingapis/wiki/v1/wiki.pb.gw.go b/consultingapis/wiki/v1/wiki.pb.gw.go new file mode 100644 index 0000000..22ec5ab --- /dev/null +++ b/consultingapis/wiki/v1/wiki.pb.gw.go @@ -0,0 +1,256 @@ +// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. +// source: consultingapis/wiki/v1/wiki.proto + +/* +Package wikiv1 is a reverse proxy. + +It translates gRPC into RESTful JSON APIs. +*/ +package wikiv1 + +import ( + "context" + "io" + "net/http" + + "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" + "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" + "google.golang.org/grpc" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/grpclog" + "google.golang.org/grpc/metadata" + "google.golang.org/grpc/status" + "google.golang.org/protobuf/proto" +) + +// Suppress "imported and not used" errors +var _ codes.Code +var _ io.Reader +var _ status.Status +var _ = runtime.String +var _ = utilities.NewDoubleArray +var _ = metadata.Join + +var ( + filter_WikiService_GetDocContent_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_WikiService_GetDocContent_0(ctx context.Context, marshaler runtime.Marshaler, client WikiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DocTokenReq + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WikiService_GetDocContent_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetDocContent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_WikiService_GetDocContent_0(ctx context.Context, marshaler runtime.Marshaler, server WikiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq DocTokenReq + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WikiService_GetDocContent_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetDocContent(ctx, &protoReq) + return msg, metadata, err + +} + +var ( + filter_WikiService_GetNodeList_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} +) + +func request_WikiService_GetNodeList_0(ctx context.Context, marshaler runtime.Marshaler, client WikiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq NodeReq + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WikiService_GetNodeList_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := client.GetNodeList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_WikiService_GetNodeList_0(ctx context.Context, marshaler runtime.Marshaler, server WikiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq NodeReq + var metadata runtime.ServerMetadata + + if err := req.ParseForm(); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WikiService_GetNodeList_0); err != nil { + return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) + } + + msg, err := server.GetNodeList(ctx, &protoReq) + return msg, metadata, err + +} + +// RegisterWikiServiceHandlerServer registers the http handlers for service WikiService to "mux". +// UnaryRPC :call WikiServiceServer directly. +// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterWikiServiceHandlerFromEndpoint instead. +func RegisterWikiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server WikiServiceServer) error { + + mux.Handle("GET", pattern_WikiService_GetDocContent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_WikiService_GetDocContent_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_WikiService_GetDocContent_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_WikiService_GetNodeList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_WikiService_GetNodeList_0(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_WikiService_GetNodeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +// RegisterWikiServiceHandlerFromEndpoint is same as RegisterWikiServiceHandler but +// automatically dials to "endpoint" and closes the connection when "ctx" gets done. +func RegisterWikiServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { + conn, err := grpc.Dial(endpoint, opts...) + if err != nil { + return err + } + defer func() { + if err != nil { + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + return + } + go func() { + <-ctx.Done() + if cerr := conn.Close(); cerr != nil { + grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) + } + }() + }() + + return RegisterWikiServiceHandler(ctx, mux, conn) +} + +// RegisterWikiServiceHandler registers the http handlers for service WikiService to "mux". +// The handlers forward requests to the grpc endpoint over "conn". +func RegisterWikiServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterWikiServiceHandlerClient(ctx, mux, NewWikiServiceClient(conn)) +} + +// RegisterWikiServiceHandlerClient registers the http handlers for service WikiService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "WikiServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "WikiServiceClient" +// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in +// "WikiServiceClient" to call the correct interceptors. +func RegisterWikiServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client WikiServiceClient) error { + + mux.Handle("GET", pattern_WikiService_GetDocContent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_WikiService_GetDocContent_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_WikiService_GetDocContent_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + mux.Handle("GET", pattern_WikiService_GetNodeList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_WikiService_GetNodeList_0(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_WikiService_GetNodeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + + return nil +} + +var ( + pattern_WikiService_GetDocContent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"wiki", "v1", "content"}, "")) + + pattern_WikiService_GetNodeList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"wiki", "v1", "nodes"}, "")) +) + +var ( + forward_WikiService_GetDocContent_0 = runtime.ForwardResponseMessage + + forward_WikiService_GetNodeList_0 = runtime.ForwardResponseMessage +) diff --git a/consultingapis/wiki/v1/wiki_grpc.pb.go b/consultingapis/wiki/v1/wiki_grpc.pb.go new file mode 100644 index 0000000..feaf34f --- /dev/null +++ b/consultingapis/wiki/v1/wiki_grpc.pb.go @@ -0,0 +1,139 @@ +// Code generated by protoc-gen-go-grpc. DO NOT EDIT. +// versions: +// - protoc-gen-go-grpc v1.2.0 +// - protoc (unknown) +// source: consultingapis/wiki/v1/wiki.proto + +package wikiv1 + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" +) + +// This is a compile-time assertion to ensure that this generated file +// is compatible with the grpc package it is being compiled against. +// Requires gRPC-Go v1.32.0 or later. +const _ = grpc.SupportPackageIsVersion7 + +// WikiServiceClient is the client API for WikiService service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. +type WikiServiceClient interface { + GetDocContent(ctx context.Context, in *DocTokenReq, opts ...grpc.CallOption) (*DocTokenResp, error) + GetNodeList(ctx context.Context, in *NodeReq, opts ...grpc.CallOption) (*NodeResp, error) +} + +type wikiServiceClient struct { + cc grpc.ClientConnInterface +} + +func NewWikiServiceClient(cc grpc.ClientConnInterface) WikiServiceClient { + return &wikiServiceClient{cc} +} + +func (c *wikiServiceClient) GetDocContent(ctx context.Context, in *DocTokenReq, opts ...grpc.CallOption) (*DocTokenResp, error) { + out := new(DocTokenResp) + err := c.cc.Invoke(ctx, "/consultingapis.wiki.v1.WikiService/GetDocContent", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *wikiServiceClient) GetNodeList(ctx context.Context, in *NodeReq, opts ...grpc.CallOption) (*NodeResp, error) { + out := new(NodeResp) + err := c.cc.Invoke(ctx, "/consultingapis.wiki.v1.WikiService/GetNodeList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// WikiServiceServer is the server API for WikiService service. +// All implementations should embed UnimplementedWikiServiceServer +// for forward compatibility +type WikiServiceServer interface { + GetDocContent(context.Context, *DocTokenReq) (*DocTokenResp, error) + GetNodeList(context.Context, *NodeReq) (*NodeResp, error) +} + +// UnimplementedWikiServiceServer should be embedded to have forward compatible implementations. +type UnimplementedWikiServiceServer struct { +} + +func (UnimplementedWikiServiceServer) GetDocContent(context.Context, *DocTokenReq) (*DocTokenResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetDocContent not implemented") +} +func (UnimplementedWikiServiceServer) GetNodeList(context.Context, *NodeReq) (*NodeResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetNodeList not implemented") +} + +// UnsafeWikiServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to WikiServiceServer will +// result in compilation errors. +type UnsafeWikiServiceServer interface { + mustEmbedUnimplementedWikiServiceServer() +} + +func RegisterWikiServiceServer(s grpc.ServiceRegistrar, srv WikiServiceServer) { + s.RegisterService(&WikiService_ServiceDesc, srv) +} + +func _WikiService_GetDocContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DocTokenReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WikiServiceServer).GetDocContent(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/consultingapis.wiki.v1.WikiService/GetDocContent", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WikiServiceServer).GetDocContent(ctx, req.(*DocTokenReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _WikiService_GetNodeList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(NodeReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(WikiServiceServer).GetNodeList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/consultingapis.wiki.v1.WikiService/GetNodeList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(WikiServiceServer).GetNodeList(ctx, req.(*NodeReq)) + } + return interceptor(ctx, in, info, handler) +} + +// WikiService_ServiceDesc is the grpc.ServiceDesc for WikiService service. +// It's only intended for direct use with grpc.RegisterService, +// and not to be introspected or modified (even as a copy) +var WikiService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "consultingapis.wiki.v1.WikiService", + HandlerType: (*WikiServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetDocContent", + Handler: _WikiService_GetDocContent_Handler, + }, + { + MethodName: "GetNodeList", + Handler: _WikiService_GetNodeList_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "consultingapis/wiki/v1/wiki.proto", +} diff --git a/docs/swagger/aggregatingapis/faq/v1/faq.swagger.json b/docs/swagger/aggregatingapis/faq/v1/faq.swagger.json new file mode 100644 index 0000000..d1830d5 --- /dev/null +++ b/docs/swagger/aggregatingapis/faq/v1/faq.swagger.json @@ -0,0 +1,469 @@ +{ + "swagger": "2.0", + "info": { + "title": "aggregatingapis/faq/v1/faq.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "FAQService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/faq/v1": { + "get": { + "operationId": "FAQService_GetFAQ", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetFAQResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "faqId", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "FAQService" + ] + }, + "delete": { + "operationId": "FAQService_DeleteFAQ", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DeleteFAQResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "faqId", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "FAQService" + ] + }, + "post": { + "operationId": "FAQService_CreateFAQ", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1CreateFAQResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1FAQInfo" + } + } + ], + "tags": [ + "FAQService" + ] + }, + "patch": { + "operationId": "FAQService_UpdateFAQ", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1UpdateFAQResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1FAQInfo" + } + }, + { + "name": "faqId", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "FAQService" + ] + } + }, + "/faq/v1/image": { + "get": { + "operationId": "FAQService_GetFAQImage", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetFAQImageResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "faqId", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "imageKey", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "FAQService" + ] + } + }, + "/faq/v1/search": { + "get": { + "operationId": "FAQService_SearchFAQAnswerRichtext", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1SearchFAQAnswerRichtextResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "key", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "FAQService" + ] + } + } + }, + "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string", + "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + } + }, + "additionalProperties": {}, + "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "v1AnswerRichtext": { + "type": "object", + "properties": { + "type": { + "type": "string", + "title": "text, hyperlink, img, line break" + }, + "content": { + "type": "string", + "title": "text/line break" + }, + "text": { + "type": "string", + "title": "hyperlink" + }, + "url": { + "type": "string" + }, + "src": { + "type": "string", + "title": "img" + }, + "key": { + "type": "string" + }, + "width": { + "type": "integer", + "format": "int64" + }, + "height": { + "type": "integer", + "format": "int64" + } + } + }, + "v1Category": { + "type": "object", + "properties": { + "categoryId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "name": { + "type": "string" + }, + "parentId": { + "type": "string" + }, + "helpdeskId": { + "type": "string" + }, + "language": { + "type": "string" + } + } + }, + "v1CreateFAQResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1FAQ" + } + } + }, + "v1DeleteFAQResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1FAQ": { + "type": "object", + "properties": { + "faqId": { + "type": "string" + }, + "id": { + "type": "string" + }, + "helpdeskId": { + "type": "string" + }, + "question": { + "type": "string" + }, + "answer": { + "type": "string" + }, + "answerRichtext": { + "type": "string" + }, + "createTime": { + "type": "integer", + "format": "int64" + }, + "updateTime": { + "type": "integer", + "format": "int64" + }, + "categories": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Category" + } + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + }, + "expireTime": { + "type": "integer", + "format": "int64" + }, + "updateUser": { + "$ref": "#/definitions/v1User" + }, + "createUser": { + "$ref": "#/definitions/v1User" + } + } + }, + "v1FAQInfo": { + "type": "object", + "properties": { + "categoryId": { + "type": "string" + }, + "question": { + "type": "string" + }, + "answer": { + "type": "string" + }, + "answerRichtext": { + "type": "string" + }, + "tags": { + "type": "array", + "items": { + "type": "string" + } + } + } + }, + "v1GetFAQImageResponse": { + "type": "object", + "properties": { + "image": { + "type": "string", + "format": "byte" + } + } + }, + "v1GetFAQResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1FAQ" + } + } + }, + "v1SearchFAQAnswerRichtextResponse": { + "type": "object", + "properties": { + "faqId": { + "type": "string" + }, + "answer": { + "type": "array", + "items": { + "$ref": "#/definitions/v1AnswerRichtext" + } + } + } + }, + "v1UpdateFAQResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1FAQ" + } + } + }, + "v1User": { + "type": "object", + "properties": { + "id": { + "type": "string" + }, + "avatarUrl": { + "type": "string" + }, + "name": { + "type": "string" + } + } + } + } +} diff --git a/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json b/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json index cb2411e..0c4443f 100644 --- a/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json +++ b/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json @@ -429,17 +429,34 @@ "skyconNow": { "type": "string" }, - "temperatureMax": { + "isRain": { + "type": "boolean" + }, + "willStop": { + "type": "boolean" + }, + "willRain": { + "type": "boolean" + }, + "RainContinue": { "type": "integer", "format": "int64" }, - "temperatureMin": { + "RainCome": { "type": "integer", "format": "int64" }, + "temperatureMax": { + "type": "number", + "format": "float" + }, + "temperatureMin": { + "type": "number", + "format": "float" + }, "temperatureNow": { - "type": "integer", - "format": "int64" + "type": "number", + "format": "float" }, "timestamp": { "type": "integer", diff --git a/docs/swagger/campusapis/health/v1/health.swagger.json b/docs/swagger/campusapis/health/v1/health.swagger.json index 017cf8f..8a0867c 100644 --- a/docs/swagger/campusapis/health/v1/health.swagger.json +++ b/docs/swagger/campusapis/health/v1/health.swagger.json @@ -124,12 +124,9 @@ "operationId": "HealthService_GetCheckinRecords2", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetCheckinRecordResponse" - } + "$ref": "#/definitions/v1GetCheckinRecordsResponse" } }, "default": { @@ -196,8 +193,7 @@ "200": { "description": "A successful response.", "schema": { - "type": "object", - "properties": {} + "$ref": "#/definitions/v1PostCheckinPhoneResponse" } }, "default": { @@ -298,12 +294,9 @@ "operationId": "HealthService_GetCheckinRecords", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetCheckinRecordResponse" - } + "$ref": "#/definitions/v1GetCheckinRecordsResponse" } }, "default": { @@ -347,9 +340,9 @@ "operationId": "HealthService_GetNucleicAcidTestLatest", "responses": { "200": { - "description": "", + "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1NucleicAcidTest" + "$ref": "#/definitions/v1GetNucleicAcidTestLatestResponse" } }, "default": { @@ -416,8 +409,7 @@ "200": { "description": "A successful response.", "schema": { - "type": "object", - "properties": {} + "$ref": "#/definitions/v1PostCheckinPhoneResponse" } }, "default": { @@ -504,18 +496,7 @@ } } }, - "v1GetCheckinPhoneResponse": { - "type": "object", - "properties": { - "Phone": { - "type": "string" - }, - "StaffID": { - "type": "string" - } - } - }, - "v1GetCheckinRecordResponse": { + "v1CheckinRecord": { "type": "object", "properties": { "id": { @@ -584,18 +565,152 @@ }, "title": "健康打卡记录" }, + "v1GetCheckinPhoneResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1GetCheckinPhoneResponseData" + } + } + }, + "v1GetCheckinPhoneResponseData": { + "type": "object", + "properties": { + "Phone": { + "type": "string" + }, + "StaffID": { + "type": "string" + } + } + }, + "v1GetCheckinRecordResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1CheckinRecord" + } + } + }, "v1GetCheckinRecordsResponse": { "type": "object", "properties": { - "items": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { "type": "array", "items": { - "$ref": "#/definitions/v1GetCheckinRecordResponse" + "$ref": "#/definitions/v1CheckinRecord" } } } }, "v1GetHealthCodeResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1HealthCodeRaw" + } + }, + "title": "健康码老" + }, + "v1GetNucleicAcidTestLatestResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1NucleicAcidTest" + } + }, + "title": "最新核酸检测返回体" + }, + "v1GetNucleicAcidTestsResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1GetNucleicAcidTestsResponseData" + } + }, + "title": "历史核酸检测返回体" + }, + "v1GetNucleicAcidTestsResponseData": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/v1NucleicAcidTest" + } + } + } + }, + "v1GetVaccineRecordsResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1GetVaccineRecordsResponseData" + } + }, + "title": "疫苗接种记录返回" + }, + "v1GetVaccineRecordsResponseData": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/v1VaccineRecord" + } + } + } + }, + "v1HealthCodeRaw": { "type": "object", "properties": { "staffId": { @@ -635,41 +750,7 @@ "type": "string", "title": "服务器更新时间(服务器获取到的时间)\n通常是每日更新一次" } - }, - "title": "健康码老" - }, - "v1GetNucleicAcidTestLatestResponse": { - "type": "object", - "properties": { - "item": { - "$ref": "#/definitions/v1NucleicAcidTest" - } - }, - "title": "最新核酸检测返回体" - }, - "v1GetNucleicAcidTestsResponse": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1NucleicAcidTest" - } - } - }, - "title": "历史核酸检测返回体" - }, - "v1GetVaccineRecordsResponse": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1VaccineRecord" - } - } - }, - "title": "疫苗接种记录返回" + } }, "v1NucleicAcidTest": { "type": "object", @@ -697,6 +778,21 @@ } } }, + "v1PostCheckinPhoneResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, "v1PostCheckinRecordBody": { "type": "object", "properties": { @@ -728,6 +824,21 @@ } }, "v1PostCheckinRecordResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1PostCheckinRecordResponseData" + } + } + }, + "v1PostCheckinRecordResponseData": { "type": "object", "properties": { "code": { @@ -740,7 +851,8 @@ "message": { "type": "string" } - } + }, + "title": "学校健康打卡服务返回值" }, "v1VaccineRecord": { "type": "object", diff --git a/docs/swagger/campusapis/staff/v1/campus.swagger.json b/docs/swagger/campusapis/staff/v1/campus.swagger.json index 04b0674..3d4e21f 100644 --- a/docs/swagger/campusapis/staff/v1/campus.swagger.json +++ b/docs/swagger/campusapis/staff/v1/campus.swagger.json @@ -439,6 +439,45 @@ ] } }, + "/staff/v1/student/exam": { + "get": { + "summary": "获取学生考试信息", + "operationId": "CampusService_GetStudentExam", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetStudentExamResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "schoolYear", + "description": "学年,只支持一种格式,例:2021-2022学年,应传 2021", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "semester", + "description": "学期,枚举:第一学期 | 第二学期", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "CampusService" + ] + } + }, "/staff/v1/student/grade": { "get": { "summary": "获取学生成绩信息", @@ -726,6 +765,45 @@ ] } }, + "/student/exam": { + "get": { + "summary": "获取学生考试信息", + "operationId": "CampusService_GetStudentExam2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetStudentExamResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "schoolYear", + "description": "学年,只支持一种格式,例:2021-2022学年,应传 2021", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "semester", + "description": "学期,枚举:第一学期 | 第二学期", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "CampusService" + ] + } + }, "/student/grade": { "get": { "summary": "获取学生成绩信息", @@ -1275,6 +1353,26 @@ }, "title": "查询学生寝室信息返回体" }, + "v1GetStudentExamResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/v1StudentExam" + }, + "title": "考试详情列表" + } + }, + "title": "查询学生考试返回体" + }, "v1GetStudentGradeResponse": { "type": "object", "properties": { @@ -1472,6 +1570,48 @@ }, "title": "选课详情" }, + "v1StudentExam": { + "type": "object", + "properties": { + "classroom": { + "type": "string", + "title": "教室" + }, + "course": { + "type": "string", + "title": "课程" + }, + "examTime": { + "type": "string", + "title": "考试时间" + }, + "examType": { + "type": "string", + "title": "考试类型" + }, + "schoolYear": { + "type": "string", + "title": "学年" + }, + "semester": { + "type": "string", + "title": "学期" + }, + "seat": { + "type": "string", + "title": "座位号" + }, + "selectCode": { + "type": "string", + "title": "课程号" + }, + "staffId": { + "type": "string", + "title": "学号" + } + }, + "title": "考试详情" + }, "v1StudentGrade": { "type": "object", "properties": { From f201531700b8378e87c2a8417ca44ba32bc507f9 Mon Sep 17 00:00:00 2001 From: sunalwaysknows <86180691+sunalwaysknows@users.noreply.github.com> Date: Tue, 28 Jun 2022 18:32:29 +0800 Subject: [PATCH 10/25] update: require_unimplemented_servers --- {consultingapis => aggregatingapis}/wiki/v1/wiki.proto | 4 ++-- buf.gen.yaml | 1 - 2 files changed, 2 insertions(+), 3 deletions(-) rename {consultingapis => aggregatingapis}/wiki/v1/wiki.proto (92%) diff --git a/consultingapis/wiki/v1/wiki.proto b/aggregatingapis/wiki/v1/wiki.proto similarity index 92% rename from consultingapis/wiki/v1/wiki.proto rename to aggregatingapis/wiki/v1/wiki.proto index 7cc6492..16afbf3 100644 --- a/consultingapis/wiki/v1/wiki.proto +++ b/aggregatingapis/wiki/v1/wiki.proto @@ -1,10 +1,10 @@ syntax = "proto3"; -package consultingapis.wiki.v1; +package aggregatingapis.wiki.v1; import "google/api/annotations.proto"; -option go_package = "./consultingapis/wiki/v1"; +option go_package = "./aggregatingapis/wiki/v1"; service WikiService { rpc GetDocContent(DocTokenReq) returns (DocTokenResp) { diff --git a/buf.gen.yaml b/buf.gen.yaml index ee363f7..a8ee8fc 100644 --- a/buf.gen.yaml +++ b/buf.gen.yaml @@ -14,7 +14,6 @@ plugins: out: . opt: - paths=source_relative - - require_unimplemented_servers=false - name: grpc-gateway out: . opt: From 65c1811af5188272e630851f2cb9a6eabb552d44 Mon Sep 17 00:00:00 2001 From: FDKevin Date: Tue, 28 Jun 2022 10:33:02 +0000 Subject: [PATCH 11/25] ci(gen): buf generate up to date --- aggregatingapis/faq/v1/faq_grpc.pb.go | 6 +- .../infostream/v1/infostream_grpc.pb.go | 6 +- aggregatingapis/time/v1/time_grpc.pb.go | 6 +- aggregatingapis/wiki/v1/wiki.pb.go | 291 +++++++++--------- aggregatingapis/wiki/v1/wiki.pb.gw.go | 10 +- aggregatingapis/wiki/v1/wiki_grpc.pb.go | 20 +- campusapis/card/v1/card_grpc.pb.go | 6 +- campusapis/gate/v1/callback_grpc.pb.go | 6 +- campusapis/gate/v1/manager_grpc.pb.go | 6 +- campusapis/health/v1/health_grpc.pb.go | 6 +- campusapis/library/v1/library_grpc.pb.go | 6 +- .../schoolTime/v1/schoolTime_grpc.pb.go | 6 +- campusapis/staff/v1/campus_grpc.pb.go | 6 +- campusapis/teaching/v1/teaching_grpc.pb.go | 6 +- campusapis/third/v1/weixiao_grpc.pb.go | 6 +- .../aggregatingapis/wiki/v1/wiki.swagger.json | 194 ++++++++++++ gatewayapis/auth/v1/auth_grpc.pb.go | 6 +- gatewayapis/server/v1/manager_grpc.pb.go | 6 +- gatewayapis/server/v1/register_grpc.pb.go | 6 +- 19 files changed, 416 insertions(+), 189 deletions(-) create mode 100644 docs/swagger/aggregatingapis/wiki/v1/wiki.swagger.json diff --git a/aggregatingapis/faq/v1/faq_grpc.pb.go b/aggregatingapis/faq/v1/faq_grpc.pb.go index de8ad70..c11668f 100644 --- a/aggregatingapis/faq/v1/faq_grpc.pb.go +++ b/aggregatingapis/faq/v1/faq_grpc.pb.go @@ -93,7 +93,7 @@ func (c *fAQServiceClient) SearchFAQAnswerRichtext(ctx context.Context, in *Sear } // FAQServiceServer is the server API for FAQService service. -// All implementations should embed UnimplementedFAQServiceServer +// All implementations must embed UnimplementedFAQServiceServer // for forward compatibility type FAQServiceServer interface { CreateFAQ(context.Context, *CreateFAQRequest) (*CreateFAQResponse, error) @@ -102,9 +102,10 @@ type FAQServiceServer interface { DeleteFAQ(context.Context, *DeleteFAQRequest) (*DeleteFAQResponse, error) GetFAQImage(context.Context, *GetFAQImageRequest) (*GetFAQImageResponse, error) SearchFAQAnswerRichtext(context.Context, *SearchFAQAnswerRichtextRequest) (*SearchFAQAnswerRichtextResponse, error) + mustEmbedUnimplementedFAQServiceServer() } -// UnimplementedFAQServiceServer should be embedded to have forward compatible implementations. +// UnimplementedFAQServiceServer must be embedded to have forward compatible implementations. type UnimplementedFAQServiceServer struct { } @@ -126,6 +127,7 @@ func (UnimplementedFAQServiceServer) GetFAQImage(context.Context, *GetFAQImageRe func (UnimplementedFAQServiceServer) SearchFAQAnswerRichtext(context.Context, *SearchFAQAnswerRichtextRequest) (*SearchFAQAnswerRichtextResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method SearchFAQAnswerRichtext not implemented") } +func (UnimplementedFAQServiceServer) mustEmbedUnimplementedFAQServiceServer() {} // UnsafeFAQServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to FAQServiceServer will diff --git a/aggregatingapis/infostream/v1/infostream_grpc.pb.go b/aggregatingapis/infostream/v1/infostream_grpc.pb.go index b1ecf7b..9b0e3e0 100644 --- a/aggregatingapis/infostream/v1/infostream_grpc.pb.go +++ b/aggregatingapis/infostream/v1/infostream_grpc.pb.go @@ -43,19 +43,21 @@ func (c *infoStreamServiceClient) GetInfoStream(ctx context.Context, in *InfoStr } // InfoStreamServiceServer is the server API for InfoStreamService service. -// All implementations should embed UnimplementedInfoStreamServiceServer +// All implementations must embed UnimplementedInfoStreamServiceServer // for forward compatibility type InfoStreamServiceServer interface { GetInfoStream(context.Context, *InfoStreamReq) (*InfoStreamResp, error) + mustEmbedUnimplementedInfoStreamServiceServer() } -// UnimplementedInfoStreamServiceServer should be embedded to have forward compatible implementations. +// UnimplementedInfoStreamServiceServer must be embedded to have forward compatible implementations. type UnimplementedInfoStreamServiceServer struct { } func (UnimplementedInfoStreamServiceServer) GetInfoStream(context.Context, *InfoStreamReq) (*InfoStreamResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetInfoStream not implemented") } +func (UnimplementedInfoStreamServiceServer) mustEmbedUnimplementedInfoStreamServiceServer() {} // UnsafeInfoStreamServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to InfoStreamServiceServer will diff --git a/aggregatingapis/time/v1/time_grpc.pb.go b/aggregatingapis/time/v1/time_grpc.pb.go index 0634767..a88d93f 100644 --- a/aggregatingapis/time/v1/time_grpc.pb.go +++ b/aggregatingapis/time/v1/time_grpc.pb.go @@ -44,19 +44,21 @@ func (c *timeServiceClient) GetTime(ctx context.Context, in *emptypb.Empty, opts } // TimeServiceServer is the server API for TimeService service. -// All implementations should embed UnimplementedTimeServiceServer +// All implementations must embed UnimplementedTimeServiceServer // for forward compatibility type TimeServiceServer interface { GetTime(context.Context, *emptypb.Empty) (*TimeResp, error) + mustEmbedUnimplementedTimeServiceServer() } -// UnimplementedTimeServiceServer should be embedded to have forward compatible implementations. +// UnimplementedTimeServiceServer must be embedded to have forward compatible implementations. type UnimplementedTimeServiceServer struct { } func (UnimplementedTimeServiceServer) GetTime(context.Context, *emptypb.Empty) (*TimeResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTime not implemented") } +func (UnimplementedTimeServiceServer) mustEmbedUnimplementedTimeServiceServer() {} // UnsafeTimeServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to TimeServiceServer will diff --git a/aggregatingapis/wiki/v1/wiki.pb.go b/aggregatingapis/wiki/v1/wiki.pb.go index 2d395af..fedcafe 100644 --- a/aggregatingapis/wiki/v1/wiki.pb.go +++ b/aggregatingapis/wiki/v1/wiki.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.28.0 // protoc (unknown) -// source: consultingapis/wiki/v1/wiki.proto +// source: aggregatingapis/wiki/v1/wiki.proto package wikiv1 @@ -32,7 +32,7 @@ type DocTokenReq struct { func (x *DocTokenReq) Reset() { *x = DocTokenReq{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[0] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45,7 +45,7 @@ func (x *DocTokenReq) String() string { func (*DocTokenReq) ProtoMessage() {} func (x *DocTokenReq) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[0] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58,7 +58,7 @@ func (x *DocTokenReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DocTokenReq.ProtoReflect.Descriptor instead. func (*DocTokenReq) Descriptor() ([]byte, []int) { - return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{0} + return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{0} } func (x *DocTokenReq) GetToken() string { @@ -80,7 +80,7 @@ type DocTokenResp struct { func (x *DocTokenResp) Reset() { *x = DocTokenResp{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[1] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -93,7 +93,7 @@ func (x *DocTokenResp) String() string { func (*DocTokenResp) ProtoMessage() {} func (x *DocTokenResp) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[1] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106,7 +106,7 @@ func (x *DocTokenResp) ProtoReflect() protoreflect.Message { // Deprecated: Use DocTokenResp.ProtoReflect.Descriptor instead. func (*DocTokenResp) Descriptor() ([]byte, []int) { - return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{1} + return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{1} } func (x *DocTokenResp) GetContent() string { @@ -135,7 +135,7 @@ type NodeReq struct { func (x *NodeReq) Reset() { *x = NodeReq{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[2] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -148,7 +148,7 @@ func (x *NodeReq) String() string { func (*NodeReq) ProtoMessage() {} func (x *NodeReq) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[2] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -161,7 +161,7 @@ func (x *NodeReq) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeReq.ProtoReflect.Descriptor instead. func (*NodeReq) Descriptor() ([]byte, []int) { - return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{2} + return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{2} } func (x *NodeReq) GetSpaceId() string { @@ -191,7 +191,7 @@ type NodeResp struct { func (x *NodeResp) Reset() { *x = NodeResp{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[3] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -204,7 +204,7 @@ func (x *NodeResp) String() string { func (*NodeResp) ProtoMessage() {} func (x *NodeResp) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[3] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -217,7 +217,7 @@ func (x *NodeResp) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeResp.ProtoReflect.Descriptor instead. func (*NodeResp) Descriptor() ([]byte, []int) { - return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{3} + return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{3} } func (x *NodeResp) GetItems() []*NodeItem { @@ -265,7 +265,7 @@ type NodeItem struct { func (x *NodeItem) Reset() { *x = NodeItem{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[4] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -278,7 +278,7 @@ func (x *NodeItem) String() string { func (*NodeItem) ProtoMessage() {} func (x *NodeItem) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[4] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -291,7 +291,7 @@ func (x *NodeItem) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeItem.ProtoReflect.Descriptor instead. func (*NodeItem) Descriptor() ([]byte, []int) { - return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{4} + return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{4} } func (x *NodeItem) GetSpaceId() string { @@ -392,125 +392,126 @@ func (x *NodeItem) GetSubNode() []*NodeItem { return nil } -var File_consultingapis_wiki_v1_wiki_proto protoreflect.FileDescriptor - -var file_consultingapis_wiki_v1_wiki_proto_rawDesc = []byte{ - 0x0a, 0x21, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x23, 0x0a, 0x0b, 0x44, 0x6f, 0x63, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x44, - 0x0a, 0x0c, 0x44, 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, - 0x19, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7c, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x36, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x49, - 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, - 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, - 0x4d, 0x6f, 0x72, 0x65, 0x22, 0xfe, 0x03, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, - 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6f, - 0x62, 0x6a, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6f, 0x62, 0x6a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x62, 0x6a, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4e, - 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, - 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x62, 0x6a, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x62, - 0x6a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, - 0x62, 0x6a, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x62, 0x6a, 0x45, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x28, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x73, 0x75, 0x62, - 0x4e, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, - 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x73, 0x75, - 0x62, 0x4e, 0x6f, 0x64, 0x65, 0x32, 0xed, 0x01, 0x0a, 0x0b, 0x57, 0x69, 0x6b, 0x69, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x74, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x77, 0x69, 0x6b, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x0b, 0x47, - 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, - 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x16, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x42, 0xe0, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, - 0x69, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x57, 0x69, 0x6b, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, - 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, - 0x64, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x77, 0x69, 0x6b, 0x69, 0x76, 0x31, - 0xa2, 0x02, 0x03, 0x43, 0x57, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x57, 0x69, 0x6b, 0x69, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x16, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x5c, 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, - 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, - 0x57, 0x69, 0x6b, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +var File_aggregatingapis_wiki_v1_wiki_proto protoreflect.FileDescriptor + +var file_aggregatingapis_wiki_v1_wiki_proto_rawDesc = []byte{ + 0x0a, 0x22, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x23, 0x0a, 0x0b, 0x44, + 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x22, 0x44, 0x0a, 0x0c, 0x44, 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, + 0x71, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, + 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7d, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, + 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1d, 0x0a, + 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, + 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x22, 0xff, 0x03, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, + 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, + 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, + 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, + 0x62, 0x6a, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, + 0x62, 0x6a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, + 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x2a, 0x0a, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x70, 0x61, 0x63, + 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x43, 0x68, 0x69, 0x6c, 0x64, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x62, 0x6a, 0x5f, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x6f, 0x62, 0x6a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, + 0x0a, 0x0d, 0x6f, 0x62, 0x6a, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x62, 0x6a, 0x45, 0x64, 0x69, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, + 0x64, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x07, + 0x73, 0x75, 0x62, 0x4e, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, + 0x52, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x6f, 0x64, 0x65, 0x32, 0xf1, 0x01, 0x0a, 0x0b, 0x57, 0x69, + 0x6b, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x76, 0x0a, 0x0d, 0x47, 0x65, 0x74, + 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, + 0x1a, 0x25, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, + 0x10, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x6a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x20, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, + 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x42, 0xe6, 0x01, + 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x57, + 0x69, 0x6b, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, + 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, + 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x77, 0x69, 0x6b, 0x69, + 0x2f, 0x76, 0x31, 0x3b, 0x77, 0x69, 0x6b, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x57, 0x58, + 0xaa, 0x02, 0x17, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x57, 0x69, 0x6b, 0x69, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, 0x41, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x57, 0x69, 0x6b, + 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x23, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, 0x31, 0x5c, 0x47, + 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x41, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x57, 0x69, + 0x6b, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_consultingapis_wiki_v1_wiki_proto_rawDescOnce sync.Once - file_consultingapis_wiki_v1_wiki_proto_rawDescData = file_consultingapis_wiki_v1_wiki_proto_rawDesc + file_aggregatingapis_wiki_v1_wiki_proto_rawDescOnce sync.Once + file_aggregatingapis_wiki_v1_wiki_proto_rawDescData = file_aggregatingapis_wiki_v1_wiki_proto_rawDesc ) -func file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP() []byte { - file_consultingapis_wiki_v1_wiki_proto_rawDescOnce.Do(func() { - file_consultingapis_wiki_v1_wiki_proto_rawDescData = protoimpl.X.CompressGZIP(file_consultingapis_wiki_v1_wiki_proto_rawDescData) +func file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP() []byte { + file_aggregatingapis_wiki_v1_wiki_proto_rawDescOnce.Do(func() { + file_aggregatingapis_wiki_v1_wiki_proto_rawDescData = protoimpl.X.CompressGZIP(file_aggregatingapis_wiki_v1_wiki_proto_rawDescData) }) - return file_consultingapis_wiki_v1_wiki_proto_rawDescData -} - -var file_consultingapis_wiki_v1_wiki_proto_msgTypes = make([]protoimpl.MessageInfo, 5) -var file_consultingapis_wiki_v1_wiki_proto_goTypes = []interface{}{ - (*DocTokenReq)(nil), // 0: consultingapis.wiki.v1.DocTokenReq - (*DocTokenResp)(nil), // 1: consultingapis.wiki.v1.DocTokenResp - (*NodeReq)(nil), // 2: consultingapis.wiki.v1.nodeReq - (*NodeResp)(nil), // 3: consultingapis.wiki.v1.nodeResp - (*NodeItem)(nil), // 4: consultingapis.wiki.v1.nodeItem -} -var file_consultingapis_wiki_v1_wiki_proto_depIdxs = []int32{ - 4, // 0: consultingapis.wiki.v1.nodeResp.items:type_name -> consultingapis.wiki.v1.nodeItem - 4, // 1: consultingapis.wiki.v1.nodeItem.subNode:type_name -> consultingapis.wiki.v1.nodeItem - 0, // 2: consultingapis.wiki.v1.WikiService.GetDocContent:input_type -> consultingapis.wiki.v1.DocTokenReq - 2, // 3: consultingapis.wiki.v1.WikiService.GetNodeList:input_type -> consultingapis.wiki.v1.nodeReq - 1, // 4: consultingapis.wiki.v1.WikiService.GetDocContent:output_type -> consultingapis.wiki.v1.DocTokenResp - 3, // 5: consultingapis.wiki.v1.WikiService.GetNodeList:output_type -> consultingapis.wiki.v1.nodeResp + return file_aggregatingapis_wiki_v1_wiki_proto_rawDescData +} + +var file_aggregatingapis_wiki_v1_wiki_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_aggregatingapis_wiki_v1_wiki_proto_goTypes = []interface{}{ + (*DocTokenReq)(nil), // 0: aggregatingapis.wiki.v1.DocTokenReq + (*DocTokenResp)(nil), // 1: aggregatingapis.wiki.v1.DocTokenResp + (*NodeReq)(nil), // 2: aggregatingapis.wiki.v1.nodeReq + (*NodeResp)(nil), // 3: aggregatingapis.wiki.v1.nodeResp + (*NodeItem)(nil), // 4: aggregatingapis.wiki.v1.nodeItem +} +var file_aggregatingapis_wiki_v1_wiki_proto_depIdxs = []int32{ + 4, // 0: aggregatingapis.wiki.v1.nodeResp.items:type_name -> aggregatingapis.wiki.v1.nodeItem + 4, // 1: aggregatingapis.wiki.v1.nodeItem.subNode:type_name -> aggregatingapis.wiki.v1.nodeItem + 0, // 2: aggregatingapis.wiki.v1.WikiService.GetDocContent:input_type -> aggregatingapis.wiki.v1.DocTokenReq + 2, // 3: aggregatingapis.wiki.v1.WikiService.GetNodeList:input_type -> aggregatingapis.wiki.v1.nodeReq + 1, // 4: aggregatingapis.wiki.v1.WikiService.GetDocContent:output_type -> aggregatingapis.wiki.v1.DocTokenResp + 3, // 5: aggregatingapis.wiki.v1.WikiService.GetNodeList:output_type -> aggregatingapis.wiki.v1.nodeResp 4, // [4:6] is the sub-list for method output_type 2, // [2:4] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name @@ -518,13 +519,13 @@ var file_consultingapis_wiki_v1_wiki_proto_depIdxs = []int32{ 0, // [0:2] is the sub-list for field type_name } -func init() { file_consultingapis_wiki_v1_wiki_proto_init() } -func file_consultingapis_wiki_v1_wiki_proto_init() { - if File_consultingapis_wiki_v1_wiki_proto != nil { +func init() { file_aggregatingapis_wiki_v1_wiki_proto_init() } +func file_aggregatingapis_wiki_v1_wiki_proto_init() { + if File_aggregatingapis_wiki_v1_wiki_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_consultingapis_wiki_v1_wiki_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DocTokenReq); i { case 0: return &v.state @@ -536,7 +537,7 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { return nil } } - file_consultingapis_wiki_v1_wiki_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DocTokenResp); i { case 0: return &v.state @@ -548,7 +549,7 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { return nil } } - file_consultingapis_wiki_v1_wiki_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeReq); i { case 0: return &v.state @@ -560,7 +561,7 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { return nil } } - file_consultingapis_wiki_v1_wiki_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeResp); i { case 0: return &v.state @@ -572,7 +573,7 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { return nil } } - file_consultingapis_wiki_v1_wiki_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeItem); i { case 0: return &v.state @@ -589,18 +590,18 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_consultingapis_wiki_v1_wiki_proto_rawDesc, + RawDescriptor: file_aggregatingapis_wiki_v1_wiki_proto_rawDesc, NumEnums: 0, NumMessages: 5, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_consultingapis_wiki_v1_wiki_proto_goTypes, - DependencyIndexes: file_consultingapis_wiki_v1_wiki_proto_depIdxs, - MessageInfos: file_consultingapis_wiki_v1_wiki_proto_msgTypes, + GoTypes: file_aggregatingapis_wiki_v1_wiki_proto_goTypes, + DependencyIndexes: file_aggregatingapis_wiki_v1_wiki_proto_depIdxs, + MessageInfos: file_aggregatingapis_wiki_v1_wiki_proto_msgTypes, }.Build() - File_consultingapis_wiki_v1_wiki_proto = out.File - file_consultingapis_wiki_v1_wiki_proto_rawDesc = nil - file_consultingapis_wiki_v1_wiki_proto_goTypes = nil - file_consultingapis_wiki_v1_wiki_proto_depIdxs = nil + File_aggregatingapis_wiki_v1_wiki_proto = out.File + file_aggregatingapis_wiki_v1_wiki_proto_rawDesc = nil + file_aggregatingapis_wiki_v1_wiki_proto_goTypes = nil + file_aggregatingapis_wiki_v1_wiki_proto_depIdxs = nil } diff --git a/aggregatingapis/wiki/v1/wiki.pb.gw.go b/aggregatingapis/wiki/v1/wiki.pb.gw.go index 22ec5ab..eb23f08 100644 --- a/aggregatingapis/wiki/v1/wiki.pb.gw.go +++ b/aggregatingapis/wiki/v1/wiki.pb.gw.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: consultingapis/wiki/v1/wiki.proto +// source: aggregatingapis/wiki/v1/wiki.proto /* Package wikiv1 is a reverse proxy. @@ -116,7 +116,7 @@ func RegisterWikiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -140,7 +140,7 @@ func RegisterWikiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -203,7 +203,7 @@ func RegisterWikiServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -224,7 +224,7 @@ func RegisterWikiServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return diff --git a/aggregatingapis/wiki/v1/wiki_grpc.pb.go b/aggregatingapis/wiki/v1/wiki_grpc.pb.go index feaf34f..f8e15ca 100644 --- a/aggregatingapis/wiki/v1/wiki_grpc.pb.go +++ b/aggregatingapis/wiki/v1/wiki_grpc.pb.go @@ -2,7 +2,7 @@ // versions: // - protoc-gen-go-grpc v1.2.0 // - protoc (unknown) -// source: consultingapis/wiki/v1/wiki.proto +// source: aggregatingapis/wiki/v1/wiki.proto package wikiv1 @@ -36,7 +36,7 @@ func NewWikiServiceClient(cc grpc.ClientConnInterface) WikiServiceClient { func (c *wikiServiceClient) GetDocContent(ctx context.Context, in *DocTokenReq, opts ...grpc.CallOption) (*DocTokenResp, error) { out := new(DocTokenResp) - err := c.cc.Invoke(ctx, "/consultingapis.wiki.v1.WikiService/GetDocContent", in, out, opts...) + err := c.cc.Invoke(ctx, "/aggregatingapis.wiki.v1.WikiService/GetDocContent", in, out, opts...) if err != nil { return nil, err } @@ -45,7 +45,7 @@ func (c *wikiServiceClient) GetDocContent(ctx context.Context, in *DocTokenReq, func (c *wikiServiceClient) GetNodeList(ctx context.Context, in *NodeReq, opts ...grpc.CallOption) (*NodeResp, error) { out := new(NodeResp) - err := c.cc.Invoke(ctx, "/consultingapis.wiki.v1.WikiService/GetNodeList", in, out, opts...) + err := c.cc.Invoke(ctx, "/aggregatingapis.wiki.v1.WikiService/GetNodeList", in, out, opts...) if err != nil { return nil, err } @@ -53,14 +53,15 @@ func (c *wikiServiceClient) GetNodeList(ctx context.Context, in *NodeReq, opts . } // WikiServiceServer is the server API for WikiService service. -// All implementations should embed UnimplementedWikiServiceServer +// All implementations must embed UnimplementedWikiServiceServer // for forward compatibility type WikiServiceServer interface { GetDocContent(context.Context, *DocTokenReq) (*DocTokenResp, error) GetNodeList(context.Context, *NodeReq) (*NodeResp, error) + mustEmbedUnimplementedWikiServiceServer() } -// UnimplementedWikiServiceServer should be embedded to have forward compatible implementations. +// UnimplementedWikiServiceServer must be embedded to have forward compatible implementations. type UnimplementedWikiServiceServer struct { } @@ -70,6 +71,7 @@ func (UnimplementedWikiServiceServer) GetDocContent(context.Context, *DocTokenRe func (UnimplementedWikiServiceServer) GetNodeList(context.Context, *NodeReq) (*NodeResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetNodeList not implemented") } +func (UnimplementedWikiServiceServer) mustEmbedUnimplementedWikiServiceServer() {} // UnsafeWikiServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to WikiServiceServer will @@ -92,7 +94,7 @@ func _WikiService_GetDocContent_Handler(srv interface{}, ctx context.Context, de } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/consultingapis.wiki.v1.WikiService/GetDocContent", + FullMethod: "/aggregatingapis.wiki.v1.WikiService/GetDocContent", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WikiServiceServer).GetDocContent(ctx, req.(*DocTokenReq)) @@ -110,7 +112,7 @@ func _WikiService_GetNodeList_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/consultingapis.wiki.v1.WikiService/GetNodeList", + FullMethod: "/aggregatingapis.wiki.v1.WikiService/GetNodeList", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WikiServiceServer).GetNodeList(ctx, req.(*NodeReq)) @@ -122,7 +124,7 @@ func _WikiService_GetNodeList_Handler(srv interface{}, ctx context.Context, dec // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var WikiService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "consultingapis.wiki.v1.WikiService", + ServiceName: "aggregatingapis.wiki.v1.WikiService", HandlerType: (*WikiServiceServer)(nil), Methods: []grpc.MethodDesc{ { @@ -135,5 +137,5 @@ var WikiService_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "consultingapis/wiki/v1/wiki.proto", + Metadata: "aggregatingapis/wiki/v1/wiki.proto", } diff --git a/campusapis/card/v1/card_grpc.pb.go b/campusapis/card/v1/card_grpc.pb.go index 0e3e61f..4c39e3f 100644 --- a/campusapis/card/v1/card_grpc.pb.go +++ b/campusapis/card/v1/card_grpc.pb.go @@ -67,7 +67,7 @@ func (c *cardServiceClient) GetCardConsume(ctx context.Context, in *emptypb.Empt } // CardServiceServer is the server API for CardService service. -// All implementations should embed UnimplementedCardServiceServer +// All implementations must embed UnimplementedCardServiceServer // for forward compatibility type CardServiceServer interface { //查询校园卡信息 @@ -76,9 +76,10 @@ type CardServiceServer interface { GetCardBalance(context.Context, *emptypb.Empty) (*GetCardBalanceResponse, error) //查询校园卡消费记录 GetCardConsume(context.Context, *emptypb.Empty) (*GetCardConsumeResponse, error) + mustEmbedUnimplementedCardServiceServer() } -// UnimplementedCardServiceServer should be embedded to have forward compatible implementations. +// UnimplementedCardServiceServer must be embedded to have forward compatible implementations. type UnimplementedCardServiceServer struct { } @@ -91,6 +92,7 @@ func (UnimplementedCardServiceServer) GetCardBalance(context.Context, *emptypb.E func (UnimplementedCardServiceServer) GetCardConsume(context.Context, *emptypb.Empty) (*GetCardConsumeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetCardConsume not implemented") } +func (UnimplementedCardServiceServer) mustEmbedUnimplementedCardServiceServer() {} // UnsafeCardServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to CardServiceServer will diff --git a/campusapis/gate/v1/callback_grpc.pb.go b/campusapis/gate/v1/callback_grpc.pb.go index fbdba86..f91baad 100644 --- a/campusapis/gate/v1/callback_grpc.pb.go +++ b/campusapis/gate/v1/callback_grpc.pb.go @@ -44,20 +44,22 @@ func (c *gateCallbackServiceClient) PostGateEventCallback(ctx context.Context, i } // GateCallbackServiceServer is the server API for GateCallbackService service. -// All implementations should embed UnimplementedGateCallbackServiceServer +// All implementations must embed UnimplementedGateCallbackServiceServer // for forward compatibility type GateCallbackServiceServer interface { //门禁事件回调接口 PostGateEventCallback(context.Context, *PostGateEventCallbackRequest) (*PostGateEventCallbackResponse, error) + mustEmbedUnimplementedGateCallbackServiceServer() } -// UnimplementedGateCallbackServiceServer should be embedded to have forward compatible implementations. +// UnimplementedGateCallbackServiceServer must be embedded to have forward compatible implementations. type UnimplementedGateCallbackServiceServer struct { } func (UnimplementedGateCallbackServiceServer) PostGateEventCallback(context.Context, *PostGateEventCallbackRequest) (*PostGateEventCallbackResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PostGateEventCallback not implemented") } +func (UnimplementedGateCallbackServiceServer) mustEmbedUnimplementedGateCallbackServiceServer() {} // UnsafeGateCallbackServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to GateCallbackServiceServer will diff --git a/campusapis/gate/v1/manager_grpc.pb.go b/campusapis/gate/v1/manager_grpc.pb.go index 24474f7..e40e467 100644 --- a/campusapis/gate/v1/manager_grpc.pb.go +++ b/campusapis/gate/v1/manager_grpc.pb.go @@ -66,7 +66,7 @@ func (c *gateManagerServiceClient) PostRegisterGateEvent(ctx context.Context, in } // GateManagerServiceServer is the server API for GateManagerService service. -// All implementations should embed UnimplementedGateManagerServiceServer +// All implementations must embed UnimplementedGateManagerServiceServer // for forward compatibility type GateManagerServiceServer interface { //门禁回调,给第三方服务使用 @@ -75,9 +75,10 @@ type GateManagerServiceServer interface { PostStudentGateAccess(context.Context, *PostStudentGateAccessRequest) (*PostStudentGateAccessResponse, error) //注册门禁事件回调至应用,仅供内部服务调用,对应服务需要实现GateCallbackService服务,重复推送视为累加 PostRegisterGateEvent(context.Context, *PostRegisterGateEventRequest) (*PostRegisterGateEventResponse, error) + mustEmbedUnimplementedGateManagerServiceServer() } -// UnimplementedGateManagerServiceServer should be embedded to have forward compatible implementations. +// UnimplementedGateManagerServiceServer must be embedded to have forward compatible implementations. type UnimplementedGateManagerServiceServer struct { } @@ -90,6 +91,7 @@ func (UnimplementedGateManagerServiceServer) PostStudentGateAccess(context.Conte func (UnimplementedGateManagerServiceServer) PostRegisterGateEvent(context.Context, *PostRegisterGateEventRequest) (*PostRegisterGateEventResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PostRegisterGateEvent not implemented") } +func (UnimplementedGateManagerServiceServer) mustEmbedUnimplementedGateManagerServiceServer() {} // UnsafeGateManagerServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to GateManagerServiceServer will diff --git a/campusapis/health/v1/health_grpc.pb.go b/campusapis/health/v1/health_grpc.pb.go index 035fff1..cd3483e 100644 --- a/campusapis/health/v1/health_grpc.pb.go +++ b/campusapis/health/v1/health_grpc.pb.go @@ -133,7 +133,7 @@ func (c *healthServiceClient) GetNucleicAcidTestLatest(ctx context.Context, in * } // HealthServiceServer is the server API for HealthService service. -// All implementations should embed UnimplementedHealthServiceServer +// All implementations must embed UnimplementedHealthServiceServer // for forward compatibility type HealthServiceServer interface { //获取指定日期健康打卡记录 @@ -154,9 +154,10 @@ type HealthServiceServer interface { GetNucleicAcidTests(context.Context, *emptypb.Empty) (*GetNucleicAcidTestsResponse, error) // 获取最新核酸检测记录 GetNucleicAcidTestLatest(context.Context, *emptypb.Empty) (*GetNucleicAcidTestLatestResponse, error) + mustEmbedUnimplementedHealthServiceServer() } -// UnimplementedHealthServiceServer should be embedded to have forward compatible implementations. +// UnimplementedHealthServiceServer must be embedded to have forward compatible implementations. type UnimplementedHealthServiceServer struct { } @@ -187,6 +188,7 @@ func (UnimplementedHealthServiceServer) GetNucleicAcidTests(context.Context, *em func (UnimplementedHealthServiceServer) GetNucleicAcidTestLatest(context.Context, *emptypb.Empty) (*GetNucleicAcidTestLatestResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetNucleicAcidTestLatest not implemented") } +func (UnimplementedHealthServiceServer) mustEmbedUnimplementedHealthServiceServer() {} // UnsafeHealthServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to HealthServiceServer will diff --git a/campusapis/library/v1/library_grpc.pb.go b/campusapis/library/v1/library_grpc.pb.go index b9f40e4..e7df95f 100644 --- a/campusapis/library/v1/library_grpc.pb.go +++ b/campusapis/library/v1/library_grpc.pb.go @@ -99,7 +99,7 @@ func (c *libraryServiceClient) GetBookLendHistory(ctx context.Context, in *GetBo } // LibraryServiceServer is the server API for LibraryService service. -// All implementations should embed UnimplementedLibraryServiceServer +// All implementations must embed UnimplementedLibraryServiceServer // for forward compatibility type LibraryServiceServer interface { //查询书本信息 @@ -114,9 +114,10 @@ type LibraryServiceServer interface { GetBookLendLast(context.Context, *GetBookLendLastRequest) (*GetBookLendLastResponse, error) //查询历史图书借阅记录 GetBookLendHistory(context.Context, *GetBookLendHistoryRequest) (*GetBookLendHistoryResponse, error) + mustEmbedUnimplementedLibraryServiceServer() } -// UnimplementedLibraryServiceServer should be embedded to have forward compatible implementations. +// UnimplementedLibraryServiceServer must be embedded to have forward compatible implementations. type UnimplementedLibraryServiceServer struct { } @@ -138,6 +139,7 @@ func (UnimplementedLibraryServiceServer) GetBookLendLast(context.Context, *GetBo func (UnimplementedLibraryServiceServer) GetBookLendHistory(context.Context, *GetBookLendHistoryRequest) (*GetBookLendHistoryResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBookLendHistory not implemented") } +func (UnimplementedLibraryServiceServer) mustEmbedUnimplementedLibraryServiceServer() {} // UnsafeLibraryServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to LibraryServiceServer will diff --git a/campusapis/schoolTime/v1/schoolTime_grpc.pb.go b/campusapis/schoolTime/v1/schoolTime_grpc.pb.go index ae792fb..b1c9a4b 100644 --- a/campusapis/schoolTime/v1/schoolTime_grpc.pb.go +++ b/campusapis/schoolTime/v1/schoolTime_grpc.pb.go @@ -56,16 +56,17 @@ func (c *schoolTimeServiceClient) GetSemesterList(ctx context.Context, in *GetSe } // SchoolTimeServiceServer is the server API for SchoolTimeService service. -// All implementations should embed UnimplementedSchoolTimeServiceServer +// All implementations must embed UnimplementedSchoolTimeServiceServer // for forward compatibility type SchoolTimeServiceServer interface { // 获取当前学校时间 GetSchoolTime(context.Context, *emptypb.Empty) (*GetSchoolTimeResponse, error) // 获取学校学期信息列表 GetSemesterList(context.Context, *GetSemesterListRequest) (*GetSemesterListResponse, error) + mustEmbedUnimplementedSchoolTimeServiceServer() } -// UnimplementedSchoolTimeServiceServer should be embedded to have forward compatible implementations. +// UnimplementedSchoolTimeServiceServer must be embedded to have forward compatible implementations. type UnimplementedSchoolTimeServiceServer struct { } @@ -75,6 +76,7 @@ func (UnimplementedSchoolTimeServiceServer) GetSchoolTime(context.Context, *empt func (UnimplementedSchoolTimeServiceServer) GetSemesterList(context.Context, *GetSemesterListRequest) (*GetSemesterListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetSemesterList not implemented") } +func (UnimplementedSchoolTimeServiceServer) mustEmbedUnimplementedSchoolTimeServiceServer() {} // UnsafeSchoolTimeServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to SchoolTimeServiceServer will diff --git a/campusapis/staff/v1/campus_grpc.pb.go b/campusapis/staff/v1/campus_grpc.pb.go index 9951b7f..f2b80cc 100644 --- a/campusapis/staff/v1/campus_grpc.pb.go +++ b/campusapis/staff/v1/campus_grpc.pb.go @@ -199,7 +199,7 @@ func (c *campusServiceClient) GetFreshmanRoommates(ctx context.Context, in *GetF } // CampusServiceServer is the server API for CampusService service. -// All implementations should embed UnimplementedCampusServiceServer +// All implementations must embed UnimplementedCampusServiceServer // for forward compatibility type CampusServiceServer interface { //获取员工信息 @@ -232,9 +232,10 @@ type CampusServiceServer interface { GetFreshmanDetail(context.Context, *GetFreshmanDetailRequest) (*GetFreshmanDetailResponse, error) //获取新生宿舍信息 GetFreshmanRoommates(context.Context, *GetFreshmanRoommatesRequest) (*GetFreshmanRoommatesResponse, error) + mustEmbedUnimplementedCampusServiceServer() } -// UnimplementedCampusServiceServer should be embedded to have forward compatible implementations. +// UnimplementedCampusServiceServer must be embedded to have forward compatible implementations. type UnimplementedCampusServiceServer struct { } @@ -283,6 +284,7 @@ func (UnimplementedCampusServiceServer) GetFreshmanDetail(context.Context, *GetF func (UnimplementedCampusServiceServer) GetFreshmanRoommates(context.Context, *GetFreshmanRoommatesRequest) (*GetFreshmanRoommatesResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetFreshmanRoommates not implemented") } +func (UnimplementedCampusServiceServer) mustEmbedUnimplementedCampusServiceServer() {} // UnsafeCampusServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to CampusServiceServer will diff --git a/campusapis/teaching/v1/teaching_grpc.pb.go b/campusapis/teaching/v1/teaching_grpc.pb.go index 0112685..a9fbe97 100644 --- a/campusapis/teaching/v1/teaching_grpc.pb.go +++ b/campusapis/teaching/v1/teaching_grpc.pb.go @@ -111,7 +111,7 @@ func (c *teachingServiceClient) GetUnusedClassrooms(ctx context.Context, in *Get } // TeachingServiceServer is the server API for TeachingService service. -// All implementations should embed UnimplementedTeachingServiceServer +// All implementations must embed UnimplementedTeachingServiceServer // for forward compatibility type TeachingServiceServer interface { // 获取学生/教师课程表 @@ -128,9 +128,10 @@ type TeachingServiceServer interface { GetClassroomUsages(context.Context, *GetClassroomUsagesRequest) (*GetClassroomUsagesResponse, error) // 获取所有空教室列表 GetUnusedClassrooms(context.Context, *GetUnusedClassroomsRequest) (*GetUnusedClassroomsResponse, error) + mustEmbedUnimplementedTeachingServiceServer() } -// UnimplementedTeachingServiceServer should be embedded to have forward compatible implementations. +// UnimplementedTeachingServiceServer must be embedded to have forward compatible implementations. type UnimplementedTeachingServiceServer struct { } @@ -155,6 +156,7 @@ func (UnimplementedTeachingServiceServer) GetClassroomUsages(context.Context, *G func (UnimplementedTeachingServiceServer) GetUnusedClassrooms(context.Context, *GetUnusedClassroomsRequest) (*GetUnusedClassroomsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUnusedClassrooms not implemented") } +func (UnimplementedTeachingServiceServer) mustEmbedUnimplementedTeachingServiceServer() {} // UnsafeTeachingServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to TeachingServiceServer will diff --git a/campusapis/third/v1/weixiao_grpc.pb.go b/campusapis/third/v1/weixiao_grpc.pb.go index c7ee5fa..902c949 100644 --- a/campusapis/third/v1/weixiao_grpc.pb.go +++ b/campusapis/third/v1/weixiao_grpc.pb.go @@ -93,7 +93,7 @@ func (c *weixiaoServiceClient) GetStudentExam(ctx context.Context, in *CommonWei } // WeixiaoServiceServer is the server API for WeixiaoService service. -// All implementations should embed UnimplementedWeixiaoServiceServer +// All implementations must embed UnimplementedWeixiaoServiceServer // for forward compatibility type WeixiaoServiceServer interface { //用户校园卡面余额字段同步 @@ -111,9 +111,10 @@ type WeixiaoServiceServer interface { //查考试数据同步 //https://wiki.weixiao.qq.com/api/school/checkExam.html GetStudentExam(context.Context, *CommonWeixiaoPostRequest) (*CommonWeixiaoPostResponse, error) + mustEmbedUnimplementedWeixiaoServiceServer() } -// UnimplementedWeixiaoServiceServer should be embedded to have forward compatible implementations. +// UnimplementedWeixiaoServiceServer must be embedded to have forward compatible implementations. type UnimplementedWeixiaoServiceServer struct { } @@ -132,6 +133,7 @@ func (UnimplementedWeixiaoServiceServer) GetStudentCourseScore(context.Context, func (UnimplementedWeixiaoServiceServer) GetStudentExam(context.Context, *CommonWeixiaoPostRequest) (*CommonWeixiaoPostResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetStudentExam not implemented") } +func (UnimplementedWeixiaoServiceServer) mustEmbedUnimplementedWeixiaoServiceServer() {} // UnsafeWeixiaoServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to WeixiaoServiceServer will diff --git a/docs/swagger/aggregatingapis/wiki/v1/wiki.swagger.json b/docs/swagger/aggregatingapis/wiki/v1/wiki.swagger.json new file mode 100644 index 0000000..3b2c71e --- /dev/null +++ b/docs/swagger/aggregatingapis/wiki/v1/wiki.swagger.json @@ -0,0 +1,194 @@ +{ + "swagger": "2.0", + "info": { + "title": "aggregatingapis/wiki/v1/wiki.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "WikiService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/wiki/v1/content": { + "get": { + "operationId": "WikiService_GetDocContent", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1DocTokenResp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "token", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "WikiService" + ] + } + }, + "/wiki/v1/nodes": { + "get": { + "operationId": "WikiService_GetNodeList", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1nodeResp" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "spaceId", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "parentNodeToken", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "WikiService" + ] + } + } + }, + "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string" + } + }, + "additionalProperties": {} + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "v1DocTokenResp": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "revision": { + "type": "integer", + "format": "int64" + } + } + }, + "v1nodeItem": { + "type": "object", + "properties": { + "spaceId": { + "type": "string" + }, + "nodeToken": { + "type": "string" + }, + "objToken": { + "type": "string" + }, + "objType": { + "type": "string" + }, + "parentNodeToken": { + "type": "string" + }, + "nodeType": { + "type": "string" + }, + "originNodeToken": { + "type": "string" + }, + "originSpaceId": { + "type": "string" + }, + "hasChild": { + "type": "boolean" + }, + "title": { + "type": "string" + }, + "objCreateTime": { + "type": "string" + }, + "objEditTime": { + "type": "string" + }, + "nodeCreateTime": { + "type": "string" + }, + "subNode": { + "type": "array", + "items": { + "$ref": "#/definitions/v1nodeItem" + } + } + } + }, + "v1nodeResp": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/v1nodeItem" + } + }, + "pageToken": { + "type": "string" + }, + "hasMore": { + "type": "boolean" + } + } + } + } +} diff --git a/gatewayapis/auth/v1/auth_grpc.pb.go b/gatewayapis/auth/v1/auth_grpc.pb.go index 1cc7cdb..a21a69e 100644 --- a/gatewayapis/auth/v1/auth_grpc.pb.go +++ b/gatewayapis/auth/v1/auth_grpc.pb.go @@ -267,7 +267,7 @@ func (c *authServiceClient) GetBindListByUserIdList(ctx context.Context, in *Get } // AuthServiceServer is the server API for AuthService service. -// All implementations should embed UnimplementedAuthServiceServer +// All implementations must embed UnimplementedAuthServiceServer // for forward compatibility type AuthServiceServer interface { //用户获得Token基本信息 @@ -306,9 +306,10 @@ type AuthServiceServer interface { GetWeChatSignature(context.Context, *GetWeChatSignatureRequest) (*GetWeChatSignatureResponse, error) //(内部接口)通过助手user_id获得用户的其他绑定信息 GetBindListByUserIdList(context.Context, *GetBindListByUserIdListRequest) (*GetBindListByUserIdListResponse, error) + mustEmbedUnimplementedAuthServiceServer() } -// UnimplementedAuthServiceServer should be embedded to have forward compatible implementations. +// UnimplementedAuthServiceServer must be embedded to have forward compatible implementations. type UnimplementedAuthServiceServer struct { } @@ -378,6 +379,7 @@ func (UnimplementedAuthServiceServer) GetWeChatSignature(context.Context, *GetWe func (UnimplementedAuthServiceServer) GetBindListByUserIdList(context.Context, *GetBindListByUserIdListRequest) (*GetBindListByUserIdListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBindListByUserIdList not implemented") } +func (UnimplementedAuthServiceServer) mustEmbedUnimplementedAuthServiceServer() {} // UnsafeAuthServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to AuthServiceServer will diff --git a/gatewayapis/server/v1/manager_grpc.pb.go b/gatewayapis/server/v1/manager_grpc.pb.go index bd85561..563dc90 100644 --- a/gatewayapis/server/v1/manager_grpc.pb.go +++ b/gatewayapis/server/v1/manager_grpc.pb.go @@ -77,7 +77,7 @@ func (c *serverManageerServiceClient) DeleteHTTPRouter(ctx context.Context, in * } // ServerManageerServiceServer is the server API for ServerManageerService service. -// All implementations should embed UnimplementedServerManageerServiceServer +// All implementations must embed UnimplementedServerManageerServiceServer // for forward compatibility type ServerManageerServiceServer interface { //获取可管理的所有HTTP路由 @@ -88,9 +88,10 @@ type ServerManageerServiceServer interface { PostOrPutHTTPRouter(context.Context, *PostOrPutHTTPRouterRequest) (*PostOrPutHTTPRouterResponse, error) //删除路由 DeleteHTTPRouter(context.Context, *DeleteHTTPRouterRequest) (*DeleteHTTPRouterResponse, error) + mustEmbedUnimplementedServerManageerServiceServer() } -// UnimplementedServerManageerServiceServer should be embedded to have forward compatible implementations. +// UnimplementedServerManageerServiceServer must be embedded to have forward compatible implementations. type UnimplementedServerManageerServiceServer struct { } @@ -106,6 +107,7 @@ func (UnimplementedServerManageerServiceServer) PostOrPutHTTPRouter(context.Cont func (UnimplementedServerManageerServiceServer) DeleteHTTPRouter(context.Context, *DeleteHTTPRouterRequest) (*DeleteHTTPRouterResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteHTTPRouter not implemented") } +func (UnimplementedServerManageerServiceServer) mustEmbedUnimplementedServerManageerServiceServer() {} // UnsafeServerManageerServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ServerManageerServiceServer will diff --git a/gatewayapis/server/v1/register_grpc.pb.go b/gatewayapis/server/v1/register_grpc.pb.go index 7af8c7e..1acdfb9 100644 --- a/gatewayapis/server/v1/register_grpc.pb.go +++ b/gatewayapis/server/v1/register_grpc.pb.go @@ -66,7 +66,7 @@ func (c *serverRegisterServiceClient) PostRegistGRPCMethods(ctx context.Context, } // ServerRegisterServiceServer is the server API for ServerRegisterService service. -// All implementations should embed UnimplementedServerRegisterServiceServer +// All implementations must embed UnimplementedServerRegisterServiceServer // for forward compatibility type ServerRegisterServiceServer interface { //注册服务实例 @@ -75,9 +75,10 @@ type ServerRegisterServiceServer interface { PostRegistHTTPRouters(context.Context, *PostRegistHTTPRoutersRequest) (*PostRegistHTTPRoutersResponse, error) //注册服务GRPC方法 PostRegistGRPCMethods(context.Context, *PostRegistGRPCMethodsRequest) (*PostRegistGRPCMethodsResponse, error) + mustEmbedUnimplementedServerRegisterServiceServer() } -// UnimplementedServerRegisterServiceServer should be embedded to have forward compatible implementations. +// UnimplementedServerRegisterServiceServer must be embedded to have forward compatible implementations. type UnimplementedServerRegisterServiceServer struct { } @@ -90,6 +91,7 @@ func (UnimplementedServerRegisterServiceServer) PostRegistHTTPRouters(context.Co func (UnimplementedServerRegisterServiceServer) PostRegistGRPCMethods(context.Context, *PostRegistGRPCMethodsRequest) (*PostRegistGRPCMethodsResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method PostRegistGRPCMethods not implemented") } +func (UnimplementedServerRegisterServiceServer) mustEmbedUnimplementedServerRegisterServiceServer() {} // UnsafeServerRegisterServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to ServerRegisterServiceServer will From 6963b2dcae539ac987528473f5f9a0942e70fb56 Mon Sep 17 00:00:00 2001 From: FDKevin Date: Wed, 29 Jun 2022 13:31:35 +0800 Subject: [PATCH 12/25] updates --- .github/workflows/buf.yml | 7 ++++-- .github/workflows/lint.yml | 39 +++++++++++++++++++++++++++++ .golangci.yml | 21 ++++++++++++++++ Makefile | 5 +++- README.md | 9 +++++++ api/cache/interface.go | 8 +++--- api/grpc_gateway/grpc_gateway.go | 4 +-- campusapis/schoolTime/schoolYear.go | 6 ++--- campusapis/schoolTime/semester.go | 8 +++--- go.mod | 3 +-- go.sum | 1 - transfer/transfer.go | 1 - types/date.go | 6 ++--- 13 files changed, 95 insertions(+), 23 deletions(-) create mode 100644 .github/workflows/lint.yml create mode 100644 .golangci.yml diff --git a/.github/workflows/buf.yml b/.github/workflows/buf.yml index 146b801..90a9367 100644 --- a/.github/workflows/buf.yml +++ b/.github/workflows/buf.yml @@ -2,8 +2,11 @@ name: check buf generate up to date on: push: branches: - #- main - - dev-standard-rpc + - main + pull_request: + branches: + - main + jobs: build: name: Build diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml new file mode 100644 index 0000000..5b8f05b --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,39 @@ +name: check buf generate up to date +on: + push: + branches: + - main + pull_request: + branches: + - main + +jobs: + lint: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + + - name: Install Go + uses: actions/setup-go@v3 + with: + go-version: 1.18 + + - name: Go Build Cache (lint) + uses: actions/cache@v3 + with: + path: | + ~/.cache/go-build + ~/go/pkg + key: go-cache-${{ hashFiles('**/go.sum') }}-lint + restore-keys: | + go-cache-${{ hashFiles('**/go.sum') }}- + go-cache- + + - run: go get -t ./... + + - name: Run linters + uses: golangci/golangci-lint-action@v3 + with: + version: v1.46.0 + skip-pkg-cache: true + skip-build-cache: true \ No newline at end of file diff --git a/.golangci.yml b/.golangci.yml new file mode 100644 index 0000000..35f7a3f --- /dev/null +++ b/.golangci.yml @@ -0,0 +1,21 @@ +# Options for analysis running. +run: + # See the dedicated "run" documentation section. + option: value +# output configuration options +output: + # See the dedicated "output" documentation section. + option: value +# All available settings of specific linters. +linters-settings: + # See the dedicated "linters-settings" documentation section. + option: value +linters: + # See the dedicated "linters" documentation section. + option: value +issues: + # See the dedicated "issues" documentation section. + option: value +severity: + # See the dedicated "severity" documentation section. + option: value \ No newline at end of file diff --git a/Makefile b/Makefile index 5e5c3c2..0d348fa 100644 --- a/Makefile +++ b/Makefile @@ -7,4 +7,7 @@ install-tools: download cat tools.go | grep _ | awk -F'"' '{print $$2}' | xargs -tI % go install % generate-proto: - buf generate -v \ No newline at end of file + buf generate -v + +lint: + golangci-lint run --fix \ No newline at end of file diff --git a/README.md b/README.md index f63d31e..e72fc13 100644 --- a/README.md +++ b/README.md @@ -12,6 +12,11 @@ make install-tools ``` +## 依赖 + +- [go-task](https://taskfile.dev/installation/) +- [golangci-lint](https://golangci-lint.run/) + ## 开发流程 1. 修改 proto 文件 @@ -49,6 +54,10 @@ http://localhost:8080/campusapis/staff/v1/freshman.swagger.json 4. 每次改动 proto 后需要重新运行 `buf generate`,并且「清空缓存并进行硬刷新」网页 +## Code Lint + + + ## 接口注释 - 有效:rpc 方法前,Response message 前,message内部字段前 diff --git a/api/cache/interface.go b/api/cache/interface.go index 3c06495..33ae1dd 100644 --- a/api/cache/interface.go +++ b/api/cache/interface.go @@ -78,12 +78,12 @@ func GetCacheOf(ctx context.Context, c Interface) error { return errors.New("cache not found") } -func Invalidate(ctx context.Context, c Interface) { +func Invalidate(ctx context.Context, c Interface) error { tags := c.Option().Tags - if tags == nil || len(tags) == 0 { - return + if len(tags) == 0 { + return nil } - marshal.Invalidate(ctx, store.InvalidateOptions{ + return marshal.Invalidate(ctx, store.InvalidateOptions{ Tags: tags, }) } diff --git a/api/grpc_gateway/grpc_gateway.go b/api/grpc_gateway/grpc_gateway.go index 13230f2..f97baf5 100644 --- a/api/grpc_gateway/grpc_gateway.go +++ b/api/grpc_gateway/grpc_gateway.go @@ -31,8 +31,7 @@ func DefaultRoutingErrorHandler(ctx context.Context, mux *runtime.ServeMux, mars } func DefaultErrorHandler(ctx context.Context, mux *runtime.ServeMux, marshaler runtime.Marshaler, w http.ResponseWriter, r *http.Request, err error) { - // return Internal when Marshal failed - var msg = string(lo.Must(json.Marshal(err.Error()))) + var msg string var customStatus *runtime.HTTPStatusError if errors.As(err, &customStatus) { err = customStatus.Err @@ -78,6 +77,7 @@ func DefaultErrorHandler(ctx context.Context, mux *runtime.ServeMux, marshaler r mw.code = lo.Ternary(codeStatus == common.Status_OK, 0, int(codeStatus)) mw.message = msg } else { + //nolint:errcheck w.Write([]byte(msg)) } diff --git a/campusapis/schoolTime/schoolYear.go b/campusapis/schoolTime/schoolYear.go index 3f5debb..69b2c8b 100644 --- a/campusapis/schoolTime/schoolYear.go +++ b/campusapis/schoolTime/schoolYear.go @@ -14,13 +14,13 @@ func (*SchoolYear) GormDataType() string { } func CastSchoolYear(in interface{}) *SchoolYear { - switch in.(type) { + switch v := in.(type) { case int, uint, int8, int16, int32, int64: return &SchoolYear{ - Year: in.(int32), + Year: v.(int32), } case string: - if arr := strings.Split(in.(string), "-"); len(arr) != 0 { + if arr := strings.Split(v, "-"); len(arr) != 0 { if y, err := strconv.Atoi(arr[0]); err == nil { return &SchoolYear{ Year: int32(y), diff --git a/campusapis/schoolTime/semester.go b/campusapis/schoolTime/semester.go index bce0854..52bd957 100644 --- a/campusapis/schoolTime/semester.go +++ b/campusapis/schoolTime/semester.go @@ -12,17 +12,17 @@ func (*Semester) GormDataType() string { } func CastSemester(in interface{}) *Semester { - switch in.(type) { + switch v := in.(type) { case int, uint, int8, int16, int32, int64: return &Semester{ - Num: in.(int32), + Num: v.(int32), } case float32, float64: return &Semester{ - Num: int32(in.(float64)), + Num: int32(v.(float64)), } case string: - if v, err := strconv.Atoi(in.(string)); err == nil { + if v, err := strconv.Atoi(v); err == nil { return &Semester{ Num: int32(v), } diff --git a/go.mod b/go.mod index 4681cf0..63f5555 100644 --- a/go.mod +++ b/go.mod @@ -8,10 +8,8 @@ require ( github.com/felixge/httpsnoop v1.0.3 github.com/gin-gonic/gin v1.7.7 github.com/go-redis/redis/v8 v8.11.5 - github.com/golang/protobuf v1.5.2 github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 - github.com/grpc-ecosystem/grpc-gateway v1.16.0 github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.3 github.com/parnurzeal/gorequest v0.2.16 github.com/patrickmn/go-cache v2.1.0+incompatible @@ -42,6 +40,7 @@ require ( github.com/gofrs/uuid v4.2.0+incompatible // indirect github.com/golang/glog v1.0.0 // indirect github.com/golang/groupcache v0.0.0-20210331224755-41bb18bfe9da // indirect + github.com/golang/protobuf v1.5.2 // indirect github.com/inconshreveable/mousetrap v1.0.0 // indirect github.com/jdxcode/netrc v0.0.0-20210204082910-926c7f70242a // indirect github.com/jhump/protocompile v0.0.0-20220216033700-d705409f108f // indirect diff --git a/go.sum b/go.sum index 6bac5d6..5e844c0 100644 --- a/go.sum +++ b/go.sum @@ -243,7 +243,6 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.3.0 h1:+9834+KizmvFV7pXQGSXQTsaW github.com/grpc-ecosystem/go-grpc-middleware v1.3.0/go.mod h1:z0ButlSOZa5vEBq9m2m2hlwIgKw+rp3sdCBRoJY+30Y= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.3 h1:BGNSrTRW4rwfhJiFwvwF4XQ0Y72Jj9YEgxVrtovbD5o= github.com/grpc-ecosystem/grpc-gateway/v2 v2.10.3/go.mod h1:VHn7KgNsRriXa4mcgtkpR00OXyQY6g67JWMvn+R27A4= diff --git a/transfer/transfer.go b/transfer/transfer.go index b67e87c..f1bddf7 100644 --- a/transfer/transfer.go +++ b/transfer/transfer.go @@ -129,7 +129,6 @@ func (r *Request) make() { option.apply(r) } r.setToken() - return } func (r *Request) doneWithError(code int, err error) { diff --git a/types/date.go b/types/date.go index 0c39312..6363b53 100644 --- a/types/date.go +++ b/types/date.go @@ -63,11 +63,11 @@ func (d Date) Value() (driver.Value, error) { func (d *Date) Scan(src interface{}) error { var str string - switch src.(type) { + switch v := src.(type) { case string: - str = src.(string) + str = v case []byte: - str = string(src.([]byte)) + str = string([]byte(v)) default: return errors.New("cannot parse src into string") } From da72ea4144a72b4ffb36eff2643b4d1934d49220 Mon Sep 17 00:00:00 2001 From: sunalwaysknows <86180691+sunalwaysknows@users.noreply.github.com> Date: Wed, 29 Jun 2022 13:41:59 +0800 Subject: [PATCH 13/25] updates --- .github/workflows/buf.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/buf.yml b/.github/workflows/buf.yml index 90a9367..0545789 100644 --- a/.github/workflows/buf.yml +++ b/.github/workflows/buf.yml @@ -50,7 +50,7 @@ jobs: git config --global user.email 'fdkevinzero@gmail.com' git add -A git commit -m "ci(gen): buf generate up to date" - git push origin dev-standard-rpc + git push fi - name: warming go proxy From df8d9dc004136fd0fe8891c2d6911d29cf16fd48 Mon Sep 17 00:00:00 2001 From: FDKevin Date: Wed, 29 Jun 2022 13:49:53 +0800 Subject: [PATCH 14/25] feat: warm go proxy if main branch --- .github/workflows/buf.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/buf.yml b/.github/workflows/buf.yml index 6db1ea0..1dc77ab 100644 --- a/.github/workflows/buf.yml +++ b/.github/workflows/buf.yml @@ -59,6 +59,7 @@ jobs: fi - name: warming go proxy + if: github.ref == 'refs/heads/main' run: | hash=$(git show -s --format=%h) echo $hash From 56fdbbe1831b5a03491e29a320d212005d66b301 Mon Sep 17 00:00:00 2001 From: FDKevin Date: Wed, 29 Jun 2022 13:51:51 +0800 Subject: [PATCH 15/25] update buf lint ci --- .github/workflows/buf-lint.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/buf-lint.yml b/.github/workflows/buf-lint.yml index 24ec680..aa5ed6a 100644 --- a/.github/workflows/buf-lint.yml +++ b/.github/workflows/buf-lint.yml @@ -7,11 +7,9 @@ on: branches: - main paths: - - "**.go" - - "**.go.json" - - "go.mod" - - "go.sum" + - "*.proto" - "buf.yaml" + - ".github/workflows/buf-lint.yaml" jobs: lint-protos: From 9f95bb592af7cd805ff5456e22c904974ea84629 Mon Sep 17 00:00:00 2001 From: FDKevin Date: Wed, 29 Jun 2022 13:58:14 +0800 Subject: [PATCH 16/25] update protos --- aggregatingapis/faq/v1/faq.pb.go | 380 ++++--- aggregatingapis/faq/v1/faq.proto | 6 +- .../infostream/v1/infostream.pb.go | 647 ++++++------ .../infostream/v1/infostream.pb.gw.go | 42 +- .../infostream/v1/infostream.proto | 22 +- .../infostream/v1/infostream_grpc.pb.go | 32 +- campusapis/card/v1/card.pb.go | 155 ++- campusapis/card/v1/card.proto | 1 - campusapis/library/v1/library.pb.go | 511 +++++----- campusapis/library/v1/library.proto | 5 +- .../aggregatingapis/faq/v1/faq.swagger.json | 6 +- .../infostream/v1/infostream.swagger.json | 132 +-- .../campusapis/card/v1/card.swagger.json | 6 +- gatewayapis/auth/v1/auth.pb.go | 931 +++++++++--------- gatewayapis/auth/v1/auth.proto | 1 - gatewayapis/server/v1/defined.pb.go | 146 ++- gatewayapis/server/v1/defined.proto | 5 - gatewayapis/server/v1/manager.pb.go | 172 ++-- gatewayapis/server/v1/manager.proto | 4 - gatewayapis/server/v1/register.pb.go | 141 ++- gatewayapis/server/v1/register.proto | 4 - 21 files changed, 1632 insertions(+), 1717 deletions(-) diff --git a/aggregatingapis/faq/v1/faq.pb.go b/aggregatingapis/faq/v1/faq.pb.go index e05d2b3..236f99b 100644 --- a/aggregatingapis/faq/v1/faq.pb.go +++ b/aggregatingapis/faq/v1/faq.pb.go @@ -8,11 +8,8 @@ package faqv1 import ( _ "google.golang.org/genproto/googleapis/api/annotations" - _ "google.golang.org/genproto/googleapis/api/httpbody" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - _ "google.golang.org/protobuf/types/known/emptypb" - _ "google.golang.org/protobuf/types/known/structpb" reflect "reflect" sync "sync" ) @@ -1210,206 +1207,201 @@ var file_aggregatingapis_faq_v1_faq_proto_rawDesc = []byte{ 0x74, 0x6f, 0x12, 0x16, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x47, - 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6c, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x26, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x22, 0x69, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, - 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5e, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, - 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, - 0x71, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x29, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, - 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, - 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, + 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x47, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x6c, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x5b, - 0x0a, 0x0d, 0x46, 0x41, 0x51, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, - 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x9b, 0x01, 0x0a, 0x07, - 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, - 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2f, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, + 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x26, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x41, + 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x5e, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x33, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, + 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x6c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x29, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x5b, 0x0a, 0x0d, 0x46, 0x41, 0x51, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, + 0x12, 0x33, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x9b, 0x01, 0x0a, 0x07, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, + 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x5f, 0x72, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x61, 0x67, 0x73, 0x22, 0x48, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, + 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, + 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x2b, 0x0a, + 0x13, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x32, 0x0a, 0x1e, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, + 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, + 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x78, + 0x0a, 0x1f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, + 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, + 0x31, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, + 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0xe1, 0x03, 0x0a, 0x03, 0x46, 0x41, 0x51, + 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x6c, 0x70, 0x64, + 0x65, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, + 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, - 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x48, 0x0a, 0x12, 0x47, 0x65, 0x74, - 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, - 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x4b, 0x65, 0x79, 0x22, 0x2b, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x22, 0x32, 0x0a, 0x1e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, - 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x22, 0x78, 0x0a, 0x1f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, - 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x3e, - 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, - 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, - 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0xe1, - 0x03, 0x0a, 0x03, 0x46, 0x41, 0x51, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x0e, 0x0a, - 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, - 0x0b, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, - 0x73, 0x77, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, - 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x63, - 0x68, 0x74, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x73, - 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, - 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3d, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x75, - 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, - 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x12, 0x3d, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x73, - 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, + 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, + 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x63, + 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, + 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, + 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3d, + 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x3d, 0x0a, + 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x22, 0xb6, 0x01, 0x0a, + 0x0e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, + 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, + 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, + 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, + 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xa9, 0x01, 0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, + 0x79, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, + 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x6c, 0x70, 0x64, + 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, + 0x65, 0x22, 0x49, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, + 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, + 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0xff, 0x05, 0x0a, + 0x0a, 0x46, 0x41, 0x51, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x77, 0x0a, 0x09, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, - 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x22, 0xb6, 0x01, 0x0a, 0x0e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, - 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x72, 0x63, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x6b, - 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, - 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, - 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xa9, 0x01, 0x0a, 0x08, - 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, - 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, - 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, - 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, - 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x49, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x12, - 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x32, 0xff, 0x05, 0x0a, 0x0a, 0x46, 0x41, 0x51, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x77, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x28, + 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x12, 0x68, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x12, 0x25, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, - 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x07, 0x2f, 0x66, 0x61, - 0x71, 0x2f, 0x76, 0x31, 0x3a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x68, 0x0a, 0x06, 0x47, 0x65, - 0x74, 0x46, 0x41, 0x51, 0x12, 0x25, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, - 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x09, 0x12, 0x07, 0x2f, 0x66, 0x61, - 0x71, 0x2f, 0x76, 0x31, 0x12, 0x77, 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, - 0x51, 0x12, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x67, + 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x09, 0x12, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x12, 0x77, + 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x32, 0x07, - 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x71, 0x0a, - 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x28, 0x2e, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x32, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, + 0x31, 0x3a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x71, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x46, 0x41, 0x51, 0x12, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x0f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x09, 0x2a, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, - 0x12, 0x7d, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, - 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, - 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, - 0x12, 0x0d, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, - 0xa2, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, - 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x36, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, - 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, - 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, - 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, - 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x42, 0xde, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, - 0x2e, 0x76, 0x31, 0x42, 0x08, 0x46, 0x61, 0x71, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, - 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, - 0x2f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x61, 0x71, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x41, 0x46, 0x58, 0xaa, 0x02, 0x16, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x46, 0x61, 0x71, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x41, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x46, - 0x61, 0x71, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x46, 0x61, 0x71, 0x5c, 0x56, 0x31, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x41, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x46, 0x61, - 0x71, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, + 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, + 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x09, 0x2a, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x12, 0x7d, 0x0a, 0x0b, 0x47, 0x65, + 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x66, 0x61, 0x71, + 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0xa2, 0x01, 0x0a, 0x17, 0x53, 0x65, + 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, + 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x36, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, + 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, + 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, + 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0xde, + 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x46, + 0x61, 0x71, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, + 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, + 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, + 0x31, 0x3b, 0x66, 0x61, 0x71, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x46, 0x58, 0xaa, 0x02, 0x16, + 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x46, 0x61, 0x71, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x46, 0x61, 0x71, 0x5c, 0x56, 0x31, 0xe2, + 0x02, 0x22, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x5c, 0x46, 0x61, 0x71, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x46, 0x61, 0x71, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/aggregatingapis/faq/v1/faq.proto b/aggregatingapis/faq/v1/faq.proto index 1e1e146..25ccbc0 100644 --- a/aggregatingapis/faq/v1/faq.proto +++ b/aggregatingapis/faq/v1/faq.proto @@ -3,14 +3,10 @@ syntax = "proto3"; package aggregatingapis.faq.v1; import "google/api/annotations.proto"; -import "google/api/httpbody.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/struct.proto"; option go_package = "./aggregatingapis/faq/v1"; service FAQService { - rpc CreateFAQ(CreateFAQRequest) returns (CreateFAQResponse) { option (google.api.http) = { post: "/faq/v1" @@ -36,7 +32,7 @@ service FAQService { delete: "/faq/v1" }; } - + rpc GetFAQImage(GetFAQImageRequest) returns (GetFAQImageResponse) { option (google.api.http) = { get: "/faq/v1/image" diff --git a/aggregatingapis/infostream/v1/infostream.pb.go b/aggregatingapis/infostream/v1/infostream.pb.go index b75142a..7379f27 100644 --- a/aggregatingapis/infostream/v1/infostream.pb.go +++ b/aggregatingapis/infostream/v1/infostream.pb.go @@ -4,7 +4,7 @@ // protoc (unknown) // source: aggregatingapis/infostream/v1/infostream.proto -package infoStreamv1 +package infotreamv1 import ( _ "google.golang.org/genproto/googleapis/api/annotations" @@ -21,7 +21,7 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type InfoStreamReq struct { +type GetInfostreamRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -29,8 +29,8 @@ type InfoStreamReq struct { StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` } -func (x *InfoStreamReq) Reset() { - *x = InfoStreamReq{} +func (x *GetInfostreamRequest) Reset() { + *x = GetInfostreamRequest{} if protoimpl.UnsafeEnabled { mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -38,13 +38,13 @@ func (x *InfoStreamReq) Reset() { } } -func (x *InfoStreamReq) String() string { +func (x *GetInfostreamRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InfoStreamReq) ProtoMessage() {} +func (*GetInfostreamRequest) ProtoMessage() {} -func (x *InfoStreamReq) ProtoReflect() protoreflect.Message { +func (x *GetInfostreamRequest) ProtoReflect() protoreflect.Message { mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56,30 +56,30 @@ func (x *InfoStreamReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InfoStreamReq.ProtoReflect.Descriptor instead. -func (*InfoStreamReq) Descriptor() ([]byte, []int) { +// Deprecated: Use GetInfostreamRequest.ProtoReflect.Descriptor instead. +func (*GetInfostreamRequest) Descriptor() ([]byte, []int) { return file_aggregatingapis_infostream_v1_infostream_proto_rawDescGZIP(), []int{0} } -func (x *InfoStreamReq) GetStaffId() string { +func (x *GetInfostreamRequest) GetStaffId() string { if x != nil { return x.StaffId } return "" } -type InfoStreamResp struct { +type GetInfostreamResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Data *InfoStreamResp_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *GetInfostreamResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } -func (x *InfoStreamResp) Reset() { - *x = InfoStreamResp{} +func (x *GetInfostreamResponse) Reset() { + *x = GetInfostreamResponse{} if protoimpl.UnsafeEnabled { mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -87,13 +87,13 @@ func (x *InfoStreamResp) Reset() { } } -func (x *InfoStreamResp) String() string { +func (x *GetInfostreamResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InfoStreamResp) ProtoMessage() {} +func (*GetInfostreamResponse) ProtoMessage() {} -func (x *InfoStreamResp) ProtoReflect() protoreflect.Message { +func (x *GetInfostreamResponse) ProtoReflect() protoreflect.Message { mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -105,33 +105,33 @@ func (x *InfoStreamResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InfoStreamResp.ProtoReflect.Descriptor instead. -func (*InfoStreamResp) Descriptor() ([]byte, []int) { +// Deprecated: Use GetInfostreamResponse.ProtoReflect.Descriptor instead. +func (*GetInfostreamResponse) Descriptor() ([]byte, []int) { return file_aggregatingapis_infostream_v1_infostream_proto_rawDescGZIP(), []int{1} } -func (x *InfoStreamResp) GetError() uint32 { +func (x *GetInfostreamResponse) GetError() uint32 { if x != nil { return x.Error } return 0 } -func (x *InfoStreamResp) GetMsg() string { +func (x *GetInfostreamResponse) GetMsg() string { if x != nil { return x.Msg } return "" } -func (x *InfoStreamResp) GetData() *InfoStreamResp_Data { +func (x *GetInfostreamResponse) GetData() *GetInfostreamResponse_Data { if x != nil { return x.Data } return nil } -type WeatherResp struct { +type WeatherResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -140,8 +140,8 @@ type WeatherResp struct { Data *WeatherData `protobuf:"bytes,2,opt,name=data,proto3" json:"data,omitempty"` } -func (x *WeatherResp) Reset() { - *x = WeatherResp{} +func (x *WeatherResponse) Reset() { + *x = WeatherResponse{} if protoimpl.UnsafeEnabled { mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -149,13 +149,13 @@ func (x *WeatherResp) Reset() { } } -func (x *WeatherResp) String() string { +func (x *WeatherResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*WeatherResp) ProtoMessage() {} +func (*WeatherResponse) ProtoMessage() {} -func (x *WeatherResp) ProtoReflect() protoreflect.Message { +func (x *WeatherResponse) ProtoReflect() protoreflect.Message { mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -167,19 +167,19 @@ func (x *WeatherResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use WeatherResp.ProtoReflect.Descriptor instead. -func (*WeatherResp) Descriptor() ([]byte, []int) { +// Deprecated: Use WeatherResponse.ProtoReflect.Descriptor instead. +func (*WeatherResponse) Descriptor() ([]byte, []int) { return file_aggregatingapis_infostream_v1_infostream_proto_rawDescGZIP(), []int{2} } -func (x *WeatherResp) GetAvailable() bool { +func (x *WeatherResponse) GetAvailable() bool { if x != nil { return x.Available } return false } -func (x *WeatherResp) GetData() *WeatherData { +func (x *WeatherResponse) GetData() *WeatherData { if x != nil { return x.Data } @@ -1331,23 +1331,23 @@ func (*SettingsResp) Descriptor() ([]byte, []int) { return file_aggregatingapis_infostream_v1_infostream_proto_rawDescGZIP(), []int{15} } -type InfoStreamResp_Data struct { +type GetInfostreamResponse_Data struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Weather *WeatherResp `protobuf:"bytes,1,opt,name=weather,proto3" json:"weather,omitempty"` - Schedule *ScheduleResp `protobuf:"bytes,2,opt,name=schedule,proto3" json:"schedule,omitempty"` - Exam *ExamResp `protobuf:"bytes,3,opt,name=exam,proto3" json:"exam,omitempty"` - Score *ScoreResp `protobuf:"bytes,4,opt,name=score,proto3" json:"score,omitempty"` - Sunrun *SunRunResp `protobuf:"bytes,5,opt,name=sunrun,proto3" json:"sunrun,omitempty"` - Card *CardResp `protobuf:"bytes,6,opt,name=card,proto3" json:"card,omitempty"` - Electric *ElectricResp `protobuf:"bytes,7,opt,name=electric,proto3" json:"electric,omitempty"` - Settings *SettingsResp `protobuf:"bytes,8,opt,name=settings,proto3" json:"settings,omitempty"` + Weather *WeatherResponse `protobuf:"bytes,1,opt,name=weather,proto3" json:"weather,omitempty"` + Schedule *ScheduleResp `protobuf:"bytes,2,opt,name=schedule,proto3" json:"schedule,omitempty"` + Exam *ExamResp `protobuf:"bytes,3,opt,name=exam,proto3" json:"exam,omitempty"` + Score *ScoreResp `protobuf:"bytes,4,opt,name=score,proto3" json:"score,omitempty"` + Sunrun *SunRunResp `protobuf:"bytes,5,opt,name=sunrun,proto3" json:"sunrun,omitempty"` + Card *CardResp `protobuf:"bytes,6,opt,name=card,proto3" json:"card,omitempty"` + Electric *ElectricResp `protobuf:"bytes,7,opt,name=electric,proto3" json:"electric,omitempty"` + Settings *SettingsResp `protobuf:"bytes,8,opt,name=settings,proto3" json:"settings,omitempty"` } -func (x *InfoStreamResp_Data) Reset() { - *x = InfoStreamResp_Data{} +func (x *GetInfostreamResponse_Data) Reset() { + *x = GetInfostreamResponse_Data{} if protoimpl.UnsafeEnabled { mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1355,13 +1355,13 @@ func (x *InfoStreamResp_Data) Reset() { } } -func (x *InfoStreamResp_Data) String() string { +func (x *GetInfostreamResponse_Data) String() string { return protoimpl.X.MessageStringOf(x) } -func (*InfoStreamResp_Data) ProtoMessage() {} +func (*GetInfostreamResponse_Data) ProtoMessage() {} -func (x *InfoStreamResp_Data) ProtoReflect() protoreflect.Message { +func (x *GetInfostreamResponse_Data) ProtoReflect() protoreflect.Message { mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1373,61 +1373,61 @@ func (x *InfoStreamResp_Data) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use InfoStreamResp_Data.ProtoReflect.Descriptor instead. -func (*InfoStreamResp_Data) Descriptor() ([]byte, []int) { +// Deprecated: Use GetInfostreamResponse_Data.ProtoReflect.Descriptor instead. +func (*GetInfostreamResponse_Data) Descriptor() ([]byte, []int) { return file_aggregatingapis_infostream_v1_infostream_proto_rawDescGZIP(), []int{1, 0} } -func (x *InfoStreamResp_Data) GetWeather() *WeatherResp { +func (x *GetInfostreamResponse_Data) GetWeather() *WeatherResponse { if x != nil { return x.Weather } return nil } -func (x *InfoStreamResp_Data) GetSchedule() *ScheduleResp { +func (x *GetInfostreamResponse_Data) GetSchedule() *ScheduleResp { if x != nil { return x.Schedule } return nil } -func (x *InfoStreamResp_Data) GetExam() *ExamResp { +func (x *GetInfostreamResponse_Data) GetExam() *ExamResp { if x != nil { return x.Exam } return nil } -func (x *InfoStreamResp_Data) GetScore() *ScoreResp { +func (x *GetInfostreamResponse_Data) GetScore() *ScoreResp { if x != nil { return x.Score } return nil } -func (x *InfoStreamResp_Data) GetSunrun() *SunRunResp { +func (x *GetInfostreamResponse_Data) GetSunrun() *SunRunResp { if x != nil { return x.Sunrun } return nil } -func (x *InfoStreamResp_Data) GetCard() *CardResp { +func (x *GetInfostreamResponse_Data) GetCard() *CardResp { if x != nil { return x.Card } return nil } -func (x *InfoStreamResp_Data) GetElectric() *ElectricResp { +func (x *GetInfostreamResponse_Data) GetElectric() *ElectricResp { if x != nil { return x.Electric } return nil } -func (x *InfoStreamResp_Data) GetSettings() *SettingsResp { +func (x *GetInfostreamResponse_Data) GetSettings() *SettingsResp { if x != nil { return x.Settings } @@ -1440,96 +1440,97 @@ var file_aggregatingapis_infostream_v1_infostream_proto_rawDesc = []byte{ 0x0a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x1d, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x1a, - 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, - 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x29, 0x0a, - 0x0d, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0xa7, 0x05, 0x0a, 0x0e, 0x49, 0x6e, 0x66, - 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x46, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x32, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, - 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xa4, 0x04, 0x0a, 0x04, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x44, 0x0a, 0x07, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x52, 0x07, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x08, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, - 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, - 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x65, 0x78, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x65, 0x78, 0x61, 0x6d, - 0x12, 0x3e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x12, 0x41, 0x0a, 0x06, 0x73, 0x75, 0x6e, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, - 0x2e, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x06, 0x73, 0x75, 0x6e, - 0x72, 0x75, 0x6e, 0x12, 0x3b, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, - 0x12, 0x47, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x12, 0x1c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1c, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x30, 0x0a, 0x14, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0xb0, + 0x05, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x4c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, + 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xa0, + 0x04, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x07, 0x77, 0x65, 0x61, 0x74, 0x68, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, + 0x12, 0x46, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x65, 0x78, 0x61, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, + 0x65, 0x78, 0x61, 0x6d, 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x05, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x73, 0x75, 0x6e, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x06, 0x73, + 0x75, 0x6e, 0x72, 0x75, 0x6e, 0x12, 0x3a, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x63, 0x61, 0x72, + 0x64, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x52, - 0x08, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x12, 0x47, 0x0a, 0x08, 0x73, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, + 0x08, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x12, 0x46, 0x0a, 0x08, 0x73, 0x65, 0x74, + 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x65, 0x74, 0x74, - 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, - 0x67, 0x73, 0x22, 0x6b, 0x0a, 0x0b, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x77, 0x65, - 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0xf7, 0x02, 0x0a, 0x0b, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x10, 0x0a, 0x03, 0x61, 0x71, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x71, - 0x69, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6b, 0x79, 0x63, 0x6f, 0x6e, 0x4e, - 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6b, 0x79, 0x63, 0x6f, 0x6e, - 0x4e, 0x6f, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, - 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, - 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x52, - 0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x52, - 0x61, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x69, - 0x6e, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x52, 0x61, 0x69, 0x6e, 0x43, - 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x69, 0x6e, 0x43, - 0x6f, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x52, 0x61, 0x69, 0x6e, 0x43, - 0x6f, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x65, 0x6d, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x26, 0x0a, 0x0e, 0x74, - 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, - 0x4d, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x4e, 0x6f, 0x77, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x65, 0x6d, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb8, 0x01, 0x0a, 0x0c, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x74, 0x6f, 0x64, 0x61, - 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x47, 0x0a, 0x08, 0x74, - 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, + 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, + 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, + 0x73, 0x22, 0x6e, 0x0a, 0x0f, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0xf7, 0x02, 0x0a, 0x0b, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, + 0x61, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x71, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, + 0x61, 0x71, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6b, 0x79, 0x63, 0x6f, + 0x6e, 0x4e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6b, 0x79, 0x63, + 0x6f, 0x6e, 0x4e, 0x6f, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, + 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x6c, + 0x6c, 0x52, 0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x6c, + 0x6c, 0x52, 0x61, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, + 0x74, 0x69, 0x6e, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x52, 0x61, 0x69, + 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x69, + 0x6e, 0x43, 0x6f, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x52, 0x61, 0x69, + 0x6e, 0x43, 0x6f, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, + 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x26, 0x0a, + 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, + 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x77, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, + 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x77, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb6, 0x01, 0x0a, 0x0c, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x74, 0x6f, + 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x46, 0x0a, 0x08, + 0x74, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x74, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x22, 0xfe, 0x01, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, @@ -1547,148 +1548,148 @@ var file_aggregatingapis_infostream_v1_infostream_proto_rawDesc = []byte{ 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x65, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x64, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x3a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x78, - 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x82, 0x02, 0x0a, - 0x08, 0x65, 0x78, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, - 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, - 0x78, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, - 0x78, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x61, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, - 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x22, 0x67, 0x0a, 0x09, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, - 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x67, 0x67, + 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x78, 0x61, + 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x82, 0x02, 0x0a, 0x08, + 0x65, 0x78, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, + 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, + 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x59, 0x65, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x61, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x22, 0x66, 0x0a, 0x09, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, + 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x03, 0x0a, 0x09, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, + 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, + 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, + 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0x68, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0xf6, 0x03, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x61, 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, + 0x61, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x61, + 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, + 0x12, 0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x64, + 0x61, 0x79, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6d, 0x4d, 0x69, 0x6c, + 0x65, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6d, 0x4d, 0x69, + 0x6c, 0x65, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x70, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, + 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, + 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, + 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, + 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x69, 0x6c, + 0x65, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3c, 0x0a, 0x08, 0x63, 0x61, 0x72, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6c, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, + 0x63, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, + 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x73, + 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x32, 0xa6, 0x01, 0x0a, 0x11, + 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x90, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x12, 0x32, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x2f, 0x76, 0x31, 0x42, 0x90, 0x02, 0x0a, 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x03, 0x0a, 0x09, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x1e, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x28, - 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, - 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0x69, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x52, - 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0xf6, 0x03, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x01, 0x52, 0x07, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x64, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x61, - 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6d, - 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, - 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6d, 0x53, 0x70, - 0x65, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x70, 0x6d, 0x53, 0x70, 0x65, - 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, - 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x24, - 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x65, - 0x61, 0x67, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x61, - 0x67, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x61, - 0x6c, 0x69, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, - 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3c, 0x0a, 0x08, - 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, - 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6d, 0x0a, 0x0c, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, - 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x0c, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, - 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, - 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x0e, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x32, - 0x9a, 0x01, 0x0a, 0x11, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x84, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x2c, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x2d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x69, - 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x42, 0x96, 0x02, 0x0a, - 0x21, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x31, 0x42, 0x0f, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, - 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, - 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, - 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x69, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x76, - 0x31, 0xa2, 0x02, 0x03, 0x41, 0x49, 0x58, 0xaa, 0x02, 0x1d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x29, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x1f, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x49, 0x6e, 0x66, 0x6f, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x49, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, + 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x69, 0x6e, + 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x69, 0x6e, 0x66, 0x6f, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x49, 0x58, 0xaa, 0x02, 0x1c, + 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x49, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1c, 0x41, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, + 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x28, 0x41, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, + 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x49, 0x6e, 0x66, 0x6f, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1705,43 +1706,43 @@ func file_aggregatingapis_infostream_v1_infostream_proto_rawDescGZIP() []byte { var file_aggregatingapis_infostream_v1_infostream_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_aggregatingapis_infostream_v1_infostream_proto_goTypes = []interface{}{ - (*InfoStreamReq)(nil), // 0: aggregatingapis.infoStream.v1.InfoStreamReq - (*InfoStreamResp)(nil), // 1: aggregatingapis.infoStream.v1.InfoStreamResp - (*WeatherResp)(nil), // 2: aggregatingapis.infoStream.v1.weatherResp - (*WeatherData)(nil), // 3: aggregatingapis.infoStream.v1.weatherData - (*ScheduleResp)(nil), // 4: aggregatingapis.infoStream.v1.scheduleResp - (*ScheduleData)(nil), // 5: aggregatingapis.infoStream.v1.scheduleData - (*ExamResp)(nil), // 6: aggregatingapis.infoStream.v1.examResp - (*ExamData)(nil), // 7: aggregatingapis.infoStream.v1.examData - (*ScoreResp)(nil), // 8: aggregatingapis.infoStream.v1.scoreResp - (*ScoreData)(nil), // 9: aggregatingapis.infoStream.v1.scoreData - (*SunRunResp)(nil), // 10: aggregatingapis.infoStream.v1.sunRunResp - (*SunRunData)(nil), // 11: aggregatingapis.infoStream.v1.sunRunData - (*CardResp)(nil), // 12: aggregatingapis.infoStream.v1.cardResp - (*ElectricResp)(nil), // 13: aggregatingapis.infoStream.v1.electricResp - (*ElectricData)(nil), // 14: aggregatingapis.infoStream.v1.electricData - (*SettingsResp)(nil), // 15: aggregatingapis.infoStream.v1.settingsResp - (*InfoStreamResp_Data)(nil), // 16: aggregatingapis.infoStream.v1.InfoStreamResp.Data + (*GetInfostreamRequest)(nil), // 0: aggregatingapis.infotream.v1.GetInfostreamRequest + (*GetInfostreamResponse)(nil), // 1: aggregatingapis.infotream.v1.GetInfostreamResponse + (*WeatherResponse)(nil), // 2: aggregatingapis.infotream.v1.WeatherResponse + (*WeatherData)(nil), // 3: aggregatingapis.infotream.v1.WeatherData + (*ScheduleResp)(nil), // 4: aggregatingapis.infotream.v1.scheduleResp + (*ScheduleData)(nil), // 5: aggregatingapis.infotream.v1.scheduleData + (*ExamResp)(nil), // 6: aggregatingapis.infotream.v1.examResp + (*ExamData)(nil), // 7: aggregatingapis.infotream.v1.examData + (*ScoreResp)(nil), // 8: aggregatingapis.infotream.v1.scoreResp + (*ScoreData)(nil), // 9: aggregatingapis.infotream.v1.scoreData + (*SunRunResp)(nil), // 10: aggregatingapis.infotream.v1.sunRunResp + (*SunRunData)(nil), // 11: aggregatingapis.infotream.v1.sunRunData + (*CardResp)(nil), // 12: aggregatingapis.infotream.v1.cardResp + (*ElectricResp)(nil), // 13: aggregatingapis.infotream.v1.electricResp + (*ElectricData)(nil), // 14: aggregatingapis.infotream.v1.electricData + (*SettingsResp)(nil), // 15: aggregatingapis.infotream.v1.settingsResp + (*GetInfostreamResponse_Data)(nil), // 16: aggregatingapis.infotream.v1.GetInfostreamResponse.Data } var file_aggregatingapis_infostream_v1_infostream_proto_depIdxs = []int32{ - 16, // 0: aggregatingapis.infoStream.v1.InfoStreamResp.data:type_name -> aggregatingapis.infoStream.v1.InfoStreamResp.Data - 3, // 1: aggregatingapis.infoStream.v1.weatherResp.data:type_name -> aggregatingapis.infoStream.v1.weatherData - 5, // 2: aggregatingapis.infoStream.v1.scheduleResp.today:type_name -> aggregatingapis.infoStream.v1.scheduleData - 5, // 3: aggregatingapis.infoStream.v1.scheduleResp.tomorrow:type_name -> aggregatingapis.infoStream.v1.scheduleData - 7, // 4: aggregatingapis.infoStream.v1.examResp.data:type_name -> aggregatingapis.infoStream.v1.examData - 9, // 5: aggregatingapis.infoStream.v1.scoreResp.data:type_name -> aggregatingapis.infoStream.v1.scoreData - 11, // 6: aggregatingapis.infoStream.v1.sunRunResp.data:type_name -> aggregatingapis.infoStream.v1.sunRunData - 14, // 7: aggregatingapis.infoStream.v1.electricResp.data:type_name -> aggregatingapis.infoStream.v1.electricData - 2, // 8: aggregatingapis.infoStream.v1.InfoStreamResp.Data.weather:type_name -> aggregatingapis.infoStream.v1.weatherResp - 4, // 9: aggregatingapis.infoStream.v1.InfoStreamResp.Data.schedule:type_name -> aggregatingapis.infoStream.v1.scheduleResp - 6, // 10: aggregatingapis.infoStream.v1.InfoStreamResp.Data.exam:type_name -> aggregatingapis.infoStream.v1.examResp - 8, // 11: aggregatingapis.infoStream.v1.InfoStreamResp.Data.score:type_name -> aggregatingapis.infoStream.v1.scoreResp - 10, // 12: aggregatingapis.infoStream.v1.InfoStreamResp.Data.sunrun:type_name -> aggregatingapis.infoStream.v1.sunRunResp - 12, // 13: aggregatingapis.infoStream.v1.InfoStreamResp.Data.card:type_name -> aggregatingapis.infoStream.v1.cardResp - 13, // 14: aggregatingapis.infoStream.v1.InfoStreamResp.Data.electric:type_name -> aggregatingapis.infoStream.v1.electricResp - 15, // 15: aggregatingapis.infoStream.v1.InfoStreamResp.Data.settings:type_name -> aggregatingapis.infoStream.v1.settingsResp - 0, // 16: aggregatingapis.infoStream.v1.InfoStreamService.GetInfoStream:input_type -> aggregatingapis.infoStream.v1.InfoStreamReq - 1, // 17: aggregatingapis.infoStream.v1.InfoStreamService.GetInfoStream:output_type -> aggregatingapis.infoStream.v1.InfoStreamResp + 16, // 0: aggregatingapis.infotream.v1.GetInfostreamResponse.data:type_name -> aggregatingapis.infotream.v1.GetInfostreamResponse.Data + 3, // 1: aggregatingapis.infotream.v1.WeatherResponse.data:type_name -> aggregatingapis.infotream.v1.WeatherData + 5, // 2: aggregatingapis.infotream.v1.scheduleResp.today:type_name -> aggregatingapis.infotream.v1.scheduleData + 5, // 3: aggregatingapis.infotream.v1.scheduleResp.tomorrow:type_name -> aggregatingapis.infotream.v1.scheduleData + 7, // 4: aggregatingapis.infotream.v1.examResp.data:type_name -> aggregatingapis.infotream.v1.examData + 9, // 5: aggregatingapis.infotream.v1.scoreResp.data:type_name -> aggregatingapis.infotream.v1.scoreData + 11, // 6: aggregatingapis.infotream.v1.sunRunResp.data:type_name -> aggregatingapis.infotream.v1.sunRunData + 14, // 7: aggregatingapis.infotream.v1.electricResp.data:type_name -> aggregatingapis.infotream.v1.electricData + 2, // 8: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.weather:type_name -> aggregatingapis.infotream.v1.WeatherResponse + 4, // 9: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.schedule:type_name -> aggregatingapis.infotream.v1.scheduleResp + 6, // 10: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.exam:type_name -> aggregatingapis.infotream.v1.examResp + 8, // 11: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.score:type_name -> aggregatingapis.infotream.v1.scoreResp + 10, // 12: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.sunrun:type_name -> aggregatingapis.infotream.v1.sunRunResp + 12, // 13: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.card:type_name -> aggregatingapis.infotream.v1.cardResp + 13, // 14: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.electric:type_name -> aggregatingapis.infotream.v1.electricResp + 15, // 15: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.settings:type_name -> aggregatingapis.infotream.v1.settingsResp + 0, // 16: aggregatingapis.infotream.v1.InfoStreamService.GetInfostream:input_type -> aggregatingapis.infotream.v1.GetInfostreamRequest + 1, // 17: aggregatingapis.infotream.v1.InfoStreamService.GetInfostream:output_type -> aggregatingapis.infotream.v1.GetInfostreamResponse 17, // [17:18] is the sub-list for method output_type 16, // [16:17] is the sub-list for method input_type 16, // [16:16] is the sub-list for extension type_name @@ -1756,7 +1757,7 @@ func file_aggregatingapis_infostream_v1_infostream_proto_init() { } if !protoimpl.UnsafeEnabled { file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InfoStreamReq); i { + switch v := v.(*GetInfostreamRequest); i { case 0: return &v.state case 1: @@ -1768,7 +1769,7 @@ func file_aggregatingapis_infostream_v1_infostream_proto_init() { } } file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InfoStreamResp); i { + switch v := v.(*GetInfostreamResponse); i { case 0: return &v.state case 1: @@ -1780,7 +1781,7 @@ func file_aggregatingapis_infostream_v1_infostream_proto_init() { } } file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WeatherResp); i { + switch v := v.(*WeatherResponse); i { case 0: return &v.state case 1: @@ -1948,7 +1949,7 @@ func file_aggregatingapis_infostream_v1_infostream_proto_init() { } } file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InfoStreamResp_Data); i { + switch v := v.(*GetInfostreamResponse_Data); i { case 0: return &v.state case 1: diff --git a/aggregatingapis/infostream/v1/infostream.pb.gw.go b/aggregatingapis/infostream/v1/infostream.pb.gw.go index 000a120..2093155 100644 --- a/aggregatingapis/infostream/v1/infostream.pb.gw.go +++ b/aggregatingapis/infostream/v1/infostream.pb.gw.go @@ -2,11 +2,11 @@ // source: aggregatingapis/infostream/v1/infostream.proto /* -Package infoStreamv1 is a reverse proxy. +Package infotreamv1 is a reverse proxy. It translates gRPC into RESTful JSON APIs. */ -package infoStreamv1 +package infotreamv1 import ( "context" @@ -32,37 +32,37 @@ var _ = utilities.NewDoubleArray var _ = metadata.Join var ( - filter_InfoStreamService_GetInfoStream_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + filter_InfoStreamService_GetInfostream_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) -func request_InfoStreamService_GetInfoStream_0(ctx context.Context, marshaler runtime.Marshaler, client InfoStreamServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq InfoStreamReq +func request_InfoStreamService_GetInfostream_0(ctx context.Context, marshaler runtime.Marshaler, client InfoStreamServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetInfostreamRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_InfoStreamService_GetInfoStream_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_InfoStreamService_GetInfostream_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := client.GetInfoStream(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + msg, err := client.GetInfostream(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) return msg, metadata, err } -func local_request_InfoStreamService_GetInfoStream_0(ctx context.Context, marshaler runtime.Marshaler, server InfoStreamServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq InfoStreamReq +func local_request_InfoStreamService_GetInfostream_0(ctx context.Context, marshaler runtime.Marshaler, server InfoStreamServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq GetInfostreamRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_InfoStreamService_GetInfoStream_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_InfoStreamService_GetInfostream_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - msg, err := server.GetInfoStream(ctx, &protoReq) + msg, err := server.GetInfostream(ctx, &protoReq) return msg, metadata, err } @@ -73,19 +73,19 @@ func local_request_InfoStreamService_GetInfoStream_0(ctx context.Context, marsha // Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInfoStreamServiceHandlerFromEndpoint instead. func RegisterInfoStreamServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InfoStreamServiceServer) error { - mux.Handle("GET", pattern_InfoStreamService_GetInfoStream_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_InfoStreamService_GetInfostream_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.infoStream.v1.InfoStreamService/GetInfoStream", runtime.WithHTTPPathPattern("/infoStream/v1")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.infotream.v1.InfoStreamService/GetInfostream", runtime.WithHTTPPathPattern("/infostream/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InfoStreamService_GetInfoStream_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InfoStreamService_GetInfostream_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -93,7 +93,7 @@ func RegisterInfoStreamServiceHandlerServer(ctx context.Context, mux *runtime.Se return } - forward_InfoStreamService_GetInfoStream_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InfoStreamService_GetInfostream_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -138,24 +138,24 @@ func RegisterInfoStreamServiceHandler(ctx context.Context, mux *runtime.ServeMux // "InfoStreamServiceClient" to call the correct interceptors. func RegisterInfoStreamServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InfoStreamServiceClient) error { - mux.Handle("GET", pattern_InfoStreamService_GetInfoStream_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_InfoStreamService_GetInfostream_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.infoStream.v1.InfoStreamService/GetInfoStream", runtime.WithHTTPPathPattern("/infoStream/v1")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.infotream.v1.InfoStreamService/GetInfostream", runtime.WithHTTPPathPattern("/infostream/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InfoStreamService_GetInfoStream_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_InfoStreamService_GetInfostream_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_InfoStreamService_GetInfoStream_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InfoStreamService_GetInfostream_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -163,9 +163,9 @@ func RegisterInfoStreamServiceHandlerClient(ctx context.Context, mux *runtime.Se } var ( - pattern_InfoStreamService_GetInfoStream_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"infoStream", "v1"}, "")) + pattern_InfoStreamService_GetInfostream_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"infostream", "v1"}, "")) ) var ( - forward_InfoStreamService_GetInfoStream_0 = runtime.ForwardResponseMessage + forward_InfoStreamService_GetInfostream_0 = runtime.ForwardResponseMessage ) diff --git a/aggregatingapis/infostream/v1/infostream.proto b/aggregatingapis/infostream/v1/infostream.proto index 8b3ac0d..0be8b1d 100644 --- a/aggregatingapis/infostream/v1/infostream.proto +++ b/aggregatingapis/infostream/v1/infostream.proto @@ -1,29 +1,29 @@ syntax = "proto3"; -package aggregatingapis.infoStream.v1; +package aggregatingapis.infotream.v1; import "google/api/annotations.proto"; option go_package = "./aggregatingapis/infoStream/v1"; service InfoStreamService { - rpc GetInfoStream(InfoStreamReq) returns (InfoStreamResp) { + rpc GetInfostream(GetInfostreamRequest) returns (GetInfostreamResponse) { option (google.api.http) = { - get: "/infoStream/v1" + get: "/infostream/v1" }; } } -message InfoStreamReq { +message GetInfostreamRequest { string staffId = 1; } -message InfoStreamResp { +message GetInfostreamResponse { uint32 error = 1; string msg = 2; Data data = 3; message Data { - weatherResp weather = 1; + WeatherResponse weather = 1; scheduleResp schedule = 2; examResp exam = 3; scoreResp score = 4; @@ -34,12 +34,12 @@ message InfoStreamResp { } } -message weatherResp { +message WeatherResponse { bool available = 1; - weatherData data = 2; + WeatherData data = 2; } -message weatherData { +message WeatherData { uint32 aqi = 1; string desc = 2; string skyconNow = 3; @@ -168,6 +168,4 @@ message electricData { string roomName = 3; } -message settingsResp { - -} \ No newline at end of file +message settingsResp {} diff --git a/aggregatingapis/infostream/v1/infostream_grpc.pb.go b/aggregatingapis/infostream/v1/infostream_grpc.pb.go index 9b0e3e0..993d4de 100644 --- a/aggregatingapis/infostream/v1/infostream_grpc.pb.go +++ b/aggregatingapis/infostream/v1/infostream_grpc.pb.go @@ -4,7 +4,7 @@ // - protoc (unknown) // source: aggregatingapis/infostream/v1/infostream.proto -package infoStreamv1 +package infotreamv1 import ( context "context" @@ -22,7 +22,7 @@ const _ = grpc.SupportPackageIsVersion7 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type InfoStreamServiceClient interface { - GetInfoStream(ctx context.Context, in *InfoStreamReq, opts ...grpc.CallOption) (*InfoStreamResp, error) + GetInfostream(ctx context.Context, in *GetInfostreamRequest, opts ...grpc.CallOption) (*GetInfostreamResponse, error) } type infoStreamServiceClient struct { @@ -33,9 +33,9 @@ func NewInfoStreamServiceClient(cc grpc.ClientConnInterface) InfoStreamServiceCl return &infoStreamServiceClient{cc} } -func (c *infoStreamServiceClient) GetInfoStream(ctx context.Context, in *InfoStreamReq, opts ...grpc.CallOption) (*InfoStreamResp, error) { - out := new(InfoStreamResp) - err := c.cc.Invoke(ctx, "/aggregatingapis.infoStream.v1.InfoStreamService/GetInfoStream", in, out, opts...) +func (c *infoStreamServiceClient) GetInfostream(ctx context.Context, in *GetInfostreamRequest, opts ...grpc.CallOption) (*GetInfostreamResponse, error) { + out := new(GetInfostreamResponse) + err := c.cc.Invoke(ctx, "/aggregatingapis.infotream.v1.InfoStreamService/GetInfostream", in, out, opts...) if err != nil { return nil, err } @@ -46,7 +46,7 @@ func (c *infoStreamServiceClient) GetInfoStream(ctx context.Context, in *InfoStr // All implementations must embed UnimplementedInfoStreamServiceServer // for forward compatibility type InfoStreamServiceServer interface { - GetInfoStream(context.Context, *InfoStreamReq) (*InfoStreamResp, error) + GetInfostream(context.Context, *GetInfostreamRequest) (*GetInfostreamResponse, error) mustEmbedUnimplementedInfoStreamServiceServer() } @@ -54,8 +54,8 @@ type InfoStreamServiceServer interface { type UnimplementedInfoStreamServiceServer struct { } -func (UnimplementedInfoStreamServiceServer) GetInfoStream(context.Context, *InfoStreamReq) (*InfoStreamResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetInfoStream not implemented") +func (UnimplementedInfoStreamServiceServer) GetInfostream(context.Context, *GetInfostreamRequest) (*GetInfostreamResponse, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetInfostream not implemented") } func (UnimplementedInfoStreamServiceServer) mustEmbedUnimplementedInfoStreamServiceServer() {} @@ -70,20 +70,20 @@ func RegisterInfoStreamServiceServer(s grpc.ServiceRegistrar, srv InfoStreamServ s.RegisterService(&InfoStreamService_ServiceDesc, srv) } -func _InfoStreamService_GetInfoStream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(InfoStreamReq) +func _InfoStreamService_GetInfostream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetInfostreamRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(InfoStreamServiceServer).GetInfoStream(ctx, in) + return srv.(InfoStreamServiceServer).GetInfostream(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/aggregatingapis.infoStream.v1.InfoStreamService/GetInfoStream", + FullMethod: "/aggregatingapis.infotream.v1.InfoStreamService/GetInfostream", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InfoStreamServiceServer).GetInfoStream(ctx, req.(*InfoStreamReq)) + return srv.(InfoStreamServiceServer).GetInfostream(ctx, req.(*GetInfostreamRequest)) } return interceptor(ctx, in, info, handler) } @@ -92,12 +92,12 @@ func _InfoStreamService_GetInfoStream_Handler(srv interface{}, ctx context.Conte // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var InfoStreamService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "aggregatingapis.infoStream.v1.InfoStreamService", + ServiceName: "aggregatingapis.infotream.v1.InfoStreamService", HandlerType: (*InfoStreamServiceServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "GetInfoStream", - Handler: _InfoStreamService_GetInfoStream_Handler, + MethodName: "GetInfostream", + Handler: _InfoStreamService_GetInfostream_Handler, }, }, Streams: []grpc.StreamDesc{}, diff --git a/campusapis/card/v1/card.pb.go b/campusapis/card/v1/card.pb.go index b233b33..4192fc4 100644 --- a/campusapis/card/v1/card.pb.go +++ b/campusapis/card/v1/card.pb.go @@ -8,7 +8,6 @@ package cardv1 import ( _ "google.golang.org/genproto/googleapis/api/annotations" - _ "google.golang.org/genproto/googleapis/api/httpbody" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" emptypb "google.golang.org/protobuf/types/known/emptypb" @@ -372,86 +371,84 @@ var file_campusapis_card_v1_card_proto_rawDesc = []byte{ 0x12, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, - 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, - 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6f, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x30, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x72, 0x64, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5d, 0x0a, 0x08, 0x43, 0x61, - 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, - 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, - 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xbf, 0x01, 0x0a, 0x0b, 0x43, 0x6f, - 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, 0x74, 0x6f, 0x74, 0x61, 0x6c, - 0x46, 0x65, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x65, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x01, - 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x54, 0x0a, 0x16, 0x47, - 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, + 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x6f, + 0x0a, 0x13, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x12, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x75, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, - 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, - 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x84, 0x03, 0x0a, 0x0b, 0x43, 0x61, 0x72, - 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x73, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, - 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, - 0x27, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, - 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1d, - 0x12, 0x0d, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, - 0x0c, 0x12, 0x0a, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x7f, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x10, 0x2f, 0x63, 0x61, - 0x72, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x5a, 0x0f, 0x12, - 0x0d, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x7f, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, - 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x10, 0x2f, 0x63, - 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x5a, 0x0f, - 0x12, 0x0d, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x42, - 0xc8, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x43, 0x61, 0x72, 0x64, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, - 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x3b, 0x63, 0x61, 0x72, 0x64, - 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, - 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x5c, - 0x56, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, - 0x43, 0x61, 0x72, 0x64, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x3a, 0x3a, 0x43, 0x61, 0x72, 0x64, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x30, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, + 0x2e, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x5d, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x72, + 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x02, 0x52, 0x09, + 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x66, 0x6c, 0x6f, + 0x77, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x66, 0x6c, 0x6f, 0x77, 0x22, 0xbf, + 0x01, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, + 0x0a, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1a, 0x0a, 0x08, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x08, + 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x46, 0x65, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x65, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x65, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x72, 0x65, 0x6d, 0x61, 0x69, 0x6e, 0x69, 0x6e, 0x67, + 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x22, 0x54, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x75, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, + 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0x84, 0x03, + 0x0a, 0x0b, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x73, 0x0a, + 0x0b, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x27, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x23, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x1d, 0x12, 0x0d, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x2f, + 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0c, 0x12, 0x0a, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x69, 0x6e, + 0x66, 0x6f, 0x12, 0x7f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, + 0x61, 0x6e, 0x63, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x42, 0x61, 0x6c, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, + 0x12, 0x10, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x61, 0x6c, 0x61, 0x6e, + 0x63, 0x65, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x62, 0x61, 0x6c, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x7f, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x72, 0x64, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6d, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x23, 0x12, 0x10, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6d, 0x65, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6d, 0x65, 0x42, 0xc8, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x2e, 0x76, 0x31, 0x42, + 0x09, 0x43, 0x61, 0x72, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, + 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x63, 0x61, 0x72, 0x64, 0x2f, 0x76, 0x31, + 0x3b, 0x63, 0x61, 0x72, 0x64, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x43, 0x58, 0xaa, 0x02, 0x12, + 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x2e, + 0x56, 0x31, 0xca, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, + 0x43, 0x61, 0x72, 0x64, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x5c, 0x43, 0x61, 0x72, 0x64, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x43, 0x61, 0x72, 0x64, 0x3a, 0x3a, 0x56, 0x31, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/campusapis/card/v1/card.proto b/campusapis/card/v1/card.proto index b59c7dd..f2221b4 100644 --- a/campusapis/card/v1/card.proto +++ b/campusapis/card/v1/card.proto @@ -3,7 +3,6 @@ syntax = "proto3"; package campusapis.card.v1; import "google/api/annotations.proto"; -import "google/api/httpbody.proto"; import "google/protobuf/empty.proto"; option go_package = "./campusapis/card/v1"; diff --git a/campusapis/library/v1/library.pb.go b/campusapis/library/v1/library.pb.go index 992af50..9eb9e4c 100644 --- a/campusapis/library/v1/library.pb.go +++ b/campusapis/library/v1/library.pb.go @@ -7,12 +7,9 @@ package libraryv1 import ( - _ "github.com/hduhelp/api_open_sdk/campusapis/schoolTime" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - _ "google.golang.org/protobuf/types/known/emptypb" - _ "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) @@ -1398,277 +1395,271 @@ var file_campusapis_library_v1_library_proto_rawDesc = []byte{ 0x0a, 0x23, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x1a, 0x23, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, - 0x69, 0x6d, 0x65, 0x2f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, 0x0a, - 0x12, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x22, 0x72, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0xa1, 0x04, 0x0a, 0x08, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, - 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, - 0x6f, 0x70, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, - 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, - 0x4e, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x62, 0x61, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x62, 0x61, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, - 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, - 0x46, 0x6c, 0x61, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x65, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x79, 0x65, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x69, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x79, 0x65, 0x61, 0x72, 0x43, 0x69, - 0x72, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x79, - 0x65, 0x61, 0x72, 0x43, 0x69, 0x72, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, - 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x69, 0x72, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x69, 0x72, 0x63, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x55, 0x73, 0x65, - 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x69, 0x72, 0x73, - 0x74, 0x55, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, - 0x55, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6c, - 0x61, 0x73, 0x74, 0x55, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, - 0x63, 0x46, 0x6c, 0x61, 0x67, 0x55, 0x70, 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0e, 0x72, 0x65, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x55, 0x70, 0x74, 0x44, 0x61, - 0x74, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x44, 0x61, 0x79, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x06, 0x72, 0x65, 0x67, 0x44, 0x61, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x12, 0x33, - 0x0a, 0x04, 0x6d, 0x61, 0x72, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x04, 0x6d, - 0x61, 0x72, 0x63, 0x22, 0x36, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x22, 0x76, 0x0a, 0x17, 0x47, - 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x4a, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, - 0x52, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, + 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x22, 0x72, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, + 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, + 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xa1, 0x04, 0x0a, + 0x08, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x22, - 0x72, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0xac, 0x04, 0x0a, 0x08, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, - 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x12, 0x20, - 0x0a, 0x0b, 0x6d, 0x61, 0x72, 0x63, 0x55, 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x61, 0x72, 0x63, 0x55, 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, - 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x61, 0x72, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6d, 0x61, 0x72, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x63, 0x61, 0x74, 0x61, 0x4f, 0x70, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x63, 0x61, 0x74, 0x61, 0x4f, 0x70, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x61, - 0x44, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x61, - 0x44, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x63, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x63, 0x54, 0x79, 0x70, 0x65, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x12, 0x14, 0x0a, 0x05, - 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, - 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, - 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x50, 0x75, 0x62, - 0x59, 0x65, 0x61, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x50, 0x75, 0x62, - 0x59, 0x65, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x53, 0x42, 0x4e, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x49, 0x53, 0x42, 0x4e, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4f, 0x70, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x59, - 0x65, 0x61, 0x72, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x75, 0x62, 0x59, 0x65, - 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x61, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x12, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, 0x61, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, - 0x0a, 0x0c, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x22, 0x9b, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, - 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, - 0x04, 0x6d, 0x61, 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, - 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x04, 0x6d, 0x61, - 0x72, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, - 0x79, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x22, 0x76, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, - 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, - 0x52, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x36, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, - 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x22, 0x53, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc3, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, - 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0xb4, 0x02, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, - 0x33, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, - 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1a, - 0x0a, 0x08, 0x6c, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x08, 0x6c, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x6f, - 0x72, 0x6d, 0x61, 0x6c, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x52, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x44, - 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, - 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, - 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xbd, 0x03, 0x0a, 0x1a, - 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x4c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x38, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, - 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, - 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x1a, 0xa8, 0x02, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x62, - 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x12, + 0x18, 0x0a, 0x07, 0x62, 0x61, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x62, 0x61, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x62, 0x6f, 0x6f, + 0x6b, 0x53, 0x74, 0x61, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x46, 0x6c, 0x61, + 0x67, 0x12, 0x12, 0x0a, 0x04, 0x79, 0x65, 0x61, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x79, 0x65, 0x61, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x02, 0x52, 0x05, 0x70, 0x72, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x69, + 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x69, 0x6e, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x79, 0x65, 0x61, 0x72, 0x43, 0x69, 0x72, 0x63, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x79, 0x65, 0x61, 0x72, + 0x43, 0x69, 0x72, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x43, 0x69, 0x72, 0x63, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x43, 0x69, 0x72, 0x63, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x55, 0x73, 0x65, 0x44, 0x61, 0x74, + 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x66, 0x69, 0x72, 0x73, 0x74, 0x55, 0x73, + 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x73, 0x65, + 0x44, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6c, 0x61, 0x73, 0x74, + 0x55, 0x73, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, 0x63, 0x46, 0x6c, + 0x61, 0x67, 0x55, 0x70, 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0e, 0x72, 0x65, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x55, 0x70, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x44, 0x61, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x72, 0x65, 0x67, 0x44, 0x61, 0x79, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x18, 0x10, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x12, 0x33, 0x0a, 0x04, 0x6d, + 0x61, 0x72, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6b, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x65, - 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, - 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, - 0x44, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x75, - 0x72, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x44, - 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, - 0x44, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, - 0x69, 0x6d, 0x65, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x39, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, - 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x5c, 0x0a, 0x0a, 0x4c, - 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x45, 0x4e, - 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, 0x4e, 0x44, 0x5f, 0x53, - 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x4c, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, - 0x18, 0x0a, 0x14, 0x4c, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, - 0x45, 0x54, 0x55, 0x52, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x32, 0x84, 0x07, 0x0a, 0x0e, 0x4c, 0x69, - 0x62, 0x72, 0x61, 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x83, 0x01, 0x0a, - 0x0b, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, - 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x6c, 0x69, - 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x69, 0x6e, - 0x66, 0x6f, 0x12, 0x94, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, - 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, - 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, - 0x69, 0x6e, 0x66, 0x6f, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x83, 0x01, 0x0a, 0x0b, 0x47, 0x65, - 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x63, + 0x22, 0x36, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, + 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, + 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x22, 0x76, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, + 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x4a, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x70, 0x72, 0x6f, 0x70, 0x4e, 0x6f, 0x12, 0x1c, + 0x0a, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x22, 0x72, 0x0a, 0x13, + 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x65, 0x71, + 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0xac, 0x04, 0x0a, 0x08, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x12, 0x1c, 0x0a, + 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x6d, 0x61, 0x72, 0x63, 0x52, 0x65, 0x63, 0x4e, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x6d, + 0x61, 0x72, 0x63, 0x55, 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x6d, 0x61, 0x72, 0x63, 0x55, 0x73, 0x65, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1a, 0x0a, + 0x08, 0x6d, 0x61, 0x72, 0x63, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6d, 0x61, 0x72, 0x63, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, + 0x61, 0x4f, 0x70, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, + 0x61, 0x4f, 0x70, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x61, 0x74, 0x61, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, + 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x63, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x63, 0x54, 0x79, 0x70, 0x65, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x63, 0x61, 0x6c, 0x6c, 0x4e, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x75, 0x62, 0x6c, 0x69, + 0x73, 0x68, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x75, 0x62, 0x6c, + 0x69, 0x73, 0x68, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x50, 0x75, 0x62, 0x59, 0x65, 0x61, + 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x50, 0x75, 0x62, 0x59, 0x65, 0x61, + 0x72, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x53, 0x42, 0x4e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x49, 0x53, 0x42, 0x4e, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4f, + 0x70, 0x65, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4f, 0x70, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x75, 0x62, 0x59, 0x65, 0x61, 0x72, + 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x70, 0x75, 0x62, 0x59, 0x65, 0x61, 0x72, 0x12, + 0x1a, 0x0a, 0x08, 0x6f, 0x70, 0x61, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x18, 0x12, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x6f, 0x70, 0x61, 0x63, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x63, + 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x63, 0x61, 0x74, 0x61, 0x6c, 0x6f, 0x67, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, + 0x9b, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, 0x6d, 0x61, + 0x72, 0x63, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, + 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x04, 0x6d, 0x61, 0x72, 0x63, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x4b, 0x65, 0x79, 0x73, 0x12, + 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x22, 0x76, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, + 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x36, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, + 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x53, 0x0a, + 0x19, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, + 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x73, + 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x22, 0xc3, 0x03, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, + 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x1a, 0xb4, 0x02, 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x04, + 0x62, 0x6f, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, + 0x76, 0x31, 0x2e, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x62, 0x6f, 0x6f, + 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6c, + 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, + 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x6e, 0x6f, 0x72, 0x6d, 0x61, + 0x6c, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x10, 0x6e, 0x6f, 0x72, 0x6d, 0x61, 0x6c, 0x52, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x44, 0x61, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0xbd, 0x03, 0x0a, 0x1a, 0x47, 0x65, 0x74, + 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x4c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x38, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, + 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xa8, 0x02, + 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x33, 0x0a, 0x04, 0x62, 0x6f, 0x6f, 0x6b, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x42, + 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x65, 0x6e, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6c, 0x65, 0x6e, 0x64, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x74, 0x75, 0x72, 0x6e, 0x44, + 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x44, 0x61, 0x74, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x6e, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, + 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x39, 0x0a, + 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x65, 0x6e, 0x64, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x2a, 0x5c, 0x0a, 0x0a, 0x4c, 0x65, 0x6e, 0x64, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x17, 0x4c, 0x45, 0x4e, 0x44, 0x5f, 0x53, + 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x17, 0x0a, 0x13, 0x4c, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, + 0x55, 0x53, 0x5f, 0x4c, 0x45, 0x4e, 0x44, 0x49, 0x4e, 0x47, 0x10, 0x01, 0x12, 0x18, 0x0a, 0x14, + 0x4c, 0x45, 0x4e, 0x44, 0x5f, 0x53, 0x54, 0x41, 0x54, 0x55, 0x53, 0x5f, 0x52, 0x45, 0x54, 0x55, + 0x52, 0x4e, 0x45, 0x44, 0x10, 0x02, 0x32, 0x84, 0x07, 0x0a, 0x0e, 0x4c, 0x69, 0x62, 0x72, 0x61, + 0x72, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x83, 0x01, 0x0a, 0x0b, 0x47, 0x65, + 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, - 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x6d, 0x61, 0x72, 0x63, 0x12, - 0x94, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, + 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, + 0x94, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, - 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x6f, 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, - 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x6f, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x6c, 0x69, 0x62, - 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x6d, 0x61, 0x72, - 0x63, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x94, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6f, - 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1c, 0x12, 0x1a, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, - 0x6f, 0x6f, 0x6b, 0x2f, 0x6c, 0x65, 0x6e, 0x64, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x12, 0xa0, 0x01, - 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x69, 0x6e, 0x66, + 0x6f, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x83, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x42, 0x6f, + 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x12, 0x29, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, + 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1d, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x17, 0x12, 0x15, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, + 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x6d, 0x61, 0x72, 0x63, 0x12, 0x94, 0x01, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, 0x41, 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, + 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, + 0x4d, 0x41, 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4d, + 0x41, 0x52, 0x43, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, + 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, 0x2f, 0x6d, 0x61, 0x72, 0x63, 0x2f, 0x6c, + 0x69, 0x73, 0x74, 0x12, 0x94, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, + 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x4c, 0x61, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x1a, + 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, + 0x2f, 0x6c, 0x65, 0x6e, 0x64, 0x2f, 0x6c, 0x61, 0x73, 0x74, 0x12, 0xa0, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1f, 0x12, 0x1d, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, - 0x6f, 0x6f, 0x6b, 0x2f, 0x6c, 0x65, 0x6e, 0x64, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x42, 0xe0, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x0c, - 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, - 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, - 0x72, 0x79, 0x2f, 0x76, 0x31, 0x3b, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x76, 0x31, 0xa2, - 0x02, 0x03, 0x43, 0x4c, 0x58, 0xaa, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, - 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x4c, 0x69, 0x62, 0x72, 0x61, - 0x72, 0x79, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x5c, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, 0x43, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x79, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x6c, + 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6f, 0x6f, + 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, + 0x6f, 0x6f, 0x6b, 0x4c, 0x65, 0x6e, 0x64, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, + 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, 0x76, 0x31, 0x2f, 0x62, 0x6f, 0x6f, 0x6b, + 0x2f, 0x6c, 0x65, 0x6e, 0x64, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x42, 0xe0, 0x01, + 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x4c, 0x69, 0x62, + 0x72, 0x61, 0x72, 0x79, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3f, 0x67, 0x69, 0x74, + 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, + 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2f, + 0x76, 0x31, 0x3b, 0x6c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, + 0x4c, 0x58, 0xaa, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x43, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5c, + 0x56, 0x31, 0xe2, 0x02, 0x21, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, + 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x4c, 0x69, 0x62, 0x72, 0x61, 0x72, 0x79, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/campusapis/library/v1/library.proto b/campusapis/library/v1/library.proto index 17e66d2..e111165 100644 --- a/campusapis/library/v1/library.proto +++ b/campusapis/library/v1/library.proto @@ -2,10 +2,7 @@ syntax = "proto3"; package campusapis.library.v1; -import "campusapis/schoolTime/defined.proto"; import "google/api/annotations.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/timestamp.proto"; option go_package = "./campusapis/library/v1"; @@ -37,7 +34,7 @@ service LibraryService { get: "/library/v1/book/marc/list" }; } - + //查询当前图书借阅记录 rpc GetBookLendLast(GetBookLendLastRequest) returns (GetBookLendLastResponse) { option (google.api.http) = { diff --git a/docs/swagger/aggregatingapis/faq/v1/faq.swagger.json b/docs/swagger/aggregatingapis/faq/v1/faq.swagger.json index d1830d5..7e693f3 100644 --- a/docs/swagger/aggregatingapis/faq/v1/faq.swagger.json +++ b/docs/swagger/aggregatingapis/faq/v1/faq.swagger.json @@ -212,12 +212,10 @@ "type": "object", "properties": { "@type": { - "type": "string", - "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + "type": "string" } }, - "additionalProperties": {}, - "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + "additionalProperties": {} }, "rpcStatus": { "type": "object", diff --git a/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json b/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json index 0c4443f..9d16fc8 100644 --- a/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json +++ b/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json @@ -16,14 +16,14 @@ "application/json" ], "paths": { - "/infoStream/v1": { + "/infostream/v1": { "get": { - "operationId": "InfoStreamService_GetInfoStream", + "operationId": "InfoStreamService_GetInfostream", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1InfoStreamResp" + "$ref": "#/definitions/v1GetInfostreamResponse" } }, "default": { @@ -48,11 +48,11 @@ } }, "definitions": { - "InfoStreamRespData": { + "GetInfostreamResponseData": { "type": "object", "properties": { "weather": { - "$ref": "#/definitions/v1weatherResp" + "$ref": "#/definitions/v1WeatherResponse" }, "schedule": { "$ref": "#/definitions/v1scheduleResp" @@ -104,7 +104,7 @@ } } }, - "v1InfoStreamResp": { + "v1GetInfostreamResponse": { "type": "object", "properties": { "error": { @@ -115,7 +115,66 @@ "type": "string" }, "data": { - "$ref": "#/definitions/InfoStreamRespData" + "$ref": "#/definitions/GetInfostreamResponseData" + } + } + }, + "v1WeatherData": { + "type": "object", + "properties": { + "aqi": { + "type": "integer", + "format": "int64" + }, + "desc": { + "type": "string" + }, + "skyconNow": { + "type": "string" + }, + "isRain": { + "type": "boolean" + }, + "willStop": { + "type": "boolean" + }, + "willRain": { + "type": "boolean" + }, + "RainContinue": { + "type": "integer", + "format": "int64" + }, + "RainCome": { + "type": "integer", + "format": "int64" + }, + "temperatureMax": { + "type": "number", + "format": "float" + }, + "temperatureMin": { + "type": "number", + "format": "float" + }, + "temperatureNow": { + "type": "number", + "format": "float" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + } + }, + "v1WeatherResponse": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "data": { + "$ref": "#/definitions/v1WeatherData" } } }, @@ -415,65 +474,6 @@ "$ref": "#/definitions/v1sunRunData" } } - }, - "v1weatherData": { - "type": "object", - "properties": { - "aqi": { - "type": "integer", - "format": "int64" - }, - "desc": { - "type": "string" - }, - "skyconNow": { - "type": "string" - }, - "isRain": { - "type": "boolean" - }, - "willStop": { - "type": "boolean" - }, - "willRain": { - "type": "boolean" - }, - "RainContinue": { - "type": "integer", - "format": "int64" - }, - "RainCome": { - "type": "integer", - "format": "int64" - }, - "temperatureMax": { - "type": "number", - "format": "float" - }, - "temperatureMin": { - "type": "number", - "format": "float" - }, - "temperatureNow": { - "type": "number", - "format": "float" - }, - "timestamp": { - "type": "integer", - "format": "int64" - } - } - }, - "v1weatherResp": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "data": { - "$ref": "#/definitions/v1weatherData" - } - } } } } diff --git a/docs/swagger/campusapis/card/v1/card.swagger.json b/docs/swagger/campusapis/card/v1/card.swagger.json index d5267de..3a13a5a 100644 --- a/docs/swagger/campusapis/card/v1/card.swagger.json +++ b/docs/swagger/campusapis/card/v1/card.swagger.json @@ -160,12 +160,10 @@ "type": "object", "properties": { "@type": { - "type": "string", - "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + "type": "string" } }, - "additionalProperties": {}, - "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + "additionalProperties": {} }, "rpcStatus": { "type": "object", diff --git a/gatewayapis/auth/v1/auth.pb.go b/gatewayapis/auth/v1/auth.pb.go index 8af02cf..fd4b964 100644 --- a/gatewayapis/auth/v1/auth.pb.go +++ b/gatewayapis/auth/v1/auth.pb.go @@ -12,7 +12,6 @@ import ( httpbody "google.golang.org/genproto/googleapis/api/httpbody" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - _ "google.golang.org/protobuf/types/known/emptypb" structpb "google.golang.org/protobuf/types/known/structpb" reflect "reflect" sync "sync" @@ -3125,499 +3124,497 @@ var file_gatewayapis_auth_v1_auth_proto_rawDesc = []byte{ 0x74, 0x68, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, - 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, + 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, - 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, - 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x22, 0x72, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, + 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x15, 0x0a, 0x13, + 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x22, 0x72, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe1, 0x01, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x3c, 0x0a, + 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x52, 0x09, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3d, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x22, 0xe5, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x45, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5b, 0x0a, 0x04, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0a, 0x62, 0x69, 0x6e, + 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, + 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, + 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x62, 0x69, + 0x6e, 0x64, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x6c, 0x0a, 0x08, 0x42, 0x69, 0x6e, 0x64, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3d, 0x0a, 0x13, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x37, 0x0a, 0x15, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x49, 0x44, 0x22, 0x40, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x5c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x70, 0x70, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x72, 0x70, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x68, + 0x6f, 0x77, 0x41, 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x68, 0x6f, + 0x77, 0x41, 0x6c, 0x6c, 0x22, 0xe9, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x57, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, + 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x22, 0xf2, 0x01, 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x26, 0x0a, + 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x24, 0x0a, 0x0d, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x73, 0x63, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x44, 0x65, 0x73, 0x63, 0x22, 0x45, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, + 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, + 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x46, 0x0a, 0x1c, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x22, 0x35, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, + 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x42, 0x0a, 0x18, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, + 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, 0x19, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, - 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0xe1, 0x01, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x07, 0x69, 0x73, 0x56, 0x61, 0x6c, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, - 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x09, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1e, 0x2e, - 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x09, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x22, 0x2a, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x3d, 0x0a, 0x13, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x17, 0x0a, 0x15, 0x50, 0x6f, 0x73, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x22, 0x40, 0x0a, 0x16, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, + 0x42, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, + 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, - 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xe5, 0x01, - 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x45, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, - 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x5b, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x14, 0x0a, 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3d, 0x0a, 0x0a, 0x62, 0x69, 0x6e, 0x64, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x62, 0x69, 0x6e, 0x64, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x6c, 0x0a, 0x08, 0x42, 0x69, 0x6e, 0x64, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, - 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, - 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, - 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3d, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x6d, 0x73, 0x67, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3d, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x37, 0x0a, 0x15, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, - 0x44, 0x22, 0x40, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, - 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x22, 0x5c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, - 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x04, 0x70, 0x61, 0x67, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x70, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x03, 0x72, 0x70, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x41, - 0x6c, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x68, 0x6f, 0x77, 0x41, 0x6c, - 0x6c, 0x22, 0xe9, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, - 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x49, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x35, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, - 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x1a, 0x57, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0xf2, 0x01, - 0x0a, 0x0c, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x65, 0x6e, - 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x65, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x49, 0x44, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x24, 0x0a, 0x0d, - 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, 0x73, 0x63, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x44, 0x65, - 0x73, 0x63, 0x22, 0x45, 0x0a, 0x1b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x63, 0x72, 0x79, 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x63, 0x72, 0x79, - 0x70, 0x74, 0x65, 0x64, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x46, 0x0a, 0x1c, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x22, 0x35, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x22, 0x42, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x1a, 0x0a, 0x18, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x43, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x16, 0x0a, - 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3f, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x17, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, - 0x40, 0x0a, 0x16, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x22, 0x19, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, - 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x42, 0x0a, 0x18, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x3d, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x64, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, + 0x67, 0x61, 0x63, 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x77, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x73, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x22, 0x1b, 0x0a, 0x19, 0x50, 0x75, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x44, 0x0a, 0x1a, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x41, 0x0a, 0x1f, 0x50, + 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, + 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0x4a, + 0x0a, 0x20, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, + 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x1d, 0x0a, 0x1b, 0x47, 0x65, + 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x47, 0x65, + 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5b, + 0x0a, 0x15, 0x50, 0x75, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, + 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x16, + 0x50, 0x75, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x44, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x1a, 0x2c, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, + 0x55, 0x52, 0x4c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x52, 0x4c, 0x12, 0x12, + 0x0a, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x53, 0x69, + 0x7a, 0x65, 0x22, 0x49, 0x0a, 0x11, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, + 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, + 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x49, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x49, 0x6d, 0x65, 0x22, 0x16, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x69, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x74, + 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x64, 0x0a, 0x0e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, - 0x79, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6e, 0x6f, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x22, 0x1b, 0x0a, 0x19, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x44, 0x0a, 0x1a, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, - 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x41, 0x0a, 0x1f, 0x50, 0x75, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, - 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x6e, - 0x65, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x20, 0x50, - 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, - 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x1d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, + 0x69, 0x2e, 0x48, 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf4, + 0x01, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x12, 0x1e, 0x0a, + 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x2d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x57, 0x65, 0x43, 0x68, + 0x61, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x75, 0x72, 0x6c, 0x22, 0x7e, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x57, 0x65, 0x43, 0x68, 0x61, + 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, + 0x65, 0x43, 0x68, 0x61, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x81, 0x01, 0x0a, 0x0f, 0x57, 0x65, 0x43, 0x68, 0x61, 0x74, 0x53, + 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x14, 0x0a, 0x05, + 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x6e, + 0x63, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, + 0x12, 0x14, 0x0a, 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x3a, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x42, + 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x73, 0x22, 0x78, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, + 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x3a, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x2d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, - 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x5b, 0x0a, 0x15, 0x50, - 0x75, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, - 0x63, 0x6b, 0x65, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, - 0x65, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb4, 0x01, 0x0a, 0x16, 0x50, 0x75, 0x74, - 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x44, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x75, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x1a, 0x2c, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x52, 0x4c, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x52, 0x4c, 0x12, 0x12, 0x0a, 0x04, 0x53, - 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x53, 0x69, 0x7a, 0x65, 0x22, - 0x49, 0x0a, 0x11, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, - 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x74, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1c, 0x0a, 0x09, - 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x49, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x49, 0x6d, 0x65, 0x22, 0x16, 0x0a, 0x14, 0x47, 0x65, - 0x74, 0x44, 0x6f, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x22, 0x69, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x74, 0x6f, 0x72, 0x50, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x28, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x14, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x61, 0x70, 0x69, 0x2e, 0x48, - 0x74, 0x74, 0x70, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x16, 0x0a, - 0x14, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf4, 0x01, 0x0a, 0x0a, - 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, - 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x65, - 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, - 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, - 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x2d, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x57, 0x65, 0x43, 0x68, 0x61, 0x74, 0x53, - 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, - 0x6c, 0x22, 0x7e, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x57, 0x65, 0x43, 0x68, 0x61, 0x74, 0x53, 0x69, - 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x43, 0x68, - 0x61, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x81, 0x01, 0x0a, 0x0f, 0x57, 0x65, 0x43, 0x68, 0x61, 0x74, 0x53, 0x69, 0x67, 0x6e, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x6e, 0x6f, 0x6e, - 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6e, 0x6f, 0x6e, 0x63, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x14, 0x0a, - 0x05, 0x61, 0x70, 0x70, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x70, - 0x70, 0x69, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x75, 0x72, 0x6c, 0x22, 0x3a, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, - 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x73, 0x22, 0x78, 0x0a, 0x1f, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, - 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2d, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x01, 0x0a, 0x04, - 0x42, 0x69, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x69, - 0x64, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x69, 0x64, 0x32, 0x12, 0x18, - 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, - 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, - 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x0a, 0x61, - 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2a, 0x22, 0x0a, 0x09, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x52, 0x49, 0x47, 0x49, 0x4e, - 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x41, 0x55, 0x54, 0x48, 0x10, 0x01, 0x32, 0xf1, 0x16, - 0x0a, 0x0b, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x89, 0x01, - 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, - 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x09, 0x2f, 0x76, 0x31, - 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x7d, 0x0a, 0x0b, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x15, 0x2a, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5a, 0x08, - 0x2a, 0x06, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x9a, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x2e, 0x67, + 0x2e, 0x76, 0x31, 0x2e, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcb, + 0x01, 0x0a, 0x04, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x69, 0x64, 0x32, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x69, 0x64, + 0x32, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x70, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, + 0x61, 0x72, 0x6b, 0x12, 0x37, 0x0a, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, + 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, + 0x52, 0x0a, 0x61, 0x74, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x73, 0x2a, 0x22, 0x0a, 0x09, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x52, 0x49, + 0x47, 0x49, 0x4e, 0x10, 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x41, 0x55, 0x54, 0x48, 0x10, 0x01, + 0x32, 0xf1, 0x16, 0x0a, 0x0b, 0x41, 0x75, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x89, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x09, + 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x2f, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x61, 0x74, 0x65, 0x12, 0x7d, 0x0a, 0x0b, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x27, 0x2e, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x2a, 0x09, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x5a, 0x08, 0x2a, 0x06, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x9a, 0x01, 0x0a, 0x0f, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x26, 0x12, - 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x2f, 0x6c, - 0x69, 0x73, 0x74, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, - 0x62, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x77, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x42, 0x69, 0x6e, 0x64, 0x12, 0x27, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2c, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x26, 0x12, 0x12, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6e, + 0x64, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, + 0x6c, 0x65, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x73, 0x12, 0x77, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x27, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, + 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6e, + 0x64, 0x12, 0x91, 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x42, 0x69, 0x6e, 0x64, 0x12, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x20, 0x2a, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, + 0x62, 0x69, 0x6e, 0x64, 0x5a, 0x0f, 0x2a, 0x0d, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, + 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x12, 0xb2, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, - 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x12, 0x91, - 0x01, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, - 0x64, 0x12, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, + 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, + 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x38, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x5a, 0x18, 0x12, 0x16, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x67, + 0x69, 0x6e, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x14, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, + 0x2a, 0x14, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, + 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x5a, 0x10, 0x2a, 0x0e, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, + 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0xa3, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, - 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x26, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x20, 0x2a, 0x0d, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6e, - 0x64, 0x5a, 0x0f, 0x2a, 0x0d, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x62, 0x69, - 0x6e, 0x64, 0x12, 0xb2, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, - 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0x2f, 0x2e, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x61, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x48, 0x69, - 0x73, 0x74, 0x6f, 0x72, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x38, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x32, 0x12, 0x16, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, - 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5a, 0x18, 0x12, - 0x16, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, - 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, - 0x12, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2e, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x28, 0x2a, 0x14, 0x2f, - 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x2f, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x5a, 0x10, 0x2a, 0x0e, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, 0x2f, - 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0xa3, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x2c, 0x2e, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x12, - 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x2f, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x5a, 0x15, 0x12, 0x13, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x6f, 0x6c, 0x65, - 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x74, 0x0a, 0x11, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, - 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x69, 0x6e, 0x64, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x2c, 0x12, 0x13, 0x2f, 0x76, 0x31, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x62, 0x69, 0x6e, + 0x64, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5a, 0x15, 0x12, 0x13, 0x2f, 0x63, 0x6f, 0x6e, 0x73, + 0x6f, 0x6c, 0x65, 0x2f, 0x62, 0x69, 0x6e, 0x64, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x74, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x12, 0x68, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, + 0x0a, 0x0e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, + 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, + 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x10, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x0e, 0x50, - 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2a, 0x2e, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, + 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, + 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, - 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x50, 0x6f, 0x73, 0x74, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x71, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2c, 0x2e, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x44, 0x65, 0x76, 0x69, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x0b, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x27, 0x2e, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, - 0x74, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, - 0x67, 0x61, 0x63, 0x79, 0x12, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x12, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x2e, 0x2e, 0x67, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x89, - 0x01, 0x0a, 0x18, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, - 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x34, 0x2e, 0x67, 0x61, - 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, - 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, - 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7d, 0x0a, 0x14, 0x47, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x00, 0x12, 0x74, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x2d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x77, 0x0a, 0x12, 0x50, 0x75, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x12, 0x2e, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x00, 0x12, 0x89, 0x01, 0x0a, 0x18, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, + 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x12, 0x34, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, + 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, 0x61, 0x63, 0x79, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x35, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x50, 0x72, 0x69, 0x6d, 0x61, 0x72, 0x79, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x65, 0x67, + 0x61, 0x63, 0x79, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7d, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, + 0x69, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, - 0x65, 0x74, 0x12, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, 0x61, 0x67, - 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6d, - 0x61, 0x67, 0x65, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x54, 0x69, 0x63, 0x6b, 0x65, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x0e, 0x50, 0x75, 0x74, - 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x67, 0x61, + 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6b, 0x0a, 0x0e, + 0x50, 0x75, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2a, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x50, 0x75, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x0d, 0x47, 0x65, + 0x74, 0x44, 0x6f, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x75, 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x75, - 0x74, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x8a, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x6f, - 0x63, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x44, 0x6f, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, - 0x74, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x0f, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x6f, 0x63, - 0x74, 0x6f, 0x72, 0x2f, 0x70, 0x61, 0x67, 0x65, 0x5a, 0x09, 0x12, 0x07, 0x2f, 0x64, 0x6f, 0x63, - 0x74, 0x6f, 0x72, 0x12, 0x75, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, - 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0d, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x07, 0x12, 0x05, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x8b, 0x01, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x57, 0x65, 0x43, 0x68, 0x61, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x12, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x43, 0x68, 0x61, - 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, 0x43, 0x68, 0x61, - 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, 0x77, 0x65, 0x63, - 0x68, 0x61, 0x74, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x86, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, - 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, - 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x44, 0x6f, 0x63, 0x74, 0x6f, 0x72, 0x50, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x22, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1c, 0x12, 0x0f, 0x2f, 0x76, 0x31, 0x2f, + 0x64, 0x6f, 0x63, 0x74, 0x6f, 0x72, 0x2f, 0x70, 0x61, 0x67, 0x65, 0x5a, 0x09, 0x12, 0x07, 0x2f, + 0x64, 0x6f, 0x63, 0x74, 0x6f, 0x72, 0x12, 0x75, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x29, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2a, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0d, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x07, 0x12, 0x05, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x8b, 0x01, + 0x0a, 0x12, 0x47, 0x65, 0x74, 0x57, 0x65, 0x43, 0x68, 0x61, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x12, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, + 0x43, 0x68, 0x61, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x57, 0x65, + 0x43, 0x68, 0x61, 0x74, 0x53, 0x69, 0x67, 0x6e, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x14, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0e, 0x12, 0x0c, 0x2f, + 0x77, 0x65, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x86, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x00, 0x42, 0xce, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, - 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x41, - 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, - 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x3b, - 0x61, 0x75, 0x74, 0x68, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x41, 0x58, 0xaa, 0x02, 0x13, 0x47, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x41, 0x75, 0x74, 0x68, 0x2e, - 0x56, 0x31, 0xca, 0x02, 0x13, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, - 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x47, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x47, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, 0x68, 0x3a, 0x3a, - 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x33, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x69, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x42, 0x79, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x00, 0x42, 0xce, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x42, 0x09, 0x41, 0x75, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3a, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, + 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2f, + 0x76, 0x31, 0x3b, 0x61, 0x75, 0x74, 0x68, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x41, 0x58, 0xaa, + 0x02, 0x13, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x41, 0x75, + 0x74, 0x68, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, + 0x70, 0x69, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x47, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x56, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, + 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x41, 0x75, 0x74, + 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/gatewayapis/auth/v1/auth.proto b/gatewayapis/auth/v1/auth.proto index e758254..8c08843 100644 --- a/gatewayapis/auth/v1/auth.proto +++ b/gatewayapis/auth/v1/auth.proto @@ -4,7 +4,6 @@ package gatewayapis.auth.v1; import "google/api/annotations.proto"; import "google/api/httpbody.proto"; -import "google/protobuf/empty.proto"; import "google/protobuf/struct.proto"; import "protoc-gen-openapiv2/options/annotations.proto"; diff --git a/gatewayapis/server/v1/defined.pb.go b/gatewayapis/server/v1/defined.pb.go index 2fcba28..5c150cd 100644 --- a/gatewayapis/server/v1/defined.pb.go +++ b/gatewayapis/server/v1/defined.pb.go @@ -7,12 +7,8 @@ package serverv1 import ( - _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - _ "google.golang.org/protobuf/types/known/emptypb" - _ "google.golang.org/protobuf/types/known/structpb" - _ "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) @@ -378,81 +374,73 @@ var file_gatewayapis_server_v1_defined_proto_rawDesc = []byte{ 0x0a, 0x23, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x15, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, - 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x62, 0x0a, 0x07, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, - 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, - 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x22, 0x7a, 0x0a, 0x0f, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x1f, 0x0a, - 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, - 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xac, 0x03, 0x0a, 0x0a, 0x48, 0x54, 0x54, 0x50, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x6e, 0x65, 0x65, 0x64, 0x41, 0x75, 0x74, - 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6e, - 0x65, 0x65, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x12, 0x24, 0x0a, - 0x0d, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x43, 0x61, 0x63, 0x68, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x43, 0x61, - 0x63, 0x68, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x61, 0x63, - 0x68, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x45, 0x78, - 0x70, 0x69, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, - 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x12, 0x40, 0x0a, 0x1b, 0x64, 0x69, 0x72, 0x65, 0x63, - 0x74, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, - 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1b, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x42, 0x0a, 0x1c, 0x64, 0x69, 0x72, - 0x65, 0x63, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x1c, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, - 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, - 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x0a, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, - 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x0e, 0x69, 0x73, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0xdf, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, - 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x44, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, - 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, - 0x70, 0x69, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x53, 0x58, 0xaa, 0x02, 0x15, 0x47, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, - 0x69, 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, 0x47, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0xea, 0x02, 0x17, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, - 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x22, 0x62, 0x0a, 0x07, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x64, + 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x64, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, + 0x0c, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, + 0x22, 0x7a, 0x0a, 0x0f, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xac, 0x03, 0x0a, + 0x0a, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, + 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x6e, + 0x65, 0x65, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, 0x7a, 0x65, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x0e, 0x6e, 0x65, 0x65, 0x64, 0x41, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x69, + 0x7a, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x43, + 0x61, 0x63, 0x68, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, + 0x4f, 0x6e, 0x6c, 0x79, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x75, 0x62, + 0x6c, 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, + 0x70, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x43, 0x61, 0x63, 0x68, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x63, + 0x61, 0x63, 0x68, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0b, 0x63, 0x61, 0x63, 0x68, 0x65, 0x45, 0x78, 0x70, 0x69, 0x72, 0x65, 0x12, 0x40, 0x0a, + 0x1b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x1b, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, + 0x68, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x12, + 0x42, 0x0a, 0x1c, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x68, 0x72, 0x6f, 0x75, 0x67, 0x68, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, 0x65, 0x72, 0x73, 0x18, + 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x1c, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x54, 0x68, 0x72, + 0x6f, 0x75, 0x67, 0x68, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x48, 0x65, 0x61, 0x64, + 0x65, 0x72, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x06, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x22, 0xa0, 0x01, 0x0a, 0x0a, + 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x69, 0x73, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x69, 0x73, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x26, 0x0a, 0x0e, 0x69, 0x73, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, + 0x69, 0x73, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x42, 0xdf, + 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x44, 0x65, + 0x66, 0x69, 0x6e, 0x65, 0x64, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, + 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, + 0x53, 0x58, 0xaa, 0x02, 0x15, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x47, 0x61, 0x74, + 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5c, + 0x56, 0x31, 0xe2, 0x02, 0x21, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x5c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/gatewayapis/server/v1/defined.proto b/gatewayapis/server/v1/defined.proto index 144ed24..5ee3f85 100644 --- a/gatewayapis/server/v1/defined.proto +++ b/gatewayapis/server/v1/defined.proto @@ -2,11 +2,6 @@ syntax = "proto3"; package gatewayapis.server.v1; -import "google/api/annotations.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; - option go_package = "./gatewayapis/server/v1"; //服务 diff --git a/gatewayapis/server/v1/manager.pb.go b/gatewayapis/server/v1/manager.pb.go index 9df4ebe..7fd735c 100644 --- a/gatewayapis/server/v1/manager.pb.go +++ b/gatewayapis/server/v1/manager.pb.go @@ -7,12 +7,8 @@ package serverv1 import ( - _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - _ "google.golang.org/protobuf/types/known/emptypb" - _ "google.golang.org/protobuf/types/known/structpb" - _ "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) @@ -436,98 +432,90 @@ var file_gatewayapis_server_v1_manager_proto_rawDesc = []byte{ 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x23, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, - 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x1a, 0x0a, 0x18, 0x47, - 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x58, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x48, 0x54, - 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, - 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, - 0x73, 0x22, 0x66, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x76, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x57, 0x0a, 0x1a, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, + 0x6f, 0x22, 0x1a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, + 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x58, 0x0a, + 0x19, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x72, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x07, + 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x22, 0x66, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x39, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, - 0x65, 0x72, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x22, 0x1d, 0x0a, 0x1b, 0x50, 0x6f, - 0x73, 0x74, 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x69, 0x0a, 0x17, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x50, - 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x50, 0x61, 0x74, 0x68, 0x22, 0x1a, 0x0a, 0x18, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x54, - 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x32, 0xf6, 0x03, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, - 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, + 0x18, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, + 0x76, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x57, 0x0a, 0x1a, 0x50, 0x6f, 0x73, 0x74, 0x4f, + 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, + 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x06, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, + 0x22, 0x1d, 0x0a, 0x1b, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, 0x54, + 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x69, 0x0a, 0x17, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x65, 0x72, 0x76, 0x65, 0x50, 0x61, 0x74, 0x68, 0x22, 0x1a, 0x0a, 0x18, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xf6, 0x03, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, + 0x12, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6c, 0x0a, 0x0d, 0x47, 0x65, + 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x2b, 0x2e, 0x67, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x50, 0x6f, 0x73, 0x74, + 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, + 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x54, - 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x13, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, - 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x31, 0x2e, 0x67, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, - 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, + 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x4f, + 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x4f, 0x72, 0x50, 0x75, 0x74, 0x48, 0x54, - 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x75, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, - 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x12, 0x2e, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xdf, 0x01, 0x0a, 0x19, 0x63, 0x6f, - 0x6d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, - 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, - 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x3b, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x53, 0x58, 0xaa, 0x02, 0x15, - 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, - 0x70, 0x69, 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, - 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 0xea, 0x02, 0x17, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, - 0x3a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x48, 0x54, 0x54, 0x50, 0x52, + 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, + 0xdf, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x4d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, + 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x76, 0x31, 0xa2, 0x02, 0x03, + 0x47, 0x53, 0x58, 0xaa, 0x02, 0x15, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x47, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/gatewayapis/server/v1/manager.proto b/gatewayapis/server/v1/manager.proto index 903ab9e..8e12b84 100644 --- a/gatewayapis/server/v1/manager.proto +++ b/gatewayapis/server/v1/manager.proto @@ -3,10 +3,6 @@ syntax = "proto3"; package gatewayapis.server.v1; import "gatewayapis/server/v1/defined.proto"; -import "google/api/annotations.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; option go_package = "./gatewayapis/server/v1"; diff --git a/gatewayapis/server/v1/register.pb.go b/gatewayapis/server/v1/register.pb.go index 2294123..479ae0c 100644 --- a/gatewayapis/server/v1/register.pb.go +++ b/gatewayapis/server/v1/register.pb.go @@ -7,12 +7,8 @@ package serverv1 import ( - _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - _ "google.golang.org/protobuf/types/known/emptypb" - _ "google.golang.org/protobuf/types/known/structpb" - _ "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) @@ -288,81 +284,74 @@ var file_gatewayapis_server_v1_register_proto_rawDesc = []byte{ 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x1a, 0x23, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, - 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, - 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x66, 0x0a, 0x20, - 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x42, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, - 0x61, 0x6e, 0x63, 0x65, 0x22, 0x23, 0x0a, 0x21, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, 0x1c, 0x50, 0x6f, 0x73, - 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x07, 0x72, 0x6f, 0x75, - 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, - 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, - 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x52, 0x07, 0x72, - 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x22, 0x1f, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x52, - 0x65, 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, - 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x07, 0x6d, 0x65, 0x74, - 0x68, 0x6f, 0x64, 0x73, 0x22, 0x1f, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, - 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xb8, 0x03, 0x0a, 0x15, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, - 0x90, 0x01, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x12, 0x37, 0x2e, - 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x74, 0x6f, 0x22, 0x66, 0x0a, 0x20, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x12, 0x33, 0x2e, 0x67, - 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x48, - 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, - 0x67, 0x69, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x50, 0x6f, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x42, 0x0a, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, + 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, + 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, + 0x52, 0x08, 0x69, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x22, 0x23, 0x0a, 0x21, 0x50, 0x6f, + 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, + 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x5b, 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x48, 0x54, 0x54, + 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, + 0x3b, 0x0a, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x21, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, + 0x74, 0x65, 0x72, 0x52, 0x07, 0x72, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, 0x22, 0x1f, 0x0a, 0x1d, + 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x5b, 0x0a, + 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, + 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3b, 0x0a, + 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, + 0x64, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x22, 0x1f, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, - 0x6f, 0x64, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xb8, 0x03, 0x0a, 0x15, + 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x90, 0x01, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, + 0x6e, 0x63, 0x65, 0x12, 0x37, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, - 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, - 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, - 0x42, 0xe0, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0d, - 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, - 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, - 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x76, 0x31, 0xa2, - 0x02, 0x03, 0x47, 0x53, 0x58, 0xaa, 0x02, 0x15, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, - 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, - 0x70, 0x69, 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, - 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, 0x47, 0x61, 0x74, 0x65, - 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, - 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, + 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x38, 0x2e, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x49, 0x6e, 0x73, 0x74, 0x61, 0x6e, 0x63, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x84, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, + 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, + 0x72, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, + 0x65, 0x67, 0x69, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, 0x75, 0x74, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, + 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, + 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x48, 0x54, 0x54, 0x50, 0x52, 0x6f, + 0x75, 0x74, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, + 0x84, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, + 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x12, 0x33, 0x2e, 0x67, 0x61, 0x74, 0x65, + 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2e, 0x76, + 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x47, 0x52, 0x50, 0x43, + 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, + 0x2e, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x47, 0x52, 0x50, 0x43, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xe0, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x67, + 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x50, 0x72, + 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, + 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, + 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, + 0x69, 0x73, 0x2f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x47, 0x53, 0x58, 0xaa, 0x02, 0x15, 0x47, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, + 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, 0x47, 0x61, + 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x17, 0x47, 0x61, 0x74, 0x65, 0x77, 0x61, 0x79, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/gatewayapis/server/v1/register.proto b/gatewayapis/server/v1/register.proto index c479684..54e36d2 100644 --- a/gatewayapis/server/v1/register.proto +++ b/gatewayapis/server/v1/register.proto @@ -3,10 +3,6 @@ syntax = "proto3"; package gatewayapis.server.v1; import "gatewayapis/server/v1/defined.proto"; -import "google/api/annotations.proto"; -import "google/protobuf/empty.proto"; -import "google/protobuf/struct.proto"; -import "google/protobuf/timestamp.proto"; option go_package = "./gatewayapis/server/v1"; From fd2126ce452c5ee02802ddd0ca6aab9ca4ffc16b Mon Sep 17 00:00:00 2001 From: FDKevin Date: Wed, 29 Jun 2022 14:02:32 +0800 Subject: [PATCH 17/25] update protos --- .github/workflows/buf-lint.yml | 4 +- .github/workflows/lint.yml | 2 +- aggregatingapis/time/v1/time.pb.go | 211 +-- aggregatingapis/time/v1/time.proto | 10 +- aggregatingapis/time/v1/time_grpc.pb.go | 10 +- campusapis/gate/v1/callback.pb.go | 117 +- campusapis/gate/v1/callback.proto | 3 - campusapis/gate/v1/manager.pb.go | 220 ++-- campusapis/gate/v1/manager.proto | 2 - campusapis/health/v1/health.pb.go | 628 +++++---- campusapis/health/v1/health.proto | 2 - .../{schoolTime.pb.go => school_time.pb.go} | 264 ++-- ...hoolTime.pb.gw.go => school_time.pb.gw.go} | 2 +- .../{schoolTime.proto => school_time.proto} | 2 - ...Time_grpc.pb.go => school_time_grpc.pb.go} | 4 +- campusapis/staff/v1/campus.pb.go | 1135 ++++++++--------- campusapis/staff/v1/campus.proto | 1 - .../aggregatingapis/time/v1/time.swagger.json | 8 +- .../campusapis/health/v1/health.swagger.json | 6 +- .../schoolTime/v1/school_time.swagger.json | 250 ++++ gatewayapis/auth/v1/auth.pb.go | 6 +- gatewayapis/auth/v1/auth.proto | 1 - 22 files changed, 1546 insertions(+), 1342 deletions(-) rename campusapis/schoolTime/v1/{schoolTime.pb.go => school_time.pb.go} (51%) rename campusapis/schoolTime/v1/{schoolTime.pb.gw.go => school_time.pb.gw.go} (99%) rename campusapis/schoolTime/v1/{schoolTime.proto => school_time.proto} (93%) rename campusapis/schoolTime/v1/{schoolTime_grpc.pb.go => school_time_grpc.pb.go} (98%) create mode 100644 docs/swagger/campusapis/schoolTime/v1/school_time.swagger.json diff --git a/.github/workflows/buf-lint.yml b/.github/workflows/buf-lint.yml index aa5ed6a..29b0c06 100644 --- a/.github/workflows/buf-lint.yml +++ b/.github/workflows/buf-lint.yml @@ -1,4 +1,4 @@ -name: check buf generate up to date +name: check buf lint on: push: branches: @@ -7,7 +7,7 @@ on: branches: - main paths: - - "*.proto" + - "**.proto" - "buf.yaml" - ".github/workflows/buf-lint.yaml" diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 10d93dd..5c7a07c 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -1,4 +1,4 @@ -name: check buf generate up to date +name: check code lint on: push: branches: diff --git a/aggregatingapis/time/v1/time.pb.go b/aggregatingapis/time/v1/time.pb.go index ad39c2a..e9c8d7d 100644 --- a/aggregatingapis/time/v1/time.pb.go +++ b/aggregatingapis/time/v1/time.pb.go @@ -22,18 +22,18 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type TimeResp struct { +type GetTimeResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` - Data *TimeResp_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *GetTimeResponse_Data `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } -func (x *TimeResp) Reset() { - *x = TimeResp{} +func (x *GetTimeResponse) Reset() { + *x = GetTimeResponse{} if protoimpl.UnsafeEnabled { mi := &file_aggregatingapis_time_v1_time_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -41,13 +41,13 @@ func (x *TimeResp) Reset() { } } -func (x *TimeResp) String() string { +func (x *GetTimeResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TimeResp) ProtoMessage() {} +func (*GetTimeResponse) ProtoMessage() {} -func (x *TimeResp) ProtoReflect() protoreflect.Message { +func (x *GetTimeResponse) ProtoReflect() protoreflect.Message { mi := &file_aggregatingapis_time_v1_time_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -59,33 +59,33 @@ func (x *TimeResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TimeResp.ProtoReflect.Descriptor instead. -func (*TimeResp) Descriptor() ([]byte, []int) { +// Deprecated: Use GetTimeResponse.ProtoReflect.Descriptor instead. +func (*GetTimeResponse) Descriptor() ([]byte, []int) { return file_aggregatingapis_time_v1_time_proto_rawDescGZIP(), []int{0} } -func (x *TimeResp) GetError() uint32 { +func (x *GetTimeResponse) GetError() uint32 { if x != nil { return x.Error } return 0 } -func (x *TimeResp) GetMsg() string { +func (x *GetTimeResponse) GetMsg() string { if x != nil { return x.Msg } return "" } -func (x *TimeResp) GetData() *TimeResp_Data { +func (x *GetTimeResponse) GetData() *GetTimeResponse_Data { if x != nil { return x.Data } return nil } -type TimeResp_Data struct { +type GetTimeResponse_Data struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -105,8 +105,8 @@ type TimeResp_Data struct { ScoreSemester uint32 `protobuf:"varint,13,opt,name=score_semester,json=scoreSemester,proto3" json:"score_semester,omitempty"` } -func (x *TimeResp_Data) Reset() { - *x = TimeResp_Data{} +func (x *GetTimeResponse_Data) Reset() { + *x = GetTimeResponse_Data{} if protoimpl.UnsafeEnabled { mi := &file_aggregatingapis_time_v1_time_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -114,13 +114,13 @@ func (x *TimeResp_Data) Reset() { } } -func (x *TimeResp_Data) String() string { +func (x *GetTimeResponse_Data) String() string { return protoimpl.X.MessageStringOf(x) } -func (*TimeResp_Data) ProtoMessage() {} +func (*GetTimeResponse_Data) ProtoMessage() {} -func (x *TimeResp_Data) ProtoReflect() protoreflect.Message { +func (x *GetTimeResponse_Data) ProtoReflect() protoreflect.Message { mi := &file_aggregatingapis_time_v1_time_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -132,96 +132,96 @@ func (x *TimeResp_Data) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use TimeResp_Data.ProtoReflect.Descriptor instead. -func (*TimeResp_Data) Descriptor() ([]byte, []int) { +// Deprecated: Use GetTimeResponse_Data.ProtoReflect.Descriptor instead. +func (*GetTimeResponse_Data) Descriptor() ([]byte, []int) { return file_aggregatingapis_time_v1_time_proto_rawDescGZIP(), []int{0, 0} } -func (x *TimeResp_Data) GetSchoolYear() uint32 { +func (x *GetTimeResponse_Data) GetSchoolYear() uint32 { if x != nil { return x.SchoolYear } return 0 } -func (x *TimeResp_Data) GetSemester() uint32 { +func (x *GetTimeResponse_Data) GetSemester() uint32 { if x != nil { return x.Semester } return 0 } -func (x *TimeResp_Data) GetSemesterStartTimestamp() uint32 { +func (x *GetTimeResponse_Data) GetSemesterStartTimestamp() uint32 { if x != nil { return x.SemesterStartTimestamp } return 0 } -func (x *TimeResp_Data) GetWeekNow() uint32 { +func (x *GetTimeResponse_Data) GetWeekNow() uint32 { if x != nil { return x.WeekNow } return 0 } -func (x *TimeResp_Data) GetWeekDayNow() uint32 { +func (x *GetTimeResponse_Data) GetWeekDayNow() uint32 { if x != nil { return x.WeekDayNow } return 0 } -func (x *TimeResp_Data) GetTimestamp() uint32 { +func (x *GetTimeResponse_Data) GetTimestamp() uint32 { if x != nil { return x.Timestamp } return 0 } -func (x *TimeResp_Data) GetSection() uint32 { +func (x *GetTimeResponse_Data) GetSection() uint32 { if x != nil { return x.Section } return 0 } -func (x *TimeResp_Data) GetScheduleSchoolYear() uint32 { +func (x *GetTimeResponse_Data) GetScheduleSchoolYear() uint32 { if x != nil { return x.ScheduleSchoolYear } return 0 } -func (x *TimeResp_Data) GetScheduleSemester() uint32 { +func (x *GetTimeResponse_Data) GetScheduleSemester() uint32 { if x != nil { return x.ScheduleSemester } return 0 } -func (x *TimeResp_Data) GetExamSchoolYear() uint32 { +func (x *GetTimeResponse_Data) GetExamSchoolYear() uint32 { if x != nil { return x.ExamSchoolYear } return 0 } -func (x *TimeResp_Data) GetExamSemester() uint32 { +func (x *GetTimeResponse_Data) GetExamSemester() uint32 { if x != nil { return x.ExamSemester } return 0 } -func (x *TimeResp_Data) GetScoreSchoolYear() uint32 { +func (x *GetTimeResponse_Data) GetScoreSchoolYear() uint32 { if x != nil { return x.ScoreSchoolYear } return 0 } -func (x *TimeResp_Data) GetScoreSemester() uint32 { +func (x *GetTimeResponse_Data) GetScoreSemester() uint32 { if x != nil { return x.ScoreSemester } @@ -234,69 +234,70 @@ var file_aggregatingapis_time_v1_time_proto_rawDesc = []byte{ 0x0a, 0x22, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xe0, 0x04, 0x0a, 0x08, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, - 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x1a, 0xf3, 0x03, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, - 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, - 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x65, 0x6d, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x12, 0x20, 0x0a, 0x0c, - 0x77, 0x65, 0x65, 0x6b, 0x5f, 0x64, 0x61, 0x79, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x12, 0x1c, - 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x63, 0x68, 0x65, - 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x61, 0x6d, 0x5f, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0e, 0x65, 0x78, 0x61, 0x6d, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, - 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x61, 0x6d, 0x5f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x78, 0x61, 0x6d, 0x53, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, - 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, - 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x32, 0x61, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x53, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x52, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x1d, 0x2e, 0x66, 0x6c, 0x75, 0x74, - 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0a, - 0x12, 0x08, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x42, 0xd2, 0x01, 0x0a, 0x17, 0x63, - 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, - 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, - 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x70, 0x69, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x74, 0x69, 0x6d, - 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x46, 0x54, 0x58, 0xaa, 0x02, 0x13, 0x46, 0x6c, 0x75, 0x74, - 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x13, 0x46, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x54, 0x69, - 0x6d, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x46, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, - 0x70, 0x69, 0x73, 0x5c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, - 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x46, 0x6c, 0x75, 0x74, 0x74, 0x65, - 0x72, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xee, 0x04, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x3d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, + 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x69, 0x6d, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0xf3, 0x03, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x19, 0x0a, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x12, 0x20, 0x0a, 0x0c, 0x77, 0x65, + 0x65, 0x6b, 0x5f, 0x64, 0x61, 0x79, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, + 0x5f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, + 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x10, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x6d, 0x65, 0x73, + 0x74, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x61, 0x6d, 0x5f, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x65, + 0x78, 0x61, 0x6d, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x23, 0x0a, + 0x0d, 0x65, 0x78, 0x61, 0x6d, 0x5f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x78, 0x61, 0x6d, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, + 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x25, + 0x0a, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x32, 0x68, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, + 0x76, 0x69, 0x63, 0x65, 0x12, 0x59, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x24, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, + 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x42, + 0xd2, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x54, 0x69, 0x6d, + 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, + 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, + 0x31, 0x3b, 0x74, 0x69, 0x6d, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x46, 0x54, 0x58, 0xaa, 0x02, + 0x13, 0x46, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x54, 0x69, 0x6d, + 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x46, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, + 0x69, 0x73, 0x5c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x46, 0x6c, 0x75, + 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, + 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x46, + 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x54, 0x69, 0x6d, 0x65, + 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -313,14 +314,14 @@ func file_aggregatingapis_time_v1_time_proto_rawDescGZIP() []byte { var file_aggregatingapis_time_v1_time_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_aggregatingapis_time_v1_time_proto_goTypes = []interface{}{ - (*TimeResp)(nil), // 0: flutterapis.time.v1.TimeResp - (*TimeResp_Data)(nil), // 1: flutterapis.time.v1.TimeResp.Data - (*emptypb.Empty)(nil), // 2: google.protobuf.Empty + (*GetTimeResponse)(nil), // 0: flutterapis.time.v1.GetTimeResponse + (*GetTimeResponse_Data)(nil), // 1: flutterapis.time.v1.GetTimeResponse.Data + (*emptypb.Empty)(nil), // 2: google.protobuf.Empty } var file_aggregatingapis_time_v1_time_proto_depIdxs = []int32{ - 1, // 0: flutterapis.time.v1.TimeResp.data:type_name -> flutterapis.time.v1.TimeResp.Data + 1, // 0: flutterapis.time.v1.GetTimeResponse.data:type_name -> flutterapis.time.v1.GetTimeResponse.Data 2, // 1: flutterapis.time.v1.TimeService.GetTime:input_type -> google.protobuf.Empty - 0, // 2: flutterapis.time.v1.TimeService.GetTime:output_type -> flutterapis.time.v1.TimeResp + 0, // 2: flutterapis.time.v1.TimeService.GetTime:output_type -> flutterapis.time.v1.GetTimeResponse 2, // [2:3] is the sub-list for method output_type 1, // [1:2] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name @@ -335,7 +336,7 @@ func file_aggregatingapis_time_v1_time_proto_init() { } if !protoimpl.UnsafeEnabled { file_aggregatingapis_time_v1_time_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TimeResp); i { + switch v := v.(*GetTimeResponse); i { case 0: return &v.state case 1: @@ -347,7 +348,7 @@ func file_aggregatingapis_time_v1_time_proto_init() { } } file_aggregatingapis_time_v1_time_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TimeResp_Data); i { + switch v := v.(*GetTimeResponse_Data); i { case 0: return &v.state case 1: diff --git a/aggregatingapis/time/v1/time.proto b/aggregatingapis/time/v1/time.proto index cb48652..5e8e7b7 100644 --- a/aggregatingapis/time/v1/time.proto +++ b/aggregatingapis/time/v1/time.proto @@ -2,24 +2,24 @@ syntax = "proto3"; package flutterapis.time.v1; -import "google/protobuf/empty.proto"; import "google/api/annotations.proto"; +import "google/protobuf/empty.proto"; option go_package = "./flutterapis/time/v1"; service TimeService { - rpc GetTime(google.protobuf.Empty) returns (TimeResp) { + rpc GetTime(google.protobuf.Empty) returns (GetTimeResponse) { option (google.api.http) = { get: "/time/v1" }; } } - -message TimeResp { +message GetTimeResponse { uint32 error = 1; string msg = 2; Data data = 3; + message Data { uint32 school_year = 1; uint32 semester = 2; @@ -36,4 +36,4 @@ message TimeResp { uint32 score_school_year = 12; uint32 score_semester = 13; } -} \ No newline at end of file +} diff --git a/aggregatingapis/time/v1/time_grpc.pb.go b/aggregatingapis/time/v1/time_grpc.pb.go index a88d93f..01ca25e 100644 --- a/aggregatingapis/time/v1/time_grpc.pb.go +++ b/aggregatingapis/time/v1/time_grpc.pb.go @@ -23,7 +23,7 @@ const _ = grpc.SupportPackageIsVersion7 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type TimeServiceClient interface { - GetTime(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*TimeResp, error) + GetTime(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetTimeResponse, error) } type timeServiceClient struct { @@ -34,8 +34,8 @@ func NewTimeServiceClient(cc grpc.ClientConnInterface) TimeServiceClient { return &timeServiceClient{cc} } -func (c *timeServiceClient) GetTime(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*TimeResp, error) { - out := new(TimeResp) +func (c *timeServiceClient) GetTime(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetTimeResponse, error) { + out := new(GetTimeResponse) err := c.cc.Invoke(ctx, "/flutterapis.time.v1.TimeService/GetTime", in, out, opts...) if err != nil { return nil, err @@ -47,7 +47,7 @@ func (c *timeServiceClient) GetTime(ctx context.Context, in *emptypb.Empty, opts // All implementations must embed UnimplementedTimeServiceServer // for forward compatibility type TimeServiceServer interface { - GetTime(context.Context, *emptypb.Empty) (*TimeResp, error) + GetTime(context.Context, *emptypb.Empty) (*GetTimeResponse, error) mustEmbedUnimplementedTimeServiceServer() } @@ -55,7 +55,7 @@ type TimeServiceServer interface { type UnimplementedTimeServiceServer struct { } -func (UnimplementedTimeServiceServer) GetTime(context.Context, *emptypb.Empty) (*TimeResp, error) { +func (UnimplementedTimeServiceServer) GetTime(context.Context, *emptypb.Empty) (*GetTimeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetTime not implemented") } func (UnimplementedTimeServiceServer) mustEmbedUnimplementedTimeServiceServer() {} diff --git a/campusapis/gate/v1/callback.pb.go b/campusapis/gate/v1/callback.pb.go index 0441347..42b9ef0 100644 --- a/campusapis/gate/v1/callback.pb.go +++ b/campusapis/gate/v1/callback.pb.go @@ -7,11 +7,8 @@ package gatev1 import ( - _ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options" - _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - _ "google.golang.org/protobuf/types/known/emptypb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" @@ -194,68 +191,62 @@ var file_campusapis_gate_v1_callback_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x12, 0x12, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x20, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x66, 0x69, - 0x6e, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, - 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8e, 0x03, 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, - 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x5f, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x66, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x61, 0x74, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x39, 0x0a, - 0x09, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0e, - 0x32, 0x1c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, - 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x08, - 0x67, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, 0x09, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1d, 0x2e, 0x63, 0x61, + 0x6e, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x8e, 0x03, 0x0a, 0x1c, 0x50, + 0x6f, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x66, 0x66, 0x5f, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2e, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x67, 0x61, 0x74, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x09, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x52, 0x08, 0x67, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x3b, 0x0a, + 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x1d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, + 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x07, 0x73, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x44, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x35, 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x1b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x38, 0x0a, 0x06, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x20, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x52, 0x06, - 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x47, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, - 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x32, - 0x95, 0x01, 0x0a, 0x13, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7e, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x47, + 0x2e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x52, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, + 0x65, 0x12, 0x38, 0x0a, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0e, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, + 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4d, 0x65, 0x74, + 0x68, 0x6f, 0x64, 0x52, 0x06, 0x6d, 0x65, 0x74, 0x68, 0x6f, 0x64, 0x22, 0x47, 0x0a, 0x1d, 0x50, + 0x6f, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, + 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x32, 0x95, 0x01, 0x0a, 0x13, 0x47, 0x61, 0x74, 0x65, 0x43, 0x61, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7e, 0x0a, 0x15, + 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, + 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, - 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, - 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, - 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x47, 0x61, 0x74, 0x65, - 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xcc, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, - 0x76, 0x31, 0x42, 0x0d, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, - 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, - 0x67, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x61, 0x74, 0x65, 0x76, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x61, 0x74, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, - 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x61, 0x74, 0x65, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x47, 0x61, - 0x74, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, + 0x74, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xcc, 0x01, 0x0a, + 0x16, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0d, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, + 0x6b, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, + 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, + 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x61, 0x74, + 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, + 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x61, 0x74, 0x65, + 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x5c, 0x47, 0x61, 0x74, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x3a, 0x3a, 0x47, 0x61, 0x74, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/campusapis/gate/v1/callback.proto b/campusapis/gate/v1/callback.proto index c18f6b9..3d70640 100644 --- a/campusapis/gate/v1/callback.proto +++ b/campusapis/gate/v1/callback.proto @@ -3,10 +3,7 @@ syntax = "proto3"; package campusapis.gate.v1; import "campusapis/gate/v1/defined.proto"; -import "google/api/annotations.proto"; -import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; -import "protoc-gen-openapiv2/options/annotations.proto"; option go_package = "./campusapis/gate/v1"; diff --git a/campusapis/gate/v1/manager.pb.go b/campusapis/gate/v1/manager.pb.go index 4297ee9..489d2d0 100644 --- a/campusapis/gate/v1/manager.pb.go +++ b/campusapis/gate/v1/manager.pb.go @@ -7,11 +7,9 @@ package gatev1 import ( - _ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" - _ "google.golang.org/protobuf/types/known/emptypb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" @@ -510,120 +508,116 @@ var file_campusapis_gate_v1_manager_proto_rawDesc = []byte{ 0x69, 0x73, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x64, 0x65, 0x66, 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, - 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc0, 0x02, 0x0a, 0x22, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, - 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, - 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xae, 0x01, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x64, 0x65, 0x76, - 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, - 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x69, - 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, - 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3f, 0x0a, 0x23, 0x50, 0x6f, 0x73, 0x74, 0x43, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, - 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xda, 0x01, 0x0a, 0x1c, 0x50, 0x6f, 0x73, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x4d, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x22, 0xa4, 0x02, 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x12, 0x4a, 0x0a, 0x12, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x67, 0x61, 0x74, 0x65, - 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, 0x1c, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x10, 0x74, 0x72, 0x69, 0x67, - 0x67, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, 0x39, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2b, - 0x0a, 0x11, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x65, 0x6e, 0x64, 0x70, 0x6f, - 0x69, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x6c, 0x6c, 0x62, - 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x1f, 0x0a, 0x1d, 0x50, - 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, 0xd9, 0x03, 0x0a, - 0x12, 0x47, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x53, 0x65, 0x72, 0x76, - 0x69, 0x63, 0x65, 0x12, 0xc2, 0x01, 0x0a, 0x1b, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, - 0x61, 0x63, 0x6b, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, - 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x47, 0x61, 0x74, 0x65, 0x45, - 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x22, 0x1b, 0x2f, 0x67, - 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x2f, - 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x3a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x62, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x7e, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xc0, 0x02, 0x0a, 0x22, 0x50, 0x6f, 0x73, 0x74, + 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x4f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x3b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, + 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xae, 0x01, 0x0a, 0x04, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x66, 0x66, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, + 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x64, 0x65, 0x76, 0x69, 0x63, 0x65, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x64, 0x69, 0x72, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1d, 0x0a, 0x0a, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x22, 0x3f, 0x0a, 0x23, 0x50, 0x6f, + 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xda, 0x01, 0x0a, 0x1c, + 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, + 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, + 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, + 0x12, 0x16, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0x4d, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, - 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xa4, 0x02, 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, - 0x74, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, - 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, - 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xcb, 0x01, 0x0a, 0x16, 0x63, 0x6f, 0x6d, + 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x64, 0x12, 0x4a, 0x0a, 0x12, 0x74, 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x5f, 0x67, + 0x61, 0x74, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0e, 0x32, + 0x1c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, + 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x52, 0x10, 0x74, + 0x72, 0x69, 0x67, 0x67, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x54, 0x79, 0x70, 0x65, 0x73, 0x12, + 0x39, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x35, 0x0a, 0x08, 0x65, 0x6e, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x5f, 0x65, 0x6e, + 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, + 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x1f, + 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, + 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x32, + 0xd9, 0x03, 0x0a, 0x12, 0x47, 0x61, 0x74, 0x65, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x53, + 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xc2, 0x01, 0x0a, 0x1b, 0x50, 0x6f, 0x73, 0x74, 0x43, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, + 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, + 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, + 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, - 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, - 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, - 0x67, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x61, 0x74, 0x65, 0x76, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x61, 0x74, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, - 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x61, 0x74, 0x65, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x47, 0x61, - 0x74, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x47, 0x61, + 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x43, 0x61, 0x6c, 0x6c, 0x62, 0x61, 0x63, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x32, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2c, 0x22, + 0x1b, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x61, 0x6c, 0x6c, 0x62, 0x61, + 0x63, 0x6b, 0x2f, 0x7b, 0x73, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x7d, 0x3a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x62, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x7e, 0x0a, 0x15, 0x50, + 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x7e, 0x0a, 0x15, 0x50, + 0x6f, 0x73, 0x74, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x45, + 0x76, 0x65, 0x6e, 0x74, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x52, 0x65, + 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x67, 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, + 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x47, 0x61, 0x74, 0x65, 0x45, 0x76, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0xcb, 0x01, 0x0a, 0x16, + 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x67, + 0x61, 0x74, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0c, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, + 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x39, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, + 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, + 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2f, 0x67, 0x61, 0x74, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x67, 0x61, 0x74, 0x65, 0x76, + 0x31, 0xa2, 0x02, 0x03, 0x43, 0x47, 0x58, 0xaa, 0x02, 0x12, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x47, 0x61, 0x74, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x12, 0x43, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, 0x61, 0x74, 0x65, 0x5c, 0x56, + 0x31, 0xe2, 0x02, 0x1e, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x47, + 0x61, 0x74, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 0xea, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, + 0x3a, 0x47, 0x61, 0x74, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/campusapis/gate/v1/manager.proto b/campusapis/gate/v1/manager.proto index cc54aa2..09dc6d2 100644 --- a/campusapis/gate/v1/manager.proto +++ b/campusapis/gate/v1/manager.proto @@ -4,9 +4,7 @@ package campusapis.gate.v1; import "campusapis/gate/v1/defined.proto"; import "google/api/annotations.proto"; -import "google/protobuf/empty.proto"; import "google/protobuf/timestamp.proto"; -import "protoc-gen-openapiv2/options/annotations.proto"; option go_package = "./campusapis/gate/v1"; diff --git a/campusapis/health/v1/health.pb.go b/campusapis/health/v1/health.pb.go index 468e975..51cbf4c 100644 --- a/campusapis/health/v1/health.pb.go +++ b/campusapis/health/v1/health.pb.go @@ -7,9 +7,7 @@ package healthv1 import ( - _ "github.com/hduhelp/api_open_sdk/campusapis/staff" _ "google.golang.org/genproto/googleapis/api/annotations" - _ "google.golang.org/genproto/googleapis/api/httpbody" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" emptypb "google.golang.org/protobuf/types/known/emptypb" @@ -1635,329 +1633,325 @@ var file_campusapis_health_v1_health_proto_rawDesc = []byte{ 0x0a, 0x21, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x14, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x1a, 0x1b, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x62, 0x61, 0x73, 0x65, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, - 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, - 0x2f, 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, - 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2d, 0x0a, 0x17, 0x47, - 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, - 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x7b, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb2, 0x03, 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, - 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, - 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, - 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, 0x31, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, - 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, - 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, - 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, - 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, - 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x64, 0x22, 0x75, 0x0a, 0x18, 0x50, 0x6f, - 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x12, 0x45, 0x0a, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, - 0x63, 0x6f, 0x72, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x22, 0xb9, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, - 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x6f, 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, - 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, - 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, - 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6e, 0x73, 0x77, 0x65, - 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x22, 0xd7, 0x01, - 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x48, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x48, 0x0a, - 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xc1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x22, 0x2d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, + 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x65, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x7b, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, + 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xb2, 0x03, + 0x0a, 0x0d, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, + 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, + 0x69, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x6f, 0x64, 0x69, 0x66, 0x69, 0x65, 0x72, 0x12, + 0x31, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x53, 0x74, 0x72, 0x75, 0x63, 0x74, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x69, + 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x75, 0x6e, 0x69, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x49, 0x64, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x49, 0x64, 0x22, 0x75, 0x0a, 0x18, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, + 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, + 0x0a, 0x04, 0x73, 0x69, 0x67, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x69, + 0x67, 0x6e, 0x12, 0x45, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, 0x6f, 0x64, 0x79, + 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x22, 0xb9, 0x01, 0x0a, 0x15, 0x50, 0x6f, + 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x42, + 0x6f, 0x64, 0x79, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x69, 0x74, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x63, 0x69, 0x74, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x72, 0x79, 0x12, + 0x24, 0x0a, 0x0d, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4a, 0x73, 0x6f, 0x6e, 0x53, 0x74, 0x72, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x4a, 0x73, + 0x6f, 0x6e, 0x53, 0x74, 0x72, 0x22, 0xd7, 0x01, 0x0a, 0x19, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, + 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x46, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x48, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x1a, 0x36, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x53, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x22, 0x2f, 0x0a, 0x17, 0x50, - 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x5c, 0x0a, 0x18, - 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0xb2, 0x02, 0x0a, 0x0a, 0x48, - 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x64, - 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, - 0x64, 0x12, 0x38, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x67, - 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, - 0x78, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, - 0x52, 0x61, 0x77, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xdb, 0x02, 0x0a, 0x0d, 0x48, 0x65, - 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, - 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, - 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, - 0x73, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, - 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x72, - 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x66, - 0x69, 0x72, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x73, - 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd0, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, - 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x48, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x41, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x39, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, - 0x6f, 0x72, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0xa1, 0x02, 0x0a, 0x0d, 0x56, - 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, - 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x61, 0x63, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x61, 0x63, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0f, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x69, 0x6e, 0x6f, - 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, - 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x2e, - 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x49, - 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd6, - 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, - 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x4a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, - 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x1a, 0x43, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x05, 0x69, 0x74, - 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, - 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, 0x89, 0x01, 0x0a, 0x0f, 0x4e, 0x75, 0x63, 0x6c, - 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, - 0x65, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x3a, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, - 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, - 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x32, 0xd5, 0x0a, 0x0a, 0x0d, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb9, 0x01, - 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, - 0x72, 0x64, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, + 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x48, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, + 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, + 0xc1, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x46, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x40, 0x12, 0x12, 0x2f, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x5a, 0x11, 0x12, - 0x0f, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, - 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, 0x63, - 0x6b, 0x69, 0x6e, 0x2f, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x8d, 0x01, 0x0a, 0x11, 0x47, 0x65, - 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, - 0x12, 0x13, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x65, - 0x63, 0x6b, 0x69, 0x6e, 0x73, 0x5a, 0x12, 0x12, 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x11, 0x50, 0x6f, - 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, - 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, - 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, 0x22, 0x12, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x3a, 0x07, 0x63, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5a, 0x1a, 0x22, 0x0f, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x3a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x83, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, - 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2d, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x23, 0x12, 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, - 0x68, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0xa2, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x74, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2d, 0x2e, 0x63, + 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x36, 0x0a, 0x04, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x53, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x44, 0x22, 0x2f, 0x0a, 0x17, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x14, + 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, + 0x68, 0x6f, 0x6e, 0x65, 0x22, 0x5c, 0x0a, 0x18, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x22, 0xb2, 0x02, 0x0a, 0x0a, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x63, 0x6f, 0x64, 0x65, 0x49, 0x64, 0x12, 0x38, 0x0a, 0x09, 0x61, 0x70, 0x70, + 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, + 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x38, 0x0a, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x52, 0x09, 0x67, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, + 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x22, 0x78, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x48, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x61, 0x77, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0xdb, 0x02, 0x0a, 0x0d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, + 0x52, 0x61, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, + 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, + 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x64, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x64, + 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x6f, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x66, + 0x69, 0x72, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x66, 0x69, 0x72, 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x66, 0x69, 0x72, + 0x73, 0x74, 0x47, 0x72, 0x61, 0x6e, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6c, + 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6c, 0x61, 0x73, 0x74, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0xd0, 0x01, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x48, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x34, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, + 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, + 0x41, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x39, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x56, 0x61, + 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, + 0x6d, 0x73, 0x22, 0xa1, 0x02, 0x0a, 0x0d, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, + 0x63, 0x6f, 0x72, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x79, 0x70, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x61, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x76, 0x61, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x70, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, + 0x0a, 0x0f, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x0f, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x61, 0x74, 0x63, 0x68, 0x12, 0x2a, 0x0a, 0x10, 0x69, 0x6e, + 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x69, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x72, 0x64, 0x65, 0x72, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x6f, + 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x12, 0x6d, 0x61, 0x78, 0x49, 0x6e, 0x6f, 0x63, 0x75, 0x6c, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd6, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x4e, 0x75, + 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x4a, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, - 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, - 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x29, 0x22, 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, - 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x5a, 0x12, 0x22, 0x0d, 0x2f, 0x68, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7d, 0x0a, 0x0d, - 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x21, 0x12, 0x0f, 0x2f, 0x68, 0x65, 0x61, - 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, - 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x79, 0x0a, 0x11, 0x47, - 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, - 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, - 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x15, 0x12, 0x13, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, - 0x63, 0x63, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x87, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x75, - 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x1f, 0x12, 0x1d, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x75, - 0x63, 0x6c, 0x65, 0x69, 0x63, 0x5f, 0x61, 0x63, 0x69, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x73, - 0x12, 0x90, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, - 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x12, 0x16, 0x2e, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, + 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x43, 0x0a, 0x04, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x3b, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, + 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x22, + 0x89, 0x01, 0x0a, 0x0f, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, + 0x65, 0x73, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x55, 0x6e, 0x69, 0x74, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x73, 0x74, 0x55, + 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, + 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x85, 0x01, 0x0a, 0x20, + 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, + 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x75, + 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x32, 0xd5, 0x0a, 0x0a, 0x0d, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x53, 0x65, + 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0xb9, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, + 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x46, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x40, 0x12, 0x12, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x5a, 0x17, 0x12, 0x15, 0x2f, 0x68, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x2f, 0x74, 0x6f, 0x64, 0x61, + 0x79, 0x12, 0x8d, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, + 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, + 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, + 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x13, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x73, 0x5a, 0x12, 0x12, + 0x10, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, + 0x73, 0x12, 0xb5, 0x01, 0x0a, 0x11, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, + 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x12, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, + 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x39, + 0x22, 0x12, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x68, 0x65, + 0x63, 0x6b, 0x69, 0x6e, 0x3a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x5a, 0x1a, 0x22, + 0x0f, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, + 0x3a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x83, 0x01, 0x0a, 0x0f, 0x47, 0x65, + 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x29, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x23, 0x12, 0x10, 0x2f, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x5a, 0x0f, + 0x12, 0x0d, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, + 0xa2, 0x01, 0x0a, 0x10, 0x50, 0x6f, 0x73, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x69, 0x6e, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x22, 0x10, 0x2f, 0x68, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x3a, 0x01, 0x2a, + 0x5a, 0x12, 0x22, 0x0d, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x70, 0x68, 0x6f, 0x6e, + 0x65, 0x3a, 0x01, 0x2a, 0x12, 0x7d, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x43, 0x6f, + 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x27, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x21, 0x12, 0x0f, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x63, + 0x6f, 0x64, 0x65, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x63, + 0x6f, 0x64, 0x65, 0x12, 0x79, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, 0x6e, + 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, + 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x56, 0x61, 0x63, 0x63, 0x69, + 0x6e, 0x65, 0x52, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x1b, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x15, 0x12, 0x13, 0x2f, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x76, 0x61, 0x63, 0x63, 0x69, 0x6e, 0x65, 0x73, 0x12, 0x87, + 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, + 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x31, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, + 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x25, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1f, 0x12, 0x1d, 0x2f, 0x68, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x5f, 0x61, 0x63, + 0x69, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x73, 0x12, 0x90, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, - 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, - 0x31, 0x2f, 0x6e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x5f, 0x61, 0x63, 0x69, 0x64, 0x5f, 0x74, - 0x65, 0x73, 0x74, 0x42, 0xd8, 0x01, 0x0a, 0x18, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, - 0x42, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, - 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, - 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, - 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x6c, - 0x74, 0x68, 0x2f, 0x76, 0x31, 0x3b, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x76, 0x31, 0xa2, 0x02, - 0x03, 0x43, 0x48, 0x58, 0xaa, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x14, 0x43, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5c, - 0x56, 0x31, 0xe2, 0x02, 0x20, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, - 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, - 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x16, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x3a, 0x3a, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x61, 0x74, 0x65, 0x73, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x36, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, 0x65, 0x61, 0x6c, 0x74, + 0x68, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x69, 0x63, 0x41, + 0x63, 0x69, 0x64, 0x54, 0x65, 0x73, 0x74, 0x4c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x1c, 0x2f, + 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x75, 0x63, 0x6c, 0x65, 0x69, + 0x63, 0x5f, 0x61, 0x63, 0x69, 0x64, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x42, 0xd8, 0x01, 0x0a, 0x18, + 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x68, + 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, + 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2f, 0x68, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x2f, 0x76, 0x31, 0x3b, 0x68, 0x65, + 0x61, 0x6c, 0x74, 0x68, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x48, 0x58, 0xaa, 0x02, 0x14, 0x43, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, + 0x2e, 0x56, 0x31, 0xca, 0x02, 0x14, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x5c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x20, 0x43, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x48, 0x65, 0x61, 0x6c, 0x74, 0x68, 0x5c, 0x56, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x16, + 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x48, 0x65, 0x61, 0x6c, + 0x74, 0x68, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/campusapis/health/v1/health.proto b/campusapis/health/v1/health.proto index d27a5af..81e5308 100644 --- a/campusapis/health/v1/health.proto +++ b/campusapis/health/v1/health.proto @@ -2,9 +2,7 @@ syntax = "proto3"; package campusapis.health.v1; -import "campusapis/staff/base.proto"; import "google/api/annotations.proto"; -import "google/api/httpbody.proto"; import "google/protobuf/empty.proto"; import "google/protobuf/struct.proto"; import "google/protobuf/timestamp.proto"; diff --git a/campusapis/schoolTime/v1/schoolTime.pb.go b/campusapis/schoolTime/v1/school_time.pb.go similarity index 51% rename from campusapis/schoolTime/v1/schoolTime.pb.go rename to campusapis/schoolTime/v1/school_time.pb.go index a0cfebb..8ce9171 100644 --- a/campusapis/schoolTime/v1/schoolTime.pb.go +++ b/campusapis/schoolTime/v1/school_time.pb.go @@ -2,17 +2,15 @@ // versions: // protoc-gen-go v1.28.0 // protoc (unknown) -// source: campusapis/schoolTime/v1/schoolTime.proto +// source: campusapis/schoolTime/v1/school_time.proto package schoolTimev1 import ( - _ "github.com/hduhelp/api_open_sdk/campusapis/schoolTime" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" emptypb "google.golang.org/protobuf/types/known/emptypb" - _ "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" sync "sync" ) @@ -37,7 +35,7 @@ type GetSchoolTimeResponse struct { func (x *GetSchoolTimeResponse) Reset() { *x = GetSchoolTimeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[0] + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50,7 +48,7 @@ func (x *GetSchoolTimeResponse) String() string { func (*GetSchoolTimeResponse) ProtoMessage() {} func (x *GetSchoolTimeResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[0] + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63,7 +61,7 @@ func (x *GetSchoolTimeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSchoolTimeResponse.ProtoReflect.Descriptor instead. func (*GetSchoolTimeResponse) Descriptor() ([]byte, []int) { - return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{0} + return file_campusapis_schoolTime_v1_school_time_proto_rawDescGZIP(), []int{0} } func (x *GetSchoolTimeResponse) GetError() uint32 { @@ -103,7 +101,7 @@ type SchoolTime struct { func (x *SchoolTime) Reset() { *x = SchoolTime{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[1] + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -116,7 +114,7 @@ func (x *SchoolTime) String() string { func (*SchoolTime) ProtoMessage() {} func (x *SchoolTime) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[1] + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -129,7 +127,7 @@ func (x *SchoolTime) ProtoReflect() protoreflect.Message { // Deprecated: Use SchoolTime.ProtoReflect.Descriptor instead. func (*SchoolTime) Descriptor() ([]byte, []int) { - return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{1} + return file_campusapis_schoolTime_v1_school_time_proto_rawDescGZIP(), []int{1} } func (x *SchoolTime) GetSchoolYear() string { @@ -186,7 +184,7 @@ type GetSemesterListRequest struct { func (x *GetSemesterListRequest) Reset() { *x = GetSemesterListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[2] + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -199,7 +197,7 @@ func (x *GetSemesterListRequest) String() string { func (*GetSemesterListRequest) ProtoMessage() {} func (x *GetSemesterListRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[2] + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -212,7 +210,7 @@ func (x *GetSemesterListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSemesterListRequest.ProtoReflect.Descriptor instead. func (*GetSemesterListRequest) Descriptor() ([]byte, []int) { - return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{2} + return file_campusapis_schoolTime_v1_school_time_proto_rawDescGZIP(), []int{2} } func (x *GetSemesterListRequest) GetStartDate() string { @@ -242,7 +240,7 @@ type GetSemesterListResponse struct { func (x *GetSemesterListResponse) Reset() { *x = GetSemesterListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[3] + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -255,7 +253,7 @@ func (x *GetSemesterListResponse) String() string { func (*GetSemesterListResponse) ProtoMessage() {} func (x *GetSemesterListResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[3] + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -268,7 +266,7 @@ func (x *GetSemesterListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetSemesterListResponse.ProtoReflect.Descriptor instead. func (*GetSemesterListResponse) Descriptor() ([]byte, []int) { - return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{3} + return file_campusapis_schoolTime_v1_school_time_proto_rawDescGZIP(), []int{3} } func (x *GetSemesterListResponse) GetError() uint32 { @@ -307,7 +305,7 @@ type SemesterInfo struct { func (x *SemesterInfo) Reset() { *x = SemesterInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[4] + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -320,7 +318,7 @@ func (x *SemesterInfo) String() string { func (*SemesterInfo) ProtoMessage() {} func (x *SemesterInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[4] + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -333,7 +331,7 @@ func (x *SemesterInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use SemesterInfo.ProtoReflect.Descriptor instead. func (*SemesterInfo) Descriptor() ([]byte, []int) { - return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{4} + return file_campusapis_schoolTime_v1_school_time_proto_rawDescGZIP(), []int{4} } func (x *SemesterInfo) GetSchoolYear() string { @@ -371,117 +369,113 @@ func (x *SemesterInfo) GetState() int32 { return 0 } -var File_campusapis_schoolTime_v1_schoolTime_proto protoreflect.FileDescriptor +var File_campusapis_schoolTime_v1_school_time_proto protoreflect.FileDescriptor -var file_campusapis_schoolTime_v1_schoolTime_proto_rawDesc = []byte{ - 0x0a, 0x29, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, 0x68, +var file_campusapis_schoolTime_v1_school_time_proto_rawDesc = []byte{ + 0x0a, 0x2a, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, - 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x23, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2f, 0x64, 0x65, 0x66, - 0x69, 0x6e, 0x65, 0x64, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, - 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x79, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0xba, 0x01, 0x0a, 0x0a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, - 0x61, 0x6d, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, - 0x74, 0x61, 0x6d, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, - 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, - 0x79, 0x4e, 0x6f, 0x77, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x22, 0x50, - 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, - 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, - 0x22, 0x7d, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x6d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x26, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x98, 0x01, 0x0a, 0x0c, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, - 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, - 0x44, 0x61, 0x74, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x32, 0xd0, 0x02, 0x0a, 0x11, 0x53, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, - 0x12, 0x7e, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, - 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x1e, 0x12, 0x13, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x2f, - 0x76, 0x31, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x5a, 0x07, 0x12, 0x05, 0x2f, 0x74, 0x69, 0x6d, 0x65, - 0x12, 0xba, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x6c, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x18, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, + 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, + 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x22, 0x79, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x38, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xba, 0x01, 0x0a, + 0x0a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x6d, 0x70, 0x12, + 0x1e, 0x0a, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x12, + 0x18, 0x0a, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x22, 0x50, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x44, 0x61, 0x74, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x22, 0x7d, 0x0a, 0x17, 0x47, + 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3a, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x98, 0x01, 0x0a, 0x0c, 0x53, + 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x44, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, + 0x73, 0x74, 0x61, 0x74, 0x65, 0x32, 0xd0, 0x02, 0x0a, 0x11, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x7e, 0x0a, 0x0d, 0x47, + 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, + 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x3c, 0x12, 0x22, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, - 0x31, 0x2f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x42, - 0x79, 0x44, 0x61, 0x74, 0x65, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x42, 0xf8, 0x01, - 0x0a, 0x1c, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0f, - 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x45, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, - 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, - 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, - 0x18, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x43, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, - 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x24, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x5c, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, 0x5c, - 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x43, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x47, 0x65, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x24, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x1e, 0x12, 0x13, 0x2f, + 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x69, + 0x6d, 0x65, 0x5a, 0x07, 0x12, 0x05, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x12, 0xba, 0x01, 0x0a, 0x0f, + 0x47, 0x65, 0x74, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x42, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3c, 0x12, 0x22, 0x2f, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x6c, 0x69, 0x73, 0x74, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, + 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x2f, 0x6c, 0x69, + 0x73, 0x74, 0x42, 0x79, 0x44, 0x61, 0x74, 0x65, 0x42, 0xf8, 0x01, 0x0a, 0x1c, 0x63, 0x6f, 0x6d, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x53, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x45, 0x67, 0x69, + 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, + 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, + 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x18, 0x43, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, + 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x18, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x5c, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, 0xe2, + 0x02, 0x24, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, + 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1a, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x3a, + 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_campusapis_schoolTime_v1_schoolTime_proto_rawDescOnce sync.Once - file_campusapis_schoolTime_v1_schoolTime_proto_rawDescData = file_campusapis_schoolTime_v1_schoolTime_proto_rawDesc + file_campusapis_schoolTime_v1_school_time_proto_rawDescOnce sync.Once + file_campusapis_schoolTime_v1_school_time_proto_rawDescData = file_campusapis_schoolTime_v1_school_time_proto_rawDesc ) -func file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP() []byte { - file_campusapis_schoolTime_v1_schoolTime_proto_rawDescOnce.Do(func() { - file_campusapis_schoolTime_v1_schoolTime_proto_rawDescData = protoimpl.X.CompressGZIP(file_campusapis_schoolTime_v1_schoolTime_proto_rawDescData) +func file_campusapis_schoolTime_v1_school_time_proto_rawDescGZIP() []byte { + file_campusapis_schoolTime_v1_school_time_proto_rawDescOnce.Do(func() { + file_campusapis_schoolTime_v1_school_time_proto_rawDescData = protoimpl.X.CompressGZIP(file_campusapis_schoolTime_v1_school_time_proto_rawDescData) }) - return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescData + return file_campusapis_schoolTime_v1_school_time_proto_rawDescData } -var file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes = make([]protoimpl.MessageInfo, 5) -var file_campusapis_schoolTime_v1_schoolTime_proto_goTypes = []interface{}{ +var file_campusapis_schoolTime_v1_school_time_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_campusapis_schoolTime_v1_school_time_proto_goTypes = []interface{}{ (*GetSchoolTimeResponse)(nil), // 0: campusapis.schoolTime.v1.GetSchoolTimeResponse (*SchoolTime)(nil), // 1: campusapis.schoolTime.v1.SchoolTime (*GetSemesterListRequest)(nil), // 2: campusapis.schoolTime.v1.GetSemesterListRequest @@ -489,7 +483,7 @@ var file_campusapis_schoolTime_v1_schoolTime_proto_goTypes = []interface{}{ (*SemesterInfo)(nil), // 4: campusapis.schoolTime.v1.SemesterInfo (*emptypb.Empty)(nil), // 5: google.protobuf.Empty } -var file_campusapis_schoolTime_v1_schoolTime_proto_depIdxs = []int32{ +var file_campusapis_schoolTime_v1_school_time_proto_depIdxs = []int32{ 1, // 0: campusapis.schoolTime.v1.GetSchoolTimeResponse.data:type_name -> campusapis.schoolTime.v1.SchoolTime 4, // 1: campusapis.schoolTime.v1.GetSemesterListResponse.data:type_name -> campusapis.schoolTime.v1.SemesterInfo 5, // 2: campusapis.schoolTime.v1.SchoolTimeService.GetSchoolTime:input_type -> google.protobuf.Empty @@ -503,13 +497,13 @@ var file_campusapis_schoolTime_v1_schoolTime_proto_depIdxs = []int32{ 0, // [0:2] is the sub-list for field type_name } -func init() { file_campusapis_schoolTime_v1_schoolTime_proto_init() } -func file_campusapis_schoolTime_v1_schoolTime_proto_init() { - if File_campusapis_schoolTime_v1_schoolTime_proto != nil { +func init() { file_campusapis_schoolTime_v1_school_time_proto_init() } +func file_campusapis_schoolTime_v1_school_time_proto_init() { + if File_campusapis_schoolTime_v1_school_time_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_campusapis_schoolTime_v1_school_time_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSchoolTimeResponse); i { case 0: return &v.state @@ -521,7 +515,7 @@ func file_campusapis_schoolTime_v1_schoolTime_proto_init() { return nil } } - file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_campusapis_schoolTime_v1_school_time_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SchoolTime); i { case 0: return &v.state @@ -533,7 +527,7 @@ func file_campusapis_schoolTime_v1_schoolTime_proto_init() { return nil } } - file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_campusapis_schoolTime_v1_school_time_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSemesterListRequest); i { case 0: return &v.state @@ -545,7 +539,7 @@ func file_campusapis_schoolTime_v1_schoolTime_proto_init() { return nil } } - file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_campusapis_schoolTime_v1_school_time_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetSemesterListResponse); i { case 0: return &v.state @@ -557,7 +551,7 @@ func file_campusapis_schoolTime_v1_schoolTime_proto_init() { return nil } } - file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_campusapis_schoolTime_v1_school_time_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SemesterInfo); i { case 0: return &v.state @@ -574,18 +568,18 @@ func file_campusapis_schoolTime_v1_schoolTime_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_campusapis_schoolTime_v1_schoolTime_proto_rawDesc, + RawDescriptor: file_campusapis_schoolTime_v1_school_time_proto_rawDesc, NumEnums: 0, NumMessages: 5, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_campusapis_schoolTime_v1_schoolTime_proto_goTypes, - DependencyIndexes: file_campusapis_schoolTime_v1_schoolTime_proto_depIdxs, - MessageInfos: file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes, + GoTypes: file_campusapis_schoolTime_v1_school_time_proto_goTypes, + DependencyIndexes: file_campusapis_schoolTime_v1_school_time_proto_depIdxs, + MessageInfos: file_campusapis_schoolTime_v1_school_time_proto_msgTypes, }.Build() - File_campusapis_schoolTime_v1_schoolTime_proto = out.File - file_campusapis_schoolTime_v1_schoolTime_proto_rawDesc = nil - file_campusapis_schoolTime_v1_schoolTime_proto_goTypes = nil - file_campusapis_schoolTime_v1_schoolTime_proto_depIdxs = nil + File_campusapis_schoolTime_v1_school_time_proto = out.File + file_campusapis_schoolTime_v1_school_time_proto_rawDesc = nil + file_campusapis_schoolTime_v1_school_time_proto_goTypes = nil + file_campusapis_schoolTime_v1_school_time_proto_depIdxs = nil } diff --git a/campusapis/schoolTime/v1/schoolTime.pb.gw.go b/campusapis/schoolTime/v1/school_time.pb.gw.go similarity index 99% rename from campusapis/schoolTime/v1/schoolTime.pb.gw.go rename to campusapis/schoolTime/v1/school_time.pb.gw.go index 3c800a3..2b0744b 100644 --- a/campusapis/schoolTime/v1/schoolTime.pb.gw.go +++ b/campusapis/schoolTime/v1/school_time.pb.gw.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: campusapis/schoolTime/v1/schoolTime.proto +// source: campusapis/schoolTime/v1/school_time.proto /* Package schoolTimev1 is a reverse proxy. diff --git a/campusapis/schoolTime/v1/schoolTime.proto b/campusapis/schoolTime/v1/school_time.proto similarity index 93% rename from campusapis/schoolTime/v1/schoolTime.proto rename to campusapis/schoolTime/v1/school_time.proto index fcc0c9c..a9387b8 100644 --- a/campusapis/schoolTime/v1/schoolTime.proto +++ b/campusapis/schoolTime/v1/school_time.proto @@ -2,10 +2,8 @@ syntax = "proto3"; package campusapis.schoolTime.v1; -import "campusapis/schoolTime/defined.proto"; import "google/api/annotations.proto"; import "google/protobuf/empty.proto"; -import "google/protobuf/timestamp.proto"; option go_package = "./campusapis/schoolTime/v1"; diff --git a/campusapis/schoolTime/v1/schoolTime_grpc.pb.go b/campusapis/schoolTime/v1/school_time_grpc.pb.go similarity index 98% rename from campusapis/schoolTime/v1/schoolTime_grpc.pb.go rename to campusapis/schoolTime/v1/school_time_grpc.pb.go index b1c9a4b..5ba754c 100644 --- a/campusapis/schoolTime/v1/schoolTime_grpc.pb.go +++ b/campusapis/schoolTime/v1/school_time_grpc.pb.go @@ -2,7 +2,7 @@ // versions: // - protoc-gen-go-grpc v1.2.0 // - protoc (unknown) -// source: campusapis/schoolTime/v1/schoolTime.proto +// source: campusapis/schoolTime/v1/school_time.proto package schoolTimev1 @@ -142,5 +142,5 @@ var SchoolTimeService_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "campusapis/schoolTime/v1/schoolTime.proto", + Metadata: "campusapis/schoolTime/v1/school_time.proto", } diff --git a/campusapis/staff/v1/campus.pb.go b/campusapis/staff/v1/campus.pb.go index 2e4cc00..31482c0 100644 --- a/campusapis/staff/v1/campus.pb.go +++ b/campusapis/staff/v1/campus.pb.go @@ -8,7 +8,6 @@ package staffv1 import ( staff "github.com/hduhelp/api_open_sdk/campusapis/staff" - _ "github.com/hduhelp/api_open_sdk/school" _ "google.golang.org/genproto/googleapis/api/annotations" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" @@ -3367,606 +3366,604 @@ var file_campusapis_staff_v1_campus_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, - 0x13, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, - 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x9e, 0x01, 0x0a, 0x0a, 0x50, - 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x56, 0x0a, 0x18, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x22, 0x5f, 0x0a, 0x21, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x22, 0x54, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x53, 0x0a, 0x15, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, - 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, - 0x4d, 0x0a, 0x0f, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, - 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x76, - 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0x74, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, + 0x12, 0x33, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x8b, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x74, - 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x74, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, - 0x61, 0x6a, 0x6f, 0x72, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x92, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, - 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x05, 0x69, 0x74, - 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x9e, 0x01, 0x0a, 0x0a, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x74, 0x61, 0x66, 0x66, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x6e, + 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x6e, + 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x56, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x5f, + 0x0a, 0x21, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, + 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, + 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, + 0x54, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, + 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x53, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x4d, 0x0a, 0x0f, 0x53, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x22, 0x76, 0x0a, 0x16, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c, - 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, - 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, - 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x1a, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x08, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x22, 0x8b, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, - 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, - 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x13, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, - 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x72, - 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, 0x72, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x79, 0x22, 0x67, 0x0a, 0x1d, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, - 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x62, 0x69, - 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, - 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x73, 0x22, 0x7b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6c, 0x61, 0x73, + 0x73, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x6e, 0x69, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x6e, 0x69, 0x74, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x75, + 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, + 0x6e, 0x69, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x61, 0x6a, 0x6f, 0x72, + 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, + 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, + 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0xc5, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x77, - 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x8d, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, - 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0x92, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, + 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, + 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe8, 0x02, 0x0a, 0x16, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, - 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, - 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, - 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, - 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, - 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, - 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, - 0x6f, 0x6d, 0x22, 0x78, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x03, 0x0a, - 0x0c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1e, 0x0a, + 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x65, 0x73, 0x74, + 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c, 0x0a, 0x06, 0x4e, 0x65, 0x73, + 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, + 0x65, 0x61, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x31, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x54, 0x0a, 0x08, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, + 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x5f, 0x0a, 0x13, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, + 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, + 0x22, 0x72, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x6f, 0x6e, + 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x03, 0x64, 0x61, 0x79, 0x22, 0x67, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x22, 0x7b, 0x0a, + 0x19, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc5, 0x01, 0x0a, 0x0d, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, + 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, + 0x65, 0x6c, 0x22, 0x8d, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, + 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x22, 0xe8, 0x02, 0x0a, 0x16, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, + 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, - 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, - 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, - 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, - 0x65, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, - 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, - 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, - 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, - 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, - 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, - 0x50, 0x41, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0x76, 0x0a, - 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x22, 0x78, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, + 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x03, 0x0a, 0x0c, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x28, + 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, + 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, 0x0f, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0x76, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x85, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, + 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, + 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, + 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x61, 0x74, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0xda, 0x01, 0x0a, 0x1c, 0x50, 0x6f, 0x73, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, + 0x4b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, - 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, - 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, - 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, - 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, - 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, - 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, - 0x12, 0x0a, 0x04, 0x73, 0x65, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, - 0x65, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0xda, 0x01, - 0x0a, 0x1c, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, - 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, - 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, - 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, - 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, - 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, - 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x1d, 0x50, - 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x12, 0x4b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x1a, 0x34, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x04, 0x0a, 0x15, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, - 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, - 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x31, 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, - 0x6d, 0x65, 0x32, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, - 0x6d, 0x65, 0x32, 0x45, 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, - 0x6d, 0x65, 0x32, 0x45, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, - 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, - 0x72, 0x6b, 0x12, 0x2c, 0x0a, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, - 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1e, 0x0a, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, - 0x12, 0x26, 0x0a, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, - 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, - 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x1a, - 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x6a, 0x0a, 0x18, 0x47, 0x65, - 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, - 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, - 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x6d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, + 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x34, 0x0a, 0x04, + 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0x85, 0x04, 0x0a, 0x15, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, + 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, + 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, + 0x65, 0x31, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, + 0x65, 0x31, 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, 0x74, + 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, + 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, 0x6e, + 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, 0x6e, + 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x2c, 0x0a, + 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, + 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, + 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x75, + 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x75, + 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, + 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x46, 0x72, + 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x68, 0x0a, 0x16, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, - 0x6e, 0x4b, 0x65, 0x79, 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, - 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, - 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, - 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, - 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0xba, 0x01, 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, - 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, - 0x7c, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6d, 0x73, 0x67, 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, - 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x05, - 0x0a, 0x0e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x6a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, + 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, + 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, + 0x6f, 0x22, 0x6d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, + 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, - 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, - 0x72, 0x64, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x63, - 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, - 0x0a, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, - 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, - 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x4c, 0x53, 0x54, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x4c, 0x53, 0x54, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x12, 0x16, 0x0a, 0x06, - 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, - 0x54, 0x44, 0x5a, 0x58, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x6f, - 0x6f, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, - 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, - 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, - 0x6d, 0x42, 0x65, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, - 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, - 0x12, 0x12, 0x0a, 0x04, 0x68, 0x69, 0x67, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x68, 0x69, 0x67, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, - 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, - 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x56, 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, - 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x71, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0x8b, 0x13, 0x0a, 0x0d, 0x43, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, - 0x0d, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, - 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, - 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, - 0x6f, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, - 0x6f, 0x12, 0x86, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, - 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x5a, 0x10, 0x12, - 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x12, - 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, - 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, - 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, - 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x5a, - 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, - 0x12, 0x9e, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, - 0x12, 0x1a, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x5a, 0x13, 0x12, 0x11, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x12, 0xb9, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, - 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, + 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, + 0x22, 0x68, 0x0a, 0x16, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x4b, 0x65, 0x79, 0x77, + 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, + 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, + 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, + 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xba, 0x01, + 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, + 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, + 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, + 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, + 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x05, 0x0a, 0x0e, 0x46, 0x72, 0x65, + 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, + 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x69, + 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x73, 0x73, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4c, + 0x53, 0x54, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4c, 0x53, 0x54, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, + 0x58, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x12, + 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x6f, 0x6f, + 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, + 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, + 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, + 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, + 0x69, 0x67, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x1c, 0x47, 0x65, + 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, + 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x56, 0x0a, + 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, + 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, + 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0x8b, 0x13, 0x0a, 0x0d, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, + 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, + 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, + 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, + 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0e, 0x12, 0x0c, + 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x86, 0x01, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, + 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, + 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, + 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, + 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, + 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, + 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x16, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, + 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, - 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, - 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x1a, 0x2f, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x5a, 0x13, 0x12, 0x11, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0xb9, 0x01, 0x0a, + 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, + 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, + 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, + 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x73, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, - 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, - 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, - 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, - 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, - 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5a, 0x10, 0x12, 0x0e, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x9a, - 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, - 0x6d, 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, + 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5a, + 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, - 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x80, 0x01, 0x0a, 0x15, - 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, - 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, - 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, - 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, - 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, - 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x37, 0x12, 0x1d, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, - 0x79, 0x5a, 0x16, 0x12, 0x14, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, - 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x13, 0x47, 0x65, - 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, - 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, - 0x2f, 0x62, 0x61, 0x73, 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, - 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, - 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, + 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, + 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, + 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, + 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x9a, 0x01, 0x0a, 0x0e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, - 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x10, 0x12, - 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, - 0xb6, 0x01, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, - 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, + 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, - 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, - 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, - 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, - 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, - 0x74, 0x65, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, - 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x80, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x18, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x42, 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, - 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, - 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, - 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, - 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, - 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, - 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, - 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, + 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x1d, 0x2f, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x5a, 0x16, 0x12, 0x14, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, + 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, + 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, + 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, + 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, + 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, + 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, + 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, + 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, + 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xb6, 0x01, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, + 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, + 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, + 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5a, 0x14, 0x12, + 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, + 0x61, 0x74, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x42, + 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, + 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, + 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, + 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, + 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, + 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x74, + 0x61, 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/campusapis/staff/v1/campus.proto b/campusapis/staff/v1/campus.proto index 9ae0f2d..45569ba 100644 --- a/campusapis/staff/v1/campus.proto +++ b/campusapis/staff/v1/campus.proto @@ -5,7 +5,6 @@ package campusapis.staff.v1; import "campusapis/staff/base.proto"; import "google/api/annotations.proto"; import "google/protobuf/empty.proto"; -import "school/school.proto"; option go_package = "./campusapis/staff/v1"; diff --git a/docs/swagger/aggregatingapis/time/v1/time.swagger.json b/docs/swagger/aggregatingapis/time/v1/time.swagger.json index b4a807b..2f2e1d7 100644 --- a/docs/swagger/aggregatingapis/time/v1/time.swagger.json +++ b/docs/swagger/aggregatingapis/time/v1/time.swagger.json @@ -23,7 +23,7 @@ "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1TimeResp" + "$ref": "#/definitions/v1GetTimeResponse" } }, "default": { @@ -40,7 +40,7 @@ } }, "definitions": { - "TimeRespData": { + "GetTimeResponseData": { "type": "object", "properties": { "schoolYear": { @@ -124,7 +124,7 @@ } } }, - "v1TimeResp": { + "v1GetTimeResponse": { "type": "object", "properties": { "error": { @@ -135,7 +135,7 @@ "type": "string" }, "data": { - "$ref": "#/definitions/TimeRespData" + "$ref": "#/definitions/GetTimeResponseData" } } } diff --git a/docs/swagger/campusapis/health/v1/health.swagger.json b/docs/swagger/campusapis/health/v1/health.swagger.json index 8a0867c..d6fbc21 100644 --- a/docs/swagger/campusapis/health/v1/health.swagger.json +++ b/docs/swagger/campusapis/health/v1/health.swagger.json @@ -463,12 +463,10 @@ "type": "object", "properties": { "@type": { - "type": "string", - "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + "type": "string" } }, - "additionalProperties": {}, - "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + "additionalProperties": {} }, "protobufNullValue": { "type": "string", diff --git a/docs/swagger/campusapis/schoolTime/v1/school_time.swagger.json b/docs/swagger/campusapis/schoolTime/v1/school_time.swagger.json new file mode 100644 index 0000000..b2396c9 --- /dev/null +++ b/docs/swagger/campusapis/schoolTime/v1/school_time.swagger.json @@ -0,0 +1,250 @@ +{ + "swagger": "2.0", + "info": { + "title": "campusapis/schoolTime/v1/school_time.proto", + "version": "version not set" + }, + "tags": [ + { + "name": "SchoolTimeService" + } + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/schooltime/v1/semester/listByDate": { + "get": { + "summary": "获取学校学期信息列表", + "operationId": "SchoolTimeService_GetSemesterList", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetSemesterListResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "startDate", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "endDate", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "SchoolTimeService" + ] + } + }, + "/schooltime/v1/time": { + "get": { + "summary": "获取当前学校时间", + "operationId": "SchoolTimeService_GetSchoolTime", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetSchoolTimeResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "SchoolTimeService" + ] + } + }, + "/semester/listByDate": { + "get": { + "summary": "获取学校学期信息列表", + "operationId": "SchoolTimeService_GetSemesterList2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetSemesterListResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "parameters": [ + { + "name": "startDate", + "in": "query", + "required": false, + "type": "string" + }, + { + "name": "endDate", + "in": "query", + "required": false, + "type": "string" + } + ], + "tags": [ + "SchoolTimeService" + ] + } + }, + "/time": { + "get": { + "summary": "获取当前学校时间", + "operationId": "SchoolTimeService_GetSchoolTime2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetSchoolTimeResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "SchoolTimeService" + ] + } + } + }, + "definitions": { + "protobufAny": { + "type": "object", + "properties": { + "@type": { + "type": "string" + } + }, + "additionalProperties": {} + }, + "rpcStatus": { + "type": "object", + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + }, + "details": { + "type": "array", + "items": { + "$ref": "#/definitions/protobufAny" + } + } + } + }, + "v1GetSchoolTimeResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1SchoolTime" + } + } + }, + "v1GetSemesterListResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/v1SemesterInfo" + } + } + } + }, + "v1SchoolTime": { + "type": "object", + "properties": { + "schoolYear": { + "type": "string" + }, + "section": { + "type": "integer", + "format": "int32" + }, + "semester": { + "type": "string" + }, + "timeStamp": { + "type": "integer", + "format": "int64" + }, + "weekDayNow": { + "type": "integer", + "format": "int32" + }, + "weekNow": { + "type": "integer", + "format": "int32" + } + } + }, + "v1SemesterInfo": { + "type": "object", + "properties": { + "schoolYear": { + "type": "string" + }, + "semester": { + "type": "string" + }, + "startDate": { + "type": "string" + }, + "endDate": { + "type": "string" + }, + "state": { + "type": "integer", + "format": "int32" + } + } + } + } +} diff --git a/gatewayapis/auth/v1/auth.pb.go b/gatewayapis/auth/v1/auth.pb.go index fd4b964..5f8db30 100644 --- a/gatewayapis/auth/v1/auth.pb.go +++ b/gatewayapis/auth/v1/auth.pb.go @@ -7,7 +7,6 @@ package authv1 import ( - _ "github.com/grpc-ecosystem/grpc-gateway/v2/protoc-gen-openapiv2/options" _ "google.golang.org/genproto/googleapis/api/annotations" httpbody "google.golang.org/genproto/googleapis/api/httpbody" protoreflect "google.golang.org/protobuf/reflect/protoreflect" @@ -3126,10 +3125,7 @@ var file_gatewayapis_auth_v1_auth_proto_rawDesc = []byte{ 0x6f, 0x74, 0x6f, 0x1a, 0x19, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x68, 0x74, 0x74, 0x70, 0x62, 0x6f, 0x64, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, - 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x63, 0x2d, 0x67, 0x65, 0x6e, 0x2d, 0x6f, 0x70, 0x65, 0x6e, 0x61, 0x70, 0x69, - 0x76, 0x32, 0x2f, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x15, 0x0a, 0x13, + 0x73, 0x74, 0x72, 0x75, 0x63, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x72, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, diff --git a/gatewayapis/auth/v1/auth.proto b/gatewayapis/auth/v1/auth.proto index 8c08843..ef6469e 100644 --- a/gatewayapis/auth/v1/auth.proto +++ b/gatewayapis/auth/v1/auth.proto @@ -5,7 +5,6 @@ package gatewayapis.auth.v1; import "google/api/annotations.proto"; import "google/api/httpbody.proto"; import "google/protobuf/struct.proto"; -import "protoc-gen-openapiv2/options/annotations.proto"; option go_package = "./gatewayapis/auth/v1"; From d6b2024a21cfc0bb63e32571c3543f27e2f3ce7f Mon Sep 17 00:00:00 2001 From: FDKevin Date: Wed, 29 Jun 2022 14:05:09 +0800 Subject: [PATCH 18/25] update ci --- .github/workflows/buf-lint.yml | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/.github/workflows/buf-lint.yml b/.github/workflows/buf-lint.yml index 29b0c06..68e4a7a 100644 --- a/.github/workflows/buf-lint.yml +++ b/.github/workflows/buf-lint.yml @@ -13,9 +13,8 @@ on: jobs: lint-protos: - # Run `git checkout` - - uses: actions/checkout@v3 - # Install the `buf` CLI - - uses: bufbuild/buf-setup-action@v1 - # Lint your Protobuf sources - - uses: bufbuild/buf-lint-action@v1 \ No newline at end of file + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v3 + - uses: bufbuild/buf-setup-action@v1 + - uses: bufbuild/buf-lint-action@v1 \ No newline at end of file From d61573592d19e6ae2a33e5bb633b47afea2d26be Mon Sep 17 00:00:00 2001 From: FDKevin Date: Wed, 29 Jun 2022 14:09:47 +0800 Subject: [PATCH 19/25] update protos --- .../infostream/v1/infostream.pb.go | 496 +++++++++--------- .../infostream/v1/infostream.pb.gw.go | 64 +-- .../infostream/v1/infostream.proto | 6 +- .../infostream/v1/infostream_grpc.pb.go | 62 +-- aggregatingapis/wiki/v1/wiki.pb.go | 278 +++++----- aggregatingapis/wiki/v1/wiki.pb.gw.go | 8 +- aggregatingapis/wiki/v1/wiki.proto | 20 +- aggregatingapis/wiki/v1/wiki_grpc.pb.go | 28 +- .../infostream/v1/infostream.swagger.json | 6 +- .../aggregatingapis/wiki/v1/wiki.swagger.json | 44 +- 10 files changed, 510 insertions(+), 502 deletions(-) diff --git a/aggregatingapis/infostream/v1/infostream.pb.go b/aggregatingapis/infostream/v1/infostream.pb.go index 7379f27..8d36c41 100644 --- a/aggregatingapis/infostream/v1/infostream.pb.go +++ b/aggregatingapis/infostream/v1/infostream.pb.go @@ -4,7 +4,7 @@ // protoc (unknown) // source: aggregatingapis/infostream/v1/infostream.proto -package infotreamv1 +package infostreamv1 import ( _ "google.golang.org/genproto/googleapis/api/annotations" @@ -1440,178 +1440,179 @@ var file_aggregatingapis_infostream_v1_infostream_proto_rawDesc = []byte{ 0x0a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x12, 0x1c, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x1a, 0x1c, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x30, 0x0a, 0x14, - 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0xb0, - 0x05, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x4c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x38, - 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xa0, - 0x04, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x47, 0x0a, 0x07, 0x77, 0x65, 0x61, 0x74, 0x68, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, - 0x12, 0x46, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, - 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x3a, 0x0a, 0x04, 0x65, 0x78, 0x61, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, - 0x65, 0x78, 0x61, 0x6d, 0x12, 0x3d, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x05, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x12, 0x40, 0x0a, 0x06, 0x73, 0x75, 0x6e, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x06, 0x73, - 0x75, 0x6e, 0x72, 0x75, 0x6e, 0x12, 0x3a, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x63, 0x61, 0x72, - 0x64, 0x12, 0x46, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x52, - 0x08, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x12, 0x46, 0x0a, 0x08, 0x73, 0x65, 0x74, - 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, - 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, - 0x73, 0x22, 0x6e, 0x0a, 0x0f, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, - 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0xf7, 0x02, 0x0a, 0x0b, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, - 0x61, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x71, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, - 0x61, 0x71, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6b, 0x79, 0x63, 0x6f, - 0x6e, 0x4e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6b, 0x79, 0x63, - 0x6f, 0x6e, 0x4e, 0x6f, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, - 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x6c, - 0x6c, 0x52, 0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x6c, - 0x6c, 0x52, 0x61, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, - 0x74, 0x69, 0x6e, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x52, 0x61, 0x69, - 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x69, - 0x6e, 0x43, 0x6f, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x52, 0x61, 0x69, - 0x6e, 0x43, 0x6f, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, - 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x26, 0x0a, - 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x77, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, - 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x77, 0x12, 0x1c, 0x0a, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb6, 0x01, 0x0a, 0x0c, - 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x40, 0x0a, 0x05, 0x74, 0x6f, - 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x46, 0x0a, 0x08, - 0x74, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2a, - 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, - 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x74, 0x6f, 0x6d, 0x6f, - 0x72, 0x72, 0x6f, 0x77, 0x22, 0xfe, 0x01, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, - 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, - 0x6e, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, - 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, - 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x64, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, - 0x3a, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x78, 0x61, - 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x82, 0x02, 0x0a, 0x08, - 0x65, 0x78, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, - 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, - 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, - 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, - 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x59, 0x65, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x61, 0x74, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, - 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x22, 0x66, 0x0a, 0x09, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, - 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, 0x72, + 0x12, 0x1d, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x1a, + 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, + 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x30, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, + 0xb9, 0x05, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, + 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, + 0x67, 0x12, 0x4d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x39, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x1a, 0xa8, 0x04, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x48, 0x0a, 0x07, 0x77, 0x65, 0x61, + 0x74, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x61, 0x74, 0x68, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x07, 0x77, 0x65, 0x61, 0x74, + 0x68, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x04, + 0x65, 0x78, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x04, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x3e, 0x0a, 0x05, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x75, 0x6e, + 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x03, 0x0a, 0x09, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, - 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, - 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, - 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, - 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, - 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0x68, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x52, 0x06, 0x73, 0x75, 0x6e, 0x72, 0x75, 0x6e, 0x12, 0x3b, 0x0a, 0x04, + 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x12, 0x47, 0x0a, 0x08, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x72, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, + 0x69, 0x63, 0x12, 0x47, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x6f, 0x0a, 0x0f, 0x57, + 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x61, 0x74, 0x68, + 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf7, 0x02, 0x0a, + 0x0b, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, + 0x61, 0x71, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x71, 0x69, 0x12, 0x12, + 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, + 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6b, 0x79, 0x63, 0x6f, 0x6e, 0x4e, 0x6f, 0x77, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6b, 0x79, 0x63, 0x6f, 0x6e, 0x4e, 0x6f, 0x77, + 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, + 0x52, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x6c, + 0x53, 0x74, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x6c, 0x6c, + 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x52, 0x61, 0x69, 0x6e, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x52, 0x61, 0x69, 0x6e, + 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x52, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74, + 0x69, 0x6e, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x65, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x52, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x65, + 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, + 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, + 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x69, 0x6e, + 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, + 0x6f, 0x77, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, + 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, + 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb8, 0x01, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, + 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x47, 0x0a, 0x08, 0x74, 0x6f, 0x6d, 0x6f, + 0x72, 0x72, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x74, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, + 0x77, 0x22, 0xfe, 0x01, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, + 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x53, + 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, + 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, + 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x65, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, + 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, + 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x44, + 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x82, 0x02, 0x0a, 0x08, 0x65, 0x78, + 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, + 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x59, 0x65, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, + 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0x67, + 0x0a, 0x09, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x03, 0x0a, 0x09, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, + 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, + 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x73, + 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, + 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, + 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, + 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, + 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, + 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, + 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, 0x65, + 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0x69, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, + 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf6, 0x03, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, @@ -1648,48 +1649,49 @@ var file_aggregatingapis_infostream_v1_infostream_proto_rawDesc = []byte{ 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6c, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6d, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, - 0x63, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, - 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x0e, 0x0a, 0x0c, 0x73, - 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x32, 0xa6, 0x01, 0x0a, 0x11, - 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, - 0x65, 0x12, 0x90, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x12, 0x32, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x33, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, - 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2f, 0x76, 0x31, 0x42, 0x90, 0x02, 0x0a, 0x20, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x49, 0x6e, 0x66, 0x6f, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x49, 0x67, 0x69, - 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, - 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x69, 0x6e, - 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x69, 0x6e, 0x66, 0x6f, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x49, 0x58, 0xaa, 0x02, 0x1c, - 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x49, 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1c, 0x41, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, - 0x6e, 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x28, 0x41, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, - 0x66, 0x6f, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, - 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1e, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x49, 0x6e, 0x66, 0x6f, 0x74, 0x72, - 0x65, 0x61, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, + 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x0e, 0x0a, 0x0c, + 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x32, 0xa8, 0x01, 0x0a, + 0x11, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x12, 0x33, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, + 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, + 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x42, 0x96, 0x02, 0x0a, 0x21, 0x63, 0x6f, 0x6d, 0x2e, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x49, + 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, + 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, + 0x6b, 0x2f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x3b, + 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, + 0x49, 0x58, 0xaa, 0x02, 0x1d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, + 0x56, 0x31, 0xca, 0x02, 0x1d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5c, + 0x56, 0x31, 0xe2, 0x02, 0x29, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5c, + 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x1f, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x3a, 0x3a, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x3a, 0x3a, 0x56, 0x31, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1706,43 +1708,43 @@ func file_aggregatingapis_infostream_v1_infostream_proto_rawDescGZIP() []byte { var file_aggregatingapis_infostream_v1_infostream_proto_msgTypes = make([]protoimpl.MessageInfo, 17) var file_aggregatingapis_infostream_v1_infostream_proto_goTypes = []interface{}{ - (*GetInfostreamRequest)(nil), // 0: aggregatingapis.infotream.v1.GetInfostreamRequest - (*GetInfostreamResponse)(nil), // 1: aggregatingapis.infotream.v1.GetInfostreamResponse - (*WeatherResponse)(nil), // 2: aggregatingapis.infotream.v1.WeatherResponse - (*WeatherData)(nil), // 3: aggregatingapis.infotream.v1.WeatherData - (*ScheduleResp)(nil), // 4: aggregatingapis.infotream.v1.scheduleResp - (*ScheduleData)(nil), // 5: aggregatingapis.infotream.v1.scheduleData - (*ExamResp)(nil), // 6: aggregatingapis.infotream.v1.examResp - (*ExamData)(nil), // 7: aggregatingapis.infotream.v1.examData - (*ScoreResp)(nil), // 8: aggregatingapis.infotream.v1.scoreResp - (*ScoreData)(nil), // 9: aggregatingapis.infotream.v1.scoreData - (*SunRunResp)(nil), // 10: aggregatingapis.infotream.v1.sunRunResp - (*SunRunData)(nil), // 11: aggregatingapis.infotream.v1.sunRunData - (*CardResp)(nil), // 12: aggregatingapis.infotream.v1.cardResp - (*ElectricResp)(nil), // 13: aggregatingapis.infotream.v1.electricResp - (*ElectricData)(nil), // 14: aggregatingapis.infotream.v1.electricData - (*SettingsResp)(nil), // 15: aggregatingapis.infotream.v1.settingsResp - (*GetInfostreamResponse_Data)(nil), // 16: aggregatingapis.infotream.v1.GetInfostreamResponse.Data + (*GetInfostreamRequest)(nil), // 0: aggregatingapis.infostream.v1.GetInfostreamRequest + (*GetInfostreamResponse)(nil), // 1: aggregatingapis.infostream.v1.GetInfostreamResponse + (*WeatherResponse)(nil), // 2: aggregatingapis.infostream.v1.WeatherResponse + (*WeatherData)(nil), // 3: aggregatingapis.infostream.v1.WeatherData + (*ScheduleResp)(nil), // 4: aggregatingapis.infostream.v1.scheduleResp + (*ScheduleData)(nil), // 5: aggregatingapis.infostream.v1.scheduleData + (*ExamResp)(nil), // 6: aggregatingapis.infostream.v1.examResp + (*ExamData)(nil), // 7: aggregatingapis.infostream.v1.examData + (*ScoreResp)(nil), // 8: aggregatingapis.infostream.v1.scoreResp + (*ScoreData)(nil), // 9: aggregatingapis.infostream.v1.scoreData + (*SunRunResp)(nil), // 10: aggregatingapis.infostream.v1.sunRunResp + (*SunRunData)(nil), // 11: aggregatingapis.infostream.v1.sunRunData + (*CardResp)(nil), // 12: aggregatingapis.infostream.v1.cardResp + (*ElectricResp)(nil), // 13: aggregatingapis.infostream.v1.electricResp + (*ElectricData)(nil), // 14: aggregatingapis.infostream.v1.electricData + (*SettingsResp)(nil), // 15: aggregatingapis.infostream.v1.settingsResp + (*GetInfostreamResponse_Data)(nil), // 16: aggregatingapis.infostream.v1.GetInfostreamResponse.Data } var file_aggregatingapis_infostream_v1_infostream_proto_depIdxs = []int32{ - 16, // 0: aggregatingapis.infotream.v1.GetInfostreamResponse.data:type_name -> aggregatingapis.infotream.v1.GetInfostreamResponse.Data - 3, // 1: aggregatingapis.infotream.v1.WeatherResponse.data:type_name -> aggregatingapis.infotream.v1.WeatherData - 5, // 2: aggregatingapis.infotream.v1.scheduleResp.today:type_name -> aggregatingapis.infotream.v1.scheduleData - 5, // 3: aggregatingapis.infotream.v1.scheduleResp.tomorrow:type_name -> aggregatingapis.infotream.v1.scheduleData - 7, // 4: aggregatingapis.infotream.v1.examResp.data:type_name -> aggregatingapis.infotream.v1.examData - 9, // 5: aggregatingapis.infotream.v1.scoreResp.data:type_name -> aggregatingapis.infotream.v1.scoreData - 11, // 6: aggregatingapis.infotream.v1.sunRunResp.data:type_name -> aggregatingapis.infotream.v1.sunRunData - 14, // 7: aggregatingapis.infotream.v1.electricResp.data:type_name -> aggregatingapis.infotream.v1.electricData - 2, // 8: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.weather:type_name -> aggregatingapis.infotream.v1.WeatherResponse - 4, // 9: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.schedule:type_name -> aggregatingapis.infotream.v1.scheduleResp - 6, // 10: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.exam:type_name -> aggregatingapis.infotream.v1.examResp - 8, // 11: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.score:type_name -> aggregatingapis.infotream.v1.scoreResp - 10, // 12: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.sunrun:type_name -> aggregatingapis.infotream.v1.sunRunResp - 12, // 13: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.card:type_name -> aggregatingapis.infotream.v1.cardResp - 13, // 14: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.electric:type_name -> aggregatingapis.infotream.v1.electricResp - 15, // 15: aggregatingapis.infotream.v1.GetInfostreamResponse.Data.settings:type_name -> aggregatingapis.infotream.v1.settingsResp - 0, // 16: aggregatingapis.infotream.v1.InfoStreamService.GetInfostream:input_type -> aggregatingapis.infotream.v1.GetInfostreamRequest - 1, // 17: aggregatingapis.infotream.v1.InfoStreamService.GetInfostream:output_type -> aggregatingapis.infotream.v1.GetInfostreamResponse + 16, // 0: aggregatingapis.infostream.v1.GetInfostreamResponse.data:type_name -> aggregatingapis.infostream.v1.GetInfostreamResponse.Data + 3, // 1: aggregatingapis.infostream.v1.WeatherResponse.data:type_name -> aggregatingapis.infostream.v1.WeatherData + 5, // 2: aggregatingapis.infostream.v1.scheduleResp.today:type_name -> aggregatingapis.infostream.v1.scheduleData + 5, // 3: aggregatingapis.infostream.v1.scheduleResp.tomorrow:type_name -> aggregatingapis.infostream.v1.scheduleData + 7, // 4: aggregatingapis.infostream.v1.examResp.data:type_name -> aggregatingapis.infostream.v1.examData + 9, // 5: aggregatingapis.infostream.v1.scoreResp.data:type_name -> aggregatingapis.infostream.v1.scoreData + 11, // 6: aggregatingapis.infostream.v1.sunRunResp.data:type_name -> aggregatingapis.infostream.v1.sunRunData + 14, // 7: aggregatingapis.infostream.v1.electricResp.data:type_name -> aggregatingapis.infostream.v1.electricData + 2, // 8: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.weather:type_name -> aggregatingapis.infostream.v1.WeatherResponse + 4, // 9: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.schedule:type_name -> aggregatingapis.infostream.v1.scheduleResp + 6, // 10: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.exam:type_name -> aggregatingapis.infostream.v1.examResp + 8, // 11: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.score:type_name -> aggregatingapis.infostream.v1.scoreResp + 10, // 12: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.sunrun:type_name -> aggregatingapis.infostream.v1.sunRunResp + 12, // 13: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.card:type_name -> aggregatingapis.infostream.v1.cardResp + 13, // 14: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.electric:type_name -> aggregatingapis.infostream.v1.electricResp + 15, // 15: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.settings:type_name -> aggregatingapis.infostream.v1.settingsResp + 0, // 16: aggregatingapis.infostream.v1.InfostreamService.GetInfostream:input_type -> aggregatingapis.infostream.v1.GetInfostreamRequest + 1, // 17: aggregatingapis.infostream.v1.InfostreamService.GetInfostream:output_type -> aggregatingapis.infostream.v1.GetInfostreamResponse 17, // [17:18] is the sub-list for method output_type 16, // [16:17] is the sub-list for method input_type 16, // [16:16] is the sub-list for extension type_name diff --git a/aggregatingapis/infostream/v1/infostream.pb.gw.go b/aggregatingapis/infostream/v1/infostream.pb.gw.go index 2093155..57352ed 100644 --- a/aggregatingapis/infostream/v1/infostream.pb.gw.go +++ b/aggregatingapis/infostream/v1/infostream.pb.gw.go @@ -2,11 +2,11 @@ // source: aggregatingapis/infostream/v1/infostream.proto /* -Package infotreamv1 is a reverse proxy. +Package infostreamv1 is a reverse proxy. It translates gRPC into RESTful JSON APIs. */ -package infotreamv1 +package infostreamv1 import ( "context" @@ -32,17 +32,17 @@ var _ = utilities.NewDoubleArray var _ = metadata.Join var ( - filter_InfoStreamService_GetInfostream_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} + filter_InfostreamService_GetInfostream_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} ) -func request_InfoStreamService_GetInfostream_0(ctx context.Context, marshaler runtime.Marshaler, client InfoStreamServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { +func request_InfostreamService_GetInfostream_0(ctx context.Context, marshaler runtime.Marshaler, client InfostreamServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq GetInfostreamRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_InfoStreamService_GetInfostream_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_InfostreamService_GetInfostream_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -51,14 +51,14 @@ func request_InfoStreamService_GetInfostream_0(ctx context.Context, marshaler ru } -func local_request_InfoStreamService_GetInfostream_0(ctx context.Context, marshaler runtime.Marshaler, server InfoStreamServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { +func local_request_InfostreamService_GetInfostream_0(ctx context.Context, marshaler runtime.Marshaler, server InfostreamServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq GetInfostreamRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_InfoStreamService_GetInfostream_0); err != nil { + if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_InfostreamService_GetInfostream_0); err != nil { return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) } @@ -67,25 +67,25 @@ func local_request_InfoStreamService_GetInfostream_0(ctx context.Context, marsha } -// RegisterInfoStreamServiceHandlerServer registers the http handlers for service InfoStreamService to "mux". -// UnaryRPC :call InfoStreamServiceServer directly. +// RegisterInfostreamServiceHandlerServer registers the http handlers for service InfostreamService to "mux". +// UnaryRPC :call InfostreamServiceServer directly. // StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInfoStreamServiceHandlerFromEndpoint instead. -func RegisterInfoStreamServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InfoStreamServiceServer) error { +// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterInfostreamServiceHandlerFromEndpoint instead. +func RegisterInfostreamServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server InfostreamServiceServer) error { - mux.Handle("GET", pattern_InfoStreamService_GetInfostream_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_InfostreamService_GetInfostream_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() var stream runtime.ServerTransportStream ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.infotream.v1.InfoStreamService/GetInfostream", runtime.WithHTTPPathPattern("/infostream/v1")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.infostream.v1.InfostreamService/GetInfostream", runtime.WithHTTPPathPattern("/infostream/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := local_request_InfoStreamService_GetInfostream_0(ctx, inboundMarshaler, server, req, pathParams) + resp, md, err := local_request_InfostreamService_GetInfostream_0(ctx, inboundMarshaler, server, req, pathParams) md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { @@ -93,16 +93,16 @@ func RegisterInfoStreamServiceHandlerServer(ctx context.Context, mux *runtime.Se return } - forward_InfoStreamService_GetInfostream_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InfostreamService_GetInfostream_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) return nil } -// RegisterInfoStreamServiceHandlerFromEndpoint is same as RegisterInfoStreamServiceHandler but +// RegisterInfostreamServiceHandlerFromEndpoint is same as RegisterInfostreamServiceHandler but // automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterInfoStreamServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { +func RegisterInfostreamServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { conn, err := grpc.Dial(endpoint, opts...) if err != nil { return err @@ -122,40 +122,40 @@ func RegisterInfoStreamServiceHandlerFromEndpoint(ctx context.Context, mux *runt }() }() - return RegisterInfoStreamServiceHandler(ctx, mux, conn) + return RegisterInfostreamServiceHandler(ctx, mux, conn) } -// RegisterInfoStreamServiceHandler registers the http handlers for service InfoStreamService to "mux". +// RegisterInfostreamServiceHandler registers the http handlers for service InfostreamService to "mux". // The handlers forward requests to the grpc endpoint over "conn". -func RegisterInfoStreamServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterInfoStreamServiceHandlerClient(ctx, mux, NewInfoStreamServiceClient(conn)) +func RegisterInfostreamServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { + return RegisterInfostreamServiceHandlerClient(ctx, mux, NewInfostreamServiceClient(conn)) } -// RegisterInfoStreamServiceHandlerClient registers the http handlers for service InfoStreamService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InfoStreamServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InfoStreamServiceClient" +// RegisterInfostreamServiceHandlerClient registers the http handlers for service InfostreamService +// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "InfostreamServiceClient". +// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "InfostreamServiceClient" // doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "InfoStreamServiceClient" to call the correct interceptors. -func RegisterInfoStreamServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InfoStreamServiceClient) error { +// "InfostreamServiceClient" to call the correct interceptors. +func RegisterInfostreamServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client InfostreamServiceClient) error { - mux.Handle("GET", pattern_InfoStreamService_GetInfostream_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + mux.Handle("GET", pattern_InfostreamService_GetInfostream_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.infotream.v1.InfoStreamService/GetInfostream", runtime.WithHTTPPathPattern("/infostream/v1")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.infostream.v1.InfostreamService/GetInfostream", runtime.WithHTTPPathPattern("/infostream/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - resp, md, err := request_InfoStreamService_GetInfostream_0(ctx, inboundMarshaler, client, req, pathParams) + resp, md, err := request_InfostreamService_GetInfostream_0(ctx, inboundMarshaler, client, req, pathParams) ctx = runtime.NewServerMetadataContext(ctx, md) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return } - forward_InfoStreamService_GetInfostream_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_InfostreamService_GetInfostream_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -163,9 +163,9 @@ func RegisterInfoStreamServiceHandlerClient(ctx context.Context, mux *runtime.Se } var ( - pattern_InfoStreamService_GetInfostream_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"infostream", "v1"}, "")) + pattern_InfostreamService_GetInfostream_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"infostream", "v1"}, "")) ) var ( - forward_InfoStreamService_GetInfostream_0 = runtime.ForwardResponseMessage + forward_InfostreamService_GetInfostream_0 = runtime.ForwardResponseMessage ) diff --git a/aggregatingapis/infostream/v1/infostream.proto b/aggregatingapis/infostream/v1/infostream.proto index 0be8b1d..efd148f 100644 --- a/aggregatingapis/infostream/v1/infostream.proto +++ b/aggregatingapis/infostream/v1/infostream.proto @@ -1,12 +1,12 @@ syntax = "proto3"; -package aggregatingapis.infotream.v1; +package aggregatingapis.infostream.v1; import "google/api/annotations.proto"; -option go_package = "./aggregatingapis/infoStream/v1"; +option go_package = "./aggregatingapis/infostream/v1"; -service InfoStreamService { +service InfostreamService { rpc GetInfostream(GetInfostreamRequest) returns (GetInfostreamResponse) { option (google.api.http) = { get: "/infostream/v1" diff --git a/aggregatingapis/infostream/v1/infostream_grpc.pb.go b/aggregatingapis/infostream/v1/infostream_grpc.pb.go index 993d4de..39a0e52 100644 --- a/aggregatingapis/infostream/v1/infostream_grpc.pb.go +++ b/aggregatingapis/infostream/v1/infostream_grpc.pb.go @@ -4,7 +4,7 @@ // - protoc (unknown) // source: aggregatingapis/infostream/v1/infostream.proto -package infotreamv1 +package infostreamv1 import ( context "context" @@ -18,86 +18,86 @@ import ( // Requires gRPC-Go v1.32.0 or later. const _ = grpc.SupportPackageIsVersion7 -// InfoStreamServiceClient is the client API for InfoStreamService service. +// InfostreamServiceClient is the client API for InfostreamService service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type InfoStreamServiceClient interface { +type InfostreamServiceClient interface { GetInfostream(ctx context.Context, in *GetInfostreamRequest, opts ...grpc.CallOption) (*GetInfostreamResponse, error) } -type infoStreamServiceClient struct { +type infostreamServiceClient struct { cc grpc.ClientConnInterface } -func NewInfoStreamServiceClient(cc grpc.ClientConnInterface) InfoStreamServiceClient { - return &infoStreamServiceClient{cc} +func NewInfostreamServiceClient(cc grpc.ClientConnInterface) InfostreamServiceClient { + return &infostreamServiceClient{cc} } -func (c *infoStreamServiceClient) GetInfostream(ctx context.Context, in *GetInfostreamRequest, opts ...grpc.CallOption) (*GetInfostreamResponse, error) { +func (c *infostreamServiceClient) GetInfostream(ctx context.Context, in *GetInfostreamRequest, opts ...grpc.CallOption) (*GetInfostreamResponse, error) { out := new(GetInfostreamResponse) - err := c.cc.Invoke(ctx, "/aggregatingapis.infotream.v1.InfoStreamService/GetInfostream", in, out, opts...) + err := c.cc.Invoke(ctx, "/aggregatingapis.infostream.v1.InfostreamService/GetInfostream", in, out, opts...) if err != nil { return nil, err } return out, nil } -// InfoStreamServiceServer is the server API for InfoStreamService service. -// All implementations must embed UnimplementedInfoStreamServiceServer +// InfostreamServiceServer is the server API for InfostreamService service. +// All implementations must embed UnimplementedInfostreamServiceServer // for forward compatibility -type InfoStreamServiceServer interface { +type InfostreamServiceServer interface { GetInfostream(context.Context, *GetInfostreamRequest) (*GetInfostreamResponse, error) - mustEmbedUnimplementedInfoStreamServiceServer() + mustEmbedUnimplementedInfostreamServiceServer() } -// UnimplementedInfoStreamServiceServer must be embedded to have forward compatible implementations. -type UnimplementedInfoStreamServiceServer struct { +// UnimplementedInfostreamServiceServer must be embedded to have forward compatible implementations. +type UnimplementedInfostreamServiceServer struct { } -func (UnimplementedInfoStreamServiceServer) GetInfostream(context.Context, *GetInfostreamRequest) (*GetInfostreamResponse, error) { +func (UnimplementedInfostreamServiceServer) GetInfostream(context.Context, *GetInfostreamRequest) (*GetInfostreamResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetInfostream not implemented") } -func (UnimplementedInfoStreamServiceServer) mustEmbedUnimplementedInfoStreamServiceServer() {} +func (UnimplementedInfostreamServiceServer) mustEmbedUnimplementedInfostreamServiceServer() {} -// UnsafeInfoStreamServiceServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to InfoStreamServiceServer will +// UnsafeInfostreamServiceServer may be embedded to opt out of forward compatibility for this service. +// Use of this interface is not recommended, as added methods to InfostreamServiceServer will // result in compilation errors. -type UnsafeInfoStreamServiceServer interface { - mustEmbedUnimplementedInfoStreamServiceServer() +type UnsafeInfostreamServiceServer interface { + mustEmbedUnimplementedInfostreamServiceServer() } -func RegisterInfoStreamServiceServer(s grpc.ServiceRegistrar, srv InfoStreamServiceServer) { - s.RegisterService(&InfoStreamService_ServiceDesc, srv) +func RegisterInfostreamServiceServer(s grpc.ServiceRegistrar, srv InfostreamServiceServer) { + s.RegisterService(&InfostreamService_ServiceDesc, srv) } -func _InfoStreamService_GetInfostream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { +func _InfostreamService_GetInfostream_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetInfostreamRequest) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(InfoStreamServiceServer).GetInfostream(ctx, in) + return srv.(InfostreamServiceServer).GetInfostream(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/aggregatingapis.infotream.v1.InfoStreamService/GetInfostream", + FullMethod: "/aggregatingapis.infostream.v1.InfostreamService/GetInfostream", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(InfoStreamServiceServer).GetInfostream(ctx, req.(*GetInfostreamRequest)) + return srv.(InfostreamServiceServer).GetInfostream(ctx, req.(*GetInfostreamRequest)) } return interceptor(ctx, in, info, handler) } -// InfoStreamService_ServiceDesc is the grpc.ServiceDesc for InfoStreamService service. +// InfostreamService_ServiceDesc is the grpc.ServiceDesc for InfostreamService service. // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) -var InfoStreamService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "aggregatingapis.infotream.v1.InfoStreamService", - HandlerType: (*InfoStreamServiceServer)(nil), +var InfostreamService_ServiceDesc = grpc.ServiceDesc{ + ServiceName: "aggregatingapis.infostream.v1.InfostreamService", + HandlerType: (*InfostreamServiceServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "GetInfostream", - Handler: _InfoStreamService_GetInfostream_Handler, + Handler: _InfostreamService_GetInfostream_Handler, }, }, Streams: []grpc.StreamDesc{}, diff --git a/aggregatingapis/wiki/v1/wiki.pb.go b/aggregatingapis/wiki/v1/wiki.pb.go index fedcafe..bd316d4 100644 --- a/aggregatingapis/wiki/v1/wiki.pb.go +++ b/aggregatingapis/wiki/v1/wiki.pb.go @@ -21,7 +21,7 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type DocTokenReq struct { +type GetDocContentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -29,8 +29,8 @@ type DocTokenReq struct { Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` } -func (x *DocTokenReq) Reset() { - *x = DocTokenReq{} +func (x *GetDocContentRequest) Reset() { + *x = GetDocContentRequest{} if protoimpl.UnsafeEnabled { mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -38,13 +38,13 @@ func (x *DocTokenReq) Reset() { } } -func (x *DocTokenReq) String() string { +func (x *GetDocContentRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DocTokenReq) ProtoMessage() {} +func (*GetDocContentRequest) ProtoMessage() {} -func (x *DocTokenReq) ProtoReflect() protoreflect.Message { +func (x *GetDocContentRequest) ProtoReflect() protoreflect.Message { mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -56,19 +56,19 @@ func (x *DocTokenReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DocTokenReq.ProtoReflect.Descriptor instead. -func (*DocTokenReq) Descriptor() ([]byte, []int) { +// Deprecated: Use GetDocContentRequest.ProtoReflect.Descriptor instead. +func (*GetDocContentRequest) Descriptor() ([]byte, []int) { return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{0} } -func (x *DocTokenReq) GetToken() string { +func (x *GetDocContentRequest) GetToken() string { if x != nil { return x.Token } return "" } -type DocTokenResp struct { +type GetDocContentResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77,8 +77,8 @@ type DocTokenResp struct { Revision uint32 `protobuf:"varint,2,opt,name=revision,proto3" json:"revision,omitempty"` } -func (x *DocTokenResp) Reset() { - *x = DocTokenResp{} +func (x *GetDocContentResponse) Reset() { + *x = GetDocContentResponse{} if protoimpl.UnsafeEnabled { mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -86,13 +86,13 @@ func (x *DocTokenResp) Reset() { } } -func (x *DocTokenResp) String() string { +func (x *GetDocContentResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DocTokenResp) ProtoMessage() {} +func (*GetDocContentResponse) ProtoMessage() {} -func (x *DocTokenResp) ProtoReflect() protoreflect.Message { +func (x *GetDocContentResponse) ProtoReflect() protoreflect.Message { mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -104,26 +104,26 @@ func (x *DocTokenResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DocTokenResp.ProtoReflect.Descriptor instead. -func (*DocTokenResp) Descriptor() ([]byte, []int) { +// Deprecated: Use GetDocContentResponse.ProtoReflect.Descriptor instead. +func (*GetDocContentResponse) Descriptor() ([]byte, []int) { return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{1} } -func (x *DocTokenResp) GetContent() string { +func (x *GetDocContentResponse) GetContent() string { if x != nil { return x.Content } return "" } -func (x *DocTokenResp) GetRevision() uint32 { +func (x *GetDocContentResponse) GetRevision() uint32 { if x != nil { return x.Revision } return 0 } -type NodeReq struct { +type GetNodeListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -132,8 +132,8 @@ type NodeReq struct { ParentNodeToken string `protobuf:"bytes,2,opt,name=parent_node_token,json=parentNodeToken,proto3" json:"parent_node_token,omitempty"` } -func (x *NodeReq) Reset() { - *x = NodeReq{} +func (x *GetNodeListRequest) Reset() { + *x = GetNodeListRequest{} if protoimpl.UnsafeEnabled { mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -141,13 +141,13 @@ func (x *NodeReq) Reset() { } } -func (x *NodeReq) String() string { +func (x *GetNodeListRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NodeReq) ProtoMessage() {} +func (*GetNodeListRequest) ProtoMessage() {} -func (x *NodeReq) ProtoReflect() protoreflect.Message { +func (x *GetNodeListRequest) ProtoReflect() protoreflect.Message { mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -159,26 +159,26 @@ func (x *NodeReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NodeReq.ProtoReflect.Descriptor instead. -func (*NodeReq) Descriptor() ([]byte, []int) { +// Deprecated: Use GetNodeListRequest.ProtoReflect.Descriptor instead. +func (*GetNodeListRequest) Descriptor() ([]byte, []int) { return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{2} } -func (x *NodeReq) GetSpaceId() string { +func (x *GetNodeListRequest) GetSpaceId() string { if x != nil { return x.SpaceId } return "" } -func (x *NodeReq) GetParentNodeToken() string { +func (x *GetNodeListRequest) GetParentNodeToken() string { if x != nil { return x.ParentNodeToken } return "" } -type NodeResp struct { +type GetNodeListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -188,8 +188,8 @@ type NodeResp struct { HasMore bool `protobuf:"varint,3,opt,name=has_more,json=hasMore,proto3" json:"has_more,omitempty"` } -func (x *NodeResp) Reset() { - *x = NodeResp{} +func (x *GetNodeListResponse) Reset() { + *x = GetNodeListResponse{} if protoimpl.UnsafeEnabled { mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -197,13 +197,13 @@ func (x *NodeResp) Reset() { } } -func (x *NodeResp) String() string { +func (x *GetNodeListResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NodeResp) ProtoMessage() {} +func (*GetNodeListResponse) ProtoMessage() {} -func (x *NodeResp) ProtoReflect() protoreflect.Message { +func (x *GetNodeListResponse) ProtoReflect() protoreflect.Message { mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -215,26 +215,26 @@ func (x *NodeResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NodeResp.ProtoReflect.Descriptor instead. -func (*NodeResp) Descriptor() ([]byte, []int) { +// Deprecated: Use GetNodeListResponse.ProtoReflect.Descriptor instead. +func (*GetNodeListResponse) Descriptor() ([]byte, []int) { return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{3} } -func (x *NodeResp) GetItems() []*NodeItem { +func (x *GetNodeListResponse) GetItems() []*NodeItem { if x != nil { return x.Items } return nil } -func (x *NodeResp) GetPageToken() string { +func (x *GetNodeListResponse) GetPageToken() string { if x != nil { return x.PageToken } return "" } -func (x *NodeResp) GetHasMore() bool { +func (x *GetNodeListResponse) GetHasMore() bool { if x != nil { return x.HasMore } @@ -400,89 +400,95 @@ var file_aggregatingapis_wiki_v1_wiki_proto_rawDesc = []byte{ 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x23, 0x0a, 0x0b, 0x44, - 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, - 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x22, 0x44, 0x0a, 0x0c, 0x44, 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, - 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, - 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7d, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, - 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1d, 0x0a, - 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, - 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x22, 0xff, 0x03, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, - 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, - 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, - 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, - 0x62, 0x6a, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, - 0x62, 0x6a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, - 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x2a, 0x0a, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x70, 0x61, 0x63, - 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x43, 0x68, 0x69, 0x6c, 0x64, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x62, 0x6a, 0x5f, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x6f, 0x62, 0x6a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, - 0x0a, 0x0d, 0x6f, 0x62, 0x6a, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x62, 0x6a, 0x45, 0x64, 0x69, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, - 0x64, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x07, - 0x73, 0x75, 0x62, 0x4e, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x4d, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4e, + 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, + 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, + 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, + 0x22, 0xff, 0x03, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x0a, + 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, + 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x62, 0x6a, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x68, 0x61, 0x73, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x68, 0x61, 0x73, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x26, 0x0a, 0x0f, 0x6f, 0x62, 0x6a, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x62, 0x6a, 0x5f, 0x65, + 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6f, 0x62, 0x6a, 0x45, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x6f, 0x64, 0x65, + 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x6f, + 0x64, 0x65, 0x32, 0x9b, 0x02, 0x0a, 0x0b, 0x57, 0x69, 0x6b, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x77, 0x69, + 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x80, 0x01, + 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, - 0x52, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x6f, 0x64, 0x65, 0x32, 0xf1, 0x01, 0x0a, 0x0b, 0x57, 0x69, - 0x6b, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x76, 0x0a, 0x0d, 0x47, 0x65, 0x74, - 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x2e, 0x61, 0x67, 0x67, + 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, - 0x1a, 0x25, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, - 0x10, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x12, 0x6a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x20, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, - 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x42, 0xe6, 0x01, - 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x57, - 0x69, 0x6b, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, - 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, - 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x77, 0x69, 0x6b, 0x69, - 0x2f, 0x76, 0x31, 0x3b, 0x77, 0x69, 0x6b, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x57, 0x58, - 0xaa, 0x02, 0x17, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x57, 0x69, 0x6b, 0x69, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, 0x41, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x57, 0x69, 0x6b, - 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x23, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, 0x31, 0x5c, 0x47, - 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x41, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x57, 0x69, - 0x6b, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, + 0x12, 0x0e, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, + 0x42, 0xe6, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, + 0x42, 0x09, 0x57, 0x69, 0x6b, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, + 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x77, + 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x77, 0x69, 0x6b, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03, + 0x41, 0x57, 0x58, 0xaa, 0x02, 0x17, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x57, 0x69, 0x6b, 0x69, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, + 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, + 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x23, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, + 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, + 0x3a, 0x57, 0x69, 0x6b, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -499,19 +505,19 @@ func file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP() []byte { var file_aggregatingapis_wiki_v1_wiki_proto_msgTypes = make([]protoimpl.MessageInfo, 5) var file_aggregatingapis_wiki_v1_wiki_proto_goTypes = []interface{}{ - (*DocTokenReq)(nil), // 0: aggregatingapis.wiki.v1.DocTokenReq - (*DocTokenResp)(nil), // 1: aggregatingapis.wiki.v1.DocTokenResp - (*NodeReq)(nil), // 2: aggregatingapis.wiki.v1.nodeReq - (*NodeResp)(nil), // 3: aggregatingapis.wiki.v1.nodeResp - (*NodeItem)(nil), // 4: aggregatingapis.wiki.v1.nodeItem + (*GetDocContentRequest)(nil), // 0: aggregatingapis.wiki.v1.GetDocContentRequest + (*GetDocContentResponse)(nil), // 1: aggregatingapis.wiki.v1.GetDocContentResponse + (*GetNodeListRequest)(nil), // 2: aggregatingapis.wiki.v1.GetNodeListRequest + (*GetNodeListResponse)(nil), // 3: aggregatingapis.wiki.v1.GetNodeListResponse + (*NodeItem)(nil), // 4: aggregatingapis.wiki.v1.NodeItem } var file_aggregatingapis_wiki_v1_wiki_proto_depIdxs = []int32{ - 4, // 0: aggregatingapis.wiki.v1.nodeResp.items:type_name -> aggregatingapis.wiki.v1.nodeItem - 4, // 1: aggregatingapis.wiki.v1.nodeItem.subNode:type_name -> aggregatingapis.wiki.v1.nodeItem - 0, // 2: aggregatingapis.wiki.v1.WikiService.GetDocContent:input_type -> aggregatingapis.wiki.v1.DocTokenReq - 2, // 3: aggregatingapis.wiki.v1.WikiService.GetNodeList:input_type -> aggregatingapis.wiki.v1.nodeReq - 1, // 4: aggregatingapis.wiki.v1.WikiService.GetDocContent:output_type -> aggregatingapis.wiki.v1.DocTokenResp - 3, // 5: aggregatingapis.wiki.v1.WikiService.GetNodeList:output_type -> aggregatingapis.wiki.v1.nodeResp + 4, // 0: aggregatingapis.wiki.v1.GetNodeListResponse.items:type_name -> aggregatingapis.wiki.v1.NodeItem + 4, // 1: aggregatingapis.wiki.v1.NodeItem.subNode:type_name -> aggregatingapis.wiki.v1.NodeItem + 0, // 2: aggregatingapis.wiki.v1.WikiService.GetDocContent:input_type -> aggregatingapis.wiki.v1.GetDocContentRequest + 2, // 3: aggregatingapis.wiki.v1.WikiService.GetNodeList:input_type -> aggregatingapis.wiki.v1.GetNodeListRequest + 1, // 4: aggregatingapis.wiki.v1.WikiService.GetDocContent:output_type -> aggregatingapis.wiki.v1.GetDocContentResponse + 3, // 5: aggregatingapis.wiki.v1.WikiService.GetNodeList:output_type -> aggregatingapis.wiki.v1.GetNodeListResponse 4, // [4:6] is the sub-list for method output_type 2, // [2:4] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name @@ -526,7 +532,7 @@ func file_aggregatingapis_wiki_v1_wiki_proto_init() { } if !protoimpl.UnsafeEnabled { file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DocTokenReq); i { + switch v := v.(*GetDocContentRequest); i { case 0: return &v.state case 1: @@ -538,7 +544,7 @@ func file_aggregatingapis_wiki_v1_wiki_proto_init() { } } file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DocTokenResp); i { + switch v := v.(*GetDocContentResponse); i { case 0: return &v.state case 1: @@ -550,7 +556,7 @@ func file_aggregatingapis_wiki_v1_wiki_proto_init() { } } file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NodeReq); i { + switch v := v.(*GetNodeListRequest); i { case 0: return &v.state case 1: @@ -562,7 +568,7 @@ func file_aggregatingapis_wiki_v1_wiki_proto_init() { } } file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NodeResp); i { + switch v := v.(*GetNodeListResponse); i { case 0: return &v.state case 1: diff --git a/aggregatingapis/wiki/v1/wiki.pb.gw.go b/aggregatingapis/wiki/v1/wiki.pb.gw.go index eb23f08..0bbe4ae 100644 --- a/aggregatingapis/wiki/v1/wiki.pb.gw.go +++ b/aggregatingapis/wiki/v1/wiki.pb.gw.go @@ -36,7 +36,7 @@ var ( ) func request_WikiService_GetDocContent_0(ctx context.Context, marshaler runtime.Marshaler, client WikiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DocTokenReq + var protoReq GetDocContentRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -52,7 +52,7 @@ func request_WikiService_GetDocContent_0(ctx context.Context, marshaler runtime. } func local_request_WikiService_GetDocContent_0(ctx context.Context, marshaler runtime.Marshaler, server WikiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DocTokenReq + var protoReq GetDocContentRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -72,7 +72,7 @@ var ( ) func request_WikiService_GetNodeList_0(ctx context.Context, marshaler runtime.Marshaler, client WikiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq NodeReq + var protoReq GetNodeListRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -88,7 +88,7 @@ func request_WikiService_GetNodeList_0(ctx context.Context, marshaler runtime.Ma } func local_request_WikiService_GetNodeList_0(ctx context.Context, marshaler runtime.Marshaler, server WikiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq NodeReq + var protoReq GetNodeListRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { diff --git a/aggregatingapis/wiki/v1/wiki.proto b/aggregatingapis/wiki/v1/wiki.proto index 16afbf3..b6f525c 100644 --- a/aggregatingapis/wiki/v1/wiki.proto +++ b/aggregatingapis/wiki/v1/wiki.proto @@ -7,39 +7,39 @@ import "google/api/annotations.proto"; option go_package = "./aggregatingapis/wiki/v1"; service WikiService { - rpc GetDocContent(DocTokenReq) returns (DocTokenResp) { + rpc GetDocContent(GetDocContentRequest) returns (GetDocContentResponse) { option (google.api.http) = { get: "/wiki/v1/content" }; } - rpc GetNodeList(nodeReq) returns (nodeResp) { + rpc GetNodeList(GetNodeListRequest) returns (GetNodeListResponse) { option (google.api.http) = { get: "/wiki/v1/nodes" }; } } -message DocTokenReq { +message GetDocContentRequest { string token = 1; } -message DocTokenResp { +message GetDocContentResponse { string content = 1; uint32 revision = 2; } -message nodeReq { +message GetNodeListRequest { string space_id = 1; string parent_node_token = 2; } -message nodeResp { - repeated nodeItem items = 1; +message GetNodeListResponse { + repeated NodeItem items = 1; string page_token = 2; bool has_more = 3; } -message nodeItem { +message NodeItem { string space_id = 1; string node_token = 2; string obj_token = 3; @@ -53,5 +53,5 @@ message nodeItem { string obj_create_time = 11; string obj_edit_time = 12; string node_create_time = 13; - repeated nodeItem subNode = 14; -} \ No newline at end of file + repeated NodeItem subNode = 14; +} diff --git a/aggregatingapis/wiki/v1/wiki_grpc.pb.go b/aggregatingapis/wiki/v1/wiki_grpc.pb.go index f8e15ca..f7242e7 100644 --- a/aggregatingapis/wiki/v1/wiki_grpc.pb.go +++ b/aggregatingapis/wiki/v1/wiki_grpc.pb.go @@ -22,8 +22,8 @@ const _ = grpc.SupportPackageIsVersion7 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type WikiServiceClient interface { - GetDocContent(ctx context.Context, in *DocTokenReq, opts ...grpc.CallOption) (*DocTokenResp, error) - GetNodeList(ctx context.Context, in *NodeReq, opts ...grpc.CallOption) (*NodeResp, error) + GetDocContent(ctx context.Context, in *GetDocContentRequest, opts ...grpc.CallOption) (*GetDocContentResponse, error) + GetNodeList(ctx context.Context, in *GetNodeListRequest, opts ...grpc.CallOption) (*GetNodeListResponse, error) } type wikiServiceClient struct { @@ -34,8 +34,8 @@ func NewWikiServiceClient(cc grpc.ClientConnInterface) WikiServiceClient { return &wikiServiceClient{cc} } -func (c *wikiServiceClient) GetDocContent(ctx context.Context, in *DocTokenReq, opts ...grpc.CallOption) (*DocTokenResp, error) { - out := new(DocTokenResp) +func (c *wikiServiceClient) GetDocContent(ctx context.Context, in *GetDocContentRequest, opts ...grpc.CallOption) (*GetDocContentResponse, error) { + out := new(GetDocContentResponse) err := c.cc.Invoke(ctx, "/aggregatingapis.wiki.v1.WikiService/GetDocContent", in, out, opts...) if err != nil { return nil, err @@ -43,8 +43,8 @@ func (c *wikiServiceClient) GetDocContent(ctx context.Context, in *DocTokenReq, return out, nil } -func (c *wikiServiceClient) GetNodeList(ctx context.Context, in *NodeReq, opts ...grpc.CallOption) (*NodeResp, error) { - out := new(NodeResp) +func (c *wikiServiceClient) GetNodeList(ctx context.Context, in *GetNodeListRequest, opts ...grpc.CallOption) (*GetNodeListResponse, error) { + out := new(GetNodeListResponse) err := c.cc.Invoke(ctx, "/aggregatingapis.wiki.v1.WikiService/GetNodeList", in, out, opts...) if err != nil { return nil, err @@ -56,8 +56,8 @@ func (c *wikiServiceClient) GetNodeList(ctx context.Context, in *NodeReq, opts . // All implementations must embed UnimplementedWikiServiceServer // for forward compatibility type WikiServiceServer interface { - GetDocContent(context.Context, *DocTokenReq) (*DocTokenResp, error) - GetNodeList(context.Context, *NodeReq) (*NodeResp, error) + GetDocContent(context.Context, *GetDocContentRequest) (*GetDocContentResponse, error) + GetNodeList(context.Context, *GetNodeListRequest) (*GetNodeListResponse, error) mustEmbedUnimplementedWikiServiceServer() } @@ -65,10 +65,10 @@ type WikiServiceServer interface { type UnimplementedWikiServiceServer struct { } -func (UnimplementedWikiServiceServer) GetDocContent(context.Context, *DocTokenReq) (*DocTokenResp, error) { +func (UnimplementedWikiServiceServer) GetDocContent(context.Context, *GetDocContentRequest) (*GetDocContentResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetDocContent not implemented") } -func (UnimplementedWikiServiceServer) GetNodeList(context.Context, *NodeReq) (*NodeResp, error) { +func (UnimplementedWikiServiceServer) GetNodeList(context.Context, *GetNodeListRequest) (*GetNodeListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetNodeList not implemented") } func (UnimplementedWikiServiceServer) mustEmbedUnimplementedWikiServiceServer() {} @@ -85,7 +85,7 @@ func RegisterWikiServiceServer(s grpc.ServiceRegistrar, srv WikiServiceServer) { } func _WikiService_GetDocContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DocTokenReq) + in := new(GetDocContentRequest) if err := dec(in); err != nil { return nil, err } @@ -97,13 +97,13 @@ func _WikiService_GetDocContent_Handler(srv interface{}, ctx context.Context, de FullMethod: "/aggregatingapis.wiki.v1.WikiService/GetDocContent", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WikiServiceServer).GetDocContent(ctx, req.(*DocTokenReq)) + return srv.(WikiServiceServer).GetDocContent(ctx, req.(*GetDocContentRequest)) } return interceptor(ctx, in, info, handler) } func _WikiService_GetNodeList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(NodeReq) + in := new(GetNodeListRequest) if err := dec(in); err != nil { return nil, err } @@ -115,7 +115,7 @@ func _WikiService_GetNodeList_Handler(srv interface{}, ctx context.Context, dec FullMethod: "/aggregatingapis.wiki.v1.WikiService/GetNodeList", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WikiServiceServer).GetNodeList(ctx, req.(*NodeReq)) + return srv.(WikiServiceServer).GetNodeList(ctx, req.(*GetNodeListRequest)) } return interceptor(ctx, in, info, handler) } diff --git a/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json b/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json index 9d16fc8..f48247f 100644 --- a/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json +++ b/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json @@ -6,7 +6,7 @@ }, "tags": [ { - "name": "InfoStreamService" + "name": "InfostreamService" } ], "consumes": [ @@ -18,7 +18,7 @@ "paths": { "/infostream/v1": { "get": { - "operationId": "InfoStreamService_GetInfostream", + "operationId": "InfostreamService_GetInfostream", "responses": { "200": { "description": "A successful response.", @@ -42,7 +42,7 @@ } ], "tags": [ - "InfoStreamService" + "InfostreamService" ] } } diff --git a/docs/swagger/aggregatingapis/wiki/v1/wiki.swagger.json b/docs/swagger/aggregatingapis/wiki/v1/wiki.swagger.json index 3b2c71e..3e3805f 100644 --- a/docs/swagger/aggregatingapis/wiki/v1/wiki.swagger.json +++ b/docs/swagger/aggregatingapis/wiki/v1/wiki.swagger.json @@ -23,7 +23,7 @@ "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1DocTokenResp" + "$ref": "#/definitions/v1GetDocContentResponse" } }, "default": { @@ -53,7 +53,7 @@ "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1nodeResp" + "$ref": "#/definitions/v1GetNodeListResponse" } }, "default": { @@ -111,7 +111,7 @@ } } }, - "v1DocTokenResp": { + "v1GetDocContentResponse": { "type": "object", "properties": { "content": { @@ -123,7 +123,24 @@ } } }, - "v1nodeItem": { + "v1GetNodeListResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/v1NodeItem" + } + }, + "pageToken": { + "type": "string" + }, + "hasMore": { + "type": "boolean" + } + } + }, + "v1NodeItem": { "type": "object", "properties": { "spaceId": { @@ -168,27 +185,10 @@ "subNode": { "type": "array", "items": { - "$ref": "#/definitions/v1nodeItem" + "$ref": "#/definitions/v1NodeItem" } } } - }, - "v1nodeResp": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1nodeItem" - } - }, - "pageToken": { - "type": "string" - }, - "hasMore": { - "type": "boolean" - } - } } } } From 0babf1c955e2daf8ead1aec5bc6ff408f704e655 Mon Sep 17 00:00:00 2001 From: sunalwaysknows <86180691+sunalwaysknows@users.noreply.github.com> Date: Wed, 29 Jun 2022 16:21:41 +0800 Subject: [PATCH 20/25] update: lint --- .../infostream/v1/infostream.proto | 49 +- aggregatingapis/time/v1/time.proto | 4 +- aggregatingapis/wiki/v1/wiki.pb.go | 613 ------------------ aggregatingapis/wiki/v1/wiki.pb.gw.go | 256 -------- aggregatingapis/wiki/v1/wiki_grpc.pb.go | 141 ---- .../faq/v1/faq.go | 0 .../faq/v1/faq.pb.go | 0 .../faq/v1/faq.pb.gw.go | 0 .../faq/v1/faq.proto | 4 +- .../faq/v1/faq_grpc.pb.go | 0 .../wiki/v1/wiki.go | 0 consultingapis/wiki/v1/wiki.pb.go | 385 +++++------ consultingapis/wiki/v1/wiki.pb.gw.go | 18 +- .../wiki/v1/wiki.proto | 4 +- consultingapis/wiki/v1/wiki_grpc.pb.go | 48 +- 15 files changed, 259 insertions(+), 1263 deletions(-) delete mode 100644 aggregatingapis/wiki/v1/wiki.pb.go delete mode 100644 aggregatingapis/wiki/v1/wiki.pb.gw.go delete mode 100644 aggregatingapis/wiki/v1/wiki_grpc.pb.go rename {aggregatingapis => consultingapis}/faq/v1/faq.go (100%) rename {aggregatingapis => consultingapis}/faq/v1/faq.pb.go (100%) rename {aggregatingapis => consultingapis}/faq/v1/faq.pb.gw.go (100%) rename {aggregatingapis => consultingapis}/faq/v1/faq.proto (97%) rename {aggregatingapis => consultingapis}/faq/v1/faq_grpc.pb.go (100%) rename {aggregatingapis => consultingapis}/wiki/v1/wiki.go (100%) rename {aggregatingapis => consultingapis}/wiki/v1/wiki.proto (93%) diff --git a/aggregatingapis/infostream/v1/infostream.proto b/aggregatingapis/infostream/v1/infostream.proto index efd148f..cc55e1c 100644 --- a/aggregatingapis/infostream/v1/infostream.proto +++ b/aggregatingapis/infostream/v1/infostream.proto @@ -24,13 +24,12 @@ message GetInfostreamResponse { Data data = 3; message Data { WeatherResponse weather = 1; - scheduleResp schedule = 2; - examResp exam = 3; - scoreResp score = 4; - sunRunResp sunrun = 5; - cardResp card = 6; - electricResp electric = 7; - settingsResp settings = 8; + ScheduleResp schedule = 2; + ExamResp exam = 3; + ScoreResp score = 4; + SunRunResp sunrun = 5; + CardResp card = 6; + ElectricResp electric = 7; } } @@ -54,13 +53,13 @@ message WeatherData { uint32 timestamp = 12; } -message scheduleResp { +message ScheduleResp { bool available = 1; - repeated scheduleData today = 2; - repeated scheduleData tomorrow = 3; + repeated ScheduleData today = 2; + repeated ScheduleData tomorrow = 3; } -message scheduleData { +message ScheduleData { uint32 startSection = 1; uint32 endSection = 2; string startTime = 3; @@ -71,12 +70,12 @@ message scheduleData { string duration = 8; } -message examResp { +message ExamResp { bool available = 1; - repeated examData data = 2; + repeated ExamData data = 2; } -message examData { +message ExamData { string classroom = 1; string course = 2; string examTime = 3; @@ -88,12 +87,12 @@ message examData { string staffId = 9; } -message scoreResp { +message ScoreResp { bool available = 1; - repeated scoreData data = 2; + repeated ScoreData data = 2; } -message scoreData { +message ScoreData { //学年 string schoolYear = 1; //学期 @@ -126,12 +125,12 @@ message scoreData { string GPA = 15; } -message sunRunResp { +message SunRunResp { bool available = 1; - sunRunData data = 2; + SunRunData data = 2; } -message sunRunData { +message SunRunData { uint32 amMileage = 1; double amSpeed = 2; string createdAt = 3; @@ -152,20 +151,18 @@ message sunRunData { string code = 18; } -message cardResp { +message CardResp { bool available = 1; float data = 2; } -message electricResp { +message ElectricResp { bool available = 1; - electricData data = 2; + ElectricData data = 2; } -message electricData { +message ElectricData { string fee = 1; string roomId = 2; string roomName = 3; } - -message settingsResp {} diff --git a/aggregatingapis/time/v1/time.proto b/aggregatingapis/time/v1/time.proto index 5e8e7b7..509a352 100644 --- a/aggregatingapis/time/v1/time.proto +++ b/aggregatingapis/time/v1/time.proto @@ -1,11 +1,11 @@ syntax = "proto3"; -package flutterapis.time.v1; +package aggregatingapis.time.v1; import "google/api/annotations.proto"; import "google/protobuf/empty.proto"; -option go_package = "./flutterapis/time/v1"; +option go_package = "./aggregatingapis/time/v1"; service TimeService { rpc GetTime(google.protobuf.Empty) returns (GetTimeResponse) { diff --git a/aggregatingapis/wiki/v1/wiki.pb.go b/aggregatingapis/wiki/v1/wiki.pb.go deleted file mode 100644 index bd316d4..0000000 --- a/aggregatingapis/wiki/v1/wiki.pb.go +++ /dev/null @@ -1,613 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc (unknown) -// source: aggregatingapis/wiki/v1/wiki.proto - -package wikiv1 - -import ( - _ "google.golang.org/genproto/googleapis/api/annotations" - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type GetDocContentRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` -} - -func (x *GetDocContentRequest) Reset() { - *x = GetDocContentRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetDocContentRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetDocContentRequest) ProtoMessage() {} - -func (x *GetDocContentRequest) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetDocContentRequest.ProtoReflect.Descriptor instead. -func (*GetDocContentRequest) Descriptor() ([]byte, []int) { - return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{0} -} - -func (x *GetDocContentRequest) GetToken() string { - if x != nil { - return x.Token - } - return "" -} - -type GetDocContentResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` - Revision uint32 `protobuf:"varint,2,opt,name=revision,proto3" json:"revision,omitempty"` -} - -func (x *GetDocContentResponse) Reset() { - *x = GetDocContentResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetDocContentResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetDocContentResponse) ProtoMessage() {} - -func (x *GetDocContentResponse) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetDocContentResponse.ProtoReflect.Descriptor instead. -func (*GetDocContentResponse) Descriptor() ([]byte, []int) { - return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{1} -} - -func (x *GetDocContentResponse) GetContent() string { - if x != nil { - return x.Content - } - return "" -} - -func (x *GetDocContentResponse) GetRevision() uint32 { - if x != nil { - return x.Revision - } - return 0 -} - -type GetNodeListRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SpaceId string `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"` - ParentNodeToken string `protobuf:"bytes,2,opt,name=parent_node_token,json=parentNodeToken,proto3" json:"parent_node_token,omitempty"` -} - -func (x *GetNodeListRequest) Reset() { - *x = GetNodeListRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetNodeListRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetNodeListRequest) ProtoMessage() {} - -func (x *GetNodeListRequest) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetNodeListRequest.ProtoReflect.Descriptor instead. -func (*GetNodeListRequest) Descriptor() ([]byte, []int) { - return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{2} -} - -func (x *GetNodeListRequest) GetSpaceId() string { - if x != nil { - return x.SpaceId - } - return "" -} - -func (x *GetNodeListRequest) GetParentNodeToken() string { - if x != nil { - return x.ParentNodeToken - } - return "" -} - -type GetNodeListResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Items []*NodeItem `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` - PageToken string `protobuf:"bytes,2,opt,name=page_token,json=pageToken,proto3" json:"page_token,omitempty"` - HasMore bool `protobuf:"varint,3,opt,name=has_more,json=hasMore,proto3" json:"has_more,omitempty"` -} - -func (x *GetNodeListResponse) Reset() { - *x = GetNodeListResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetNodeListResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetNodeListResponse) ProtoMessage() {} - -func (x *GetNodeListResponse) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use GetNodeListResponse.ProtoReflect.Descriptor instead. -func (*GetNodeListResponse) Descriptor() ([]byte, []int) { - return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{3} -} - -func (x *GetNodeListResponse) GetItems() []*NodeItem { - if x != nil { - return x.Items - } - return nil -} - -func (x *GetNodeListResponse) GetPageToken() string { - if x != nil { - return x.PageToken - } - return "" -} - -func (x *GetNodeListResponse) GetHasMore() bool { - if x != nil { - return x.HasMore - } - return false -} - -type NodeItem struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SpaceId string `protobuf:"bytes,1,opt,name=space_id,json=spaceId,proto3" json:"space_id,omitempty"` - NodeToken string `protobuf:"bytes,2,opt,name=node_token,json=nodeToken,proto3" json:"node_token,omitempty"` - ObjToken string `protobuf:"bytes,3,opt,name=obj_token,json=objToken,proto3" json:"obj_token,omitempty"` - ObjType string `protobuf:"bytes,4,opt,name=obj_type,json=objType,proto3" json:"obj_type,omitempty"` - ParentNodeToken string `protobuf:"bytes,5,opt,name=parent_node_token,json=parentNodeToken,proto3" json:"parent_node_token,omitempty"` - NodeType string `protobuf:"bytes,6,opt,name=node_type,json=nodeType,proto3" json:"node_type,omitempty"` - OriginNodeToken string `protobuf:"bytes,7,opt,name=origin_node_token,json=originNodeToken,proto3" json:"origin_node_token,omitempty"` - OriginSpaceId string `protobuf:"bytes,8,opt,name=origin_space_id,json=originSpaceId,proto3" json:"origin_space_id,omitempty"` - HasChild bool `protobuf:"varint,9,opt,name=has_child,json=hasChild,proto3" json:"has_child,omitempty"` - Title string `protobuf:"bytes,10,opt,name=title,proto3" json:"title,omitempty"` - ObjCreateTime string `protobuf:"bytes,11,opt,name=obj_create_time,json=objCreateTime,proto3" json:"obj_create_time,omitempty"` - ObjEditTime string `protobuf:"bytes,12,opt,name=obj_edit_time,json=objEditTime,proto3" json:"obj_edit_time,omitempty"` - NodeCreateTime string `protobuf:"bytes,13,opt,name=node_create_time,json=nodeCreateTime,proto3" json:"node_create_time,omitempty"` - SubNode []*NodeItem `protobuf:"bytes,14,rep,name=subNode,proto3" json:"subNode,omitempty"` -} - -func (x *NodeItem) Reset() { - *x = NodeItem{} - if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *NodeItem) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*NodeItem) ProtoMessage() {} - -func (x *NodeItem) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use NodeItem.ProtoReflect.Descriptor instead. -func (*NodeItem) Descriptor() ([]byte, []int) { - return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{4} -} - -func (x *NodeItem) GetSpaceId() string { - if x != nil { - return x.SpaceId - } - return "" -} - -func (x *NodeItem) GetNodeToken() string { - if x != nil { - return x.NodeToken - } - return "" -} - -func (x *NodeItem) GetObjToken() string { - if x != nil { - return x.ObjToken - } - return "" -} - -func (x *NodeItem) GetObjType() string { - if x != nil { - return x.ObjType - } - return "" -} - -func (x *NodeItem) GetParentNodeToken() string { - if x != nil { - return x.ParentNodeToken - } - return "" -} - -func (x *NodeItem) GetNodeType() string { - if x != nil { - return x.NodeType - } - return "" -} - -func (x *NodeItem) GetOriginNodeToken() string { - if x != nil { - return x.OriginNodeToken - } - return "" -} - -func (x *NodeItem) GetOriginSpaceId() string { - if x != nil { - return x.OriginSpaceId - } - return "" -} - -func (x *NodeItem) GetHasChild() bool { - if x != nil { - return x.HasChild - } - return false -} - -func (x *NodeItem) GetTitle() string { - if x != nil { - return x.Title - } - return "" -} - -func (x *NodeItem) GetObjCreateTime() string { - if x != nil { - return x.ObjCreateTime - } - return "" -} - -func (x *NodeItem) GetObjEditTime() string { - if x != nil { - return x.ObjEditTime - } - return "" -} - -func (x *NodeItem) GetNodeCreateTime() string { - if x != nil { - return x.NodeCreateTime - } - return "" -} - -func (x *NodeItem) GetSubNode() []*NodeItem { - if x != nil { - return x.SubNode - } - return nil -} - -var File_aggregatingapis_wiki_v1_wiki_proto protoreflect.FileDescriptor - -var file_aggregatingapis_wiki_v1_wiki_proto_rawDesc = []byte{ - 0x0a, 0x22, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x4d, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4e, - 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, - 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, - 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, - 0x22, 0xff, 0x03, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x0a, - 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, - 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x62, 0x6a, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, - 0x68, 0x61, 0x73, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x68, 0x61, 0x73, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, - 0x26, 0x0a, 0x0f, 0x6f, 0x62, 0x6a, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x62, 0x6a, 0x5f, 0x65, - 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6f, 0x62, 0x6a, 0x45, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x6f, 0x64, 0x65, - 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x6f, - 0x64, 0x65, 0x32, 0x9b, 0x02, 0x0a, 0x0b, 0x57, 0x69, 0x6b, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x77, 0x69, - 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x80, 0x01, - 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x2e, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, - 0x12, 0x0e, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, - 0x42, 0xe6, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, - 0x42, 0x09, 0x57, 0x69, 0x6b, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, - 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x77, - 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x77, 0x69, 0x6b, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x41, 0x57, 0x58, 0xaa, 0x02, 0x17, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x57, 0x69, 0x6b, 0x69, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, - 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, - 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x23, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, - 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, - 0x3a, 0x57, 0x69, 0x6b, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, -} - -var ( - file_aggregatingapis_wiki_v1_wiki_proto_rawDescOnce sync.Once - file_aggregatingapis_wiki_v1_wiki_proto_rawDescData = file_aggregatingapis_wiki_v1_wiki_proto_rawDesc -) - -func file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP() []byte { - file_aggregatingapis_wiki_v1_wiki_proto_rawDescOnce.Do(func() { - file_aggregatingapis_wiki_v1_wiki_proto_rawDescData = protoimpl.X.CompressGZIP(file_aggregatingapis_wiki_v1_wiki_proto_rawDescData) - }) - return file_aggregatingapis_wiki_v1_wiki_proto_rawDescData -} - -var file_aggregatingapis_wiki_v1_wiki_proto_msgTypes = make([]protoimpl.MessageInfo, 5) -var file_aggregatingapis_wiki_v1_wiki_proto_goTypes = []interface{}{ - (*GetDocContentRequest)(nil), // 0: aggregatingapis.wiki.v1.GetDocContentRequest - (*GetDocContentResponse)(nil), // 1: aggregatingapis.wiki.v1.GetDocContentResponse - (*GetNodeListRequest)(nil), // 2: aggregatingapis.wiki.v1.GetNodeListRequest - (*GetNodeListResponse)(nil), // 3: aggregatingapis.wiki.v1.GetNodeListResponse - (*NodeItem)(nil), // 4: aggregatingapis.wiki.v1.NodeItem -} -var file_aggregatingapis_wiki_v1_wiki_proto_depIdxs = []int32{ - 4, // 0: aggregatingapis.wiki.v1.GetNodeListResponse.items:type_name -> aggregatingapis.wiki.v1.NodeItem - 4, // 1: aggregatingapis.wiki.v1.NodeItem.subNode:type_name -> aggregatingapis.wiki.v1.NodeItem - 0, // 2: aggregatingapis.wiki.v1.WikiService.GetDocContent:input_type -> aggregatingapis.wiki.v1.GetDocContentRequest - 2, // 3: aggregatingapis.wiki.v1.WikiService.GetNodeList:input_type -> aggregatingapis.wiki.v1.GetNodeListRequest - 1, // 4: aggregatingapis.wiki.v1.WikiService.GetDocContent:output_type -> aggregatingapis.wiki.v1.GetDocContentResponse - 3, // 5: aggregatingapis.wiki.v1.WikiService.GetNodeList:output_type -> aggregatingapis.wiki.v1.GetNodeListResponse - 4, // [4:6] is the sub-list for method output_type - 2, // [2:4] is the sub-list for method input_type - 2, // [2:2] is the sub-list for extension type_name - 2, // [2:2] is the sub-list for extension extendee - 0, // [0:2] is the sub-list for field type_name -} - -func init() { file_aggregatingapis_wiki_v1_wiki_proto_init() } -func file_aggregatingapis_wiki_v1_wiki_proto_init() { - if File_aggregatingapis_wiki_v1_wiki_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDocContentRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetDocContentResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNodeListRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNodeListResponse); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NodeItem); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_aggregatingapis_wiki_v1_wiki_proto_rawDesc, - NumEnums: 0, - NumMessages: 5, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_aggregatingapis_wiki_v1_wiki_proto_goTypes, - DependencyIndexes: file_aggregatingapis_wiki_v1_wiki_proto_depIdxs, - MessageInfos: file_aggregatingapis_wiki_v1_wiki_proto_msgTypes, - }.Build() - File_aggregatingapis_wiki_v1_wiki_proto = out.File - file_aggregatingapis_wiki_v1_wiki_proto_rawDesc = nil - file_aggregatingapis_wiki_v1_wiki_proto_goTypes = nil - file_aggregatingapis_wiki_v1_wiki_proto_depIdxs = nil -} diff --git a/aggregatingapis/wiki/v1/wiki.pb.gw.go b/aggregatingapis/wiki/v1/wiki.pb.gw.go deleted file mode 100644 index 0bbe4ae..0000000 --- a/aggregatingapis/wiki/v1/wiki.pb.gw.go +++ /dev/null @@ -1,256 +0,0 @@ -// Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: aggregatingapis/wiki/v1/wiki.proto - -/* -Package wikiv1 is a reverse proxy. - -It translates gRPC into RESTful JSON APIs. -*/ -package wikiv1 - -import ( - "context" - "io" - "net/http" - - "github.com/grpc-ecosystem/grpc-gateway/v2/runtime" - "github.com/grpc-ecosystem/grpc-gateway/v2/utilities" - "google.golang.org/grpc" - "google.golang.org/grpc/codes" - "google.golang.org/grpc/grpclog" - "google.golang.org/grpc/metadata" - "google.golang.org/grpc/status" - "google.golang.org/protobuf/proto" -) - -// Suppress "imported and not used" errors -var _ codes.Code -var _ io.Reader -var _ status.Status -var _ = runtime.String -var _ = utilities.NewDoubleArray -var _ = metadata.Join - -var ( - filter_WikiService_GetDocContent_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} -) - -func request_WikiService_GetDocContent_0(ctx context.Context, marshaler runtime.Marshaler, client WikiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetDocContentRequest - var metadata runtime.ServerMetadata - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WikiService_GetDocContent_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetDocContent(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_WikiService_GetDocContent_0(ctx context.Context, marshaler runtime.Marshaler, server WikiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetDocContentRequest - var metadata runtime.ServerMetadata - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WikiService_GetDocContent_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetDocContent(ctx, &protoReq) - return msg, metadata, err - -} - -var ( - filter_WikiService_GetNodeList_0 = &utilities.DoubleArray{Encoding: map[string]int{}, Base: []int(nil), Check: []int(nil)} -) - -func request_WikiService_GetNodeList_0(ctx context.Context, marshaler runtime.Marshaler, client WikiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetNodeListRequest - var metadata runtime.ServerMetadata - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WikiService_GetNodeList_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := client.GetNodeList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err - -} - -func local_request_WikiService_GetNodeList_0(ctx context.Context, marshaler runtime.Marshaler, server WikiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq GetNodeListRequest - var metadata runtime.ServerMetadata - - if err := req.ParseForm(); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - if err := runtime.PopulateQueryParameters(&protoReq, req.Form, filter_WikiService_GetNodeList_0); err != nil { - return nil, metadata, status.Errorf(codes.InvalidArgument, "%v", err) - } - - msg, err := server.GetNodeList(ctx, &protoReq) - return msg, metadata, err - -} - -// RegisterWikiServiceHandlerServer registers the http handlers for service WikiService to "mux". -// UnaryRPC :call WikiServiceServer directly. -// StreamingRPC :currently unsupported pending https://github.com/grpc/grpc-go/issues/906. -// Note that using this registration option will cause many gRPC library features to stop working. Consider using RegisterWikiServiceHandlerFromEndpoint instead. -func RegisterWikiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, server WikiServiceServer) error { - - mux.Handle("GET", pattern_WikiService_GetDocContent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_WikiService_GetDocContent_0(ctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_WikiService_GetDocContent_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_WikiService_GetNodeList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - var stream runtime.ServerTransportStream - ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := local_request_WikiService_GetNodeList_0(ctx, inboundMarshaler, server, req, pathParams) - md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_WikiService_GetNodeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -// RegisterWikiServiceHandlerFromEndpoint is same as RegisterWikiServiceHandler but -// automatically dials to "endpoint" and closes the connection when "ctx" gets done. -func RegisterWikiServiceHandlerFromEndpoint(ctx context.Context, mux *runtime.ServeMux, endpoint string, opts []grpc.DialOption) (err error) { - conn, err := grpc.Dial(endpoint, opts...) - if err != nil { - return err - } - defer func() { - if err != nil { - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - return - } - go func() { - <-ctx.Done() - if cerr := conn.Close(); cerr != nil { - grpclog.Infof("Failed to close conn to %s: %v", endpoint, cerr) - } - }() - }() - - return RegisterWikiServiceHandler(ctx, mux, conn) -} - -// RegisterWikiServiceHandler registers the http handlers for service WikiService to "mux". -// The handlers forward requests to the grpc endpoint over "conn". -func RegisterWikiServiceHandler(ctx context.Context, mux *runtime.ServeMux, conn *grpc.ClientConn) error { - return RegisterWikiServiceHandlerClient(ctx, mux, NewWikiServiceClient(conn)) -} - -// RegisterWikiServiceHandlerClient registers the http handlers for service WikiService -// to "mux". The handlers forward requests to the grpc endpoint over the given implementation of "WikiServiceClient". -// Note: the gRPC framework executes interceptors within the gRPC handler. If the passed in "WikiServiceClient" -// doesn't go through the normal gRPC flow (creating a gRPC client etc.) then it will be up to the passed in -// "WikiServiceClient" to call the correct interceptors. -func RegisterWikiServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, client WikiServiceClient) error { - - mux.Handle("GET", pattern_WikiService_GetDocContent_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_WikiService_GetDocContent_0(ctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_WikiService_GetDocContent_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - mux.Handle("GET", pattern_WikiService_GetNodeList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { - ctx, cancel := context.WithCancel(req.Context()) - defer cancel() - inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) - var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - resp, md, err := request_WikiService_GetNodeList_0(ctx, inboundMarshaler, client, req, pathParams) - ctx = runtime.NewServerMetadataContext(ctx, md) - if err != nil { - runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) - return - } - - forward_WikiService_GetNodeList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - - }) - - return nil -} - -var ( - pattern_WikiService_GetDocContent_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"wiki", "v1", "content"}, "")) - - pattern_WikiService_GetNodeList_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2}, []string{"wiki", "v1", "nodes"}, "")) -) - -var ( - forward_WikiService_GetDocContent_0 = runtime.ForwardResponseMessage - - forward_WikiService_GetNodeList_0 = runtime.ForwardResponseMessage -) diff --git a/aggregatingapis/wiki/v1/wiki_grpc.pb.go b/aggregatingapis/wiki/v1/wiki_grpc.pb.go deleted file mode 100644 index f7242e7..0000000 --- a/aggregatingapis/wiki/v1/wiki_grpc.pb.go +++ /dev/null @@ -1,141 +0,0 @@ -// Code generated by protoc-gen-go-grpc. DO NOT EDIT. -// versions: -// - protoc-gen-go-grpc v1.2.0 -// - protoc (unknown) -// source: aggregatingapis/wiki/v1/wiki.proto - -package wikiv1 - -import ( - context "context" - grpc "google.golang.org/grpc" - codes "google.golang.org/grpc/codes" - status "google.golang.org/grpc/status" -) - -// This is a compile-time assertion to ensure that this generated file -// is compatible with the grpc package it is being compiled against. -// Requires gRPC-Go v1.32.0 or later. -const _ = grpc.SupportPackageIsVersion7 - -// WikiServiceClient is the client API for WikiService service. -// -// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. -type WikiServiceClient interface { - GetDocContent(ctx context.Context, in *GetDocContentRequest, opts ...grpc.CallOption) (*GetDocContentResponse, error) - GetNodeList(ctx context.Context, in *GetNodeListRequest, opts ...grpc.CallOption) (*GetNodeListResponse, error) -} - -type wikiServiceClient struct { - cc grpc.ClientConnInterface -} - -func NewWikiServiceClient(cc grpc.ClientConnInterface) WikiServiceClient { - return &wikiServiceClient{cc} -} - -func (c *wikiServiceClient) GetDocContent(ctx context.Context, in *GetDocContentRequest, opts ...grpc.CallOption) (*GetDocContentResponse, error) { - out := new(GetDocContentResponse) - err := c.cc.Invoke(ctx, "/aggregatingapis.wiki.v1.WikiService/GetDocContent", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *wikiServiceClient) GetNodeList(ctx context.Context, in *GetNodeListRequest, opts ...grpc.CallOption) (*GetNodeListResponse, error) { - out := new(GetNodeListResponse) - err := c.cc.Invoke(ctx, "/aggregatingapis.wiki.v1.WikiService/GetNodeList", in, out, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// WikiServiceServer is the server API for WikiService service. -// All implementations must embed UnimplementedWikiServiceServer -// for forward compatibility -type WikiServiceServer interface { - GetDocContent(context.Context, *GetDocContentRequest) (*GetDocContentResponse, error) - GetNodeList(context.Context, *GetNodeListRequest) (*GetNodeListResponse, error) - mustEmbedUnimplementedWikiServiceServer() -} - -// UnimplementedWikiServiceServer must be embedded to have forward compatible implementations. -type UnimplementedWikiServiceServer struct { -} - -func (UnimplementedWikiServiceServer) GetDocContent(context.Context, *GetDocContentRequest) (*GetDocContentResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetDocContent not implemented") -} -func (UnimplementedWikiServiceServer) GetNodeList(context.Context, *GetNodeListRequest) (*GetNodeListResponse, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetNodeList not implemented") -} -func (UnimplementedWikiServiceServer) mustEmbedUnimplementedWikiServiceServer() {} - -// UnsafeWikiServiceServer may be embedded to opt out of forward compatibility for this service. -// Use of this interface is not recommended, as added methods to WikiServiceServer will -// result in compilation errors. -type UnsafeWikiServiceServer interface { - mustEmbedUnimplementedWikiServiceServer() -} - -func RegisterWikiServiceServer(s grpc.ServiceRegistrar, srv WikiServiceServer) { - s.RegisterService(&WikiService_ServiceDesc, srv) -} - -func _WikiService_GetDocContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetDocContentRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WikiServiceServer).GetDocContent(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/aggregatingapis.wiki.v1.WikiService/GetDocContent", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WikiServiceServer).GetDocContent(ctx, req.(*GetDocContentRequest)) - } - return interceptor(ctx, in, info, handler) -} - -func _WikiService_GetNodeList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetNodeListRequest) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(WikiServiceServer).GetNodeList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/aggregatingapis.wiki.v1.WikiService/GetNodeList", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WikiServiceServer).GetNodeList(ctx, req.(*GetNodeListRequest)) - } - return interceptor(ctx, in, info, handler) -} - -// WikiService_ServiceDesc is the grpc.ServiceDesc for WikiService service. -// It's only intended for direct use with grpc.RegisterService, -// and not to be introspected or modified (even as a copy) -var WikiService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "aggregatingapis.wiki.v1.WikiService", - HandlerType: (*WikiServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "GetDocContent", - Handler: _WikiService_GetDocContent_Handler, - }, - { - MethodName: "GetNodeList", - Handler: _WikiService_GetNodeList_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "aggregatingapis/wiki/v1/wiki.proto", -} diff --git a/aggregatingapis/faq/v1/faq.go b/consultingapis/faq/v1/faq.go similarity index 100% rename from aggregatingapis/faq/v1/faq.go rename to consultingapis/faq/v1/faq.go diff --git a/aggregatingapis/faq/v1/faq.pb.go b/consultingapis/faq/v1/faq.pb.go similarity index 100% rename from aggregatingapis/faq/v1/faq.pb.go rename to consultingapis/faq/v1/faq.pb.go diff --git a/aggregatingapis/faq/v1/faq.pb.gw.go b/consultingapis/faq/v1/faq.pb.gw.go similarity index 100% rename from aggregatingapis/faq/v1/faq.pb.gw.go rename to consultingapis/faq/v1/faq.pb.gw.go diff --git a/aggregatingapis/faq/v1/faq.proto b/consultingapis/faq/v1/faq.proto similarity index 97% rename from aggregatingapis/faq/v1/faq.proto rename to consultingapis/faq/v1/faq.proto index 25ccbc0..67273da 100644 --- a/aggregatingapis/faq/v1/faq.proto +++ b/consultingapis/faq/v1/faq.proto @@ -1,10 +1,10 @@ syntax = "proto3"; -package aggregatingapis.faq.v1; +package consultingapis.faq.v1; import "google/api/annotations.proto"; -option go_package = "./aggregatingapis/faq/v1"; +option go_package = "./consultingapis/faq/v1"; service FAQService { rpc CreateFAQ(CreateFAQRequest) returns (CreateFAQResponse) { diff --git a/aggregatingapis/faq/v1/faq_grpc.pb.go b/consultingapis/faq/v1/faq_grpc.pb.go similarity index 100% rename from aggregatingapis/faq/v1/faq_grpc.pb.go rename to consultingapis/faq/v1/faq_grpc.pb.go diff --git a/aggregatingapis/wiki/v1/wiki.go b/consultingapis/wiki/v1/wiki.go similarity index 100% rename from aggregatingapis/wiki/v1/wiki.go rename to consultingapis/wiki/v1/wiki.go diff --git a/consultingapis/wiki/v1/wiki.pb.go b/consultingapis/wiki/v1/wiki.pb.go index 2d395af..bd316d4 100644 --- a/consultingapis/wiki/v1/wiki.pb.go +++ b/consultingapis/wiki/v1/wiki.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.28.0 // protoc (unknown) -// source: consultingapis/wiki/v1/wiki.proto +// source: aggregatingapis/wiki/v1/wiki.proto package wikiv1 @@ -21,7 +21,7 @@ const ( _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) -type DocTokenReq struct { +type GetDocContentRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -29,23 +29,23 @@ type DocTokenReq struct { Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` } -func (x *DocTokenReq) Reset() { - *x = DocTokenReq{} +func (x *GetDocContentRequest) Reset() { + *x = GetDocContentRequest{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[0] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DocTokenReq) String() string { +func (x *GetDocContentRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DocTokenReq) ProtoMessage() {} +func (*GetDocContentRequest) ProtoMessage() {} -func (x *DocTokenReq) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[0] +func (x *GetDocContentRequest) ProtoReflect() protoreflect.Message { + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -56,19 +56,19 @@ func (x *DocTokenReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DocTokenReq.ProtoReflect.Descriptor instead. -func (*DocTokenReq) Descriptor() ([]byte, []int) { - return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{0} +// Deprecated: Use GetDocContentRequest.ProtoReflect.Descriptor instead. +func (*GetDocContentRequest) Descriptor() ([]byte, []int) { + return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{0} } -func (x *DocTokenReq) GetToken() string { +func (x *GetDocContentRequest) GetToken() string { if x != nil { return x.Token } return "" } -type DocTokenResp struct { +type GetDocContentResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -77,23 +77,23 @@ type DocTokenResp struct { Revision uint32 `protobuf:"varint,2,opt,name=revision,proto3" json:"revision,omitempty"` } -func (x *DocTokenResp) Reset() { - *x = DocTokenResp{} +func (x *GetDocContentResponse) Reset() { + *x = GetDocContentResponse{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[1] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DocTokenResp) String() string { +func (x *GetDocContentResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DocTokenResp) ProtoMessage() {} +func (*GetDocContentResponse) ProtoMessage() {} -func (x *DocTokenResp) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[1] +func (x *GetDocContentResponse) ProtoReflect() protoreflect.Message { + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -104,26 +104,26 @@ func (x *DocTokenResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DocTokenResp.ProtoReflect.Descriptor instead. -func (*DocTokenResp) Descriptor() ([]byte, []int) { - return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{1} +// Deprecated: Use GetDocContentResponse.ProtoReflect.Descriptor instead. +func (*GetDocContentResponse) Descriptor() ([]byte, []int) { + return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{1} } -func (x *DocTokenResp) GetContent() string { +func (x *GetDocContentResponse) GetContent() string { if x != nil { return x.Content } return "" } -func (x *DocTokenResp) GetRevision() uint32 { +func (x *GetDocContentResponse) GetRevision() uint32 { if x != nil { return x.Revision } return 0 } -type NodeReq struct { +type GetNodeListRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -132,23 +132,23 @@ type NodeReq struct { ParentNodeToken string `protobuf:"bytes,2,opt,name=parent_node_token,json=parentNodeToken,proto3" json:"parent_node_token,omitempty"` } -func (x *NodeReq) Reset() { - *x = NodeReq{} +func (x *GetNodeListRequest) Reset() { + *x = GetNodeListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[2] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NodeReq) String() string { +func (x *GetNodeListRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NodeReq) ProtoMessage() {} +func (*GetNodeListRequest) ProtoMessage() {} -func (x *NodeReq) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[2] +func (x *GetNodeListRequest) ProtoReflect() protoreflect.Message { + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -159,26 +159,26 @@ func (x *NodeReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NodeReq.ProtoReflect.Descriptor instead. -func (*NodeReq) Descriptor() ([]byte, []int) { - return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{2} +// Deprecated: Use GetNodeListRequest.ProtoReflect.Descriptor instead. +func (*GetNodeListRequest) Descriptor() ([]byte, []int) { + return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{2} } -func (x *NodeReq) GetSpaceId() string { +func (x *GetNodeListRequest) GetSpaceId() string { if x != nil { return x.SpaceId } return "" } -func (x *NodeReq) GetParentNodeToken() string { +func (x *GetNodeListRequest) GetParentNodeToken() string { if x != nil { return x.ParentNodeToken } return "" } -type NodeResp struct { +type GetNodeListResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -188,23 +188,23 @@ type NodeResp struct { HasMore bool `protobuf:"varint,3,opt,name=has_more,json=hasMore,proto3" json:"has_more,omitempty"` } -func (x *NodeResp) Reset() { - *x = NodeResp{} +func (x *GetNodeListResponse) Reset() { + *x = GetNodeListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[3] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *NodeResp) String() string { +func (x *GetNodeListResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*NodeResp) ProtoMessage() {} +func (*GetNodeListResponse) ProtoMessage() {} -func (x *NodeResp) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[3] +func (x *GetNodeListResponse) ProtoReflect() protoreflect.Message { + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -215,26 +215,26 @@ func (x *NodeResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use NodeResp.ProtoReflect.Descriptor instead. -func (*NodeResp) Descriptor() ([]byte, []int) { - return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{3} +// Deprecated: Use GetNodeListResponse.ProtoReflect.Descriptor instead. +func (*GetNodeListResponse) Descriptor() ([]byte, []int) { + return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{3} } -func (x *NodeResp) GetItems() []*NodeItem { +func (x *GetNodeListResponse) GetItems() []*NodeItem { if x != nil { return x.Items } return nil } -func (x *NodeResp) GetPageToken() string { +func (x *GetNodeListResponse) GetPageToken() string { if x != nil { return x.PageToken } return "" } -func (x *NodeResp) GetHasMore() bool { +func (x *GetNodeListResponse) GetHasMore() bool { if x != nil { return x.HasMore } @@ -265,7 +265,7 @@ type NodeItem struct { func (x *NodeItem) Reset() { *x = NodeItem{} if protoimpl.UnsafeEnabled { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[4] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -278,7 +278,7 @@ func (x *NodeItem) String() string { func (*NodeItem) ProtoMessage() {} func (x *NodeItem) ProtoReflect() protoreflect.Message { - mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[4] + mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -291,7 +291,7 @@ func (x *NodeItem) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeItem.ProtoReflect.Descriptor instead. func (*NodeItem) Descriptor() ([]byte, []int) { - return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{4} + return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{4} } func (x *NodeItem) GetSpaceId() string { @@ -392,125 +392,132 @@ func (x *NodeItem) GetSubNode() []*NodeItem { return nil } -var File_consultingapis_wiki_v1_wiki_proto protoreflect.FileDescriptor - -var file_consultingapis_wiki_v1_wiki_proto_rawDesc = []byte{ - 0x0a, 0x21, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x23, 0x0a, 0x0b, 0x44, 0x6f, 0x63, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x44, - 0x0a, 0x0c, 0x44, 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, - 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, - 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x12, - 0x19, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, - 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, - 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x7c, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x36, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x49, - 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, - 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, - 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, - 0x4d, 0x6f, 0x72, 0x65, 0x22, 0xfe, 0x03, 0x0a, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, - 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6f, - 0x62, 0x6a, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6f, 0x62, 0x6a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x62, 0x6a, 0x5f, - 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, - 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4e, - 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x5f, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, - 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, 0x73, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x14, 0x0a, - 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, - 0x74, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x62, 0x6a, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x62, - 0x6a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, - 0x62, 0x6a, 0x5f, 0x65, 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x62, 0x6a, 0x45, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x28, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x73, 0x75, 0x62, - 0x4e, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, - 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x73, 0x75, - 0x62, 0x4e, 0x6f, 0x64, 0x65, 0x32, 0xed, 0x01, 0x0a, 0x0b, 0x57, 0x69, 0x6b, 0x69, 0x53, 0x65, - 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x74, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x23, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, - 0x44, 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x63, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x77, 0x69, 0x6b, 0x69, - 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x68, 0x0a, 0x0b, 0x47, - 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, - 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, - 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x6e, 0x6f, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x16, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, - 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x42, 0xe0, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x6f, - 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, - 0x69, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x57, 0x69, 0x6b, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, - 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, - 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, - 0x64, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x77, 0x69, 0x6b, 0x69, 0x76, 0x31, - 0xa2, 0x02, 0x03, 0x43, 0x57, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x57, 0x69, 0x6b, 0x69, 0x2e, 0x56, 0x31, 0xca, - 0x02, 0x16, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x5c, 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x6e, 0x73, 0x75, - 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, - 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, - 0x57, 0x69, 0x6b, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +var File_aggregatingapis_wiki_v1_wiki_proto protoreflect.FileDescriptor + +var file_aggregatingapis_wiki_v1_wiki_proto_rawDesc = []byte{ + 0x0a, 0x22, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x4d, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, + 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, + 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4e, + 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, + 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, + 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, + 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, + 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, + 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, + 0x22, 0xff, 0x03, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x0a, + 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, + 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x62, 0x6a, 0x5f, 0x74, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, + 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, + 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, + 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, + 0x68, 0x61, 0x73, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x08, 0x68, 0x61, 0x73, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, + 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, + 0x26, 0x0a, 0x0f, 0x6f, 0x62, 0x6a, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x62, 0x6a, 0x5f, 0x65, + 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6f, 0x62, 0x6a, 0x45, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x6f, 0x64, 0x65, + 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, + 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x6f, + 0x64, 0x65, 0x32, 0x9b, 0x02, 0x0a, 0x0b, 0x57, 0x69, 0x6b, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, + 0x63, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x77, 0x69, + 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x80, 0x01, + 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x2e, + 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x61, 0x67, 0x67, + 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, + 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, + 0x12, 0x0e, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, + 0x42, 0xe6, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, + 0x42, 0x09, 0x57, 0x69, 0x6b, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, + 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, + 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x77, + 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x77, 0x69, 0x6b, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03, + 0x41, 0x57, 0x58, 0xaa, 0x02, 0x17, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x57, 0x69, 0x6b, 0x69, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, + 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, + 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x23, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, + 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, + 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, + 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, + 0x3a, 0x57, 0x69, 0x6b, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( - file_consultingapis_wiki_v1_wiki_proto_rawDescOnce sync.Once - file_consultingapis_wiki_v1_wiki_proto_rawDescData = file_consultingapis_wiki_v1_wiki_proto_rawDesc + file_aggregatingapis_wiki_v1_wiki_proto_rawDescOnce sync.Once + file_aggregatingapis_wiki_v1_wiki_proto_rawDescData = file_aggregatingapis_wiki_v1_wiki_proto_rawDesc ) -func file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP() []byte { - file_consultingapis_wiki_v1_wiki_proto_rawDescOnce.Do(func() { - file_consultingapis_wiki_v1_wiki_proto_rawDescData = protoimpl.X.CompressGZIP(file_consultingapis_wiki_v1_wiki_proto_rawDescData) +func file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP() []byte { + file_aggregatingapis_wiki_v1_wiki_proto_rawDescOnce.Do(func() { + file_aggregatingapis_wiki_v1_wiki_proto_rawDescData = protoimpl.X.CompressGZIP(file_aggregatingapis_wiki_v1_wiki_proto_rawDescData) }) - return file_consultingapis_wiki_v1_wiki_proto_rawDescData -} - -var file_consultingapis_wiki_v1_wiki_proto_msgTypes = make([]protoimpl.MessageInfo, 5) -var file_consultingapis_wiki_v1_wiki_proto_goTypes = []interface{}{ - (*DocTokenReq)(nil), // 0: consultingapis.wiki.v1.DocTokenReq - (*DocTokenResp)(nil), // 1: consultingapis.wiki.v1.DocTokenResp - (*NodeReq)(nil), // 2: consultingapis.wiki.v1.nodeReq - (*NodeResp)(nil), // 3: consultingapis.wiki.v1.nodeResp - (*NodeItem)(nil), // 4: consultingapis.wiki.v1.nodeItem -} -var file_consultingapis_wiki_v1_wiki_proto_depIdxs = []int32{ - 4, // 0: consultingapis.wiki.v1.nodeResp.items:type_name -> consultingapis.wiki.v1.nodeItem - 4, // 1: consultingapis.wiki.v1.nodeItem.subNode:type_name -> consultingapis.wiki.v1.nodeItem - 0, // 2: consultingapis.wiki.v1.WikiService.GetDocContent:input_type -> consultingapis.wiki.v1.DocTokenReq - 2, // 3: consultingapis.wiki.v1.WikiService.GetNodeList:input_type -> consultingapis.wiki.v1.nodeReq - 1, // 4: consultingapis.wiki.v1.WikiService.GetDocContent:output_type -> consultingapis.wiki.v1.DocTokenResp - 3, // 5: consultingapis.wiki.v1.WikiService.GetNodeList:output_type -> consultingapis.wiki.v1.nodeResp + return file_aggregatingapis_wiki_v1_wiki_proto_rawDescData +} + +var file_aggregatingapis_wiki_v1_wiki_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_aggregatingapis_wiki_v1_wiki_proto_goTypes = []interface{}{ + (*GetDocContentRequest)(nil), // 0: aggregatingapis.wiki.v1.GetDocContentRequest + (*GetDocContentResponse)(nil), // 1: aggregatingapis.wiki.v1.GetDocContentResponse + (*GetNodeListRequest)(nil), // 2: aggregatingapis.wiki.v1.GetNodeListRequest + (*GetNodeListResponse)(nil), // 3: aggregatingapis.wiki.v1.GetNodeListResponse + (*NodeItem)(nil), // 4: aggregatingapis.wiki.v1.NodeItem +} +var file_aggregatingapis_wiki_v1_wiki_proto_depIdxs = []int32{ + 4, // 0: aggregatingapis.wiki.v1.GetNodeListResponse.items:type_name -> aggregatingapis.wiki.v1.NodeItem + 4, // 1: aggregatingapis.wiki.v1.NodeItem.subNode:type_name -> aggregatingapis.wiki.v1.NodeItem + 0, // 2: aggregatingapis.wiki.v1.WikiService.GetDocContent:input_type -> aggregatingapis.wiki.v1.GetDocContentRequest + 2, // 3: aggregatingapis.wiki.v1.WikiService.GetNodeList:input_type -> aggregatingapis.wiki.v1.GetNodeListRequest + 1, // 4: aggregatingapis.wiki.v1.WikiService.GetDocContent:output_type -> aggregatingapis.wiki.v1.GetDocContentResponse + 3, // 5: aggregatingapis.wiki.v1.WikiService.GetNodeList:output_type -> aggregatingapis.wiki.v1.GetNodeListResponse 4, // [4:6] is the sub-list for method output_type 2, // [2:4] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name @@ -518,14 +525,14 @@ var file_consultingapis_wiki_v1_wiki_proto_depIdxs = []int32{ 0, // [0:2] is the sub-list for field type_name } -func init() { file_consultingapis_wiki_v1_wiki_proto_init() } -func file_consultingapis_wiki_v1_wiki_proto_init() { - if File_consultingapis_wiki_v1_wiki_proto != nil { +func init() { file_aggregatingapis_wiki_v1_wiki_proto_init() } +func file_aggregatingapis_wiki_v1_wiki_proto_init() { + if File_aggregatingapis_wiki_v1_wiki_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_consultingapis_wiki_v1_wiki_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DocTokenReq); i { + file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDocContentRequest); i { case 0: return &v.state case 1: @@ -536,8 +543,8 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { return nil } } - file_consultingapis_wiki_v1_wiki_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DocTokenResp); i { + file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDocContentResponse); i { case 0: return &v.state case 1: @@ -548,8 +555,8 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { return nil } } - file_consultingapis_wiki_v1_wiki_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NodeReq); i { + file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNodeListRequest); i { case 0: return &v.state case 1: @@ -560,8 +567,8 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { return nil } } - file_consultingapis_wiki_v1_wiki_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*NodeResp); i { + file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNodeListResponse); i { case 0: return &v.state case 1: @@ -572,7 +579,7 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { return nil } } - file_consultingapis_wiki_v1_wiki_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeItem); i { case 0: return &v.state @@ -589,18 +596,18 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_consultingapis_wiki_v1_wiki_proto_rawDesc, + RawDescriptor: file_aggregatingapis_wiki_v1_wiki_proto_rawDesc, NumEnums: 0, NumMessages: 5, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_consultingapis_wiki_v1_wiki_proto_goTypes, - DependencyIndexes: file_consultingapis_wiki_v1_wiki_proto_depIdxs, - MessageInfos: file_consultingapis_wiki_v1_wiki_proto_msgTypes, + GoTypes: file_aggregatingapis_wiki_v1_wiki_proto_goTypes, + DependencyIndexes: file_aggregatingapis_wiki_v1_wiki_proto_depIdxs, + MessageInfos: file_aggregatingapis_wiki_v1_wiki_proto_msgTypes, }.Build() - File_consultingapis_wiki_v1_wiki_proto = out.File - file_consultingapis_wiki_v1_wiki_proto_rawDesc = nil - file_consultingapis_wiki_v1_wiki_proto_goTypes = nil - file_consultingapis_wiki_v1_wiki_proto_depIdxs = nil + File_aggregatingapis_wiki_v1_wiki_proto = out.File + file_aggregatingapis_wiki_v1_wiki_proto_rawDesc = nil + file_aggregatingapis_wiki_v1_wiki_proto_goTypes = nil + file_aggregatingapis_wiki_v1_wiki_proto_depIdxs = nil } diff --git a/consultingapis/wiki/v1/wiki.pb.gw.go b/consultingapis/wiki/v1/wiki.pb.gw.go index 22ec5ab..0bbe4ae 100644 --- a/consultingapis/wiki/v1/wiki.pb.gw.go +++ b/consultingapis/wiki/v1/wiki.pb.gw.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: consultingapis/wiki/v1/wiki.proto +// source: aggregatingapis/wiki/v1/wiki.proto /* Package wikiv1 is a reverse proxy. @@ -36,7 +36,7 @@ var ( ) func request_WikiService_GetDocContent_0(ctx context.Context, marshaler runtime.Marshaler, client WikiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DocTokenReq + var protoReq GetDocContentRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -52,7 +52,7 @@ func request_WikiService_GetDocContent_0(ctx context.Context, marshaler runtime. } func local_request_WikiService_GetDocContent_0(ctx context.Context, marshaler runtime.Marshaler, server WikiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq DocTokenReq + var protoReq GetDocContentRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -72,7 +72,7 @@ var ( ) func request_WikiService_GetNodeList_0(ctx context.Context, marshaler runtime.Marshaler, client WikiServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq NodeReq + var protoReq GetNodeListRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -88,7 +88,7 @@ func request_WikiService_GetNodeList_0(ctx context.Context, marshaler runtime.Ma } func local_request_WikiService_GetNodeList_0(ctx context.Context, marshaler runtime.Marshaler, server WikiServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { - var protoReq NodeReq + var protoReq GetNodeListRequest var metadata runtime.ServerMetadata if err := req.ParseForm(); err != nil { @@ -116,7 +116,7 @@ func RegisterWikiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -140,7 +140,7 @@ func RegisterWikiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -203,7 +203,7 @@ func RegisterWikiServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -224,7 +224,7 @@ func RegisterWikiServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return diff --git a/aggregatingapis/wiki/v1/wiki.proto b/consultingapis/wiki/v1/wiki.proto similarity index 93% rename from aggregatingapis/wiki/v1/wiki.proto rename to consultingapis/wiki/v1/wiki.proto index b6f525c..5c37635 100644 --- a/aggregatingapis/wiki/v1/wiki.proto +++ b/consultingapis/wiki/v1/wiki.proto @@ -1,10 +1,10 @@ syntax = "proto3"; -package aggregatingapis.wiki.v1; +package consultingapis.wiki.v1; import "google/api/annotations.proto"; -option go_package = "./aggregatingapis/wiki/v1"; +option go_package = "./consultingapis/wiki/v1"; service WikiService { rpc GetDocContent(GetDocContentRequest) returns (GetDocContentResponse) { diff --git a/consultingapis/wiki/v1/wiki_grpc.pb.go b/consultingapis/wiki/v1/wiki_grpc.pb.go index feaf34f..f7242e7 100644 --- a/consultingapis/wiki/v1/wiki_grpc.pb.go +++ b/consultingapis/wiki/v1/wiki_grpc.pb.go @@ -2,7 +2,7 @@ // versions: // - protoc-gen-go-grpc v1.2.0 // - protoc (unknown) -// source: consultingapis/wiki/v1/wiki.proto +// source: aggregatingapis/wiki/v1/wiki.proto package wikiv1 @@ -22,8 +22,8 @@ const _ = grpc.SupportPackageIsVersion7 // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://pkg.go.dev/google.golang.org/grpc/?tab=doc#ClientConn.NewStream. type WikiServiceClient interface { - GetDocContent(ctx context.Context, in *DocTokenReq, opts ...grpc.CallOption) (*DocTokenResp, error) - GetNodeList(ctx context.Context, in *NodeReq, opts ...grpc.CallOption) (*NodeResp, error) + GetDocContent(ctx context.Context, in *GetDocContentRequest, opts ...grpc.CallOption) (*GetDocContentResponse, error) + GetNodeList(ctx context.Context, in *GetNodeListRequest, opts ...grpc.CallOption) (*GetNodeListResponse, error) } type wikiServiceClient struct { @@ -34,18 +34,18 @@ func NewWikiServiceClient(cc grpc.ClientConnInterface) WikiServiceClient { return &wikiServiceClient{cc} } -func (c *wikiServiceClient) GetDocContent(ctx context.Context, in *DocTokenReq, opts ...grpc.CallOption) (*DocTokenResp, error) { - out := new(DocTokenResp) - err := c.cc.Invoke(ctx, "/consultingapis.wiki.v1.WikiService/GetDocContent", in, out, opts...) +func (c *wikiServiceClient) GetDocContent(ctx context.Context, in *GetDocContentRequest, opts ...grpc.CallOption) (*GetDocContentResponse, error) { + out := new(GetDocContentResponse) + err := c.cc.Invoke(ctx, "/aggregatingapis.wiki.v1.WikiService/GetDocContent", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *wikiServiceClient) GetNodeList(ctx context.Context, in *NodeReq, opts ...grpc.CallOption) (*NodeResp, error) { - out := new(NodeResp) - err := c.cc.Invoke(ctx, "/consultingapis.wiki.v1.WikiService/GetNodeList", in, out, opts...) +func (c *wikiServiceClient) GetNodeList(ctx context.Context, in *GetNodeListRequest, opts ...grpc.CallOption) (*GetNodeListResponse, error) { + out := new(GetNodeListResponse) + err := c.cc.Invoke(ctx, "/aggregatingapis.wiki.v1.WikiService/GetNodeList", in, out, opts...) if err != nil { return nil, err } @@ -53,23 +53,25 @@ func (c *wikiServiceClient) GetNodeList(ctx context.Context, in *NodeReq, opts . } // WikiServiceServer is the server API for WikiService service. -// All implementations should embed UnimplementedWikiServiceServer +// All implementations must embed UnimplementedWikiServiceServer // for forward compatibility type WikiServiceServer interface { - GetDocContent(context.Context, *DocTokenReq) (*DocTokenResp, error) - GetNodeList(context.Context, *NodeReq) (*NodeResp, error) + GetDocContent(context.Context, *GetDocContentRequest) (*GetDocContentResponse, error) + GetNodeList(context.Context, *GetNodeListRequest) (*GetNodeListResponse, error) + mustEmbedUnimplementedWikiServiceServer() } -// UnimplementedWikiServiceServer should be embedded to have forward compatible implementations. +// UnimplementedWikiServiceServer must be embedded to have forward compatible implementations. type UnimplementedWikiServiceServer struct { } -func (UnimplementedWikiServiceServer) GetDocContent(context.Context, *DocTokenReq) (*DocTokenResp, error) { +func (UnimplementedWikiServiceServer) GetDocContent(context.Context, *GetDocContentRequest) (*GetDocContentResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetDocContent not implemented") } -func (UnimplementedWikiServiceServer) GetNodeList(context.Context, *NodeReq) (*NodeResp, error) { +func (UnimplementedWikiServiceServer) GetNodeList(context.Context, *GetNodeListRequest) (*GetNodeListResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetNodeList not implemented") } +func (UnimplementedWikiServiceServer) mustEmbedUnimplementedWikiServiceServer() {} // UnsafeWikiServiceServer may be embedded to opt out of forward compatibility for this service. // Use of this interface is not recommended, as added methods to WikiServiceServer will @@ -83,7 +85,7 @@ func RegisterWikiServiceServer(s grpc.ServiceRegistrar, srv WikiServiceServer) { } func _WikiService_GetDocContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DocTokenReq) + in := new(GetDocContentRequest) if err := dec(in); err != nil { return nil, err } @@ -92,16 +94,16 @@ func _WikiService_GetDocContent_Handler(srv interface{}, ctx context.Context, de } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/consultingapis.wiki.v1.WikiService/GetDocContent", + FullMethod: "/aggregatingapis.wiki.v1.WikiService/GetDocContent", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WikiServiceServer).GetDocContent(ctx, req.(*DocTokenReq)) + return srv.(WikiServiceServer).GetDocContent(ctx, req.(*GetDocContentRequest)) } return interceptor(ctx, in, info, handler) } func _WikiService_GetNodeList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(NodeReq) + in := new(GetNodeListRequest) if err := dec(in); err != nil { return nil, err } @@ -110,10 +112,10 @@ func _WikiService_GetNodeList_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/consultingapis.wiki.v1.WikiService/GetNodeList", + FullMethod: "/aggregatingapis.wiki.v1.WikiService/GetNodeList", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(WikiServiceServer).GetNodeList(ctx, req.(*NodeReq)) + return srv.(WikiServiceServer).GetNodeList(ctx, req.(*GetNodeListRequest)) } return interceptor(ctx, in, info, handler) } @@ -122,7 +124,7 @@ func _WikiService_GetNodeList_Handler(srv interface{}, ctx context.Context, dec // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var WikiService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "consultingapis.wiki.v1.WikiService", + ServiceName: "aggregatingapis.wiki.v1.WikiService", HandlerType: (*WikiServiceServer)(nil), Methods: []grpc.MethodDesc{ { @@ -135,5 +137,5 @@ var WikiService_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "consultingapis/wiki/v1/wiki.proto", + Metadata: "aggregatingapis/wiki/v1/wiki.proto", } From f98b1cf4e05288a5c6567f66e0e940466e651326 Mon Sep 17 00:00:00 2001 From: FDKevin Date: Wed, 29 Jun 2022 20:06:52 +0800 Subject: [PATCH 21/25] update ci --- .github/workflows/buf.yml | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/.github/workflows/buf.yml b/.github/workflows/buf.yml index 1dc77ab..41fac49 100644 --- a/.github/workflows/buf.yml +++ b/.github/workflows/buf.yml @@ -51,11 +51,8 @@ jobs: - name: check if files up to date run: | if [[ `git status --porcelain` ]]; then - git config --global user.name 'FDKevin' - git config --global user.email 'fdkevinzero@gmail.com' - git add -A - git commit -m "ci(gen): buf generate up to date" - git push + echo "buf gen code not up to date" + exit 1 fi - name: warming go proxy From 0aa39af0e5e9bfbaed7d763902a2e484b8e1ff07 Mon Sep 17 00:00:00 2001 From: FDKevin Date: Wed, 29 Jun 2022 20:08:09 +0800 Subject: [PATCH 22/25] remove unused code --- auth/token.go | 28 ------ auth/token.pb.go | 133 --------------------------- auth/token.proto | 10 -- docs/swagger/auth/token.swagger.json | 43 --------- 4 files changed, 214 deletions(-) delete mode 100644 auth/token.go delete mode 100644 auth/token.pb.go delete mode 100644 auth/token.proto delete mode 100644 docs/swagger/auth/token.swagger.json diff --git a/auth/token.go b/auth/token.go deleted file mode 100644 index b2e3c09..0000000 --- a/auth/token.go +++ /dev/null @@ -1,28 +0,0 @@ -package auth - -import ( - "encoding/json" - "github.com/hduhelp/api_open_sdk/request" -) - -type TokenValid struct { - AccessToken string `json:"accessToken"` - ClientID string `json:"clientID"` - ExpiredTime int `json:"expiredTime"` - GrantType string `json:"grantType"` - IsValid int `json:"IsValid"` - StaffID string `json:"staffId"` - TokenType int `json:"tokenType"` - Uid int `json:"uid"` -} - -func (v *TokenValid) Unmarshal(i []byte) error { - return json.Unmarshal(i, &v) -} - -func GetTokenValidDetail(token string) *TokenValid { - data := new(TokenValid) - request.New().SetToken(token). - EndData(data) - return data -} diff --git a/auth/token.pb.go b/auth/token.pb.go deleted file mode 100644 index 997d233..0000000 --- a/auth/token.pb.go +++ /dev/null @@ -1,133 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc (unknown) -// source: auth/token.proto - -package auth - -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) - -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) - -type TokenType int32 - -const ( - TokenType_Origin TokenType = 0 - TokenType_OAuth TokenType = 1 -) - -// Enum value maps for TokenType. -var ( - TokenType_name = map[int32]string{ - 0: "Origin", - 1: "OAuth", - } - TokenType_value = map[string]int32{ - "Origin": 0, - "OAuth": 1, - } -) - -func (x TokenType) Enum() *TokenType { - p := new(TokenType) - *p = x - return p -} - -func (x TokenType) String() string { - return protoimpl.X.EnumStringOf(x.Descriptor(), protoreflect.EnumNumber(x)) -} - -func (TokenType) Descriptor() protoreflect.EnumDescriptor { - return file_auth_token_proto_enumTypes[0].Descriptor() -} - -func (TokenType) Type() protoreflect.EnumType { - return &file_auth_token_proto_enumTypes[0] -} - -func (x TokenType) Number() protoreflect.EnumNumber { - return protoreflect.EnumNumber(x) -} - -// Deprecated: Use TokenType.Descriptor instead. -func (TokenType) EnumDescriptor() ([]byte, []int) { - return file_auth_token_proto_rawDescGZIP(), []int{0} -} - -var File_auth_token_proto protoreflect.FileDescriptor - -var file_auth_token_proto_rawDesc = []byte{ - 0x0a, 0x10, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x04, 0x61, 0x75, 0x74, 0x68, 0x2a, 0x22, 0x0a, 0x09, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x0a, 0x0a, 0x06, 0x4f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x10, - 0x00, 0x12, 0x09, 0x0a, 0x05, 0x4f, 0x41, 0x75, 0x74, 0x68, 0x10, 0x01, 0x42, 0x6c, 0x0a, 0x08, - 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x75, 0x74, 0x68, 0x42, 0x0a, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x50, - 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x24, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, - 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, - 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x75, 0x74, 0x68, 0xa2, 0x02, 0x03, 0x41, - 0x58, 0x58, 0xaa, 0x02, 0x04, 0x41, 0x75, 0x74, 0x68, 0xca, 0x02, 0x04, 0x41, 0x75, 0x74, 0x68, - 0xe2, 0x02, 0x10, 0x41, 0x75, 0x74, 0x68, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, - 0x61, 0x74, 0x61, 0xea, 0x02, 0x04, 0x41, 0x75, 0x74, 0x68, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, -} - -var ( - file_auth_token_proto_rawDescOnce sync.Once - file_auth_token_proto_rawDescData = file_auth_token_proto_rawDesc -) - -func file_auth_token_proto_rawDescGZIP() []byte { - file_auth_token_proto_rawDescOnce.Do(func() { - file_auth_token_proto_rawDescData = protoimpl.X.CompressGZIP(file_auth_token_proto_rawDescData) - }) - return file_auth_token_proto_rawDescData -} - -var file_auth_token_proto_enumTypes = make([]protoimpl.EnumInfo, 1) -var file_auth_token_proto_goTypes = []interface{}{ - (TokenType)(0), // 0: auth.TokenType -} -var file_auth_token_proto_depIdxs = []int32{ - 0, // [0:0] is the sub-list for method output_type - 0, // [0:0] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_auth_token_proto_init() } -func file_auth_token_proto_init() { - if File_auth_token_proto != nil { - return - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_auth_token_proto_rawDesc, - NumEnums: 1, - NumMessages: 0, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_auth_token_proto_goTypes, - DependencyIndexes: file_auth_token_proto_depIdxs, - EnumInfos: file_auth_token_proto_enumTypes, - }.Build() - File_auth_token_proto = out.File - file_auth_token_proto_rawDesc = nil - file_auth_token_proto_goTypes = nil - file_auth_token_proto_depIdxs = nil -} diff --git a/auth/token.proto b/auth/token.proto deleted file mode 100644 index 214341d..0000000 --- a/auth/token.proto +++ /dev/null @@ -1,10 +0,0 @@ -syntax = "proto3"; - -package auth; - -option go_package = "./auth"; - -enum TokenType { - Origin = 0; - OAuth = 1; -} \ No newline at end of file diff --git a/docs/swagger/auth/token.swagger.json b/docs/swagger/auth/token.swagger.json deleted file mode 100644 index 553df3e..0000000 --- a/docs/swagger/auth/token.swagger.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "swagger": "2.0", - "info": { - "title": "auth/token.proto", - "version": "version not set" - }, - "consumes": [ - "application/json" - ], - "produces": [ - "application/json" - ], - "paths": {}, - "definitions": { - "protobufAny": { - "type": "object", - "properties": { - "@type": { - "type": "string" - } - }, - "additionalProperties": {} - }, - "rpcStatus": { - "type": "object", - "properties": { - "code": { - "type": "integer", - "format": "int32" - }, - "message": { - "type": "string" - }, - "details": { - "type": "array", - "items": { - "$ref": "#/definitions/protobufAny" - } - } - } - } - } -} From 1509e4341f91e3902ae7f5dc3f7cf69b65c9668b Mon Sep 17 00:00:00 2001 From: FDKevin Date: Wed, 29 Jun 2022 20:08:57 +0800 Subject: [PATCH 23/25] buf gen --- .../infostream/v1/infostream.pb.go | 546 +++++++-------- aggregatingapis/time/v1/time.pb.go | 130 ++-- aggregatingapis/time/v1/time.pb.gw.go | 4 +- aggregatingapis/time/v1/time_grpc.pb.go | 6 +- consultingapis/faq/v1/faq.pb.go | 660 +++++++++--------- consultingapis/faq/v1/faq.pb.gw.go | 26 +- consultingapis/faq/v1/faq_grpc.pb.go | 30 +- consultingapis/wiki/v1/wiki.pb.go | 303 ++++---- consultingapis/wiki/v1/wiki.pb.gw.go | 10 +- consultingapis/wiki/v1/wiki_grpc.pb.go | 14 +- .../infostream/v1/infostream.swagger.json | 200 +++--- .../consultingapis/faq/v1/faq.swagger.json | 120 ++-- .../consultingapis/wiki/v1/wiki.swagger.json | 44 +- 13 files changed, 1024 insertions(+), 1069 deletions(-) diff --git a/aggregatingapis/infostream/v1/infostream.pb.go b/aggregatingapis/infostream/v1/infostream.pb.go index 8d36c41..b978de1 100644 --- a/aggregatingapis/infostream/v1/infostream.pb.go +++ b/aggregatingapis/infostream/v1/infostream.pb.go @@ -1293,44 +1293,6 @@ func (x *ElectricData) GetRoomName() string { return "" } -type SettingsResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *SettingsResp) Reset() { - *x = SettingsResp{} - if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SettingsResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SettingsResp) ProtoMessage() {} - -func (x *SettingsResp) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SettingsResp.ProtoReflect.Descriptor instead. -func (*SettingsResp) Descriptor() ([]byte, []int) { - return file_aggregatingapis_infostream_v1_infostream_proto_rawDescGZIP(), []int{15} -} - type GetInfostreamResponse_Data struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1343,13 +1305,12 @@ type GetInfostreamResponse_Data struct { Sunrun *SunRunResp `protobuf:"bytes,5,opt,name=sunrun,proto3" json:"sunrun,omitempty"` Card *CardResp `protobuf:"bytes,6,opt,name=card,proto3" json:"card,omitempty"` Electric *ElectricResp `protobuf:"bytes,7,opt,name=electric,proto3" json:"electric,omitempty"` - Settings *SettingsResp `protobuf:"bytes,8,opt,name=settings,proto3" json:"settings,omitempty"` } func (x *GetInfostreamResponse_Data) Reset() { *x = GetInfostreamResponse_Data{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[16] + mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1362,7 +1323,7 @@ func (x *GetInfostreamResponse_Data) String() string { func (*GetInfostreamResponse_Data) ProtoMessage() {} func (x *GetInfostreamResponse_Data) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[16] + mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1427,13 +1388,6 @@ func (x *GetInfostreamResponse_Data) GetElectric() *ElectricResp { return nil } -func (x *GetInfostreamResponse_Data) GetSettings() *SettingsResp { - if x != nil { - return x.Settings - } - return nil -} - var File_aggregatingapis_infostream_v1_infostream_proto protoreflect.FileDescriptor var file_aggregatingapis_infostream_v1_infostream_proto_rawDesc = []byte{ @@ -1447,7 +1401,7 @@ var file_aggregatingapis_infostream_v1_infostream_proto_rawDesc = []byte{ 0x14, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, - 0xb9, 0x05, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0xf0, 0x04, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, @@ -1456,7 +1410,7 @@ var file_aggregatingapis_infostream_v1_infostream_proto_rawDesc = []byte{ 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x1a, 0xa8, 0x04, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x48, 0x0a, 0x07, 0x77, 0x65, 0x61, + 0x1a, 0xdf, 0x03, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x48, 0x0a, 0x07, 0x77, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2e, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x61, 0x74, 0x68, @@ -1464,234 +1418,228 @@ var file_aggregatingapis_infostream_v1_infostream_proto_rawDesc = []byte{ 0x68, 0x65, 0x72, 0x12, 0x47, 0x0a, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, + 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x65, 0x78, 0x61, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x52, + 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x3e, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, - 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, + 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x41, 0x0a, 0x06, 0x73, 0x75, 0x6e, 0x72, 0x75, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x06, 0x73, 0x75, 0x6e, 0x72, 0x75, 0x6e, 0x12, 0x3b, 0x0a, 0x04, 0x63, 0x61, 0x72, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x63, 0x61, 0x72, 0x64, 0x52, + 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x52, 0x04, 0x63, 0x61, 0x72, 0x64, 0x12, 0x47, 0x0a, 0x08, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, - 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x6c, 0x65, 0x63, + 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, - 0x69, 0x63, 0x12, 0x47, 0x0a, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x52, 0x08, 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x22, 0x6f, 0x0a, 0x0f, 0x57, - 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, + 0x69, 0x63, 0x22, 0x6f, 0x0a, 0x0f, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0xf7, 0x02, 0x0a, 0x0b, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, + 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x61, 0x71, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x03, 0x61, 0x71, 0x69, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6b, 0x79, + 0x63, 0x6f, 0x6e, 0x4e, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6b, + 0x79, 0x63, 0x6f, 0x6e, 0x4e, 0x6f, 0x77, 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x12, + 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, + 0x69, 0x6c, 0x6c, 0x52, 0x61, 0x69, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, + 0x69, 0x6c, 0x6c, 0x52, 0x61, 0x69, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x61, 0x69, 0x6e, 0x43, + 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x52, + 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, + 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x52, + 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x12, + 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x69, + 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x77, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, + 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x77, 0x12, + 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb8, 0x01, + 0x0a, 0x0c, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3e, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x57, 0x65, 0x61, 0x74, 0x68, - 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf7, 0x02, 0x0a, - 0x0b, 0x57, 0x65, 0x61, 0x74, 0x68, 0x65, 0x72, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, - 0x61, 0x71, 0x69, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x61, 0x71, 0x69, 0x12, 0x12, - 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, - 0x73, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x6b, 0x79, 0x63, 0x6f, 0x6e, 0x4e, 0x6f, 0x77, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x6b, 0x79, 0x63, 0x6f, 0x6e, 0x4e, 0x6f, 0x77, - 0x12, 0x16, 0x0a, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, - 0x52, 0x06, 0x69, 0x73, 0x52, 0x61, 0x69, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x6c, - 0x53, 0x74, 0x6f, 0x70, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x6c, 0x6c, - 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x52, 0x61, 0x69, 0x6e, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x77, 0x69, 0x6c, 0x6c, 0x52, 0x61, 0x69, 0x6e, - 0x12, 0x22, 0x0a, 0x0c, 0x52, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74, 0x69, 0x6e, 0x75, 0x65, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x52, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6e, 0x74, - 0x69, 0x6e, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x52, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x52, 0x61, 0x69, 0x6e, 0x43, 0x6f, 0x6d, 0x65, - 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, - 0x61, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x61, 0x78, 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x69, 0x6e, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x02, - 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4d, 0x69, 0x6e, - 0x12, 0x26, 0x0a, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, - 0x6f, 0x77, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x02, 0x52, 0x0e, 0x74, 0x65, 0x6d, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x75, 0x72, 0x65, 0x4e, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x22, 0xb8, 0x01, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x18, 0x02, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, 0x47, 0x0a, 0x08, 0x74, 0x6f, 0x6d, 0x6f, - 0x72, 0x72, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x68, 0x65, 0x64, - 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, 0x74, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, - 0x77, 0x22, 0xfe, 0x01, 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x53, - 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, - 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, - 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, - 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x65, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, + 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x41, 0x0a, 0x05, + 0x74, 0x6f, 0x64, 0x61, 0x79, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x05, 0x74, 0x6f, 0x64, 0x61, 0x79, 0x12, + 0x47, 0x0a, 0x08, 0x74, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x53, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x08, + 0x74, 0x6f, 0x6d, 0x6f, 0x72, 0x72, 0x6f, 0x77, 0x22, 0xfe, 0x01, 0x0a, 0x0c, 0x53, 0x63, 0x68, + 0x65, 0x64, 0x75, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x0c, 0x73, 0x74, 0x61, 0x72, 0x74, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, + 0x0a, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x53, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, + 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, + 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, + 0x6f, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, + 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x65, 0x0a, 0x08, 0x45, 0x78, 0x61, + 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, + 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, + 0x31, 0x2e, 0x45, 0x78, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x82, 0x02, 0x0a, 0x08, 0x45, 0x78, 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, + 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x63, + 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, + 0x72, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, + 0x65, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x61, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0x67, 0x0a, 0x09, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, + 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, + 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, + 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcb, + 0x03, 0x0a, 0x09, 0x53, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, + 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, + 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, + 0x0a, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, + 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, + 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, + 0x69, 0x74, 0x75, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, + 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, + 0x41, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0x69, 0x0a, 0x0a, + 0x53, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, + 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, + 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf6, 0x03, 0x0a, 0x0a, 0x53, 0x75, 0x6e, 0x52, + 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x6d, 0x4d, 0x69, 0x6c, 0x65, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x61, 0x6d, 0x4d, 0x69, 0x6c, + 0x65, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0d, + 0x64, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, + 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x64, 0x61, 0x79, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, + 0x6e, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, + 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x70, 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x09, 0x70, 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x70, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x70, + 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x0b, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, + 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x70, 0x65, + 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x65, 0x61, + 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, + 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, + 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x22, 0x3c, 0x0a, 0x08, 0x43, 0x61, 0x72, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, + 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6d, + 0x0a, 0x0c, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3b, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x61, 0x67, 0x67, + 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, - 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x78, 0x61, 0x6d, 0x44, - 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x82, 0x02, 0x0a, 0x08, 0x65, 0x78, - 0x61, 0x6d, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, - 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, - 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, - 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x59, 0x65, 0x61, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, 0x61, 0x74, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, - 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0x67, - 0x0a, 0x09, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, - 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, - 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, - 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcb, 0x03, 0x0a, 0x09, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, - 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, - 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, - 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, - 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, - 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, - 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, - 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, - 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, - 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, 0x65, - 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0x69, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, 0x6c, - 0x65, 0x12, 0x3d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, - 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x22, 0xf6, 0x03, 0x0a, 0x0a, 0x73, 0x75, 0x6e, 0x52, 0x75, 0x6e, 0x44, 0x61, 0x74, 0x61, 0x12, - 0x1c, 0x0a, 0x09, 0x61, 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x09, 0x61, 0x6d, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x61, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, - 0x61, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x64, 0x61, 0x74, 0x61, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x61, - 0x74, 0x61, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x61, 0x74, 0x65, 0x12, - 0x12, 0x0a, 0x04, 0x64, 0x61, 0x79, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x64, - 0x61, 0x79, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x69, 0x6d, 0x65, - 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x66, 0x69, 0x6e, 0x61, 0x6c, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x6d, 0x4d, 0x69, 0x6c, - 0x65, 0x61, 0x67, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x70, 0x6d, 0x4d, 0x69, - 0x6c, 0x65, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x70, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x07, 0x70, 0x6d, 0x53, 0x70, 0x65, 0x65, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x72, 0x61, 0x6e, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x72, - 0x61, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x73, 0x70, 0x65, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, - 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, - 0x24, 0x0a, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x69, 0x6c, 0x65, 0x61, 0x67, 0x65, 0x73, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x4d, 0x69, 0x6c, - 0x65, 0x61, 0x67, 0x65, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x76, 0x61, 0x6c, 0x69, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x12, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x22, 0x3c, 0x0a, 0x08, 0x63, 0x61, 0x72, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, 0x62, - 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, 0x61, - 0x62, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x02, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6d, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, 0x61, 0x69, 0x6c, - 0x61, 0x62, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x61, 0x76, 0x61, 0x69, - 0x6c, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, - 0x2e, 0x76, 0x31, 0x2e, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, - 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x0c, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, - 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, 0x03, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, - 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x0e, 0x0a, 0x0c, - 0x73, 0x65, 0x74, 0x74, 0x69, 0x6e, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x32, 0xa8, 0x01, 0x0a, - 0x11, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x12, 0x33, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, + 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x45, 0x6c, 0x65, 0x63, 0x74, + 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, + 0x0c, 0x45, 0x6c, 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x44, 0x61, 0x74, 0x61, 0x12, 0x10, 0x0a, + 0x03, 0x66, 0x65, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x66, 0x65, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x72, 0x6f, 0x6f, 0x6d, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, + 0x61, 0x6d, 0x65, 0x32, 0xa8, 0x01, 0x0a, 0x11, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, + 0x61, 0x6d, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x92, 0x01, 0x0a, 0x0d, 0x47, 0x65, + 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x12, 0x33, 0x2e, 0x61, 0x67, + 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, + 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, + 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x34, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, + 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x42, 0x96, + 0x02, 0x0a, 0x21, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, - 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, - 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x34, 0x2e, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x69, 0x6e, 0x66, 0x6f, - 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x49, 0x6e, 0x66, - 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, - 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x42, 0x96, 0x02, 0x0a, 0x21, 0x63, 0x6f, 0x6d, 0x2e, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x49, - 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, - 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, - 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, - 0x6b, 0x2f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x3b, - 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, - 0x49, 0x58, 0xaa, 0x02, 0x1d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, - 0x56, 0x31, 0xca, 0x02, 0x1d, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5c, - 0x56, 0x31, 0xe2, 0x02, 0x29, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5c, - 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, - 0x1f, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x3a, 0x3a, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x3a, 0x3a, 0x56, 0x31, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x6d, 0x2e, 0x76, 0x31, 0x42, 0x0f, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, + 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x4a, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, + 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, + 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x2f, 0x76, 0x31, 0x3b, 0x69, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, 0x65, 0x61, + 0x6d, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x49, 0x58, 0xaa, 0x02, 0x1d, 0x41, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x49, 0x6e, 0x66, 0x6f, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x1d, 0x41, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, 0x66, 0x6f, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x29, 0x41, 0x67, 0x67, 0x72, + 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x49, 0x6e, 0x66, 0x6f, + 0x73, 0x74, 0x72, 0x65, 0x61, 0x6d, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, + 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x1f, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x49, 0x6e, 0x66, 0x6f, 0x73, 0x74, 0x72, + 0x65, 0x61, 0x6d, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1706,50 +1654,48 @@ func file_aggregatingapis_infostream_v1_infostream_proto_rawDescGZIP() []byte { return file_aggregatingapis_infostream_v1_infostream_proto_rawDescData } -var file_aggregatingapis_infostream_v1_infostream_proto_msgTypes = make([]protoimpl.MessageInfo, 17) +var file_aggregatingapis_infostream_v1_infostream_proto_msgTypes = make([]protoimpl.MessageInfo, 16) var file_aggregatingapis_infostream_v1_infostream_proto_goTypes = []interface{}{ (*GetInfostreamRequest)(nil), // 0: aggregatingapis.infostream.v1.GetInfostreamRequest (*GetInfostreamResponse)(nil), // 1: aggregatingapis.infostream.v1.GetInfostreamResponse (*WeatherResponse)(nil), // 2: aggregatingapis.infostream.v1.WeatherResponse (*WeatherData)(nil), // 3: aggregatingapis.infostream.v1.WeatherData - (*ScheduleResp)(nil), // 4: aggregatingapis.infostream.v1.scheduleResp - (*ScheduleData)(nil), // 5: aggregatingapis.infostream.v1.scheduleData - (*ExamResp)(nil), // 6: aggregatingapis.infostream.v1.examResp - (*ExamData)(nil), // 7: aggregatingapis.infostream.v1.examData - (*ScoreResp)(nil), // 8: aggregatingapis.infostream.v1.scoreResp - (*ScoreData)(nil), // 9: aggregatingapis.infostream.v1.scoreData - (*SunRunResp)(nil), // 10: aggregatingapis.infostream.v1.sunRunResp - (*SunRunData)(nil), // 11: aggregatingapis.infostream.v1.sunRunData - (*CardResp)(nil), // 12: aggregatingapis.infostream.v1.cardResp - (*ElectricResp)(nil), // 13: aggregatingapis.infostream.v1.electricResp - (*ElectricData)(nil), // 14: aggregatingapis.infostream.v1.electricData - (*SettingsResp)(nil), // 15: aggregatingapis.infostream.v1.settingsResp - (*GetInfostreamResponse_Data)(nil), // 16: aggregatingapis.infostream.v1.GetInfostreamResponse.Data + (*ScheduleResp)(nil), // 4: aggregatingapis.infostream.v1.ScheduleResp + (*ScheduleData)(nil), // 5: aggregatingapis.infostream.v1.ScheduleData + (*ExamResp)(nil), // 6: aggregatingapis.infostream.v1.ExamResp + (*ExamData)(nil), // 7: aggregatingapis.infostream.v1.ExamData + (*ScoreResp)(nil), // 8: aggregatingapis.infostream.v1.ScoreResp + (*ScoreData)(nil), // 9: aggregatingapis.infostream.v1.ScoreData + (*SunRunResp)(nil), // 10: aggregatingapis.infostream.v1.SunRunResp + (*SunRunData)(nil), // 11: aggregatingapis.infostream.v1.SunRunData + (*CardResp)(nil), // 12: aggregatingapis.infostream.v1.CardResp + (*ElectricResp)(nil), // 13: aggregatingapis.infostream.v1.ElectricResp + (*ElectricData)(nil), // 14: aggregatingapis.infostream.v1.ElectricData + (*GetInfostreamResponse_Data)(nil), // 15: aggregatingapis.infostream.v1.GetInfostreamResponse.Data } var file_aggregatingapis_infostream_v1_infostream_proto_depIdxs = []int32{ - 16, // 0: aggregatingapis.infostream.v1.GetInfostreamResponse.data:type_name -> aggregatingapis.infostream.v1.GetInfostreamResponse.Data + 15, // 0: aggregatingapis.infostream.v1.GetInfostreamResponse.data:type_name -> aggregatingapis.infostream.v1.GetInfostreamResponse.Data 3, // 1: aggregatingapis.infostream.v1.WeatherResponse.data:type_name -> aggregatingapis.infostream.v1.WeatherData - 5, // 2: aggregatingapis.infostream.v1.scheduleResp.today:type_name -> aggregatingapis.infostream.v1.scheduleData - 5, // 3: aggregatingapis.infostream.v1.scheduleResp.tomorrow:type_name -> aggregatingapis.infostream.v1.scheduleData - 7, // 4: aggregatingapis.infostream.v1.examResp.data:type_name -> aggregatingapis.infostream.v1.examData - 9, // 5: aggregatingapis.infostream.v1.scoreResp.data:type_name -> aggregatingapis.infostream.v1.scoreData - 11, // 6: aggregatingapis.infostream.v1.sunRunResp.data:type_name -> aggregatingapis.infostream.v1.sunRunData - 14, // 7: aggregatingapis.infostream.v1.electricResp.data:type_name -> aggregatingapis.infostream.v1.electricData + 5, // 2: aggregatingapis.infostream.v1.ScheduleResp.today:type_name -> aggregatingapis.infostream.v1.ScheduleData + 5, // 3: aggregatingapis.infostream.v1.ScheduleResp.tomorrow:type_name -> aggregatingapis.infostream.v1.ScheduleData + 7, // 4: aggregatingapis.infostream.v1.ExamResp.data:type_name -> aggregatingapis.infostream.v1.ExamData + 9, // 5: aggregatingapis.infostream.v1.ScoreResp.data:type_name -> aggregatingapis.infostream.v1.ScoreData + 11, // 6: aggregatingapis.infostream.v1.SunRunResp.data:type_name -> aggregatingapis.infostream.v1.SunRunData + 14, // 7: aggregatingapis.infostream.v1.ElectricResp.data:type_name -> aggregatingapis.infostream.v1.ElectricData 2, // 8: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.weather:type_name -> aggregatingapis.infostream.v1.WeatherResponse - 4, // 9: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.schedule:type_name -> aggregatingapis.infostream.v1.scheduleResp - 6, // 10: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.exam:type_name -> aggregatingapis.infostream.v1.examResp - 8, // 11: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.score:type_name -> aggregatingapis.infostream.v1.scoreResp - 10, // 12: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.sunrun:type_name -> aggregatingapis.infostream.v1.sunRunResp - 12, // 13: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.card:type_name -> aggregatingapis.infostream.v1.cardResp - 13, // 14: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.electric:type_name -> aggregatingapis.infostream.v1.electricResp - 15, // 15: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.settings:type_name -> aggregatingapis.infostream.v1.settingsResp - 0, // 16: aggregatingapis.infostream.v1.InfostreamService.GetInfostream:input_type -> aggregatingapis.infostream.v1.GetInfostreamRequest - 1, // 17: aggregatingapis.infostream.v1.InfostreamService.GetInfostream:output_type -> aggregatingapis.infostream.v1.GetInfostreamResponse - 17, // [17:18] is the sub-list for method output_type - 16, // [16:17] is the sub-list for method input_type - 16, // [16:16] is the sub-list for extension type_name - 16, // [16:16] is the sub-list for extension extendee - 0, // [0:16] is the sub-list for field type_name + 4, // 9: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.schedule:type_name -> aggregatingapis.infostream.v1.ScheduleResp + 6, // 10: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.exam:type_name -> aggregatingapis.infostream.v1.ExamResp + 8, // 11: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.score:type_name -> aggregatingapis.infostream.v1.ScoreResp + 10, // 12: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.sunrun:type_name -> aggregatingapis.infostream.v1.SunRunResp + 12, // 13: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.card:type_name -> aggregatingapis.infostream.v1.CardResp + 13, // 14: aggregatingapis.infostream.v1.GetInfostreamResponse.Data.electric:type_name -> aggregatingapis.infostream.v1.ElectricResp + 0, // 15: aggregatingapis.infostream.v1.InfostreamService.GetInfostream:input_type -> aggregatingapis.infostream.v1.GetInfostreamRequest + 1, // 16: aggregatingapis.infostream.v1.InfostreamService.GetInfostream:output_type -> aggregatingapis.infostream.v1.GetInfostreamResponse + 16, // [16:17] is the sub-list for method output_type + 15, // [15:16] is the sub-list for method input_type + 15, // [15:15] is the sub-list for extension type_name + 15, // [15:15] is the sub-list for extension extendee + 0, // [0:15] is the sub-list for field type_name } func init() { file_aggregatingapis_infostream_v1_infostream_proto_init() } @@ -1939,18 +1885,6 @@ func file_aggregatingapis_infostream_v1_infostream_proto_init() { } } file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SettingsResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetInfostreamResponse_Data); i { case 0: return &v.state @@ -1969,7 +1903,7 @@ func file_aggregatingapis_infostream_v1_infostream_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_aggregatingapis_infostream_v1_infostream_proto_rawDesc, NumEnums: 0, - NumMessages: 17, + NumMessages: 16, NumExtensions: 0, NumServices: 1, }, diff --git a/aggregatingapis/time/v1/time.pb.go b/aggregatingapis/time/v1/time.pb.go index e9c8d7d..2526e30 100644 --- a/aggregatingapis/time/v1/time.pb.go +++ b/aggregatingapis/time/v1/time.pb.go @@ -233,70 +233,72 @@ var File_aggregatingapis_time_v1_time_proto protoreflect.FileDescriptor var file_aggregatingapis_time_v1_time_proto_rawDesc = []byte{ 0x0a, 0x22, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x13, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, - 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, 0x74, 0x79, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xee, 0x04, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x3d, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x29, - 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x69, 0x6d, - 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, - 0xf3, 0x03, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, 0x18, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x16, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, - 0x19, 0x0a, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, 0x6f, 0x77, 0x12, 0x20, 0x0a, 0x0c, 0x77, 0x65, - 0x65, 0x6b, 0x5f, 0x64, 0x61, 0x79, 0x5f, 0x6e, 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, - 0x52, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, 0x79, 0x4e, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, - 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, - 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, - 0x5f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x12, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x2b, 0x0a, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, - 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x10, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x53, 0x65, 0x6d, 0x65, 0x73, - 0x74, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x65, 0x78, 0x61, 0x6d, 0x5f, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x65, - 0x78, 0x61, 0x6d, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x23, 0x0a, - 0x0d, 0x65, 0x78, 0x61, 0x6d, 0x5f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x78, 0x61, 0x6d, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, - 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, - 0x63, 0x6f, 0x72, 0x65, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x25, - 0x0a, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x6d, - 0x65, 0x73, 0x74, 0x65, 0x72, 0x32, 0x68, 0x0a, 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, - 0x76, 0x69, 0x63, 0x65, 0x12, 0x59, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x24, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, - 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x0a, 0x12, 0x08, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x42, - 0xd2, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x66, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, + 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, + 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1b, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x65, 0x6d, 0x70, + 0x74, 0x79, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0xf2, 0x04, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x6d, 0x73, 0x67, 0x12, 0x41, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x2d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, + 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0xf3, 0x03, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, + 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x38, 0x0a, + 0x18, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x16, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x65, 0x65, 0x6b, 0x5f, + 0x6e, 0x6f, 0x77, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x77, 0x65, 0x65, 0x6b, 0x4e, + 0x6f, 0x77, 0x12, 0x20, 0x0a, 0x0c, 0x77, 0x65, 0x65, 0x6b, 0x5f, 0x64, 0x61, 0x79, 0x5f, 0x6e, + 0x6f, 0x77, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x77, 0x65, 0x65, 0x6b, 0x44, 0x61, + 0x79, 0x4e, 0x6f, 0x77, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, + 0x6d, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x30, 0x0a, 0x14, + 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, + 0x79, 0x65, 0x61, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x12, 0x73, 0x63, 0x68, 0x65, + 0x64, 0x75, 0x6c, 0x65, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x2b, + 0x0a, 0x11, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x5f, 0x73, 0x65, 0x6d, 0x65, 0x73, + 0x74, 0x65, 0x72, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x10, 0x73, 0x63, 0x68, 0x65, 0x64, + 0x75, 0x6c, 0x65, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x65, + 0x78, 0x61, 0x6d, 0x5f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0e, 0x65, 0x78, 0x61, 0x6d, 0x53, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x78, 0x61, 0x6d, 0x5f, 0x73, 0x65, + 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x65, 0x78, + 0x61, 0x6d, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x5f, 0x79, 0x65, 0x61, 0x72, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x5f, + 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, + 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x32, 0x6c, 0x0a, + 0x0b, 0x54, 0x69, 0x6d, 0x65, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5d, 0x0a, 0x07, + 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x10, 0x82, 0xd3, 0xe4, 0x93, 0x02, + 0x0a, 0x12, 0x08, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, 0x31, 0x42, 0xe6, 0x01, 0x0a, 0x1b, + 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x74, 0x69, 0x6d, 0x65, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x54, 0x69, 0x6d, 0x65, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x2f, 0x76, - 0x31, 0x3b, 0x74, 0x69, 0x6d, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x46, 0x54, 0x58, 0xaa, 0x02, - 0x13, 0x46, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x46, 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, - 0x69, 0x73, 0x5c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x46, 0x6c, 0x75, - 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, - 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x15, 0x46, - 0x6c, 0x75, 0x74, 0x74, 0x65, 0x72, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x54, 0x69, 0x6d, 0x65, + 0x31, 0x3b, 0x74, 0x69, 0x6d, 0x65, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x54, 0x58, 0xaa, 0x02, + 0x17, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, 0x41, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x54, 0x69, 0x6d, 0x65, 0x5c, + 0x56, 0x31, 0xe2, 0x02, 0x23, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x5c, 0x54, 0x69, 0x6d, 0x65, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, + 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, 0x41, 0x67, 0x67, 0x72, 0x65, + 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x54, 0x69, 0x6d, 0x65, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } @@ -314,14 +316,14 @@ func file_aggregatingapis_time_v1_time_proto_rawDescGZIP() []byte { var file_aggregatingapis_time_v1_time_proto_msgTypes = make([]protoimpl.MessageInfo, 2) var file_aggregatingapis_time_v1_time_proto_goTypes = []interface{}{ - (*GetTimeResponse)(nil), // 0: flutterapis.time.v1.GetTimeResponse - (*GetTimeResponse_Data)(nil), // 1: flutterapis.time.v1.GetTimeResponse.Data + (*GetTimeResponse)(nil), // 0: aggregatingapis.time.v1.GetTimeResponse + (*GetTimeResponse_Data)(nil), // 1: aggregatingapis.time.v1.GetTimeResponse.Data (*emptypb.Empty)(nil), // 2: google.protobuf.Empty } var file_aggregatingapis_time_v1_time_proto_depIdxs = []int32{ - 1, // 0: flutterapis.time.v1.GetTimeResponse.data:type_name -> flutterapis.time.v1.GetTimeResponse.Data - 2, // 1: flutterapis.time.v1.TimeService.GetTime:input_type -> google.protobuf.Empty - 0, // 2: flutterapis.time.v1.TimeService.GetTime:output_type -> flutterapis.time.v1.GetTimeResponse + 1, // 0: aggregatingapis.time.v1.GetTimeResponse.data:type_name -> aggregatingapis.time.v1.GetTimeResponse.Data + 2, // 1: aggregatingapis.time.v1.TimeService.GetTime:input_type -> google.protobuf.Empty + 0, // 2: aggregatingapis.time.v1.TimeService.GetTime:output_type -> aggregatingapis.time.v1.GetTimeResponse 2, // [2:3] is the sub-list for method output_type 1, // [1:2] is the sub-list for method input_type 1, // [1:1] is the sub-list for extension type_name diff --git a/aggregatingapis/time/v1/time.pb.gw.go b/aggregatingapis/time/v1/time.pb.gw.go index b31ce10..4728902 100644 --- a/aggregatingapis/time/v1/time.pb.gw.go +++ b/aggregatingapis/time/v1/time.pb.gw.go @@ -63,7 +63,7 @@ func RegisterTimeServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/flutterapis.time.v1.TimeService/GetTime", runtime.WithHTTPPathPattern("/time/v1")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.time.v1.TimeService/GetTime", runtime.WithHTTPPathPattern("/time/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -126,7 +126,7 @@ func RegisterTimeServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/flutterapis.time.v1.TimeService/GetTime", runtime.WithHTTPPathPattern("/time/v1")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.time.v1.TimeService/GetTime", runtime.WithHTTPPathPattern("/time/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return diff --git a/aggregatingapis/time/v1/time_grpc.pb.go b/aggregatingapis/time/v1/time_grpc.pb.go index 01ca25e..729001c 100644 --- a/aggregatingapis/time/v1/time_grpc.pb.go +++ b/aggregatingapis/time/v1/time_grpc.pb.go @@ -36,7 +36,7 @@ func NewTimeServiceClient(cc grpc.ClientConnInterface) TimeServiceClient { func (c *timeServiceClient) GetTime(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetTimeResponse, error) { out := new(GetTimeResponse) - err := c.cc.Invoke(ctx, "/flutterapis.time.v1.TimeService/GetTime", in, out, opts...) + err := c.cc.Invoke(ctx, "/aggregatingapis.time.v1.TimeService/GetTime", in, out, opts...) if err != nil { return nil, err } @@ -81,7 +81,7 @@ func _TimeService_GetTime_Handler(srv interface{}, ctx context.Context, dec func } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/flutterapis.time.v1.TimeService/GetTime", + FullMethod: "/aggregatingapis.time.v1.TimeService/GetTime", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(TimeServiceServer).GetTime(ctx, req.(*emptypb.Empty)) @@ -93,7 +93,7 @@ func _TimeService_GetTime_Handler(srv interface{}, ctx context.Context, dec func // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var TimeService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "flutterapis.time.v1.TimeService", + ServiceName: "aggregatingapis.time.v1.TimeService", HandlerType: (*TimeServiceServer)(nil), Methods: []grpc.MethodDesc{ { diff --git a/consultingapis/faq/v1/faq.pb.go b/consultingapis/faq/v1/faq.pb.go index 236f99b..5307532 100644 --- a/consultingapis/faq/v1/faq.pb.go +++ b/consultingapis/faq/v1/faq.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.28.0 // protoc (unknown) -// source: aggregatingapis/faq/v1/faq.proto +// source: consultingapis/faq/v1/faq.proto package faqv1 @@ -32,7 +32,7 @@ type CreateFAQRequest struct { func (x *CreateFAQRequest) Reset() { *x = CreateFAQRequest{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[0] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45,7 +45,7 @@ func (x *CreateFAQRequest) String() string { func (*CreateFAQRequest) ProtoMessage() {} func (x *CreateFAQRequest) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[0] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58,7 +58,7 @@ func (x *CreateFAQRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateFAQRequest.ProtoReflect.Descriptor instead. func (*CreateFAQRequest) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{0} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{0} } func (x *CreateFAQRequest) GetData() *FAQInfo { @@ -81,7 +81,7 @@ type CreateFAQResponse struct { func (x *CreateFAQResponse) Reset() { *x = CreateFAQResponse{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[1] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -94,7 +94,7 @@ func (x *CreateFAQResponse) String() string { func (*CreateFAQResponse) ProtoMessage() {} func (x *CreateFAQResponse) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[1] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -107,7 +107,7 @@ func (x *CreateFAQResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateFAQResponse.ProtoReflect.Descriptor instead. func (*CreateFAQResponse) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{1} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{1} } func (x *CreateFAQResponse) GetError() uint32 { @@ -142,7 +142,7 @@ type GetFAQRequest struct { func (x *GetFAQRequest) Reset() { *x = GetFAQRequest{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[2] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -155,7 +155,7 @@ func (x *GetFAQRequest) String() string { func (*GetFAQRequest) ProtoMessage() {} func (x *GetFAQRequest) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[2] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -168,7 +168,7 @@ func (x *GetFAQRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFAQRequest.ProtoReflect.Descriptor instead. func (*GetFAQRequest) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{2} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{2} } func (x *GetFAQRequest) GetFaqId() string { @@ -191,7 +191,7 @@ type GetFAQResponse struct { func (x *GetFAQResponse) Reset() { *x = GetFAQResponse{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[3] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -204,7 +204,7 @@ func (x *GetFAQResponse) String() string { func (*GetFAQResponse) ProtoMessage() {} func (x *GetFAQResponse) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[3] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -217,7 +217,7 @@ func (x *GetFAQResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFAQResponse.ProtoReflect.Descriptor instead. func (*GetFAQResponse) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{3} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{3} } func (x *GetFAQResponse) GetError() uint32 { @@ -253,7 +253,7 @@ type UpdateFAQRequest struct { func (x *UpdateFAQRequest) Reset() { *x = UpdateFAQRequest{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[4] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -266,7 +266,7 @@ func (x *UpdateFAQRequest) String() string { func (*UpdateFAQRequest) ProtoMessage() {} func (x *UpdateFAQRequest) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[4] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -279,7 +279,7 @@ func (x *UpdateFAQRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateFAQRequest.ProtoReflect.Descriptor instead. func (*UpdateFAQRequest) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{4} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{4} } func (x *UpdateFAQRequest) GetFaqId() string { @@ -309,7 +309,7 @@ type UpdateFAQResponse struct { func (x *UpdateFAQResponse) Reset() { *x = UpdateFAQResponse{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[5] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -322,7 +322,7 @@ func (x *UpdateFAQResponse) String() string { func (*UpdateFAQResponse) ProtoMessage() {} func (x *UpdateFAQResponse) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[5] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -335,7 +335,7 @@ func (x *UpdateFAQResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use UpdateFAQResponse.ProtoReflect.Descriptor instead. func (*UpdateFAQResponse) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{5} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{5} } func (x *UpdateFAQResponse) GetError() uint32 { @@ -370,7 +370,7 @@ type DeleteFAQRequest struct { func (x *DeleteFAQRequest) Reset() { *x = DeleteFAQRequest{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[6] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -383,7 +383,7 @@ func (x *DeleteFAQRequest) String() string { func (*DeleteFAQRequest) ProtoMessage() {} func (x *DeleteFAQRequest) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[6] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -396,7 +396,7 @@ func (x *DeleteFAQRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteFAQRequest.ProtoReflect.Descriptor instead. func (*DeleteFAQRequest) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{6} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{6} } func (x *DeleteFAQRequest) GetFaqId() string { @@ -418,7 +418,7 @@ type DeleteFAQResponse struct { func (x *DeleteFAQResponse) Reset() { *x = DeleteFAQResponse{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[7] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -431,7 +431,7 @@ func (x *DeleteFAQResponse) String() string { func (*DeleteFAQResponse) ProtoMessage() {} func (x *DeleteFAQResponse) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[7] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -444,7 +444,7 @@ func (x *DeleteFAQResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteFAQResponse.ProtoReflect.Descriptor instead. func (*DeleteFAQResponse) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{7} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{7} } func (x *DeleteFAQResponse) GetError() uint32 { @@ -473,7 +473,7 @@ type FAQUpdateInfo struct { func (x *FAQUpdateInfo) Reset() { *x = FAQUpdateInfo{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[8] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -486,7 +486,7 @@ func (x *FAQUpdateInfo) String() string { func (*FAQUpdateInfo) ProtoMessage() {} func (x *FAQUpdateInfo) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[8] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -499,7 +499,7 @@ func (x *FAQUpdateInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FAQUpdateInfo.ProtoReflect.Descriptor instead. func (*FAQUpdateInfo) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{8} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{8} } func (x *FAQUpdateInfo) GetFaqId() string { @@ -531,7 +531,7 @@ type FAQInfo struct { func (x *FAQInfo) Reset() { *x = FAQInfo{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[9] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -544,7 +544,7 @@ func (x *FAQInfo) String() string { func (*FAQInfo) ProtoMessage() {} func (x *FAQInfo) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[9] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -557,7 +557,7 @@ func (x *FAQInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FAQInfo.ProtoReflect.Descriptor instead. func (*FAQInfo) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{9} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{9} } func (x *FAQInfo) GetCategoryId() string { @@ -607,7 +607,7 @@ type GetFAQImageRequest struct { func (x *GetFAQImageRequest) Reset() { *x = GetFAQImageRequest{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[10] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -620,7 +620,7 @@ func (x *GetFAQImageRequest) String() string { func (*GetFAQImageRequest) ProtoMessage() {} func (x *GetFAQImageRequest) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[10] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -633,7 +633,7 @@ func (x *GetFAQImageRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFAQImageRequest.ProtoReflect.Descriptor instead. func (*GetFAQImageRequest) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{10} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{10} } func (x *GetFAQImageRequest) GetFaqId() string { @@ -661,7 +661,7 @@ type GetFAQImageResponse struct { func (x *GetFAQImageResponse) Reset() { *x = GetFAQImageResponse{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[11] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -674,7 +674,7 @@ func (x *GetFAQImageResponse) String() string { func (*GetFAQImageResponse) ProtoMessage() {} func (x *GetFAQImageResponse) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[11] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -687,7 +687,7 @@ func (x *GetFAQImageResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFAQImageResponse.ProtoReflect.Descriptor instead. func (*GetFAQImageResponse) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{11} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{11} } func (x *GetFAQImageResponse) GetImage() []byte { @@ -708,7 +708,7 @@ type SearchFAQAnswerRichtextRequest struct { func (x *SearchFAQAnswerRichtextRequest) Reset() { *x = SearchFAQAnswerRichtextRequest{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[12] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -721,7 +721,7 @@ func (x *SearchFAQAnswerRichtextRequest) String() string { func (*SearchFAQAnswerRichtextRequest) ProtoMessage() {} func (x *SearchFAQAnswerRichtextRequest) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[12] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -734,7 +734,7 @@ func (x *SearchFAQAnswerRichtextRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchFAQAnswerRichtextRequest.ProtoReflect.Descriptor instead. func (*SearchFAQAnswerRichtextRequest) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{12} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{12} } func (x *SearchFAQAnswerRichtextRequest) GetKey() string { @@ -756,7 +756,7 @@ type SearchFAQAnswerRichtextResponse struct { func (x *SearchFAQAnswerRichtextResponse) Reset() { *x = SearchFAQAnswerRichtextResponse{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[13] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -769,7 +769,7 @@ func (x *SearchFAQAnswerRichtextResponse) String() string { func (*SearchFAQAnswerRichtextResponse) ProtoMessage() {} func (x *SearchFAQAnswerRichtextResponse) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[13] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -782,7 +782,7 @@ func (x *SearchFAQAnswerRichtextResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use SearchFAQAnswerRichtextResponse.ProtoReflect.Descriptor instead. func (*SearchFAQAnswerRichtextResponse) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{13} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{13} } func (x *SearchFAQAnswerRichtextResponse) GetFaqId() string { @@ -822,7 +822,7 @@ type FAQ struct { func (x *FAQ) Reset() { *x = FAQ{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[14] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -835,7 +835,7 @@ func (x *FAQ) String() string { func (*FAQ) ProtoMessage() {} func (x *FAQ) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[14] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -848,7 +848,7 @@ func (x *FAQ) ProtoReflect() protoreflect.Message { // Deprecated: Use FAQ.ProtoReflect.Descriptor instead. func (*FAQ) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{14} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{14} } func (x *FAQ) GetFaqId() string { @@ -964,7 +964,7 @@ type AnswerRichtext struct { func (x *AnswerRichtext) Reset() { *x = AnswerRichtext{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[15] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -977,7 +977,7 @@ func (x *AnswerRichtext) String() string { func (*AnswerRichtext) ProtoMessage() {} func (x *AnswerRichtext) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[15] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -990,7 +990,7 @@ func (x *AnswerRichtext) ProtoReflect() protoreflect.Message { // Deprecated: Use AnswerRichtext.ProtoReflect.Descriptor instead. func (*AnswerRichtext) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{15} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{15} } func (x *AnswerRichtext) GetType() string { @@ -1065,7 +1065,7 @@ type Category struct { func (x *Category) Reset() { *x = Category{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[16] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1078,7 +1078,7 @@ func (x *Category) String() string { func (*Category) ProtoMessage() {} func (x *Category) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[16] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1091,7 +1091,7 @@ func (x *Category) ProtoReflect() protoreflect.Message { // Deprecated: Use Category.ProtoReflect.Descriptor instead. func (*Category) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{16} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{16} } func (x *Category) GetCategoryId() string { @@ -1149,7 +1149,7 @@ type User struct { func (x *User) Reset() { *x = User{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[17] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1162,7 +1162,7 @@ func (x *User) String() string { func (*User) ProtoMessage() {} func (x *User) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_faq_v1_faq_proto_msgTypes[17] + mi := &file_consultingapis_faq_v1_faq_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1175,7 +1175,7 @@ func (x *User) ProtoReflect() protoreflect.Message { // Deprecated: Use User.ProtoReflect.Descriptor instead. func (*User) Descriptor() ([]byte, []int) { - return file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP(), []int{17} + return file_consultingapis_faq_v1_faq_proto_rawDescGZIP(), []int{17} } func (x *User) GetId() string { @@ -1199,267 +1199,265 @@ func (x *User) GetName() string { return "" } -var File_aggregatingapis_faq_v1_faq_proto protoreflect.FileDescriptor - -var file_aggregatingapis_faq_v1_faq_proto_rawDesc = []byte{ - 0x0a, 0x20, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x71, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x12, 0x16, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x47, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x33, 0x0a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, - 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, - 0x61, 0x22, 0x6c, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, - 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2f, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, - 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x26, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x41, +var File_consultingapis_faq_v1_faq_proto protoreflect.FileDescriptor + +var file_consultingapis_faq_v1_faq_proto_rawDesc = []byte{ + 0x0a, 0x1f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x61, 0x71, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x15, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x73, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x46, 0x0a, 0x10, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, + 0x74, 0x61, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, + 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6b, + 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, + 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x26, 0x0a, 0x0d, 0x47, + 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, + 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, + 0x71, 0x49, 0x64, 0x22, 0x68, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2e, 0x0a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, + 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x5d, 0x0a, + 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, + 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6b, 0x0a, 0x11, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x64, 0x61, 0x74, + 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x29, 0x0a, 0x10, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, + 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, + 0x61, 0x71, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x5e, 0x0a, 0x10, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x33, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, - 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x6c, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x2f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x29, 0x0a, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x22, 0x3b, 0x0a, 0x11, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, - 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x22, 0x5b, 0x0a, 0x0d, 0x46, 0x41, 0x51, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, + 0x67, 0x22, 0x5a, 0x0a, 0x0d, 0x46, 0x41, 0x51, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x04, 0x69, 0x6e, 0x66, + 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, + 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x9b, 0x01, + 0x0a, 0x07, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x27, + 0x0a, 0x0f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, + 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x22, 0x48, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x2b, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, + 0x67, 0x65, 0x22, 0x32, 0x0a, 0x1e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x77, 0x0a, 0x1f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, - 0x12, 0x33, 0x0a, 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x04, 0x69, 0x6e, 0x66, 0x6f, 0x22, 0x9b, 0x01, 0x0a, 0x07, 0x46, 0x41, 0x51, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, - 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, - 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, - 0x5f, 0x72, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x61, 0x67, 0x73, 0x22, 0x48, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, - 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4b, 0x65, 0x79, 0x22, 0x2b, 0x0a, - 0x13, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x22, 0x32, 0x0a, 0x1e, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, - 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x10, 0x0a, 0x03, - 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x22, 0x78, - 0x0a, 0x1f, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, - 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x3e, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, - 0x31, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, - 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, 0xe1, 0x03, 0x0a, 0x03, 0x46, 0x41, 0x51, - 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x6c, 0x70, 0x64, - 0x65, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, - 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, - 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x72, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, - 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x40, 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, - 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, - 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x63, - 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, - 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, - 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3d, - 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, 0x3d, 0x0a, - 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x22, 0xb6, 0x01, 0x0a, - 0x0e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, - 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, - 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, - 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x65, 0x78, - 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, 0x68, 0x12, 0x16, 0x0a, - 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x68, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xa9, 0x01, 0x0a, 0x08, 0x43, 0x61, 0x74, 0x65, 0x67, 0x6f, - 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x5f, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, - 0x79, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x65, 0x6e, - 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, - 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x6c, 0x70, 0x64, - 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, 0x67, 0x75, 0x61, 0x67, - 0x65, 0x22, 0x49, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x61, 0x76, 0x61, - 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, - 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x32, 0xff, 0x05, 0x0a, - 0x0a, 0x46, 0x41, 0x51, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x77, 0x0a, 0x09, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, - 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3a, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x12, 0x68, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x12, 0x25, - 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0x12, 0x3d, 0x0a, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, + 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x06, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x22, + 0xde, 0x03, 0x0a, 0x03, 0x46, 0x41, 0x51, 0x12, 0x15, 0x0a, 0x06, 0x66, 0x61, 0x71, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x66, 0x61, 0x71, 0x49, 0x64, 0x12, 0x0e, + 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, + 0x0a, 0x0b, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x71, 0x75, 0x65, 0x73, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, + 0x6e, 0x73, 0x77, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x6e, 0x73, + 0x77, 0x65, 0x72, 0x12, 0x27, 0x0a, 0x0f, 0x61, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x5f, 0x72, 0x69, + 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x61, 0x6e, + 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x1f, 0x0a, 0x0b, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1f, 0x0a, + 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3f, + 0x0a, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x61, 0x74, 0x65, 0x67, + 0x6f, 0x72, 0x79, 0x52, 0x0a, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, 0x72, 0x69, 0x65, 0x73, 0x12, + 0x12, 0x0a, 0x04, 0x74, 0x61, 0x67, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x09, 0x52, 0x04, 0x74, + 0x61, 0x67, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x65, 0x78, 0x70, 0x69, 0x72, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3c, 0x0a, 0x0b, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x75, + 0x73, 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x73, + 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, + 0x31, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x75, 0x73, 0x65, + 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x22, 0xb6, 0x01, 0x0a, 0x0e, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, + 0x65, 0x78, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x65, 0x78, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x74, 0x65, 0x78, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x72, 0x63, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x72, 0x63, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x77, + 0x69, 0x64, 0x74, 0x68, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x77, 0x69, 0x64, 0x74, + 0x68, 0x12, 0x16, 0x0a, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x06, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x22, 0xa9, 0x01, 0x0a, 0x08, 0x43, 0x61, + 0x74, 0x65, 0x67, 0x6f, 0x72, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x61, 0x74, 0x65, 0x67, 0x6f, + 0x72, 0x79, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x61, 0x74, + 0x65, 0x67, 0x6f, 0x72, 0x79, 0x49, 0x64, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x70, + 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x68, 0x65, 0x6c, 0x70, + 0x64, 0x65, 0x73, 0x6b, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x68, + 0x65, 0x6c, 0x70, 0x64, 0x65, 0x73, 0x6b, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6c, 0x61, 0x6e, + 0x67, 0x75, 0x61, 0x67, 0x65, 0x22, 0x49, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1d, 0x0a, + 0x0a, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x61, 0x76, 0x61, 0x74, 0x61, 0x72, 0x55, 0x72, 0x6c, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x32, 0xf3, 0x05, 0x0a, 0x0a, 0x46, 0x41, 0x51, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, + 0x75, 0x0a, 0x09, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x27, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, + 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x22, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, + 0x3a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x66, 0x0a, 0x06, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, + 0x12, 0x24, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x09, 0x12, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x12, 0x77, - 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x28, 0x2e, 0x61, 0x67, - 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, - 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x32, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, - 0x31, 0x3a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x71, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x46, 0x41, 0x51, 0x12, 0x28, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, - 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, - 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x82, 0xd3, 0xe4, 0x93, 0x02, - 0x09, 0x2a, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x12, 0x7d, 0x0a, 0x0b, 0x47, 0x65, - 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x2a, 0x2e, 0x61, 0x67, 0x67, 0x72, - 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, - 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x66, 0x61, 0x71, - 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0xa2, 0x01, 0x0a, 0x17, 0x53, 0x65, - 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, - 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, 0x36, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, + 0xd3, 0xe4, 0x93, 0x02, 0x09, 0x12, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x12, 0x75, + 0x0a, 0x09, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x12, 0x27, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, + 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, + 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x0f, 0x32, 0x07, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3a, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x6f, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, + 0x41, 0x51, 0x12, 0x27, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x63, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, + 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x41, 0x51, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x0f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x09, 0x2a, 0x07, 0x2f, + 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x12, 0x7b, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, + 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x29, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, + 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x46, 0x41, 0x51, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x41, 0x51, 0x49, + 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x0f, 0x12, 0x0d, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x12, 0xa0, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, + 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x12, + 0x35, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, + 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x36, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, - 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x46, 0x41, 0x51, - 0x41, 0x6e, 0x73, 0x77, 0x65, 0x72, 0x52, 0x69, 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, - 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0xde, - 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, 0x71, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x46, - 0x61, 0x71, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3c, 0x67, 0x69, 0x74, 0x68, 0x75, - 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, - 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, 0x67, 0x67, 0x72, 0x65, - 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, - 0x31, 0x3b, 0x66, 0x61, 0x71, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x41, 0x46, 0x58, 0xaa, 0x02, 0x16, - 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x46, 0x61, 0x71, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x16, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x46, 0x61, 0x71, 0x5c, 0x56, 0x31, 0xe2, - 0x02, 0x22, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x5c, 0x46, 0x61, 0x71, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, - 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x18, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x46, 0x61, 0x71, 0x3a, 0x3a, 0x56, 0x31, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x63, 0x68, 0x74, 0x65, 0x78, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x65, 0x61, 0x72, 0x63, 0x68, 0x42, 0xd8, 0x01, 0x0a, 0x19, 0x63, 0x6f, 0x6d, 0x2e, 0x63, + 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x66, 0x61, + 0x71, 0x2e, 0x76, 0x31, 0x42, 0x08, 0x46, 0x61, 0x71, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, + 0x5a, 0x3b, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, + 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, + 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2f, 0x66, 0x61, 0x71, 0x2f, 0x76, 0x31, 0x3b, 0x66, 0x61, 0x71, 0x76, 0x31, 0xa2, 0x02, 0x03, + 0x43, 0x46, 0x58, 0xaa, 0x02, 0x15, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x46, 0x61, 0x71, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x15, 0x43, 0x6f, + 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x46, 0x61, 0x71, + 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x21, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x5c, 0x46, 0x61, 0x71, 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, + 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x17, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x46, 0x61, 0x71, 0x3a, 0x3a, 0x56, + 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_aggregatingapis_faq_v1_faq_proto_rawDescOnce sync.Once - file_aggregatingapis_faq_v1_faq_proto_rawDescData = file_aggregatingapis_faq_v1_faq_proto_rawDesc + file_consultingapis_faq_v1_faq_proto_rawDescOnce sync.Once + file_consultingapis_faq_v1_faq_proto_rawDescData = file_consultingapis_faq_v1_faq_proto_rawDesc ) -func file_aggregatingapis_faq_v1_faq_proto_rawDescGZIP() []byte { - file_aggregatingapis_faq_v1_faq_proto_rawDescOnce.Do(func() { - file_aggregatingapis_faq_v1_faq_proto_rawDescData = protoimpl.X.CompressGZIP(file_aggregatingapis_faq_v1_faq_proto_rawDescData) +func file_consultingapis_faq_v1_faq_proto_rawDescGZIP() []byte { + file_consultingapis_faq_v1_faq_proto_rawDescOnce.Do(func() { + file_consultingapis_faq_v1_faq_proto_rawDescData = protoimpl.X.CompressGZIP(file_consultingapis_faq_v1_faq_proto_rawDescData) }) - return file_aggregatingapis_faq_v1_faq_proto_rawDescData -} - -var file_aggregatingapis_faq_v1_faq_proto_msgTypes = make([]protoimpl.MessageInfo, 18) -var file_aggregatingapis_faq_v1_faq_proto_goTypes = []interface{}{ - (*CreateFAQRequest)(nil), // 0: aggregatingapis.faq.v1.CreateFAQRequest - (*CreateFAQResponse)(nil), // 1: aggregatingapis.faq.v1.CreateFAQResponse - (*GetFAQRequest)(nil), // 2: aggregatingapis.faq.v1.GetFAQRequest - (*GetFAQResponse)(nil), // 3: aggregatingapis.faq.v1.GetFAQResponse - (*UpdateFAQRequest)(nil), // 4: aggregatingapis.faq.v1.UpdateFAQRequest - (*UpdateFAQResponse)(nil), // 5: aggregatingapis.faq.v1.UpdateFAQResponse - (*DeleteFAQRequest)(nil), // 6: aggregatingapis.faq.v1.DeleteFAQRequest - (*DeleteFAQResponse)(nil), // 7: aggregatingapis.faq.v1.DeleteFAQResponse - (*FAQUpdateInfo)(nil), // 8: aggregatingapis.faq.v1.FAQUpdateInfo - (*FAQInfo)(nil), // 9: aggregatingapis.faq.v1.FAQInfo - (*GetFAQImageRequest)(nil), // 10: aggregatingapis.faq.v1.GetFAQImageRequest - (*GetFAQImageResponse)(nil), // 11: aggregatingapis.faq.v1.GetFAQImageResponse - (*SearchFAQAnswerRichtextRequest)(nil), // 12: aggregatingapis.faq.v1.SearchFAQAnswerRichtextRequest - (*SearchFAQAnswerRichtextResponse)(nil), // 13: aggregatingapis.faq.v1.SearchFAQAnswerRichtextResponse - (*FAQ)(nil), // 14: aggregatingapis.faq.v1.FAQ - (*AnswerRichtext)(nil), // 15: aggregatingapis.faq.v1.AnswerRichtext - (*Category)(nil), // 16: aggregatingapis.faq.v1.Category - (*User)(nil), // 17: aggregatingapis.faq.v1.User -} -var file_aggregatingapis_faq_v1_faq_proto_depIdxs = []int32{ - 9, // 0: aggregatingapis.faq.v1.CreateFAQRequest.data:type_name -> aggregatingapis.faq.v1.FAQInfo - 14, // 1: aggregatingapis.faq.v1.CreateFAQResponse.data:type_name -> aggregatingapis.faq.v1.FAQ - 14, // 2: aggregatingapis.faq.v1.GetFAQResponse.data:type_name -> aggregatingapis.faq.v1.FAQ - 9, // 3: aggregatingapis.faq.v1.UpdateFAQRequest.data:type_name -> aggregatingapis.faq.v1.FAQInfo - 14, // 4: aggregatingapis.faq.v1.UpdateFAQResponse.data:type_name -> aggregatingapis.faq.v1.FAQ - 9, // 5: aggregatingapis.faq.v1.FAQUpdateInfo.info:type_name -> aggregatingapis.faq.v1.FAQInfo - 15, // 6: aggregatingapis.faq.v1.SearchFAQAnswerRichtextResponse.answer:type_name -> aggregatingapis.faq.v1.AnswerRichtext - 16, // 7: aggregatingapis.faq.v1.FAQ.categories:type_name -> aggregatingapis.faq.v1.Category - 17, // 8: aggregatingapis.faq.v1.FAQ.update_user:type_name -> aggregatingapis.faq.v1.User - 17, // 9: aggregatingapis.faq.v1.FAQ.create_user:type_name -> aggregatingapis.faq.v1.User - 0, // 10: aggregatingapis.faq.v1.FAQService.CreateFAQ:input_type -> aggregatingapis.faq.v1.CreateFAQRequest - 2, // 11: aggregatingapis.faq.v1.FAQService.GetFAQ:input_type -> aggregatingapis.faq.v1.GetFAQRequest - 4, // 12: aggregatingapis.faq.v1.FAQService.UpdateFAQ:input_type -> aggregatingapis.faq.v1.UpdateFAQRequest - 6, // 13: aggregatingapis.faq.v1.FAQService.DeleteFAQ:input_type -> aggregatingapis.faq.v1.DeleteFAQRequest - 10, // 14: aggregatingapis.faq.v1.FAQService.GetFAQImage:input_type -> aggregatingapis.faq.v1.GetFAQImageRequest - 12, // 15: aggregatingapis.faq.v1.FAQService.SearchFAQAnswerRichtext:input_type -> aggregatingapis.faq.v1.SearchFAQAnswerRichtextRequest - 1, // 16: aggregatingapis.faq.v1.FAQService.CreateFAQ:output_type -> aggregatingapis.faq.v1.CreateFAQResponse - 3, // 17: aggregatingapis.faq.v1.FAQService.GetFAQ:output_type -> aggregatingapis.faq.v1.GetFAQResponse - 5, // 18: aggregatingapis.faq.v1.FAQService.UpdateFAQ:output_type -> aggregatingapis.faq.v1.UpdateFAQResponse - 7, // 19: aggregatingapis.faq.v1.FAQService.DeleteFAQ:output_type -> aggregatingapis.faq.v1.DeleteFAQResponse - 11, // 20: aggregatingapis.faq.v1.FAQService.GetFAQImage:output_type -> aggregatingapis.faq.v1.GetFAQImageResponse - 13, // 21: aggregatingapis.faq.v1.FAQService.SearchFAQAnswerRichtext:output_type -> aggregatingapis.faq.v1.SearchFAQAnswerRichtextResponse + return file_consultingapis_faq_v1_faq_proto_rawDescData +} + +var file_consultingapis_faq_v1_faq_proto_msgTypes = make([]protoimpl.MessageInfo, 18) +var file_consultingapis_faq_v1_faq_proto_goTypes = []interface{}{ + (*CreateFAQRequest)(nil), // 0: consultingapis.faq.v1.CreateFAQRequest + (*CreateFAQResponse)(nil), // 1: consultingapis.faq.v1.CreateFAQResponse + (*GetFAQRequest)(nil), // 2: consultingapis.faq.v1.GetFAQRequest + (*GetFAQResponse)(nil), // 3: consultingapis.faq.v1.GetFAQResponse + (*UpdateFAQRequest)(nil), // 4: consultingapis.faq.v1.UpdateFAQRequest + (*UpdateFAQResponse)(nil), // 5: consultingapis.faq.v1.UpdateFAQResponse + (*DeleteFAQRequest)(nil), // 6: consultingapis.faq.v1.DeleteFAQRequest + (*DeleteFAQResponse)(nil), // 7: consultingapis.faq.v1.DeleteFAQResponse + (*FAQUpdateInfo)(nil), // 8: consultingapis.faq.v1.FAQUpdateInfo + (*FAQInfo)(nil), // 9: consultingapis.faq.v1.FAQInfo + (*GetFAQImageRequest)(nil), // 10: consultingapis.faq.v1.GetFAQImageRequest + (*GetFAQImageResponse)(nil), // 11: consultingapis.faq.v1.GetFAQImageResponse + (*SearchFAQAnswerRichtextRequest)(nil), // 12: consultingapis.faq.v1.SearchFAQAnswerRichtextRequest + (*SearchFAQAnswerRichtextResponse)(nil), // 13: consultingapis.faq.v1.SearchFAQAnswerRichtextResponse + (*FAQ)(nil), // 14: consultingapis.faq.v1.FAQ + (*AnswerRichtext)(nil), // 15: consultingapis.faq.v1.AnswerRichtext + (*Category)(nil), // 16: consultingapis.faq.v1.Category + (*User)(nil), // 17: consultingapis.faq.v1.User +} +var file_consultingapis_faq_v1_faq_proto_depIdxs = []int32{ + 9, // 0: consultingapis.faq.v1.CreateFAQRequest.data:type_name -> consultingapis.faq.v1.FAQInfo + 14, // 1: consultingapis.faq.v1.CreateFAQResponse.data:type_name -> consultingapis.faq.v1.FAQ + 14, // 2: consultingapis.faq.v1.GetFAQResponse.data:type_name -> consultingapis.faq.v1.FAQ + 9, // 3: consultingapis.faq.v1.UpdateFAQRequest.data:type_name -> consultingapis.faq.v1.FAQInfo + 14, // 4: consultingapis.faq.v1.UpdateFAQResponse.data:type_name -> consultingapis.faq.v1.FAQ + 9, // 5: consultingapis.faq.v1.FAQUpdateInfo.info:type_name -> consultingapis.faq.v1.FAQInfo + 15, // 6: consultingapis.faq.v1.SearchFAQAnswerRichtextResponse.answer:type_name -> consultingapis.faq.v1.AnswerRichtext + 16, // 7: consultingapis.faq.v1.FAQ.categories:type_name -> consultingapis.faq.v1.Category + 17, // 8: consultingapis.faq.v1.FAQ.update_user:type_name -> consultingapis.faq.v1.User + 17, // 9: consultingapis.faq.v1.FAQ.create_user:type_name -> consultingapis.faq.v1.User + 0, // 10: consultingapis.faq.v1.FAQService.CreateFAQ:input_type -> consultingapis.faq.v1.CreateFAQRequest + 2, // 11: consultingapis.faq.v1.FAQService.GetFAQ:input_type -> consultingapis.faq.v1.GetFAQRequest + 4, // 12: consultingapis.faq.v1.FAQService.UpdateFAQ:input_type -> consultingapis.faq.v1.UpdateFAQRequest + 6, // 13: consultingapis.faq.v1.FAQService.DeleteFAQ:input_type -> consultingapis.faq.v1.DeleteFAQRequest + 10, // 14: consultingapis.faq.v1.FAQService.GetFAQImage:input_type -> consultingapis.faq.v1.GetFAQImageRequest + 12, // 15: consultingapis.faq.v1.FAQService.SearchFAQAnswerRichtext:input_type -> consultingapis.faq.v1.SearchFAQAnswerRichtextRequest + 1, // 16: consultingapis.faq.v1.FAQService.CreateFAQ:output_type -> consultingapis.faq.v1.CreateFAQResponse + 3, // 17: consultingapis.faq.v1.FAQService.GetFAQ:output_type -> consultingapis.faq.v1.GetFAQResponse + 5, // 18: consultingapis.faq.v1.FAQService.UpdateFAQ:output_type -> consultingapis.faq.v1.UpdateFAQResponse + 7, // 19: consultingapis.faq.v1.FAQService.DeleteFAQ:output_type -> consultingapis.faq.v1.DeleteFAQResponse + 11, // 20: consultingapis.faq.v1.FAQService.GetFAQImage:output_type -> consultingapis.faq.v1.GetFAQImageResponse + 13, // 21: consultingapis.faq.v1.FAQService.SearchFAQAnswerRichtext:output_type -> consultingapis.faq.v1.SearchFAQAnswerRichtextResponse 16, // [16:22] is the sub-list for method output_type 10, // [10:16] is the sub-list for method input_type 10, // [10:10] is the sub-list for extension type_name @@ -1467,13 +1465,13 @@ var file_aggregatingapis_faq_v1_faq_proto_depIdxs = []int32{ 0, // [0:10] is the sub-list for field type_name } -func init() { file_aggregatingapis_faq_v1_faq_proto_init() } -func file_aggregatingapis_faq_v1_faq_proto_init() { - if File_aggregatingapis_faq_v1_faq_proto != nil { +func init() { file_consultingapis_faq_v1_faq_proto_init() } +func file_consultingapis_faq_v1_faq_proto_init() { + if File_consultingapis_faq_v1_faq_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_aggregatingapis_faq_v1_faq_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateFAQRequest); i { case 0: return &v.state @@ -1485,7 +1483,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*CreateFAQResponse); i { case 0: return &v.state @@ -1497,7 +1495,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFAQRequest); i { case 0: return &v.state @@ -1509,7 +1507,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFAQResponse); i { case 0: return &v.state @@ -1521,7 +1519,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateFAQRequest); i { case 0: return &v.state @@ -1533,7 +1531,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UpdateFAQResponse); i { case 0: return &v.state @@ -1545,7 +1543,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteFAQRequest); i { case 0: return &v.state @@ -1557,7 +1555,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*DeleteFAQResponse); i { case 0: return &v.state @@ -1569,7 +1567,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FAQUpdateInfo); i { case 0: return &v.state @@ -1581,7 +1579,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FAQInfo); i { case 0: return &v.state @@ -1593,7 +1591,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFAQImageRequest); i { case 0: return &v.state @@ -1605,7 +1603,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetFAQImageResponse); i { case 0: return &v.state @@ -1617,7 +1615,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchFAQAnswerRichtextRequest); i { case 0: return &v.state @@ -1629,7 +1627,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SearchFAQAnswerRichtextResponse); i { case 0: return &v.state @@ -1641,7 +1639,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FAQ); i { case 0: return &v.state @@ -1653,7 +1651,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AnswerRichtext); i { case 0: return &v.state @@ -1665,7 +1663,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Category); i { case 0: return &v.state @@ -1677,7 +1675,7 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { return nil } } - file_aggregatingapis_faq_v1_faq_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_faq_v1_faq_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*User); i { case 0: return &v.state @@ -1694,18 +1692,18 @@ func file_aggregatingapis_faq_v1_faq_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_aggregatingapis_faq_v1_faq_proto_rawDesc, + RawDescriptor: file_consultingapis_faq_v1_faq_proto_rawDesc, NumEnums: 0, NumMessages: 18, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_aggregatingapis_faq_v1_faq_proto_goTypes, - DependencyIndexes: file_aggregatingapis_faq_v1_faq_proto_depIdxs, - MessageInfos: file_aggregatingapis_faq_v1_faq_proto_msgTypes, + GoTypes: file_consultingapis_faq_v1_faq_proto_goTypes, + DependencyIndexes: file_consultingapis_faq_v1_faq_proto_depIdxs, + MessageInfos: file_consultingapis_faq_v1_faq_proto_msgTypes, }.Build() - File_aggregatingapis_faq_v1_faq_proto = out.File - file_aggregatingapis_faq_v1_faq_proto_rawDesc = nil - file_aggregatingapis_faq_v1_faq_proto_goTypes = nil - file_aggregatingapis_faq_v1_faq_proto_depIdxs = nil + File_consultingapis_faq_v1_faq_proto = out.File + file_consultingapis_faq_v1_faq_proto_rawDesc = nil + file_consultingapis_faq_v1_faq_proto_goTypes = nil + file_consultingapis_faq_v1_faq_proto_depIdxs = nil } diff --git a/consultingapis/faq/v1/faq.pb.gw.go b/consultingapis/faq/v1/faq.pb.gw.go index afb2a8a..5250c3a 100644 --- a/consultingapis/faq/v1/faq.pb.gw.go +++ b/consultingapis/faq/v1/faq.pb.gw.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: aggregatingapis/faq/v1/faq.proto +// source: consultingapis/faq/v1/faq.proto /* Package faqv1 is a reverse proxy. @@ -274,7 +274,7 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/CreateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/CreateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -298,7 +298,7 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/GetFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/GetFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -322,7 +322,7 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/UpdateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/UpdateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -346,7 +346,7 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/DeleteFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/DeleteFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -370,7 +370,7 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/GetFAQImage", runtime.WithHTTPPathPattern("/faq/v1/image")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/GetFAQImage", runtime.WithHTTPPathPattern("/faq/v1/image")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -394,7 +394,7 @@ func RegisterFAQServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux, ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", runtime.WithHTTPPathPattern("/faq/v1/search")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", runtime.WithHTTPPathPattern("/faq/v1/search")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -457,7 +457,7 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/CreateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/CreateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -478,7 +478,7 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/GetFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/GetFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -499,7 +499,7 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/UpdateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/UpdateFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -520,7 +520,7 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/DeleteFAQ", runtime.WithHTTPPathPattern("/faq/v1")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/DeleteFAQ", runtime.WithHTTPPathPattern("/faq/v1")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -541,7 +541,7 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/GetFAQImage", runtime.WithHTTPPathPattern("/faq/v1/image")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/GetFAQImage", runtime.WithHTTPPathPattern("/faq/v1/image")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -562,7 +562,7 @@ func RegisterFAQServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux, defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", runtime.WithHTTPPathPattern("/faq/v1/search")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", runtime.WithHTTPPathPattern("/faq/v1/search")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return diff --git a/consultingapis/faq/v1/faq_grpc.pb.go b/consultingapis/faq/v1/faq_grpc.pb.go index c11668f..ef0b8a8 100644 --- a/consultingapis/faq/v1/faq_grpc.pb.go +++ b/consultingapis/faq/v1/faq_grpc.pb.go @@ -2,7 +2,7 @@ // versions: // - protoc-gen-go-grpc v1.2.0 // - protoc (unknown) -// source: aggregatingapis/faq/v1/faq.proto +// source: consultingapis/faq/v1/faq.proto package faqv1 @@ -40,7 +40,7 @@ func NewFAQServiceClient(cc grpc.ClientConnInterface) FAQServiceClient { func (c *fAQServiceClient) CreateFAQ(ctx context.Context, in *CreateFAQRequest, opts ...grpc.CallOption) (*CreateFAQResponse, error) { out := new(CreateFAQResponse) - err := c.cc.Invoke(ctx, "/aggregatingapis.faq.v1.FAQService/CreateFAQ", in, out, opts...) + err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/CreateFAQ", in, out, opts...) if err != nil { return nil, err } @@ -49,7 +49,7 @@ func (c *fAQServiceClient) CreateFAQ(ctx context.Context, in *CreateFAQRequest, func (c *fAQServiceClient) GetFAQ(ctx context.Context, in *GetFAQRequest, opts ...grpc.CallOption) (*GetFAQResponse, error) { out := new(GetFAQResponse) - err := c.cc.Invoke(ctx, "/aggregatingapis.faq.v1.FAQService/GetFAQ", in, out, opts...) + err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/GetFAQ", in, out, opts...) if err != nil { return nil, err } @@ -58,7 +58,7 @@ func (c *fAQServiceClient) GetFAQ(ctx context.Context, in *GetFAQRequest, opts . func (c *fAQServiceClient) UpdateFAQ(ctx context.Context, in *UpdateFAQRequest, opts ...grpc.CallOption) (*UpdateFAQResponse, error) { out := new(UpdateFAQResponse) - err := c.cc.Invoke(ctx, "/aggregatingapis.faq.v1.FAQService/UpdateFAQ", in, out, opts...) + err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/UpdateFAQ", in, out, opts...) if err != nil { return nil, err } @@ -67,7 +67,7 @@ func (c *fAQServiceClient) UpdateFAQ(ctx context.Context, in *UpdateFAQRequest, func (c *fAQServiceClient) DeleteFAQ(ctx context.Context, in *DeleteFAQRequest, opts ...grpc.CallOption) (*DeleteFAQResponse, error) { out := new(DeleteFAQResponse) - err := c.cc.Invoke(ctx, "/aggregatingapis.faq.v1.FAQService/DeleteFAQ", in, out, opts...) + err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/DeleteFAQ", in, out, opts...) if err != nil { return nil, err } @@ -76,7 +76,7 @@ func (c *fAQServiceClient) DeleteFAQ(ctx context.Context, in *DeleteFAQRequest, func (c *fAQServiceClient) GetFAQImage(ctx context.Context, in *GetFAQImageRequest, opts ...grpc.CallOption) (*GetFAQImageResponse, error) { out := new(GetFAQImageResponse) - err := c.cc.Invoke(ctx, "/aggregatingapis.faq.v1.FAQService/GetFAQImage", in, out, opts...) + err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/GetFAQImage", in, out, opts...) if err != nil { return nil, err } @@ -85,7 +85,7 @@ func (c *fAQServiceClient) GetFAQImage(ctx context.Context, in *GetFAQImageReque func (c *fAQServiceClient) SearchFAQAnswerRichtext(ctx context.Context, in *SearchFAQAnswerRichtextRequest, opts ...grpc.CallOption) (*SearchFAQAnswerRichtextResponse, error) { out := new(SearchFAQAnswerRichtextResponse) - err := c.cc.Invoke(ctx, "/aggregatingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", in, out, opts...) + err := c.cc.Invoke(ctx, "/consultingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", in, out, opts...) if err != nil { return nil, err } @@ -150,7 +150,7 @@ func _FAQService_CreateFAQ_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/aggregatingapis.faq.v1.FAQService/CreateFAQ", + FullMethod: "/consultingapis.faq.v1.FAQService/CreateFAQ", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FAQServiceServer).CreateFAQ(ctx, req.(*CreateFAQRequest)) @@ -168,7 +168,7 @@ func _FAQService_GetFAQ_Handler(srv interface{}, ctx context.Context, dec func(i } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/aggregatingapis.faq.v1.FAQService/GetFAQ", + FullMethod: "/consultingapis.faq.v1.FAQService/GetFAQ", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FAQServiceServer).GetFAQ(ctx, req.(*GetFAQRequest)) @@ -186,7 +186,7 @@ func _FAQService_UpdateFAQ_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/aggregatingapis.faq.v1.FAQService/UpdateFAQ", + FullMethod: "/consultingapis.faq.v1.FAQService/UpdateFAQ", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FAQServiceServer).UpdateFAQ(ctx, req.(*UpdateFAQRequest)) @@ -204,7 +204,7 @@ func _FAQService_DeleteFAQ_Handler(srv interface{}, ctx context.Context, dec fun } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/aggregatingapis.faq.v1.FAQService/DeleteFAQ", + FullMethod: "/consultingapis.faq.v1.FAQService/DeleteFAQ", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FAQServiceServer).DeleteFAQ(ctx, req.(*DeleteFAQRequest)) @@ -222,7 +222,7 @@ func _FAQService_GetFAQImage_Handler(srv interface{}, ctx context.Context, dec f } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/aggregatingapis.faq.v1.FAQService/GetFAQImage", + FullMethod: "/consultingapis.faq.v1.FAQService/GetFAQImage", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FAQServiceServer).GetFAQImage(ctx, req.(*GetFAQImageRequest)) @@ -240,7 +240,7 @@ func _FAQService_SearchFAQAnswerRichtext_Handler(srv interface{}, ctx context.Co } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/aggregatingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", + FullMethod: "/consultingapis.faq.v1.FAQService/SearchFAQAnswerRichtext", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(FAQServiceServer).SearchFAQAnswerRichtext(ctx, req.(*SearchFAQAnswerRichtextRequest)) @@ -252,7 +252,7 @@ func _FAQService_SearchFAQAnswerRichtext_Handler(srv interface{}, ctx context.Co // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var FAQService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "aggregatingapis.faq.v1.FAQService", + ServiceName: "consultingapis.faq.v1.FAQService", HandlerType: (*FAQServiceServer)(nil), Methods: []grpc.MethodDesc{ { @@ -281,5 +281,5 @@ var FAQService_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "aggregatingapis/faq/v1/faq.proto", + Metadata: "consultingapis/faq/v1/faq.proto", } diff --git a/consultingapis/wiki/v1/wiki.pb.go b/consultingapis/wiki/v1/wiki.pb.go index bd316d4..c2e8a76 100644 --- a/consultingapis/wiki/v1/wiki.pb.go +++ b/consultingapis/wiki/v1/wiki.pb.go @@ -2,7 +2,7 @@ // versions: // protoc-gen-go v1.28.0 // protoc (unknown) -// source: aggregatingapis/wiki/v1/wiki.proto +// source: consultingapis/wiki/v1/wiki.proto package wikiv1 @@ -32,7 +32,7 @@ type GetDocContentRequest struct { func (x *GetDocContentRequest) Reset() { *x = GetDocContentRequest{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0] + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -45,7 +45,7 @@ func (x *GetDocContentRequest) String() string { func (*GetDocContentRequest) ProtoMessage() {} func (x *GetDocContentRequest) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0] + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -58,7 +58,7 @@ func (x *GetDocContentRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDocContentRequest.ProtoReflect.Descriptor instead. func (*GetDocContentRequest) Descriptor() ([]byte, []int) { - return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{0} + return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{0} } func (x *GetDocContentRequest) GetToken() string { @@ -80,7 +80,7 @@ type GetDocContentResponse struct { func (x *GetDocContentResponse) Reset() { *x = GetDocContentResponse{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1] + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -93,7 +93,7 @@ func (x *GetDocContentResponse) String() string { func (*GetDocContentResponse) ProtoMessage() {} func (x *GetDocContentResponse) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1] + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -106,7 +106,7 @@ func (x *GetDocContentResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetDocContentResponse.ProtoReflect.Descriptor instead. func (*GetDocContentResponse) Descriptor() ([]byte, []int) { - return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{1} + return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{1} } func (x *GetDocContentResponse) GetContent() string { @@ -135,7 +135,7 @@ type GetNodeListRequest struct { func (x *GetNodeListRequest) Reset() { *x = GetNodeListRequest{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2] + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -148,7 +148,7 @@ func (x *GetNodeListRequest) String() string { func (*GetNodeListRequest) ProtoMessage() {} func (x *GetNodeListRequest) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2] + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -161,7 +161,7 @@ func (x *GetNodeListRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNodeListRequest.ProtoReflect.Descriptor instead. func (*GetNodeListRequest) Descriptor() ([]byte, []int) { - return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{2} + return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{2} } func (x *GetNodeListRequest) GetSpaceId() string { @@ -191,7 +191,7 @@ type GetNodeListResponse struct { func (x *GetNodeListResponse) Reset() { *x = GetNodeListResponse{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3] + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -204,7 +204,7 @@ func (x *GetNodeListResponse) String() string { func (*GetNodeListResponse) ProtoMessage() {} func (x *GetNodeListResponse) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3] + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -217,7 +217,7 @@ func (x *GetNodeListResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetNodeListResponse.ProtoReflect.Descriptor instead. func (*GetNodeListResponse) Descriptor() ([]byte, []int) { - return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{3} + return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{3} } func (x *GetNodeListResponse) GetItems() []*NodeItem { @@ -265,7 +265,7 @@ type NodeItem struct { func (x *NodeItem) Reset() { *x = NodeItem{} if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[4] + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -278,7 +278,7 @@ func (x *NodeItem) String() string { func (*NodeItem) ProtoMessage() {} func (x *NodeItem) ProtoReflect() protoreflect.Message { - mi := &file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[4] + mi := &file_consultingapis_wiki_v1_wiki_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -291,7 +291,7 @@ func (x *NodeItem) ProtoReflect() protoreflect.Message { // Deprecated: Use NodeItem.ProtoReflect.Descriptor instead. func (*NodeItem) Descriptor() ([]byte, []int) { - return file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{4} + return file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP(), []int{4} } func (x *NodeItem) GetSpaceId() string { @@ -392,132 +392,131 @@ func (x *NodeItem) GetSubNode() []*NodeItem { return nil } -var File_aggregatingapis_wiki_v1_wiki_proto protoreflect.FileDescriptor - -var file_aggregatingapis_wiki_v1_wiki_proto_rawDesc = []byte{ - 0x0a, 0x22, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, - 0x73, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x17, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, - 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x4d, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, - 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, - 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4e, - 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, - 0x0a, 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, - 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x88, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x37, 0x0a, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, - 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, - 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, - 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, - 0x22, 0xff, 0x03, 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x0a, - 0x08, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, - 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, - 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x62, 0x6a, 0x5f, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, - 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x6e, 0x6f, 0x64, 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x72, 0x69, 0x67, - 0x69, 0x6e, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, - 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, - 0x72, 0x69, 0x67, 0x69, 0x6e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, - 0x68, 0x61, 0x73, 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x08, 0x68, 0x61, 0x73, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, - 0x6c, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, - 0x26, 0x0a, 0x0f, 0x6f, 0x62, 0x6a, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, - 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x62, 0x6a, 0x5f, 0x65, - 0x64, 0x69, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x6f, 0x62, 0x6a, 0x45, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, - 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, - 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x6f, 0x64, 0x65, - 0x18, 0x0e, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, - 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x6f, - 0x64, 0x65, 0x32, 0x9b, 0x02, 0x0a, 0x0b, 0x57, 0x69, 0x6b, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, - 0x63, 0x65, 0x12, 0x88, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x12, 0x2d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, - 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x77, 0x69, - 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x80, 0x01, - 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2b, 0x2e, - 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, - 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x61, 0x67, 0x67, - 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, - 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, - 0x12, 0x0e, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, - 0x42, 0xe6, 0x01, 0x0a, 0x1b, 0x63, 0x6f, 0x6d, 0x2e, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, - 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, - 0x42, 0x09, 0x57, 0x69, 0x6b, 0x69, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3e, 0x67, - 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, - 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x61, - 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x77, - 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x77, 0x69, 0x6b, 0x69, 0x76, 0x31, 0xa2, 0x02, 0x03, - 0x41, 0x57, 0x58, 0xaa, 0x02, 0x17, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, - 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x57, 0x69, 0x6b, 0x69, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x17, - 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, - 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x23, 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, - 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, - 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, 0x19, - 0x41, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x3a, - 0x3a, 0x57, 0x69, 0x6b, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, +var File_consultingapis_wiki_v1_wiki_proto protoreflect.FileDescriptor + +var file_consultingapis_wiki_v1_wiki_proto_rawDesc = []byte{ + 0x0a, 0x21, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x16, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x1a, 0x1c, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2f, 0x61, 0x70, 0x69, 0x2f, 0x61, 0x6e, 0x6e, 0x6f, 0x74, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x2c, 0x0a, 0x14, 0x47, 0x65, 0x74, + 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x4d, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x6f, + 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x72, 0x65, + 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x5b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x70, 0x61, 0x72, 0x65, 0x6e, + 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x22, 0x87, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x36, 0x0a, 0x05, 0x69, + 0x74, 0x65, 0x6d, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, + 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x68, 0x61, 0x73, 0x5f, 0x6d, 0x6f, 0x72, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x68, 0x61, 0x73, 0x4d, 0x6f, 0x72, 0x65, 0x22, 0xfe, 0x03, + 0x0a, 0x08, 0x4e, 0x6f, 0x64, 0x65, 0x49, 0x74, 0x65, 0x6d, 0x12, 0x19, 0x0a, 0x08, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, + 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6f, 0x62, 0x6a, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x62, 0x6a, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x19, 0x0a, 0x08, 0x6f, 0x62, 0x6a, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x62, 0x6a, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, + 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x70, 0x61, 0x72, 0x65, 0x6e, 0x74, 0x4e, + 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, + 0x65, 0x54, 0x79, 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, + 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x26, 0x0a, 0x0f, 0x6f, 0x72, 0x69, 0x67, 0x69, 0x6e, 0x5f, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x72, 0x69, 0x67, + 0x69, 0x6e, 0x53, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x68, 0x61, 0x73, + 0x5f, 0x63, 0x68, 0x69, 0x6c, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x68, 0x61, + 0x73, 0x43, 0x68, 0x69, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, + 0x6f, 0x62, 0x6a, 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x62, 0x6a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6f, 0x62, 0x6a, 0x5f, 0x65, 0x64, 0x69, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x62, 0x6a, + 0x45, 0x64, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6e, 0x6f, 0x64, 0x65, + 0x5f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x3a, 0x0a, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x6f, 0x64, 0x65, 0x18, 0x0e, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x4e, 0x6f, 0x64, + 0x65, 0x49, 0x74, 0x65, 0x6d, 0x52, 0x07, 0x73, 0x75, 0x62, 0x4e, 0x6f, 0x64, 0x65, 0x32, 0x96, + 0x02, 0x0a, 0x0b, 0x57, 0x69, 0x6b, 0x69, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x86, + 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x12, 0x2c, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, + 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x6f, 0x63, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x18, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x12, 0x12, 0x10, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x2f, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x7e, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, + 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x2a, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, + 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, + 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x77, 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x4e, + 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x16, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x10, 0x12, 0x0e, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, + 0x31, 0x2f, 0x6e, 0x6f, 0x64, 0x65, 0x73, 0x42, 0xe0, 0x01, 0x0a, 0x1a, 0x63, 0x6f, 0x6d, 0x2e, + 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x77, + 0x69, 0x6b, 0x69, 0x2e, 0x76, 0x31, 0x42, 0x09, 0x57, 0x69, 0x6b, 0x69, 0x50, 0x72, 0x6f, 0x74, + 0x6f, 0x50, 0x01, 0x5a, 0x3d, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, + 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, + 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, + 0x70, 0x69, 0x73, 0x2f, 0x77, 0x69, 0x6b, 0x69, 0x2f, 0x76, 0x31, 0x3b, 0x77, 0x69, 0x6b, 0x69, + 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x57, 0x58, 0xaa, 0x02, 0x16, 0x43, 0x6f, 0x6e, 0x73, 0x75, + 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x57, 0x69, 0x6b, 0x69, 0x2e, 0x56, + 0x31, 0xca, 0x02, 0x16, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, + 0x69, 0x73, 0x5c, 0x57, 0x69, 0x6b, 0x69, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x22, 0x43, 0x6f, 0x6e, + 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x57, 0x69, 0x6b, 0x69, + 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, + 0x02, 0x18, 0x43, 0x6f, 0x6e, 0x73, 0x75, 0x6c, 0x74, 0x69, 0x6e, 0x67, 0x61, 0x70, 0x69, 0x73, + 0x3a, 0x3a, 0x57, 0x69, 0x6b, 0x69, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( - file_aggregatingapis_wiki_v1_wiki_proto_rawDescOnce sync.Once - file_aggregatingapis_wiki_v1_wiki_proto_rawDescData = file_aggregatingapis_wiki_v1_wiki_proto_rawDesc + file_consultingapis_wiki_v1_wiki_proto_rawDescOnce sync.Once + file_consultingapis_wiki_v1_wiki_proto_rawDescData = file_consultingapis_wiki_v1_wiki_proto_rawDesc ) -func file_aggregatingapis_wiki_v1_wiki_proto_rawDescGZIP() []byte { - file_aggregatingapis_wiki_v1_wiki_proto_rawDescOnce.Do(func() { - file_aggregatingapis_wiki_v1_wiki_proto_rawDescData = protoimpl.X.CompressGZIP(file_aggregatingapis_wiki_v1_wiki_proto_rawDescData) +func file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP() []byte { + file_consultingapis_wiki_v1_wiki_proto_rawDescOnce.Do(func() { + file_consultingapis_wiki_v1_wiki_proto_rawDescData = protoimpl.X.CompressGZIP(file_consultingapis_wiki_v1_wiki_proto_rawDescData) }) - return file_aggregatingapis_wiki_v1_wiki_proto_rawDescData -} - -var file_aggregatingapis_wiki_v1_wiki_proto_msgTypes = make([]protoimpl.MessageInfo, 5) -var file_aggregatingapis_wiki_v1_wiki_proto_goTypes = []interface{}{ - (*GetDocContentRequest)(nil), // 0: aggregatingapis.wiki.v1.GetDocContentRequest - (*GetDocContentResponse)(nil), // 1: aggregatingapis.wiki.v1.GetDocContentResponse - (*GetNodeListRequest)(nil), // 2: aggregatingapis.wiki.v1.GetNodeListRequest - (*GetNodeListResponse)(nil), // 3: aggregatingapis.wiki.v1.GetNodeListResponse - (*NodeItem)(nil), // 4: aggregatingapis.wiki.v1.NodeItem -} -var file_aggregatingapis_wiki_v1_wiki_proto_depIdxs = []int32{ - 4, // 0: aggregatingapis.wiki.v1.GetNodeListResponse.items:type_name -> aggregatingapis.wiki.v1.NodeItem - 4, // 1: aggregatingapis.wiki.v1.NodeItem.subNode:type_name -> aggregatingapis.wiki.v1.NodeItem - 0, // 2: aggregatingapis.wiki.v1.WikiService.GetDocContent:input_type -> aggregatingapis.wiki.v1.GetDocContentRequest - 2, // 3: aggregatingapis.wiki.v1.WikiService.GetNodeList:input_type -> aggregatingapis.wiki.v1.GetNodeListRequest - 1, // 4: aggregatingapis.wiki.v1.WikiService.GetDocContent:output_type -> aggregatingapis.wiki.v1.GetDocContentResponse - 3, // 5: aggregatingapis.wiki.v1.WikiService.GetNodeList:output_type -> aggregatingapis.wiki.v1.GetNodeListResponse + return file_consultingapis_wiki_v1_wiki_proto_rawDescData +} + +var file_consultingapis_wiki_v1_wiki_proto_msgTypes = make([]protoimpl.MessageInfo, 5) +var file_consultingapis_wiki_v1_wiki_proto_goTypes = []interface{}{ + (*GetDocContentRequest)(nil), // 0: consultingapis.wiki.v1.GetDocContentRequest + (*GetDocContentResponse)(nil), // 1: consultingapis.wiki.v1.GetDocContentResponse + (*GetNodeListRequest)(nil), // 2: consultingapis.wiki.v1.GetNodeListRequest + (*GetNodeListResponse)(nil), // 3: consultingapis.wiki.v1.GetNodeListResponse + (*NodeItem)(nil), // 4: consultingapis.wiki.v1.NodeItem +} +var file_consultingapis_wiki_v1_wiki_proto_depIdxs = []int32{ + 4, // 0: consultingapis.wiki.v1.GetNodeListResponse.items:type_name -> consultingapis.wiki.v1.NodeItem + 4, // 1: consultingapis.wiki.v1.NodeItem.subNode:type_name -> consultingapis.wiki.v1.NodeItem + 0, // 2: consultingapis.wiki.v1.WikiService.GetDocContent:input_type -> consultingapis.wiki.v1.GetDocContentRequest + 2, // 3: consultingapis.wiki.v1.WikiService.GetNodeList:input_type -> consultingapis.wiki.v1.GetNodeListRequest + 1, // 4: consultingapis.wiki.v1.WikiService.GetDocContent:output_type -> consultingapis.wiki.v1.GetDocContentResponse + 3, // 5: consultingapis.wiki.v1.WikiService.GetNodeList:output_type -> consultingapis.wiki.v1.GetNodeListResponse 4, // [4:6] is the sub-list for method output_type 2, // [2:4] is the sub-list for method input_type 2, // [2:2] is the sub-list for extension type_name @@ -525,13 +524,13 @@ var file_aggregatingapis_wiki_v1_wiki_proto_depIdxs = []int32{ 0, // [0:2] is the sub-list for field type_name } -func init() { file_aggregatingapis_wiki_v1_wiki_proto_init() } -func file_aggregatingapis_wiki_v1_wiki_proto_init() { - if File_aggregatingapis_wiki_v1_wiki_proto != nil { +func init() { file_consultingapis_wiki_v1_wiki_proto_init() } +func file_consultingapis_wiki_v1_wiki_proto_init() { + if File_consultingapis_wiki_v1_wiki_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_wiki_v1_wiki_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetDocContentRequest); i { case 0: return &v.state @@ -543,7 +542,7 @@ func file_aggregatingapis_wiki_v1_wiki_proto_init() { return nil } } - file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_wiki_v1_wiki_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetDocContentResponse); i { case 0: return &v.state @@ -555,7 +554,7 @@ func file_aggregatingapis_wiki_v1_wiki_proto_init() { return nil } } - file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_wiki_v1_wiki_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetNodeListRequest); i { case 0: return &v.state @@ -567,7 +566,7 @@ func file_aggregatingapis_wiki_v1_wiki_proto_init() { return nil } } - file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_wiki_v1_wiki_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetNodeListResponse); i { case 0: return &v.state @@ -579,7 +578,7 @@ func file_aggregatingapis_wiki_v1_wiki_proto_init() { return nil } } - file_aggregatingapis_wiki_v1_wiki_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_consultingapis_wiki_v1_wiki_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*NodeItem); i { case 0: return &v.state @@ -596,18 +595,18 @@ func file_aggregatingapis_wiki_v1_wiki_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_aggregatingapis_wiki_v1_wiki_proto_rawDesc, + RawDescriptor: file_consultingapis_wiki_v1_wiki_proto_rawDesc, NumEnums: 0, NumMessages: 5, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_aggregatingapis_wiki_v1_wiki_proto_goTypes, - DependencyIndexes: file_aggregatingapis_wiki_v1_wiki_proto_depIdxs, - MessageInfos: file_aggregatingapis_wiki_v1_wiki_proto_msgTypes, + GoTypes: file_consultingapis_wiki_v1_wiki_proto_goTypes, + DependencyIndexes: file_consultingapis_wiki_v1_wiki_proto_depIdxs, + MessageInfos: file_consultingapis_wiki_v1_wiki_proto_msgTypes, }.Build() - File_aggregatingapis_wiki_v1_wiki_proto = out.File - file_aggregatingapis_wiki_v1_wiki_proto_rawDesc = nil - file_aggregatingapis_wiki_v1_wiki_proto_goTypes = nil - file_aggregatingapis_wiki_v1_wiki_proto_depIdxs = nil + File_consultingapis_wiki_v1_wiki_proto = out.File + file_consultingapis_wiki_v1_wiki_proto_rawDesc = nil + file_consultingapis_wiki_v1_wiki_proto_goTypes = nil + file_consultingapis_wiki_v1_wiki_proto_depIdxs = nil } diff --git a/consultingapis/wiki/v1/wiki.pb.gw.go b/consultingapis/wiki/v1/wiki.pb.gw.go index 0bbe4ae..4eb91fa 100644 --- a/consultingapis/wiki/v1/wiki.pb.gw.go +++ b/consultingapis/wiki/v1/wiki.pb.gw.go @@ -1,5 +1,5 @@ // Code generated by protoc-gen-grpc-gateway. DO NOT EDIT. -// source: aggregatingapis/wiki/v1/wiki.proto +// source: consultingapis/wiki/v1/wiki.proto /* Package wikiv1 is a reverse proxy. @@ -116,7 +116,7 @@ func RegisterWikiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -140,7 +140,7 @@ func RegisterWikiServiceHandlerServer(ctx context.Context, mux *runtime.ServeMux ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -203,7 +203,7 @@ func RegisterWikiServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetDocContent", runtime.WithHTTPPathPattern("/wiki/v1/content")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return @@ -224,7 +224,7 @@ func RegisterWikiServiceHandlerClient(ctx context.Context, mux *runtime.ServeMux defer cancel() inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) var err error - ctx, err = runtime.AnnotateContext(ctx, mux, req, "/aggregatingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/consultingapis.wiki.v1.WikiService/GetNodeList", runtime.WithHTTPPathPattern("/wiki/v1/nodes")) if err != nil { runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) return diff --git a/consultingapis/wiki/v1/wiki_grpc.pb.go b/consultingapis/wiki/v1/wiki_grpc.pb.go index f7242e7..0412dba 100644 --- a/consultingapis/wiki/v1/wiki_grpc.pb.go +++ b/consultingapis/wiki/v1/wiki_grpc.pb.go @@ -2,7 +2,7 @@ // versions: // - protoc-gen-go-grpc v1.2.0 // - protoc (unknown) -// source: aggregatingapis/wiki/v1/wiki.proto +// source: consultingapis/wiki/v1/wiki.proto package wikiv1 @@ -36,7 +36,7 @@ func NewWikiServiceClient(cc grpc.ClientConnInterface) WikiServiceClient { func (c *wikiServiceClient) GetDocContent(ctx context.Context, in *GetDocContentRequest, opts ...grpc.CallOption) (*GetDocContentResponse, error) { out := new(GetDocContentResponse) - err := c.cc.Invoke(ctx, "/aggregatingapis.wiki.v1.WikiService/GetDocContent", in, out, opts...) + err := c.cc.Invoke(ctx, "/consultingapis.wiki.v1.WikiService/GetDocContent", in, out, opts...) if err != nil { return nil, err } @@ -45,7 +45,7 @@ func (c *wikiServiceClient) GetDocContent(ctx context.Context, in *GetDocContent func (c *wikiServiceClient) GetNodeList(ctx context.Context, in *GetNodeListRequest, opts ...grpc.CallOption) (*GetNodeListResponse, error) { out := new(GetNodeListResponse) - err := c.cc.Invoke(ctx, "/aggregatingapis.wiki.v1.WikiService/GetNodeList", in, out, opts...) + err := c.cc.Invoke(ctx, "/consultingapis.wiki.v1.WikiService/GetNodeList", in, out, opts...) if err != nil { return nil, err } @@ -94,7 +94,7 @@ func _WikiService_GetDocContent_Handler(srv interface{}, ctx context.Context, de } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/aggregatingapis.wiki.v1.WikiService/GetDocContent", + FullMethod: "/consultingapis.wiki.v1.WikiService/GetDocContent", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WikiServiceServer).GetDocContent(ctx, req.(*GetDocContentRequest)) @@ -112,7 +112,7 @@ func _WikiService_GetNodeList_Handler(srv interface{}, ctx context.Context, dec } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/aggregatingapis.wiki.v1.WikiService/GetNodeList", + FullMethod: "/consultingapis.wiki.v1.WikiService/GetNodeList", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(WikiServiceServer).GetNodeList(ctx, req.(*GetNodeListRequest)) @@ -124,7 +124,7 @@ func _WikiService_GetNodeList_Handler(srv interface{}, ctx context.Context, dec // It's only intended for direct use with grpc.RegisterService, // and not to be introspected or modified (even as a copy) var WikiService_ServiceDesc = grpc.ServiceDesc{ - ServiceName: "aggregatingapis.wiki.v1.WikiService", + ServiceName: "consultingapis.wiki.v1.WikiService", HandlerType: (*WikiServiceServer)(nil), Methods: []grpc.MethodDesc{ { @@ -137,5 +137,5 @@ var WikiService_ServiceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "aggregatingapis/wiki/v1/wiki.proto", + Metadata: "consultingapis/wiki/v1/wiki.proto", } diff --git a/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json b/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json index f48247f..47f1edc 100644 --- a/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json +++ b/docs/swagger/aggregatingapis/infostream/v1/infostream.swagger.json @@ -55,25 +55,22 @@ "$ref": "#/definitions/v1WeatherResponse" }, "schedule": { - "$ref": "#/definitions/v1scheduleResp" + "$ref": "#/definitions/v1ScheduleResp" }, "exam": { - "$ref": "#/definitions/v1examResp" + "$ref": "#/definitions/v1ExamResp" }, "score": { - "$ref": "#/definitions/v1scoreResp" + "$ref": "#/definitions/v1ScoreResp" }, "sunrun": { - "$ref": "#/definitions/v1sunRunResp" + "$ref": "#/definitions/v1SunRunResp" }, "card": { - "$ref": "#/definitions/v1cardResp" + "$ref": "#/definitions/v1CardResp" }, "electric": { - "$ref": "#/definitions/v1electricResp" - }, - "settings": { - "$ref": "#/definitions/v1settingsResp" + "$ref": "#/definitions/v1ElectricResp" } } }, @@ -104,81 +101,7 @@ } } }, - "v1GetInfostreamResponse": { - "type": "object", - "properties": { - "error": { - "type": "integer", - "format": "int64" - }, - "msg": { - "type": "string" - }, - "data": { - "$ref": "#/definitions/GetInfostreamResponseData" - } - } - }, - "v1WeatherData": { - "type": "object", - "properties": { - "aqi": { - "type": "integer", - "format": "int64" - }, - "desc": { - "type": "string" - }, - "skyconNow": { - "type": "string" - }, - "isRain": { - "type": "boolean" - }, - "willStop": { - "type": "boolean" - }, - "willRain": { - "type": "boolean" - }, - "RainContinue": { - "type": "integer", - "format": "int64" - }, - "RainCome": { - "type": "integer", - "format": "int64" - }, - "temperatureMax": { - "type": "number", - "format": "float" - }, - "temperatureMin": { - "type": "number", - "format": "float" - }, - "temperatureNow": { - "type": "number", - "format": "float" - }, - "timestamp": { - "type": "integer", - "format": "int64" - } - } - }, - "v1WeatherResponse": { - "type": "object", - "properties": { - "available": { - "type": "boolean" - }, - "data": { - "$ref": "#/definitions/v1WeatherData" - } - } - }, - "v1cardResp": { + "v1CardResp": { "type": "object", "properties": { "available": { @@ -190,7 +113,7 @@ } } }, - "v1electricData": { + "v1ElectricData": { "type": "object", "properties": { "fee": { @@ -204,18 +127,18 @@ } } }, - "v1electricResp": { + "v1ElectricResp": { "type": "object", "properties": { "available": { "type": "boolean" }, "data": { - "$ref": "#/definitions/v1electricData" + "$ref": "#/definitions/v1ElectricData" } } }, - "v1examData": { + "v1ExamData": { "type": "object", "properties": { "classroom": { @@ -247,7 +170,7 @@ } } }, - "v1examResp": { + "v1ExamResp": { "type": "object", "properties": { "available": { @@ -256,12 +179,27 @@ "data": { "type": "array", "items": { - "$ref": "#/definitions/v1examData" + "$ref": "#/definitions/v1ExamData" } } } }, - "v1scheduleData": { + "v1GetInfostreamResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/GetInfostreamResponseData" + } + } + }, + "v1ScheduleData": { "type": "object", "properties": { "startSection": { @@ -292,7 +230,7 @@ } } }, - "v1scheduleResp": { + "v1ScheduleResp": { "type": "object", "properties": { "available": { @@ -301,18 +239,18 @@ "today": { "type": "array", "items": { - "$ref": "#/definitions/v1scheduleData" + "$ref": "#/definitions/v1ScheduleData" } }, "tomorrow": { "type": "array", "items": { - "$ref": "#/definitions/v1scheduleData" + "$ref": "#/definitions/v1ScheduleData" } } } }, - "v1scoreData": { + "v1ScoreData": { "type": "object", "properties": { "schoolYear": { @@ -377,7 +315,7 @@ } } }, - "v1scoreResp": { + "v1ScoreResp": { "type": "object", "properties": { "available": { @@ -386,15 +324,12 @@ "data": { "type": "array", "items": { - "$ref": "#/definitions/v1scoreData" + "$ref": "#/definitions/v1ScoreData" } } } }, - "v1settingsResp": { - "type": "object" - }, - "v1sunRunData": { + "v1SunRunData": { "type": "object", "properties": { "amMileage": { @@ -464,14 +399,73 @@ } } }, - "v1sunRunResp": { + "v1SunRunResp": { "type": "object", "properties": { "available": { "type": "boolean" }, "data": { - "$ref": "#/definitions/v1sunRunData" + "$ref": "#/definitions/v1SunRunData" + } + } + }, + "v1WeatherData": { + "type": "object", + "properties": { + "aqi": { + "type": "integer", + "format": "int64" + }, + "desc": { + "type": "string" + }, + "skyconNow": { + "type": "string" + }, + "isRain": { + "type": "boolean" + }, + "willStop": { + "type": "boolean" + }, + "willRain": { + "type": "boolean" + }, + "RainContinue": { + "type": "integer", + "format": "int64" + }, + "RainCome": { + "type": "integer", + "format": "int64" + }, + "temperatureMax": { + "type": "number", + "format": "float" + }, + "temperatureMin": { + "type": "number", + "format": "float" + }, + "temperatureNow": { + "type": "number", + "format": "float" + }, + "timestamp": { + "type": "integer", + "format": "int64" + } + } + }, + "v1WeatherResponse": { + "type": "object", + "properties": { + "available": { + "type": "boolean" + }, + "data": { + "$ref": "#/definitions/v1WeatherData" } } } diff --git a/docs/swagger/consultingapis/faq/v1/faq.swagger.json b/docs/swagger/consultingapis/faq/v1/faq.swagger.json index 6d594cd..9b693aa 100644 --- a/docs/swagger/consultingapis/faq/v1/faq.swagger.json +++ b/docs/swagger/consultingapis/faq/v1/faq.swagger.json @@ -18,12 +18,12 @@ "paths": { "/faq/v1": { "get": { - "operationId": "FAQService_GetFAQDetail", + "operationId": "FAQService_GetFAQ", "responses": { "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1FAQ" + "$ref": "#/definitions/v1GetFAQResponse" } }, "default": { @@ -35,7 +35,7 @@ }, "parameters": [ { - "name": "id", + "name": "faqId", "in": "query", "required": false, "type": "string" @@ -51,7 +51,7 @@ "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1FAQ" + "$ref": "#/definitions/v1DeleteFAQResponse" } }, "default": { @@ -63,7 +63,7 @@ }, "parameters": [ { - "name": "id", + "name": "faqId", "in": "query", "required": false, "type": "string" @@ -79,7 +79,7 @@ "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1FAQ" + "$ref": "#/definitions/v1CreateFAQResponse" } }, "default": { @@ -91,7 +91,7 @@ }, "parameters": [ { - "name": "body", + "name": "data", "in": "body", "required": true, "schema": { @@ -109,8 +109,7 @@ "200": { "description": "A successful response.", "schema": { - "type": "object", - "properties": {} + "$ref": "#/definitions/v1UpdateFAQResponse" } }, "default": { @@ -122,44 +121,18 @@ }, "parameters": [ { - "name": "faqId", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "info.categoryId", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "info.question", - "in": "query", - "required": false, - "type": "string" - }, - { - "name": "info.answer", - "in": "query", - "required": false, - "type": "string" + "name": "data", + "in": "body", + "required": true, + "schema": { + "$ref": "#/definitions/v1FAQInfo" + } }, { - "name": "info.answerRichtext", + "name": "faqId", "in": "query", "required": false, "type": "string" - }, - { - "name": "info.tags", - "in": "query", - "required": false, - "type": "array", - "items": { - "type": "string" - }, - "collectionFormat": "multi" } ], "tags": [ @@ -239,12 +212,10 @@ "type": "object", "properties": { "@type": { - "type": "string", - "description": "A URL/resource name that uniquely identifies the type of the serialized\nprotocol buffer message. This string must contain at least\none \"/\" character. The last segment of the URL's path must represent\nthe fully qualified name of the type (as in\n`path/google.protobuf.Duration`). The name should be in a canonical form\n(e.g., leading \".\" is not accepted).\n\nIn practice, teams usually precompile into the binary all types that they\nexpect it to use in the context of Any. However, for URLs which use the\nscheme `http`, `https`, or no scheme, one can optionally set up a type\nserver that maps type URLs to message definitions as follows:\n\n* If no scheme is provided, `https` is assumed.\n* An HTTP GET on the URL must yield a [google.protobuf.Type][]\n value in binary format, or produce an error.\n* Applications are allowed to cache lookup results based on the\n URL, or have them precompiled into a binary to avoid any\n lookup. Therefore, binary compatibility needs to be preserved\n on changes to types. (Use versioned type names to manage\n breaking changes.)\n\nNote: this functionality is not currently available in the official\nprotobuf release, and it is not used for type URLs beginning with\ntype.googleapis.com.\n\nSchemes other than `http`, `https` (or the empty scheme) might be\nused with implementation specific semantics." + "type": "string" } }, - "additionalProperties": {}, - "description": "`Any` contains an arbitrary serialized protocol buffer message along with a\nURL that describes the type of the serialized message.\n\nProtobuf library provides support to pack/unpack Any values in the form\nof utility functions or additional generated methods of the Any type.\n\nExample 1: Pack and unpack a message in C++.\n\n Foo foo = ...;\n Any any;\n any.PackFrom(foo);\n ...\n if (any.UnpackTo(\u0026foo)) {\n ...\n }\n\nExample 2: Pack and unpack a message in Java.\n\n Foo foo = ...;\n Any any = Any.pack(foo);\n ...\n if (any.is(Foo.class)) {\n foo = any.unpack(Foo.class);\n }\n\n Example 3: Pack and unpack a message in Python.\n\n foo = Foo(...)\n any = Any()\n any.Pack(foo)\n ...\n if any.Is(Foo.DESCRIPTOR):\n any.Unpack(foo)\n ...\n\n Example 4: Pack and unpack a message in Go\n\n foo := \u0026pb.Foo{...}\n any, err := anypb.New(foo)\n if err != nil {\n ...\n }\n ...\n foo := \u0026pb.Foo{}\n if err := any.UnmarshalTo(foo); err != nil {\n ...\n }\n\nThe pack methods provided by protobuf library will by default use\n'type.googleapis.com/full.type.name' as the type URL and the unpack\nmethods only use the fully qualified type name after the last '/'\nin the type URL, for example \"foo.bar.com/x/y.z\" will yield type\nname \"y.z\".\n\n\nJSON\n====\nThe JSON representation of an `Any` value uses the regular\nrepresentation of the deserialized, embedded message, with an\nadditional field `@type` which contains the type URL. Example:\n\n package google.profile;\n message Person {\n string first_name = 1;\n string last_name = 2;\n }\n\n {\n \"@type\": \"type.googleapis.com/google.profile.Person\",\n \"firstName\": \u003cstring\u003e,\n \"lastName\": \u003cstring\u003e\n }\n\nIf the embedded message type is well-known and has a custom JSON\nrepresentation, that representation will be embedded adding a field\n`value` which holds the custom JSON in addition to the `@type`\nfield. Example (for message [google.protobuf.Duration][]):\n\n {\n \"@type\": \"type.googleapis.com/google.protobuf.Duration\",\n \"value\": \"1.212s\"\n }" + "additionalProperties": {} }, "rpcStatus": { "type": "object", @@ -322,6 +293,33 @@ } } }, + "v1CreateFAQResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1FAQ" + } + } + }, + "v1DeleteFAQResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, "v1FAQ": { "type": "object", "properties": { @@ -407,6 +405,21 @@ } } }, + "v1GetFAQResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1FAQ" + } + } + }, "v1SearchFAQAnswerRichtextResponse": { "type": "object", "properties": { @@ -421,6 +434,21 @@ } } }, + "v1UpdateFAQResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1FAQ" + } + } + }, "v1User": { "type": "object", "properties": { diff --git a/docs/swagger/consultingapis/wiki/v1/wiki.swagger.json b/docs/swagger/consultingapis/wiki/v1/wiki.swagger.json index 92566c6..cbda3cd 100644 --- a/docs/swagger/consultingapis/wiki/v1/wiki.swagger.json +++ b/docs/swagger/consultingapis/wiki/v1/wiki.swagger.json @@ -23,7 +23,7 @@ "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1DocTokenResp" + "$ref": "#/definitions/v1GetDocContentResponse" } }, "default": { @@ -53,7 +53,7 @@ "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1nodeResp" + "$ref": "#/definitions/v1GetNodeListResponse" } }, "default": { @@ -111,7 +111,7 @@ } } }, - "v1DocTokenResp": { + "v1GetDocContentResponse": { "type": "object", "properties": { "content": { @@ -123,7 +123,24 @@ } } }, - "v1nodeItem": { + "v1GetNodeListResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/v1NodeItem" + } + }, + "pageToken": { + "type": "string" + }, + "hasMore": { + "type": "boolean" + } + } + }, + "v1NodeItem": { "type": "object", "properties": { "spaceId": { @@ -168,27 +185,10 @@ "subNode": { "type": "array", "items": { - "$ref": "#/definitions/v1nodeItem" + "$ref": "#/definitions/v1NodeItem" } } } - }, - "v1nodeResp": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1nodeItem" - } - }, - "pageToken": { - "type": "string" - }, - "hasMore": { - "type": "boolean" - } - } } } } From 132fbb46e65adf4c5c11de7dcb03567bf297d70b Mon Sep 17 00:00:00 2001 From: sunalwaysknows <86180691+sunalwaysknows@users.noreply.github.com> Date: Tue, 5 Jul 2022 16:44:37 +0800 Subject: [PATCH 24/25] update(campusapis): GetStudentSchoolRollStatus --- campusapis/staff/v1/campus.pb.go | 2060 +++++++++++------ campusapis/staff/v1/campus.pb.gw.go | 67 + campusapis/staff/v1/campus.proto | 10 + .../campusapis/staff/v1/campus.swagger.json | 198 ++ 4 files changed, 1580 insertions(+), 755 deletions(-) diff --git a/campusapis/staff/v1/campus.pb.go b/campusapis/staff/v1/campus.pb.go index 31482c0..6d944eb 100644 --- a/campusapis/staff/v1/campus.pb.go +++ b/campusapis/staff/v1/campus.pb.go @@ -641,6 +641,146 @@ func (x *StudentInfo) GetTeacherName() string { return "" } +// 查询学生学籍状态返回体 +type GetStudentSchoolRollStatusResponse struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + Data *StudentSchoolRollStatus `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetStudentSchoolRollStatusResponse) Reset() { + *x = GetStudentSchoolRollStatusResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStudentSchoolRollStatusResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStudentSchoolRollStatusResponse) ProtoMessage() {} + +func (x *GetStudentSchoolRollStatusResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStudentSchoolRollStatusResponse.ProtoReflect.Descriptor instead. +func (*GetStudentSchoolRollStatusResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9} +} + +func (x *GetStudentSchoolRollStatusResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetStudentSchoolRollStatusResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetStudentSchoolRollStatusResponse) GetData() *StudentSchoolRollStatus { + if x != nil { + return x.Data + } + return nil +} + +// 学生学籍状态 +type StudentSchoolRollStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + //学号 + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + //学生姓名 + StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` + //学籍状态代码 + StatusCode string `protobuf:"bytes,3,opt,name=statusCode,proto3" json:"statusCode,omitempty"` + //学籍状态中文描述 + StatusDesc string `protobuf:"bytes,4,opt,name=statusDesc,proto3" json:"statusDesc,omitempty"` +} + +func (x *StudentSchoolRollStatus) Reset() { + *x = StudentSchoolRollStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StudentSchoolRollStatus) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StudentSchoolRollStatus) ProtoMessage() {} + +func (x *StudentSchoolRollStatus) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StudentSchoolRollStatus.ProtoReflect.Descriptor instead. +func (*StudentSchoolRollStatus) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10} +} + +func (x *StudentSchoolRollStatus) GetStaffId() string { + if x != nil { + return x.StaffId + } + return "" +} + +func (x *StudentSchoolRollStatus) GetStaffName() string { + if x != nil { + return x.StaffName + } + return "" +} + +func (x *StudentSchoolRollStatus) GetStatusCode() string { + if x != nil { + return x.StatusCode + } + return "" +} + +func (x *StudentSchoolRollStatus) GetStatusDesc() string { + if x != nil { + return x.StatusDesc + } + return "" +} + //查询贫困生信息返回体 type GetStudentNeedyInfoResponse struct { state protoimpl.MessageState @@ -655,7 +795,7 @@ type GetStudentNeedyInfoResponse struct { func (x *GetStudentNeedyInfoResponse) Reset() { *x = GetStudentNeedyInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -668,7 +808,7 @@ func (x *GetStudentNeedyInfoResponse) String() string { func (*GetStudentNeedyInfoResponse) ProtoMessage() {} func (x *GetStudentNeedyInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -681,7 +821,7 @@ func (x *GetStudentNeedyInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentNeedyInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentNeedyInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{11} } func (x *GetStudentNeedyInfoResponse) GetError() uint32 { @@ -726,7 +866,7 @@ type StudentNeedyInfo struct { func (x *StudentNeedyInfo) Reset() { *x = StudentNeedyInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -739,7 +879,7 @@ func (x *StudentNeedyInfo) String() string { func (*StudentNeedyInfo) ProtoMessage() {} func (x *StudentNeedyInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -752,7 +892,7 @@ func (x *StudentNeedyInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentNeedyInfo.ProtoReflect.Descriptor instead. func (*StudentNeedyInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12} } func (x *StudentNeedyInfo) GetStaffId() string { @@ -804,7 +944,7 @@ type GetStudentDormInfoResponse struct { func (x *GetStudentDormInfoResponse) Reset() { *x = GetStudentDormInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -817,7 +957,7 @@ func (x *GetStudentDormInfoResponse) String() string { func (*GetStudentDormInfoResponse) ProtoMessage() {} func (x *GetStudentDormInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -830,7 +970,7 @@ func (x *GetStudentDormInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentDormInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentDormInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{11} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{13} } func (x *GetStudentDormInfoResponse) GetError() uint32 { @@ -870,7 +1010,7 @@ type DormInfo struct { func (x *DormInfo) Reset() { *x = DormInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -883,7 +1023,7 @@ func (x *DormInfo) String() string { func (*DormInfo) ProtoMessage() {} func (x *DormInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -896,7 +1036,7 @@ func (x *DormInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use DormInfo.ProtoReflect.Descriptor instead. func (*DormInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{14} } func (x *DormInfo) GetStaffId() string { @@ -934,7 +1074,7 @@ type GetStudentBirthdayInfoResponse struct { func (x *GetStudentBirthdayInfoResponse) Reset() { *x = GetStudentBirthdayInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -947,7 +1087,7 @@ func (x *GetStudentBirthdayInfoResponse) String() string { func (*GetStudentBirthdayInfoResponse) ProtoMessage() {} func (x *GetStudentBirthdayInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -960,7 +1100,7 @@ func (x *GetStudentBirthdayInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdayInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentBirthdayInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{13} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{15} } func (x *GetStudentBirthdayInfoResponse) GetError() uint32 { @@ -1001,7 +1141,7 @@ type StudentBirthdayInfo struct { func (x *StudentBirthdayInfo) Reset() { *x = StudentBirthdayInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1014,7 +1154,7 @@ func (x *StudentBirthdayInfo) String() string { func (*StudentBirthdayInfo) ProtoMessage() {} func (x *StudentBirthdayInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1027,7 +1167,7 @@ func (x *StudentBirthdayInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentBirthdayInfo.ProtoReflect.Descriptor instead. func (*StudentBirthdayInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{14} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{16} } func (x *StudentBirthdayInfo) GetStaffId() string { @@ -1068,7 +1208,7 @@ type GetStudentBirthdaysInRequest struct { func (x *GetStudentBirthdaysInRequest) Reset() { *x = GetStudentBirthdaysInRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1081,7 +1221,7 @@ func (x *GetStudentBirthdaysInRequest) String() string { func (*GetStudentBirthdaysInRequest) ProtoMessage() {} func (x *GetStudentBirthdaysInRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1094,7 +1234,7 @@ func (x *GetStudentBirthdaysInRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdaysInRequest.ProtoReflect.Descriptor instead. func (*GetStudentBirthdaysInRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{15} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{17} } func (x *GetStudentBirthdaysInRequest) GetType() staff.Type { @@ -1131,7 +1271,7 @@ type GetStudentBirthdaysInResponse struct { func (x *GetStudentBirthdaysInResponse) Reset() { *x = GetStudentBirthdaysInResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1144,7 +1284,7 @@ func (x *GetStudentBirthdaysInResponse) String() string { func (*GetStudentBirthdaysInResponse) ProtoMessage() {} func (x *GetStudentBirthdaysInResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1157,7 +1297,7 @@ func (x *GetStudentBirthdaysInResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentBirthdaysInResponse.ProtoReflect.Descriptor instead. func (*GetStudentBirthdaysInResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{16} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{18} } func (x *GetStudentBirthdaysInResponse) GetBirthdays() []*StudentBirthdayInfo { @@ -1182,7 +1322,7 @@ type GetStudentRewardsResponse struct { func (x *GetStudentRewardsResponse) Reset() { *x = GetStudentRewardsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1195,7 +1335,7 @@ func (x *GetStudentRewardsResponse) String() string { func (*GetStudentRewardsResponse) ProtoMessage() {} func (x *GetStudentRewardsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1208,7 +1348,7 @@ func (x *GetStudentRewardsResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentRewardsResponse.ProtoReflect.Descriptor instead. func (*GetStudentRewardsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{17} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{19} } func (x *GetStudentRewardsResponse) GetError() uint32 { @@ -1255,7 +1395,7 @@ type StudentReward struct { func (x *StudentReward) Reset() { *x = StudentReward{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1268,7 +1408,7 @@ func (x *StudentReward) String() string { func (*StudentReward) ProtoMessage() {} func (x *StudentReward) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1281,7 +1421,7 @@ func (x *StudentReward) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentReward.ProtoReflect.Descriptor instead. func (*StudentReward) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{18} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{20} } func (x *StudentReward) GetStaffID() string { @@ -1341,7 +1481,7 @@ type GetStudentCourseSelectionsResponse struct { func (x *GetStudentCourseSelectionsResponse) Reset() { *x = GetStudentCourseSelectionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1354,7 +1494,7 @@ func (x *GetStudentCourseSelectionsResponse) String() string { func (*GetStudentCourseSelectionsResponse) ProtoMessage() {} func (x *GetStudentCourseSelectionsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1367,7 +1507,7 @@ func (x *GetStudentCourseSelectionsResponse) ProtoReflect() protoreflect.Message // Deprecated: Use GetStudentCourseSelectionsResponse.ProtoReflect.Descriptor instead. func (*GetStudentCourseSelectionsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{19} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{21} } func (x *GetStudentCourseSelectionsResponse) GetError() uint32 { @@ -1424,7 +1564,7 @@ type StudentCourseSelection struct { func (x *StudentCourseSelection) Reset() { *x = StudentCourseSelection{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1437,7 +1577,7 @@ func (x *StudentCourseSelection) String() string { func (*StudentCourseSelection) ProtoMessage() {} func (x *StudentCourseSelection) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1450,7 +1590,7 @@ func (x *StudentCourseSelection) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentCourseSelection.ProtoReflect.Descriptor instead. func (*StudentCourseSelection) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{20} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{22} } func (x *StudentCourseSelection) GetSchoolYear() string { @@ -1545,7 +1685,7 @@ type GetStudentGradeResponse struct { func (x *GetStudentGradeResponse) Reset() { *x = GetStudentGradeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1558,7 +1698,7 @@ func (x *GetStudentGradeResponse) String() string { func (*GetStudentGradeResponse) ProtoMessage() {} func (x *GetStudentGradeResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1571,7 +1711,7 @@ func (x *GetStudentGradeResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentGradeResponse.ProtoReflect.Descriptor instead. func (*GetStudentGradeResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{21} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{23} } func (x *GetStudentGradeResponse) GetError() uint32 { @@ -1636,7 +1776,7 @@ type StudentGrade struct { func (x *StudentGrade) Reset() { *x = StudentGrade{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1649,7 +1789,7 @@ func (x *StudentGrade) String() string { func (*StudentGrade) ProtoMessage() {} func (x *StudentGrade) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1662,7 +1802,7 @@ func (x *StudentGrade) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentGrade.ProtoReflect.Descriptor instead. func (*StudentGrade) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{22} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{24} } func (x *StudentGrade) GetSchoolYear() string { @@ -1785,7 +1925,7 @@ type GetStudentExamResponse struct { func (x *GetStudentExamResponse) Reset() { *x = GetStudentExamResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1798,7 +1938,7 @@ func (x *GetStudentExamResponse) String() string { func (*GetStudentExamResponse) ProtoMessage() {} func (x *GetStudentExamResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1811,7 +1951,7 @@ func (x *GetStudentExamResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentExamResponse.ProtoReflect.Descriptor instead. func (*GetStudentExamResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{23} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{25} } func (x *GetStudentExamResponse) GetError() uint32 { @@ -1864,7 +2004,7 @@ type StudentExam struct { func (x *StudentExam) Reset() { *x = StudentExam{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1877,7 +2017,7 @@ func (x *StudentExam) String() string { func (*StudentExam) ProtoMessage() {} func (x *StudentExam) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[24] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1890,7 +2030,7 @@ func (x *StudentExam) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentExam.ProtoReflect.Descriptor instead. func (*StudentExam) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{24} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{26} } func (x *StudentExam) GetClassroom() string { @@ -1956,48 +2096,35 @@ func (x *StudentExam) GetStaffId() string { return "" } -// 推送学生门禁通行信息-请求关键字 -type PostStudentGateAccessRequest struct { +// 查询学生GPA返回体 +type GetStudentGPAResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 学工号(重要) - StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` - // 请假类型,数字,一个数字对应一大类请假,枚举及含义: - // 0->临时请假 | 1->当天假 | 2->单位实习(目前没用)| - // 3->特殊(目前没用) | 4->身份码(目前没用) | - // 5->离校 | 6->按周(目前没用) | 7->按月(目前没用) - DayOffType string `protobuf:"bytes,2,opt,name=dayOffType,proto3" json:"dayOffType,omitempty"` - // 请假类型,中文名 - DayOffName string `protobuf:"bytes,3,opt,name=dayOffName,proto3" json:"dayOffName,omitempty"` - // 开始时间(重要) - TimeStart string `protobuf:"bytes,4,opt,name=timeStart,proto3" json:"timeStart,omitempty"` - // 结束时间(重要) - TimeEnd string `protobuf:"bytes,5,opt,name=timeEnd,proto3" json:"timeEnd,omitempty"` - // 假条 uid - Uid string `protobuf:"bytes,6,opt,name=uid,proto3" json:"uid,omitempty"` - // 闸机牌子(重要),枚举及含义:hikvision -> 海康 | uniview -> 宇视 - Target string `protobuf:"bytes,7,opt,name=Target,proto3" json:"Target,omitempty"` + Error uint32 `protobuf:"varint,1,opt,name=error,proto3" json:"error,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` + // 绩点详情 + Data *StudentGPA `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } -func (x *PostStudentGateAccessRequest) Reset() { - *x = PostStudentGateAccessRequest{} +func (x *GetStudentGPAResponse) Reset() { + *x = GetStudentGPAResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *PostStudentGateAccessRequest) String() string { +func (x *GetStudentGPAResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*PostStudentGateAccessRequest) ProtoMessage() {} +func (*GetStudentGPAResponse) ProtoMessage() {} -func (x *PostStudentGateAccessRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] +func (x *GetStudentGPAResponse) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2008,37 +2135,305 @@ func (x *PostStudentGateAccessRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use PostStudentGateAccessRequest.ProtoReflect.Descriptor instead. -func (*PostStudentGateAccessRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{25} -} - -func (x *PostStudentGateAccessRequest) GetStaffId() string { - if x != nil { - return x.StaffId - } - return "" +// Deprecated: Use GetStudentGPAResponse.ProtoReflect.Descriptor instead. +func (*GetStudentGPAResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{27} } -func (x *PostStudentGateAccessRequest) GetDayOffType() string { +func (x *GetStudentGPAResponse) GetError() uint32 { if x != nil { - return x.DayOffType + return x.Error } - return "" + return 0 } -func (x *PostStudentGateAccessRequest) GetDayOffName() string { +func (x *GetStudentGPAResponse) GetMsg() string { if x != nil { - return x.DayOffName + return x.Msg } return "" } -func (x *PostStudentGateAccessRequest) GetTimeStart() string { +func (x *GetStudentGPAResponse) GetData() *StudentGPA { if x != nil { - return x.TimeStart + return x.Data } - return "" + return nil +} + +// 考试详情 +type StudentGPA struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 每学期绩点 + PerSemester []*GPAPerSemester `protobuf:"bytes,1,rep,name=perSemester,proto3" json:"perSemester,omitempty"` + // 总绩点 + Total *GPATotal `protobuf:"bytes,2,opt,name=total,proto3" json:"total,omitempty"` +} + +func (x *StudentGPA) Reset() { + *x = StudentGPA{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StudentGPA) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StudentGPA) ProtoMessage() {} + +func (x *StudentGPA) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StudentGPA.ProtoReflect.Descriptor instead. +func (*StudentGPA) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{28} +} + +func (x *StudentGPA) GetPerSemester() []*GPAPerSemester { + if x != nil { + return x.PerSemester + } + return nil +} + +func (x *StudentGPA) GetTotal() *GPATotal { + if x != nil { + return x.Total + } + return nil +} + +type GPAPerSemester struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 学年 + SchoolYear string `protobuf:"bytes,1,opt,name=schoolYear,proto3" json:"schoolYear,omitempty"` + // 学期 + Semester string `protobuf:"bytes,2,opt,name=semester,proto3" json:"semester,omitempty"` + // 绩点 + GradePointAverage string `protobuf:"bytes,3,opt,name=gradePointAverage,proto3" json:"gradePointAverage,omitempty"` + // 学号 + StaffID string `protobuf:"bytes,4,opt,name=staffID,proto3" json:"staffID,omitempty"` +} + +func (x *GPAPerSemester) Reset() { + *x = GPAPerSemester{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GPAPerSemester) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GPAPerSemester) ProtoMessage() {} + +func (x *GPAPerSemester) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GPAPerSemester.ProtoReflect.Descriptor instead. +func (*GPAPerSemester) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{29} +} + +func (x *GPAPerSemester) GetSchoolYear() string { + if x != nil { + return x.SchoolYear + } + return "" +} + +func (x *GPAPerSemester) GetSemester() string { + if x != nil { + return x.Semester + } + return "" +} + +func (x *GPAPerSemester) GetGradePointAverage() string { + if x != nil { + return x.GradePointAverage + } + return "" +} + +func (x *GPAPerSemester) GetStaffID() string { + if x != nil { + return x.StaffID + } + return "" +} + +type GPATotal struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 绩点 + GradePointAverage string `protobuf:"bytes,1,opt,name=gradePointAverage,proto3" json:"gradePointAverage,omitempty"` + // 学号 + StaffID string `protobuf:"bytes,2,opt,name=staffID,proto3" json:"staffID,omitempty"` +} + +func (x *GPATotal) Reset() { + *x = GPATotal{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GPATotal) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GPATotal) ProtoMessage() {} + +func (x *GPATotal) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GPATotal.ProtoReflect.Descriptor instead. +func (*GPATotal) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{30} +} + +func (x *GPATotal) GetGradePointAverage() string { + if x != nil { + return x.GradePointAverage + } + return "" +} + +func (x *GPATotal) GetStaffID() string { + if x != nil { + return x.StaffID + } + return "" +} + +// 推送学生门禁通行信息-请求关键字 +type PostStudentGateAccessRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 学工号(重要) + StaffId string `protobuf:"bytes,1,opt,name=staffId,proto3" json:"staffId,omitempty"` + // 请假类型,数字,一个数字对应一大类请假,枚举及含义: + // 0->临时请假 | 1->当天假 | 2->单位实习(目前没用)| + // 3->特殊(目前没用) | 4->身份码(目前没用) | + // 5->离校 | 6->按周(目前没用) | 7->按月(目前没用) + DayOffType string `protobuf:"bytes,2,opt,name=dayOffType,proto3" json:"dayOffType,omitempty"` + // 请假类型,中文名 + DayOffName string `protobuf:"bytes,3,opt,name=dayOffName,proto3" json:"dayOffName,omitempty"` + // 开始时间(重要) + TimeStart string `protobuf:"bytes,4,opt,name=timeStart,proto3" json:"timeStart,omitempty"` + // 结束时间(重要) + TimeEnd string `protobuf:"bytes,5,opt,name=timeEnd,proto3" json:"timeEnd,omitempty"` + // 假条 uid + Uid string `protobuf:"bytes,6,opt,name=uid,proto3" json:"uid,omitempty"` + // 闸机牌子(重要),枚举及含义:hikvision -> 海康 | uniview -> 宇视 + Target string `protobuf:"bytes,7,opt,name=Target,proto3" json:"Target,omitempty"` +} + +func (x *PostStudentGateAccessRequest) Reset() { + *x = PostStudentGateAccessRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PostStudentGateAccessRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PostStudentGateAccessRequest) ProtoMessage() {} + +func (x *PostStudentGateAccessRequest) ProtoReflect() protoreflect.Message { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use PostStudentGateAccessRequest.ProtoReflect.Descriptor instead. +func (*PostStudentGateAccessRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{31} +} + +func (x *PostStudentGateAccessRequest) GetStaffId() string { + if x != nil { + return x.StaffId + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetDayOffType() string { + if x != nil { + return x.DayOffType + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetDayOffName() string { + if x != nil { + return x.DayOffName + } + return "" +} + +func (x *PostStudentGateAccessRequest) GetTimeStart() string { + if x != nil { + return x.TimeStart + } + return "" } func (x *PostStudentGateAccessRequest) GetTimeEnd() string { @@ -2076,7 +2471,7 @@ type PostStudentGateAccessResponse struct { func (x *PostStudentGateAccessResponse) Reset() { *x = PostStudentGateAccessResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2089,7 +2484,7 @@ func (x *PostStudentGateAccessResponse) String() string { func (*PostStudentGateAccessResponse) ProtoMessage() {} func (x *PostStudentGateAccessResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[26] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2102,7 +2497,7 @@ func (x *PostStudentGateAccessResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use PostStudentGateAccessResponse.ProtoReflect.Descriptor instead. func (*PostStudentGateAccessResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{26} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{32} } func (x *PostStudentGateAccessResponse) GetError() uint32 { @@ -2140,7 +2535,7 @@ type GetStudentStaySchoolInfoResponse struct { func (x *GetStudentStaySchoolInfoResponse) Reset() { *x = GetStudentStaySchoolInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2153,7 +2548,7 @@ func (x *GetStudentStaySchoolInfoResponse) String() string { func (*GetStudentStaySchoolInfoResponse) ProtoMessage() {} func (x *GetStudentStaySchoolInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2166,7 +2561,7 @@ func (x *GetStudentStaySchoolInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentStaySchoolInfoResponse.ProtoReflect.Descriptor instead. func (*GetStudentStaySchoolInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{27} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{33} } func (x *GetStudentStaySchoolInfoResponse) GetError() uint32 { @@ -2231,7 +2626,7 @@ type StudentStaySchoolInfo struct { func (x *StudentStaySchoolInfo) Reset() { *x = StudentStaySchoolInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2244,7 +2639,7 @@ func (x *StudentStaySchoolInfo) String() string { func (*StudentStaySchoolInfo) ProtoMessage() {} func (x *StudentStaySchoolInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[28] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2257,7 +2652,7 @@ func (x *StudentStaySchoolInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentStaySchoolInfo.ProtoReflect.Descriptor instead. func (*StudentStaySchoolInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{28} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{34} } func (x *StudentStaySchoolInfo) GetStaffId() string { @@ -2381,7 +2776,7 @@ type GetFreshmanBaseInfoRequest struct { func (x *GetFreshmanBaseInfoRequest) Reset() { *x = GetFreshmanBaseInfoRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2394,7 +2789,7 @@ func (x *GetFreshmanBaseInfoRequest) String() string { func (*GetFreshmanBaseInfoRequest) ProtoMessage() {} func (x *GetFreshmanBaseInfoRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[29] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2407,7 +2802,7 @@ func (x *GetFreshmanBaseInfoRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanBaseInfoRequest.ProtoReflect.Descriptor instead. func (*GetFreshmanBaseInfoRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{29} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{35} } func (x *GetFreshmanBaseInfoRequest) GetStaffId() string { @@ -2447,7 +2842,7 @@ type GetFreshmanDetailRequest struct { func (x *GetFreshmanDetailRequest) Reset() { *x = GetFreshmanDetailRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2460,7 +2855,7 @@ func (x *GetFreshmanDetailRequest) String() string { func (*GetFreshmanDetailRequest) ProtoMessage() {} func (x *GetFreshmanDetailRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2473,7 +2868,7 @@ func (x *GetFreshmanDetailRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanDetailRequest.ProtoReflect.Descriptor instead. func (*GetFreshmanDetailRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{30} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{36} } func (x *GetFreshmanDetailRequest) GetStaffId() string { @@ -2513,7 +2908,7 @@ type GetFreshmanRoommatesRequest struct { func (x *GetFreshmanRoommatesRequest) Reset() { *x = GetFreshmanRoommatesRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2526,7 +2921,7 @@ func (x *GetFreshmanRoommatesRequest) String() string { func (*GetFreshmanRoommatesRequest) ProtoMessage() {} func (x *GetFreshmanRoommatesRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2539,7 +2934,7 @@ func (x *GetFreshmanRoommatesRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanRoommatesRequest.ProtoReflect.Descriptor instead. func (*GetFreshmanRoommatesRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{31} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{37} } func (x *GetFreshmanRoommatesRequest) GetStaffId() string { @@ -2581,7 +2976,7 @@ type FreshmanKeywordRequest struct { func (x *FreshmanKeywordRequest) Reset() { *x = FreshmanKeywordRequest{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2594,7 +2989,7 @@ func (x *FreshmanKeywordRequest) String() string { func (*FreshmanKeywordRequest) ProtoMessage() {} func (x *FreshmanKeywordRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2607,7 +3002,7 @@ func (x *FreshmanKeywordRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanKeywordRequest.ProtoReflect.Descriptor instead. func (*FreshmanKeywordRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{32} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{38} } func (x *FreshmanKeywordRequest) GetStaffId() string { @@ -2644,7 +3039,7 @@ type GetFreshmanBaseInfoResponse struct { func (x *GetFreshmanBaseInfoResponse) Reset() { *x = GetFreshmanBaseInfoResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2657,7 +3052,7 @@ func (x *GetFreshmanBaseInfoResponse) String() string { func (*GetFreshmanBaseInfoResponse) ProtoMessage() {} func (x *GetFreshmanBaseInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[33] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2670,7 +3065,7 @@ func (x *GetFreshmanBaseInfoResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanBaseInfoResponse.ProtoReflect.Descriptor instead. func (*GetFreshmanBaseInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{33} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{39} } func (x *GetFreshmanBaseInfoResponse) GetError() uint32 { @@ -2717,7 +3112,7 @@ type FreshmanBaseInfo struct { func (x *FreshmanBaseInfo) Reset() { *x = FreshmanBaseInfo{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2730,7 +3125,7 @@ func (x *FreshmanBaseInfo) String() string { func (*FreshmanBaseInfo) ProtoMessage() {} func (x *FreshmanBaseInfo) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[34] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2743,7 +3138,7 @@ func (x *FreshmanBaseInfo) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanBaseInfo.ProtoReflect.Descriptor instead. func (*FreshmanBaseInfo) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{34} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{40} } func (x *FreshmanBaseInfo) GetStaffId() string { @@ -2801,7 +3196,7 @@ type GetFreshmanDetailResponse struct { func (x *GetFreshmanDetailResponse) Reset() { *x = GetFreshmanDetailResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2814,7 +3209,7 @@ func (x *GetFreshmanDetailResponse) String() string { func (*GetFreshmanDetailResponse) ProtoMessage() {} func (x *GetFreshmanDetailResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[35] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2827,7 +3222,7 @@ func (x *GetFreshmanDetailResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanDetailResponse.ProtoReflect.Descriptor instead. func (*GetFreshmanDetailResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{35} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{41} } func (x *GetFreshmanDetailResponse) GetError() uint32 { @@ -2909,7 +3304,7 @@ type FreshmanDetail struct { func (x *FreshmanDetail) Reset() { *x = FreshmanDetail{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2922,7 +3317,7 @@ func (x *FreshmanDetail) String() string { func (*FreshmanDetail) ProtoMessage() {} func (x *FreshmanDetail) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2935,7 +3330,7 @@ func (x *FreshmanDetail) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanDetail.ProtoReflect.Descriptor instead. func (*FreshmanDetail) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{36} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{42} } func (x *FreshmanDetail) GetStaffId() string { @@ -3128,7 +3523,7 @@ type GetFreshmanRoommatesResponse struct { func (x *GetFreshmanRoommatesResponse) Reset() { *x = GetFreshmanRoommatesResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[37] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3141,7 +3536,7 @@ func (x *GetFreshmanRoommatesResponse) String() string { func (*GetFreshmanRoommatesResponse) ProtoMessage() {} func (x *GetFreshmanRoommatesResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[37] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3154,7 +3549,7 @@ func (x *GetFreshmanRoommatesResponse) ProtoReflect() protoreflect.Message { // Deprecated: Use GetFreshmanRoommatesResponse.ProtoReflect.Descriptor instead. func (*GetFreshmanRoommatesResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{37} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{43} } func (x *GetFreshmanRoommatesResponse) GetError() uint32 { @@ -3192,7 +3587,7 @@ type FreshmanRoommate struct { func (x *FreshmanRoommate) Reset() { *x = FreshmanRoommate{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[38] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3205,7 +3600,7 @@ func (x *FreshmanRoommate) String() string { func (*FreshmanRoommate) ProtoMessage() {} func (x *FreshmanRoommate) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[38] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[44] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3218,7 +3613,7 @@ func (x *FreshmanRoommate) ProtoReflect() protoreflect.Message { // Deprecated: Use FreshmanRoommate.ProtoReflect.Descriptor instead. func (*FreshmanRoommate) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{38} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{44} } func (x *FreshmanRoommate) GetStaffName() string { @@ -3257,7 +3652,7 @@ type StudentNeedyInfo_Nested struct { func (x *StudentNeedyInfo_Nested) Reset() { *x = StudentNeedyInfo_Nested{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[39] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3270,7 +3665,7 @@ func (x *StudentNeedyInfo_Nested) String() string { func (*StudentNeedyInfo_Nested) ProtoMessage() {} func (x *StudentNeedyInfo_Nested) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[39] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[45] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3283,7 +3678,7 @@ func (x *StudentNeedyInfo_Nested) ProtoReflect() protoreflect.Message { // Deprecated: Use StudentNeedyInfo_Nested.ProtoReflect.Descriptor instead. func (*StudentNeedyInfo_Nested) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10, 0} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12, 0} } func (x *StudentNeedyInfo_Nested) GetSchoolYear() int32 { @@ -3312,7 +3707,7 @@ type PostStudentGateAccessResponse_Data struct { func (x *PostStudentGateAccessResponse_Data) Reset() { *x = PostStudentGateAccessResponse_Data{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[40] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[46] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -3325,7 +3720,7 @@ func (x *PostStudentGateAccessResponse_Data) String() string { func (*PostStudentGateAccessResponse_Data) ProtoMessage() {} func (x *PostStudentGateAccessResponse_Data) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[40] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[46] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3338,7 +3733,7 @@ func (x *PostStudentGateAccessResponse_Data) ProtoReflect() protoreflect.Message // Deprecated: Use PostStudentGateAccessResponse_Data.ProtoReflect.Descriptor instead. func (*PostStudentGateAccessResponse_Data) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{26, 0} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{32, 0} } func (x *PostStudentGateAccessResponse_Data) GetDone() bool { @@ -3436,534 +3831,603 @@ var file_campusapis_staff_v1_campus_proto_rawDesc = []byte{ 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, - 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, - 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x8e, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x40, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, + 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x91, 0x01, 0x0a, 0x17, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x44, 0x65, + 0x73, 0x63, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x44, 0x65, 0x73, 0x63, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x92, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x03, 0x73, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, + 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x05, 0x69, 0x74, + 0x65, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, + 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x2e, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c, + 0x0a, 0x06, 0x4e, 0x65, 0x73, 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, + 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, + 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x1a, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x31, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x54, 0x0a, 0x08, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1e, + 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, + 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0x5f, 0x0a, 0x13, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, + 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x72, + 0x74, 0x68, 0x64, 0x61, 0x79, 0x22, 0x72, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x16, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x05, 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x64, 0x61, 0x79, 0x22, 0x67, 0x0a, 0x1d, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, + 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, + 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x73, 0x22, 0x7b, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0x92, 0x02, 0x0a, 0x10, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, - 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x73, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x73, 0x65, - 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x12, 0x42, 0x0a, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x18, 0x05, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, + 0xc5, 0x01, 0x0a, 0x0d, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x77, + 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, + 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, + 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, + 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, + 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x8d, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x2e, 0x4e, 0x65, 0x73, 0x74, - 0x65, 0x64, 0x52, 0x05, 0x69, 0x74, 0x65, 0x6d, 0x73, 0x1a, 0x4c, 0x0a, 0x06, 0x4e, 0x65, 0x73, - 0x74, 0x65, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, - 0x65, 0x61, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0c, 0x6e, 0x65, 0x65, 0x64, 0x79, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x22, 0x77, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x31, 0x0a, - 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x54, 0x0a, 0x08, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, - 0x6e, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x69, - 0x6e, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x72, 0x6f, 0x6f, 0x6d, 0x22, 0x86, 0x01, 0x0a, 0x1e, 0x47, 0x65, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x3c, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, - 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x5f, 0x0a, 0x13, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, - 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, - 0x22, 0x72, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, - 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x2a, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x16, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x54, 0x79, 0x70, 0x65, 0x52, 0x04, 0x74, 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, - 0x6d, 0x6f, 0x6e, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6d, 0x6f, 0x6e, - 0x74, 0x68, 0x12, 0x10, 0x0a, 0x03, 0x64, 0x61, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x03, 0x64, 0x61, 0x79, 0x22, 0x67, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x46, 0x0a, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x09, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x22, 0x7b, 0x0a, - 0x19, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, - 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x36, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xc5, 0x01, 0x0a, 0x0d, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0x18, 0x0a, 0x07, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, - 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, - 0x61, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, - 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, - 0x12, 0x20, 0x0a, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x4c, 0x65, 0x76, - 0x65, 0x6c, 0x22, 0x8d, 0x01, 0x0a, 0x22, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x3f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, - 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x22, 0xe8, 0x02, 0x0a, 0x16, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, - 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, + 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xe8, 0x02, 0x0a, 0x16, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, + 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, + 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, + 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, + 0x6d, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, + 0x6f, 0x6d, 0x22, 0x78, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, + 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x03, 0x0a, + 0x0c, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x49, 0x44, 0x12, - 0x20, 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x6f, 0x6f, 0x6d, 0x22, 0x78, 0x0a, - 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, - 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, - 0x12, 0x35, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, - 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x03, 0x0a, 0x0c, 0x53, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, - 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, - 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x63, - 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x12, 0x1e, - 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, 0x6c, 0x12, 0x28, - 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, - 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x63, 0x6f, 0x72, - 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, - 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, 0x50, 0x41, 0x18, 0x0f, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0x76, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x34, 0x0a, 0x04, 0x64, 0x61, - 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x22, 0x85, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, - 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, 0x6f, 0x6d, 0x12, 0x16, - 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, - 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x73, 0x65, - 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, 0x65, 0x61, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0xda, 0x01, 0x0a, 0x1c, 0x50, 0x6f, 0x73, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, - 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, 0x0a, - 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x4b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, - 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x34, 0x0a, 0x04, - 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, + 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, + 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x6f, + 0x72, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x12, + 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x69, 0x6c, 0x79, 0x12, + 0x22, 0x0a, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, 0x65, 0x72, 0x6d, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x4d, 0x69, 0x64, 0x54, + 0x65, 0x72, 0x6d, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, 0x6e, 0x61, + 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x46, 0x69, + 0x6e, 0x61, 0x6c, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, + 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x63, + 0x6f, 0x72, 0x65, 0x53, 0x75, 0x62, 0x73, 0x74, 0x69, 0x74, 0x75, 0x74, 0x65, 0x12, 0x24, 0x0a, + 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, 0x69, 0x63, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x50, 0x72, 0x61, 0x63, 0x74, + 0x69, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x72, 0x65, 0x64, 0x69, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x47, + 0x50, 0x41, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x47, 0x50, 0x41, 0x22, 0x76, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, 0x2e, + 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, - 0x85, 0x04, 0x0a, 0x15, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, - 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, - 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, - 0x65, 0x31, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, - 0x65, 0x31, 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, 0x6e, - 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, 0x6e, - 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, - 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x2c, 0x0a, - 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, - 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x75, - 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x75, - 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, 0x75, - 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, - 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x46, 0x72, - 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, - 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x6a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x85, 0x02, 0x0a, 0x0b, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, 0x6f, + 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x72, + 0x6f, 0x6f, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, + 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, + 0x78, 0x61, 0x6d, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x61, 0x6d, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, + 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, + 0x65, 0x61, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, + 0x12, 0x0a, 0x04, 0x73, 0x65, 0x61, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x73, + 0x65, 0x61, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x22, 0x74, 0x0a, + 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x50, 0x41, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x33, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x50, 0x41, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x88, 0x01, 0x0a, 0x0a, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, + 0x50, 0x41, 0x12, 0x45, 0x0a, 0x0b, 0x70, 0x65, 0x72, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x50, + 0x41, 0x50, 0x65, 0x72, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x52, 0x0b, 0x70, 0x65, + 0x72, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x33, 0x0a, 0x05, 0x74, 0x6f, 0x74, + 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x50, 0x41, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x05, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x22, 0x94, + 0x01, 0x0a, 0x0e, 0x47, 0x50, 0x41, 0x50, 0x65, 0x72, 0x53, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, + 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x59, 0x65, 0x61, + 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x65, 0x6d, 0x65, 0x73, 0x74, 0x65, 0x72, 0x12, 0x2c, 0x0a, + 0x11, 0x67, 0x72, 0x61, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x76, 0x65, 0x72, 0x61, + 0x67, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x67, 0x72, 0x61, 0x64, 0x65, 0x50, + 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x44, 0x22, 0x52, 0x0a, 0x08, 0x47, 0x50, 0x41, 0x54, 0x6f, 0x74, 0x61, + 0x6c, 0x12, 0x2c, 0x0a, 0x11, 0x67, 0x72, 0x61, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, + 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x67, 0x72, + 0x61, 0x64, 0x65, 0x50, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x76, 0x65, 0x72, 0x61, 0x67, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x44, 0x22, 0xda, 0x01, 0x0a, 0x1c, 0x50, 0x6f, + 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x61, 0x79, 0x4f, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, 0x72, + 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, 0x69, 0x6d, 0x65, 0x45, 0x6e, 0x64, 0x12, 0x10, 0x0a, 0x03, + 0x75, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x22, 0xca, 0x01, 0x0a, 0x1d, 0x50, 0x6f, 0x73, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x4b, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x37, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x2e, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x1a, 0x34, 0x0a, + 0x04, 0x44, 0x61, 0x74, 0x61, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x08, 0x52, 0x04, 0x64, 0x6f, 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x22, 0x8a, 0x01, 0x0a, 0x20, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x3e, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x2a, + 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, + 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x85, 0x04, 0x0a, 0x15, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, + 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x70, 0x6f, 0x72, 0x74, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, + 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x74, 0x69, 0x6d, 0x65, 0x31, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, + 0x6d, 0x65, 0x31, 0x45, 0x6e, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, + 0x6d, 0x65, 0x31, 0x45, 0x6e, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x69, 0x6d, 0x65, + 0x32, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, + 0x6e, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x32, 0x45, + 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x74, 0x65, 0x61, 0x63, + 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x2c, + 0x0a, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x74, 0x65, 0x61, 0x63, 0x68, + 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, + 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1e, 0x0a, 0x0a, + 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x26, 0x0a, 0x0e, + 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x75, 0x6e, 0x69, 0x74, 0x52, 0x65, 0x76, 0x69, 0x65, 0x77, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x61, 0x6e, 0x63, 0x65, 0x6c, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x61, 0x6e, 0x63, + 0x65, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6c, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x46, + 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, + 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x6a, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, + 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, + 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, + 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, + 0x4e, 0x6f, 0x22, 0x6d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, + 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, - 0x6f, 0x22, 0x6d, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, - 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, - 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, - 0x22, 0x68, 0x0a, 0x16, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x4b, 0x65, 0x79, 0x77, - 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, - 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x80, 0x01, 0x0a, 0x1b, 0x47, - 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, - 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xba, 0x01, - 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, - 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, - 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, - 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, 0x7c, 0x0a, 0x19, 0x47, 0x65, - 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, - 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x05, 0x0a, 0x0e, 0x46, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x73, + 0x6f, 0x22, 0x68, 0x0a, 0x16, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x4b, 0x65, 0x79, + 0x77, 0x6f, 0x72, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, - 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, - 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, 0x6f, - 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, 0x68, - 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, 0x72, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, 0x6f, - 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x20, 0x0a, - 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x22, 0x0a, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, - 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, - 0x6f, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x73, 0x73, 0x69, - 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x73, 0x73, - 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x4c, - 0x53, 0x54, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4c, 0x53, 0x54, 0x44, 0x12, - 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, - 0x58, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, 0x12, - 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x13, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, 0x69, - 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x6f, 0x6f, - 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, - 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, - 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, 0x12, - 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x68, - 0x69, 0x67, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, 0x12, - 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x1c, 0x47, 0x65, - 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, - 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x56, 0x0a, - 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, - 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, - 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0x8b, 0x13, 0x0a, 0x0d, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x50, - 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, - 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, - 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, 0x6f, - 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, - 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0e, 0x12, 0x0c, - 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x86, 0x01, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, - 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, - 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x92, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, - 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, - 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, - 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, - 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, 0x64, 0x79, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, - 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x16, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, - 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x33, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x1a, 0x2f, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x5a, 0x13, 0x12, 0x11, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0xb9, 0x01, 0x0a, - 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, - 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, - 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, - 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, - 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, - 0x79, 0x73, 0x5a, 0x14, 0x12, 0x12, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, - 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2d, + 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, 0x6f, 0x22, 0x80, 0x01, 0x0a, 0x1b, + 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, + 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xba, + 0x01, 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, + 0x66, 0x66, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x66, + 0x66, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, + 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x64, 0x43, 0x61, 0x72, 0x64, 0x4e, + 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6f, 0x66, 0x66, 0x65, 0x72, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x6e, 0x63, 0x65, 0x22, 0x7c, 0x0a, 0x19, 0x47, + 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x37, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, - 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, - 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5a, - 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, - 0x72, 0x64, 0x12, 0xc2, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, - 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, - 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, - 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, - 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, - 0x6c, 0x65, 0x63, 0x74, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x61, - 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, - 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, - 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, - 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, - 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, - 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, 0x65, 0x12, 0x9a, 0x01, 0x0a, 0x0e, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x2a, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, - 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, + 0x61, 0x69, 0x6c, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xce, 0x05, 0x0a, 0x0e, 0x46, 0x72, + 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, + 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, 0x6f, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x72, 0x65, 0x67, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x63, 0x68, 0x6f, + 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6d, 0x61, 0x6a, 0x6f, + 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x6a, + 0x6f, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x61, 0x72, 0x64, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x74, 0x65, 0x61, 0x63, 0x68, 0x65, 0x72, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, + 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x73, 0x73, + 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x73, + 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x61, 0x73, 0x73, 0x69, 0x73, 0x74, 0x61, 0x6e, 0x74, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x68, 0x61, 0x73, 0x50, 0x61, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x4c, 0x53, 0x54, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4c, 0x53, 0x54, 0x44, + 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x58, 0x59, 0x12, 0x16, 0x0a, 0x06, 0x4c, 0x53, 0x54, 0x44, + 0x5a, 0x58, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x4c, 0x53, 0x54, 0x44, 0x5a, 0x58, + 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x13, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x71, 0x71, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x75, + 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x6f, + 0x6f, 0x6d, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x69, 0x6e, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x6f, + 0x6f, 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x6f, + 0x6f, 0x6d, 0x52, 0x6f, 0x6f, 0x6d, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, + 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x6f, 0x6f, 0x6d, 0x42, 0x65, 0x64, + 0x12, 0x1a, 0x0a, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x18, 0x17, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x6d, 0x65, 0x44, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, + 0x68, 0x69, 0x67, 0x68, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x68, 0x69, 0x67, 0x68, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x19, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x73, 0x74, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x81, 0x01, 0x0a, 0x1c, 0x47, + 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, + 0x74, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x6d, 0x73, 0x67, 0x12, 0x39, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x25, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, + 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x56, + 0x0a, 0x10, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, + 0x74, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x66, 0x66, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x71, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x71, 0x71, + 0x12, 0x14, 0x0a, 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x32, 0xc9, 0x15, 0x0a, 0x0d, 0x43, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, + 0x50, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, + 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, + 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x50, 0x65, 0x72, 0x73, + 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x15, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, + 0x31, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0e, 0x12, + 0x0c, 0x2f, 0x70, 0x65, 0x72, 0x73, 0x6f, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0x86, 0x01, + 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, - 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x12, 0x80, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, - 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xb6, 0x01, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x37, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x63, + 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x47, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x41, 0x12, 0x22, + 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x73, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x5a, 0x1b, 0x12, 0x19, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, + 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x52, 0x6f, 0x6c, 0x6c, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x92, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x4e, 0x65, + 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, + 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x4e, 0x65, 0x65, 0x64, 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, + 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, 0x65, 0x65, + 0x64, 0x79, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x6e, + 0x65, 0x65, 0x64, 0x79, 0x12, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, + 0x70, 0x74, 0x79, 0x1a, 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x44, 0x6f, 0x72, 0x6d, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, + 0x64, 0x6f, 0x72, 0x6d, 0x5a, 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x2f, 0x64, 0x6f, 0x72, 0x6d, 0x12, 0x9e, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x33, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x37, 0x82, + 0xd3, 0xe4, 0x93, 0x02, 0x31, 0x12, 0x1a, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x5a, 0x13, 0x12, 0x11, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x12, 0xb9, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x12, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, - 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, - 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, - 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x18, 0x47, 0x65, - 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, - 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x35, - 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, - 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, - 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x1d, 0x2f, - 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, - 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x5a, 0x16, 0x12, 0x14, - 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, - 0x53, 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x2e, 0x63, - 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, - 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, - 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, - 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, - 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, - 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, - 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, - 0x73, 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, - 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x42, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x49, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, + 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, 0x79, 0x73, 0x5a, 0x14, 0x12, 0x12, + 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x62, 0x69, 0x72, 0x74, 0x68, 0x64, 0x61, + 0x79, 0x73, 0x12, 0xa7, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, - 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, + 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x77, 0x61, 0x72, 0x64, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2d, 0x12, + 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x5a, 0x11, 0x12, 0x0f, 0x2f, 0x73, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x72, 0x65, 0x77, 0x61, 0x72, 0x64, 0x12, 0xc2, 0x01, 0x0a, + 0x1a, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, + 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x36, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, + 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x1a, 0x37, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, + 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x43, 0x6f, 0x75, 0x72, 0x73, 0x65, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, + 0x69, 0x6f, 0x6e, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x33, 0x82, 0xd3, + 0xe4, 0x93, 0x02, 0x2d, 0x12, 0x18, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, + 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x5a, 0x11, + 0x12, 0x0f, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x73, 0x65, 0x6c, 0x65, 0x63, + 0x74, 0x12, 0x9f, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, + 0x47, 0x72, 0x61, 0x64, 0x65, 0x12, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, + 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, + 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2c, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x47, 0x72, 0x61, 0x64, 0x65, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, 0x61, 0x64, + 0x65, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x67, 0x72, + 0x61, 0x64, 0x65, 0x12, 0x9a, 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, + 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x12, 0x2a, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x2b, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, + 0x65, 0x6e, 0x74, 0x45, 0x78, 0x61, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, + 0x2f, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x29, 0x12, 0x16, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, + 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, 0x5a, + 0x0f, 0x12, 0x0d, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x65, 0x78, 0x61, 0x6d, + 0x12, 0x82, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, + 0x50, 0x41, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x2a, 0x2e, 0x63, 0x61, 0x6d, + 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, + 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x50, 0x41, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x2d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x27, 0x12, 0x15, + 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x67, 0x70, 0x61, 0x5a, 0x0e, 0x12, 0x0c, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x2f, 0x67, 0x70, 0x61, 0x12, 0x80, 0x01, 0x0a, 0x15, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, + 0x75, 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, + 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, + 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x32, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x50, 0x6f, 0x73, 0x74, 0x53, 0x74, 0x75, + 0x64, 0x65, 0x6e, 0x74, 0x47, 0x61, 0x74, 0x65, 0x41, 0x63, 0x63, 0x65, 0x73, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0xa8, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x45, 0x6d, 0x70, 0x74, 0x79, 0x1a, 0x35, 0x2e, + 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, + 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x53, 0x74, + 0x61, 0x79, 0x53, 0x63, 0x68, 0x6f, 0x6f, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x3d, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x37, 0x12, 0x1d, 0x2f, 0x73, + 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, + 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, 0x74, 0x61, 0x79, 0x5a, 0x16, 0x12, 0x14, 0x2f, + 0x73, 0x74, 0x75, 0x64, 0x65, 0x6e, 0x74, 0x2f, 0x68, 0x6f, 0x6c, 0x69, 0x64, 0x61, 0x79, 0x53, + 0x74, 0x61, 0x79, 0x12, 0xab, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, + 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x2f, 0x2e, 0x63, 0x61, + 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, + 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, 0x73, + 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x30, 0x2e, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, + 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x42, 0x61, + 0x73, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, + 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, + 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, 0x65, 0x5a, + 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x62, 0x61, 0x73, + 0x65, 0x12, 0xa5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, + 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x2d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, + 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, - 0x17, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, - 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xb6, 0x01, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, - 0x74, 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, - 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, - 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, - 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, - 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, - 0x12, 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, - 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5a, 0x14, 0x12, - 0x12, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, - 0x61, 0x74, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, - 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x42, - 0x0b, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, - 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, - 0x6c, 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, - 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, - 0x2f, 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, - 0x58, 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, - 0x74, 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, - 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, - 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, - 0x5c, 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, - 0x02, 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x74, - 0x61, 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2e, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, + 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x31, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x2b, 0x12, 0x17, + 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, + 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x5a, 0x10, 0x12, 0x0e, 0x2f, 0x66, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x69, 0x6e, 0x66, 0x6f, 0x12, 0xb6, 0x01, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x46, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, + 0x65, 0x73, 0x12, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, + 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x65, 0x73, + 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x31, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, + 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x52, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x39, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x33, 0x12, + 0x1b, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, 0x76, 0x31, 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, + 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, 0x74, 0x65, 0x5a, 0x14, 0x12, 0x12, + 0x2f, 0x66, 0x72, 0x65, 0x73, 0x68, 0x6d, 0x61, 0x6e, 0x2f, 0x72, 0x6f, 0x6f, 0x6d, 0x6d, 0x61, + 0x74, 0x65, 0x42, 0xd1, 0x01, 0x0a, 0x17, 0x63, 0x6f, 0x6d, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, + 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2e, 0x76, 0x31, 0x42, 0x0b, + 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x50, 0x72, 0x6f, 0x74, 0x6f, 0x50, 0x01, 0x5a, 0x3b, 0x67, + 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x68, 0x64, 0x75, 0x68, 0x65, 0x6c, + 0x70, 0x2f, 0x61, 0x70, 0x69, 0x5f, 0x6f, 0x70, 0x65, 0x6e, 0x5f, 0x73, 0x64, 0x6b, 0x2f, 0x63, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x66, 0x66, 0x2f, + 0x76, 0x31, 0x3b, 0x73, 0x74, 0x61, 0x66, 0x66, 0x76, 0x31, 0xa2, 0x02, 0x03, 0x43, 0x53, 0x58, + 0xaa, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x53, 0x74, + 0x61, 0x66, 0x66, 0x2e, 0x56, 0x31, 0xca, 0x02, 0x13, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, + 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, 0x56, 0x31, 0xe2, 0x02, 0x1f, 0x43, + 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x5c, 0x53, 0x74, 0x61, 0x66, 0x66, 0x5c, + 0x56, 0x31, 0x5c, 0x47, 0x50, 0x42, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0xea, 0x02, + 0x15, 0x43, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x3a, 0x3a, 0x53, 0x74, 0x61, + 0x66, 0x66, 0x3a, 0x3a, 0x56, 0x31, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3978,7 +4442,7 @@ func file_campusapis_staff_v1_campus_proto_rawDescGZIP() []byte { return file_campusapis_staff_v1_campus_proto_rawDescData } -var file_campusapis_staff_v1_campus_proto_msgTypes = make([]protoimpl.MessageInfo, 41) +var file_campusapis_staff_v1_campus_proto_msgTypes = make([]protoimpl.MessageInfo, 47) var file_campusapis_staff_v1_campus_proto_goTypes = []interface{}{ (*GetPersonInfoResponse)(nil), // 0: campusapis.staff.v1.GetPersonInfoResponse (*PersonInfo)(nil), // 1: campusapis.staff.v1.PersonInfo @@ -3989,94 +4453,108 @@ var file_campusapis_staff_v1_campus_proto_goTypes = []interface{}{ (*SemesterRequest)(nil), // 6: campusapis.staff.v1.SemesterRequest (*GetStudentInfoResponse)(nil), // 7: campusapis.staff.v1.GetStudentInfoResponse (*StudentInfo)(nil), // 8: campusapis.staff.v1.StudentInfo - (*GetStudentNeedyInfoResponse)(nil), // 9: campusapis.staff.v1.GetStudentNeedyInfoResponse - (*StudentNeedyInfo)(nil), // 10: campusapis.staff.v1.StudentNeedyInfo - (*GetStudentDormInfoResponse)(nil), // 11: campusapis.staff.v1.GetStudentDormInfoResponse - (*DormInfo)(nil), // 12: campusapis.staff.v1.DormInfo - (*GetStudentBirthdayInfoResponse)(nil), // 13: campusapis.staff.v1.GetStudentBirthdayInfoResponse - (*StudentBirthdayInfo)(nil), // 14: campusapis.staff.v1.StudentBirthdayInfo - (*GetStudentBirthdaysInRequest)(nil), // 15: campusapis.staff.v1.GetStudentBirthdaysInRequest - (*GetStudentBirthdaysInResponse)(nil), // 16: campusapis.staff.v1.GetStudentBirthdaysInResponse - (*GetStudentRewardsResponse)(nil), // 17: campusapis.staff.v1.GetStudentRewardsResponse - (*StudentReward)(nil), // 18: campusapis.staff.v1.StudentReward - (*GetStudentCourseSelectionsResponse)(nil), // 19: campusapis.staff.v1.GetStudentCourseSelectionsResponse - (*StudentCourseSelection)(nil), // 20: campusapis.staff.v1.StudentCourseSelection - (*GetStudentGradeResponse)(nil), // 21: campusapis.staff.v1.GetStudentGradeResponse - (*StudentGrade)(nil), // 22: campusapis.staff.v1.StudentGrade - (*GetStudentExamResponse)(nil), // 23: campusapis.staff.v1.GetStudentExamResponse - (*StudentExam)(nil), // 24: campusapis.staff.v1.StudentExam - (*PostStudentGateAccessRequest)(nil), // 25: campusapis.staff.v1.PostStudentGateAccessRequest - (*PostStudentGateAccessResponse)(nil), // 26: campusapis.staff.v1.PostStudentGateAccessResponse - (*GetStudentStaySchoolInfoResponse)(nil), // 27: campusapis.staff.v1.GetStudentStaySchoolInfoResponse - (*StudentStaySchoolInfo)(nil), // 28: campusapis.staff.v1.StudentStaySchoolInfo - (*GetFreshmanBaseInfoRequest)(nil), // 29: campusapis.staff.v1.GetFreshmanBaseInfoRequest - (*GetFreshmanDetailRequest)(nil), // 30: campusapis.staff.v1.GetFreshmanDetailRequest - (*GetFreshmanRoommatesRequest)(nil), // 31: campusapis.staff.v1.GetFreshmanRoommatesRequest - (*FreshmanKeywordRequest)(nil), // 32: campusapis.staff.v1.FreshmanKeywordRequest - (*GetFreshmanBaseInfoResponse)(nil), // 33: campusapis.staff.v1.GetFreshmanBaseInfoResponse - (*FreshmanBaseInfo)(nil), // 34: campusapis.staff.v1.FreshmanBaseInfo - (*GetFreshmanDetailResponse)(nil), // 35: campusapis.staff.v1.GetFreshmanDetailResponse - (*FreshmanDetail)(nil), // 36: campusapis.staff.v1.FreshmanDetail - (*GetFreshmanRoommatesResponse)(nil), // 37: campusapis.staff.v1.GetFreshmanRoommatesResponse - (*FreshmanRoommate)(nil), // 38: campusapis.staff.v1.FreshmanRoommate - (*StudentNeedyInfo_Nested)(nil), // 39: campusapis.staff.v1.StudentNeedyInfo.Nested - (*PostStudentGateAccessResponse_Data)(nil), // 40: campusapis.staff.v1.PostStudentGateAccessResponse.Data - (staff.Type)(0), // 41: campusapis.staff.Type - (*emptypb.Empty)(nil), // 42: google.protobuf.Empty + (*GetStudentSchoolRollStatusResponse)(nil), // 9: campusapis.staff.v1.GetStudentSchoolRollStatusResponse + (*StudentSchoolRollStatus)(nil), // 10: campusapis.staff.v1.StudentSchoolRollStatus + (*GetStudentNeedyInfoResponse)(nil), // 11: campusapis.staff.v1.GetStudentNeedyInfoResponse + (*StudentNeedyInfo)(nil), // 12: campusapis.staff.v1.StudentNeedyInfo + (*GetStudentDormInfoResponse)(nil), // 13: campusapis.staff.v1.GetStudentDormInfoResponse + (*DormInfo)(nil), // 14: campusapis.staff.v1.DormInfo + (*GetStudentBirthdayInfoResponse)(nil), // 15: campusapis.staff.v1.GetStudentBirthdayInfoResponse + (*StudentBirthdayInfo)(nil), // 16: campusapis.staff.v1.StudentBirthdayInfo + (*GetStudentBirthdaysInRequest)(nil), // 17: campusapis.staff.v1.GetStudentBirthdaysInRequest + (*GetStudentBirthdaysInResponse)(nil), // 18: campusapis.staff.v1.GetStudentBirthdaysInResponse + (*GetStudentRewardsResponse)(nil), // 19: campusapis.staff.v1.GetStudentRewardsResponse + (*StudentReward)(nil), // 20: campusapis.staff.v1.StudentReward + (*GetStudentCourseSelectionsResponse)(nil), // 21: campusapis.staff.v1.GetStudentCourseSelectionsResponse + (*StudentCourseSelection)(nil), // 22: campusapis.staff.v1.StudentCourseSelection + (*GetStudentGradeResponse)(nil), // 23: campusapis.staff.v1.GetStudentGradeResponse + (*StudentGrade)(nil), // 24: campusapis.staff.v1.StudentGrade + (*GetStudentExamResponse)(nil), // 25: campusapis.staff.v1.GetStudentExamResponse + (*StudentExam)(nil), // 26: campusapis.staff.v1.StudentExam + (*GetStudentGPAResponse)(nil), // 27: campusapis.staff.v1.GetStudentGPAResponse + (*StudentGPA)(nil), // 28: campusapis.staff.v1.StudentGPA + (*GPAPerSemester)(nil), // 29: campusapis.staff.v1.GPAPerSemester + (*GPATotal)(nil), // 30: campusapis.staff.v1.GPATotal + (*PostStudentGateAccessRequest)(nil), // 31: campusapis.staff.v1.PostStudentGateAccessRequest + (*PostStudentGateAccessResponse)(nil), // 32: campusapis.staff.v1.PostStudentGateAccessResponse + (*GetStudentStaySchoolInfoResponse)(nil), // 33: campusapis.staff.v1.GetStudentStaySchoolInfoResponse + (*StudentStaySchoolInfo)(nil), // 34: campusapis.staff.v1.StudentStaySchoolInfo + (*GetFreshmanBaseInfoRequest)(nil), // 35: campusapis.staff.v1.GetFreshmanBaseInfoRequest + (*GetFreshmanDetailRequest)(nil), // 36: campusapis.staff.v1.GetFreshmanDetailRequest + (*GetFreshmanRoommatesRequest)(nil), // 37: campusapis.staff.v1.GetFreshmanRoommatesRequest + (*FreshmanKeywordRequest)(nil), // 38: campusapis.staff.v1.FreshmanKeywordRequest + (*GetFreshmanBaseInfoResponse)(nil), // 39: campusapis.staff.v1.GetFreshmanBaseInfoResponse + (*FreshmanBaseInfo)(nil), // 40: campusapis.staff.v1.FreshmanBaseInfo + (*GetFreshmanDetailResponse)(nil), // 41: campusapis.staff.v1.GetFreshmanDetailResponse + (*FreshmanDetail)(nil), // 42: campusapis.staff.v1.FreshmanDetail + (*GetFreshmanRoommatesResponse)(nil), // 43: campusapis.staff.v1.GetFreshmanRoommatesResponse + (*FreshmanRoommate)(nil), // 44: campusapis.staff.v1.FreshmanRoommate + (*StudentNeedyInfo_Nested)(nil), // 45: campusapis.staff.v1.StudentNeedyInfo.Nested + (*PostStudentGateAccessResponse_Data)(nil), // 46: campusapis.staff.v1.PostStudentGateAccessResponse.Data + (staff.Type)(0), // 47: campusapis.staff.Type + (*emptypb.Empty)(nil), // 48: google.protobuf.Empty } var file_campusapis_staff_v1_campus_proto_depIdxs = []int32{ 1, // 0: campusapis.staff.v1.GetPersonInfoResponse.data:type_name -> campusapis.staff.v1.PersonInfo 8, // 1: campusapis.staff.v1.GetStudentInfoResponse.data:type_name -> campusapis.staff.v1.StudentInfo - 10, // 2: campusapis.staff.v1.GetStudentNeedyInfoResponse.data:type_name -> campusapis.staff.v1.StudentNeedyInfo - 39, // 3: campusapis.staff.v1.StudentNeedyInfo.items:type_name -> campusapis.staff.v1.StudentNeedyInfo.Nested - 12, // 4: campusapis.staff.v1.GetStudentDormInfoResponse.data:type_name -> campusapis.staff.v1.DormInfo - 14, // 5: campusapis.staff.v1.GetStudentBirthdayInfoResponse.data:type_name -> campusapis.staff.v1.StudentBirthdayInfo - 41, // 6: campusapis.staff.v1.GetStudentBirthdaysInRequest.type:type_name -> campusapis.staff.Type - 14, // 7: campusapis.staff.v1.GetStudentBirthdaysInResponse.birthdays:type_name -> campusapis.staff.v1.StudentBirthdayInfo - 18, // 8: campusapis.staff.v1.GetStudentRewardsResponse.data:type_name -> campusapis.staff.v1.StudentReward - 20, // 9: campusapis.staff.v1.GetStudentCourseSelectionsResponse.data:type_name -> campusapis.staff.v1.StudentCourseSelection - 22, // 10: campusapis.staff.v1.GetStudentGradeResponse.data:type_name -> campusapis.staff.v1.StudentGrade - 24, // 11: campusapis.staff.v1.GetStudentExamResponse.data:type_name -> campusapis.staff.v1.StudentExam - 40, // 12: campusapis.staff.v1.PostStudentGateAccessResponse.data:type_name -> campusapis.staff.v1.PostStudentGateAccessResponse.Data - 28, // 13: campusapis.staff.v1.GetStudentStaySchoolInfoResponse.data:type_name -> campusapis.staff.v1.StudentStaySchoolInfo - 34, // 14: campusapis.staff.v1.GetFreshmanBaseInfoResponse.data:type_name -> campusapis.staff.v1.FreshmanBaseInfo - 36, // 15: campusapis.staff.v1.GetFreshmanDetailResponse.data:type_name -> campusapis.staff.v1.FreshmanDetail - 38, // 16: campusapis.staff.v1.GetFreshmanRoommatesResponse.data:type_name -> campusapis.staff.v1.FreshmanRoommate - 42, // 17: campusapis.staff.v1.CampusService.GetPersonInfo:input_type -> google.protobuf.Empty - 42, // 18: campusapis.staff.v1.CampusService.GetStudentInfo:input_type -> google.protobuf.Empty - 42, // 19: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:input_type -> google.protobuf.Empty - 42, // 20: campusapis.staff.v1.CampusService.GetStudentDormInfo:input_type -> google.protobuf.Empty - 42, // 21: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:input_type -> google.protobuf.Empty - 15, // 22: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:input_type -> campusapis.staff.v1.GetStudentBirthdaysInRequest - 2, // 23: campusapis.staff.v1.CampusService.GetStudentRewards:input_type -> campusapis.staff.v1.GetStudentRewardsRequest - 3, // 24: campusapis.staff.v1.CampusService.GetStudentCourseSelections:input_type -> campusapis.staff.v1.GetStudentCourseSelectionsRequest - 4, // 25: campusapis.staff.v1.CampusService.GetStudentGrade:input_type -> campusapis.staff.v1.GetStudentGradeRequest - 5, // 26: campusapis.staff.v1.CampusService.GetStudentExam:input_type -> campusapis.staff.v1.GetStudentExamRequest - 25, // 27: campusapis.staff.v1.CampusService.PostStudentGateAccess:input_type -> campusapis.staff.v1.PostStudentGateAccessRequest - 42, // 28: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:input_type -> google.protobuf.Empty - 29, // 29: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:input_type -> campusapis.staff.v1.GetFreshmanBaseInfoRequest - 30, // 30: campusapis.staff.v1.CampusService.GetFreshmanDetail:input_type -> campusapis.staff.v1.GetFreshmanDetailRequest - 31, // 31: campusapis.staff.v1.CampusService.GetFreshmanRoommates:input_type -> campusapis.staff.v1.GetFreshmanRoommatesRequest - 0, // 32: campusapis.staff.v1.CampusService.GetPersonInfo:output_type -> campusapis.staff.v1.GetPersonInfoResponse - 7, // 33: campusapis.staff.v1.CampusService.GetStudentInfo:output_type -> campusapis.staff.v1.GetStudentInfoResponse - 9, // 34: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:output_type -> campusapis.staff.v1.GetStudentNeedyInfoResponse - 11, // 35: campusapis.staff.v1.CampusService.GetStudentDormInfo:output_type -> campusapis.staff.v1.GetStudentDormInfoResponse - 13, // 36: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:output_type -> campusapis.staff.v1.GetStudentBirthdayInfoResponse - 16, // 37: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:output_type -> campusapis.staff.v1.GetStudentBirthdaysInResponse - 17, // 38: campusapis.staff.v1.CampusService.GetStudentRewards:output_type -> campusapis.staff.v1.GetStudentRewardsResponse - 19, // 39: campusapis.staff.v1.CampusService.GetStudentCourseSelections:output_type -> campusapis.staff.v1.GetStudentCourseSelectionsResponse - 21, // 40: campusapis.staff.v1.CampusService.GetStudentGrade:output_type -> campusapis.staff.v1.GetStudentGradeResponse - 23, // 41: campusapis.staff.v1.CampusService.GetStudentExam:output_type -> campusapis.staff.v1.GetStudentExamResponse - 26, // 42: campusapis.staff.v1.CampusService.PostStudentGateAccess:output_type -> campusapis.staff.v1.PostStudentGateAccessResponse - 27, // 43: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:output_type -> campusapis.staff.v1.GetStudentStaySchoolInfoResponse - 33, // 44: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:output_type -> campusapis.staff.v1.GetFreshmanBaseInfoResponse - 35, // 45: campusapis.staff.v1.CampusService.GetFreshmanDetail:output_type -> campusapis.staff.v1.GetFreshmanDetailResponse - 37, // 46: campusapis.staff.v1.CampusService.GetFreshmanRoommates:output_type -> campusapis.staff.v1.GetFreshmanRoommatesResponse - 32, // [32:47] is the sub-list for method output_type - 17, // [17:32] is the sub-list for method input_type - 17, // [17:17] is the sub-list for extension type_name - 17, // [17:17] is the sub-list for extension extendee - 0, // [0:17] is the sub-list for field type_name + 10, // 2: campusapis.staff.v1.GetStudentSchoolRollStatusResponse.data:type_name -> campusapis.staff.v1.StudentSchoolRollStatus + 12, // 3: campusapis.staff.v1.GetStudentNeedyInfoResponse.data:type_name -> campusapis.staff.v1.StudentNeedyInfo + 45, // 4: campusapis.staff.v1.StudentNeedyInfo.items:type_name -> campusapis.staff.v1.StudentNeedyInfo.Nested + 14, // 5: campusapis.staff.v1.GetStudentDormInfoResponse.data:type_name -> campusapis.staff.v1.DormInfo + 16, // 6: campusapis.staff.v1.GetStudentBirthdayInfoResponse.data:type_name -> campusapis.staff.v1.StudentBirthdayInfo + 47, // 7: campusapis.staff.v1.GetStudentBirthdaysInRequest.type:type_name -> campusapis.staff.Type + 16, // 8: campusapis.staff.v1.GetStudentBirthdaysInResponse.birthdays:type_name -> campusapis.staff.v1.StudentBirthdayInfo + 20, // 9: campusapis.staff.v1.GetStudentRewardsResponse.data:type_name -> campusapis.staff.v1.StudentReward + 22, // 10: campusapis.staff.v1.GetStudentCourseSelectionsResponse.data:type_name -> campusapis.staff.v1.StudentCourseSelection + 24, // 11: campusapis.staff.v1.GetStudentGradeResponse.data:type_name -> campusapis.staff.v1.StudentGrade + 26, // 12: campusapis.staff.v1.GetStudentExamResponse.data:type_name -> campusapis.staff.v1.StudentExam + 28, // 13: campusapis.staff.v1.GetStudentGPAResponse.data:type_name -> campusapis.staff.v1.StudentGPA + 29, // 14: campusapis.staff.v1.StudentGPA.perSemester:type_name -> campusapis.staff.v1.GPAPerSemester + 30, // 15: campusapis.staff.v1.StudentGPA.total:type_name -> campusapis.staff.v1.GPATotal + 46, // 16: campusapis.staff.v1.PostStudentGateAccessResponse.data:type_name -> campusapis.staff.v1.PostStudentGateAccessResponse.Data + 34, // 17: campusapis.staff.v1.GetStudentStaySchoolInfoResponse.data:type_name -> campusapis.staff.v1.StudentStaySchoolInfo + 40, // 18: campusapis.staff.v1.GetFreshmanBaseInfoResponse.data:type_name -> campusapis.staff.v1.FreshmanBaseInfo + 42, // 19: campusapis.staff.v1.GetFreshmanDetailResponse.data:type_name -> campusapis.staff.v1.FreshmanDetail + 44, // 20: campusapis.staff.v1.GetFreshmanRoommatesResponse.data:type_name -> campusapis.staff.v1.FreshmanRoommate + 48, // 21: campusapis.staff.v1.CampusService.GetPersonInfo:input_type -> google.protobuf.Empty + 48, // 22: campusapis.staff.v1.CampusService.GetStudentInfo:input_type -> google.protobuf.Empty + 48, // 23: campusapis.staff.v1.CampusService.GetStudentSchoolRollStatus:input_type -> google.protobuf.Empty + 48, // 24: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:input_type -> google.protobuf.Empty + 48, // 25: campusapis.staff.v1.CampusService.GetStudentDormInfo:input_type -> google.protobuf.Empty + 48, // 26: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:input_type -> google.protobuf.Empty + 17, // 27: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:input_type -> campusapis.staff.v1.GetStudentBirthdaysInRequest + 2, // 28: campusapis.staff.v1.CampusService.GetStudentRewards:input_type -> campusapis.staff.v1.GetStudentRewardsRequest + 3, // 29: campusapis.staff.v1.CampusService.GetStudentCourseSelections:input_type -> campusapis.staff.v1.GetStudentCourseSelectionsRequest + 4, // 30: campusapis.staff.v1.CampusService.GetStudentGrade:input_type -> campusapis.staff.v1.GetStudentGradeRequest + 5, // 31: campusapis.staff.v1.CampusService.GetStudentExam:input_type -> campusapis.staff.v1.GetStudentExamRequest + 48, // 32: campusapis.staff.v1.CampusService.GetStudentGPA:input_type -> google.protobuf.Empty + 31, // 33: campusapis.staff.v1.CampusService.PostStudentGateAccess:input_type -> campusapis.staff.v1.PostStudentGateAccessRequest + 48, // 34: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:input_type -> google.protobuf.Empty + 35, // 35: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:input_type -> campusapis.staff.v1.GetFreshmanBaseInfoRequest + 36, // 36: campusapis.staff.v1.CampusService.GetFreshmanDetail:input_type -> campusapis.staff.v1.GetFreshmanDetailRequest + 37, // 37: campusapis.staff.v1.CampusService.GetFreshmanRoommates:input_type -> campusapis.staff.v1.GetFreshmanRoommatesRequest + 0, // 38: campusapis.staff.v1.CampusService.GetPersonInfo:output_type -> campusapis.staff.v1.GetPersonInfoResponse + 7, // 39: campusapis.staff.v1.CampusService.GetStudentInfo:output_type -> campusapis.staff.v1.GetStudentInfoResponse + 9, // 40: campusapis.staff.v1.CampusService.GetStudentSchoolRollStatus:output_type -> campusapis.staff.v1.GetStudentSchoolRollStatusResponse + 11, // 41: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:output_type -> campusapis.staff.v1.GetStudentNeedyInfoResponse + 13, // 42: campusapis.staff.v1.CampusService.GetStudentDormInfo:output_type -> campusapis.staff.v1.GetStudentDormInfoResponse + 15, // 43: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:output_type -> campusapis.staff.v1.GetStudentBirthdayInfoResponse + 18, // 44: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:output_type -> campusapis.staff.v1.GetStudentBirthdaysInResponse + 19, // 45: campusapis.staff.v1.CampusService.GetStudentRewards:output_type -> campusapis.staff.v1.GetStudentRewardsResponse + 21, // 46: campusapis.staff.v1.CampusService.GetStudentCourseSelections:output_type -> campusapis.staff.v1.GetStudentCourseSelectionsResponse + 23, // 47: campusapis.staff.v1.CampusService.GetStudentGrade:output_type -> campusapis.staff.v1.GetStudentGradeResponse + 25, // 48: campusapis.staff.v1.CampusService.GetStudentExam:output_type -> campusapis.staff.v1.GetStudentExamResponse + 27, // 49: campusapis.staff.v1.CampusService.GetStudentGPA:output_type -> campusapis.staff.v1.GetStudentGPAResponse + 32, // 50: campusapis.staff.v1.CampusService.PostStudentGateAccess:output_type -> campusapis.staff.v1.PostStudentGateAccessResponse + 33, // 51: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:output_type -> campusapis.staff.v1.GetStudentStaySchoolInfoResponse + 39, // 52: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:output_type -> campusapis.staff.v1.GetFreshmanBaseInfoResponse + 41, // 53: campusapis.staff.v1.CampusService.GetFreshmanDetail:output_type -> campusapis.staff.v1.GetFreshmanDetailResponse + 43, // 54: campusapis.staff.v1.CampusService.GetFreshmanRoommates:output_type -> campusapis.staff.v1.GetFreshmanRoommatesResponse + 38, // [38:55] is the sub-list for method output_type + 21, // [21:38] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name } func init() { file_campusapis_staff_v1_campus_proto_init() } @@ -4194,7 +4672,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentNeedyInfoResponse); i { + switch v := v.(*GetStudentSchoolRollStatusResponse); i { case 0: return &v.state case 1: @@ -4206,7 +4684,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentNeedyInfo); i { + switch v := v.(*StudentSchoolRollStatus); i { case 0: return &v.state case 1: @@ -4218,7 +4696,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentDormInfoResponse); i { + switch v := v.(*GetStudentNeedyInfoResponse); i { case 0: return &v.state case 1: @@ -4230,7 +4708,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DormInfo); i { + switch v := v.(*StudentNeedyInfo); i { case 0: return &v.state case 1: @@ -4242,7 +4720,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdayInfoResponse); i { + switch v := v.(*GetStudentDormInfoResponse); i { case 0: return &v.state case 1: @@ -4254,7 +4732,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentBirthdayInfo); i { + switch v := v.(*DormInfo); i { case 0: return &v.state case 1: @@ -4266,7 +4744,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdaysInRequest); i { + switch v := v.(*GetStudentBirthdayInfoResponse); i { case 0: return &v.state case 1: @@ -4278,7 +4756,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentBirthdaysInResponse); i { + switch v := v.(*StudentBirthdayInfo); i { case 0: return &v.state case 1: @@ -4290,7 +4768,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentRewardsResponse); i { + switch v := v.(*GetStudentBirthdaysInRequest); i { case 0: return &v.state case 1: @@ -4302,7 +4780,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentReward); i { + switch v := v.(*GetStudentBirthdaysInResponse); i { case 0: return &v.state case 1: @@ -4314,7 +4792,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentCourseSelectionsResponse); i { + switch v := v.(*GetStudentRewardsResponse); i { case 0: return &v.state case 1: @@ -4326,7 +4804,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentCourseSelection); i { + switch v := v.(*StudentReward); i { case 0: return &v.state case 1: @@ -4338,7 +4816,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentGradeResponse); i { + switch v := v.(*GetStudentCourseSelectionsResponse); i { case 0: return &v.state case 1: @@ -4350,7 +4828,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentGrade); i { + switch v := v.(*StudentCourseSelection); i { case 0: return &v.state case 1: @@ -4362,7 +4840,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentExamResponse); i { + switch v := v.(*GetStudentGradeResponse); i { case 0: return &v.state case 1: @@ -4374,7 +4852,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentExam); i { + switch v := v.(*StudentGrade); i { case 0: return &v.state case 1: @@ -4386,7 +4864,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostStudentGateAccessRequest); i { + switch v := v.(*GetStudentExamResponse); i { case 0: return &v.state case 1: @@ -4398,7 +4876,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PostStudentGateAccessResponse); i { + switch v := v.(*StudentExam); i { case 0: return &v.state case 1: @@ -4410,7 +4888,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetStudentStaySchoolInfoResponse); i { + switch v := v.(*GetStudentGPAResponse); i { case 0: return &v.state case 1: @@ -4422,7 +4900,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentStaySchoolInfo); i { + switch v := v.(*StudentGPA); i { case 0: return &v.state case 1: @@ -4434,7 +4912,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanBaseInfoRequest); i { + switch v := v.(*GPAPerSemester); i { case 0: return &v.state case 1: @@ -4446,7 +4924,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanDetailRequest); i { + switch v := v.(*GPATotal); i { case 0: return &v.state case 1: @@ -4458,7 +4936,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanRoommatesRequest); i { + switch v := v.(*PostStudentGateAccessRequest); i { case 0: return &v.state case 1: @@ -4470,7 +4948,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanKeywordRequest); i { + switch v := v.(*PostStudentGateAccessResponse); i { case 0: return &v.state case 1: @@ -4482,7 +4960,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanBaseInfoResponse); i { + switch v := v.(*GetStudentStaySchoolInfoResponse); i { case 0: return &v.state case 1: @@ -4494,7 +4972,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanBaseInfo); i { + switch v := v.(*StudentStaySchoolInfo); i { case 0: return &v.state case 1: @@ -4506,7 +4984,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanDetailResponse); i { + switch v := v.(*GetFreshmanBaseInfoRequest); i { case 0: return &v.state case 1: @@ -4518,7 +4996,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanDetail); i { + switch v := v.(*GetFreshmanDetailRequest); i { case 0: return &v.state case 1: @@ -4530,7 +5008,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFreshmanRoommatesResponse); i { + switch v := v.(*GetFreshmanRoommatesRequest); i { case 0: return &v.state case 1: @@ -4542,7 +5020,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FreshmanRoommate); i { + switch v := v.(*FreshmanKeywordRequest); i { case 0: return &v.state case 1: @@ -4554,7 +5032,7 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*StudentNeedyInfo_Nested); i { + switch v := v.(*GetFreshmanBaseInfoResponse); i { case 0: return &v.state case 1: @@ -4566,6 +5044,78 @@ func file_campusapis_staff_v1_campus_proto_init() { } } file_campusapis_staff_v1_campus_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FreshmanBaseInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFreshmanDetailResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FreshmanDetail); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFreshmanRoommatesResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FreshmanRoommate); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StudentNeedyInfo_Nested); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_staff_v1_campus_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*PostStudentGateAccessResponse_Data); i { case 0: return &v.state @@ -4584,7 +5134,7 @@ func file_campusapis_staff_v1_campus_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_campusapis_staff_v1_campus_proto_rawDesc, NumEnums: 0, - NumMessages: 41, + NumMessages: 47, NumExtensions: 0, NumServices: 1, }, diff --git a/campusapis/staff/v1/campus.pb.gw.go b/campusapis/staff/v1/campus.pb.gw.go index a5d54c2..7b18f11 100644 --- a/campusapis/staff/v1/campus.pb.gw.go +++ b/campusapis/staff/v1/campus.pb.gw.go @@ -122,6 +122,24 @@ func local_request_CampusService_GetStudentSchoolRollStatus_0(ctx context.Contex } +func request_CampusService_GetStudentSchoolRollStatus_1(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq emptypb.Empty + var metadata runtime.ServerMetadata + + msg, err := client.GetStudentSchoolRollStatus(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + return msg, metadata, err + +} + +func local_request_CampusService_GetStudentSchoolRollStatus_1(ctx context.Context, marshaler runtime.Marshaler, server CampusServiceServer, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { + var protoReq emptypb.Empty + var metadata runtime.ServerMetadata + + msg, err := server.GetStudentSchoolRollStatus(ctx, &protoReq) + return msg, metadata, err + +} + func request_CampusService_GetStudentNeedyInfo_0(ctx context.Context, marshaler runtime.Marshaler, client CampusServiceClient, req *http.Request, pathParams map[string]string) (proto.Message, runtime.ServerMetadata, error) { var protoReq emptypb.Empty var metadata runtime.ServerMetadata @@ -1038,6 +1056,30 @@ func RegisterCampusServiceHandlerServer(ctx context.Context, mux *runtime.ServeM }) + mux.Handle("GET", pattern_CampusService_GetStudentSchoolRollStatus_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + var stream runtime.ServerTransportStream + ctx = grpc.NewContextWithServerTransportStream(ctx, &stream) + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateIncomingContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentSchoolRollStatus", runtime.WithHTTPPathPattern("/student/schoolRollStatus")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := local_request_CampusService_GetStudentSchoolRollStatus_1(ctx, inboundMarshaler, server, req, pathParams) + md.HeaderMD, md.TrailerMD = metadata.Join(md.HeaderMD, stream.Header()), metadata.Join(md.TrailerMD, stream.Trailer()) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CampusService_GetStudentSchoolRollStatus_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_CampusService_GetStudentNeedyInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -1832,6 +1874,27 @@ func RegisterCampusServiceHandlerClient(ctx context.Context, mux *runtime.ServeM }) + mux.Handle("GET", pattern_CampusService_GetStudentSchoolRollStatus_1, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + ctx, cancel := context.WithCancel(req.Context()) + defer cancel() + inboundMarshaler, outboundMarshaler := runtime.MarshalerForRequest(mux, req) + var err error + ctx, err = runtime.AnnotateContext(ctx, mux, req, "/campusapis.staff.v1.CampusService/GetStudentSchoolRollStatus", runtime.WithHTTPPathPattern("/student/schoolRollStatus")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + resp, md, err := request_CampusService_GetStudentSchoolRollStatus_1(ctx, inboundMarshaler, client, req, pathParams) + ctx = runtime.NewServerMetadataContext(ctx, md) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + + forward_CampusService_GetStudentSchoolRollStatus_1(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + + }) + mux.Handle("GET", pattern_CampusService_GetStudentNeedyInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { ctx, cancel := context.WithCancel(req.Context()) defer cancel() @@ -2413,6 +2476,8 @@ var ( pattern_CampusService_GetStudentSchoolRollStatus_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "schoolRollStatus"}, "")) + pattern_CampusService_GetStudentSchoolRollStatus_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "schoolRollStatus"}, "")) + pattern_CampusService_GetStudentNeedyInfo_0 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1, 2, 2, 2, 3}, []string{"staff", "v1", "student", "needy"}, "")) pattern_CampusService_GetStudentNeedyInfo_1 = runtime.MustPattern(runtime.NewPattern(1, []int{2, 0, 2, 1}, []string{"student", "needy"}, "")) @@ -2479,6 +2544,8 @@ var ( forward_CampusService_GetStudentSchoolRollStatus_0 = runtime.ForwardResponseMessage + forward_CampusService_GetStudentSchoolRollStatus_1 = runtime.ForwardResponseMessage + forward_CampusService_GetStudentNeedyInfo_0 = runtime.ForwardResponseMessage forward_CampusService_GetStudentNeedyInfo_1 = runtime.ForwardResponseMessage diff --git a/campusapis/staff/v1/campus.proto b/campusapis/staff/v1/campus.proto index 6ba6f24..59f10dc 100644 --- a/campusapis/staff/v1/campus.proto +++ b/campusapis/staff/v1/campus.proto @@ -35,6 +35,9 @@ service CampusService { rpc GetStudentSchoolRollStatus(google.protobuf.Empty) returns (GetStudentSchoolRollStatusResponse) { option (google.api.http) = { get: "/staff/v1/student/schoolRollStatus" + additional_bindings { + get: "/student/schoolRollStatus" + } }; } @@ -251,6 +254,13 @@ message StudentInfo { // 查询学生学籍状态返回体 message GetStudentSchoolRollStatusResponse { + uint32 error = 1; + string msg = 2; + StudentSchoolRollStatus data = 3; +} + +// 学生学籍状态 +message StudentSchoolRollStatus { //学号 string staffId = 1; //学生姓名 diff --git a/docs/swagger/campusapis/staff/v1/campus.swagger.json b/docs/swagger/campusapis/staff/v1/campus.swagger.json index 3d4e21f..fbe7b54 100644 --- a/docs/swagger/campusapis/staff/v1/campus.swagger.json +++ b/docs/swagger/campusapis/staff/v1/campus.swagger.json @@ -478,6 +478,29 @@ ] } }, + "/staff/v1/student/gpa": { + "get": { + "summary": "获取学生GPA信息", + "operationId": "CampusService_GetStudentGPA", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetStudentGPAResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "CampusService" + ] + } + }, "/staff/v1/student/grade": { "get": { "summary": "获取学生成绩信息", @@ -625,6 +648,29 @@ ] } }, + "/staff/v1/student/schoolRollStatus": { + "get": { + "summary": "获取学生学籍状态", + "operationId": "CampusService_GetStudentSchoolRollStatus", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetStudentSchoolRollStatusResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "CampusService" + ] + } + }, "/staff/v1/student/select": { "get": { "summary": "获取学生选课信息", @@ -804,6 +850,29 @@ ] } }, + "/student/gpa": { + "get": { + "summary": "获取学生GPA信息", + "operationId": "CampusService_GetStudentGPA2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetStudentGPAResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "CampusService" + ] + } + }, "/student/grade": { "get": { "summary": "获取学生成绩信息", @@ -951,6 +1020,29 @@ ] } }, + "/student/schoolRollStatus": { + "get": { + "summary": "获取学生学籍状态", + "operationId": "CampusService_GetStudentSchoolRollStatus2", + "responses": { + "200": { + "description": "A successful response.", + "schema": { + "$ref": "#/definitions/v1GetStudentSchoolRollStatusResponse" + } + }, + "default": { + "description": "An unexpected error response.", + "schema": { + "$ref": "#/definitions/rpcStatus" + } + } + }, + "tags": [ + "CampusService" + ] + } + }, "/student/select": { "get": { "summary": "获取学生选课信息", @@ -1222,6 +1314,40 @@ } } }, + "v1GPAPerSemester": { + "type": "object", + "properties": { + "schoolYear": { + "type": "string", + "title": "学年" + }, + "semester": { + "type": "string", + "title": "学期" + }, + "gradePointAverage": { + "type": "string", + "title": "绩点" + }, + "staffID": { + "type": "string", + "title": "学号" + } + } + }, + "v1GPATotal": { + "type": "object", + "properties": { + "gradePointAverage": { + "type": "string", + "title": "绩点" + }, + "staffID": { + "type": "string", + "title": "学号" + } + } + }, "v1GetFreshmanBaseInfoResponse": { "type": "object", "properties": { @@ -1373,6 +1499,23 @@ }, "title": "查询学生考试返回体" }, + "v1GetStudentGPAResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1StudentGPA", + "title": "绩点详情" + } + }, + "title": "查询学生GPA返回体" + }, "v1GetStudentGradeResponse": { "type": "object", "properties": { @@ -1445,6 +1588,22 @@ }, "title": "GetStudentRewardsResponse 奖学金查询返回体" }, + "v1GetStudentSchoolRollStatusResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1StudentSchoolRollStatus" + } + }, + "title": "查询学生学籍状态返回体" + }, "v1GetStudentStaySchoolInfoResponse": { "type": "object", "properties": { @@ -1612,6 +1771,23 @@ }, "title": "考试详情" }, + "v1StudentGPA": { + "type": "object", + "properties": { + "perSemester": { + "type": "array", + "items": { + "$ref": "#/definitions/v1GPAPerSemester" + }, + "title": "每学期绩点" + }, + "total": { + "$ref": "#/definitions/v1GPATotal", + "title": "总绩点" + } + }, + "title": "考试详情" + }, "v1StudentGrade": { "type": "object", "properties": { @@ -1779,6 +1955,28 @@ }, "title": "奖学金信息" }, + "v1StudentSchoolRollStatus": { + "type": "object", + "properties": { + "staffId": { + "type": "string", + "title": "学号" + }, + "staffName": { + "type": "string", + "title": "学生姓名" + }, + "statusCode": { + "type": "string", + "title": "学籍状态代码" + }, + "statusDesc": { + "type": "string", + "title": "学籍状态中文描述" + } + }, + "title": "学生学籍状态" + }, "v1StudentStaySchoolInfo": { "type": "object", "properties": { From e1e04e4bafb217e146044511162c032573b74489 Mon Sep 17 00:00:00 2001 From: sunalwaysknows <86180691+sunalwaysknows@users.noreply.github.com> Date: Fri, 8 Jul 2022 14:39:35 +0800 Subject: [PATCH 25/25] update actions --- .github/workflows/buf-lint.yml | 2 +- .github/workflows/buf-pr.yml | 68 ++++++++++++++++++++++++++++++++++ .github/workflows/buf.yml | 25 ++++--------- .github/workflows/lint.yml | 4 +- 4 files changed, 79 insertions(+), 20 deletions(-) create mode 100644 .github/workflows/buf-pr.yml diff --git a/.github/workflows/buf-lint.yml b/.github/workflows/buf-lint.yml index 68e4a7a..3c3297a 100644 --- a/.github/workflows/buf-lint.yml +++ b/.github/workflows/buf-lint.yml @@ -9,7 +9,7 @@ on: paths: - "**.proto" - "buf.yaml" - - ".github/workflows/buf-lint.yaml" + - ".github/workflows/buf-lint.yml" jobs: lint-protos: diff --git a/.github/workflows/buf-pr.yml b/.github/workflows/buf-pr.yml new file mode 100644 index 0000000..1156688 --- /dev/null +++ b/.github/workflows/buf-pr.yml @@ -0,0 +1,68 @@ +name: check buf generate up to date +on: + pull_request: + branches: + - main + paths: + - "**.go" + - "**.proto" + - "**.go.json" + - "go.mod" + - "go.sum" + - ".github/workflows/buf-pr.yml" + +jobs: + build: + name: Build + runs-on: ubuntu-latest + steps: + - name: load Go 1.18 env + uses: actions/setup-go@v3 + with: + go-version: 1.18 + id: go + + - name: checkout + uses: actions/checkout@v3 + with: + token: ${{ secrets.PAT }} + + - uses: actions/cache@v3 + id: cache-golang + with: + path: | + ~/.cache/go-build + ~/go/pkg/mod + ~/go/bin + key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} + restore-keys: | + ${{ runner.os }}-go- + + - run: echo ${{ steps.cache-golang.outputs.cache-hit }} + + - name: init dependance + if: steps.cache-golang.outputs.cache-hit != 'true' + run: make install-tools + + - name: generate proto + run: make generate-proto + + - name: check if files up to date + run: | + if [[ `git status --porcelain` ]]; then + echo "buf gen code not up to date" + exit 1 + fi + + - name: warming go proxy + if: github.ref == 'refs/heads/main' + run: | + hash=$(git show -s --format=%h) + echo $hash + mkdir ~/warm + cd ~/warm + go mod init warm + go get github.com/hduhelp/api_open_sdk@$hash + GOPROXY=https://goproxy.io,direct go get github.com/hduhelp/api_open_sdk@$hash + GOPROXY=https://goproxy.cn,direct go get github.com/hduhelp/api_open_sdk@$hash + diff --git a/.github/workflows/buf.yml b/.github/workflows/buf.yml index 41fac49..3da526f 100644 --- a/.github/workflows/buf.yml +++ b/.github/workflows/buf.yml @@ -3,15 +3,6 @@ on: push: branches: - main - pull_request: - branches: - - main - paths: - - "**.go" - - "**.go.json" - - "go.mod" - - "go.sum" - jobs: build: name: Build @@ -38,9 +29,8 @@ jobs: key: ${{ runner.os }}-go-${{ hashFiles('**/go.sum') }} restore-keys: | ${{ runner.os }}-go- - - run: echo ${{ steps.cache-golang.outputs.cache-hit }} - + - name: init dependance if: steps.cache-golang.outputs.cache-hit != 'true' run: make install-tools @@ -51,12 +41,14 @@ jobs: - name: check if files up to date run: | if [[ `git status --porcelain` ]]; then - echo "buf gen code not up to date" - exit 1 + git config --global user.name 'FDKevin' + git config --global user.email 'fdkevinzero@gmail.com' + git add -A + git commit -m "ci(gen): buf generate up to date" + git push fi - + - name: warming go proxy - if: github.ref == 'refs/heads/main' run: | hash=$(git show -s --format=%h) echo $hash @@ -65,5 +57,4 @@ jobs: go mod init warm go get github.com/hduhelp/api_open_sdk@$hash GOPROXY=https://goproxy.io,direct go get github.com/hduhelp/api_open_sdk@$hash - GOPROXY=https://goproxy.cn,direct go get github.com/hduhelp/api_open_sdk@$hash - + GOPROXY=https://goproxy.cn,direct go get github.com/hduhelp/api_open_sdk@$hash \ No newline at end of file diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 5c7a07c..73873af 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -11,8 +11,8 @@ on: - "**.go.json" - "go.mod" - "go.sum" - - ".golangci.yaml" - - ".github/workflows/lint.yaml" + - ".golangci.yml" + - ".github/workflows/lint.yml" jobs: lint: