diff --git a/.github/workflows/buf-lint.yml b/.github/workflows/buf-lint.yml new file mode 100644 index 0000000..3c3297a --- /dev/null +++ b/.github/workflows/buf-lint.yml @@ -0,0 +1,20 @@ +name: check buf lint +on: + push: + branches: + - main + pull_request: + branches: + - main + paths: + - "**.proto" + - "buf.yaml" + - ".github/workflows/buf-lint.yml" + +jobs: + lint-protos: + 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 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 484710c..3da526f 100644 --- a/.github/workflows/buf.yml +++ b/.github/workflows/buf.yml @@ -29,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 @@ -48,7 +47,7 @@ jobs: git commit -m "ci(gen): buf generate up to date" git push fi - + - name: warming go proxy run: | hash=$(git show -s --format=%h) @@ -58,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 new file mode 100644 index 0000000..73873af --- /dev/null +++ b/.github/workflows/lint.yml @@ -0,0 +1,46 @@ +name: check code lint +on: + push: + branches: + - main + pull_request: + branches: + - main + paths: + - "**.go" + - "**.go.json" + - "go.mod" + - "go.sum" + - ".golangci.yml" + - ".github/workflows/lint.yml" + +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 ab10195..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 文件 @@ -19,6 +24,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 # 新建目录 @@ -42,7 +54,11 @@ http://localhost:8080/campusapis/staff/v1/freshman.swagger.json 4. 每次改动 proto 后需要重新运行 `buf generate`,并且「清空缓存并进行硬刷新」网页 +## Code Lint + + + ## 接口注释 -有效:rpc 方法前,Response message 前,message内部字段前 -无效(不会显示到 swagger 中):Request message 前 +- 有效:rpc 方法前,Response message 前,message内部字段前 +- 无效(不会显示到 swagger 中):Request message 前 diff --git a/aggregatingapis/infostream/v1/infostream.pb.go b/aggregatingapis/infostream/v1/infostream.pb.go index 67800ff..b978de1 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 infostreamv1 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 } @@ -1293,14 +1293,22 @@ func (x *ElectricData) GetRoomName() string { return "" } -type SettingsResp struct { +type GetInfostreamResponse_Data struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + 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"` } -func (x *SettingsResp) Reset() { - *x = SettingsResp{} +func (x *GetInfostreamResponse_Data) Reset() { + *x = GetInfostreamResponse_Data{} if protoimpl.UnsafeEnabled { mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1308,13 +1316,13 @@ func (x *SettingsResp) Reset() { } } -func (x *SettingsResp) String() string { +func (x *GetInfostreamResponse_Data) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SettingsResp) ProtoMessage() {} +func (*GetInfostreamResponse_Data) ProtoMessage() {} -func (x *SettingsResp) ProtoReflect() protoreflect.Message { +func (x *GetInfostreamResponse_Data) ProtoReflect() protoreflect.Message { mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1326,174 +1334,120 @@ func (x *SettingsResp) ProtoReflect() protoreflect.Message { 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 InfoStreamResp_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"` -} - -func (x *InfoStreamResp_Data) Reset() { - *x = InfoStreamResp_Data{} - if protoimpl.UnsafeEnabled { - mi := &file_aggregatingapis_infostream_v1_infostream_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *InfoStreamResp_Data) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*InfoStreamResp_Data) ProtoMessage() {} - -func (x *InfoStreamResp_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)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - 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 { - 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{ 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, - 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, - 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, - 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, + 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, + 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, + 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, 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, + 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, 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, 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, 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, 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, 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, 0x45, 0x6c, 0x65, 0x63, + 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x52, 0x08, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x72, + 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, @@ -1516,64 +1470,65 @@ var file_aggregatingapis_infostream_v1_infostream_proto_rawDesc = []byte{ 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, 0xb0, 0x01, - 0x0a, 0x0c, 0x73, 0x63, 0x68, 0x65, 0x64, 0x75, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, + 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, 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, 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, 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, 0x61, 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, 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, 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, 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, + 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, 0x73, 0x63, 0x6f, 0x72, 0x65, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1e, 0x0a, 0x0a, + 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, @@ -1601,88 +1556,90 @@ var file_aggregatingapis_infostream_v1_infostream_proto_rawDesc = []byte{ 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, 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, 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, 0x69, 0x0a, 0x0c, 0x65, 0x6c, - 0x65, 0x63, 0x74, 0x72, 0x69, 0x63, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x76, + 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, 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, 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, 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, + 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, 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, 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, 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 ( @@ -1697,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{}{ - (*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 + (*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 + (*GetInfostreamResponse_Data)(nil), // 15: aggregatingapis.infostream.v1.GetInfostreamResponse.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 - 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 + 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 + 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 + 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() } @@ -1750,7 +1705,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: @@ -1762,7 +1717,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: @@ -1774,7 +1729,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: @@ -1930,19 +1885,7 @@ 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.(*InfoStreamResp_Data); i { + switch v := v.(*GetInfostreamResponse_Data); i { case 0: return &v.state case 1: @@ -1960,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/infostream/v1/infostream.pb.gw.go b/aggregatingapis/infostream/v1/infostream.pb.gw.go index ffc6198..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 infoStreamv1 is a reverse proxy. +Package infostreamv1 is a reverse proxy. It translates gRPC into RESTful JSON APIs. */ -package infoStreamv1 +package infostreamv1 import ( "context" @@ -32,60 +32,60 @@ 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 } -// 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, "/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 } - 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, "/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 } - 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 a5e0d82..cc55e1c 100644 --- a/aggregatingapis/infostream/v1/infostream.proto +++ b/aggregatingapis/infostream/v1/infostream.proto @@ -1,45 +1,44 @@ 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) { +service InfostreamService { + 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; - scheduleResp schedule = 2; - examResp exam = 3; - scoreResp score = 4; - sunRunResp sunrun = 5; - cardResp card = 6; - electricResp electric = 7; - settingsResp settings = 8; + WeatherResponse weather = 1; + ScheduleResp schedule = 2; + ExamResp exam = 3; + ScoreResp score = 4; + SunRunResp sunrun = 5; + CardResp card = 6; + ElectricResp electric = 7; } } -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; @@ -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,22 +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 { - -} \ No newline at end of file diff --git a/aggregatingapis/infostream/v1/infostream_grpc.pb.go b/aggregatingapis/infostream/v1/infostream_grpc.pb.go index 77d9e4d..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 infoStreamv1 +package infostreamv1 import ( context "context" @@ -18,84 +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 { - GetInfoStream(ctx context.Context, in *InfoStreamReq, opts ...grpc.CallOption) (*InfoStreamResp, error) +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 *InfoStreamReq, opts ...grpc.CallOption) (*InfoStreamResp, error) { - out := new(InfoStreamResp) - err := c.cc.Invoke(ctx, "/flutterapis.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.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 should embed UnimplementedInfoStreamServiceServer +// InfostreamServiceServer is the server API for InfostreamService service. +// All implementations must embed UnimplementedInfostreamServiceServer // for forward compatibility -type InfoStreamServiceServer interface { - GetInfoStream(context.Context, *InfoStreamReq) (*InfoStreamResp, error) +type InfostreamServiceServer interface { + GetInfostream(context.Context, *GetInfostreamRequest) (*GetInfostreamResponse, error) + mustEmbedUnimplementedInfostreamServiceServer() } -// UnimplementedInfoStreamServiceServer should 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, *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() {} -// 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) { - 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: "/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)) + 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: "flutterapis.infoStream.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, + MethodName: "GetInfostream", + Handler: _InfostreamService_GetInfostream_Handler, }, }, Streams: []grpc.StreamDesc{}, diff --git a/aggregatingapis/time/v1/time.pb.go b/aggregatingapis/time/v1/time.pb.go index ad39c2a..2526e30 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 } @@ -233,70 +233,73 @@ 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, 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, + 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, 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, } var ( @@ -313,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{}{ - (*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: 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.TimeResp.data:type_name -> flutterapis.time.v1.TimeResp.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 + 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 @@ -335,7 +338,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 +350,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.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.proto b/aggregatingapis/time/v1/time.proto index cb48652..509a352 100644 --- a/aggregatingapis/time/v1/time.proto +++ b/aggregatingapis/time/v1/time.proto @@ -1,25 +1,25 @@ syntax = "proto3"; -package flutterapis.time.v1; +package aggregatingapis.time.v1; -import "google/protobuf/empty.proto"; 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 (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 0634767..729001c 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,9 +34,9 @@ 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) - err := c.cc.Invoke(ctx, "/flutterapis.time.v1.TimeService/GetTime", in, out, opts...) +func (c *timeServiceClient) GetTime(ctx context.Context, in *emptypb.Empty, opts ...grpc.CallOption) (*GetTimeResponse, error) { + out := new(GetTimeResponse) + err := c.cc.Invoke(ctx, "/aggregatingapis.time.v1.TimeService/GetTime", in, out, opts...) if err != nil { return nil, err } @@ -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) + GetTime(context.Context, *emptypb.Empty) (*GetTimeResponse, 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) { +func (UnimplementedTimeServiceServer) GetTime(context.Context, *emptypb.Empty) (*GetTimeResponse, 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 @@ -79,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)) @@ -91,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/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/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/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: diff --git a/buf.yaml b/buf.yaml index 86b1a74..e40ae5e 100644 --- a/buf.yaml +++ b/buf.yaml @@ -5,14 +5,16 @@ 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_VALUE_PREFIX + - ENUM_ZERO_VALUE_SUFFIX 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..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" @@ -28,10 +27,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 *CardInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetCardInfoResponse) Reset() { @@ -66,14 +64,78 @@ 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.Error + } + return 0 +} + +func (x *GetCardInfoResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +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 *GetCardInfoResponse) GetFlow() []*Consumption { +func (x *CardInfo) GetFlow() []*Consumption { if x != nil { return x.Flow } @@ -103,7 +165,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) } @@ -116,7 +178,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 { @@ -129,7 +191,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 { @@ -179,13 +241,16 @@ 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() { *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) } @@ -198,7 +263,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 { @@ -211,12 +276,26 @@ 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) 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,13 +305,15 @@ 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() { *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) } @@ -245,7 +326,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 { @@ -258,12 +339,26 @@ 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) 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 } @@ -276,77 +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, 0x68, 0x0a, 0x13, 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, - 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, + 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, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 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, 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, - 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, 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, + 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 ( @@ -361,28 +463,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 + (*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{ - 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 + 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 + 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 + 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() } @@ -404,7 +508,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: @@ -416,7 +520,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: @@ -428,6 +532,18 @@ 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.(*GetCardBalanceResponse); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_campusapis_card_v1_card_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetCardConsumeResponse); i { case 0: return &v.state @@ -446,7 +562,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..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"; @@ -23,10 +22,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,16 +31,20 @@ 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 { + uint32 error = 1; + string msg = 2; + CardInfo data = 3; +} + +message CardInfo { //余额,精确到小数点后两位,单位元 float remaining = 1; //交易记录 @@ -67,9 +68,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/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.pb.go b/campusapis/gate/v1/callback.pb.go index 06f2249..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" @@ -106,28 +103,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 +132,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 +169,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{ @@ -177,66 +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, 0x1f, 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, + 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, 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, + 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..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"; @@ -31,4 +28,7 @@ message PostGateEventCallbackRequest { } // 推送门禁事件回调返回体 -message PostGateEventCallbackResponse {} +message PostGateEventCallbackResponse { + uint32 error = 1; + string msg = 2; +} 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/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/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/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.pb.go b/campusapis/health/v1/health.pb.go index 15019af..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" @@ -79,7 +77,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 []*CheckinRecord `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } func (x *GetCheckinRecordsResponse) Reset() { @@ -114,19 +114,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() []*CheckinRecord { + 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 +235,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 +262,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 +385,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 +398,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 +411,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 +451,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 +464,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 +477,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 +527,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 +548,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 +561,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 +590,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 +611,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 +624,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 +659,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 +672,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 +685,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 +695,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 +777,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 +790,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 +803,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 +868,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 +951,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 +978,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 +1059,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 +1080,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 +1093,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 +1142,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 +1155,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 +1168,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 +1226,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 +1247,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 +1260,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 +1300,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 +1313,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 +1326,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 +1356,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 +1377,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 +1390,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) GetError() uint32 { + if x != nil { + 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 (x *GetNucleicAcidTestLatestResponse) GetItem() *NucleicAcidTest { +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.Item + 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 } @@ -1161,273 +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, 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, - 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, + 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, 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, - 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, - 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, 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, + 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, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x05, 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, 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, + 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, 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, + 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, 0x2f, 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, 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, - 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, 0x8a, 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, - 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, + 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, 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, + 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 ( @@ -1442,62 +1966,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 + 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 + 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 +2080,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 +2092,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 +2104,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 +2116,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 +2128,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 +2140,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 +2152,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 +2164,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 +2176,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 +2188,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 +2200,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 +2212,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 +2259,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 +2314,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..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"; @@ -29,10 +27,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 +53,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 +88,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 +98,19 @@ message GetCheckinRecordRequest { } message GetCheckinRecordsResponse { - repeated GetCheckinRecordResponse items = 1; + uint32 error = 1; + string msg = 2; + repeated CheckinRecord data = 3; } -//健康打卡记录 message GetCheckinRecordResponse { + uint32 error = 1; + string msg = 2; + CheckinRecord data = 3; +} + +//健康打卡记录 +message CheckinRecord { uint32 id = 1; //姓名 string creator = 2; @@ -162,20 +165,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 +211,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 +239,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 +267,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 +286,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..cd3483e 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 @@ -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 { //获取指定日期健康打卡记录 @@ -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) // 获取疫苗接种记录 @@ -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 { } @@ -172,7 +173,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) { @@ -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.pb.go b/campusapis/library/v1/library.pb.go index 7bc3ae8..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" ) @@ -28,24 +25,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 +127,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 +164,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 +431,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 +468,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 +550,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 +587,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 +897,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 +934,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.Marcs + 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.Data } return nil } -type GetLendLastRequest struct { +type GetBookLendLastRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -902,8 +963,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 +972,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 +990,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 +1011,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 +1020,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 +1038,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 +1062,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 +1099,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.Items + 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.Data } return nil } @@ -1048,7 +1125,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 +1162,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.Error + } + return 0 +} + +func (x *GetBookLendHistoryResponse) GetMsg() string { if x != nil { - return x.Items + return x.Msg + } + return "" +} + +func (x *GetBookLendHistoryResponse) GetData() []*GetBookLendHistoryResponse_Nested { + if x != nil { + return x.Data } return nil } @@ -1190,7 +1283,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 +1386,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 @@ -1302,262 +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, 0x4a, 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, - 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, + 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, 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, 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, - 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, + 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, 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, 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, + 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, 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, + 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x05, 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, 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, + 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, 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, + 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, 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, - 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, - 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, + 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, 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, + 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, 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, 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, - 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, + 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, 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 +1688,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 +1712,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 +1854,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 +1866,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..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"; @@ -14,42 +11,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 +57,9 @@ message GetBookInfoRequest { } message GetBookInfoResponse { - BookInfo book = 1; + uint32 error = 1; + string msg = 2; + BookInfo data = 3; } //书本信息 @@ -108,7 +106,9 @@ message GetBookInfoListRequest { } message GetBookInfoListResponse { - repeated BookInfo books = 1; + uint32 error = 1; + string msg = 2; + repeated BookInfo data = 3; } //书籍信息查询关键字 @@ -118,7 +118,9 @@ message GetBookMARCRequest { } message GetBookMARCResponse { - BookMARC marc = 1; + uint32 error = 1; + string msg = 2; + BookMARC data = 3; } message BookMARC { @@ -173,28 +175,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 +213,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 +230,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..e7df95f 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 { @@ -99,7 +99,7 @@ func (c *libraryServiceClient) GetBookLendHistory(ctx context.Context, in *GetLe } // LibraryServiceServer is the server API for LibraryService service. -// All implementations should embed UnimplementedLibraryServiceServer +// All implementations must embed UnimplementedLibraryServiceServer // for forward compatibility type LibraryServiceServer interface { //查询书本信息 @@ -111,12 +111,13 @@ 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) + mustEmbedUnimplementedLibraryServiceServer() } -// UnimplementedLibraryServiceServer should be embedded to have forward compatible implementations. +// UnimplementedLibraryServiceServer must be embedded to have forward compatible implementations. type UnimplementedLibraryServiceServer struct { } @@ -132,12 +133,13 @@ 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") } +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 @@ -223,7 +225,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 +237,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 +255,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/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/campusapis/schoolTime/v1/schoolTime.pb.go b/campusapis/schoolTime/v1/schoolTime.pb.go deleted file mode 100644 index ee8af64..0000000 --- a/campusapis/schoolTime/v1/schoolTime.pb.go +++ /dev/null @@ -1,491 +0,0 @@ -// Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.28.0 -// protoc (unknown) -// source: campusapis/schoolTime/v1/schoolTime.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" -) - -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 GetSchoolTimeResponse 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) Reset() { - *x = GetSchoolTimeResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[0] - 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_campusapis_schoolTime_v1_schoolTime_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 GetSchoolTimeResponse.ProtoReflect.Descriptor instead. -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 { - if x != nil { - return x.Section - } - return 0 -} - -func (x *GetSchoolTimeResponse) GetSemester() string { - if x != nil { - return x.Semester - } - 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 { - if x != nil { - return x.WeekNow - } - return 0 -} - -type GetSemesterListRequest 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"` -} - -func (x *GetSemesterListRequest) Reset() { - *x = GetSemesterListRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetSemesterListRequest) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetSemesterListRequest) ProtoMessage() {} - -func (x *GetSemesterListRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_schoolTime_v1_schoolTime_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 GetSemesterListRequest.ProtoReflect.Descriptor instead. -func (*GetSemesterListRequest) Descriptor() ([]byte, []int) { - return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{1} -} - -func (x *GetSemesterListRequest) GetStartDate() string { - if x != nil { - return x.StartDate - } - return "" -} - -func (x *GetSemesterListRequest) GetEndDate() string { - if x != nil { - return x.EndDate - } - return "" -} - -type GetSemesterListResponse struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Items []*GetSemesterListResponse_Semester `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` -} - -func (x *GetSemesterListResponse) Reset() { - *x = GetSemesterListResponse{} - if protoimpl.UnsafeEnabled { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetSemesterListResponse) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetSemesterListResponse) ProtoMessage() {} - -func (x *GetSemesterListResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_schoolTime_v1_schoolTime_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 GetSemesterListResponse.ProtoReflect.Descriptor instead. -func (*GetSemesterListResponse) Descriptor() ([]byte, []int) { - return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{2} -} - -func (x *GetSemesterListResponse) GetItems() []*GetSemesterListResponse_Semester { - if x != nil { - return x.Items - } - return nil -} - -type GetSemesterListResponse_Semester 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"` - StartDate string `protobuf:"bytes,3,opt,name=startDate,proto3" json:"startDate,omitempty"` - EndDate string `protobuf:"bytes,4,opt,name=endDate,proto3" json:"endDate,omitempty"` - State int32 `protobuf:"varint,5,opt,name=state,proto3" json:"state,omitempty"` -} - -func (x *GetSemesterListResponse_Semester) Reset() { - *x = GetSemesterListResponse_Semester{} - if protoimpl.UnsafeEnabled { - mi := &file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetSemesterListResponse_Semester) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetSemesterListResponse_Semester) ProtoMessage() {} - -func (x *GetSemesterListResponse_Semester) 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 GetSemesterListResponse_Semester.ProtoReflect.Descriptor instead. -func (*GetSemesterListResponse_Semester) Descriptor() ([]byte, []int) { - return file_campusapis_schoolTime_v1_schoolTime_proto_rawDescGZIP(), []int{2, 0} -} - -func (x *GetSemesterListResponse_Semester) GetSchoolYear() string { - if x != nil { - return x.SchoolYear - } - return "" -} - -func (x *GetSemesterListResponse_Semester) GetSemester() string { - if x != nil { - return x.Semester - } - return "" -} - -func (x *GetSemesterListResponse_Semester) GetStartDate() string { - if x != nil { - return x.StartDate - } - return "" -} - -func (x *GetSemesterListResponse_Semester) GetEndDate() string { - if x != nil { - return x.EndDate - } - return "" -} - -func (x *GetSemesterListResponse_Semester) GetState() int32 { - if x != nil { - return x.State - } - return 0 -} - -var File_campusapis_schoolTime_v1_schoolTime_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, - 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, - 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, 0xc5, 0x01, 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, - 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, -} - -var ( - file_campusapis_schoolTime_v1_schoolTime_proto_rawDescOnce sync.Once - file_campusapis_schoolTime_v1_schoolTime_proto_rawDescData = file_campusapis_schoolTime_v1_schoolTime_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) - }) - 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_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 -} -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 -} - -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 { - return - } - if !protoimpl.UnsafeEnabled { - file_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[0].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_campusapis_schoolTime_v1_schoolTime_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSemesterListRequest); 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[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSemesterListResponse); 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[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetSemesterListResponse_Semester); 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_campusapis_schoolTime_v1_schoolTime_proto_rawDesc, - NumEnums: 0, - NumMessages: 4, - 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, - }.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 -} diff --git a/campusapis/schoolTime/v1/school_time.pb.go b/campusapis/schoolTime/v1/school_time.pb.go new file mode 100644 index 0000000..8ce9171 --- /dev/null +++ b/campusapis/schoolTime/v1/school_time.pb.go @@ -0,0 +1,585 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.28.0 +// protoc (unknown) +// source: campusapis/schoolTime/v1/school_time.proto + +package schoolTimev1 + +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" + 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 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_campusapis_schoolTime_v1_school_time_proto_msgTypes[0] + 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_campusapis_schoolTime_v1_school_time_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 GetSchoolTimeResponse.ProtoReflect.Descriptor instead. +func (*GetSchoolTimeResponse) Descriptor() ([]byte, []int) { + return file_campusapis_schoolTime_v1_school_time_proto_rawDescGZIP(), []int{0} +} + +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"` + 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 *SchoolTime) Reset() { + *x = SchoolTime{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[1] + 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_campusapis_schoolTime_v1_school_time_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 SchoolTime.ProtoReflect.Descriptor instead. +func (*SchoolTime) Descriptor() ([]byte, []int) { + return file_campusapis_schoolTime_v1_school_time_proto_rawDescGZIP(), []int{1} +} + +func (x *SchoolTime) GetSchoolYear() string { + if x != nil { + return x.SchoolYear + } + return "" +} + +func (x *SchoolTime) GetSection() int32 { + if x != nil { + return x.Section + } + return 0 +} + +func (x *SchoolTime) GetSemester() string { + if x != nil { + return x.Semester + } + return "" +} + +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 + + 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 *GetSemesterListRequest) Reset() { + *x = GetSemesterListRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSemesterListRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSemesterListRequest) ProtoMessage() {} + +func (x *GetSemesterListRequest) ProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSemesterListRequest.ProtoReflect.Descriptor instead. +func (*GetSemesterListRequest) Descriptor() ([]byte, []int) { + return file_campusapis_schoolTime_v1_school_time_proto_rawDescGZIP(), []int{2} +} + +func (x *GetSemesterListRequest) GetStartDate() string { + if x != nil { + return x.StartDate + } + return "" +} + +func (x *GetSemesterListRequest) GetEndDate() string { + if x != nil { + return x.EndDate + } + return "" +} + +type GetSemesterListResponse 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 []*SemesterInfo `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetSemesterListResponse) Reset() { + *x = GetSemesterListResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetSemesterListResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetSemesterListResponse) ProtoMessage() {} + +func (x *GetSemesterListResponse) ProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetSemesterListResponse.ProtoReflect.Descriptor instead. +func (*GetSemesterListResponse) Descriptor() ([]byte, []int) { + return file_campusapis_schoolTime_v1_school_time_proto_rawDescGZIP(), []int{3} +} + +func (x *GetSemesterListResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetSemesterListResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetSemesterListResponse) GetData() []*SemesterInfo { + if x != nil { + return x.Data + } + return nil +} + +type SemesterInfo 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"` + StartDate string `protobuf:"bytes,3,opt,name=startDate,proto3" json:"startDate,omitempty"` + EndDate string `protobuf:"bytes,4,opt,name=endDate,proto3" json:"endDate,omitempty"` + State int32 `protobuf:"varint,5,opt,name=state,proto3" json:"state,omitempty"` +} + +func (x *SemesterInfo) Reset() { + *x = SemesterInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_schoolTime_v1_school_time_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SemesterInfo) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SemesterInfo) ProtoMessage() {} + +func (x *SemesterInfo) ProtoReflect() protoreflect.Message { + 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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SemesterInfo.ProtoReflect.Descriptor instead. +func (*SemesterInfo) Descriptor() ([]byte, []int) { + return file_campusapis_schoolTime_v1_school_time_proto_rawDescGZIP(), []int{4} +} + +func (x *SemesterInfo) GetSchoolYear() string { + if x != nil { + return x.SchoolYear + } + return "" +} + +func (x *SemesterInfo) GetSemester() string { + if x != nil { + return x.Semester + } + return "" +} + +func (x *SemesterInfo) GetStartDate() string { + if x != nil { + return x.StartDate + } + return "" +} + +func (x *SemesterInfo) GetEndDate() string { + if x != nil { + return x.EndDate + } + return "" +} + +func (x *SemesterInfo) GetState() int32 { + if x != nil { + return x.State + } + return 0 +} + +var File_campusapis_schoolTime_v1_school_time_proto protoreflect.FileDescriptor + +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, 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, 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_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_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_school_time_proto_rawDescData +} + +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 + (*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_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 + 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 + 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 + 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_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_school_time_proto_msgTypes[0].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_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 + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + 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 + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + 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 + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + 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 + 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_campusapis_schoolTime_v1_school_time_proto_rawDesc, + NumEnums: 0, + NumMessages: 5, + NumExtensions: 0, + NumServices: 1, + }, + 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_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 94% rename from campusapis/schoolTime/v1/schoolTime.pb.gw.go rename to campusapis/schoolTime/v1/school_time.pb.gw.go index cd7abe2..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. @@ -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/school_time.proto similarity index 62% rename from campusapis/schoolTime/v1/schoolTime.proto rename to campusapis/schoolTime/v1/school_time.proto index faacf2b..a9387b8 100644 --- a/campusapis/schoolTime/v1/schoolTime.proto +++ b/campusapis/schoolTime/v1/school_time.proto @@ -2,16 +2,14 @@ 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/protobuf/empty.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 { @@ -19,21 +17,26 @@ service SchoolTimeService { } }; } + // 获取学校学期信息列表 - rpc GetSemesterList (GetSemesterListRequest) returns (GetSemesterListResponse) { + 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; + uint32 error = 1; + string msg = 2; + SchoolTime data = 3; +} + +message SchoolTime { + string schoolYear = 1; int32 section = 2; string semester = 3; uint32 timeStamp = 4; @@ -47,12 +50,15 @@ message GetSemesterListRequest { } message GetSemesterListResponse { - message Semester { - string schoolYear = 1; - string semester = 2; - string startDate = 3; - string endDate = 4; - int32 state = 5; - } - repeated Semester items = 1; -} \ No newline at end of file + uint32 error = 1; + string msg = 2; + repeated SemesterInfo data = 3; +} + +message SemesterInfo { + string schoolYear = 1; + string semester = 2; + string startDate = 3; + string endDate = 4; + int32 state = 5; +} diff --git a/campusapis/schoolTime/v1/schoolTime_grpc.pb.go b/campusapis/schoolTime/v1/school_time_grpc.pb.go similarity index 92% rename from campusapis/schoolTime/v1/schoolTime_grpc.pb.go rename to campusapis/schoolTime/v1/school_time_grpc.pb.go index ae792fb..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 @@ -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 @@ -140,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 8e5318b..6d944eb 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" @@ -30,16 +29,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 *PersonInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } func (x *GetPersonInfoResponse) Reset() { @@ -74,35 +66,105 @@ 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.Error + } + return 0 +} + +func (x *GetPersonInfoResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +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 *GetPersonInfoResponse) GetStaffName() string { +func (x *PersonInfo) GetStaffName() string { if x != nil { return x.StaffName } return "" } -func (x *GetPersonInfoResponse) GetStaffState() string { +func (x *PersonInfo) GetStaffState() string { if x != nil { return x.StaffState } return "" } -func (x *GetPersonInfoResponse) GetStaffType() string { +func (x *PersonInfo) GetStaffType() string { if x != nil { return x.StaffType } return "" } -func (x *GetPersonInfoResponse) GetUnitCode() string { +func (x *PersonInfo) GetUnitCode() string { if x != nil { return x.UnitCode } @@ -123,7 +185,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) } @@ -136,7 +198,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 { @@ -149,7 +211,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 { @@ -180,7 +242,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) } @@ -193,7 +255,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 { @@ -206,7 +268,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 { @@ -237,7 +299,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) } @@ -250,7 +312,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 { @@ -263,7 +325,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 { @@ -294,7 +356,7 @@ type GetStudentExamRequest struct { func (x *GetStudentExamRequest) Reset() { *x = GetStudentExamRequest{} 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) } @@ -307,7 +369,7 @@ func (x *GetStudentExamRequest) String() string { func (*GetStudentExamRequest) ProtoMessage() {} func (x *GetStudentExamRequest) 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 { @@ -320,7 +382,7 @@ func (x *GetStudentExamRequest) ProtoReflect() protoreflect.Message { // Deprecated: Use GetStudentExamRequest.ProtoReflect.Descriptor instead. func (*GetStudentExamRequest) 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 *GetStudentExamRequest) GetSchoolYear() string { @@ -352,7 +414,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) } @@ -365,7 +427,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 { @@ -378,7 +440,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 { @@ -401,6 +463,69 @@ 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 *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[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStudentInfoResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStudentInfoResponse) ProtoMessage() {} + +func (x *GetStudentInfoResponse) 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 GetStudentInfoResponse.ProtoReflect.Descriptor instead. +func (*GetStudentInfoResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{7} +} + +func (x *GetStudentInfoResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetStudentInfoResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +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"` //学生姓名 @@ -421,23 +546,23 @@ type GetStudentInfoResponse struct { TeacherName string `protobuf:"bytes,9,opt,name=teacherName,proto3" json:"teacherName,omitempty"` } -func (x *GetStudentInfoResponse) Reset() { - *x = GetStudentInfoResponse{} +func (x *StudentInfo) Reset() { + *x = StudentInfo{} 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) } } -func (x *GetStudentInfoResponse) String() string { +func (x *StudentInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentInfoResponse) ProtoMessage() {} +func (*StudentInfo) ProtoMessage() {} -func (x *GetStudentInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[6] +func (x *StudentInfo) ProtoReflect() protoreflect.Message { + 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 { @@ -448,68 +573,68 @@ func (x *GetStudentInfoResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentInfoResponse.ProtoReflect.Descriptor instead. -func (*GetStudentInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{6} +// Deprecated: Use StudentInfo.ProtoReflect.Descriptor instead. +func (*StudentInfo) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{8} } -func (x *GetStudentInfoResponse) GetStaffId() string { +func (x *StudentInfo) GetStaffId() string { if x != nil { return x.StaffId } return "" } -func (x *GetStudentInfoResponse) GetStaffName() string { +func (x *StudentInfo) GetStaffName() string { if x != nil { return x.StaffName } return "" } -func (x *GetStudentInfoResponse) GetClassId() string { +func (x *StudentInfo) GetClassId() string { if x != nil { return x.ClassId } return "" } -func (x *GetStudentInfoResponse) GetUnitId() string { +func (x *StudentInfo) GetUnitId() string { if x != nil { return x.UnitId } return "" } -func (x *GetStudentInfoResponse) GetUnitName() string { +func (x *StudentInfo) GetUnitName() string { if x != nil { return x.UnitName } return "" } -func (x *GetStudentInfoResponse) GetMajorId() string { +func (x *StudentInfo) GetMajorId() string { if x != nil { return x.MajorId } return "" } -func (x *GetStudentInfoResponse) GetMajorName() string { +func (x *StudentInfo) GetMajorName() string { if x != nil { return x.MajorName } return "" } -func (x *GetStudentInfoResponse) GetTeacherId() string { +func (x *StudentInfo) GetTeacherId() string { if x != nil { return x.TeacherId } return "" } -func (x *GetStudentInfoResponse) GetTeacherName() string { +func (x *StudentInfo) GetTeacherName() string { if x != nil { return x.TeacherName } @@ -522,20 +647,15 @@ type GetStudentSchoolRollStatusResponse 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"` - //学籍状态代码 - StatusCode string `protobuf:"bytes,3,opt,name=statusCode,proto3" json:"statusCode,omitempty"` - //学籍状态中文描述 - StatusDesc string `protobuf:"bytes,4,opt,name=statusDesc,proto3" json:"statusDesc,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 *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[7] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -548,7 +668,7 @@ func (x *GetStudentSchoolRollStatusResponse) String() string { func (*GetStudentSchoolRollStatusResponse) ProtoMessage() {} func (x *GetStudentSchoolRollStatusResponse) 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 { @@ -561,72 +681,63 @@ func (x *GetStudentSchoolRollStatusResponse) ProtoReflect() protoreflect.Message // Deprecated: Use GetStudentSchoolRollStatusResponse.ProtoReflect.Descriptor instead. func (*GetStudentSchoolRollStatusResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{7} -} - -func (x *GetStudentSchoolRollStatusResponse) GetStaffId() string { - if x != nil { - return x.StaffId - } - return "" + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9} } -func (x *GetStudentSchoolRollStatusResponse) GetStaffName() string { +func (x *GetStudentSchoolRollStatusResponse) GetError() uint32 { if x != nil { - return x.StaffName + return x.Error } - return "" + return 0 } -func (x *GetStudentSchoolRollStatusResponse) GetStatusCode() string { +func (x *GetStudentSchoolRollStatusResponse) GetMsg() string { if x != nil { - return x.StatusCode + return x.Msg } return "" } -func (x *GetStudentSchoolRollStatusResponse) GetStatusDesc() string { +func (x *GetStudentSchoolRollStatusResponse) GetData() *StudentSchoolRollStatus { if x != nil { - return x.StatusDesc + return x.Data } - return "" + return nil } -//查询贫困生信息返回体 -type GetStudentNeedyInfoResponse struct { +// 学生学籍状态 +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"` - //性别,枚举及含义:1->男 | 2->女 - Sex int32 `protobuf:"varint,3,opt,name=sex,proto3" json:"sex,omitempty"` - //是否贫困生 - 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"` + //学籍状态代码 + 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 *GetStudentNeedyInfoResponse) Reset() { - *x = GetStudentNeedyInfoResponse{} +func (x *StudentSchoolRollStatus) Reset() { + *x = StudentSchoolRollStatus{} 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) } } -func (x *GetStudentNeedyInfoResponse) String() string { +func (x *StudentSchoolRollStatus) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentNeedyInfoResponse) ProtoMessage() {} +func (*StudentSchoolRollStatus) ProtoMessage() {} -func (x *GetStudentNeedyInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[8] +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 { @@ -637,77 +748,67 @@ 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{8} +// Deprecated: Use StudentSchoolRollStatus.ProtoReflect.Descriptor instead. +func (*StudentSchoolRollStatus) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{10} } -func (x *GetStudentNeedyInfoResponse) GetStaffId() string { +func (x *StudentSchoolRollStatus) GetStaffId() string { if x != nil { return x.StaffId } return "" } -func (x *GetStudentNeedyInfoResponse) GetStaffName() string { +func (x *StudentSchoolRollStatus) GetStaffName() string { if x != nil { return x.StaffName } return "" } -func (x *GetStudentNeedyInfoResponse) GetSex() int32 { - if x != nil { - return x.Sex - } - return 0 -} - -func (x *GetStudentNeedyInfoResponse) GetNeedyStudent() bool { +func (x *StudentSchoolRollStatus) GetStatusCode() string { if x != nil { - return x.NeedyStudent + return x.StatusCode } - return false + return "" } -func (x *GetStudentNeedyInfoResponse) GetItems() []*GetStudentNeedyInfoResponse_Nested { +func (x *StudentSchoolRollStatus) GetStatusDesc() string { if x != nil { - return x.Items + return x.StatusDesc } - return nil + return "" } -// GetStudentDormInfoResponse 查询学生寝室信息返回体 -type GetStudentDormInfoResponse struct { +//查询贫困生信息返回体 +type GetStudentNeedyInfoResponse 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"` + 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 *GetStudentDormInfoResponse) Reset() { - *x = GetStudentDormInfoResponse{} +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) } } -func (x *GetStudentDormInfoResponse) String() string { +func (x *GetStudentNeedyInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentDormInfoResponse) ProtoMessage() {} +func (*GetStudentNeedyInfoResponse) ProtoMessage() {} -func (x *GetStudentDormInfoResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[9] +func (x *GetStudentNeedyInfoResponse) ProtoReflect() protoreflect.Message { + 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 { @@ -718,34 +819,34 @@ func (x *GetStudentDormInfoResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentDormInfoResponse.ProtoReflect.Descriptor instead. -func (*GetStudentDormInfoResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{9} +// Deprecated: Use GetStudentNeedyInfoResponse.ProtoReflect.Descriptor instead. +func (*GetStudentNeedyInfoResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{11} } -func (x *GetStudentDormInfoResponse) GetStaffId() string { +func (x *GetStudentNeedyInfoResponse) GetError() uint32 { if x != nil { - return x.StaffId + return x.Error } - return "" + return 0 } -func (x *GetStudentDormInfoResponse) GetBuilding() string { +func (x *GetStudentNeedyInfoResponse) GetMsg() string { if x != nil { - return x.Building + return x.Msg } return "" } -func (x *GetStudentDormInfoResponse) GetRoom() string { +func (x *GetStudentNeedyInfoResponse) GetData() *StudentNeedyInfo { if x != nil { - return x.Room + return x.Data } - return "" + return nil } -// GetStudentBirthdayResponse 学生生日查询返回体 -type GetStudentBirthdayResponse struct { +//贫困生信息 +type StudentNeedyInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -753,28 +854,32 @@ type GetStudentBirthdayResponse struct { //学工号 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"` + StaffName string `protobuf:"bytes,2,opt,name=staffName,proto3" json:"staffName,omitempty"` + //性别,枚举及含义:1->男 | 2->女 + Sex int32 `protobuf:"varint,3,opt,name=sex,proto3" json:"sex,omitempty"` + //是否贫困生 + NeedyStudent bool `protobuf:"varint,4,opt,name=needyStudent,proto3" json:"needyStudent,omitempty"` + //每学年贫困详情 + Items []*StudentNeedyInfo_Nested `protobuf:"bytes,5,rep,name=items,proto3" json:"items,omitempty"` } -func (x *GetStudentBirthdayResponse) Reset() { - *x = GetStudentBirthdayResponse{} +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) } } -func (x *GetStudentBirthdayResponse) String() string { +func (x *StudentNeedyInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentBirthdayResponse) ProtoMessage() {} +func (*StudentNeedyInfo) ProtoMessage() {} -func (x *GetStudentBirthdayResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[10] +func (x *StudentNeedyInfo) ProtoReflect() protoreflect.Message { + 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 { @@ -785,63 +890,74 @@ 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{10} +// Deprecated: Use StudentNeedyInfo.ProtoReflect.Descriptor instead. +func (*StudentNeedyInfo) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12} } -func (x *GetStudentBirthdayResponse) GetStaffId() string { +func (x *StudentNeedyInfo) GetStaffId() string { if x != nil { return x.StaffId } return "" } -func (x *GetStudentBirthdayResponse) GetName() string { +func (x *StudentNeedyInfo) GetStaffName() string { if x != nil { - return x.Name + return x.StaffName } return "" } -func (x *GetStudentBirthdayResponse) GetBirthday() string { +func (x *StudentNeedyInfo) GetSex() int32 { if x != nil { - return x.Birthday + return x.Sex } - return "" + return 0 } -// 查询某天生日所有人员-请求关键字 -type GetStudentBirthdaysInRequest struct { +func (x *StudentNeedyInfo) GetNeedyStudent() bool { + if x != nil { + return x.NeedyStudent + } + return false +} + +func (x *StudentNeedyInfo) GetItems() []*StudentNeedyInfo_Nested { + if x != nil { + return x.Items + } + return nil +} + +// 查询学生寝室信息返回体 +type GetStudentDormInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - //人员类型 - Type staff.Type `protobuf:"varint,1,opt,name=type,proto3,enum=campusapis.staff.Type" json:"type,omitempty"` - //月 - Month int32 `protobuf:"varint,2,opt,name=month,proto3" json:"month,omitempty"` - //日 - Day int32 `protobuf:"varint,3,opt,name=day,proto3" json:"day,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 *GetStudentBirthdaysInRequest) Reset() { - *x = GetStudentBirthdaysInRequest{} +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) } } -func (x *GetStudentBirthdaysInRequest) String() string { +func (x *GetStudentDormInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentBirthdaysInRequest) ProtoMessage() {} +func (*GetStudentDormInfoResponse) ProtoMessage() {} -func (x *GetStudentBirthdaysInRequest) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[11] +func (x *GetStudentDormInfoResponse) ProtoReflect() protoreflect.Message { + 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 { @@ -852,59 +968,62 @@ func (x *GetStudentBirthdaysInRequest) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentBirthdaysInRequest.ProtoReflect.Descriptor instead. -func (*GetStudentBirthdaysInRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{11} +// Deprecated: Use GetStudentDormInfoResponse.ProtoReflect.Descriptor instead. +func (*GetStudentDormInfoResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{13} } -func (x *GetStudentBirthdaysInRequest) GetType() staff.Type { +func (x *GetStudentDormInfoResponse) GetError() uint32 { if x != nil { - return x.Type + return x.Error } - return staff.Type(0) + return 0 } -func (x *GetStudentBirthdaysInRequest) GetMonth() int32 { +func (x *GetStudentDormInfoResponse) GetMsg() string { if x != nil { - return x.Month + return x.Msg } - return 0 + return "" } -func (x *GetStudentBirthdaysInRequest) GetDay() int32 { +func (x *GetStudentDormInfoResponse) GetData() *DormInfo { if x != nil { - return x.Day + return x.Data } - return 0 + return nil } -// GetStudentBirthdaysInResponse 查询某天生日所有人员-返回体 -type GetStudentBirthdaysInResponse struct { +type DormInfo struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 生日详情列表 - Birthdays []*GetStudentBirthdayResponse `protobuf:"bytes,1,rep,name=birthdays,proto3" json:"birthdays,omitempty"` + //学工号 + 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 *GetStudentBirthdaysInResponse) Reset() { - *x = GetStudentBirthdaysInResponse{} +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) } } -func (x *GetStudentBirthdaysInResponse) String() string { +func (x *DormInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentBirthdaysInResponse) ProtoMessage() {} +func (*DormInfo) ProtoMessage() {} -func (x *GetStudentBirthdaysInResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[12] +func (x *DormInfo) 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 { @@ -915,45 +1034,60 @@ func (x *GetStudentBirthdaysInResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentBirthdaysInResponse.ProtoReflect.Descriptor instead. -func (*GetStudentBirthdaysInResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12} +// Deprecated: Use DormInfo.ProtoReflect.Descriptor instead. +func (*DormInfo) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{14} } -func (x *GetStudentBirthdaysInResponse) GetBirthdays() []*GetStudentBirthdayResponse { +func (x *DormInfo) GetStaffId() string { if x != nil { - return x.Birthdays + return x.StaffId } - return nil + return "" } -// GetStudentRewardsResponse 奖学金查询返回体 -type GetStudentRewardsResponse struct { +func (x *DormInfo) GetBuilding() string { + if x != nil { + return x.Building + } + return "" +} + +func (x *DormInfo) GetRoom() string { + if x != nil { + return x.Room + } + return "" +} + +// GetStudentBirthdayInfoResponse 学生生日查询返回体 +type GetStudentBirthdayInfoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 奖学金列表 - Items []*GetStudentRewardsResponse_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 *StudentBirthdayInfo `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` } -func (x *GetStudentRewardsResponse) Reset() { - *x = GetStudentRewardsResponse{} +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) } } -func (x *GetStudentRewardsResponse) String() string { +func (x *GetStudentBirthdayInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentRewardsResponse) ProtoMessage() {} +func (*GetStudentBirthdayInfoResponse) ProtoMessage() {} -func (x *GetStudentRewardsResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[13] +func (x *GetStudentBirthdayInfoResponse) 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 { @@ -964,45 +1098,63 @@ func (x *GetStudentRewardsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentRewardsResponse.ProtoReflect.Descriptor instead. -func (*GetStudentRewardsResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{13} +// Deprecated: Use GetStudentBirthdayInfoResponse.ProtoReflect.Descriptor instead. +func (*GetStudentBirthdayInfoResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{15} } -func (x *GetStudentRewardsResponse) GetItems() []*GetStudentRewardsResponse_Nested { +func (x *GetStudentBirthdayInfoResponse) GetError() uint32 { if x != nil { - return x.Items + 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 } -// GetStudentSelectResponse 学生选课查询返回体 -type GetStudentSelectResponse struct { +//学生生日信息 +type StudentBirthdayInfo 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"` + //姓名 + 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 *GetStudentSelectResponse) Reset() { - *x = GetStudentSelectResponse{} +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) } } -func (x *GetStudentSelectResponse) String() string { +func (x *StudentBirthdayInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentSelectResponse) ProtoMessage() {} +func (*StudentBirthdayInfo) ProtoMessage() {} -func (x *GetStudentSelectResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[14] +func (x *StudentBirthdayInfo) 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 { @@ -1013,47 +1165,63 @@ 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{14} +// Deprecated: Use StudentBirthdayInfo.ProtoReflect.Descriptor instead. +func (*StudentBirthdayInfo) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{16} } -func (x *GetStudentSelectResponse) GetItems() []*GetStudentSelectResponse_Nested { +func (x *StudentBirthdayInfo) GetStaffId() string { if x != nil { - return x.Items + return x.StaffId } - return nil + return "" } -// GetStudentGradeResponse 查询学生成绩返回体 -type GetStudentGradeResponse struct { +func (x *StudentBirthdayInfo) GetName() string { + if x != nil { + return x.Name + } + return "" +} + +func (x *StudentBirthdayInfo) GetBirthday() string { + if x != nil { + return x.Birthday + } + return "" +} + +// 查询某天生日所有人员-请求关键字 +type GetStudentBirthdaysInRequest 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"` + //人员类型 + Type staff.Type `protobuf:"varint,1,opt,name=type,proto3,enum=campusapis.staff.Type" json:"type,omitempty"` + //月 + Month int32 `protobuf:"varint,2,opt,name=month,proto3" json:"month,omitempty"` + //日 + Day int32 `protobuf:"varint,3,opt,name=day,proto3" json:"day,omitempty"` } -func (x *GetStudentGradeResponse) Reset() { - *x = GetStudentGradeResponse{} +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) } } -func (x *GetStudentGradeResponse) String() string { +func (x *GetStudentBirthdaysInRequest) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentGradeResponse) ProtoMessage() {} +func (*GetStudentBirthdaysInRequest) ProtoMessage() {} -func (x *GetStudentGradeResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[15] +func (x *GetStudentBirthdaysInRequest) 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 { @@ -1064,87 +1232,59 @@ 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{15} +// Deprecated: Use GetStudentBirthdaysInRequest.ProtoReflect.Descriptor instead. +func (*GetStudentBirthdaysInRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{17} } -func (x *GetStudentGradeResponse) GetError() uint32 { +func (x *GetStudentBirthdaysInRequest) GetType() staff.Type { if x != nil { - return x.Error + return x.Type } - return 0 + return staff.Type(0) } -func (x *GetStudentGradeResponse) GetMsg() string { +func (x *GetStudentBirthdaysInRequest) GetMonth() int32 { if x != nil { - return x.Msg + return x.Month } - return "" + return 0 } -func (x *GetStudentGradeResponse) GetData() []*StudentGrade { +func (x *GetStudentBirthdaysInRequest) GetDay() int32 { if x != nil { - return x.Data + return x.Day } - return nil + return 0 } -// 成绩详情 -type StudentGrade struct { +// GetStudentBirthdaysInResponse 查询某天生日所有人员-返回体 +type GetStudentBirthdaysInResponse 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"` + // 生日详情列表 + Birthdays []*StudentBirthdayInfo `protobuf:"bytes,1,rep,name=birthdays,proto3" json:"birthdays,omitempty"` } -func (x *StudentGrade) Reset() { - *x = StudentGrade{} +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) } } -func (x *StudentGrade) String() string { +func (x *GetStudentBirthdaysInResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StudentGrade) ProtoMessage() {} +func (*GetStudentBirthdaysInResponse) ProtoMessage() {} -func (x *StudentGrade) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[16] +func (x *GetStudentBirthdaysInResponse) 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 { @@ -1155,145 +1295,206 @@ func (x *StudentGrade) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StudentGrade.ProtoReflect.Descriptor instead. -func (*StudentGrade) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{16} +// Deprecated: Use GetStudentBirthdaysInResponse.ProtoReflect.Descriptor instead. +func (*GetStudentBirthdaysInResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{18} } -func (x *StudentGrade) GetSchoolYear() string { +func (x *GetStudentBirthdaysInResponse) GetBirthdays() []*StudentBirthdayInfo { if x != nil { - return x.SchoolYear + return x.Birthdays } - return "" + return nil } -func (x *StudentGrade) GetSemester() string { - if x != nil { - return x.Semester - } - return "" +// GetStudentRewardsResponse 奖学金查询返回体 +type GetStudentRewardsResponse 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 []*StudentReward `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } -func (x *StudentGrade) GetSelectCode() string { - if x != nil { - return x.SelectCode +func (x *GetStudentRewardsResponse) Reset() { + *x = GetStudentRewardsResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *StudentGrade) GetScore() string { - if x != nil { - return x.Score +func (x *GetStudentRewardsResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStudentRewardsResponse) ProtoMessage() {} + +func (x *GetStudentRewardsResponse) 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 "" + return mi.MessageOf(x) } -func (x *StudentGrade) GetScoreDaily() string { +// Deprecated: Use GetStudentRewardsResponse.ProtoReflect.Descriptor instead. +func (*GetStudentRewardsResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{19} +} + +func (x *GetStudentRewardsResponse) GetError() uint32 { if x != nil { - return x.ScoreDaily + return x.Error } - return "" + return 0 } -func (x *StudentGrade) GetScoreMidTerm() string { +func (x *GetStudentRewardsResponse) GetMsg() string { if x != nil { - return x.ScoreMidTerm + return x.Msg } return "" } -func (x *StudentGrade) GetScoreFinal() string { +func (x *GetStudentRewardsResponse) GetData() []*StudentReward { if x != nil { - return x.ScoreFinal + return x.Data } - return "" + return nil } -func (x *StudentGrade) GetScoreSubstitute() string { - if x != nil { - return x.ScoreSubstitute +// 奖学金信息 +type StudentReward 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"` + //奖项名 + 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 *StudentReward) Reset() { + *x = StudentReward{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *StudentGrade) GetScorePractice() string { - if x != nil { - return x.ScorePractice +func (x *StudentReward) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StudentReward) ProtoMessage() {} + +func (x *StudentReward) 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 "" + return mi.MessageOf(x) } -func (x *StudentGrade) GetCourseCode() string { +// Deprecated: Use StudentReward.ProtoReflect.Descriptor instead. +func (*StudentReward) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{20} +} + +func (x *StudentReward) GetStaffID() string { if x != nil { - return x.CourseCode + return x.StaffID } return "" } -func (x *StudentGrade) GetCourse() string { +func (x *StudentReward) GetStaffName() string { if x != nil { - return x.Course + return x.StaffName } return "" } -func (x *StudentGrade) GetStaffId() string { +func (x *StudentReward) GetRewardName() string { if x != nil { - return x.StaffId + return x.RewardName } return "" } -func (x *StudentGrade) GetStaffName() string { +func (x *StudentReward) GetSchoolYear() string { if x != nil { - return x.StaffName + return x.SchoolYear } return "" } -func (x *StudentGrade) GetCredit() string { +func (x *StudentReward) GetSemester() string { if x != nil { - return x.Credit + return x.Semester } return "" } -func (x *StudentGrade) GetGPA() string { +func (x *StudentReward) GetRewardLevel() string { if x != nil { - return x.GPA + return x.RewardLevel } return "" } -// 查询学生考试返回体 -type GetStudentExamResponse struct { +// 学生选课查询返回体 +type GetStudentCourseSelectionsResponse 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 []*StudentExam `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` + //详情列表 + Data []*StudentCourseSelection `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } -func (x *GetStudentExamResponse) Reset() { - *x = GetStudentExamResponse{} +func (x *GetStudentCourseSelectionsResponse) Reset() { + *x = GetStudentCourseSelectionsResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStudentExamResponse) String() string { +func (x *GetStudentCourseSelectionsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentExamResponse) ProtoMessage() {} +func (*GetStudentCourseSelectionsResponse) ProtoMessage() {} -func (x *GetStudentExamResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[17] +func (x *GetStudentCourseSelectionsResponse) 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 { @@ -1304,75 +1505,79 @@ func (x *GetStudentExamResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentExamResponse.ProtoReflect.Descriptor instead. -func (*GetStudentExamResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{17} +// Deprecated: Use GetStudentCourseSelectionsResponse.ProtoReflect.Descriptor instead. +func (*GetStudentCourseSelectionsResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{21} } -func (x *GetStudentExamResponse) GetError() uint32 { +func (x *GetStudentCourseSelectionsResponse) GetError() uint32 { if x != nil { return x.Error } return 0 } -func (x *GetStudentExamResponse) GetMsg() string { +func (x *GetStudentCourseSelectionsResponse) GetMsg() string { if x != nil { return x.Msg } return "" } -func (x *GetStudentExamResponse) GetData() []*StudentExam { +func (x *GetStudentCourseSelectionsResponse) GetData() []*StudentCourseSelection { if x != nil { return x.Data } return nil } -// 考试详情 -type StudentExam struct { +//选课详情 +type StudentCourseSelection struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - // 教室 - 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"` + //学年 + 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 *StudentExam) Reset() { - *x = StudentExam{} +func (x *StudentCourseSelection) Reset() { + *x = StudentCourseSelection{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StudentExam) String() string { +func (x *StudentCourseSelection) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StudentExam) ProtoMessage() {} +func (*StudentCourseSelection) ProtoMessage() {} -func (x *StudentExam) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[18] +func (x *StudentCourseSelection) 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 { @@ -1383,103 +1588,117 @@ func (x *StudentExam) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StudentExam.ProtoReflect.Descriptor instead. -func (*StudentExam) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{18} +// Deprecated: Use StudentCourseSelection.ProtoReflect.Descriptor instead. +func (*StudentCourseSelection) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{22} } -func (x *StudentExam) GetClassroom() string { +func (x *StudentCourseSelection) GetSchoolYear() string { if x != nil { - return x.Classroom + return x.SchoolYear } return "" } -func (x *StudentExam) GetCourse() string { +func (x *StudentCourseSelection) GetSemester() string { if x != nil { - return x.Course + return x.Semester } return "" } -func (x *StudentExam) GetExamTime() string { +func (x *StudentCourseSelection) GetStaffID() string { if x != nil { - return x.ExamTime + return x.StaffID } return "" } -func (x *StudentExam) GetExamType() string { +func (x *StudentCourseSelection) GetStaffName() string { if x != nil { - return x.ExamType + return x.StaffName } return "" } -func (x *StudentExam) GetSchoolYear() string { +func (x *StudentCourseSelection) GetSelectCode() string { if x != nil { - return x.SchoolYear + return x.SelectCode } return "" } -func (x *StudentExam) GetSemester() string { +func (x *StudentCourseSelection) GetCourseName() string { if x != nil { - return x.Semester + return x.CourseName } return "" } -func (x *StudentExam) GetSeat() string { +func (x *StudentCourseSelection) GetCourseCode() string { if x != nil { - return x.Seat + return x.CourseCode } return "" } -func (x *StudentExam) GetSelectCode() string { +func (x *StudentCourseSelection) GetTeacherID() string { if x != nil { - return x.SelectCode + return x.TeacherID } return "" } -func (x *StudentExam) GetStaffId() string { +func (x *StudentCourseSelection) GetTeacherName() string { if x != nil { - return x.StaffId + return x.TeacherName } return "" } -// 查询学生GPA返回体 -type GetStudentGPAResponse struct { +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 *StudentGPA `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` + // 成绩详情列表 + Data []*StudentGrade `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } -func (x *GetStudentGPAResponse) Reset() { - *x = GetStudentGPAResponse{} +func (x *GetStudentGradeResponse) Reset() { + *x = GetStudentGradeResponse{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStudentGPAResponse) String() string { +func (x *GetStudentGradeResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentGPAResponse) ProtoMessage() {} +func (*GetStudentGradeResponse) ProtoMessage() {} -func (x *GetStudentGPAResponse) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[19] +func (x *GetStudentGradeResponse) 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 { @@ -1490,61 +1709,782 @@ func (x *GetStudentGPAResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetStudentGPAResponse.ProtoReflect.Descriptor instead. -func (*GetStudentGPAResponse) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{19} +// Deprecated: Use GetStudentGradeResponse.ProtoReflect.Descriptor instead. +func (*GetStudentGradeResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{23} +} + +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[24] + 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[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 StudentGrade.ProtoReflect.Descriptor instead. +func (*StudentGrade) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{24} +} + +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 GetStudentExamResponse 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 []*StudentExam `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetStudentExamResponse) Reset() { + *x = GetStudentExamResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStudentExamResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStudentExamResponse) ProtoMessage() {} + +func (x *GetStudentExamResponse) 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 GetStudentExamResponse.ProtoReflect.Descriptor instead. +func (*GetStudentExamResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{25} +} + +func (x *GetStudentExamResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetStudentExamResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetStudentExamResponse) GetData() []*StudentExam { + if x != nil { + return x.Data + } + return nil +} + +// 考试详情 +type StudentExam struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + // 教室 + 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[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StudentExam) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StudentExam) ProtoMessage() {} + +func (x *StudentExam) 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 StudentExam.ProtoReflect.Descriptor instead. +func (*StudentExam) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{26} +} + +func (x *StudentExam) GetClassroom() string { + if x != nil { + return x.Classroom + } + return "" +} + +func (x *StudentExam) GetCourse() string { + if x != nil { + return x.Course + } + return "" +} + +func (x *StudentExam) GetExamTime() string { + if x != nil { + return x.ExamTime + } + 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 "" +} + +// 查询学生GPA返回体 +type GetStudentGPAResponse 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 *StudentGPA `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` +} + +func (x *GetStudentGPAResponse) Reset() { + *x = GetStudentGPAResponse{} + if protoimpl.UnsafeEnabled { + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetStudentGPAResponse) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetStudentGPAResponse) ProtoMessage() {} + +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 { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetStudentGPAResponse.ProtoReflect.Descriptor instead. +func (*GetStudentGPAResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{27} +} + +func (x *GetStudentGPAResponse) GetError() uint32 { + if x != nil { + return x.Error + } + return 0 +} + +func (x *GetStudentGPAResponse) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *GetStudentGPAResponse) GetData() *StudentGPA { + if x != nil { + return x.Data + } + 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 *GetStudentGPAResponse) GetError() uint32 { +func (x *PostStudentGateAccessRequest) GetTimeEnd() string { if x != nil { - return x.Error + return x.TimeEnd } - return 0 + return "" } -func (x *GetStudentGPAResponse) GetMsg() string { +func (x *PostStudentGateAccessRequest) GetUid() string { if x != nil { - return x.Msg + return x.Uid } return "" } -func (x *GetStudentGPAResponse) GetData() *StudentGPA { +func (x *PostStudentGateAccessRequest) GetTarget() string { if x != nil { - return x.Data + return x.Target } - return nil + return "" } -// 考试详情 -type StudentGPA struct { +// PostStudentGateAccessResponse 推送学生门禁通行信息 +type PostStudentGateAccessResponse 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"` + 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 *StudentGPA) Reset() { - *x = StudentGPA{} +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[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *StudentGPA) String() string { +func (x *PostStudentGateAccessResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*StudentGPA) ProtoMessage() {} +func (*PostStudentGateAccessResponse) ProtoMessage() {} -func (x *StudentGPA) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[20] +func (x *PostStudentGateAccessResponse) 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 { @@ -1555,57 +2495,60 @@ func (x *StudentGPA) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use StudentGPA.ProtoReflect.Descriptor instead. -func (*StudentGPA) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{20} +// Deprecated: Use PostStudentGateAccessResponse.ProtoReflect.Descriptor instead. +func (*PostStudentGateAccessResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{32} } -func (x *StudentGPA) GetPerSemester() []*GPAPerSemester { +func (x *PostStudentGateAccessResponse) GetError() uint32 { if x != nil { - return x.PerSemester + return x.Error } - return nil + return 0 } -func (x *StudentGPA) GetTotal() *GPATotal { +func (x *PostStudentGateAccessResponse) GetMsg() string { if x != nil { - return x.Total + return x.Msg + } + return "" +} + +func (x *PostStudentGateAccessResponse) GetData() *PostStudentGateAccessResponse_Data { + if x != nil { + return x.Data } return nil } -type GPAPerSemester struct { +// 留校生信息查询-返回体 +type GetStudentStaySchoolInfoResponse 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"` + 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 *GPAPerSemester) Reset() { - *x = GPAPerSemester{} +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[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GPAPerSemester) String() string { +func (x *GetStudentStaySchoolInfoResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GPAPerSemester) ProtoMessage() {} +func (*GetStudentStaySchoolInfoResponse) ProtoMessage() {} -func (x *GPAPerSemester) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[21] +func (x *GetStudentStaySchoolInfoResponse) 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 { @@ -1616,67 +2559,87 @@ func (x *GPAPerSemester) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GPAPerSemester.ProtoReflect.Descriptor instead. -func (*GPAPerSemester) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{21} -} - -func (x *GPAPerSemester) GetSchoolYear() string { - if x != nil { - return x.SchoolYear - } - return "" +// Deprecated: Use GetStudentStaySchoolInfoResponse.ProtoReflect.Descriptor instead. +func (*GetStudentStaySchoolInfoResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{33} } -func (x *GPAPerSemester) GetSemester() string { +func (x *GetStudentStaySchoolInfoResponse) GetError() uint32 { if x != nil { - return x.Semester + return x.Error } - return "" + return 0 } -func (x *GPAPerSemester) GetGradePointAverage() string { +func (x *GetStudentStaySchoolInfoResponse) GetMsg() string { if x != nil { - return x.GradePointAverage + return x.Msg } return "" } -func (x *GPAPerSemester) GetStaffID() string { +func (x *GetStudentStaySchoolInfoResponse) GetData() *StudentStaySchoolInfo { if x != nil { - return x.StaffID + return x.Data } - return "" + return nil } -type GPATotal struct { +// 留校生信息 +type StudentStaySchoolInfo 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"` + // 学工号 + 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 *GPATotal) Reset() { - *x = GPATotal{} +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[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GPATotal) String() string { +func (x *StudentStaySchoolInfo) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GPATotal) ProtoMessage() {} +func (*StudentStaySchoolInfo) ProtoMessage() {} -func (x *GPATotal) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[22] +func (x *StudentStaySchoolInfo) 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 { @@ -1687,158 +2650,146 @@ func (x *GPATotal) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GPATotal.ProtoReflect.Descriptor instead. -func (*GPATotal) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{22} +// Deprecated: Use StudentStaySchoolInfo.ProtoReflect.Descriptor instead. +func (*StudentStaySchoolInfo) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{34} } -func (x *GPATotal) GetGradePointAverage() string { +func (x *StudentStaySchoolInfo) GetStaffId() string { if x != nil { - return x.GradePointAverage + return x.StaffId } return "" } -func (x *GPATotal) GetStaffID() string { +func (x *StudentStaySchoolInfo) GetStaffName() string { if x != nil { - return x.StaffID + return x.StaffName } 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 *StudentStaySchoolInfo) GetReportTime() string { + if x != nil { + return x.ReportTime + } + return "" } -func (x *PostStudentGateAccessRequest) Reset() { - *x = PostStudentGateAccessRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (x *StudentStaySchoolInfo) GetReason() string { + if x != nil { + return x.Reason } + return "" } -func (x *PostStudentGateAccessRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (x *StudentStaySchoolInfo) GetTime1Start() string { + if x != nil { + return x.Time1Start + } + return "" } -func (*PostStudentGateAccessRequest) ProtoMessage() {} +func (x *StudentStaySchoolInfo) GetTime1End() string { + if x != nil { + return x.Time1End + } + return "" +} -func (x *PostStudentGateAccessRequest) 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 { - ms.StoreMessageInfo(mi) - } - return ms +func (x *StudentStaySchoolInfo) GetTime2Start() string { + if x != nil { + return x.Time2Start } - return mi.MessageOf(x) + return "" } -// Deprecated: Use PostStudentGateAccessRequest.ProtoReflect.Descriptor instead. -func (*PostStudentGateAccessRequest) Descriptor() ([]byte, []int) { - return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{23} +func (x *StudentStaySchoolInfo) GetTime2End() string { + if x != nil { + return x.Time2End + } + return "" } -func (x *PostStudentGateAccessRequest) GetStaffId() string { +func (x *StudentStaySchoolInfo) GetTeacherStatus() string { if x != nil { - return x.StaffId + return x.TeacherStatus } return "" } -func (x *PostStudentGateAccessRequest) GetDayOffType() string { +func (x *StudentStaySchoolInfo) GetTeacherRemark() string { if x != nil { - return x.DayOffType + return x.TeacherRemark } return "" } -func (x *PostStudentGateAccessRequest) GetDayOffName() string { +func (x *StudentStaySchoolInfo) GetTeacherReviewTime() string { if x != nil { - return x.DayOffName + return x.TeacherReviewTime } return "" } -func (x *PostStudentGateAccessRequest) GetTimeStart() string { +func (x *StudentStaySchoolInfo) GetUnitStatus() string { if x != nil { - return x.TimeStart + return x.UnitStatus } return "" } -func (x *PostStudentGateAccessRequest) GetTimeEnd() string { +func (x *StudentStaySchoolInfo) GetUnitRemark() string { if x != nil { - return x.TimeEnd + return x.UnitRemark } return "" } -func (x *PostStudentGateAccessRequest) GetUid() string { +func (x *StudentStaySchoolInfo) GetUnitReviewTime() string { if x != nil { - return x.Uid + return x.UnitReviewTime } return "" } -func (x *PostStudentGateAccessRequest) GetTarget() string { +func (x *StudentStaySchoolInfo) GetCancelStatus() string { if x != nil { - return x.Target + return x.CancelStatus } return "" } -// PostStudentGateAccessResponse 推送学生门禁通行信息 -type PostStudentGateAccessResponse struct { +type GetFreshmanBaseInfoRequest 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"` //完成信息 + //学号 + 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 *PostStudentGateAccessResponse) Reset() { - *x = PostStudentGateAccessResponse{} +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[35] 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[24] +func (x *GetFreshmanBaseInfoRequest) 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 { @@ -1849,80 +2800,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{24} +// Deprecated: Use GetFreshmanBaseInfoRequest.ProtoReflect.Descriptor instead. +func (*GetFreshmanBaseInfoRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{35} } -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[25] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[36] 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[25] +func (x *GetFreshmanDetailRequest) 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 { @@ -1933,112 +2866,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{25} +// Deprecated: Use GetFreshmanDetailRequest.ProtoReflect.Descriptor instead. +func (*GetFreshmanDetailRequest) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{36} } -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[37] + 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[37] + 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{37} } -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 "" } @@ -2061,7 +2976,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[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2074,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[26] + 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 { @@ -2087,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{26} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{38} } func (x *FreshmanKeywordRequest) GetStaffId() string { @@ -2111,12 +3026,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[39] + 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[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 GetFreshmanBaseInfoResponse.ProtoReflect.Descriptor instead. +func (*GetFreshmanBaseInfoResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{39} +} + +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"` //姓名 @@ -2131,23 +3109,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[27] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[40] 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[27] +func (x *FreshmanBaseInfo) ProtoReflect() protoreflect.Message { + 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 { @@ -2158,55 +3136,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{27} +// Deprecated: Use FreshmanBaseInfo.ProtoReflect.Descriptor instead. +func (*FreshmanBaseInfo) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{40} } -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 "" + return "" +} + +func (x *FreshmanBaseInfo) GetOfferId() string { + if x != nil { + return x.OfferId + } + return "" +} + +func (x *FreshmanBaseInfo) GetIdCardNo() string { + if x != nil { + return x.IdCardNo + } + return "" +} + +func (x *FreshmanBaseInfo) GetOfferTime() string { + if x != nil { + return x.OfferTime + } + return "" +} + +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[41] + 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[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) } -func (x *GetFreshmanBaseInfoResponse) GetOfferId() string { - if x != nil { - return x.OfferId - } - return "" +// Deprecated: Use GetFreshmanDetailResponse.ProtoReflect.Descriptor instead. +func (*GetFreshmanDetailResponse) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{41} } -func (x *GetFreshmanBaseInfoResponse) GetIdCardNo() string { +func (x *GetFreshmanDetailResponse) GetError() uint32 { if x != nil { - return x.IdCardNo + return x.Error } - return "" + return 0 } -func (x *GetFreshmanBaseInfoResponse) GetOfferTime() string { +func (x *GetFreshmanDetailResponse) GetMsg() string { if x != nil { - return x.OfferTime + return x.Msg } return "" } -func (x *GetFreshmanBaseInfoResponse) GetProvince() string { +func (x *GetFreshmanDetailResponse) GetData() *FreshmanDetail { if x != nil { - return x.Province + return x.Data } - return "" + return nil } //新生详细信息 -type GetFreshmanInfoResponse struct { +type FreshmanDetail struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2260,23 +3301,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[28] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[42] 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[28] +func (x *FreshmanDetail) ProtoReflect() protoreflect.Message { + 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 { @@ -2287,180 +3328,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{28} +// Deprecated: Use FreshmanDetail.ProtoReflect.Descriptor instead. +func (*FreshmanDetail) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{42} } -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 } @@ -2473,14 +3514,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[29] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2493,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[29] + 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 { @@ -2506,111 +3549,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{29} + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{43} } -func (x *GetFreshmanRoommatesResponse) GetItems() []*GetFreshmanRoommatesResponse_Roommate { +func (x *GetFreshmanRoommatesResponse) GetError() uint32 { if x != nil { - return x.Items - } - return nil -} - -//某年贫困详情 -type GetStudentNeedyInfoResponse_Nested 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"` -} - -func (x *GetStudentNeedyInfoResponse_Nested) Reset() { - *x = GetStudentNeedyInfoResponse_Nested{} - if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *GetStudentNeedyInfoResponse_Nested) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*GetStudentNeedyInfoResponse_Nested) ProtoMessage() {} - -func (x *GetStudentNeedyInfoResponse_Nested) 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 x.Error } - 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{8, 0} + return 0 } -func (x *GetStudentNeedyInfoResponse_Nested) GetSchoolYear() int32 { +func (x *GetFreshmanRoommatesResponse) GetMsg() string { if x != nil { - return x.SchoolYear + return x.Msg } - return 0 + return "" } -func (x *GetStudentNeedyInfoResponse_Nested) GetNeedyStudent() bool { +func (x *GetFreshmanRoommatesResponse) GetData() []*FreshmanRoommate { if x != nil { - return x.NeedyStudent + return x.Data } - return false + return nil } -// 奖学金信息 -type GetStudentRewardsResponse_Nested struct { +type FreshmanRoommate 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"` - //奖项名 - 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"` + //室友姓名 + 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 *GetStudentRewardsResponse_Nested) Reset() { - *x = GetStudentRewardsResponse_Nested{} +func (x *FreshmanRoommate) Reset() { + *x = FreshmanRoommate{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[44] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStudentRewardsResponse_Nested) String() string { +func (x *FreshmanRoommate) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentRewardsResponse_Nested) ProtoMessage() {} +func (*FreshmanRoommate) ProtoMessage() {} -func (x *GetStudentRewardsResponse_Nested) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[31] +func (x *FreshmanRoommate) ProtoReflect() protoreflect.Message { + 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 { @@ -2621,100 +3611,61 @@ 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{13, 0} -} - -func (x *GetStudentRewardsResponse_Nested) GetStaffID() string { - if x != nil { - return x.StaffID - } - return "" +// Deprecated: Use FreshmanRoommate.ProtoReflect.Descriptor instead. +func (*FreshmanRoommate) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{44} } -func (x *GetStudentRewardsResponse_Nested) GetStaffName() string { +func (x *FreshmanRoommate) 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 *FreshmanRoommate) GetQq() string { if x != nil { - return x.SchoolYear - } - return "" -} - -func (x *GetStudentRewardsResponse_Nested) GetSemester() string { - if x != nil { - return x.Semester + return x.Qq } return "" } -func (x *GetStudentRewardsResponse_Nested) GetRewardLevel() string { +func (x *FreshmanRoommate) GetPhone() string { if x != nil { - return x.RewardLevel + return x.Phone } return "" } -//选课详情 -type GetStudentSelectResponse_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"` - //学号 - 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"` + //特定学年 + 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 *GetStudentSelectResponse_Nested) Reset() { - *x = GetStudentSelectResponse_Nested{} +func (x *StudentNeedyInfo_Nested) Reset() { + *x = StudentNeedyInfo_Nested{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[45] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetStudentSelectResponse_Nested) String() string { +func (x *StudentNeedyInfo_Nested) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetStudentSelectResponse_Nested) ProtoMessage() {} +func (*StudentNeedyInfo_Nested) ProtoMessage() {} -func (x *GetStudentSelectResponse_Nested) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_staff_v1_campus_proto_msgTypes[32] +func (x *StudentNeedyInfo_Nested) ProtoReflect() protoreflect.Message { + 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 { @@ -2725,116 +3676,51 @@ 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{14, 0} +// Deprecated: Use StudentNeedyInfo_Nested.ProtoReflect.Descriptor instead. +func (*StudentNeedyInfo_Nested) Descriptor() ([]byte, []int) { + return file_campusapis_staff_v1_campus_proto_rawDescGZIP(), []int{12, 0} } -func (x *GetStudentSelectResponse_Nested) GetSchoolYear() string { +func (x *StudentNeedyInfo_Nested) GetSchoolYear() int32 { 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 "" -} - -func (x *GetStudentSelectResponse_Nested) GetStaffName() string { - if x != nil { - return x.StaffName - } - return "" -} - -func (x *GetStudentSelectResponse_Nested) GetSelectCode() string { - if x != nil { - return x.SelectCode - } - return "" -} - -func (x *GetStudentSelectResponse_Nested) GetCourseName() string { - if x != nil { - return x.CourseName - } - return "" -} - -func (x *GetStudentSelectResponse_Nested) GetCourseCode() string { - if x != nil { - return x.CourseCode - } - return "" -} - -func (x *GetStudentSelectResponse_Nested) GetTeacherID() string { - if x != nil { - return x.TeacherID - } - return "" -} - -func (x *GetStudentSelectResponse_Nested) GetTeacherName() string { - if x != nil { - return x.TeacherName - } - return "" -} - -func (x *GetStudentSelectResponse_Nested) GetClassTime() string { - if x != nil { - return x.ClassTime - } - return "" + return 0 } -func (x *GetStudentSelectResponse_Nested) GetClassRoom() string { +func (x *StudentNeedyInfo_Nested) GetNeedyStudent() bool { if x != nil { - return x.ClassRoom + 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[33] + mi := &file_campusapis_staff_v1_campus_proto_msgTypes[46] 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[33] +func (x *PostStudentGateAccessResponse_Data) ProtoReflect() protoreflect.Message { + 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 { @@ -2845,28 +3731,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{29, 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{32, 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 "" } @@ -2882,570 +3761,673 @@ 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, 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, 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, + 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, 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, - 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, 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, 0x9c, 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, 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, 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, + 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, 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, + 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, 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, 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, + 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, 0x34, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 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, 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, + 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, 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, + 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, 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, 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, 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, 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, + 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, 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, 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, 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, + 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, 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, - 0x8d, 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, 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, - 0x99, 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, - 0x2a, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x24, 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, 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, + 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, 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, 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, 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, - 0x2f, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, 0x73, 0x2e, 0x73, 0x74, 0x61, + 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, - 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, 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, + 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, 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, 0xac, 0x01, 0x0a, 0x11, 0x47, + 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, - 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, 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, + 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, + 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, 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, + 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, 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, 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, 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, + 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, 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, + 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, 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, 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, + 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 ( @@ -3460,96 +4442,119 @@ 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, 34) +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 - (*GetStudentRewardsRequest)(nil), // 1: campusapis.staff.v1.GetStudentRewardsRequest - (*GetStudentCourseSelectionsRequest)(nil), // 2: campusapis.staff.v1.GetStudentCourseSelectionsRequest - (*GetStudentGradeRequest)(nil), // 3: campusapis.staff.v1.GetStudentGradeRequest - (*GetStudentExamRequest)(nil), // 4: campusapis.staff.v1.GetStudentExamRequest - (*SemesterRequest)(nil), // 5: campusapis.staff.v1.SemesterRequest - (*GetStudentInfoResponse)(nil), // 6: campusapis.staff.v1.GetStudentInfoResponse - (*GetStudentSchoolRollStatusResponse)(nil), // 7: campusapis.staff.v1.GetStudentSchoolRollStatusResponse - (*GetStudentNeedyInfoResponse)(nil), // 8: campusapis.staff.v1.GetStudentNeedyInfoResponse - (*GetStudentDormInfoResponse)(nil), // 9: campusapis.staff.v1.GetStudentDormInfoResponse - (*GetStudentBirthdayResponse)(nil), // 10: campusapis.staff.v1.GetStudentBirthdayResponse - (*GetStudentBirthdaysInRequest)(nil), // 11: campusapis.staff.v1.GetStudentBirthdaysInRequest - (*GetStudentBirthdaysInResponse)(nil), // 12: campusapis.staff.v1.GetStudentBirthdaysInResponse - (*GetStudentRewardsResponse)(nil), // 13: campusapis.staff.v1.GetStudentRewardsResponse - (*GetStudentSelectResponse)(nil), // 14: campusapis.staff.v1.GetStudentSelectResponse - (*GetStudentGradeResponse)(nil), // 15: campusapis.staff.v1.GetStudentGradeResponse - (*StudentGrade)(nil), // 16: campusapis.staff.v1.StudentGrade - (*GetStudentExamResponse)(nil), // 17: campusapis.staff.v1.GetStudentExamResponse - (*StudentExam)(nil), // 18: campusapis.staff.v1.StudentExam - (*GetStudentGPAResponse)(nil), // 19: campusapis.staff.v1.GetStudentGPAResponse - (*StudentGPA)(nil), // 20: campusapis.staff.v1.StudentGPA - (*GPAPerSemester)(nil), // 21: campusapis.staff.v1.GPAPerSemester - (*GPATotal)(nil), // 22: campusapis.staff.v1.GPATotal - (*PostStudentGateAccessRequest)(nil), // 23: campusapis.staff.v1.PostStudentGateAccessRequest - (*PostStudentGateAccessResponse)(nil), // 24: campusapis.staff.v1.PostStudentGateAccessResponse - (*GetStudentStaySchoolInfoResponse)(nil), // 25: campusapis.staff.v1.GetStudentStaySchoolInfoResponse - (*FreshmanKeywordRequest)(nil), // 26: campusapis.staff.v1.FreshmanKeywordRequest - (*GetFreshmanBaseInfoResponse)(nil), // 27: campusapis.staff.v1.GetFreshmanBaseInfoResponse - (*GetFreshmanInfoResponse)(nil), // 28: campusapis.staff.v1.GetFreshmanInfoResponse - (*GetFreshmanRoommatesResponse)(nil), // 29: campusapis.staff.v1.GetFreshmanRoommatesResponse - (*GetStudentNeedyInfoResponse_Nested)(nil), // 30: campusapis.staff.v1.GetStudentNeedyInfoResponse.Nested - (*GetStudentRewardsResponse_Nested)(nil), // 31: campusapis.staff.v1.GetStudentRewardsResponse.Nested - (*GetStudentSelectResponse_Nested)(nil), // 32: campusapis.staff.v1.GetStudentSelectResponse.Nested - (*GetFreshmanRoommatesResponse_Roommate)(nil), // 33: campusapis.staff.v1.GetFreshmanRoommatesResponse.Roommate - (staff.Type)(0), // 34: campusapis.staff.Type - (*emptypb.Empty)(nil), // 35: google.protobuf.Empty + (*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 + (*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 + (*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{ - 30, // 0: campusapis.staff.v1.GetStudentNeedyInfoResponse.items:type_name -> campusapis.staff.v1.GetStudentNeedyInfoResponse.Nested - 34, // 1: campusapis.staff.v1.GetStudentBirthdaysInRequest.type:type_name -> campusapis.staff.Type - 10, // 2: campusapis.staff.v1.GetStudentBirthdaysInResponse.birthdays:type_name -> campusapis.staff.v1.GetStudentBirthdayResponse - 31, // 3: campusapis.staff.v1.GetStudentRewardsResponse.items:type_name -> campusapis.staff.v1.GetStudentRewardsResponse.Nested - 32, // 4: campusapis.staff.v1.GetStudentSelectResponse.items:type_name -> campusapis.staff.v1.GetStudentSelectResponse.Nested - 16, // 5: campusapis.staff.v1.GetStudentGradeResponse.data:type_name -> campusapis.staff.v1.StudentGrade - 18, // 6: campusapis.staff.v1.GetStudentExamResponse.data:type_name -> campusapis.staff.v1.StudentExam - 20, // 7: campusapis.staff.v1.GetStudentGPAResponse.data:type_name -> campusapis.staff.v1.StudentGPA - 21, // 8: campusapis.staff.v1.StudentGPA.perSemester:type_name -> campusapis.staff.v1.GPAPerSemester - 22, // 9: campusapis.staff.v1.StudentGPA.total:type_name -> campusapis.staff.v1.GPATotal - 33, // 10: campusapis.staff.v1.GetFreshmanRoommatesResponse.items:type_name -> campusapis.staff.v1.GetFreshmanRoommatesResponse.Roommate - 35, // 11: campusapis.staff.v1.CampusService.GetPersonInfo:input_type -> google.protobuf.Empty - 35, // 12: campusapis.staff.v1.CampusService.GetStudentInfo:input_type -> google.protobuf.Empty - 35, // 13: campusapis.staff.v1.CampusService.GetStudentSchoolRollStatus:input_type -> google.protobuf.Empty - 35, // 14: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:input_type -> google.protobuf.Empty - 35, // 15: campusapis.staff.v1.CampusService.GetStudentDormInfo:input_type -> google.protobuf.Empty - 35, // 16: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:input_type -> google.protobuf.Empty - 11, // 17: campusapis.staff.v1.CampusService.GetStudentBirthdaysIn:input_type -> campusapis.staff.v1.GetStudentBirthdaysInRequest - 5, // 18: campusapis.staff.v1.CampusService.GetStudentRewards:input_type -> campusapis.staff.v1.SemesterRequest - 5, // 19: campusapis.staff.v1.CampusService.GetStudentSelect:input_type -> campusapis.staff.v1.SemesterRequest - 3, // 20: campusapis.staff.v1.CampusService.GetStudentGrade:input_type -> campusapis.staff.v1.GetStudentGradeRequest - 4, // 21: campusapis.staff.v1.CampusService.GetStudentExam:input_type -> campusapis.staff.v1.GetStudentExamRequest - 35, // 22: campusapis.staff.v1.CampusService.GetStudentGPA:input_type -> google.protobuf.Empty - 23, // 23: campusapis.staff.v1.CampusService.PostStudentGateAccess:input_type -> campusapis.staff.v1.PostStudentGateAccessRequest - 35, // 24: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:input_type -> google.protobuf.Empty - 26, // 25: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:input_type -> campusapis.staff.v1.FreshmanKeywordRequest - 26, // 26: campusapis.staff.v1.CampusService.GetFreshmanInfo:input_type -> campusapis.staff.v1.FreshmanKeywordRequest - 26, // 27: campusapis.staff.v1.CampusService.GetFreshmanRoommates:input_type -> campusapis.staff.v1.FreshmanKeywordRequest - 0, // 28: campusapis.staff.v1.CampusService.GetPersonInfo:output_type -> campusapis.staff.v1.GetPersonInfoResponse - 6, // 29: campusapis.staff.v1.CampusService.GetStudentInfo:output_type -> campusapis.staff.v1.GetStudentInfoResponse - 7, // 30: campusapis.staff.v1.CampusService.GetStudentSchoolRollStatus:output_type -> campusapis.staff.v1.GetStudentSchoolRollStatusResponse - 8, // 31: campusapis.staff.v1.CampusService.GetStudentNeedyInfo:output_type -> campusapis.staff.v1.GetStudentNeedyInfoResponse - 9, // 32: campusapis.staff.v1.CampusService.GetStudentDormInfo:output_type -> campusapis.staff.v1.GetStudentDormInfoResponse - 10, // 33: campusapis.staff.v1.CampusService.GetStudentBirthdayInfo:output_type -> campusapis.staff.v1.GetStudentBirthdayResponse - 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 - 14, // 36: campusapis.staff.v1.CampusService.GetStudentSelect:output_type -> campusapis.staff.v1.GetStudentSelectResponse - 15, // 37: campusapis.staff.v1.CampusService.GetStudentGrade:output_type -> campusapis.staff.v1.GetStudentGradeResponse - 17, // 38: campusapis.staff.v1.CampusService.GetStudentExam:output_type -> campusapis.staff.v1.GetStudentExamResponse - 19, // 39: campusapis.staff.v1.CampusService.GetStudentGPA:output_type -> campusapis.staff.v1.GetStudentGPAResponse - 24, // 40: campusapis.staff.v1.CampusService.PostStudentGateAccess:output_type -> campusapis.staff.v1.PostStudentGateAccessResponse - 25, // 41: campusapis.staff.v1.CampusService.GetStudentStaySchoolInfo:output_type -> campusapis.staff.v1.GetStudentStaySchoolInfoResponse - 27, // 42: campusapis.staff.v1.CampusService.GetFreshmanBaseInfo:output_type -> campusapis.staff.v1.GetFreshmanBaseInfoResponse - 28, // 43: campusapis.staff.v1.CampusService.GetFreshmanInfo:output_type -> campusapis.staff.v1.GetFreshmanInfoResponse - 29, // 44: campusapis.staff.v1.CampusService.GetFreshmanRoommates:output_type -> campusapis.staff.v1.GetFreshmanRoommatesResponse - 28, // [28:45] is the sub-list for method output_type - 11, // [11:28] 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 + 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.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() } @@ -3571,7 +4576,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: @@ -3583,7 +4588,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: @@ -3595,7 +4600,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: @@ -3607,7 +4612,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.(*GetStudentExamRequest); i { + switch v := v.(*GetStudentGradeRequest); i { case 0: return &v.state case 1: @@ -3619,7 +4624,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: @@ -3631,7 +4636,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: @@ -3643,7 +4648,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.(*GetStudentSchoolRollStatusResponse); i { + switch v := v.(*GetStudentInfoResponse); i { case 0: return &v.state case 1: @@ -3655,7 +4660,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: @@ -3667,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.(*GetStudentDormInfoResponse); i { + switch v := v.(*GetStudentSchoolRollStatusResponse); i { case 0: return &v.state case 1: @@ -3679,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.(*GetStudentBirthdayResponse); i { + switch v := v.(*StudentSchoolRollStatus); i { case 0: return &v.state case 1: @@ -3691,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.(*GetStudentBirthdaysInRequest); i { + switch v := v.(*GetStudentNeedyInfoResponse); i { case 0: return &v.state case 1: @@ -3703,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.(*GetStudentBirthdaysInResponse); i { + switch v := v.(*StudentNeedyInfo); i { case 0: return &v.state case 1: @@ -3715,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.(*GetStudentRewardsResponse); i { + switch v := v.(*GetStudentDormInfoResponse); i { case 0: return &v.state case 1: @@ -3727,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.(*GetStudentSelectResponse); i { + switch v := v.(*DormInfo); i { case 0: return &v.state case 1: @@ -3739,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.(*GetStudentGradeResponse); i { + switch v := v.(*GetStudentBirthdayInfoResponse); i { case 0: return &v.state case 1: @@ -3751,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.(*StudentGrade); i { + switch v := v.(*StudentBirthdayInfo); i { case 0: return &v.state case 1: @@ -3763,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.(*GetStudentExamResponse); i { + switch v := v.(*GetStudentBirthdaysInRequest); i { case 0: return &v.state case 1: @@ -3775,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.(*StudentExam); i { + switch v := v.(*GetStudentBirthdaysInResponse); i { case 0: return &v.state case 1: @@ -3787,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.(*GetStudentGPAResponse); i { + switch v := v.(*GetStudentRewardsResponse); i { case 0: return &v.state case 1: @@ -3799,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.(*StudentGPA); i { + switch v := v.(*StudentReward); i { case 0: return &v.state case 1: @@ -3811,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.(*GPAPerSemester); i { + switch v := v.(*GetStudentCourseSelectionsResponse); i { case 0: return &v.state case 1: @@ -3823,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.(*GPATotal); i { + switch v := v.(*StudentCourseSelection); i { case 0: return &v.state case 1: @@ -3835,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.(*PostStudentGateAccessRequest); i { + switch v := v.(*GetStudentGradeResponse); i { case 0: return &v.state case 1: @@ -3847,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.(*PostStudentGateAccessResponse); i { + switch v := v.(*StudentGrade); i { case 0: return &v.state case 1: @@ -3859,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.(*GetStudentStaySchoolInfoResponse); i { + switch v := v.(*GetStudentExamResponse); i { case 0: return &v.state case 1: @@ -3871,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.(*FreshmanKeywordRequest); i { + switch v := v.(*StudentExam); i { case 0: return &v.state case 1: @@ -3883,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.(*GetFreshmanBaseInfoResponse); i { + switch v := v.(*GetStudentGPAResponse); i { case 0: return &v.state case 1: @@ -3895,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.(*GetFreshmanInfoResponse); i { + switch v := v.(*StudentGPA); i { case 0: return &v.state case 1: @@ -3907,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.(*GetFreshmanRoommatesResponse); i { + switch v := v.(*GPAPerSemester); i { case 0: return &v.state case 1: @@ -3919,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.(*GetStudentNeedyInfoResponse_Nested); i { + switch v := v.(*GPATotal); i { case 0: return &v.state case 1: @@ -3931,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.(*GetStudentRewardsResponse_Nested); i { + switch v := v.(*PostStudentGateAccessRequest); i { case 0: return &v.state case 1: @@ -3943,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.(*GetStudentSelectResponse_Nested); i { + switch v := v.(*PostStudentGateAccessResponse); i { case 0: return &v.state case 1: @@ -3955,7 +4960,163 @@ 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.(*GetFreshmanRoommatesResponse_Roommate); i { + switch v := v.(*GetStudentStaySchoolInfoResponse); 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.(*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[35].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[36].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[37].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[38].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[39].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[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 case 1: @@ -3973,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: 34, + 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 4ed533d..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 @@ -307,7 +325,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 { @@ -323,7 +341,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 { @@ -343,7 +361,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 { @@ -359,7 +377,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 { @@ -375,73 +393,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 } @@ -701,7 +719,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 { @@ -717,7 +735,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 { @@ -737,7 +755,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 { @@ -753,7 +771,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 { @@ -769,73 +787,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 } @@ -845,7 +863,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 { @@ -861,7 +879,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 { @@ -881,7 +899,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 { @@ -897,7 +915,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 { @@ -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() @@ -1250,7 +1292,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()...) }) @@ -1274,23 +1316,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 { @@ -1298,23 +1340,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 { @@ -1322,7 +1364,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()...) }) @@ -1590,19 +1632,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 { @@ -1610,23 +1652,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 { @@ -1634,7 +1676,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()...) }) @@ -1658,7 +1700,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()...) }) @@ -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() @@ -2017,7 +2080,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()...) }) @@ -2038,49 +2101,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()...) }) @@ -2315,45 +2378,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()...) }) @@ -2374,7 +2437,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()...) }) @@ -2402,51 +2465,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_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"}, "")) @@ -2458,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"}, "")) @@ -2478,9 +2498,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"}, "")) @@ -2504,9 +2524,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"}, "")) @@ -2524,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 @@ -2544,9 +2566,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 @@ -2570,9 +2592,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 1b153dd..59f10dc 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"; @@ -36,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" + } }; } @@ -58,7 +60,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 { @@ -76,24 +78,20 @@ 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" } }; } @@ -140,7 +138,7 @@ service CampusService { //下方为新生服务 //获取新生基本信息 - rpc GetFreshmanBaseInfo(FreshmanKeywordRequest) returns (GetFreshmanBaseInfoResponse) { + rpc GetFreshmanBaseInfo(GetFreshmanBaseInfoRequest) returns (GetFreshmanBaseInfoResponse) { option (google.api.http) = { get: "/staff/v1/freshman/base" additional_bindings { @@ -148,8 +146,9 @@ service CampusService { } }; } + //获取新生详细信息 - rpc GetFreshmanInfo(FreshmanKeywordRequest) returns (GetFreshmanInfoResponse) { + rpc GetFreshmanDetail(GetFreshmanDetailRequest) returns (GetFreshmanDetailResponse) { option (google.api.http) = { get: "/staff/v1/freshman/info" additional_bindings { @@ -157,11 +156,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" } @@ -171,6 +170,12 @@ service CampusService { //查询人员信息返回体 message GetPersonInfoResponse { + uint32 error = 1; + string msg = 2; + PersonInfo data = 3; +} + +message PersonInfo { //学工号 string staffId = 1; //姓名 @@ -221,6 +226,12 @@ message SemesterRequest { // GetStudentInfoResponse 查询学生信息返回体 message GetStudentInfoResponse { + uint32 error = 1; + string msg = 2; + StudentInfo data = 3; +} + +message StudentInfo { //学号 string staffId = 1; //学生姓名 @@ -243,6 +254,13 @@ message GetStudentInfoResponse { // 查询学生学籍状态返回体 message GetStudentSchoolRollStatusResponse { + uint32 error = 1; + string msg = 2; + StudentSchoolRollStatus data = 3; +} + +// 学生学籍状态 +message StudentSchoolRollStatus { //学号 string staffId = 1; //学生姓名 @@ -255,6 +273,13 @@ message GetStudentSchoolRollStatusResponse { //查询贫困生信息返回体 message GetStudentNeedyInfoResponse { + uint32 error = 1; + string msg = 2; + StudentNeedyInfo data = 3; +} + +//贫困生信息 +message StudentNeedyInfo { //学工号 string staffId = 1; //姓名 @@ -263,6 +288,9 @@ message GetStudentNeedyInfoResponse { int32 sex = 3; //是否贫困生 bool needyStudent = 4; + //每学年贫困详情 + repeated Nested items = 5; + //某年贫困详情 message Nested { //特定学年 @@ -270,12 +298,16 @@ message GetStudentNeedyInfoResponse { //是否是贫困生 bool needyStudent = 2; } - //每学年贫困详情 - repeated Nested items = 5; } -// GetStudentDormInfoResponse 查询学生寝室信息返回体 +// 查询学生寝室信息返回体 message GetStudentDormInfoResponse { + uint32 error = 1; + string msg = 2; + DormInfo data = 3; +} + +message DormInfo { //学工号 string staffId = 1; //楼号 @@ -284,8 +316,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; //姓名 @@ -307,62 +346,68 @@ 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; +} + +//选课详情 +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; } -// GetStudentGradeResponse 查询学生成绩返回体 +// 查询学生成绩返回体 message GetStudentGradeResponse { uint32 error = 1; string msg = 2; @@ -491,12 +536,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 { + uint32 error = 1; + string msg = 2; + StudentStaySchoolInfo data = 3; +} + +// 留校生信息 +message StudentStaySchoolInfo { // 学工号 string staffId = 1; // 姓名 @@ -529,6 +587,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 { @@ -540,8 +625,14 @@ message FreshmanKeywordRequest { string idCardNo = 3; } -//新生基本信息 message GetFreshmanBaseInfoResponse { + uint32 error = 1; + string msg = 2; + FreshmanBaseInfo data = 3; +} + +//新生基本信息 +message FreshmanBaseInfo { //学号 string staffId = 1; //姓名 @@ -556,8 +647,14 @@ message GetFreshmanBaseInfoResponse { string province = 6; } +message GetFreshmanDetailResponse { + uint32 error = 1; + string msg = 2; + FreshmanDetail data = 3; +} + //新生详细信息 -message GetFreshmanInfoResponse { +message FreshmanDetail { //学号 string staffId = 1; //姓名 @@ -609,12 +706,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; } diff --git a/campusapis/staff/v1/campus_grpc.pb.go b/campusapis/staff/v1/campus_grpc.pb.go index 0b916b6..95bc38d 100644 --- a/campusapis/staff/v1/campus_grpc.pb.go +++ b/campusapis/staff/v1/campus_grpc.pb.go @@ -34,13 +34,13 @@ 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 *GetStudentGradeRequest, opts ...grpc.CallOption) (*GetStudentGradeResponse, error) //获取学生考试信息 @@ -52,11 +52,11 @@ type CampusServiceClient interface { //获取学生留校信息 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 { @@ -112,8 +112,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 @@ -130,7 +130,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 { @@ -139,9 +139,9 @@ 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 } @@ -193,7 +193,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 { @@ -202,16 +202,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 { @@ -221,7 +221,7 @@ func (c *campusServiceClient) GetFreshmanRoommates(ctx context.Context, in *Fres } // CampusServiceServer is the server API for CampusService service. -// All implementations should embed UnimplementedCampusServiceServer +// All implementations must embed UnimplementedCampusServiceServer // for forward compatibility type CampusServiceServer interface { //获取员工信息 @@ -235,13 +235,13 @@ 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, *GetStudentGradeRequest) (*GetStudentGradeResponse, error) //获取学生考试信息 @@ -253,14 +253,15 @@ type CampusServiceServer interface { //获取学生留校信息 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) + mustEmbedUnimplementedCampusServiceServer() } -// UnimplementedCampusServiceServer should be embedded to have forward compatible implementations. +// UnimplementedCampusServiceServer must be embedded to have forward compatible implementations. type UnimplementedCampusServiceServer struct { } @@ -279,17 +280,17 @@ 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, *GetStudentGradeRequest) (*GetStudentGradeResponse, error) { return nil, status.Errorf(codes.Unimplemented, "method GetStudentGrade not implemented") @@ -306,15 +307,16 @@ 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") } +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 @@ -454,7 +456,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 } @@ -466,25 +468,25 @@ 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) } @@ -580,7 +582,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 } @@ -592,31 +594,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 } @@ -628,7 +630,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) } @@ -673,8 +675,8 @@ var CampusService_ServiceDesc = grpc.ServiceDesc{ Handler: _CampusService_GetStudentRewards_Handler, }, { - MethodName: "GetStudentSelect", - Handler: _CampusService_GetStudentSelect_Handler, + MethodName: "GetStudentCourseSelections", + Handler: _CampusService_GetStudentCourseSelections_Handler, }, { MethodName: "GetStudentGrade", @@ -701,8 +703,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.pb.go b/campusapis/status.pb.go index 8d295d7..747f429 100644 --- a/campusapis/status.pb.go +++ b/campusapis/status.pb.go @@ -24,7 +24,7 @@ const ( type Status int32 const ( - Status_UNKNOWN Status = 0 + Status_UNSPECIFIED Status = 0 // 成功 Status_OK Status = 20000 //通用参数错误 @@ -46,7 +46,7 @@ const ( // Enum value maps for Status. var ( Status_name = map[int32]string{ - 0: "UNKNOWN", + 0: "UNSPECIFIED", 20000: "OK", 40000: "INVALID_ARGUMENT", 40001: "STAFF_TYPE_NOT_FOUND", @@ -57,7 +57,7 @@ var ( 50000: "SERVICE_ERROR", } Status_value = map[string]int32{ - "UNKNOWN": 0, + "UNSPECIFIED": 0, "OK": 20000, "INVALID_ARGUMENT": 40000, "STAFF_TYPE_NOT_FOUND": 40001, @@ -101,30 +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, 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, 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 7c3d894..68b6990 100644 --- a/campusapis/status.proto +++ b/campusapis/status.proto @@ -6,25 +6,25 @@ option go_package = "./campusapis"; // 请求状态 错误定义 enum Status { - UNKNOWN = 0; + UNSPECIFIED = 0; - // 成功 - OK = 20000; + // 成功 + OK = 20000; - //通用参数错误 - INVALID_ARGUMENT = 40000; - //人员类型参数缺失 - STAFF_TYPE_NOT_FOUND = 40001; - //不支持的人员类型 - UNSUPPORTED_STAFF_TYPE = 40003; - //人员工号缺失 - STAFF_ID_CANNOT_BE_EMPTY = 40004; + //通用参数错误 + 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; + //通用无法找到 + NOT_FOUND = 40400; + //未找到人员 + STAFF_NOT_FOUND = 40401; - //服务错误 - SERVICE_ERROR = 50000; -} \ No newline at end of file + //服务错误 + SERVICE_ERROR = 50000; +} 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..1fdccf6 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,18 +1212,19 @@ func (x *GetUnusedClassroomsRequest) GetSection() int32 { return 0 } -// ClassroomsResponse 教室查询返回体 -type ClassroomsResponse struct { +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"` // 教室列表 - Items []*Classroom `protobuf:"bytes,1,rep,name=items,proto3" json:"items,omitempty"` + Data []*Classroom `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } -func (x *ClassroomsResponse) Reset() { - *x = ClassroomsResponse{} +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)) @@ -1187,13 +1232,13 @@ func (x *ClassroomsResponse) Reset() { } } -func (x *ClassroomsResponse) String() string { +func (x *GetClassroomsResponse) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClassroomsResponse) ProtoMessage() {} +func (*GetClassroomsResponse) ProtoMessage() {} -func (x *ClassroomsResponse) ProtoReflect() protoreflect.Message { +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)) @@ -1205,14 +1250,92 @@ func (x *ClassroomsResponse) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use ClassroomsResponse.ProtoReflect.Descriptor instead. -func (*ClassroomsResponse) Descriptor() ([]byte, []int) { +// Deprecated: Use GetClassroomsResponse.ProtoReflect.Descriptor instead. +func (*GetClassroomsResponse) Descriptor() ([]byte, []int) { return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{15} } -func (x *ClassroomsResponse) GetItems() []*Classroom { +func (x *GetClassroomsResponse) GetError() uint32 { if x != nil { - return x.Items + 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 } @@ -1240,7 +1363,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[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1253,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[16] + 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 { @@ -1266,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{16} + return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{17} } func (x *Classroom) GetSemester() int32 { @@ -1311,33 +1434,35 @@ func (x *Classroom) GetBuildingName() string { return "" } -// ClassroomUsagesResponse 教室使用情况返回体 -type ClassroomUsagesResponse struct { +// GetClassroomUsagesResponse 教室使用情况返回体 +type GetClassroomUsagesResponse 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"` // 教室使用情况列表 - Items []*ClassroomUsagesResponse_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 *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[18] 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[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1348,18 +1473,135 @@ 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{18} } -func (x *ClassroomUsagesResponse) GetItems() []*ClassroomUsagesResponse_Nested { +func (x *GetClassroomUsagesResponse) GetError() uint32 { if x != nil { - return x.Items + 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 *ClassroomUsage) GetClassroom() *Classroom { + if x != nil { + 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 @@ -1377,7 +1619,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 +1632,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 +1700,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 +1713,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 +1799,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 +1883,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 +1896,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 +1909,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,45 +1968,34 @@ func (x *GetScheduleNowResponse_Course) GetDuration() string { return "" } -// 内嵌信息 -type ClassroomUsagesResponse_Nested struct { +type GetScheduleNowV2Response_Data 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"` + // 今天的课表 + 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 *ClassroomUsagesResponse_Nested) Reset() { - *x = ClassroomUsagesResponse_Nested{} +func (x *GetScheduleNowV2Response_Data) Reset() { + *x = GetScheduleNowV2Response_Data{} if protoimpl.UnsafeEnabled { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[23] + mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *ClassroomUsagesResponse_Nested) String() string { +func (x *GetScheduleNowV2Response_Data) String() string { return protoimpl.X.MessageStringOf(x) } -func (*ClassroomUsagesResponse_Nested) ProtoMessage() {} +func (*GetScheduleNowV2Response_Data) ProtoMessage() {} -func (x *ClassroomUsagesResponse_Nested) ProtoReflect() protoreflect.Message { - mi := &file_campusapis_teaching_v1_teaching_proto_msgTypes[23] +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 { @@ -1718,60 +2006,25 @@ 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 GetScheduleNowV2Response_Data.ProtoReflect.Descriptor instead. +func (*GetScheduleNowV2Response_Data) Descriptor() ([]byte, []int) { + return file_campusapis_teaching_v1_teaching_proto_rawDescGZIP(), []int{9, 0} } -func (x *ClassroomUsagesResponse_Nested) GetClassroom() *Classroom { +func (x *GetScheduleNowV2Response_Data) GetToday() []*ScheduleResponseCourse { if x != nil { - return x.Classroom - } - return nil -} - -func (x *ClassroomUsagesResponse_Nested) GetWeekday() int32 { - if x != nil { - return x.Weekday - } - return 0 -} - -func (x *ClassroomUsagesResponse_Nested) GetWeek() []int32 { - if x != nil { - return x.Week + return x.Today } return nil } -func (x *ClassroomUsagesResponse_Nested) GetSection() []int32 { +func (x *GetScheduleNowV2Response_Data) GetTomorrow() []*ScheduleResponseCourse { if x != nil { - return x.Section + return x.Tomorrow } return nil } -func (x *ClassroomUsagesResponse_Nested) GetClassID() string { - if x != nil { - return x.ClassID - } - return "" -} - -func (x *ClassroomUsagesResponse_Nested) GetCourseCode() string { - if x != nil { - return x.CourseCode - } - return "" -} - -func (x *ClassroomUsagesResponse_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{ @@ -1799,375 +2052,405 @@ 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, - 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, + 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, 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, + 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, 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, 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, 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, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 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, 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, + 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, 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, 0x30, 0x2e, 0x63, 0x61, 0x6d, 0x70, 0x75, 0x73, 0x61, 0x70, 0x69, + 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, 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, + 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, 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, + 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, 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, 0x43, 0x82, 0xd3, 0xe4, 0x93, 0x02, 0x3d, 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, - 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, + 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, 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, + 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, 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, + 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 +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, 24) +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 @@ -2197,63 +2480,69 @@ 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 + (*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 + 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 + (*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.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 + 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 - 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 + 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 + 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 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 + 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() } @@ -2419,7 +2708,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 +2732,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 +2744,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 +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.(*ClassroomUsagesResponse); i { + switch v := v.(*Classroom); i { case 0: return &v.state case 1: @@ -2479,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.(*ScheduleResponseCourse_StaffInfo); i { + switch v := v.(*GetClassroomUsagesResponse); i { case 0: return &v.state case 1: @@ -2491,6 +2780,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.(*ClassroomUsage); 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 +2815,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 +2839,8 @@ 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: @@ -2533,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: 24, + NumMessages: 27, 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..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,21 +28,17 @@ option (grpc.gateway.protoc_gen_openapiv2.options.openapiv2_swagger) = { consumes: "application/json"; produces: "application/json"; }; -option go_package = "./campusapis/teaching/v1"; 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,10 +368,18 @@ message GetUnusedClassroomsRequest { int32 section = 5; } -// ClassroomsResponse 教室查询返回体 -message ClassroomsResponse { +message GetClassroomsResponse { + uint32 error = 1; + string msg = 2; + // 教室列表 + repeated Classroom data = 3; +} + +message GetUnusedClassroomsResponse { + uint32 error = 1; + string msg = 2; // 教室列表 - repeated Classroom items = 1; + repeated Classroom data = 3; } // 教室信息 @@ -382,25 +398,28 @@ message Classroom { string buildingName = 6; } -// ClassroomUsagesResponse 教室使用情况返回体 -message ClassroomUsagesResponse { - // 内嵌信息 - 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; - } +// GetClassroomUsagesResponse 教室使用情况返回体 +message GetClassroomUsagesResponse { + 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/campusapis/teaching/v1/teaching_grpc.pb.go b/campusapis/teaching/v1/teaching_grpc.pb.go index 36bcdb1..a9fbe97 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 @@ -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 { // 获取学生/教师课程表 @@ -123,14 +123,15 @@ 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) + mustEmbedUnimplementedTeachingServiceServer() } -// UnimplementedTeachingServiceServer should be embedded to have forward compatible implementations. +// UnimplementedTeachingServiceServer must be embedded to have forward compatible implementations. type UnimplementedTeachingServiceServer struct { } @@ -146,15 +147,16 @@ 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") } +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 @@ -258,7 +260,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 +272,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/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/consultingapis/faq/v1/faq.pb.go b/consultingapis/faq/v1/faq.pb.go index a59919c..5307532 100644 --- a/consultingapis/faq/v1/faq.pb.go +++ b/consultingapis/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" - emptypb "google.golang.org/protobuf/types/known/emptypb" - _ "google.golang.org/protobuf/types/known/structpb" reflect "reflect" sync "sync" ) @@ -24,17 +21,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 +38,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 +56,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 +277,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 +555,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 *FAQInfo) GetCategoryId() string { + if x != nil { + return x.CategoryId + } + return "" } -func (x *FAQIDRequest) GetId() string { +func (x *FAQInfo) GetQuestion() string { if x != nil { - return x.Id + 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 +607,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 +620,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 +633,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 +661,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 +674,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 +687,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 +708,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 +721,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 +734,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 +756,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 +769,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 +782,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 +822,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 +835,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 +848,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 +964,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 +977,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 +990,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 +1065,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 +1078,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 +1091,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 +1149,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 +1162,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 +1175,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 { @@ -817,162 +1207,199 @@ var file_consultingapis_faq_v1_faq_proto_rawDesc = []byte{ 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, 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, 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, + 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, 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, + 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, 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, 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, + 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, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x1a, 0x2e, 0x63, 0x6f, 0x6e, 0x73, 0x75, 0x6c, + 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, 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, + 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, 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, - 0x46, 0x41, 0x51, 0x49, 0x44, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x63, + 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, 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, - 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, + 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, 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, 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 ( @@ -987,44 +1414,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 +1472,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 +1484,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 +1496,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 +1508,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 +1520,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 +1532,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 +1544,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 +1556,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 +1568,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 +1580,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 +1592,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 +1694,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..67273da 100644 --- a/consultingapis/faq/v1/faq.proto +++ b/consultingapis/faq/v1/faq.proto @@ -3,39 +3,42 @@ syntax = "proto3"; package consultingapis.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"; 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 +46,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 +99,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..ef0b8a8 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 @@ -94,31 +93,32 @@ 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, *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) + mustEmbedUnimplementedFAQServiceServer() } -// UnimplementedFAQServiceServer should be embedded to have forward compatible implementations. +// UnimplementedFAQServiceServer must be embedded to have forward compatible implementations. 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) { @@ -127,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 @@ -140,7 +141,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 +153,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 +189,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 +207,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 +260,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/consultingapis/wiki/v1/wiki.pb.go b/consultingapis/wiki/v1/wiki.pb.go index 2d395af..c2e8a76 100644 --- a/consultingapis/wiki/v1/wiki.pb.go +++ b/consultingapis/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_consultingapis_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_consultingapis_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_consultingapis_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_consultingapis_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_consultingapis_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_consultingapis_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_consultingapis_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_consultingapis_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_consultingapis_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_consultingapis_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_consultingapis_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_consultingapis_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,88 +400,94 @@ var file_consultingapis_wiki_v1_wiki_proto_rawDesc = []byte{ 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, + 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, 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, + 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, - 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, + 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 ( @@ -498,19 +504,19 @@ func file_consultingapis_wiki_v1_wiki_proto_rawDescGZIP() []byte { 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 + (*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.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, // 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,7 +531,7 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { } if !protoimpl.UnsafeEnabled { file_consultingapis_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: @@ -537,7 +543,7 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { } } file_consultingapis_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: @@ -549,7 +555,7 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { } } file_consultingapis_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: @@ -561,7 +567,7 @@ func file_consultingapis_wiki_v1_wiki_proto_init() { } } file_consultingapis_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/consultingapis/wiki/v1/wiki.pb.gw.go b/consultingapis/wiki/v1/wiki.pb.gw.go index 22ec5ab..4eb91fa 100644 --- a/consultingapis/wiki/v1/wiki.pb.gw.go +++ b/consultingapis/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/consultingapis/wiki/v1/wiki.proto b/consultingapis/wiki/v1/wiki.proto index 7cc6492..5c37635 100644 --- a/consultingapis/wiki/v1/wiki.proto +++ b/consultingapis/wiki/v1/wiki.proto @@ -7,39 +7,39 @@ import "google/api/annotations.proto"; option go_package = "./consultingapis/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/consultingapis/wiki/v1/wiki_grpc.pb.go b/consultingapis/wiki/v1/wiki_grpc.pb.go index feaf34f..0412dba 100644 --- a/consultingapis/wiki/v1/wiki_grpc.pb.go +++ b/consultingapis/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, "/consultingapis.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, "/consultingapis.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 } @@ -95,13 +97,13 @@ func _WikiService_GetDocContent_Handler(srv interface{}, ctx context.Context, de FullMethod: "/consultingapis.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 } @@ -113,7 +115,7 @@ func _WikiService_GetNodeList_Handler(srv interface{}, ctx context.Context, dec FullMethod: "/consultingapis.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/faq/v1/faq.swagger.json b/docs/swagger/aggregatingapis/faq/v1/faq.swagger.json new file mode 100644 index 0000000..7e693f3 --- /dev/null +++ b/docs/swagger/aggregatingapis/faq/v1/faq.swagger.json @@ -0,0 +1,467 @@ +{ + "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" + } + }, + "additionalProperties": {} + }, + "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 0c4443f..47f1edc 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": [ @@ -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": { @@ -42,38 +42,35 @@ } ], "tags": [ - "InfoStreamService" + "InfostreamService" ] } } }, "definitions": { - "InfoStreamRespData": { + "GetInfostreamResponseData": { "type": "object", "properties": { "weather": { - "$ref": "#/definitions/v1weatherResp" + "$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,22 +101,7 @@ } } }, - "v1InfoStreamResp": { - "type": "object", - "properties": { - "error": { - "type": "integer", - "format": "int64" - }, - "msg": { - "type": "string" - }, - "data": { - "$ref": "#/definitions/InfoStreamRespData" - } - } - }, - "v1cardResp": { + "v1CardResp": { "type": "object", "properties": { "available": { @@ -131,7 +113,7 @@ } } }, - "v1electricData": { + "v1ElectricData": { "type": "object", "properties": { "fee": { @@ -145,18 +127,18 @@ } } }, - "v1electricResp": { + "v1ElectricResp": { "type": "object", "properties": { "available": { "type": "boolean" }, "data": { - "$ref": "#/definitions/v1electricData" + "$ref": "#/definitions/v1ElectricData" } } }, - "v1examData": { + "v1ExamData": { "type": "object", "properties": { "classroom": { @@ -188,7 +170,7 @@ } } }, - "v1examResp": { + "v1ExamResp": { "type": "object", "properties": { "available": { @@ -197,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": { @@ -233,7 +230,7 @@ } } }, - "v1scheduleResp": { + "v1ScheduleResp": { "type": "object", "properties": { "available": { @@ -242,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": { @@ -318,7 +315,7 @@ } } }, - "v1scoreResp": { + "v1ScoreResp": { "type": "object", "properties": { "available": { @@ -327,15 +324,12 @@ "data": { "type": "array", "items": { - "$ref": "#/definitions/v1scoreData" + "$ref": "#/definitions/v1ScoreData" } } } }, - "v1settingsResp": { - "type": "object" - }, - "v1sunRunData": { + "v1SunRunData": { "type": "object", "properties": { "amMileage": { @@ -405,18 +399,18 @@ } } }, - "v1sunRunResp": { + "v1SunRunResp": { "type": "object", "properties": { "available": { "type": "boolean" }, "data": { - "$ref": "#/definitions/v1sunRunData" + "$ref": "#/definitions/v1SunRunData" } } }, - "v1weatherData": { + "v1WeatherData": { "type": "object", "properties": { "aqi": { @@ -464,14 +458,14 @@ } } }, - "v1weatherResp": { + "v1WeatherResponse": { "type": "object", "properties": { "available": { "type": "boolean" }, "data": { - "$ref": "#/definitions/v1weatherData" + "$ref": "#/definitions/v1WeatherData" } } } 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/aggregatingapis/wiki/v1/wiki.swagger.json b/docs/swagger/aggregatingapis/wiki/v1/wiki.swagger.json new file mode 100644 index 0000000..3e3805f --- /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/v1GetDocContentResponse" + } + }, + "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/v1GetNodeListResponse" + } + }, + "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" + } + } + } + }, + "v1GetDocContentResponse": { + "type": "object", + "properties": { + "content": { + "type": "string" + }, + "revision": { + "type": "integer", + "format": "int64" + } + } + }, + "v1GetNodeListResponse": { + "type": "object", + "properties": { + "items": { + "type": "array", + "items": { + "$ref": "#/definitions/v1NodeItem" + } + }, + "pageToken": { + "type": "string" + }, + "hasMore": { + "type": "boolean" + } + } + }, + "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" + } + } + } + } + } +} 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" - } - } - } - } - } -} diff --git a/docs/swagger/campusapis/card/v1/card.swagger.json b/docs/swagger/campusapis/card/v1/card.swagger.json index 103233b..3a13a5a 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": { @@ -168,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", @@ -193,6 +183,23 @@ } } }, + "v1CardInfo": { + "type": "object", + "properties": { + "remaining": { + "type": "number", + "format": "float", + "title": "余额,精确到小数点后两位,单位元" + }, + "flow": { + "type": "array", + "items": { + "$ref": "#/definitions/v1Consumption" + }, + "title": "交易记录" + } + } + }, "v1Consumption": { "type": "object", "properties": { @@ -228,16 +235,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 +270,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/v1CardInfo" } } } 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 017cf8f..d6fbc21 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": { @@ -471,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", @@ -504,18 +494,7 @@ } } }, - "v1GetCheckinPhoneResponse": { - "type": "object", - "properties": { - "Phone": { - "type": "string" - }, - "StaffID": { - "type": "string" - } - } - }, - "v1GetCheckinRecordResponse": { + "v1CheckinRecord": { "type": "object", "properties": { "id": { @@ -584,18 +563,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 +748,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 +776,21 @@ } } }, + "v1PostCheckinPhoneResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "message": { + "type": "string" + } + } + }, "v1PostCheckinRecordBody": { "type": "object", "properties": { @@ -728,6 +822,21 @@ } }, "v1PostCheckinRecordResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1PostCheckinRecordResponseData" + } + } + }, + "v1PostCheckinRecordResponseData": { "type": "object", "properties": { "code": { @@ -740,7 +849,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..4260cd1 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": { @@ -172,6 +166,39 @@ } }, "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": { @@ -198,18 +225,7 @@ } } }, - "v1GetSemesterListResponse": { - "type": "object", - "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetSemesterListResponseSemester" - } - } - } - }, - "v1GetSemesterListResponseSemester": { + "v1SemesterInfo": { "type": "object", "properties": { "schoolYear": { 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/docs/swagger/campusapis/staff/v1/campus.swagger.json b/docs/swagger/campusapis/staff/v1/campus.swagger.json index cee4896..fbe7b54 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": { @@ -618,12 +615,9 @@ "operationId": "CampusService_GetStudentRewards", "responses": { "200": { - "description": "奖学金列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetStudentRewardsResponseNested" - } + "$ref": "#/definitions/v1GetStudentRewardsResponse" } }, "default": { @@ -680,15 +674,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": { @@ -727,7 +718,7 @@ "200": { "description": "A successful response.", "schema": { - "$ref": "#/definitions/v1GetStudentBirthdayResponse" + "$ref": "#/definitions/v1GetStudentBirthdayInfoResponse" } }, "default": { @@ -996,12 +987,9 @@ "operationId": "CampusService_GetStudentRewards2", "responses": { "200": { - "description": "奖学金列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetStudentRewardsResponseNested" - } + "$ref": "#/definitions/v1GetStudentRewardsResponse" } }, "default": { @@ -1032,18 +1020,38 @@ ] } }, + "/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": "获取学生选课信息", - "operationId": "CampusService_GetStudentSelect2", + "operationId": "CampusService_GetStudentCourseSelections2", "responses": { "200": { - "description": "详情列表", + "description": "A successful response.", "schema": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetStudentSelectResponseNested" - } + "$ref": "#/definitions/v1GetStudentCourseSelectionsResponse" } }, "default": { @@ -1076,21 +1084,32 @@ } }, "definitions": { - "GetFreshmanRoommatesResponseRoommate": { + "PostStudentGateAccessResponseData": { "type": "object", "properties": { - "staffName": { - "type": "string", - "title": "室友姓名" - }, - "qq": { - "type": "string" + "done": { + "type": "boolean" }, - "phone": { + "message": { "type": "string" } } }, + "StudentNeedyInfoNested": { + "type": "object", + "properties": { + "schoolYear": { + "type": "integer", + "format": "int32", + "title": "特定学年" + }, + "needyStudent": { + "type": "boolean", + "title": "是否是贫困生" + } + }, + "title": "某年贫困详情" + }, "campusapisstaffType": { "type": "string", "enum": [ @@ -1130,41 +1149,24 @@ } } }, - "v1GPAPerSemester": { + "v1DormInfo": { "type": "object", "properties": { - "schoolYear": { - "type": "string", - "title": "学年" - }, - "semester": { - "type": "string", - "title": "学期" - }, - "gradePointAverage": { + "staffId": { "type": "string", - "title": "绩点" + "title": "学工号" }, - "staffID": { - "type": "string", - "title": "学号" - } - } - }, - "v1GPATotal": { - "type": "object", - "properties": { - "gradePointAverage": { + "building": { "type": "string", - "title": "绩点" + "title": "楼号" }, - "staffID": { + "room": { "type": "string", - "title": "学号" + "title": "寝室号" } } }, - "v1GetFreshmanBaseInfoResponse": { + "v1FreshmanBaseInfo": { "type": "object", "properties": { "staffId": { @@ -1194,7 +1196,7 @@ }, "title": "新生基本信息" }, - "v1GetFreshmanInfoResponse": { + "v1FreshmanDetail": { "type": "object", "properties": { "staffId": { @@ -1297,13 +1299,99 @@ }, "title": "新生详细信息" }, + "v1FreshmanRoommate": { + "type": "object", + "properties": { + "staffName": { + "type": "string", + "title": "室友姓名" + }, + "qq": { + "type": "string" + }, + "phone": { + "type": "string" + } + } + }, + "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": { + "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": "室友列表" } @@ -1313,46 +1401,34 @@ "v1GetPersonInfoResponse": { "type": "object", "properties": { - "staffId": { - "type": "string", - "title": "学工号" - }, - "staffName": { - "type": "string", - "title": "姓名" - }, - "staffState": { - "type": "string", - "title": "人员状态" + "error": { + "type": "integer", + "format": "int64" }, - "staffType": { - "type": "string", - "title": "人员类型" + "msg": { + "type": "string" }, - "unitCode": { - "type": "string", - "title": "学院代码" + "data": { + "$ref": "#/definitions/v1PersonInfo" } }, "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", @@ -1360,30 +1436,48 @@ "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": { - "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": "GetStudentDormInfoResponse 查询学生寝室信息返回体" + "title": "查询学生寝室信息返回体" }, "v1GetStudentExamResponse": { "type": "object", @@ -1440,46 +1534,20 @@ "title": "成绩详情列表" } }, - "title": "GetStudentGradeResponse 查询学生成绩返回体" + "title": "查询学生成绩返回体" }, "v1GetStudentInfoResponse": { "type": "object", "properties": { - "staffId": { - "type": "string", - "title": "学号" - }, - "staffName": { - "type": "string", - "title": "学生姓名" - }, - "classId": { - "type": "string", - "title": "学生班级号" + "error": { + "type": "integer", + "format": "int64" }, - "unitId": { - "type": "string", - "title": "学生学院编号" + "msg": { + "type": "string" }, - "unitName": { - "type": "string", - "title": "学生学院名称" - }, - "majorId": { - "type": "string", - "title": "学生专业编号" - }, - "majorName": { - "type": "string", - "title": "学生专业名称" - }, - "teacherId": { - "type": "string", - "title": "学生辅导员工号" - }, - "teacherName": { - "type": "string", - "title": "学生辅导员姓名" + "data": { + "$ref": "#/definitions/v1StudentInfo" } }, "title": "GetStudentInfoResponse 查询学生信息返回体" @@ -1487,65 +1555,75 @@ "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": { + "v1GetStudentSchoolRollStatusResponse": { "type": "object", "properties": { - "schoolYear": { + "error": { "type": "integer", - "format": "int32", - "title": "特定学年" + "format": "int64" }, - "needyStudent": { - "type": "boolean", - "title": "是否是贫困生" + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1StudentSchoolRollStatus" } }, - "title": "某年贫困详情" + "title": "查询学生学籍状态返回体" }, - "v1GetStudentRewardsResponse": { + "v1GetStudentStaySchoolInfoResponse": { "type": "object", "properties": { - "items": { - "type": "array", - "items": { - "$ref": "#/definitions/v1GetStudentRewardsResponseNested" - }, - "title": "奖学金列表" + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1StudentStaySchoolInfo" } }, - "title": "GetStudentRewardsResponse 奖学金查询返回体" + "title": "留校生信息查询-返回体" }, - "v1GetStudentRewardsResponseNested": { + "v1PersonInfo": { "type": "object", "properties": { - "staffID": { + "staffId": { "type": "string", "title": "学工号" }, @@ -1553,61 +1631,55 @@ "type": "string", "title": "姓名" }, - "rewardName": { + "staffState": { "type": "string", - "title": "奖项名" + "title": "人员状态" }, - "schoolYear": { + "staffType": { "type": "string", - "title": "学年" + "title": "人员类型" }, - "semester": { + "unitCode": { "type": "string", - "title": "学期" + "title": "学院代码" + } + } + }, + "v1PostStudentGateAccessResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" }, - "rewardLevel": { - "type": "string", - "title": "奖项等级" + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/PostStudentGateAccessResponseData" } }, - "title": "奖学金信息" + "title": "PostStudentGateAccessResponse 推送学生门禁通行信息" }, - "v1GetStudentSchoolRollStatusResponse": { + "v1StudentBirthdayInfo": { "type": "object", "properties": { "staffId": { "type": "string", - "title": "学号" - }, - "staffName": { - "type": "string", - "title": "学生姓名" + "title": "学工号" }, - "statusCode": { + "name": { "type": "string", - "title": "学籍状态代码" + "title": "姓名" }, - "statusDesc": { + "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": { @@ -1657,84 +1729,6 @@ }, "title": "选课详情" }, - "v1GetStudentStaySchoolInfoResponse": { - "type": "object", - "properties": { - "staffId": { - "type": "string", - "title": "学工号" - }, - "staffName": { - "type": "string", - "title": "姓名" - }, - "reportTime": { - "type": "string", - "title": "报告日期" - }, - "reason": { - "type": "string", - "title": "原因" - }, - "time1Start": { - "type": "string", - "title": "时间段1-开始" - }, - "time1End": { - "type": "string", - "title": "时间段1-结束" - }, - "time2Start": { - "type": "string", - "title": "时间段2-开始" - }, - "time2End": { - "type": "string", - "title": "时间段2-结束" - }, - "teacherStatus": { - "type": "string", - "title": "辅导员审批状态,枚举及含义:0-\u003e未审批 | 1-\u003e审批通过 | 2-\u003e拒绝" - }, - "teacherRemark": { - "type": "string", - "title": "辅导员审批备注" - }, - "teacherReviewTime": { - "type": "string", - "title": "辅导员审批时间" - }, - "unitStatus": { - "type": "string", - "title": "学院审批状态,枚举及含义:0-\u003e未审批 | 1-\u003e审批通过 | 2-\u003e拒绝" - }, - "unitRemark": { - "type": "string", - "title": "学院审批备注" - }, - "unitReviewTime": { - "type": "string", - "title": "学院审批时间" - }, - "cancelStatus": { - "type": "string", - "title": "撤回状态,枚举及含义:1-\u003e未撤回 | 2-\u003e已撤回" - } - }, - "title": "留校生信息查询-返回体" - }, - "v1PostStudentGateAccessResponse": { - "type": "object", - "properties": { - "done": { - "type": "boolean" - }, - "message": { - "type": "string" - } - }, - "title": "PostStudentGateAccessResponse 推送学生门禁通行信息" - }, "v1StudentExam": { "type": "object", "properties": { @@ -1859,6 +1853,195 @@ } }, "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": { + "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": "奖学金信息" + }, + "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": { + "staffId": { + "type": "string", + "title": "学工号" + }, + "staffName": { + "type": "string", + "title": "姓名" + }, + "reportTime": { + "type": "string", + "title": "报告日期" + }, + "reason": { + "type": "string", + "title": "原因" + }, + "time1Start": { + "type": "string", + "title": "时间段1-开始" + }, + "time1End": { + "type": "string", + "title": "时间段1-结束" + }, + "time2Start": { + "type": "string", + "title": "时间段2-开始" + }, + "time2End": { + "type": "string", + "title": "时间段2-结束" + }, + "teacherStatus": { + "type": "string", + "title": "辅导员审批状态,枚举及含义:0-\u003e未审批 | 1-\u003e审批通过 | 2-\u003e拒绝" + }, + "teacherRemark": { + "type": "string", + "title": "辅导员审批备注" + }, + "teacherReviewTime": { + "type": "string", + "title": "辅导员审批时间" + }, + "unitStatus": { + "type": "string", + "title": "学院审批状态,枚举及含义:0-\u003e未审批 | 1-\u003e审批通过 | 2-\u003e拒绝" + }, + "unitRemark": { + "type": "string", + "title": "学院审批备注" + }, + "unitReviewTime": { + "type": "string", + "title": "学院审批时间" + }, + "cancelStatus": { + "type": "string", + "title": "撤回状态,枚举及含义:1-\u003e未撤回 | 2-\u003e已撤回" + } + }, + "title": "留校生信息" } } } diff --git a/docs/swagger/campusapis/teaching/v1/teaching.swagger.json b/docs/swagger/campusapis/teaching/v1/teaching.swagger.json index d0e5cb4..305d33d 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,49 +608,6 @@ } }, "definitions": { - "ClassroomUsagesResponseNested": { - "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": { @@ -840,36 +770,99 @@ }, "title": "教室信息" }, - "v1ClassroomUsagesResponse": { + "v1ClassroomUsage": { "type": "object", "properties": { - "items": { + "classroom": { + "$ref": "#/definitions/v1Classroom", + "title": "教室信息" + }, + "weekday": { + "type": "integer", + "format": "int32", + "title": "星期" + }, + "week": { + "type": "array", + "items": { + "type": "integer", + "format": "int32" + }, + "title": "周次列表" + }, + "Section": { "type": "array", "items": { - "$ref": "#/definitions/ClassroomUsagesResponseNested" + "type": "integer", + "format": "int32" + }, + "title": "节次列表" + }, + "ClassID": { + "type": "string", + "title": "课程内部ID" + }, + "CourseCode": { + "type": "string", + "title": "课程号" + }, + "CourseName": { + "type": "string", + "title": "课程名" + } + }, + "title": "教室使用情况" + }, + "v1GetClassroomUsagesResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "type": "array", + "items": { + "$ref": "#/definitions/v1ClassroomUsage" }, "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 +872,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 +904,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 +939,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 +960,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 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" - } - } } } } diff --git a/docs/swagger/gatewayapis/auth/v1/auth.swagger.json b/docs/swagger/gatewayapis/auth/v1/auth.swagger.json index caad074..d386fa2 100644 --- a/docs/swagger/gatewayapis/auth/v1/auth.swagger.json +++ b/docs/swagger/gatewayapis/auth/v1/auth.swagger.json @@ -15,16 +15,589 @@ "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" + ] + } + }, + "/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": "用户注销当前令牌", + "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/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基本信息", + "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" + ] + } + }, + "/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", @@ -57,19 +630,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 +657,80 @@ }, "title": "用户绑定信息" }, - "v1BindListResponse": { + "v1BindInfo": { "type": "object", "properties": { - "items": { + "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": { + "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 +740,351 @@ }, "title": "用户绑定信息查询响应" }, + "v1GetDoctorPageResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/apiHttpBody" + } + } + }, + "v1GetImageUploadTicketResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "Data": { + "$ref": "#/definitions/v1ImageUploadTicket" + } + } + }, + "v1GetSchoolTimeResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1SchoolTime" + } + } + }, "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" + } + } + } + }, + "v1GetWeChatSignatureResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + }, + "data": { + "$ref": "#/definitions/v1WeChatSignature" + } + } + }, + "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" + } + } + }, + "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": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "v1PutUserPrimaryBindResponse": { + "type": "object", + "properties": { + "error": { + "type": "integer", + "format": "int64" + }, + "msg": { + "type": "string" + } + } + }, + "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": { "isValid": { @@ -130,6 +1115,44 @@ "OAUTH" ], "default": "ORIGIN" + }, + "v1UserInfoLegacy": { + "type": "object", + "properties": { + "nowStaffId": { + "type": "string" + }, + "staffIds": { + "type": "array", + "items": { + "type": "string" + } + }, + "school": { + "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.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..5f8db30 100644 --- a/gatewayapis/auth/v1/auth.pb.go +++ b/gatewayapis/auth/v1/auth.pb.go @@ -7,10 +7,10 @@ package authv1 import ( - _ "github.com/hduhelp/api_open_sdk/gatewayapis" + _ "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" - emptypb "google.golang.org/protobuf/types/known/emptypb" structpb "google.golang.org/protobuf/types/known/structpb" reflect "reflect" sync "sync" @@ -69,23 +69,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 +133,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 +146,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 +292,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 +340,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 +434,3323 @@ 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 { - if x != nil { - return x.Primary +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 false + return mi.MessageOf(x) } -func (x *Bind) GetRemark() string { +// 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.Remark + return x.PlatformID } return "" } -func (x *Bind) GetAttributes() *structpb.Struct { +func (x *BindInfo) GetPlatformName() string { if x != nil { - return x.Attributes + return x.PlatformName } - return nil + return "" } -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, 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 *BindInfo) GetCreatedAt() uint32 { + if x != nil { + return x.CreatedAt + } + return 0 } -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 +type GetUserBindRequest struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -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 -} -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 +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) + } +} + +func (x *GetUserBindRequest) String() string { + return protoimpl.X.MessageStringOf(x) +} + +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) +} + +// Deprecated: Use GetUserBindRequest.ProtoReflect.Descriptor instead. +func (*GetUserBindRequest) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{8} +} + +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 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 + 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[40] + 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[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 ImageUploadTicket.ProtoReflect.Descriptor instead. +func (*ImageUploadTicket) Descriptor() ([]byte, []int) { + return file_gatewayapis_auth_v1_auth_proto_rawDescGZIP(), []int{40} +} + +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 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 + 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[49] + 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[49] + 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{49} +} + +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[50] + 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[50] + 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{50} +} + +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[51] + 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[51] + 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{51} +} + +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[52] + 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[52] + 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[53] + 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[53] + 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 +} + +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{ + 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, 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, 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, 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, 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, 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, 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, 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, 55) +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 + (*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 + 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 + 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() } @@ -489,6 +3760,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 +3783,308 @@ 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: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + 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: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + 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: @@ -512,8 +4095,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[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoResponse); i { case 0: return &v.state case 1: @@ -524,7 +4107,271 @@ 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[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.(*PutUploadImageRequest); 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.(*PutUploadImageResponse); 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.(*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[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDoctorPageRequest); 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[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetDoctorPageResponse); 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.(*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 @@ -536,6 +4383,42 @@ func file_gatewayapis_auth_v1_auth_proto_init() { 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 + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + 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{ @@ -543,7 +4426,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: 55, NumExtensions: 0, NumServices: 1, }, diff --git a/gatewayapis/auth/v1/auth.pb.gw.go b/gatewayapis/auth/v1/auth.pb.gw.go index 698e0bf..114a1a3 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,2292 @@ 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.GetTokenInfo(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) + 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.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_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 + + 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_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() + 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()...) + + }) + + 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 + } + + 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() + 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 + } + + 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() + 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()...) + + }) + + 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 + } + + 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() + 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_DeleteUserDevice_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/DeleteUserDevice", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/DeleteUserDevice")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + 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_DeleteUserDevice_0(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 + }) - 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_GetUserInfo_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/GetUserInfo", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetUserInfo")) + if err != nil { + runtime.HTTPError(ctx, mux, outboundMarshaler, w, req, err) + return + } + 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 + } - msg, err := server.GetTokenInfo(ctx, &protoReq) - return msg, metadata, err + forward_AuthService_GetUserInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) -} + }) -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 + 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 + } - 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_GetUserInfoLegacy_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) - msg, err := client.GetBindListByUserIdList(ctx, &protoReq, grpc.Header(&metadata.HeaderMD), grpc.Trailer(&metadata.TrailerMD)) - return msg, metadata, err + }) -} + 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 { + 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 + } -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 + forward_AuthService_PutUserPrimaryBind_0(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 := server.GetBindListByUserIdList(ctx, &protoReq) - return msg, metadata, err + 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()...) -// 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_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() - 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/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_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_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()...) }) - mux.Handle("POST", pattern_AuthService_GetBindListByUserIdList_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + 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/GetBindListByUserIdList", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetBindListByUserIdList")) + 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 := 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_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_GetBindListByUserIdList_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_PutUploadImage_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) - return nil -} + 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 + } -// 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_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 { - 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_GetDoctorPage_1(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_GetDoctorPage_1(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("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("POST", pattern_AuthService_GetTokenInfo_0, func(w http.ResponseWriter, req *http.Request, pathParams map[string]string) { + }) + + 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/GetTokenInfo", runtime.WithHTTPPathPattern("/gatewayapis.auth.v1.AuthService/GetTokenInfo")) + 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_GetTokenInfo_0(ctx, inboundMarshaler, client, req, pathParams) + 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_GetTokenInfo_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) + forward_AuthService_GetWeChatSignature_0(ctx, mux, outboundMarshaler, w, req, resp, mux.GetForwardResponseOptions()...) }) @@ -241,7 +2346,63 @@ 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_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"}, "")) ) @@ -249,5 +2410,61 @@ 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_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 8f57fcc..ef6469e 100644 --- a/gatewayapis/auth/v1/auth.proto +++ b/gatewayapis/auth/v1/auth.proto @@ -2,19 +2,132 @@ syntax = "proto3"; package gatewayapis.auth.v1; -import "gatewayapis/option.proto"; -import "google/protobuf/empty.proto"; +import "google/api/annotations.proto"; +import "google/api/httpbody.proto"; import "google/protobuf/struct.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) {} + 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) {} } enum TokenType { @@ -22,7 +135,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 +152,254 @@ 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 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; } // 用户绑定信息查询响应 -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..a21a69e 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,42 @@ 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) + 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) } type authServiceClient struct { @@ -37,7 +68,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 +77,188 @@ 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) 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...) if err != nil { return nil, err @@ -56,25 +267,119 @@ func (c *authServiceClient) GetBindListByUserIdList(ctx context.Context, in *Use } // 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基本信息 - 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) + 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) + mustEmbedUnimplementedAuthServiceServer() } -// UnimplementedAuthServiceServer should be embedded to have forward compatible implementations. +// UnimplementedAuthServiceServer must 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) 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") } +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 @@ -88,7 +393,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 +405,373 @@ 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_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(UserIdListRequest) + in := new(GetBindListByUserIdListRequest) if err := dec(in); err != nil { return nil, err } @@ -118,7 +783,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 +799,86 @@ 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: "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/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; -} 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/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 8189740..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" - emptypb "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" ) @@ -24,6 +20,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 +69,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 +82,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 +95,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 +105,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 +118,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 +145,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 *GetHTTPRouterRequest) GetService() string { + if x != nil { + return x.Service + } + return "" +} + +func (x *GetHTTPRouterRequest) GetMethod() string { + if x != nil { + return x.Method + } + return "" +} + +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 *HTTPRouterKeyRequest) GetService() string { +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 *HTTPRouterKeyRequest) GetMethod() string { +func (x *DeleteHTTPRouterRequest) GetMethod() string { if x != nil { return x.Method } return "" } -func (x *HTTPRouterKeyRequest) GetServePath() string { +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{ @@ -147,66 +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, 0x58, 0x0a, 0x19, 0x47, + 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, 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, 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, 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, + 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, 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 +530,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 +569,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 +581,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 +671,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..8e12b84 100644 --- a/gatewayapis/server/v1/manager.proto +++ b/gatewayapis/server/v1/manager.proto @@ -3,31 +3,28 @@ 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"; //服务管理端 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 +32,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..563dc90 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 @@ -78,35 +77,37 @@ 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路由 - 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) + mustEmbedUnimplementedServerManageerServiceServer() } -// UnimplementedServerManageerServiceServer should be embedded to have forward compatible implementations. +// UnimplementedServerManageerServiceServer must 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") } +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 @@ -120,7 +121,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 +133,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 +151,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 +169,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 +187,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..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" - emptypb "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" ) @@ -71,16 +67,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 +82,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 +100,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 +201,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 +214,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 +227,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 +237,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{ @@ -174,68 +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, 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, + 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, 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, - 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, + 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, 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, - 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, - 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, - 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, + 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, 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 ( @@ -250,26 +366,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 +415,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 +427,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 +462,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 +481,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..54e36d2 100644 --- a/gatewayapis/server/v1/register.proto +++ b/gatewayapis/server/v1/register.proto @@ -3,31 +3,33 @@ 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"; //服务注册方 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..1acdfb9 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 @@ -67,30 +66,32 @@ 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 { //注册服务实例 - 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) + mustEmbedUnimplementedServerRegisterServiceServer() } -// UnimplementedServerRegisterServiceServer should be embedded to have forward compatible implementations. +// UnimplementedServerRegisterServiceServer must 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") } +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 @@ -122,7 +123,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 +135,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) } 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") }