diff --git a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/config/octopusConfig.go b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/config/octopusConfig.go index 68a20a69..c219069a 100644 --- a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/config/octopusConfig.go +++ b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/config/octopusConfig.go @@ -47,4 +47,9 @@ type OctopusApi struct { GetDatasetApplyList string GetDatasetTypeList string GetTrainJobList string + GetMyModelList string + GetModelVersionList string + DeleteMyModel string + DeleteModelVersion string + DownloadModelVersion string } diff --git a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/deletemodelversionlogic.go b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/deletemodelversionlogic.go new file mode 100644 index 00000000..884dbfd7 --- /dev/null +++ b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/deletemodelversionlogic.go @@ -0,0 +1,48 @@ +package logic + +import ( + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/common" + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/svc" + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopus" + "PCM/common/tool" + "context" + + "github.com/zeromicro/go-zero/core/logx" +) + +type DeleteModelVersionLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewDeleteModelVersionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteModelVersionLogic { + return &DeleteModelVersionLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *DeleteModelVersionLogic) DeleteModelVersion(in *octopus.DeleteModelVersionReq) (*octopus.DeleteModelVersionResp, error) { + resp := &octopus.DeleteModelVersionResp{} + + var url_prefix = common.OctopusUrls[in.Platform] + var reqUrl = url_prefix + l.svcCtx.Config.OctopusApi.DeleteModelVersion + + token := common.GetToken(in.Platform) + + req := tool.GetACHttpRequest() + _, err := req. + SetHeader("Authorization", "Bearer "+token). + SetPathParam("modelId", in.ModelId). + SetPathParam("version", in.Version). + SetResult(resp). + Delete(reqUrl) + + if err != nil { + return nil, err + } + + return resp, nil +} diff --git a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/deletemymodellogic.go b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/deletemymodellogic.go new file mode 100644 index 00000000..a9ea4a9c --- /dev/null +++ b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/deletemymodellogic.go @@ -0,0 +1,48 @@ +package logic + +import ( + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/common" + "PCM/common/tool" + "context" + + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/svc" + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopus" + + "github.com/zeromicro/go-zero/core/logx" +) + +type DeleteMyModelLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewDeleteMyModelLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DeleteMyModelLogic { + return &DeleteMyModelLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *DeleteMyModelLogic) DeleteMyModel(in *octopus.DeleteMyModelReq) (*octopus.DeleteMyModelResp, error) { + resp := &octopus.DeleteMyModelResp{} + + var url_prefix = common.OctopusUrls[in.Platform] + var reqUrl = url_prefix + l.svcCtx.Config.OctopusApi.DeleteMyModel + + token := common.GetToken(in.Platform) + + req := tool.GetACHttpRequest() + _, err := req. + SetHeader("Authorization", "Bearer "+token). + SetPathParam("modelId", in.ModelId). + SetResult(resp). + Delete(reqUrl) + + if err != nil { + return nil, err + } + + return resp, nil +} diff --git a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/downloadmodelversionlogic.go b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/downloadmodelversionlogic.go new file mode 100644 index 00000000..579ac430 --- /dev/null +++ b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/downloadmodelversionlogic.go @@ -0,0 +1,48 @@ +package logic + +import ( + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/common" + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/svc" + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopus" + "PCM/common/tool" + "context" + + "github.com/zeromicro/go-zero/core/logx" +) + +type DownloadModelVersionLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewDownloadModelVersionLogic(ctx context.Context, svcCtx *svc.ServiceContext) *DownloadModelVersionLogic { + return &DownloadModelVersionLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *DownloadModelVersionLogic) DownloadModelVersion(in *octopus.DownloadModelVersionReq) (*octopus.DownloadModelVersionResp, error) { + resp := &octopus.DownloadModelVersionResp{} + + var url_prefix = common.OctopusUrls[in.Platform] + var reqUrl = url_prefix + l.svcCtx.Config.OctopusApi.DownloadModelVersion + + token := common.GetToken(in.Platform) + + req := tool.GetACHttpRequest() + _, err := req. + SetHeader("Authorization", "Bearer "+token). + SetPathParam("modelId", in.ModelId). + SetPathParam("version", in.Version). + SetQueryString("domain=" + in.Domain). + SetResult(resp). + Get(reqUrl) + + if err != nil { + return nil, err + } + return resp, nil +} diff --git a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/getmodelversionlistlogic.go b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/getmodelversionlistlogic.go new file mode 100644 index 00000000..5f5d9a06 --- /dev/null +++ b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/getmodelversionlistlogic.go @@ -0,0 +1,51 @@ +package logic + +import ( + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/common" + "PCM/common/tool" + "context" + "strconv" + + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/svc" + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopus" + + "github.com/zeromicro/go-zero/core/logx" +) + +type GetModelVersionListLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewGetModelVersionListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetModelVersionListLogic { + return &GetModelVersionListLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *GetModelVersionListLogic) GetModelVersionList(in *octopus.GetModelVersionListReq) (*octopus.GetModelVersionListResp, error) { + resp := &octopus.GetModelVersionListResp{} + + var url_prefix = common.OctopusUrls[in.Platform] + var reqUrl = url_prefix + l.svcCtx.Config.OctopusApi.GetModelVersionList + + token := common.GetToken(in.Platform) + + req := tool.GetACHttpRequest() + _, err := req. + SetHeader("Authorization", "Bearer "+token). + SetPathParam("modelId", in.ModelId). + SetQueryString("pageIndex=" + strconv.Itoa(int(in.PageIndex))). + SetQueryString("pageSize=" + strconv.Itoa(int(in.PageSize))). + SetResult(resp). + Get(reqUrl) + + if err != nil { + return nil, err + } + + return resp, nil +} diff --git a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/getmymodellistlogic.go b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/getmymodellistlogic.go new file mode 100644 index 00000000..ec807e0d --- /dev/null +++ b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/logic/getmymodellistlogic.go @@ -0,0 +1,51 @@ +package logic + +import ( + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/common" + "PCM/common/tool" + "context" + "strconv" + + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/svc" + "PCM/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopus" + + "github.com/zeromicro/go-zero/core/logx" +) + +type GetMyModelListLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewGetMyModelListLogic(ctx context.Context, svcCtx *svc.ServiceContext) *GetMyModelListLogic { + return &GetMyModelListLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// Model +func (l *GetMyModelListLogic) GetMyModelList(in *octopus.GetMyModelListReq) (*octopus.GetMyModelListResp, error) { + resp := &octopus.GetMyModelListResp{} + + var url_prefix = common.OctopusUrls[in.Platform] + var reqUrl = url_prefix + l.svcCtx.Config.OctopusApi.GetMyModelList + + token := common.GetToken(in.Platform) + + req := tool.GetACHttpRequest() + _, err := req. + SetHeader("Authorization", "Bearer "+token). + SetQueryString("pageIndex=" + strconv.Itoa(int(in.PageIndex))). + SetQueryString("pageSize=" + strconv.Itoa(int(in.PageSize))). + SetResult(resp). + Get(reqUrl) + + if err != nil { + return nil, err + } + + return resp, nil +} diff --git a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/server/octopusserver.go b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/server/octopusserver.go index 9f5178a0..55216da0 100644 --- a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/server/octopusserver.go +++ b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/internal/server/octopusserver.go @@ -191,6 +191,32 @@ func (s *OctopusServer) UploadImageConfirm(ctx context.Context, in *octopus.Uplo return l.UploadImageConfirm(in) } +// Model +func (s *OctopusServer) GetMyModelList(ctx context.Context, in *octopus.GetMyModelListReq) (*octopus.GetMyModelListResp, error) { + l := logic.NewGetMyModelListLogic(ctx, s.svcCtx) + return l.GetMyModelList(in) +} + +func (s *OctopusServer) GetModelVersionList(ctx context.Context, in *octopus.GetModelVersionListReq) (*octopus.GetModelVersionListResp, error) { + l := logic.NewGetModelVersionListLogic(ctx, s.svcCtx) + return l.GetModelVersionList(in) +} + +func (s *OctopusServer) DeleteMyModel(ctx context.Context, in *octopus.DeleteMyModelReq) (*octopus.DeleteMyModelResp, error) { + l := logic.NewDeleteMyModelLogic(ctx, s.svcCtx) + return l.DeleteMyModel(in) +} + +func (s *OctopusServer) DeleteModelVersion(ctx context.Context, in *octopus.DeleteModelVersionReq) (*octopus.DeleteModelVersionResp, error) { + l := logic.NewDeleteModelVersionLogic(ctx, s.svcCtx) + return l.DeleteModelVersion(in) +} + +func (s *OctopusServer) DownloadModelVersion(ctx context.Context, in *octopus.DownloadModelVersionReq) (*octopus.DownloadModelVersionResp, error) { + l := logic.NewDownloadModelVersionLogic(ctx, s.svcCtx) + return l.DownloadModelVersion(in) +} + // TrainJobService func (s *OctopusServer) CreateTrainJob(ctx context.Context, in *octopus.CreateTrainJobReq) (*octopus.CreateTrainJobResp, error) { l := logic.NewCreateTrainJobLogic(ctx, s.svcCtx) diff --git a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopus/octopus.pb.go b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopus/octopus.pb.go index b5f3db57..d2c85917 100644 --- a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopus/octopus.pb.go +++ b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopus/octopus.pb.go @@ -7498,6 +7498,1165 @@ func (x *PayloadUploadImageConfirm) GetUpdatedAt() int64 { return 0 } +// *****************Model Start************************ +type GetModelVersionListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` + ModelId string `protobuf:"bytes,2,opt,name=modelId,proto3" json:"modelId,omitempty"` + PageIndex int32 `protobuf:"varint,3,opt,name=pageIndex,proto3" json:"pageIndex,omitempty"` + PageSize int32 `protobuf:"varint,4,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *GetModelVersionListReq) Reset() { + *x = GetModelVersionListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[118] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetModelVersionListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetModelVersionListReq) ProtoMessage() {} + +func (x *GetModelVersionListReq) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[118] + 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 GetModelVersionListReq.ProtoReflect.Descriptor instead. +func (*GetModelVersionListReq) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{118} +} + +func (x *GetModelVersionListReq) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *GetModelVersionListReq) GetModelId() string { + if x != nil { + return x.ModelId + } + return "" +} + +func (x *GetModelVersionListReq) GetPageIndex() int32 { + if x != nil { + return x.PageIndex + } + return 0 +} + +func (x *GetModelVersionListReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +type GetModelVersionListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + Payload *PayloadGetModelVersionList `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` + Error *Error `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` +} + +func (x *GetModelVersionListResp) Reset() { + *x = GetModelVersionListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[119] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetModelVersionListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetModelVersionListResp) ProtoMessage() {} + +func (x *GetModelVersionListResp) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[119] + 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 GetModelVersionListResp.ProtoReflect.Descriptor instead. +func (*GetModelVersionListResp) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{119} +} + +func (x *GetModelVersionListResp) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *GetModelVersionListResp) GetPayload() *PayloadGetModelVersionList { + if x != nil { + return x.Payload + } + return nil +} + +func (x *GetModelVersionListResp) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +type PayloadGetModelVersionList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TotalSize int32 `protobuf:"varint,1,opt,name=totalSize,proto3" json:"totalSize,omitempty"` + ModelVersions []*ModelVersion `protobuf:"bytes,2,rep,name=modelVersions,proto3" json:"modelVersions,omitempty"` +} + +func (x *PayloadGetModelVersionList) Reset() { + *x = PayloadGetModelVersionList{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[120] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PayloadGetModelVersionList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PayloadGetModelVersionList) ProtoMessage() {} + +func (x *PayloadGetModelVersionList) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[120] + 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 PayloadGetModelVersionList.ProtoReflect.Descriptor instead. +func (*PayloadGetModelVersionList) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{120} +} + +func (x *PayloadGetModelVersionList) GetTotalSize() int32 { + if x != nil { + return x.TotalSize + } + return 0 +} + +func (x *PayloadGetModelVersionList) GetModelVersions() []*ModelVersion { + if x != nil { + return x.ModelVersions + } + return nil +} + +type ModelVersion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IsShared bool `protobuf:"varint,1,opt,name=isShared,proto3" json:"isShared,omitempty"` + VersionDetail *VersionDetail `protobuf:"bytes,2,opt,name=versionDetail,proto3" json:"versionDetail,omitempty"` +} + +func (x *ModelVersion) Reset() { + *x = ModelVersion{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[121] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ModelVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ModelVersion) ProtoMessage() {} + +func (x *ModelVersion) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[121] + 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 ModelVersion.ProtoReflect.Descriptor instead. +func (*ModelVersion) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{121} +} + +func (x *ModelVersion) GetIsShared() bool { + if x != nil { + return x.IsShared + } + return false +} + +func (x *ModelVersion) GetVersionDetail() *VersionDetail { + if x != nil { + return x.VersionDetail + } + return nil +} + +type VersionDetail struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CreatedAt int64 `protobuf:"varint,1,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + Descript string `protobuf:"bytes,2,opt,name=descript,proto3" json:"descript,omitempty"` + FileStatus int32 `protobuf:"varint,3,opt,name=fileStatus,proto3" json:"fileStatus,omitempty"` + ModelId string `protobuf:"bytes,4,opt,name=modelId,proto3" json:"modelId,omitempty"` + Version string `protobuf:"bytes,5,opt,name=version,proto3" json:"version,omitempty"` +} + +func (x *VersionDetail) Reset() { + *x = VersionDetail{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[122] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *VersionDetail) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*VersionDetail) ProtoMessage() {} + +func (x *VersionDetail) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[122] + 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 VersionDetail.ProtoReflect.Descriptor instead. +func (*VersionDetail) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{122} +} + +func (x *VersionDetail) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *VersionDetail) GetDescript() string { + if x != nil { + return x.Descript + } + return "" +} + +func (x *VersionDetail) GetFileStatus() int32 { + if x != nil { + return x.FileStatus + } + return 0 +} + +func (x *VersionDetail) GetModelId() string { + if x != nil { + return x.ModelId + } + return "" +} + +func (x *VersionDetail) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type DeleteMyModelReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` + ModelId string `protobuf:"bytes,2,opt,name=modelId,proto3" json:"modelId,omitempty"` +} + +func (x *DeleteMyModelReq) Reset() { + *x = DeleteMyModelReq{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[123] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteMyModelReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteMyModelReq) ProtoMessage() {} + +func (x *DeleteMyModelReq) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[123] + 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 DeleteMyModelReq.ProtoReflect.Descriptor instead. +func (*DeleteMyModelReq) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{123} +} + +func (x *DeleteMyModelReq) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *DeleteMyModelReq) GetModelId() string { + if x != nil { + return x.ModelId + } + return "" +} + +type DeleteMyModelResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + Payload *PayloadDeleteMyModel `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` + Error *Error `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` +} + +func (x *DeleteMyModelResp) Reset() { + *x = DeleteMyModelResp{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[124] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteMyModelResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteMyModelResp) ProtoMessage() {} + +func (x *DeleteMyModelResp) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[124] + 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 DeleteMyModelResp.ProtoReflect.Descriptor instead. +func (*DeleteMyModelResp) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{124} +} + +func (x *DeleteMyModelResp) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *DeleteMyModelResp) GetPayload() *PayloadDeleteMyModel { + if x != nil { + return x.Payload + } + return nil +} + +func (x *DeleteMyModelResp) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +type PayloadDeleteMyModel struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeletedAt int64 `protobuf:"varint,1,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` +} + +func (x *PayloadDeleteMyModel) Reset() { + *x = PayloadDeleteMyModel{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[125] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PayloadDeleteMyModel) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PayloadDeleteMyModel) ProtoMessage() {} + +func (x *PayloadDeleteMyModel) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[125] + 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 PayloadDeleteMyModel.ProtoReflect.Descriptor instead. +func (*PayloadDeleteMyModel) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{125} +} + +func (x *PayloadDeleteMyModel) GetDeletedAt() int64 { + if x != nil { + return x.DeletedAt + } + return 0 +} + +type DeleteModelVersionReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` + ModelId string `protobuf:"bytes,2,opt,name=modelId,proto3" json:"modelId,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` +} + +func (x *DeleteModelVersionReq) Reset() { + *x = DeleteModelVersionReq{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[126] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteModelVersionReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteModelVersionReq) ProtoMessage() {} + +func (x *DeleteModelVersionReq) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[126] + 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 DeleteModelVersionReq.ProtoReflect.Descriptor instead. +func (*DeleteModelVersionReq) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{126} +} + +func (x *DeleteModelVersionReq) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *DeleteModelVersionReq) GetModelId() string { + if x != nil { + return x.ModelId + } + return "" +} + +func (x *DeleteModelVersionReq) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +type DeleteModelVersionResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + Payload *PayloadDeleteModelVersion `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` + Error *Error `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` +} + +func (x *DeleteModelVersionResp) Reset() { + *x = DeleteModelVersionResp{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[127] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteModelVersionResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteModelVersionResp) ProtoMessage() {} + +func (x *DeleteModelVersionResp) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[127] + 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 DeleteModelVersionResp.ProtoReflect.Descriptor instead. +func (*DeleteModelVersionResp) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{127} +} + +func (x *DeleteModelVersionResp) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *DeleteModelVersionResp) GetPayload() *PayloadDeleteModelVersion { + if x != nil { + return x.Payload + } + return nil +} + +func (x *DeleteModelVersionResp) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +type PayloadDeleteModelVersion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeletedAt int64 `protobuf:"varint,1,opt,name=deletedAt,proto3" json:"deletedAt,omitempty"` +} + +func (x *PayloadDeleteModelVersion) Reset() { + *x = PayloadDeleteModelVersion{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[128] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PayloadDeleteModelVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PayloadDeleteModelVersion) ProtoMessage() {} + +func (x *PayloadDeleteModelVersion) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[128] + 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 PayloadDeleteModelVersion.ProtoReflect.Descriptor instead. +func (*PayloadDeleteModelVersion) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{128} +} + +func (x *PayloadDeleteModelVersion) GetDeletedAt() int64 { + if x != nil { + return x.DeletedAt + } + return 0 +} + +type DownloadModelVersionReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` + ModelId string `protobuf:"bytes,2,opt,name=modelId,proto3" json:"modelId,omitempty"` + Version string `protobuf:"bytes,3,opt,name=version,proto3" json:"version,omitempty"` + Domain string `protobuf:"bytes,4,opt,name=domain,proto3" json:"domain,omitempty"` +} + +func (x *DownloadModelVersionReq) Reset() { + *x = DownloadModelVersionReq{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[129] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DownloadModelVersionReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DownloadModelVersionReq) ProtoMessage() {} + +func (x *DownloadModelVersionReq) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[129] + 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 DownloadModelVersionReq.ProtoReflect.Descriptor instead. +func (*DownloadModelVersionReq) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{129} +} + +func (x *DownloadModelVersionReq) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *DownloadModelVersionReq) GetModelId() string { + if x != nil { + return x.ModelId + } + return "" +} + +func (x *DownloadModelVersionReq) GetVersion() string { + if x != nil { + return x.Version + } + return "" +} + +func (x *DownloadModelVersionReq) GetDomain() string { + if x != nil { + return x.Domain + } + return "" +} + +type DownloadModelVersionResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + Payload *PayloadDownloadModelVersion `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` + Error *Error `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` +} + +func (x *DownloadModelVersionResp) Reset() { + *x = DownloadModelVersionResp{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[130] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DownloadModelVersionResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DownloadModelVersionResp) ProtoMessage() {} + +func (x *DownloadModelVersionResp) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[130] + 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 DownloadModelVersionResp.ProtoReflect.Descriptor instead. +func (*DownloadModelVersionResp) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{130} +} + +func (x *DownloadModelVersionResp) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *DownloadModelVersionResp) GetPayload() *PayloadDownloadModelVersion { + if x != nil { + return x.Payload + } + return nil +} + +func (x *DownloadModelVersionResp) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +type PayloadDownloadModelVersion struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DownloadUrl string `protobuf:"bytes,1,opt,name=downloadUrl,proto3" json:"downloadUrl,omitempty"` +} + +func (x *PayloadDownloadModelVersion) Reset() { + *x = PayloadDownloadModelVersion{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[131] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PayloadDownloadModelVersion) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PayloadDownloadModelVersion) ProtoMessage() {} + +func (x *PayloadDownloadModelVersion) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[131] + 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 PayloadDownloadModelVersion.ProtoReflect.Descriptor instead. +func (*PayloadDownloadModelVersion) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{131} +} + +func (x *PayloadDownloadModelVersion) GetDownloadUrl() string { + if x != nil { + return x.DownloadUrl + } + return "" +} + +type GetMyModelListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Platform string `protobuf:"bytes,1,opt,name=platform,proto3" json:"platform,omitempty"` + PageIndex int32 `protobuf:"varint,2,opt,name=pageIndex,proto3" json:"pageIndex,omitempty"` + PageSize int32 `protobuf:"varint,3,opt,name=pageSize,proto3" json:"pageSize,omitempty"` +} + +func (x *GetMyModelListReq) Reset() { + *x = GetMyModelListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[132] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMyModelListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMyModelListReq) ProtoMessage() {} + +func (x *GetMyModelListReq) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[132] + 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 GetMyModelListReq.ProtoReflect.Descriptor instead. +func (*GetMyModelListReq) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{132} +} + +func (x *GetMyModelListReq) GetPlatform() string { + if x != nil { + return x.Platform + } + return "" +} + +func (x *GetMyModelListReq) GetPageIndex() int32 { + if x != nil { + return x.PageIndex + } + return 0 +} + +func (x *GetMyModelListReq) GetPageSize() int32 { + if x != nil { + return x.PageSize + } + return 0 +} + +type GetMyModelListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Success bool `protobuf:"varint,1,opt,name=success,proto3" json:"success,omitempty"` + Payload *PayloadGetMyModelList `protobuf:"bytes,2,opt,name=payload,proto3" json:"payload,omitempty"` + Error *Error `protobuf:"bytes,3,opt,name=error,proto3" json:"error,omitempty"` +} + +func (x *GetMyModelListResp) Reset() { + *x = GetMyModelListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[133] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMyModelListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMyModelListResp) ProtoMessage() {} + +func (x *GetMyModelListResp) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[133] + 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 GetMyModelListResp.ProtoReflect.Descriptor instead. +func (*GetMyModelListResp) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{133} +} + +func (x *GetMyModelListResp) GetSuccess() bool { + if x != nil { + return x.Success + } + return false +} + +func (x *GetMyModelListResp) GetPayload() *PayloadGetMyModelList { + if x != nil { + return x.Payload + } + return nil +} + +func (x *GetMyModelListResp) GetError() *Error { + if x != nil { + return x.Error + } + return nil +} + +type PayloadGetMyModelList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + TotalSize int32 `protobuf:"varint,1,opt,name=totalSize,proto3" json:"totalSize,omitempty"` + Models []*Model `protobuf:"bytes,2,rep,name=models,proto3" json:"models,omitempty"` +} + +func (x *PayloadGetMyModelList) Reset() { + *x = PayloadGetMyModelList{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[134] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *PayloadGetMyModelList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*PayloadGetMyModelList) ProtoMessage() {} + +func (x *PayloadGetMyModelList) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[134] + 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 PayloadGetMyModelList.ProtoReflect.Descriptor instead. +func (*PayloadGetMyModelList) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{134} +} + +func (x *PayloadGetMyModelList) GetTotalSize() int32 { + if x != nil { + return x.TotalSize + } + return 0 +} + +func (x *PayloadGetMyModelList) GetModels() []*Model { + if x != nil { + return x.Models + } + return nil +} + +type Model struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AlgorithmName string `protobuf:"bytes,1,opt,name=algorithmName,proto3" json:"algorithmName,omitempty"` + AlgorithmVersion string `protobuf:"bytes,2,opt,name=algorithmVersion,proto3" json:"algorithmVersion,omitempty"` + CreatedAt int64 `protobuf:"varint,3,opt,name=createdAt,proto3" json:"createdAt,omitempty"` + FrameWorkId string `protobuf:"bytes,4,opt,name=frameWorkId,proto3" json:"frameWorkId,omitempty"` + FrameWorkName string `protobuf:"bytes,5,opt,name=frameWorkName,proto3" json:"frameWorkName,omitempty"` + LatestVersion string `protobuf:"bytes,6,opt,name=latestVersion,proto3" json:"latestVersion,omitempty"` + ModelDescript string `protobuf:"bytes,7,opt,name=modelDescript,proto3" json:"modelDescript,omitempty"` + ModelId string `protobuf:"bytes,8,opt,name=modelId,proto3" json:"modelId,omitempty"` + ModelName string `protobuf:"bytes,9,opt,name=modelName,proto3" json:"modelName,omitempty"` + SpaceId string `protobuf:"bytes,10,opt,name=spaceId,proto3" json:"spaceId,omitempty"` + SpaceName string `protobuf:"bytes,11,opt,name=spaceName,proto3" json:"spaceName,omitempty"` + UserName string `protobuf:"bytes,12,opt,name=userName,proto3" json:"userName,omitempty"` +} + +func (x *Model) Reset() { + *x = Model{} + if protoimpl.UnsafeEnabled { + mi := &file_octopus_proto_msgTypes[135] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *Model) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Model) ProtoMessage() {} + +func (x *Model) ProtoReflect() protoreflect.Message { + mi := &file_octopus_proto_msgTypes[135] + 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 Model.ProtoReflect.Descriptor instead. +func (*Model) Descriptor() ([]byte, []int) { + return file_octopus_proto_rawDescGZIP(), []int{135} +} + +func (x *Model) GetAlgorithmName() string { + if x != nil { + return x.AlgorithmName + } + return "" +} + +func (x *Model) GetAlgorithmVersion() string { + if x != nil { + return x.AlgorithmVersion + } + return "" +} + +func (x *Model) GetCreatedAt() int64 { + if x != nil { + return x.CreatedAt + } + return 0 +} + +func (x *Model) GetFrameWorkId() string { + if x != nil { + return x.FrameWorkId + } + return "" +} + +func (x *Model) GetFrameWorkName() string { + if x != nil { + return x.FrameWorkName + } + return "" +} + +func (x *Model) GetLatestVersion() string { + if x != nil { + return x.LatestVersion + } + return "" +} + +func (x *Model) GetModelDescript() string { + if x != nil { + return x.ModelDescript + } + return "" +} + +func (x *Model) GetModelId() string { + if x != nil { + return x.ModelId + } + return "" +} + +func (x *Model) GetModelName() string { + if x != nil { + return x.ModelName + } + return "" +} + +func (x *Model) GetSpaceId() string { + if x != nil { + return x.SpaceId + } + return "" +} + +func (x *Model) GetSpaceName() string { + if x != nil { + return x.SpaceName + } + return "" +} + +func (x *Model) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + // *****************TrainJobService Start************************ type GetTrainJobListReq struct { state protoimpl.MessageState @@ -7512,7 +8671,7 @@ type GetTrainJobListReq struct { func (x *GetTrainJobListReq) Reset() { *x = GetTrainJobListReq{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[118] + mi := &file_octopus_proto_msgTypes[136] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7525,7 +8684,7 @@ func (x *GetTrainJobListReq) String() string { func (*GetTrainJobListReq) ProtoMessage() {} func (x *GetTrainJobListReq) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[118] + mi := &file_octopus_proto_msgTypes[136] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7538,7 +8697,7 @@ func (x *GetTrainJobListReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTrainJobListReq.ProtoReflect.Descriptor instead. func (*GetTrainJobListReq) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{118} + return file_octopus_proto_rawDescGZIP(), []int{136} } func (x *GetTrainJobListReq) GetPlatform() string { @@ -7575,7 +8734,7 @@ type GetTrainJobListResp struct { func (x *GetTrainJobListResp) Reset() { *x = GetTrainJobListResp{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[119] + mi := &file_octopus_proto_msgTypes[137] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7588,7 +8747,7 @@ func (x *GetTrainJobListResp) String() string { func (*GetTrainJobListResp) ProtoMessage() {} func (x *GetTrainJobListResp) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[119] + mi := &file_octopus_proto_msgTypes[137] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7601,7 +8760,7 @@ func (x *GetTrainJobListResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetTrainJobListResp.ProtoReflect.Descriptor instead. func (*GetTrainJobListResp) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{119} + return file_octopus_proto_rawDescGZIP(), []int{137} } func (x *GetTrainJobListResp) GetSuccess() bool { @@ -7637,7 +8796,7 @@ type PayloadGetTrainJobList struct { func (x *PayloadGetTrainJobList) Reset() { *x = PayloadGetTrainJobList{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[120] + mi := &file_octopus_proto_msgTypes[138] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7650,7 +8809,7 @@ func (x *PayloadGetTrainJobList) String() string { func (*PayloadGetTrainJobList) ProtoMessage() {} func (x *PayloadGetTrainJobList) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[120] + mi := &file_octopus_proto_msgTypes[138] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7663,7 +8822,7 @@ func (x *PayloadGetTrainJobList) ProtoReflect() protoreflect.Message { // Deprecated: Use PayloadGetTrainJobList.ProtoReflect.Descriptor instead. func (*PayloadGetTrainJobList) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{120} + return file_octopus_proto_rawDescGZIP(), []int{138} } func (x *PayloadGetTrainJobList) GetTotalSize() int32 { @@ -7714,7 +8873,7 @@ type TrainJob struct { func (x *TrainJob) Reset() { *x = TrainJob{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[121] + mi := &file_octopus_proto_msgTypes[139] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7727,7 +8886,7 @@ func (x *TrainJob) String() string { func (*TrainJob) ProtoMessage() {} func (x *TrainJob) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[121] + mi := &file_octopus_proto_msgTypes[139] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7740,7 +8899,7 @@ func (x *TrainJob) ProtoReflect() protoreflect.Message { // Deprecated: Use TrainJob.ProtoReflect.Descriptor instead. func (*TrainJob) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{121} + return file_octopus_proto_rawDescGZIP(), []int{139} } func (x *TrainJob) GetAlgorithmId() string { @@ -7923,7 +9082,7 @@ type CreateTrainJobReq struct { func (x *CreateTrainJobReq) Reset() { *x = CreateTrainJobReq{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[122] + mi := &file_octopus_proto_msgTypes[140] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7936,7 +9095,7 @@ func (x *CreateTrainJobReq) String() string { func (*CreateTrainJobReq) ProtoMessage() {} func (x *CreateTrainJobReq) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[122] + mi := &file_octopus_proto_msgTypes[140] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -7949,7 +9108,7 @@ func (x *CreateTrainJobReq) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateTrainJobReq.ProtoReflect.Descriptor instead. func (*CreateTrainJobReq) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{122} + return file_octopus_proto_rawDescGZIP(), []int{140} } func (x *CreateTrainJobReq) GetPlatform() string { @@ -7979,7 +9138,7 @@ type CreateTrainJobResp struct { func (x *CreateTrainJobResp) Reset() { *x = CreateTrainJobResp{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[123] + mi := &file_octopus_proto_msgTypes[141] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -7992,7 +9151,7 @@ func (x *CreateTrainJobResp) String() string { func (*CreateTrainJobResp) ProtoMessage() {} func (x *CreateTrainJobResp) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[123] + mi := &file_octopus_proto_msgTypes[141] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8005,7 +9164,7 @@ func (x *CreateTrainJobResp) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateTrainJobResp.ProtoReflect.Descriptor instead. func (*CreateTrainJobResp) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{123} + return file_octopus_proto_rawDescGZIP(), []int{141} } func (x *CreateTrainJobResp) GetSuccess() bool { @@ -8051,7 +9210,7 @@ type CreateTrainJobParam struct { func (x *CreateTrainJobParam) Reset() { *x = CreateTrainJobParam{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[124] + mi := &file_octopus_proto_msgTypes[142] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8064,7 +9223,7 @@ func (x *CreateTrainJobParam) String() string { func (*CreateTrainJobParam) ProtoMessage() {} func (x *CreateTrainJobParam) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[124] + mi := &file_octopus_proto_msgTypes[142] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8077,7 +9236,7 @@ func (x *CreateTrainJobParam) ProtoReflect() protoreflect.Message { // Deprecated: Use CreateTrainJobParam.ProtoReflect.Descriptor instead. func (*CreateTrainJobParam) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{124} + return file_octopus_proto_rawDescGZIP(), []int{142} } func (x *CreateTrainJobParam) GetAlgorithmId() string { @@ -8187,7 +9346,7 @@ type Config struct { func (x *Config) Reset() { *x = Config{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[125] + mi := &file_octopus_proto_msgTypes[143] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8200,7 +9359,7 @@ func (x *Config) String() string { func (*Config) ProtoMessage() {} func (x *Config) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[125] + mi := &file_octopus_proto_msgTypes[143] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8213,7 +9372,7 @@ func (x *Config) ProtoReflect() protoreflect.Message { // Deprecated: Use Config.ProtoReflect.Descriptor instead. func (*Config) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{125} + return file_octopus_proto_rawDescGZIP(), []int{143} } func (x *Config) GetCommand() string { @@ -8320,7 +9479,7 @@ type Envs struct { func (x *Envs) Reset() { *x = Envs{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[126] + mi := &file_octopus_proto_msgTypes[144] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8333,7 +9492,7 @@ func (x *Envs) String() string { func (*Envs) ProtoMessage() {} func (x *Envs) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[126] + mi := &file_octopus_proto_msgTypes[144] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8346,7 +9505,7 @@ func (x *Envs) ProtoReflect() protoreflect.Message { // Deprecated: Use Envs.ProtoReflect.Descriptor instead. func (*Envs) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{126} + return file_octopus_proto_rawDescGZIP(), []int{144} } func (x *Envs) GetAdditionalProp1() string { @@ -8382,7 +9541,7 @@ type Parameters struct { func (x *Parameters) Reset() { *x = Parameters{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[127] + mi := &file_octopus_proto_msgTypes[145] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8395,7 +9554,7 @@ func (x *Parameters) String() string { func (*Parameters) ProtoMessage() {} func (x *Parameters) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[127] + mi := &file_octopus_proto_msgTypes[145] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8408,7 +9567,7 @@ func (x *Parameters) ProtoReflect() protoreflect.Message { // Deprecated: Use Parameters.ProtoReflect.Descriptor instead. func (*Parameters) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{127} + return file_octopus_proto_rawDescGZIP(), []int{145} } func (x *Parameters) GetKey() string { @@ -8437,7 +9596,7 @@ type ReplicaStates struct { func (x *ReplicaStates) Reset() { *x = ReplicaStates{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[128] + mi := &file_octopus_proto_msgTypes[146] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8450,7 +9609,7 @@ func (x *ReplicaStates) String() string { func (*ReplicaStates) ProtoMessage() {} func (x *ReplicaStates) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[128] + mi := &file_octopus_proto_msgTypes[146] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8463,7 +9622,7 @@ func (x *ReplicaStates) ProtoReflect() protoreflect.Message { // Deprecated: Use ReplicaStates.ProtoReflect.Descriptor instead. func (*ReplicaStates) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{128} + return file_octopus_proto_rawDescGZIP(), []int{146} } func (x *ReplicaStates) GetKey() string { @@ -8494,7 +9653,7 @@ type Mounts struct { func (x *Mounts) Reset() { *x = Mounts{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[129] + mi := &file_octopus_proto_msgTypes[147] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8507,7 +9666,7 @@ func (x *Mounts) String() string { func (*Mounts) ProtoMessage() {} func (x *Mounts) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[129] + mi := &file_octopus_proto_msgTypes[147] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8520,7 +9679,7 @@ func (x *Mounts) ProtoReflect() protoreflect.Message { // Deprecated: Use Mounts.ProtoReflect.Descriptor instead. func (*Mounts) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{129} + return file_octopus_proto_rawDescGZIP(), []int{147} } func (x *Mounts) GetContainerPath() string { @@ -8562,7 +9721,7 @@ type PayloadCreateTrainJob struct { func (x *PayloadCreateTrainJob) Reset() { *x = PayloadCreateTrainJob{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[130] + mi := &file_octopus_proto_msgTypes[148] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8575,7 +9734,7 @@ func (x *PayloadCreateTrainJob) String() string { func (*PayloadCreateTrainJob) ProtoMessage() {} func (x *PayloadCreateTrainJob) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[130] + mi := &file_octopus_proto_msgTypes[148] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8588,7 +9747,7 @@ func (x *PayloadCreateTrainJob) ProtoReflect() protoreflect.Message { // Deprecated: Use PayloadCreateTrainJob.ProtoReflect.Descriptor instead. func (*PayloadCreateTrainJob) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{130} + return file_octopus_proto_rawDescGZIP(), []int{148} } func (x *PayloadCreateTrainJob) GetJobId() string { @@ -8610,7 +9769,7 @@ type Nfs struct { func (x *Nfs) Reset() { *x = Nfs{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[131] + mi := &file_octopus_proto_msgTypes[149] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8623,7 +9782,7 @@ func (x *Nfs) String() string { func (*Nfs) ProtoMessage() {} func (x *Nfs) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[131] + mi := &file_octopus_proto_msgTypes[149] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8636,7 +9795,7 @@ func (x *Nfs) ProtoReflect() protoreflect.Message { // Deprecated: Use Nfs.ProtoReflect.Descriptor instead. func (*Nfs) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{131} + return file_octopus_proto_rawDescGZIP(), []int{149} } func (x *Nfs) GetPath() string { @@ -8665,7 +9824,7 @@ type TrainJobOctopus struct { func (x *TrainJobOctopus) Reset() { *x = TrainJobOctopus{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[132] + mi := &file_octopus_proto_msgTypes[150] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8678,7 +9837,7 @@ func (x *TrainJobOctopus) String() string { func (*TrainJobOctopus) ProtoMessage() {} func (x *TrainJobOctopus) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[132] + mi := &file_octopus_proto_msgTypes[150] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8691,7 +9850,7 @@ func (x *TrainJobOctopus) ProtoReflect() protoreflect.Message { // Deprecated: Use TrainJobOctopus.ProtoReflect.Descriptor instead. func (*TrainJobOctopus) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{132} + return file_octopus_proto_rawDescGZIP(), []int{150} } func (x *TrainJobOctopus) GetBucket() string { @@ -8722,7 +9881,7 @@ type Error struct { func (x *Error) Reset() { *x = Error{} if protoimpl.UnsafeEnabled { - mi := &file_octopus_proto_msgTypes[133] + mi := &file_octopus_proto_msgTypes[151] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -8735,7 +9894,7 @@ func (x *Error) String() string { func (*Error) ProtoMessage() {} func (x *Error) ProtoReflect() protoreflect.Message { - mi := &file_octopus_proto_msgTypes[133] + mi := &file_octopus_proto_msgTypes[151] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -8748,7 +9907,7 @@ func (x *Error) ProtoReflect() protoreflect.Message { // Deprecated: Use Error.ProtoReflect.Descriptor instead. func (*Error) Descriptor() ([]byte, []int) { - return file_octopus_proto_rawDescGZIP(), []int{133} + return file_octopus_proto_rawDescGZIP(), []int{151} } func (x *Error) GetCode() int32 { @@ -9715,371 +10874,546 @@ var file_octopus_proto_rawDesc = []byte{ 0x64, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x22, 0x6a, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 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, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x64, 0x65, - 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x90, 0x01, - 0x0a, 0x13, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, - 0x39, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, - 0x61, 0x64, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, - 0x70, 0x75, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x22, 0x67, 0x0a, 0x16, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x47, 0x65, 0x74, 0x54, 0x72, - 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, - 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, - 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x69, - 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x63, - 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x09, - 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x22, 0xef, 0x05, 0x0a, 0x08, 0x54, 0x72, - 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6c, 0x67, - 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x67, 0x6f, - 0x72, 0x69, 0x74, 0x68, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, - 0x0a, 0x10, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, - 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x27, 0x0a, 0x06, - 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, - 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, - 0x41, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x64, 0x41, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x49, 0x64, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x49, - 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x61, 0x74, - 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, - 0x65, 0x73, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, - 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, - 0x18, 0x0a, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, - 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, - 0x61, 0x67, 0x65, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x55, 0x72, 0x6c, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x55, 0x72, 0x6c, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, - 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, - 0x6c, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x53, 0x65, 0x63, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x53, 0x65, 0x63, 0x12, 0x1c, 0x0a, - 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, - 0x18, 0x16, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, - 0x74, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x6f, 0x72, - 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x11, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, - 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, 0x12, 0x34, 0x0a, 0x06, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, - 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, - 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x22, 0x8e, 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, - 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, - 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x24, 0x0a, + 0x74, 0x22, 0x88, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 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, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x65, + 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, + 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, + 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x98, 0x01, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, + 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x12, 0x3d, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x23, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x50, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x77, 0x0a, 0x1a, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, + 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, + 0x69, 0x7a, 0x65, 0x12, 0x3b, 0x0a, 0x0d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6f, 0x63, 0x74, + 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x0d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x73, + 0x22, 0x68, 0x0a, 0x0c, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x08, 0x69, 0x73, 0x53, 0x68, 0x61, 0x72, 0x65, 0x64, 0x12, 0x3c, 0x0a, 0x0d, + 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x0d, 0x76, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0x9d, 0x01, 0x0a, 0x0d, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, 0x65, + 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x69, 0x6c, 0x65, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0x48, 0x0a, 0x10, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 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, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, + 0x64, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x49, 0x64, 0x22, 0x8c, 0x01, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, + 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x12, 0x37, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x79, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x22, 0xa3, 0x03, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, - 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x61, - 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x49, 0x64, 0x12, 0x2a, 0x0a, - 0x10, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x06, 0x63, 0x6f, 0x6e, - 0x66, 0x69, 0x67, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, - 0x70, 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, - 0x69, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x49, 0x64, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x49, 0x64, - 0x12, 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, - 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, - 0x69, 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, - 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, - 0x72, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, - 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, - 0x74, 0x65, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, - 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x06, 0x6d, 0x6f, 0x75, 0x6e, - 0x74, 0x73, 0x18, 0x0a, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, - 0x75, 0x73, 0x2e, 0x4d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, - 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x98, 0x04, 0x0a, 0x06, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x21, - 0x0a, 0x04, 0x65, 0x6e, 0x76, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, - 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x76, 0x73, 0x52, 0x04, 0x65, 0x6e, 0x76, - 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x69, 0x73, 0x4d, 0x61, 0x69, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x69, 0x73, 0x4d, 0x61, 0x69, 0x6e, 0x52, 0x6f, 0x6c, - 0x65, 0x12, 0x2e, 0x0a, 0x12, 0x6d, 0x69, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x54, 0x61, - 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x6d, - 0x69, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, - 0x74, 0x12, 0x34, 0x0a, 0x15, 0x6d, 0x69, 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, - 0x64, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x15, 0x6d, 0x69, 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x54, 0x61, - 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, - 0x74, 0x65, 0x72, 0x73, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, - 0x12, 0x3c, 0x0a, 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, - 0x73, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, - 0x0d, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x26, - 0x0a, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x49, 0x64, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, - 0x53, 0x70, 0x65, 0x63, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, - 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, - 0x65, 0x63, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, - 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, 0x72, 0x69, 0x63, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x22, 0x84, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x76, 0x73, 0x12, 0x28, 0x0a, - 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x31, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, - 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x31, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, - 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, - 0x32, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, - 0x72, 0x6f, 0x70, 0x33, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, - 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x33, 0x22, 0x34, 0x0a, 0x0a, 0x50, - 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, - 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, - 0x65, 0x22, 0x37, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, - 0x65, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x06, 0x4d, - 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, - 0x65, 0x72, 0x50, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, - 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x03, 0x6e, - 0x66, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, - 0x75, 0x73, 0x2e, 0x4e, 0x66, 0x73, 0x52, 0x03, 0x6e, 0x66, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x6f, - 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, - 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x4f, - 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x52, 0x07, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x12, - 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x08, 0x52, 0x08, 0x72, 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x2d, 0x0a, 0x15, 0x50, - 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, - 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x31, 0x0a, 0x03, 0x4e, 0x66, - 0x73, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0x41, 0x0a, - 0x0f, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x4f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, - 0x63, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, - 0x22, 0x6f, 0x0a, 0x05, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x73, 0x75, 0x62, 0x63, 0x6f, 0x64, 0x65, 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, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x32, 0xef, 0x15, 0x0a, 0x07, 0x4f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x12, 0x3a, 0x0a, - 0x11, 0x47, 0x65, 0x74, 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, - 0x65, 0x72, 0x12, 0x14, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x72, 0x65, 0x73, - 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, - 0x75, 0x73, 0x2e, 0x63, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0e, 0x47, 0x65, 0x74, - 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x6f, 0x63, - 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, - 0x71, 0x1a, 0x0f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x67, 0x69, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, - 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, - 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x10, 0x47, 0x65, 0x74, - 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, - 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6f, 0x63, - 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0c, 0x47, 0x65, - 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x18, 0x2e, 0x6f, 0x63, 0x74, - 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x5e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, - 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x41, - 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x63, - 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, - 0x68, 0x6d, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x6a, 0x0a, 0x19, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x46, - 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x6f, - 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x26, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, - 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x11, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x12, 0x1d, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x65, 0x71, 0x1a, - 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x52, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x12, 0x1d, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, - 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x11, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, - 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x1d, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, - 0x75, 0x73, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, - 0x73, 0x2e, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, - 0x74, 0x68, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x1b, 0x2e, 0x6f, 0x63, 0x74, - 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x6c, 0x67, 0x6f, 0x72, - 0x69, 0x74, 0x68, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, - 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, - 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x16, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, - 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, - 0x22, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, - 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, - 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, - 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x43, 0x6f, 0x6e, - 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4d, - 0x79, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x6f, - 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x44, 0x61, 0x74, 0x61, - 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6f, 0x63, 0x74, - 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, - 0x74, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x21, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, - 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, - 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0d, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x12, 0x19, 0x2e, 0x6f, 0x63, 0x74, - 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x46, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, - 0x65, 0x74, 0x12, 0x19, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, - 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, - 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x6c, - 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x12, 0x19, 0x2e, 0x6f, 0x63, 0x74, - 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, - 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, - 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x5b, 0x0a, 0x14, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, - 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x20, 0x2e, 0x6f, 0x63, 0x74, 0x6f, - 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, - 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x63, - 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5b, - 0x0a, 0x14, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, - 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, - 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5b, 0x0a, 0x14, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, - 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, - 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x44, - 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x1f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, - 0x61, 0x73, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x20, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, - 0x74, 0x61, 0x73, 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x55, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, - 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x1a, 0x1f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, - 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, - 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x6f, - 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, - 0x6f, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6f, 0x63, 0x74, 0x6f, - 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x17, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, - 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, - 0x18, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, - 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x0e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x1a, 0x2e, 0x6f, 0x63, - 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, - 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, - 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, - 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x1a, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, - 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x46, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, - 0x12, 0x19, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, - 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x6f, 0x63, - 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, - 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x70, 0x4e, - 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x18, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, - 0x73, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, - 0x71, 0x1a, 0x19, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x6f, 0x70, - 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x10, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x1c, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, - 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, - 0x0b, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x17, 0x2e, 0x6f, - 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x40, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x17, - 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, - 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, - 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x40, 0x0a, 0x0b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, - 0x12, 0x17, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, - 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x6f, 0x63, 0x74, 0x6f, - 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x12, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, - 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, - 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, - 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x0e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x1a, 0x2e, 0x6f, - 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, - 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, + 0x72, 0x6f, 0x72, 0x22, 0x34, 0x0a, 0x14, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x1c, 0x0a, 0x09, 0x64, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x67, 0x0a, 0x15, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 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, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x22, 0x96, 0x01, 0x0a, 0x16, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, + 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x3c, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, + 0x75, 0x73, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x70, 0x61, + 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x39, 0x0a, 0x19, 0x50, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x64, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x64, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x17, 0x44, 0x6f, 0x77, 0x6e, 0x6c, + 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x71, 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, 0x12, 0x18, + 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x64, 0x6f, 0x6d, 0x61, 0x69, 0x6e, 0x22, 0x9a, 0x01, 0x0a, 0x18, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x12, 0x3e, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x50, 0x61, 0x79, + 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, + 0x64, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, + 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x3f, 0x0a, 0x1b, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, + 0x61, 0x64, 0x55, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x55, 0x72, 0x6c, 0x22, 0x69, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, + 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 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, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x67, + 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, + 0x67, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, + 0x69, 0x7a, 0x65, 0x22, 0x8e, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, + 0x63, 0x65, 0x73, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x6f, 0x64, 0x65, + 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x24, + 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, + 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x22, 0x5d, 0x0a, 0x15, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x47, + 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, + 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x26, 0x0a, 0x06, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x63, + 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x06, 0x6d, 0x6f, 0x64, + 0x65, 0x6c, 0x73, 0x22, 0x97, 0x03, 0x0a, 0x05, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x24, 0x0a, + 0x0d, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x20, 0x0a, + 0x0b, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x49, 0x64, 0x12, + 0x24, 0x0a, 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x72, 0x61, 0x6d, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x6c, 0x61, 0x74, 0x65, 0x73, 0x74, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6c, 0x61, + 0x74, 0x65, 0x73, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, 0x74, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x44, 0x65, 0x73, 0x63, 0x72, 0x69, 0x70, + 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x6d, + 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x6d, 0x6f, 0x64, 0x65, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x70, 0x61, 0x63, + 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x73, 0x70, 0x61, 0x63, 0x65, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x6a, 0x0a, + 0x12, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 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, 0x12, + 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x67, 0x65, 0x49, 0x6e, 0x64, 0x65, 0x78, 0x12, 0x1a, 0x0a, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x08, 0x70, 0x61, 0x67, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x22, 0x90, 0x01, 0x0a, 0x13, 0x47, 0x65, + 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x39, 0x0a, 0x07, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x6f, + 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x47, 0x65, + 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x07, 0x70, + 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, 0x67, 0x0a, 0x16, + 0x50, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, + 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x53, + 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x74, 0x6f, 0x74, 0x61, 0x6c, + 0x53, 0x69, 0x7a, 0x65, 0x12, 0x2f, 0x0a, 0x09, 0x74, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, + 0x73, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x09, 0x74, 0x72, 0x61, 0x69, + 0x6e, 0x4a, 0x6f, 0x62, 0x73, 0x22, 0xef, 0x05, 0x0a, 0x08, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, + 0x6f, 0x62, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, + 0x68, 0x6d, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, + 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, + 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x63, 0x6f, 0x6d, + 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x27, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, + 0x75, 0x73, 0x2e, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, + 0x1c, 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x26, 0x0a, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, + 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x69, + 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x69, + 0x6d, 0x61, 0x67, 0x65, 0x49, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6d, + 0x61, 0x67, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, + 0x22, 0x0a, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x64, 0x18, 0x10, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x69, + 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, + 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x18, 0x12, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x75, 0x6e, 0x53, 0x65, 0x63, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x06, 0x72, 0x75, 0x6e, 0x53, 0x65, 0x63, 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1c, 0x0a, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x18, 0x16, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x09, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x12, 0x16, 0x0a, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, + 0x63, 0x65, 0x49, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x6f, 0x72, 0x6b, + 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x22, 0x65, 0x0a, 0x11, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 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, 0x12, 0x34, 0x0a, 0x06, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, - 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, - 0x6e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, - 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, + 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x52, 0x06, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x22, 0x8e, + 0x01, 0x0a, 0x12, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, + 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, + 0x38, 0x0a, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, + 0x52, 0x07, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x12, 0x24, 0x0a, 0x05, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, + 0x75, 0x73, 0x2e, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x22, + 0xa3, 0x03, 0x0a, 0x13, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, + 0x6f, 0x62, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x61, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x61, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x61, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x10, 0x61, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x56, 0x65, + 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, + 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1c, + 0x0a, 0x09, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, + 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x64, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x18, 0x0a, 0x07, 0x69, 0x6d, 0x61, 0x67, + 0x65, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x69, 0x6d, 0x61, 0x67, 0x65, + 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x24, + 0x0a, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, 0x75, 0x74, 0x65, 0x64, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x73, 0x44, 0x69, 0x73, 0x74, 0x72, 0x69, 0x62, + 0x75, 0x74, 0x65, 0x64, 0x12, 0x27, 0x0a, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x18, 0x0a, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x4d, + 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x52, 0x06, 0x6d, 0x6f, 0x75, 0x6e, 0x74, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x50, 0x6f, 0x6f, + 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x50, 0x6f, 0x6f, 0x6c, 0x22, 0x98, 0x04, 0x0a, 0x06, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, + 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x21, 0x0a, 0x04, 0x65, 0x6e, + 0x76, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, + 0x75, 0x73, 0x2e, 0x45, 0x6e, 0x76, 0x73, 0x52, 0x04, 0x65, 0x6e, 0x76, 0x73, 0x12, 0x1e, 0x0a, + 0x0a, 0x69, 0x73, 0x4d, 0x61, 0x69, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x08, 0x52, 0x0a, 0x69, 0x73, 0x4d, 0x61, 0x69, 0x6e, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x2e, 0x0a, + 0x12, 0x6d, 0x69, 0x6e, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x6d, 0x69, 0x6e, 0x46, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, 0x0a, + 0x15, 0x6d, 0x69, 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x54, 0x61, 0x73, + 0x6b, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x15, 0x6d, 0x69, + 0x6e, 0x53, 0x75, 0x63, 0x63, 0x65, 0x65, 0x64, 0x65, 0x64, 0x54, 0x61, 0x73, 0x6b, 0x43, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x33, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x18, 0x07, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x6f, 0x63, + 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, + 0x52, 0x0a, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x3c, 0x0a, 0x0d, + 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x18, 0x08, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x52, 0x65, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x52, 0x0d, 0x72, 0x65, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x26, 0x0a, 0x0e, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, + 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x10, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, + 0x65, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x72, 0x65, + 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2c, + 0x0a, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, 0x72, + 0x69, 0x63, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x11, 0x72, 0x65, 0x73, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x53, 0x70, 0x65, 0x63, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x22, 0x0a, 0x0c, + 0x73, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x73, 0x75, 0x62, 0x54, 0x61, 0x73, 0x6b, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x74, 0x61, 0x73, 0x6b, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x22, 0x84, 0x01, 0x0a, 0x04, 0x45, 0x6e, 0x76, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x64, 0x64, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x31, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, + 0x6f, 0x70, 0x31, 0x12, 0x28, 0x0a, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, + 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x32, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x64, + 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x32, 0x12, 0x28, 0x0a, + 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x33, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x61, 0x64, 0x64, 0x69, 0x74, 0x69, 0x6f, 0x6e, + 0x61, 0x6c, 0x50, 0x72, 0x6f, 0x70, 0x33, 0x22, 0x34, 0x0a, 0x0a, 0x50, 0x61, 0x72, 0x61, 0x6d, + 0x65, 0x74, 0x65, 0x72, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x37, 0x0a, + 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x53, 0x74, 0x61, 0x74, 0x65, 0x73, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x22, 0x9e, 0x01, 0x0a, 0x06, 0x4d, 0x6f, 0x75, 0x6e, 0x74, + 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x50, 0x61, + 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, + 0x6e, 0x65, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x03, 0x6e, 0x66, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0c, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x4e, + 0x66, 0x73, 0x52, 0x03, 0x6e, 0x66, 0x73, 0x12, 0x32, 0x0a, 0x07, 0x6f, 0x63, 0x74, 0x6f, 0x70, + 0x75, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, + 0x75, 0x73, 0x2e, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x4f, 0x63, 0x74, 0x6f, 0x70, + 0x75, 0x73, 0x52, 0x07, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, + 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, + 0x65, 0x61, 0x64, 0x4f, 0x6e, 0x6c, 0x79, 0x22, 0x2d, 0x0a, 0x15, 0x50, 0x61, 0x79, 0x6c, 0x6f, + 0x61, 0x64, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, + 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x31, 0x0a, 0x03, 0x4e, 0x66, 0x73, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x22, 0x41, 0x0a, 0x0f, 0x54, 0x72, 0x61, + 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x4f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x12, 0x16, 0x0a, 0x06, + 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, + 0x63, 0x6b, 0x65, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6f, 0x62, 0x6a, 0x65, 0x63, 0x74, 0x22, 0x6f, 0x0a, 0x05, + 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x62, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x73, 0x75, 0x62, 0x63, + 0x6f, 0x64, 0x65, 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, 0x12, 0x1e, 0x0a, + 0x0a, 0x73, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x32, 0x90, 0x19, + 0x0a, 0x07, 0x4f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x12, 0x3a, 0x0a, 0x11, 0x47, 0x65, 0x74, + 0x43, 0x6f, 0x6d, 0x70, 0x75, 0x74, 0x69, 0x6e, 0x67, 0x50, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x14, + 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x63, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x47, 0x65, 0x6e, 0x65, + 0x72, 0x61, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, + 0x73, 0x2e, 0x72, 0x65, 0x73, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x0f, 0x2e, + 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x67, 0x69, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, + 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x6f, 0x63, 0x74, 0x6f, + 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, + 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x18, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x65, 0x71, + 0x1a, 0x19, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, 0x0a, 0x15, 0x47, + 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x41, 0x70, 0x70, 0x6c, 0x79, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, + 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x41, 0x70, + 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x6a, 0x0a, 0x19, 0x47, + 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x46, 0x72, 0x61, 0x6d, 0x65, + 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x25, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, + 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x46, + 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x26, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x46, 0x72, 0x61, 0x6d, 0x65, 0x77, 0x6f, 0x72, 0x6b, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x11, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x1d, 0x2e, 0x6f, + 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x79, 0x41, + 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6f, 0x63, + 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x79, 0x41, 0x6c, + 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x52, 0x0a, 0x11, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x12, 0x1d, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x65, 0x71, 0x1a, + 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x4d, 0x79, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x52, 0x0a, 0x11, 0x44, 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x12, 0x1d, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x6c, 0x67, + 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x12, 0x1b, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, + 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, + 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, + 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x61, 0x0a, 0x16, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x6c, 0x67, 0x6f, 0x72, + 0x69, 0x74, 0x68, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x22, 0x2e, 0x6f, 0x63, + 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x41, 0x6c, 0x67, 0x6f, + 0x72, 0x69, 0x74, 0x68, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x1a, + 0x23, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, + 0x41, 0x6c, 0x67, 0x6f, 0x72, 0x69, 0x74, 0x68, 0x6d, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x44, 0x61, 0x74, + 0x61, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, + 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, + 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5e, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x73, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, + 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, + 0x73, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x22, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x44, + 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0d, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x12, 0x19, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1a, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, + 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x12, 0x19, + 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x6f, 0x63, 0x74, 0x6f, + 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0d, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, + 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x12, 0x19, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, + 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1a, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, + 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5b, 0x0a, + 0x14, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x20, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x43, 0x6f, 0x6e, + 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, + 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x43, + 0x6f, 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5b, 0x0a, 0x14, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x20, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5b, 0x0a, 0x14, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, + 0x20, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x44, 0x61, 0x74, 0x61, 0x53, 0x65, 0x74, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, + 0x65, 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x6f, 0x63, + 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6f, + 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, + 0x74, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, + 0x0a, 0x12, 0x47, 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x70, 0x1a, 0x1f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x44, 0x61, 0x74, 0x61, 0x73, 0x65, 0x74, 0x54, 0x79, 0x70, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, + 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, + 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, + 0x6f, 0x6b, 0x12, 0x17, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x6f, 0x63, + 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, + 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x1a, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, + 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, + 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x49, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, + 0x6f, 0x6b, 0x12, 0x1a, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1b, + 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x4e, + 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0d, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x12, 0x19, 0x2e, 0x6f, + 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, + 0x73, 0x2e, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x74, 0x65, 0x62, + 0x6f, 0x6f, 0x6b, 0x12, 0x18, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x53, 0x74, + 0x6f, 0x70, 0x4e, 0x6f, 0x74, 0x65, 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, + 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x4e, 0x6f, 0x74, 0x65, + 0x62, 0x6f, 0x6f, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x6f, + 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6d, + 0x61, 0x67, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6f, 0x63, 0x74, + 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6d, 0x61, 0x67, + 0x65, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0b, 0x43, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x17, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, + 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x18, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0b, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x17, 0x2e, 0x6f, 0x63, 0x74, + 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, + 0x0b, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x17, 0x2e, 0x6f, + 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x55, 0x0a, 0x12, 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, + 0x6e, 0x66, 0x69, 0x72, 0x6d, 0x12, 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, + 0x55, 0x70, 0x6c, 0x6f, 0x61, 0x64, 0x49, 0x6d, 0x61, 0x67, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x72, 0x6d, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, + 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x4d, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x58, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, + 0x73, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, + 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6f, 0x63, 0x74, 0x6f, + 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x46, 0x0a, 0x0d, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x12, 0x19, 0x2e, 0x6f, + 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x79, 0x4d, + 0x6f, 0x64, 0x65, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, + 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x79, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x12, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x64, + 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x2e, 0x6f, 0x63, 0x74, 0x6f, + 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x1f, 0x2e, 0x6f, 0x63, 0x74, 0x6f, + 0x70, 0x75, 0x73, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, + 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5b, 0x0a, 0x14, 0x44, 0x6f, + 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x12, 0x20, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, 0x6f, 0x77, + 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x44, + 0x6f, 0x77, 0x6e, 0x6c, 0x6f, 0x61, 0x64, 0x4d, 0x6f, 0x64, 0x65, 0x6c, 0x56, 0x65, 0x72, 0x73, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x12, 0x1a, 0x2e, 0x6f, 0x63, 0x74, 0x6f, + 0x70, 0x75, 0x73, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x1b, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, + 0x62, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x42, 0x0a, 0x5a, 0x08, 0x2f, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x54, 0x72, 0x61, 0x69, 0x6e, 0x4a, 0x6f, 0x62, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x42, 0x0a, 0x5a, 0x08, 0x2f, 0x6f, 0x63, 0x74, 0x6f, 0x70, 0x75, 0x73, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -10094,7 +11428,7 @@ func file_octopus_proto_rawDescGZIP() []byte { return file_octopus_proto_rawDescData } -var file_octopus_proto_msgTypes = make([]protoimpl.MessageInfo, 134) +var file_octopus_proto_msgTypes = make([]protoimpl.MessageInfo, 152) var file_octopus_proto_goTypes = []interface{}{ (*ResourceReq)(nil), // 0: octopus.resourceReq (*CpResp)(nil), // 1: octopus.cpResp @@ -10214,205 +11548,246 @@ var file_octopus_proto_goTypes = []interface{}{ (*UploadImageConfirmReq)(nil), // 115: octopus.UploadImageConfirmReq (*UploadImageConfirmResp)(nil), // 116: octopus.UploadImageConfirmResp (*PayloadUploadImageConfirm)(nil), // 117: octopus.PayloadUploadImageConfirm - (*GetTrainJobListReq)(nil), // 118: octopus.GetTrainJobListReq - (*GetTrainJobListResp)(nil), // 119: octopus.GetTrainJobListResp - (*PayloadGetTrainJobList)(nil), // 120: octopus.PayloadGetTrainJobList - (*TrainJob)(nil), // 121: octopus.TrainJob - (*CreateTrainJobReq)(nil), // 122: octopus.CreateTrainJobReq - (*CreateTrainJobResp)(nil), // 123: octopus.CreateTrainJobResp - (*CreateTrainJobParam)(nil), // 124: octopus.CreateTrainJobParam - (*Config)(nil), // 125: octopus.Config - (*Envs)(nil), // 126: octopus.Envs - (*Parameters)(nil), // 127: octopus.Parameters - (*ReplicaStates)(nil), // 128: octopus.ReplicaStates - (*Mounts)(nil), // 129: octopus.Mounts - (*PayloadCreateTrainJob)(nil), // 130: octopus.PayloadCreateTrainJob - (*Nfs)(nil), // 131: octopus.Nfs - (*TrainJobOctopus)(nil), // 132: octopus.TrainJobOctopus - (*Error)(nil), // 133: octopus.Error + (*GetModelVersionListReq)(nil), // 118: octopus.GetModelVersionListReq + (*GetModelVersionListResp)(nil), // 119: octopus.GetModelVersionListResp + (*PayloadGetModelVersionList)(nil), // 120: octopus.PayloadGetModelVersionList + (*ModelVersion)(nil), // 121: octopus.ModelVersion + (*VersionDetail)(nil), // 122: octopus.VersionDetail + (*DeleteMyModelReq)(nil), // 123: octopus.DeleteMyModelReq + (*DeleteMyModelResp)(nil), // 124: octopus.DeleteMyModelResp + (*PayloadDeleteMyModel)(nil), // 125: octopus.PayloadDeleteMyModel + (*DeleteModelVersionReq)(nil), // 126: octopus.DeleteModelVersionReq + (*DeleteModelVersionResp)(nil), // 127: octopus.DeleteModelVersionResp + (*PayloadDeleteModelVersion)(nil), // 128: octopus.PayloadDeleteModelVersion + (*DownloadModelVersionReq)(nil), // 129: octopus.DownloadModelVersionReq + (*DownloadModelVersionResp)(nil), // 130: octopus.DownloadModelVersionResp + (*PayloadDownloadModelVersion)(nil), // 131: octopus.PayloadDownloadModelVersion + (*GetMyModelListReq)(nil), // 132: octopus.GetMyModelListReq + (*GetMyModelListResp)(nil), // 133: octopus.GetMyModelListResp + (*PayloadGetMyModelList)(nil), // 134: octopus.PayloadGetMyModelList + (*Model)(nil), // 135: octopus.Model + (*GetTrainJobListReq)(nil), // 136: octopus.GetTrainJobListReq + (*GetTrainJobListResp)(nil), // 137: octopus.GetTrainJobListResp + (*PayloadGetTrainJobList)(nil), // 138: octopus.PayloadGetTrainJobList + (*TrainJob)(nil), // 139: octopus.TrainJob + (*CreateTrainJobReq)(nil), // 140: octopus.CreateTrainJobReq + (*CreateTrainJobResp)(nil), // 141: octopus.CreateTrainJobResp + (*CreateTrainJobParam)(nil), // 142: octopus.CreateTrainJobParam + (*Config)(nil), // 143: octopus.Config + (*Envs)(nil), // 144: octopus.Envs + (*Parameters)(nil), // 145: octopus.Parameters + (*ReplicaStates)(nil), // 146: octopus.ReplicaStates + (*Mounts)(nil), // 147: octopus.Mounts + (*PayloadCreateTrainJob)(nil), // 148: octopus.PayloadCreateTrainJob + (*Nfs)(nil), // 149: octopus.Nfs + (*TrainJobOctopus)(nil), // 150: octopus.TrainJobOctopus + (*Error)(nil), // 151: octopus.Error } var file_octopus_proto_depIdxs = []int32{ 5, // 0: octopus.GetAlgorithmResp.payload:type_name -> octopus.PayloadGetAlgorithm - 133, // 1: octopus.GetAlgorithmResp.error:type_name -> octopus.Error + 151, // 1: octopus.GetAlgorithmResp.error:type_name -> octopus.Error 25, // 2: octopus.PayloadGetAlgorithm.algorithm:type_name -> octopus.Algorithms 6, // 3: octopus.PayloadGetAlgorithm.versionAccesses:type_name -> octopus.VersionAccesses 9, // 4: octopus.DownloadAlgorithmResp.payload:type_name -> octopus.PayloadDownloadAlgorithm - 133, // 5: octopus.DownloadAlgorithmResp.error:type_name -> octopus.Error + 151, // 5: octopus.DownloadAlgorithmResp.error:type_name -> octopus.Error 11, // 6: octopus.UploadAlgorithmReq.params:type_name -> octopus.UploadAlgorithmParam 13, // 7: octopus.UploadAlgorithmResp.payload:type_name -> octopus.PayloadUploadAlgorithm - 133, // 8: octopus.UploadAlgorithmResp.error:type_name -> octopus.Error + 151, // 8: octopus.UploadAlgorithmResp.error:type_name -> octopus.Error 15, // 9: octopus.UploadAlgorithmConfirmReq.params:type_name -> octopus.UploadAlgorithmConfirmParam 17, // 10: octopus.UploadAlgorithmConfirmResp.payload:type_name -> octopus.PayloadUploadAlgorithmConfirm - 133, // 11: octopus.UploadAlgorithmConfirmResp.error:type_name -> octopus.Error + 151, // 11: octopus.UploadAlgorithmConfirmResp.error:type_name -> octopus.Error 20, // 12: octopus.GetAlgorithmListResp.payload:type_name -> octopus.PayloadAlgorithmList - 133, // 13: octopus.GetAlgorithmListResp.error:type_name -> octopus.Error + 151, // 13: octopus.GetAlgorithmListResp.error:type_name -> octopus.Error 21, // 14: octopus.PayloadAlgorithmList.algorithms:type_name -> octopus.AlgorithmDetail 25, // 15: octopus.AlgorithmDetail.algorithmDetail:type_name -> octopus.Algorithms 24, // 16: octopus.GetMyAlgorithmListResp.payload:type_name -> octopus.PayloadMyAlgorithmList - 133, // 17: octopus.GetMyAlgorithmListResp.error:type_name -> octopus.Error + 151, // 17: octopus.GetMyAlgorithmListResp.error:type_name -> octopus.Error 25, // 18: octopus.PayloadMyAlgorithmList.algorithms:type_name -> octopus.Algorithms 28, // 19: octopus.GetAlgorithmApplyListResp.payload:type_name -> octopus.PayloadGetAlgorithmApplyList - 133, // 20: octopus.GetAlgorithmApplyListResp.error:type_name -> octopus.Error + 151, // 20: octopus.GetAlgorithmApplyListResp.error:type_name -> octopus.Error 32, // 21: octopus.PayloadGetAlgorithmApplyList.lables:type_name -> octopus.Lables 31, // 22: octopus.GetAlgorithmFrameworkListResp.payload:type_name -> octopus.PayloadAlgorithmFrameworkList - 133, // 23: octopus.GetAlgorithmFrameworkListResp.error:type_name -> octopus.Error + 151, // 23: octopus.GetAlgorithmFrameworkListResp.error:type_name -> octopus.Error 32, // 24: octopus.PayloadAlgorithmFrameworkList.lables:type_name -> octopus.Lables 35, // 25: octopus.DeleteMyAlgorithmResp.payload:type_name -> octopus.PayloadDeleteMyAlgorithm - 133, // 26: octopus.DeleteMyAlgorithmResp.error:type_name -> octopus.Error + 151, // 26: octopus.DeleteMyAlgorithmResp.error:type_name -> octopus.Error 38, // 27: octopus.CreateMyAlgorithmReq.createMyAlgorithm:type_name -> octopus.CreateMyAlgorithm 39, // 28: octopus.CreateMyAlgorithmResp.payload:type_name -> octopus.PayloadCreateMyAlgorithm - 133, // 29: octopus.CreateMyAlgorithmResp.error:type_name -> octopus.Error + 151, // 29: octopus.CreateMyAlgorithmResp.error:type_name -> octopus.Error 42, // 30: octopus.GetDatasetVersionListResp.payload:type_name -> octopus.PayloadGetDatasetVersion - 133, // 31: octopus.GetDatasetVersionListResp.error:type_name -> octopus.Error + 151, // 31: octopus.GetDatasetVersionListResp.error:type_name -> octopus.Error 43, // 32: octopus.PayloadGetDatasetVersion.versions:type_name -> octopus.DatasetVersion 46, // 33: octopus.CreateDataSetReq.createDataSet:type_name -> octopus.CreateDataSet 47, // 34: octopus.CreateDataSetResp.payload:type_name -> octopus.PayloadCreateDataSet - 133, // 35: octopus.CreateDataSetResp.error:type_name -> octopus.Error + 151, // 35: octopus.CreateDataSetResp.error:type_name -> octopus.Error 50, // 36: octopus.GetMyDatasetListResp.payload:type_name -> octopus.PayloadMyDatasetList - 133, // 37: octopus.GetMyDatasetListResp.error:type_name -> octopus.Error + 151, // 37: octopus.GetMyDatasetListResp.error:type_name -> octopus.Error 51, // 38: octopus.PayloadMyDatasetList.datasets:type_name -> octopus.Datasets 52, // 39: octopus.Datasets.applies:type_name -> octopus.Applies 55, // 40: octopus.DeleteDataSetResp.payload:type_name -> octopus.PayloadDeleteDataSet - 133, // 41: octopus.DeleteDataSetResp.error:type_name -> octopus.Error + 151, // 41: octopus.DeleteDataSetResp.error:type_name -> octopus.Error 57, // 42: octopus.UploadDataSetReq.params:type_name -> octopus.UploadDataSetParam 59, // 43: octopus.UploadDataSetResp.payload:type_name -> octopus.PayloadUploadDataSet - 133, // 44: octopus.UploadDataSetResp.error:type_name -> octopus.Error + 151, // 44: octopus.UploadDataSetResp.error:type_name -> octopus.Error 61, // 45: octopus.UploadDataSetConfirmReq.params:type_name -> octopus.UploadDataSetConfirmParam 63, // 46: octopus.UploadDataSetConfirmResp.payload:type_name -> octopus.PayloadUploadDataSetConfirm - 133, // 47: octopus.UploadDataSetConfirmResp.error:type_name -> octopus.Error + 151, // 47: octopus.UploadDataSetConfirmResp.error:type_name -> octopus.Error 65, // 48: octopus.CreateDataSetVersionReq.params:type_name -> octopus.CreateDataSetVersionParam 67, // 49: octopus.CreateDataSetVersionResp.payload:type_name -> octopus.PayloadCreateDataSetVersion - 133, // 50: octopus.CreateDataSetVersionResp.error:type_name -> octopus.Error + 151, // 50: octopus.CreateDataSetVersionResp.error:type_name -> octopus.Error 70, // 51: octopus.DeleteDataSetVersionResp.payload:type_name -> octopus.PayloadDeleteDataSetVersion - 133, // 52: octopus.DeleteDataSetVersionResp.error:type_name -> octopus.Error + 151, // 52: octopus.DeleteDataSetVersionResp.error:type_name -> octopus.Error 73, // 53: octopus.GetDatasetApplyListResp.payload:type_name -> octopus.PayloadGetDatasetApplyList - 133, // 54: octopus.GetDatasetApplyListResp.error:type_name -> octopus.Error + 151, // 54: octopus.GetDatasetApplyListResp.error:type_name -> octopus.Error 32, // 55: octopus.PayloadGetDatasetApplyList.lables:type_name -> octopus.Lables 76, // 56: octopus.GetDatasetTypeListResp.payload:type_name -> octopus.PayloadGetDatasetTypeList - 133, // 57: octopus.GetDatasetTypeListResp.error:type_name -> octopus.Error + 151, // 57: octopus.GetDatasetTypeListResp.error:type_name -> octopus.Error 32, // 58: octopus.PayloadGetDatasetTypeList.lables:type_name -> octopus.Lables 78, // 59: octopus.CreateNotebookReq.params:type_name -> octopus.CreateNotebookParam - 126, // 60: octopus.CreateNotebookParam.envs:type_name -> octopus.Envs - 129, // 61: octopus.CreateNotebookParam.mounts:type_name -> octopus.Mounts + 144, // 60: octopus.CreateNotebookParam.envs:type_name -> octopus.Envs + 147, // 61: octopus.CreateNotebookParam.mounts:type_name -> octopus.Mounts 80, // 62: octopus.CreateNotebookResp.payload:type_name -> octopus.PayloadCreateNotebook - 133, // 63: octopus.CreateNotebookResp.error:type_name -> octopus.Error + 151, // 63: octopus.CreateNotebookResp.error:type_name -> octopus.Error 83, // 64: octopus.GetNotebookResp.payload:type_name -> octopus.PayloadGetNotebook - 133, // 65: octopus.GetNotebookResp.error:type_name -> octopus.Error + 151, // 65: octopus.GetNotebookResp.error:type_name -> octopus.Error 90, // 66: octopus.PayloadGetNotebook.notebook:type_name -> octopus.Notebook 86, // 67: octopus.DeleteNotebookResp.payload:type_name -> octopus.PayloadDeleteNotebook - 133, // 68: octopus.DeleteNotebookResp.error:type_name -> octopus.Error + 151, // 68: octopus.DeleteNotebookResp.error:type_name -> octopus.Error 89, // 69: octopus.GetNotebookListResp.payload:type_name -> octopus.PayloadNotebookList - 133, // 70: octopus.GetNotebookListResp.error:type_name -> octopus.Error + 151, // 70: octopus.GetNotebookListResp.error:type_name -> octopus.Error 90, // 71: octopus.PayloadNotebookList.notebooks:type_name -> octopus.Notebook 91, // 72: octopus.Notebook.tasks:type_name -> octopus.Tasks 94, // 73: octopus.StartNotebookResp.payload:type_name -> octopus.PayloadStartNotebook - 133, // 74: octopus.StartNotebookResp.error:type_name -> octopus.Error + 151, // 74: octopus.StartNotebookResp.error:type_name -> octopus.Error 97, // 75: octopus.StopNotebookResp.payload:type_name -> octopus.PayloadStopNotebook - 133, // 76: octopus.StopNotebookResp.error:type_name -> octopus.Error + 151, // 76: octopus.StopNotebookResp.error:type_name -> octopus.Error 100, // 77: octopus.GetUserImageListResp.payload:type_name -> octopus.PayloadUserImageList - 133, // 78: octopus.GetUserImageListResp.error:type_name -> octopus.Error + 151, // 78: octopus.GetUserImageListResp.error:type_name -> octopus.Error 101, // 79: octopus.PayloadUserImageList.images:type_name -> octopus.Images 102, // 80: octopus.Images.image:type_name -> octopus.Image 105, // 81: octopus.DeleteImageResp.payload:type_name -> octopus.PayloadDeleteImage - 133, // 82: octopus.DeleteImageResp.error:type_name -> octopus.Error + 151, // 82: octopus.DeleteImageResp.error:type_name -> octopus.Error 107, // 83: octopus.CreateImageReq.createImage:type_name -> octopus.CreateImage 109, // 84: octopus.CreateImageResp.payload:type_name -> octopus.PayloadCreateImage - 133, // 85: octopus.CreateImageResp.error:type_name -> octopus.Error + 151, // 85: octopus.CreateImageResp.error:type_name -> octopus.Error 111, // 86: octopus.UploadImageReq.params:type_name -> octopus.UploadImageParam 113, // 87: octopus.UploadImageResp.payload:type_name -> octopus.PayloadUploadImage - 133, // 88: octopus.UploadImageResp.error:type_name -> octopus.Error + 151, // 88: octopus.UploadImageResp.error:type_name -> octopus.Error 114, // 89: octopus.PayloadUploadImage.headers:type_name -> octopus.Headers 117, // 90: octopus.UploadImageConfirmResp.payload:type_name -> octopus.PayloadUploadImageConfirm - 133, // 91: octopus.UploadImageConfirmResp.error:type_name -> octopus.Error - 120, // 92: octopus.GetTrainJobListResp.payload:type_name -> octopus.PayloadGetTrainJobList - 133, // 93: octopus.GetTrainJobListResp.error:type_name -> octopus.Error - 121, // 94: octopus.PayloadGetTrainJobList.trainJobs:type_name -> octopus.TrainJob - 125, // 95: octopus.TrainJob.config:type_name -> octopus.Config - 124, // 96: octopus.CreateTrainJobReq.params:type_name -> octopus.CreateTrainJobParam - 130, // 97: octopus.CreateTrainJobResp.payload:type_name -> octopus.PayloadCreateTrainJob - 133, // 98: octopus.CreateTrainJobResp.error:type_name -> octopus.Error - 125, // 99: octopus.CreateTrainJobParam.config:type_name -> octopus.Config - 129, // 100: octopus.CreateTrainJobParam.mounts:type_name -> octopus.Mounts - 126, // 101: octopus.Config.envs:type_name -> octopus.Envs - 127, // 102: octopus.Config.parameters:type_name -> octopus.Parameters - 128, // 103: octopus.Config.replicaStates:type_name -> octopus.ReplicaStates - 131, // 104: octopus.Mounts.nfs:type_name -> octopus.Nfs - 132, // 105: octopus.Mounts.octopus:type_name -> octopus.TrainJobOctopus - 0, // 106: octopus.Octopus.GetComputingPower:input_type -> octopus.resourceReq - 0, // 107: octopus.Octopus.GetGeneralInfo:input_type -> octopus.resourceReq - 22, // 108: octopus.Octopus.GetMyAlgorithmList:input_type -> octopus.GetMyAlgorithmListReq - 18, // 109: octopus.Octopus.GetAlgorithmList:input_type -> octopus.GetAlgorithmListReq - 3, // 110: octopus.Octopus.GetAlgorithm:input_type -> octopus.GetAlgorithmReq - 26, // 111: octopus.Octopus.GetAlgorithmApplyList:input_type -> octopus.GetAlgorithmApplyListReq - 29, // 112: octopus.Octopus.GetAlgorithmFrameworkList:input_type -> octopus.GetAlgorithmFrameworkListReq - 33, // 113: octopus.Octopus.DeleteMyAlgorithm:input_type -> octopus.DeleteMyAlgorithmReq - 36, // 114: octopus.Octopus.CreateMyAlgorithm:input_type -> octopus.CreateMyAlgorithmReq - 7, // 115: octopus.Octopus.DownloadAlgorithm:input_type -> octopus.DownloadAlgorithmReq - 10, // 116: octopus.Octopus.UploadAlgorithm:input_type -> octopus.UploadAlgorithmReq - 14, // 117: octopus.Octopus.UploadAlgorithmConfirm:input_type -> octopus.UploadAlgorithmConfirmReq - 48, // 118: octopus.Octopus.GetMyDatasetList:input_type -> octopus.GetMyDatasetListReq - 40, // 119: octopus.Octopus.GetDatasetVersionList:input_type -> octopus.GetDatasetVersionListReq - 44, // 120: octopus.Octopus.CreateDataSet:input_type -> octopus.CreateDataSetReq - 53, // 121: octopus.Octopus.DeleteDataSet:input_type -> octopus.DeleteDataSetReq - 56, // 122: octopus.Octopus.UploadDataSet:input_type -> octopus.UploadDataSetReq - 60, // 123: octopus.Octopus.UploadDataSetConfirm:input_type -> octopus.UploadDataSetConfirmReq - 64, // 124: octopus.Octopus.CreateDataSetVersion:input_type -> octopus.CreateDataSetVersionReq - 68, // 125: octopus.Octopus.DeleteDataSetVersion:input_type -> octopus.DeleteDataSetVersionReq - 71, // 126: octopus.Octopus.GetDatasetApplyList:input_type -> octopus.GetDatasetApplyListReq - 74, // 127: octopus.Octopus.GetDatasetTypeList:input_type -> octopus.GetDatasetTypeListRep - 87, // 128: octopus.Octopus.GetNotebookList:input_type -> octopus.GetNotebookListReq - 81, // 129: octopus.Octopus.GetNotebook:input_type -> octopus.GetNotebookReq - 84, // 130: octopus.Octopus.DeleteNotebook:input_type -> octopus.DeleteNotebookReq - 77, // 131: octopus.Octopus.CreateNotebook:input_type -> octopus.CreateNotebookReq - 92, // 132: octopus.Octopus.StartNotebook:input_type -> octopus.StartNotebookReq - 95, // 133: octopus.Octopus.StopNotebook:input_type -> octopus.StopNotebookReq - 98, // 134: octopus.Octopus.GetUserImageList:input_type -> octopus.GetUserImageListReq - 106, // 135: octopus.Octopus.CreateImage:input_type -> octopus.CreateImageReq - 103, // 136: octopus.Octopus.DeleteImage:input_type -> octopus.DeleteImageReq - 110, // 137: octopus.Octopus.UploadImage:input_type -> octopus.UploadImageReq - 115, // 138: octopus.Octopus.UploadImageConfirm:input_type -> octopus.UploadImageConfirmReq - 122, // 139: octopus.Octopus.CreateTrainJob:input_type -> octopus.CreateTrainJobReq - 118, // 140: octopus.Octopus.GetTrainJobList:input_type -> octopus.GetTrainJobListReq - 1, // 141: octopus.Octopus.GetComputingPower:output_type -> octopus.cpResp - 2, // 142: octopus.Octopus.GetGeneralInfo:output_type -> octopus.giResp - 23, // 143: octopus.Octopus.GetMyAlgorithmList:output_type -> octopus.GetMyAlgorithmListResp - 19, // 144: octopus.Octopus.GetAlgorithmList:output_type -> octopus.GetAlgorithmListResp - 4, // 145: octopus.Octopus.GetAlgorithm:output_type -> octopus.GetAlgorithmResp - 27, // 146: octopus.Octopus.GetAlgorithmApplyList:output_type -> octopus.GetAlgorithmApplyListResp - 30, // 147: octopus.Octopus.GetAlgorithmFrameworkList:output_type -> octopus.GetAlgorithmFrameworkListResp - 34, // 148: octopus.Octopus.DeleteMyAlgorithm:output_type -> octopus.DeleteMyAlgorithmResp - 37, // 149: octopus.Octopus.CreateMyAlgorithm:output_type -> octopus.CreateMyAlgorithmResp - 8, // 150: octopus.Octopus.DownloadAlgorithm:output_type -> octopus.DownloadAlgorithmResp - 12, // 151: octopus.Octopus.UploadAlgorithm:output_type -> octopus.UploadAlgorithmResp - 16, // 152: octopus.Octopus.UploadAlgorithmConfirm:output_type -> octopus.UploadAlgorithmConfirmResp - 49, // 153: octopus.Octopus.GetMyDatasetList:output_type -> octopus.GetMyDatasetListResp - 41, // 154: octopus.Octopus.GetDatasetVersionList:output_type -> octopus.GetDatasetVersionListResp - 45, // 155: octopus.Octopus.CreateDataSet:output_type -> octopus.CreateDataSetResp - 54, // 156: octopus.Octopus.DeleteDataSet:output_type -> octopus.DeleteDataSetResp - 58, // 157: octopus.Octopus.UploadDataSet:output_type -> octopus.UploadDataSetResp - 62, // 158: octopus.Octopus.UploadDataSetConfirm:output_type -> octopus.UploadDataSetConfirmResp - 66, // 159: octopus.Octopus.CreateDataSetVersion:output_type -> octopus.CreateDataSetVersionResp - 69, // 160: octopus.Octopus.DeleteDataSetVersion:output_type -> octopus.DeleteDataSetVersionResp - 72, // 161: octopus.Octopus.GetDatasetApplyList:output_type -> octopus.GetDatasetApplyListResp - 75, // 162: octopus.Octopus.GetDatasetTypeList:output_type -> octopus.GetDatasetTypeListResp - 88, // 163: octopus.Octopus.GetNotebookList:output_type -> octopus.GetNotebookListResp - 82, // 164: octopus.Octopus.GetNotebook:output_type -> octopus.GetNotebookResp - 85, // 165: octopus.Octopus.DeleteNotebook:output_type -> octopus.DeleteNotebookResp - 79, // 166: octopus.Octopus.CreateNotebook:output_type -> octopus.CreateNotebookResp - 93, // 167: octopus.Octopus.StartNotebook:output_type -> octopus.StartNotebookResp - 96, // 168: octopus.Octopus.StopNotebook:output_type -> octopus.StopNotebookResp - 99, // 169: octopus.Octopus.GetUserImageList:output_type -> octopus.GetUserImageListResp - 108, // 170: octopus.Octopus.CreateImage:output_type -> octopus.CreateImageResp - 104, // 171: octopus.Octopus.DeleteImage:output_type -> octopus.DeleteImageResp - 112, // 172: octopus.Octopus.UploadImage:output_type -> octopus.UploadImageResp - 116, // 173: octopus.Octopus.UploadImageConfirm:output_type -> octopus.UploadImageConfirmResp - 123, // 174: octopus.Octopus.CreateTrainJob:output_type -> octopus.CreateTrainJobResp - 119, // 175: octopus.Octopus.GetTrainJobList:output_type -> octopus.GetTrainJobListResp - 141, // [141:176] is the sub-list for method output_type - 106, // [106:141] is the sub-list for method input_type - 106, // [106:106] is the sub-list for extension type_name - 106, // [106:106] is the sub-list for extension extendee - 0, // [0:106] is the sub-list for field type_name + 151, // 91: octopus.UploadImageConfirmResp.error:type_name -> octopus.Error + 120, // 92: octopus.GetModelVersionListResp.payload:type_name -> octopus.PayloadGetModelVersionList + 151, // 93: octopus.GetModelVersionListResp.error:type_name -> octopus.Error + 121, // 94: octopus.PayloadGetModelVersionList.modelVersions:type_name -> octopus.ModelVersion + 122, // 95: octopus.ModelVersion.versionDetail:type_name -> octopus.VersionDetail + 125, // 96: octopus.DeleteMyModelResp.payload:type_name -> octopus.PayloadDeleteMyModel + 151, // 97: octopus.DeleteMyModelResp.error:type_name -> octopus.Error + 128, // 98: octopus.DeleteModelVersionResp.payload:type_name -> octopus.PayloadDeleteModelVersion + 151, // 99: octopus.DeleteModelVersionResp.error:type_name -> octopus.Error + 131, // 100: octopus.DownloadModelVersionResp.payload:type_name -> octopus.PayloadDownloadModelVersion + 151, // 101: octopus.DownloadModelVersionResp.error:type_name -> octopus.Error + 134, // 102: octopus.GetMyModelListResp.payload:type_name -> octopus.PayloadGetMyModelList + 151, // 103: octopus.GetMyModelListResp.error:type_name -> octopus.Error + 135, // 104: octopus.PayloadGetMyModelList.models:type_name -> octopus.Model + 138, // 105: octopus.GetTrainJobListResp.payload:type_name -> octopus.PayloadGetTrainJobList + 151, // 106: octopus.GetTrainJobListResp.error:type_name -> octopus.Error + 139, // 107: octopus.PayloadGetTrainJobList.trainJobs:type_name -> octopus.TrainJob + 143, // 108: octopus.TrainJob.config:type_name -> octopus.Config + 142, // 109: octopus.CreateTrainJobReq.params:type_name -> octopus.CreateTrainJobParam + 148, // 110: octopus.CreateTrainJobResp.payload:type_name -> octopus.PayloadCreateTrainJob + 151, // 111: octopus.CreateTrainJobResp.error:type_name -> octopus.Error + 143, // 112: octopus.CreateTrainJobParam.config:type_name -> octopus.Config + 147, // 113: octopus.CreateTrainJobParam.mounts:type_name -> octopus.Mounts + 144, // 114: octopus.Config.envs:type_name -> octopus.Envs + 145, // 115: octopus.Config.parameters:type_name -> octopus.Parameters + 146, // 116: octopus.Config.replicaStates:type_name -> octopus.ReplicaStates + 149, // 117: octopus.Mounts.nfs:type_name -> octopus.Nfs + 150, // 118: octopus.Mounts.octopus:type_name -> octopus.TrainJobOctopus + 0, // 119: octopus.Octopus.GetComputingPower:input_type -> octopus.resourceReq + 0, // 120: octopus.Octopus.GetGeneralInfo:input_type -> octopus.resourceReq + 22, // 121: octopus.Octopus.GetMyAlgorithmList:input_type -> octopus.GetMyAlgorithmListReq + 18, // 122: octopus.Octopus.GetAlgorithmList:input_type -> octopus.GetAlgorithmListReq + 3, // 123: octopus.Octopus.GetAlgorithm:input_type -> octopus.GetAlgorithmReq + 26, // 124: octopus.Octopus.GetAlgorithmApplyList:input_type -> octopus.GetAlgorithmApplyListReq + 29, // 125: octopus.Octopus.GetAlgorithmFrameworkList:input_type -> octopus.GetAlgorithmFrameworkListReq + 33, // 126: octopus.Octopus.DeleteMyAlgorithm:input_type -> octopus.DeleteMyAlgorithmReq + 36, // 127: octopus.Octopus.CreateMyAlgorithm:input_type -> octopus.CreateMyAlgorithmReq + 7, // 128: octopus.Octopus.DownloadAlgorithm:input_type -> octopus.DownloadAlgorithmReq + 10, // 129: octopus.Octopus.UploadAlgorithm:input_type -> octopus.UploadAlgorithmReq + 14, // 130: octopus.Octopus.UploadAlgorithmConfirm:input_type -> octopus.UploadAlgorithmConfirmReq + 48, // 131: octopus.Octopus.GetMyDatasetList:input_type -> octopus.GetMyDatasetListReq + 40, // 132: octopus.Octopus.GetDatasetVersionList:input_type -> octopus.GetDatasetVersionListReq + 44, // 133: octopus.Octopus.CreateDataSet:input_type -> octopus.CreateDataSetReq + 53, // 134: octopus.Octopus.DeleteDataSet:input_type -> octopus.DeleteDataSetReq + 56, // 135: octopus.Octopus.UploadDataSet:input_type -> octopus.UploadDataSetReq + 60, // 136: octopus.Octopus.UploadDataSetConfirm:input_type -> octopus.UploadDataSetConfirmReq + 64, // 137: octopus.Octopus.CreateDataSetVersion:input_type -> octopus.CreateDataSetVersionReq + 68, // 138: octopus.Octopus.DeleteDataSetVersion:input_type -> octopus.DeleteDataSetVersionReq + 71, // 139: octopus.Octopus.GetDatasetApplyList:input_type -> octopus.GetDatasetApplyListReq + 74, // 140: octopus.Octopus.GetDatasetTypeList:input_type -> octopus.GetDatasetTypeListRep + 87, // 141: octopus.Octopus.GetNotebookList:input_type -> octopus.GetNotebookListReq + 81, // 142: octopus.Octopus.GetNotebook:input_type -> octopus.GetNotebookReq + 84, // 143: octopus.Octopus.DeleteNotebook:input_type -> octopus.DeleteNotebookReq + 77, // 144: octopus.Octopus.CreateNotebook:input_type -> octopus.CreateNotebookReq + 92, // 145: octopus.Octopus.StartNotebook:input_type -> octopus.StartNotebookReq + 95, // 146: octopus.Octopus.StopNotebook:input_type -> octopus.StopNotebookReq + 98, // 147: octopus.Octopus.GetUserImageList:input_type -> octopus.GetUserImageListReq + 106, // 148: octopus.Octopus.CreateImage:input_type -> octopus.CreateImageReq + 103, // 149: octopus.Octopus.DeleteImage:input_type -> octopus.DeleteImageReq + 110, // 150: octopus.Octopus.UploadImage:input_type -> octopus.UploadImageReq + 115, // 151: octopus.Octopus.UploadImageConfirm:input_type -> octopus.UploadImageConfirmReq + 132, // 152: octopus.Octopus.GetMyModelList:input_type -> octopus.GetMyModelListReq + 118, // 153: octopus.Octopus.GetModelVersionList:input_type -> octopus.GetModelVersionListReq + 123, // 154: octopus.Octopus.DeleteMyModel:input_type -> octopus.DeleteMyModelReq + 126, // 155: octopus.Octopus.DeleteModelVersion:input_type -> octopus.DeleteModelVersionReq + 129, // 156: octopus.Octopus.DownloadModelVersion:input_type -> octopus.DownloadModelVersionReq + 140, // 157: octopus.Octopus.CreateTrainJob:input_type -> octopus.CreateTrainJobReq + 136, // 158: octopus.Octopus.GetTrainJobList:input_type -> octopus.GetTrainJobListReq + 1, // 159: octopus.Octopus.GetComputingPower:output_type -> octopus.cpResp + 2, // 160: octopus.Octopus.GetGeneralInfo:output_type -> octopus.giResp + 23, // 161: octopus.Octopus.GetMyAlgorithmList:output_type -> octopus.GetMyAlgorithmListResp + 19, // 162: octopus.Octopus.GetAlgorithmList:output_type -> octopus.GetAlgorithmListResp + 4, // 163: octopus.Octopus.GetAlgorithm:output_type -> octopus.GetAlgorithmResp + 27, // 164: octopus.Octopus.GetAlgorithmApplyList:output_type -> octopus.GetAlgorithmApplyListResp + 30, // 165: octopus.Octopus.GetAlgorithmFrameworkList:output_type -> octopus.GetAlgorithmFrameworkListResp + 34, // 166: octopus.Octopus.DeleteMyAlgorithm:output_type -> octopus.DeleteMyAlgorithmResp + 37, // 167: octopus.Octopus.CreateMyAlgorithm:output_type -> octopus.CreateMyAlgorithmResp + 8, // 168: octopus.Octopus.DownloadAlgorithm:output_type -> octopus.DownloadAlgorithmResp + 12, // 169: octopus.Octopus.UploadAlgorithm:output_type -> octopus.UploadAlgorithmResp + 16, // 170: octopus.Octopus.UploadAlgorithmConfirm:output_type -> octopus.UploadAlgorithmConfirmResp + 49, // 171: octopus.Octopus.GetMyDatasetList:output_type -> octopus.GetMyDatasetListResp + 41, // 172: octopus.Octopus.GetDatasetVersionList:output_type -> octopus.GetDatasetVersionListResp + 45, // 173: octopus.Octopus.CreateDataSet:output_type -> octopus.CreateDataSetResp + 54, // 174: octopus.Octopus.DeleteDataSet:output_type -> octopus.DeleteDataSetResp + 58, // 175: octopus.Octopus.UploadDataSet:output_type -> octopus.UploadDataSetResp + 62, // 176: octopus.Octopus.UploadDataSetConfirm:output_type -> octopus.UploadDataSetConfirmResp + 66, // 177: octopus.Octopus.CreateDataSetVersion:output_type -> octopus.CreateDataSetVersionResp + 69, // 178: octopus.Octopus.DeleteDataSetVersion:output_type -> octopus.DeleteDataSetVersionResp + 72, // 179: octopus.Octopus.GetDatasetApplyList:output_type -> octopus.GetDatasetApplyListResp + 75, // 180: octopus.Octopus.GetDatasetTypeList:output_type -> octopus.GetDatasetTypeListResp + 88, // 181: octopus.Octopus.GetNotebookList:output_type -> octopus.GetNotebookListResp + 82, // 182: octopus.Octopus.GetNotebook:output_type -> octopus.GetNotebookResp + 85, // 183: octopus.Octopus.DeleteNotebook:output_type -> octopus.DeleteNotebookResp + 79, // 184: octopus.Octopus.CreateNotebook:output_type -> octopus.CreateNotebookResp + 93, // 185: octopus.Octopus.StartNotebook:output_type -> octopus.StartNotebookResp + 96, // 186: octopus.Octopus.StopNotebook:output_type -> octopus.StopNotebookResp + 99, // 187: octopus.Octopus.GetUserImageList:output_type -> octopus.GetUserImageListResp + 108, // 188: octopus.Octopus.CreateImage:output_type -> octopus.CreateImageResp + 104, // 189: octopus.Octopus.DeleteImage:output_type -> octopus.DeleteImageResp + 112, // 190: octopus.Octopus.UploadImage:output_type -> octopus.UploadImageResp + 116, // 191: octopus.Octopus.UploadImageConfirm:output_type -> octopus.UploadImageConfirmResp + 133, // 192: octopus.Octopus.GetMyModelList:output_type -> octopus.GetMyModelListResp + 119, // 193: octopus.Octopus.GetModelVersionList:output_type -> octopus.GetModelVersionListResp + 124, // 194: octopus.Octopus.DeleteMyModel:output_type -> octopus.DeleteMyModelResp + 127, // 195: octopus.Octopus.DeleteModelVersion:output_type -> octopus.DeleteModelVersionResp + 130, // 196: octopus.Octopus.DownloadModelVersion:output_type -> octopus.DownloadModelVersionResp + 141, // 197: octopus.Octopus.CreateTrainJob:output_type -> octopus.CreateTrainJobResp + 137, // 198: octopus.Octopus.GetTrainJobList:output_type -> octopus.GetTrainJobListResp + 159, // [159:199] is the sub-list for method output_type + 119, // [119:159] is the sub-list for method input_type + 119, // [119:119] is the sub-list for extension type_name + 119, // [119:119] is the sub-list for extension extendee + 0, // [0:119] is the sub-list for field type_name } func init() { file_octopus_proto_init() } @@ -11838,7 +13213,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[118].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTrainJobListReq); i { + switch v := v.(*GetModelVersionListReq); i { case 0: return &v.state case 1: @@ -11850,7 +13225,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[119].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetTrainJobListResp); i { + switch v := v.(*GetModelVersionListResp); i { case 0: return &v.state case 1: @@ -11862,7 +13237,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[120].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PayloadGetTrainJobList); i { + switch v := v.(*PayloadGetModelVersionList); i { case 0: return &v.state case 1: @@ -11874,7 +13249,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[121].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TrainJob); i { + switch v := v.(*ModelVersion); i { case 0: return &v.state case 1: @@ -11886,7 +13261,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[122].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateTrainJobReq); i { + switch v := v.(*VersionDetail); i { case 0: return &v.state case 1: @@ -11898,7 +13273,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[123].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateTrainJobResp); i { + switch v := v.(*DeleteMyModelReq); i { case 0: return &v.state case 1: @@ -11910,7 +13285,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[124].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateTrainJobParam); i { + switch v := v.(*DeleteMyModelResp); i { case 0: return &v.state case 1: @@ -11922,7 +13297,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[125].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Config); i { + switch v := v.(*PayloadDeleteMyModel); i { case 0: return &v.state case 1: @@ -11934,7 +13309,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[126].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Envs); i { + switch v := v.(*DeleteModelVersionReq); i { case 0: return &v.state case 1: @@ -11946,7 +13321,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[127].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Parameters); i { + switch v := v.(*DeleteModelVersionResp); i { case 0: return &v.state case 1: @@ -11958,7 +13333,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[128].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ReplicaStates); i { + switch v := v.(*PayloadDeleteModelVersion); i { case 0: return &v.state case 1: @@ -11970,7 +13345,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[129].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Mounts); i { + switch v := v.(*DownloadModelVersionReq); i { case 0: return &v.state case 1: @@ -11982,7 +13357,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[130].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PayloadCreateTrainJob); i { + switch v := v.(*DownloadModelVersionResp); i { case 0: return &v.state case 1: @@ -11994,7 +13369,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[131].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Nfs); i { + switch v := v.(*PayloadDownloadModelVersion); i { case 0: return &v.state case 1: @@ -12006,7 +13381,7 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[132].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TrainJobOctopus); i { + switch v := v.(*GetMyModelListReq); i { case 0: return &v.state case 1: @@ -12018,6 +13393,222 @@ func file_octopus_proto_init() { } } file_octopus_proto_msgTypes[133].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMyModelListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[134].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PayloadGetMyModelList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[135].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Model); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[136].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTrainJobListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[137].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetTrainJobListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[138].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PayloadGetTrainJobList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[139].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrainJob); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[140].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTrainJobReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[141].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTrainJobResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[142].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateTrainJobParam); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[143].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Config); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[144].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Envs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[145].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Parameters); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[146].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ReplicaStates); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[147].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Mounts); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[148].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PayloadCreateTrainJob); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[149].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Nfs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[150].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TrainJobOctopus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_octopus_proto_msgTypes[151].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Error); i { case 0: return &v.state @@ -12036,7 +13627,7 @@ func file_octopus_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_octopus_proto_rawDesc, NumEnums: 0, - NumMessages: 134, + NumMessages: 152, NumExtensions: 0, NumServices: 1, }, diff --git a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopus/octopus_grpc.pb.go b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopus/octopus_grpc.pb.go index 75f9c736..266558ab 100644 --- a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopus/octopus_grpc.pb.go +++ b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopus/octopus_grpc.pb.go @@ -59,6 +59,12 @@ type OctopusClient interface { DeleteImage(ctx context.Context, in *DeleteImageReq, opts ...grpc.CallOption) (*DeleteImageResp, error) UploadImage(ctx context.Context, in *UploadImageReq, opts ...grpc.CallOption) (*UploadImageResp, error) UploadImageConfirm(ctx context.Context, in *UploadImageConfirmReq, opts ...grpc.CallOption) (*UploadImageConfirmResp, error) + // Model + GetMyModelList(ctx context.Context, in *GetMyModelListReq, opts ...grpc.CallOption) (*GetMyModelListResp, error) + GetModelVersionList(ctx context.Context, in *GetModelVersionListReq, opts ...grpc.CallOption) (*GetModelVersionListResp, error) + DeleteMyModel(ctx context.Context, in *DeleteMyModelReq, opts ...grpc.CallOption) (*DeleteMyModelResp, error) + DeleteModelVersion(ctx context.Context, in *DeleteModelVersionReq, opts ...grpc.CallOption) (*DeleteModelVersionResp, error) + DownloadModelVersion(ctx context.Context, in *DownloadModelVersionReq, opts ...grpc.CallOption) (*DownloadModelVersionResp, error) // TrainJobService CreateTrainJob(ctx context.Context, in *CreateTrainJobReq, opts ...grpc.CallOption) (*CreateTrainJobResp, error) GetTrainJobList(ctx context.Context, in *GetTrainJobListReq, opts ...grpc.CallOption) (*GetTrainJobListResp, error) @@ -369,6 +375,51 @@ func (c *octopusClient) UploadImageConfirm(ctx context.Context, in *UploadImageC return out, nil } +func (c *octopusClient) GetMyModelList(ctx context.Context, in *GetMyModelListReq, opts ...grpc.CallOption) (*GetMyModelListResp, error) { + out := new(GetMyModelListResp) + err := c.cc.Invoke(ctx, "/octopus.Octopus/GetMyModelList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *octopusClient) GetModelVersionList(ctx context.Context, in *GetModelVersionListReq, opts ...grpc.CallOption) (*GetModelVersionListResp, error) { + out := new(GetModelVersionListResp) + err := c.cc.Invoke(ctx, "/octopus.Octopus/GetModelVersionList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *octopusClient) DeleteMyModel(ctx context.Context, in *DeleteMyModelReq, opts ...grpc.CallOption) (*DeleteMyModelResp, error) { + out := new(DeleteMyModelResp) + err := c.cc.Invoke(ctx, "/octopus.Octopus/DeleteMyModel", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *octopusClient) DeleteModelVersion(ctx context.Context, in *DeleteModelVersionReq, opts ...grpc.CallOption) (*DeleteModelVersionResp, error) { + out := new(DeleteModelVersionResp) + err := c.cc.Invoke(ctx, "/octopus.Octopus/DeleteModelVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *octopusClient) DownloadModelVersion(ctx context.Context, in *DownloadModelVersionReq, opts ...grpc.CallOption) (*DownloadModelVersionResp, error) { + out := new(DownloadModelVersionResp) + err := c.cc.Invoke(ctx, "/octopus.Octopus/DownloadModelVersion", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *octopusClient) CreateTrainJob(ctx context.Context, in *CreateTrainJobReq, opts ...grpc.CallOption) (*CreateTrainJobResp, error) { out := new(CreateTrainJobResp) err := c.cc.Invoke(ctx, "/octopus.Octopus/CreateTrainJob", in, out, opts...) @@ -428,6 +479,12 @@ type OctopusServer interface { DeleteImage(context.Context, *DeleteImageReq) (*DeleteImageResp, error) UploadImage(context.Context, *UploadImageReq) (*UploadImageResp, error) UploadImageConfirm(context.Context, *UploadImageConfirmReq) (*UploadImageConfirmResp, error) + // Model + GetMyModelList(context.Context, *GetMyModelListReq) (*GetMyModelListResp, error) + GetModelVersionList(context.Context, *GetModelVersionListReq) (*GetModelVersionListResp, error) + DeleteMyModel(context.Context, *DeleteMyModelReq) (*DeleteMyModelResp, error) + DeleteModelVersion(context.Context, *DeleteModelVersionReq) (*DeleteModelVersionResp, error) + DownloadModelVersion(context.Context, *DownloadModelVersionReq) (*DownloadModelVersionResp, error) // TrainJobService CreateTrainJob(context.Context, *CreateTrainJobReq) (*CreateTrainJobResp, error) GetTrainJobList(context.Context, *GetTrainJobListReq) (*GetTrainJobListResp, error) @@ -537,6 +594,21 @@ func (UnimplementedOctopusServer) UploadImage(context.Context, *UploadImageReq) func (UnimplementedOctopusServer) UploadImageConfirm(context.Context, *UploadImageConfirmReq) (*UploadImageConfirmResp, error) { return nil, status.Errorf(codes.Unimplemented, "method UploadImageConfirm not implemented") } +func (UnimplementedOctopusServer) GetMyModelList(context.Context, *GetMyModelListReq) (*GetMyModelListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMyModelList not implemented") +} +func (UnimplementedOctopusServer) GetModelVersionList(context.Context, *GetModelVersionListReq) (*GetModelVersionListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetModelVersionList not implemented") +} +func (UnimplementedOctopusServer) DeleteMyModel(context.Context, *DeleteMyModelReq) (*DeleteMyModelResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteMyModel not implemented") +} +func (UnimplementedOctopusServer) DeleteModelVersion(context.Context, *DeleteModelVersionReq) (*DeleteModelVersionResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteModelVersion not implemented") +} +func (UnimplementedOctopusServer) DownloadModelVersion(context.Context, *DownloadModelVersionReq) (*DownloadModelVersionResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DownloadModelVersion not implemented") +} func (UnimplementedOctopusServer) CreateTrainJob(context.Context, *CreateTrainJobReq) (*CreateTrainJobResp, error) { return nil, status.Errorf(codes.Unimplemented, "method CreateTrainJob not implemented") } @@ -1150,6 +1222,96 @@ func _Octopus_UploadImageConfirm_Handler(srv interface{}, ctx context.Context, d return interceptor(ctx, in, info, handler) } +func _Octopus_GetMyModelList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMyModelListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OctopusServer).GetMyModelList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/octopus.Octopus/GetMyModelList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OctopusServer).GetMyModelList(ctx, req.(*GetMyModelListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Octopus_GetModelVersionList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetModelVersionListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OctopusServer).GetModelVersionList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/octopus.Octopus/GetModelVersionList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OctopusServer).GetModelVersionList(ctx, req.(*GetModelVersionListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Octopus_DeleteMyModel_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteMyModelReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OctopusServer).DeleteMyModel(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/octopus.Octopus/DeleteMyModel", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OctopusServer).DeleteMyModel(ctx, req.(*DeleteMyModelReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Octopus_DeleteModelVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteModelVersionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OctopusServer).DeleteModelVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/octopus.Octopus/DeleteModelVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OctopusServer).DeleteModelVersion(ctx, req.(*DeleteModelVersionReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Octopus_DownloadModelVersion_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DownloadModelVersionReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OctopusServer).DownloadModelVersion(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/octopus.Octopus/DownloadModelVersion", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OctopusServer).DownloadModelVersion(ctx, req.(*DownloadModelVersionReq)) + } + return interceptor(ctx, in, info, handler) +} + func _Octopus_CreateTrainJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(CreateTrainJobReq) if err := dec(in); err != nil { @@ -1325,6 +1487,26 @@ var Octopus_ServiceDesc = grpc.ServiceDesc{ MethodName: "UploadImageConfirm", Handler: _Octopus_UploadImageConfirm_Handler, }, + { + MethodName: "GetMyModelList", + Handler: _Octopus_GetMyModelList_Handler, + }, + { + MethodName: "GetModelVersionList", + Handler: _Octopus_GetModelVersionList_Handler, + }, + { + MethodName: "DeleteMyModel", + Handler: _Octopus_DeleteMyModel_Handler, + }, + { + MethodName: "DeleteModelVersion", + Handler: _Octopus_DeleteModelVersion_Handler, + }, + { + MethodName: "DownloadModelVersion", + Handler: _Octopus_DownloadModelVersion_Handler, + }, { MethodName: "CreateTrainJob", Handler: _Octopus_CreateTrainJob_Handler, diff --git a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopusclient/octopus.go b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopusclient/octopus.go index 246b8d8c..48c35ee1 100644 --- a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopusclient/octopus.go +++ b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/octopusclient/octopus.go @@ -44,12 +44,18 @@ type ( DeleteDataSetVersionResp = octopus.DeleteDataSetVersionResp DeleteImageReq = octopus.DeleteImageReq DeleteImageResp = octopus.DeleteImageResp + DeleteModelVersionReq = octopus.DeleteModelVersionReq + DeleteModelVersionResp = octopus.DeleteModelVersionResp DeleteMyAlgorithmReq = octopus.DeleteMyAlgorithmReq DeleteMyAlgorithmResp = octopus.DeleteMyAlgorithmResp + DeleteMyModelReq = octopus.DeleteMyModelReq + DeleteMyModelResp = octopus.DeleteMyModelResp DeleteNotebookReq = octopus.DeleteNotebookReq DeleteNotebookResp = octopus.DeleteNotebookResp DownloadAlgorithmReq = octopus.DownloadAlgorithmReq DownloadAlgorithmResp = octopus.DownloadAlgorithmResp + DownloadModelVersionReq = octopus.DownloadModelVersionReq + DownloadModelVersionResp = octopus.DownloadModelVersionResp Envs = octopus.Envs Error = octopus.Error GetAlgorithmApplyListReq = octopus.GetAlgorithmApplyListReq @@ -66,10 +72,14 @@ type ( GetDatasetTypeListResp = octopus.GetDatasetTypeListResp GetDatasetVersionListReq = octopus.GetDatasetVersionListReq GetDatasetVersionListResp = octopus.GetDatasetVersionListResp + GetModelVersionListReq = octopus.GetModelVersionListReq + GetModelVersionListResp = octopus.GetModelVersionListResp GetMyAlgorithmListReq = octopus.GetMyAlgorithmListReq GetMyAlgorithmListResp = octopus.GetMyAlgorithmListResp GetMyDatasetListReq = octopus.GetMyDatasetListReq GetMyDatasetListResp = octopus.GetMyDatasetListResp + GetMyModelListReq = octopus.GetMyModelListReq + GetMyModelListResp = octopus.GetMyModelListResp GetNotebookListReq = octopus.GetNotebookListReq GetNotebookListResp = octopus.GetNotebookListResp GetNotebookReq = octopus.GetNotebookReq @@ -83,6 +93,8 @@ type ( Image = octopus.Image Images = octopus.Images Lables = octopus.Lables + Model = octopus.Model + ModelVersion = octopus.ModelVersion Mounts = octopus.Mounts Nfs = octopus.Nfs Notebook = octopus.Notebook @@ -98,14 +110,19 @@ type ( PayloadDeleteDataSet = octopus.PayloadDeleteDataSet PayloadDeleteDataSetVersion = octopus.PayloadDeleteDataSetVersion PayloadDeleteImage = octopus.PayloadDeleteImage + PayloadDeleteModelVersion = octopus.PayloadDeleteModelVersion PayloadDeleteMyAlgorithm = octopus.PayloadDeleteMyAlgorithm + PayloadDeleteMyModel = octopus.PayloadDeleteMyModel PayloadDeleteNotebook = octopus.PayloadDeleteNotebook PayloadDownloadAlgorithm = octopus.PayloadDownloadAlgorithm + PayloadDownloadModelVersion = octopus.PayloadDownloadModelVersion PayloadGetAlgorithm = octopus.PayloadGetAlgorithm PayloadGetAlgorithmApplyList = octopus.PayloadGetAlgorithmApplyList PayloadGetDatasetApplyList = octopus.PayloadGetDatasetApplyList PayloadGetDatasetTypeList = octopus.PayloadGetDatasetTypeList PayloadGetDatasetVersion = octopus.PayloadGetDatasetVersion + PayloadGetModelVersionList = octopus.PayloadGetModelVersionList + PayloadGetMyModelList = octopus.PayloadGetMyModelList PayloadGetNotebook = octopus.PayloadGetNotebook PayloadGetTrainJobList = octopus.PayloadGetTrainJobList PayloadMyAlgorithmList = octopus.PayloadMyAlgorithmList @@ -147,6 +164,7 @@ type ( UploadImageReq = octopus.UploadImageReq UploadImageResp = octopus.UploadImageResp VersionAccesses = octopus.VersionAccesses + VersionDetail = octopus.VersionDetail Octopus interface { GetComputingPower(ctx context.Context, in *ResourceReq, opts ...grpc.CallOption) (*CpResp, error) @@ -186,6 +204,12 @@ type ( DeleteImage(ctx context.Context, in *DeleteImageReq, opts ...grpc.CallOption) (*DeleteImageResp, error) UploadImage(ctx context.Context, in *UploadImageReq, opts ...grpc.CallOption) (*UploadImageResp, error) UploadImageConfirm(ctx context.Context, in *UploadImageConfirmReq, opts ...grpc.CallOption) (*UploadImageConfirmResp, error) + // Model + GetMyModelList(ctx context.Context, in *GetMyModelListReq, opts ...grpc.CallOption) (*GetMyModelListResp, error) + GetModelVersionList(ctx context.Context, in *GetModelVersionListReq, opts ...grpc.CallOption) (*GetModelVersionListResp, error) + DeleteMyModel(ctx context.Context, in *DeleteMyModelReq, opts ...grpc.CallOption) (*DeleteMyModelResp, error) + DeleteModelVersion(ctx context.Context, in *DeleteModelVersionReq, opts ...grpc.CallOption) (*DeleteModelVersionResp, error) + DownloadModelVersion(ctx context.Context, in *DownloadModelVersionReq, opts ...grpc.CallOption) (*DownloadModelVersionResp, error) // TrainJobService CreateTrainJob(ctx context.Context, in *CreateTrainJobReq, opts ...grpc.CallOption) (*CreateTrainJobResp, error) GetTrainJobList(ctx context.Context, in *GetTrainJobListReq, opts ...grpc.CallOption) (*GetTrainJobListResp, error) @@ -371,6 +395,32 @@ func (m *defaultOctopus) UploadImageConfirm(ctx context.Context, in *UploadImage return client.UploadImageConfirm(ctx, in, opts...) } +// Model +func (m *defaultOctopus) GetMyModelList(ctx context.Context, in *GetMyModelListReq, opts ...grpc.CallOption) (*GetMyModelListResp, error) { + client := octopus.NewOctopusClient(m.cli.Conn()) + return client.GetMyModelList(ctx, in, opts...) +} + +func (m *defaultOctopus) GetModelVersionList(ctx context.Context, in *GetModelVersionListReq, opts ...grpc.CallOption) (*GetModelVersionListResp, error) { + client := octopus.NewOctopusClient(m.cli.Conn()) + return client.GetModelVersionList(ctx, in, opts...) +} + +func (m *defaultOctopus) DeleteMyModel(ctx context.Context, in *DeleteMyModelReq, opts ...grpc.CallOption) (*DeleteMyModelResp, error) { + client := octopus.NewOctopusClient(m.cli.Conn()) + return client.DeleteMyModel(ctx, in, opts...) +} + +func (m *defaultOctopus) DeleteModelVersion(ctx context.Context, in *DeleteModelVersionReq, opts ...grpc.CallOption) (*DeleteModelVersionResp, error) { + client := octopus.NewOctopusClient(m.cli.Conn()) + return client.DeleteModelVersion(ctx, in, opts...) +} + +func (m *defaultOctopus) DownloadModelVersion(ctx context.Context, in *DownloadModelVersionReq, opts ...grpc.CallOption) (*DownloadModelVersionResp, error) { + client := octopus.NewOctopusClient(m.cli.Conn()) + return client.DownloadModelVersion(ctx, in, opts...) +} + // TrainJobService func (m *defaultOctopus) CreateTrainJob(ctx context.Context, in *CreateTrainJobReq, opts ...grpc.CallOption) (*CreateTrainJobResp, error) { client := octopus.NewOctopusClient(m.cli.Conn()) diff --git a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/pb/octopus.proto b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/pb/octopus.proto index 907a8348..f466ef9f 100644 --- a/adaptor/PCM-AI/PCM-OCTOPUS/rpc/pb/octopus.proto +++ b/adaptor/PCM-AI/PCM-OCTOPUS/rpc/pb/octopus.proto @@ -464,6 +464,7 @@ message PayloadGetDatasetTypeList{ /******************DatasetService End*************************/ /******************ModelDeployService Start*************************/ + /******************ModelDeployService End*************************/ /******************Develop Start*************************/ @@ -734,6 +735,116 @@ message PayloadUploadImageConfirm{ /******************ImageService End*************************/ /******************Model Start*************************/ +message GetModelVersionListReq{ + string platform =1; + string modelId = 2; + int32 pageIndex = 3; + int32 pageSize =4; +} + +message GetModelVersionListResp{ + bool success =1; + PayloadGetModelVersionList payload =2; + Error error = 3; +} + +message PayloadGetModelVersionList{ + int32 totalSize = 1; + repeated ModelVersion modelVersions = 2; +} + +message ModelVersion{ + bool isShared = 1; + VersionDetail versionDetail = 2; +} + +message VersionDetail{ + int64 createdAt = 1; + string descript = 2; + int32 fileStatus = 3; + string modelId = 4; + string version = 5; +} + +message DeleteMyModelReq{ + string platform =1; + string modelId = 2; +} + +message DeleteMyModelResp{ + bool success =1; + PayloadDeleteMyModel payload =2; + Error error = 3; +} + +message PayloadDeleteMyModel{ + int64 deletedAt = 1; +} + +message DeleteModelVersionReq{ + string platform =1; + string modelId = 2; + string version = 3; +} + +message DeleteModelVersionResp{ + bool success =1; + PayloadDeleteModelVersion payload =2; + Error error = 3; +} + +message PayloadDeleteModelVersion{ + int64 deletedAt = 1; +} + +message DownloadModelVersionReq{ + string platform =1; + string modelId = 2; + string version = 3; + string domain = 4; +} + +message DownloadModelVersionResp{ + bool success =1; + PayloadDownloadModelVersion payload =2; + Error error = 3; +} + +message PayloadDownloadModelVersion{ + string downloadUrl = 1; +} + +message GetMyModelListReq{ + string platform =1; + int32 pageIndex =2; + int32 pageSize =3; +} + +message GetMyModelListResp{ + bool success =1; + PayloadGetMyModelList payload =2; + Error error = 3; +} + +message PayloadGetMyModelList{ + int32 totalSize = 1; + repeated Model models = 2; +} + +message Model{ + string algorithmName = 1; + string algorithmVersion = 2; + int64 createdAt = 3; + string frameWorkId = 4; + string frameWorkName = 5; + string latestVersion = 6; + string modelDescript = 7; + string modelId = 8; + string modelName = 9; + string spaceId = 10; + string spaceName = 11; + string userName = 12; +} /******************Model End*************************/ /******************TrainJobService Start*************************/ @@ -925,7 +1036,11 @@ service Octopus { //Model - + rpc GetMyModelList(GetMyModelListReq) returns (GetMyModelListResp); + rpc GetModelVersionList(GetModelVersionListReq) returns (GetModelVersionListResp); + rpc DeleteMyModel(DeleteMyModelReq) returns (DeleteMyModelResp); + rpc DeleteModelVersion(DeleteModelVersionReq) returns (DeleteModelVersionResp); + rpc DownloadModelVersion(DownloadModelVersionReq) returns (DownloadModelVersionResp); //TrainJobService