diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC.pb.go b/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC.pb.go index b2fa7035..cb6dc6fa 100644 --- a/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC.pb.go +++ b/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.28.1 -// protoc v3.21.12 +// protoc v3.19.4 // source: hpcAC.proto package hpcAC @@ -143,9 +143,9 @@ type ListJobManagerResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code", json:"code" - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg", json:"msg" - JobManagers []*JobManager `protobuf:"bytes,3,rep,name=job_managers,json=jobManagers,proto3" json:"job_managers,omitempty"` // @gotags: copier:"JobManagers", json:"data" + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code", json:"code" + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg", json:"msg" + Data []*JobManager `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"JobManagers", json:"data" } func (x *ListJobManagerResp) Reset() { @@ -194,9 +194,9 @@ func (x *ListJobManagerResp) GetMsg() string { return "" } -func (x *ListJobManagerResp) GetJobManagers() []*JobManager { +func (x *ListJobManagerResp) GetData() []*JobManager { if x != nil { - return x.JobManagers + return x.Data } return nil } @@ -207,65 +207,65 @@ type JobInitAttr struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"Account" copier:"Account"` // @gotags: copier:"Account", json:"Account" - AccrueTime string `protobuf:"bytes,2,opt,name=accrue_time,json=accrueTime,proto3" json:"AccrueTime" copier:"AccrueTime"` // @gotags: copier:"AccrueTime", json:"AccrueTime" - AllocNodeSid string `protobuf:"bytes,3,opt,name=alloc_node_sid,json=allocNodeSid,proto3" json:"AllocNode:Sid" copier:"AllocNode:Sid"` // @gotags: copier:"AllocNode:Sid", json:"AllocNode:Sid" - BatchFlag string `protobuf:"bytes,4,opt,name=batch_flag,json=batchFlag,proto3" json:"BatchFlag" copier:"BatchFlag"` // @gotags: copier:"BatchFlag", json:"BatchFlag" - CpusTask string `protobuf:"bytes,5,opt,name=cpus_task,json=cpusTask,proto3" json:"CPUs/Task" copier:"CPUs/Task"` // @gotags: copier:"CPUs/Task", json:"CPUs/Task" - Command string `protobuf:"bytes,6,opt,name=command,proto3" json:"Command" copier:"Command"` // @gotags: copier:"Command", json:"Command" - CommandExist string `protobuf:"bytes,7,opt,name=command_exist,json=commandExist,proto3" json:"CommandExist" copier:"CommandExist"` // @gotags: copier:"CommandExist", json:"CommandExist" - Comment string `protobuf:"bytes,8,opt,name=comment,proto3" json:"Comment" copier:"Comment"` // @gotags: copier:"Comment", json:"Comment" - Contiguous string `protobuf:"bytes,9,opt,name=contiguous,proto3" json:"Contiguous" copier:"Contiguous"` // @gotags: copier:"Contiguous", json:"Contiguous" - CoreSpec string `protobuf:"bytes,10,opt,name=core_spec,json=coreSpec,proto3" json:"CoreSpec" copier:"CoreSpec"` // @gotags: copier:"CoreSpec", json:"CoreSpec" - Deadline string `protobuf:"bytes,11,opt,name=deadline,proto3" json:"Deadline" copier:"Deadline"` // @gotags: copier:"Deadline", json:"Deadline" - DelayBoot string `protobuf:"bytes,12,opt,name=delay_boot,json=delayBoot,proto3" json:"DelayBoot" copier:"DelayBoot"` // @gotags: copier:"DelayBoot", json:"DelayBoot" - Dependency string `protobuf:"bytes,13,opt,name=dependency,proto3" json:"Dependency" copier:"Dependency"` // @gotags: copier:"Dependency", json:"Dependency" - EligibleTime string `protobuf:"bytes,14,opt,name=eligible_time,json=eligibleTime,proto3" json:"EligibleTime" copier:"EligibleTime"` // @gotags: copier:"EligibleTime", json:"EligibleTime" - EndTime string `protobuf:"bytes,15,opt,name=end_time,json=endTime,proto3" json:"EndTime" copier:"EndTime"` // @gotags: copier:"EndTime", json:"EndTime" - ExcNodeList string `protobuf:"bytes,16,opt,name=exc_node_list,json=excNodeList,proto3" json:"ExcNodeList" copier:"ExcNodeList"` // @gotags: copier:"ExcNodeList", json:"ExcNodeList" - ExitCode string `protobuf:"bytes,17,opt,name=exit_code,json=exitCode,proto3" json:"ExitCode" copier:"ExitCode"` // @gotags: copier:"ExitCode", json:"ExitCode" - Features string `protobuf:"bytes,18,opt,name=features,proto3" json:"Features" copier:"Features"` // @gotags: copier:"Features", json:"Features" - GroupId string `protobuf:"bytes,19,opt,name=group_id,json=groupId,proto3" json:"GroupId" copier:"GroupId"` // @gotags: copier:"GroupId", json:"GroupId" - JobId string `protobuf:"bytes,20,opt,name=job_id,json=jobId,proto3" json:"JobId" copier:"JobId"` // @gotags: copier:"JobId", json:"JobId" - JobName string `protobuf:"bytes,21,opt,name=job_name,json=jobName,proto3" json:"JobName" copier:"JobName"` // @gotags: copier:"JobName", json:"JobName" - JobState string `protobuf:"bytes,22,opt,name=job_state,json=jobState,proto3" json:"JobState" copier:"JobState"` // @gotags: copier:"JobState", json:"JobState" - Licenses string `protobuf:"bytes,23,opt,name=licenses,proto3" json:"Licenses" copier:"Licenses"` // @gotags: copier:"Licenses", json:"Licenses" - McsLabel string `protobuf:"bytes,24,opt,name=mcs_label,json=mcsLabel,proto3" json:"MCS_label" copier:"MCS_label"` // @gotags: copier:"MCS_label", json:"MCS_label" - MinCpusNode string `protobuf:"bytes,25,opt,name=min_cpus_node,json=minCpusNode,proto3" json:"MinCPUsNode" copier:"MinCPUsNode"` // @gotags: copier:"MinCPUsNode", json:"MinCPUsNode" - MinTmpDiskNode string `protobuf:"bytes,26,opt,name=min_tmp_disk_node,json=minTmpDiskNode,proto3" json:"MinTmpDiskNode" copier:"MinTmpDiskNode"` // @gotags: copier:"MinTmpDiskNode", json:"MinTmpDiskNode" - Network string `protobuf:"bytes,27,opt,name=network,proto3" json:"Network" copier:"Network"` // @gotags: copier:"Network", json:"Network" - Nice string `protobuf:"bytes,28,opt,name=nice,proto3" json:"Nice" copier:"Nice"` // @gotags: copier:"Nice", json:"Nice" - NodeList string `protobuf:"bytes,29,opt,name=node_list,json=nodeList,proto3" json:"NodeList" copier:"NodeList"` // @gotags: copier:"NodeList", json:"NodeList" - NtasksPerNbsc string `protobuf:"bytes,30,opt,name=ntasks_per_nbsc,json=ntasksPerNbsc,proto3" json:"NtasksPerN:B:S:C" copier:"NtasksPerN:B:S:C"` // @gotags: copier:"NtasksPerN:B:S:C", json:"NtasksPerN:B:S:C" - NumCpus string `protobuf:"bytes,31,opt,name=num_cpus,json=numCpus,proto3" json:"NumCPUs" copier:"NumCPUs"` // @gotags: copier:"NumCPUs", json:"NumCPUs" - NumNodes string `protobuf:"bytes,32,opt,name=num_nodes,json=numNodes,proto3" json:"NumNodes" copier:"NumNodes"` // @gotags: copier:"NumNodes", json:"NumNodes" - NumTasks string `protobuf:"bytes,33,opt,name=num_tasks,json=numTasks,proto3" json:"NumTasks" copier:"NumTasks"` // @gotags: copier:"NumTasks", json:"NumTasks" - OverSubscribe string `protobuf:"bytes,34,opt,name=over_subscribe,json=overSubscribe,proto3" json:"OverSubscribe" copier:"OverSubscribe"` // @gotags: copier:"OverSubscribe", json:"OverSubscribe" - Partition string `protobuf:"bytes,35,opt,name=partition,proto3" json:"Partition" copier:"Partition"` // @gotags: copier:"Partition", json:"Partition" - Power string `protobuf:"bytes,36,opt,name=power,proto3" json:"Power" copier:"Power"` // @gotags: copier:"Power", json:"Power" - Priority string `protobuf:"bytes,37,opt,name=priority,proto3" json:"Priority" copier:"Priority"` // @gotags: copier:"Priority", json:"Priority" - Qos string `protobuf:"bytes,38,opt,name=qos,proto3" json:"QOS" copier:"QOS"` // @gotags: copier:"QOS", json:"QOS" - Reason string `protobuf:"bytes,39,opt,name=reason,proto3" json:"Reason" copier:"Reason"` // @gotags: copier:"Reason", json:"Reason" - Reboot string `protobuf:"bytes,40,opt,name=reboot,proto3" json:"Reboot" copier:"Reboot"` // @gotags: copier:"Reboot", json:"Reboot" - ReqBsct string `protobuf:"bytes,41,opt,name=req_bsct,json=reqBsct,proto3" json:"ReqB:S:C:T" copier:"ReqB:S:C:T"` // @gotags: copier:"ReqB:S:C:T", json:"ReqB:S:C:T" - ReqNodeList string `protobuf:"bytes,42,opt,name=ReqNodeList,proto3" json:"ReqNodeList" copier:"ReqNodeList"` // @gotags: copier:"ReqNodeList", json:"ReqNodeList" - Requeue string `protobuf:"bytes,43,opt,name=requeue,proto3" json:"Requeue" copier:"Requeue"` // @gotags: copier:"Requeue", json:"Requeue" - Restarts string `protobuf:"bytes,44,opt,name=restarts,proto3" json:"Restarts" copier:"Restarts"` // @gotags: copier:"Restarts", json:"Restarts" - RunTime string `protobuf:"bytes,45,opt,name=run_time,json=runTime,proto3" json:"RunTime" copier:"RunTime"` // @gotags: copier:"RunTime", json:"RunTime" - BatchHost string `protobuf:"bytes,46,opt,name=batch_host,json=batchHost,proto3" json:"BatchHost" copier:"BatchHost"` // @gotags: copier:"BatchHost", json:"BatchHost" - SecsPreSuspend string `protobuf:"bytes,47,opt,name=secs_pre_suspend,json=secsPreSuspend,proto3" json:"SecsPreSuspend" copier:"SecsPreSuspend"` // @gotags: copier:"SecsPreSuspend", json:"SecsPreSuspend" - SocksNode string `protobuf:"bytes,48,opt,name=socks_node,json=socksNode,proto3" json:"Socks/Node" copier:"Socks/Node"` // @gotags: copier:"Socks/Node", json:"Socks/Node" - StartTime string `protobuf:"bytes,49,opt,name=start_time,json=startTime,proto3" json:"StartTime" copier:"StartTime"` // @gotags: copier:"StartTime", json:"StartTime" - StdErr string `protobuf:"bytes,50,opt,name=std_err,json=stdErr,proto3" json:"StdErr" copier:"StdErr"` // @gotags: copier:"StdErr", json:"StdErr" - StdIn string `protobuf:"bytes,51,opt,name=std_in,json=stdIn,proto3" json:"StdIn" copier:"StdIn"` // @gotags: copier:"StdIn", json:"StdIn" - StdOut string `protobuf:"bytes,52,opt,name=std_out,json=stdOut,proto3" json:"StdOut" copier:"StdOut"` // @gotags: copier:"StdOut", json:"StdOut" - SubmitTime string `protobuf:"bytes,53,opt,name=submit_time,json=submitTime,proto3" json:"SubmitTime" copier:"SubmitTime"` // @gotags: copier:"SubmitTime", json:"SubmitTime" - SuspendTime string `protobuf:"bytes,54,opt,name=suspend_time,json=suspendTime,proto3" json:"SuspendTime" copier:"SuspendTime"` // @gotags: copier:"SuspendTime", json:"SuspendTime" - Tres string `protobuf:"bytes,55,opt,name=tres,proto3" json:"TRES" copier:"TRES"` // @gotags: copier:"TRES", json:"TRES" - TimeLimit string `protobuf:"bytes,56,opt,name=time_limit,json=timeLimit,proto3" json:"TimeLimit" copier:"TimeLimit"` // @gotags: copier:"TimeLimit", json:"TimeLimit" - TimeMin string `protobuf:"bytes,57,opt,name=time_min,json=timeMin,proto3" json:"TimeMin" copier:"TimeMin"` // @gotags: copier:"TimeMin", json:"TimeMin" - UserId string `protobuf:"bytes,58,opt,name=user_id,json=userId,proto3" json:"UserId" copier:"UserId"` // @gotags: copier:"UserId", json:"UserId" - WorkDir string `protobuf:"bytes,59,opt,name=work_dir,json=workDir,proto3" json:"WorkDir" copier:"WorkDir"` // @gotags: copier:"WorkDir", json:"WorkDir" + Account string `protobuf:"bytes,1,opt,name=account,proto3" json:"account,omitempty"` // @gotags: copier:"Account", json:"Account" + AccrueTime string `protobuf:"bytes,2,opt,name=accrue_time,json=accrueTime,proto3" json:"accrue_time,omitempty"` // @gotags: copier:"AccrueTime", json:"AccrueTime" + AllocNodeSid string `protobuf:"bytes,3,opt,name=alloc_node_sid,json=allocNodeSid,proto3" json:"alloc_node_sid,omitempty"` // @gotags: copier:"AllocNode:Sid", json:"AllocNode:Sid" + BatchFlag string `protobuf:"bytes,4,opt,name=batch_flag,json=batchFlag,proto3" json:"batch_flag,omitempty"` // @gotags: copier:"BatchFlag", json:"BatchFlag" + CpusTask string `protobuf:"bytes,5,opt,name=cpus_task,json=cpusTask,proto3" json:"cpus_task,omitempty"` // @gotags: copier:"CPUs/Task", json:"CPUs/Task" + Command string `protobuf:"bytes,6,opt,name=command,proto3" json:"command,omitempty"` // @gotags: copier:"Command", json:"Command" + CommandExist string `protobuf:"bytes,7,opt,name=command_exist,json=commandExist,proto3" json:"command_exist,omitempty"` // @gotags: copier:"CommandExist", json:"CommandExist" + Comment string `protobuf:"bytes,8,opt,name=comment,proto3" json:"comment,omitempty"` // @gotags: copier:"Comment", json:"Comment" + Contiguous string `protobuf:"bytes,9,opt,name=contiguous,proto3" json:"contiguous,omitempty"` // @gotags: copier:"Contiguous", json:"Contiguous" + CoreSpec string `protobuf:"bytes,10,opt,name=core_spec,json=coreSpec,proto3" json:"core_spec,omitempty"` // @gotags: copier:"CoreSpec", json:"CoreSpec" + Deadline string `protobuf:"bytes,11,opt,name=deadline,proto3" json:"deadline,omitempty"` // @gotags: copier:"Deadline", json:"Deadline" + DelayBoot string `protobuf:"bytes,12,opt,name=delay_boot,json=delayBoot,proto3" json:"delay_boot,omitempty"` // @gotags: copier:"DelayBoot", json:"DelayBoot" + Dependency string `protobuf:"bytes,13,opt,name=dependency,proto3" json:"dependency,omitempty"` // @gotags: copier:"Dependency", json:"Dependency" + EligibleTime string `protobuf:"bytes,14,opt,name=eligible_time,json=eligibleTime,proto3" json:"eligible_time,omitempty"` // @gotags: copier:"EligibleTime", json:"EligibleTime" + EndTime string `protobuf:"bytes,15,opt,name=end_time,json=endTime,proto3" json:"end_time,omitempty"` // @gotags: copier:"EndTime", json:"EndTime" + ExcNodeList string `protobuf:"bytes,16,opt,name=exc_node_list,json=excNodeList,proto3" json:"exc_node_list,omitempty"` // @gotags: copier:"ExcNodeList", json:"ExcNodeList" + ExitCode string `protobuf:"bytes,17,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` // @gotags: copier:"ExitCode", json:"ExitCode" + Features string `protobuf:"bytes,18,opt,name=features,proto3" json:"features,omitempty"` // @gotags: copier:"Features", json:"Features" + GroupId string `protobuf:"bytes,19,opt,name=group_id,json=groupId,proto3" json:"group_id,omitempty"` // @gotags: copier:"GroupId", json:"GroupId" + JobId string `protobuf:"bytes,20,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // @gotags: copier:"JobId", json:"JobId" + JobName string `protobuf:"bytes,21,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty"` // @gotags: copier:"JobName", json:"JobName" + JobState string `protobuf:"bytes,22,opt,name=job_state,json=jobState,proto3" json:"job_state,omitempty"` // @gotags: copier:"JobState", json:"JobState" + Licenses string `protobuf:"bytes,23,opt,name=licenses,proto3" json:"licenses,omitempty"` // @gotags: copier:"Licenses", json:"Licenses" + McsLabel string `protobuf:"bytes,24,opt,name=mcs_label,json=mcsLabel,proto3" json:"mcs_label,omitempty"` // @gotags: copier:"MCS_label", json:"MCS_label" + MinCpusNode string `protobuf:"bytes,25,opt,name=min_cpus_node,json=minCpusNode,proto3" json:"min_cpus_node,omitempty"` // @gotags: copier:"MinCPUsNode", json:"MinCPUsNode" + MinTmpDiskNode string `protobuf:"bytes,26,opt,name=min_tmp_disk_node,json=minTmpDiskNode,proto3" json:"min_tmp_disk_node,omitempty"` // @gotags: copier:"MinTmpDiskNode", json:"MinTmpDiskNode" + Network string `protobuf:"bytes,27,opt,name=network,proto3" json:"network,omitempty"` // @gotags: copier:"Network", json:"Network" + Nice string `protobuf:"bytes,28,opt,name=nice,proto3" json:"nice,omitempty"` // @gotags: copier:"Nice", json:"Nice" + NodeList string `protobuf:"bytes,29,opt,name=node_list,json=nodeList,proto3" json:"node_list,omitempty"` // @gotags: copier:"NodeList", json:"NodeList" + NtasksPerNbsc string `protobuf:"bytes,30,opt,name=ntasks_per_nbsc,json=ntasksPerNbsc,proto3" json:"ntasks_per_nbsc,omitempty"` // @gotags: copier:"NtasksPerN:B:S:C", json:"NtasksPerN:B:S:C" + NumCpus string `protobuf:"bytes,31,opt,name=num_cpus,json=numCpus,proto3" json:"num_cpus,omitempty"` // @gotags: copier:"NumCPUs", json:"NumCPUs" + NumNodes string `protobuf:"bytes,32,opt,name=num_nodes,json=numNodes,proto3" json:"num_nodes,omitempty"` // @gotags: copier:"NumNodes", json:"NumNodes" + NumTasks string `protobuf:"bytes,33,opt,name=num_tasks,json=numTasks,proto3" json:"num_tasks,omitempty"` // @gotags: copier:"NumTasks", json:"NumTasks" + OverSubscribe string `protobuf:"bytes,34,opt,name=over_subscribe,json=overSubscribe,proto3" json:"over_subscribe,omitempty"` // @gotags: copier:"OverSubscribe", json:"OverSubscribe" + Partition string `protobuf:"bytes,35,opt,name=partition,proto3" json:"partition,omitempty"` // @gotags: copier:"Partition", json:"Partition" + Power string `protobuf:"bytes,36,opt,name=power,proto3" json:"power,omitempty"` // @gotags: copier:"Power", json:"Power" + Priority string `protobuf:"bytes,37,opt,name=priority,proto3" json:"priority,omitempty"` // @gotags: copier:"Priority", json:"Priority" + Qos string `protobuf:"bytes,38,opt,name=qos,proto3" json:"qos,omitempty"` // @gotags: copier:"QOS", json:"QOS" + Reason string `protobuf:"bytes,39,opt,name=reason,proto3" json:"reason,omitempty"` // @gotags: copier:"Reason", json:"Reason" + Reboot string `protobuf:"bytes,40,opt,name=reboot,proto3" json:"reboot,omitempty"` // @gotags: copier:"Reboot", json:"Reboot" + ReqBsct string `protobuf:"bytes,41,opt,name=req_bsct,json=reqBsct,proto3" json:"req_bsct,omitempty"` // @gotags: copier:"ReqB:S:C:T", json:"ReqB:S:C:T" + ReqNodeList string `protobuf:"bytes,42,opt,name=ReqNodeList,proto3" json:"ReqNodeList,omitempty"` // @gotags: copier:"ReqNodeList", json:"ReqNodeList" + Requeue string `protobuf:"bytes,43,opt,name=requeue,proto3" json:"requeue,omitempty"` // @gotags: copier:"Requeue", json:"Requeue" + Restarts string `protobuf:"bytes,44,opt,name=restarts,proto3" json:"restarts,omitempty"` // @gotags: copier:"Restarts", json:"Restarts" + RunTime string `protobuf:"bytes,45,opt,name=run_time,json=runTime,proto3" json:"run_time,omitempty"` // @gotags: copier:"RunTime", json:"RunTime" + BatchHost string `protobuf:"bytes,46,opt,name=batch_host,json=batchHost,proto3" json:"batch_host,omitempty"` // @gotags: copier:"BatchHost", json:"BatchHost" + SecsPreSuspend string `protobuf:"bytes,47,opt,name=secs_pre_suspend,json=secsPreSuspend,proto3" json:"secs_pre_suspend,omitempty"` // @gotags: copier:"SecsPreSuspend", json:"SecsPreSuspend" + SocksNode string `protobuf:"bytes,48,opt,name=socks_node,json=socksNode,proto3" json:"socks_node,omitempty"` // @gotags: copier:"Socks/Node", json:"Socks/Node" + StartTime string `protobuf:"bytes,49,opt,name=start_time,json=startTime,proto3" json:"start_time,omitempty"` // @gotags: copier:"StartTime", json:"StartTime" + StdErr string `protobuf:"bytes,50,opt,name=std_err,json=stdErr,proto3" json:"std_err,omitempty"` // @gotags: copier:"StdErr", json:"StdErr" + StdIn string `protobuf:"bytes,51,opt,name=std_in,json=stdIn,proto3" json:"std_in,omitempty"` // @gotags: copier:"StdIn", json:"StdIn" + StdOut string `protobuf:"bytes,52,opt,name=std_out,json=stdOut,proto3" json:"std_out,omitempty"` // @gotags: copier:"StdOut", json:"StdOut" + SubmitTime string `protobuf:"bytes,53,opt,name=submit_time,json=submitTime,proto3" json:"submit_time,omitempty"` // @gotags: copier:"SubmitTime", json:"SubmitTime" + SuspendTime string `protobuf:"bytes,54,opt,name=suspend_time,json=suspendTime,proto3" json:"suspend_time,omitempty"` // @gotags: copier:"SuspendTime", json:"SuspendTime" + Tres string `protobuf:"bytes,55,opt,name=tres,proto3" json:"tres,omitempty"` // @gotags: copier:"TRES", json:"TRES" + TimeLimit string `protobuf:"bytes,56,opt,name=time_limit,json=timeLimit,proto3" json:"time_limit,omitempty"` // @gotags: copier:"TimeLimit", json:"TimeLimit" + TimeMin string `protobuf:"bytes,57,opt,name=time_min,json=timeMin,proto3" json:"time_min,omitempty"` // @gotags: copier:"TimeMin", json:"TimeMin" + UserId string `protobuf:"bytes,58,opt,name=user_id,json=userId,proto3" json:"user_id,omitempty"` // @gotags: copier:"UserId", json:"UserId" + WorkDir string `protobuf:"bytes,59,opt,name=work_dir,json=workDir,proto3" json:"work_dir,omitempty"` // @gotags: copier:"WorkDir", json:"WorkDir" } func (x *JobInitAttr) Reset() { @@ -718,28 +718,28 @@ type JobVncSessionInfo struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Archive string `protobuf:"bytes,1,opt,name=archive,proto3" json:"archive" copier:"archive"` // @gotags: copier:"archive", json:"archive" - IClientNumber uint32 `protobuf:"varint,2,opt,name=i_client_number,json=iClientNumber,proto3" json:"iClientNumber" copier:"iClientNumber"` // @gotags: copier:"iClientNumber", json:"iClientNumber" - IPixelDepth string `protobuf:"bytes,3,opt,name=i_pixel_depth,json=iPixelDepth,proto3" json:"iPixelDepth" copier:"iPixelDepth"` // @gotags: copier:"iPixelDepth", json:"iPixelDepth" - ListClients string `protobuf:"bytes,4,opt,name=list_clients,json=listClients,proto3" json:"listClients" copier:"listClients"` // @gotags: copier:"listClients", json:"listClients" - Locale string `protobuf:"bytes,5,opt,name=locale,proto3" json:"locale" copier:"locale"` // @gotags: copier:"locale", json:"locale" - LoginPasswd string `protobuf:"bytes,6,opt,name=loginPasswd,proto3" json:"loginPasswd" copier:"loginPasswd"` // @gotags: copier:"loginPasswd", json:"loginPasswd" - MapSessionExtraAttrs string `protobuf:"bytes,7,opt,name=map_session_extra_attrs,json=mapSessionExtraAttrs,proto3" json:"mapSessionExtraAttrs" copier:"mapSessionExtraAttrs"` // @gotags: copier:"mapSessionExtraAttrs", json:"mapSessionExtraAttrs" - StrAuthType string `protobuf:"bytes,8,opt,name=str_auth_type,json=strAuthType,proto3" json:"strAuthType" copier:"strAuthType"` // @gotags: copier:"strAuthType", json:"strAuthType" - StrGeometry string `protobuf:"bytes,9,opt,name=str_geometry,json=strGeometry,proto3" json:"strGeometry" copier:"strGeometry"` // @gotags: copier:"strGeometry", json:"strGeometry" - StrJobManagerAddr string `protobuf:"bytes,10,opt,name=str_job_manager_addr,json=strJobManagerAddr,proto3" json:"strJobManagerAddr" copier:"strJobManagerAddr"` // @gotags: copier:"strJobManagerAddr", json:"strJobManagerAddr" - StrJobManagerId string `protobuf:"bytes,11,opt,name=str_job_manager_id,json=strJobManagerId,proto3" json:"strJobManagerID" copier:"strJobManagerID"` // @gotags: copier:"strJobManagerID", json:"strJobManagerID" - StrJobManagerName string `protobuf:"bytes,12,opt,name=str_job_manager_name,json=strJobManagerName,proto3" json:"strJobManagerName" copier:"strJobManagerName"` // @gotags: copier:"strJobManagerName", json:"strJobManagerName" - StrRelateJobId string `protobuf:"bytes,13,opt,name=str_relate_job_id,json=strRelateJobId,proto3" json:"strRelateJobID" copier:"strRelateJobID"` // @gotags: copier:"strRelateJobID", json:"strRelateJobID" - StrServerAddr string `protobuf:"bytes,14,opt,name=str_server_addr,json=strServerAddr,proto3" json:"strServerAddr" copier:"strServerAddr"` // @gotags: copier:"strServerAddr", json:"strServerAddr" - StrServerName string `protobuf:"bytes,15,opt,name=str_server_name,json=strServerName,proto3" json:"strServerName" copier:"strServerName"` // @gotags: copier:"strServerName", json:"strServerName" - StrSessionCtime string `protobuf:"bytes,16,opt,name=str_session_ctime,json=strSessionCtime,proto3" json:"strSessionCTime" copier:"strSessionCTime"` // @gotags: copier:"strSessionCTime", json:"strSessionCTime" - StrSessionHeight string `protobuf:"bytes,17,opt,name=str_session_height,json=strSessionHeight,proto3" json:"strSessionHeight" copier:"strSessionHeight"` // @gotags: copier:"strSessionHeight", json:"strSessionHeight" - StrSessionId string `protobuf:"bytes,18,opt,name=str_session_id,json=strSessionId,proto3" json:"strSessionID" copier:"strSessionID"` // @gotags: copier:"strSessionID", json:"strSessionID" - StrSessionOwner string `protobuf:"bytes,19,opt,name=str_session_owner,json=strSessionOwner,proto3" json:"strSessionOwner" copier:"strSessionOwner"` // @gotags: copier:"strSessionOwner", json:"strSessionOwner" - StrSessionType string `protobuf:"bytes,20,opt,name=str_session_type,json=strSessionType,proto3" json:"strSessionType" copier:"strSessionType"` // @gotags: copier:"strSessionType", json:"strSessionType" - StrSessionWidth string `protobuf:"bytes,21,opt,name=str_session_width,json=strSessionWidth,proto3" json:"strSessionWidth" copier:"strSessionWidth"` // @gotags: copier:"strSessionWidth", json:"strSessionWidth" - VncCode string `protobuf:"bytes,22,opt,name=vnc_code,json=vncCode,proto3" json:"vncCode" copier:"vncCode"` // @gotags: copier:"vncCode", json:"vncCode" + Archive string `protobuf:"bytes,1,opt,name=archive,proto3" json:"archive,omitempty"` // @gotags: copier:"archive", json:"archive" + IClientNumber uint32 `protobuf:"varint,2,opt,name=i_client_number,json=iClientNumber,proto3" json:"i_client_number,omitempty"` // @gotags: copier:"iClientNumber", json:"iClientNumber" + IPixelDepth string `protobuf:"bytes,3,opt,name=i_pixel_depth,json=iPixelDepth,proto3" json:"i_pixel_depth,omitempty"` // @gotags: copier:"iPixelDepth", json:"iPixelDepth" + ListClients string `protobuf:"bytes,4,opt,name=list_clients,json=listClients,proto3" json:"list_clients,omitempty"` // @gotags: copier:"listClients", json:"listClients" + Locale string `protobuf:"bytes,5,opt,name=locale,proto3" json:"locale,omitempty"` // @gotags: copier:"locale", json:"locale" + LoginPasswd string `protobuf:"bytes,6,opt,name=loginPasswd,proto3" json:"loginPasswd,omitempty"` // @gotags: copier:"loginPasswd", json:"loginPasswd" + MapSessionExtraAttrs string `protobuf:"bytes,7,opt,name=map_session_extra_attrs,json=mapSessionExtraAttrs,proto3" json:"map_session_extra_attrs,omitempty"` // @gotags: copier:"mapSessionExtraAttrs", json:"mapSessionExtraAttrs" + StrAuthType string `protobuf:"bytes,8,opt,name=str_auth_type,json=strAuthType,proto3" json:"str_auth_type,omitempty"` // @gotags: copier:"strAuthType", json:"strAuthType" + StrGeometry string `protobuf:"bytes,9,opt,name=str_geometry,json=strGeometry,proto3" json:"str_geometry,omitempty"` // @gotags: copier:"strGeometry", json:"strGeometry" + StrJobManagerAddr string `protobuf:"bytes,10,opt,name=str_job_manager_addr,json=strJobManagerAddr,proto3" json:"str_job_manager_addr,omitempty"` // @gotags: copier:"strJobManagerAddr", json:"strJobManagerAddr" + StrJobManagerId string `protobuf:"bytes,11,opt,name=str_job_manager_id,json=strJobManagerId,proto3" json:"str_job_manager_id,omitempty"` // @gotags: copier:"strJobManagerID", json:"strJobManagerID" + StrJobManagerName string `protobuf:"bytes,12,opt,name=str_job_manager_name,json=strJobManagerName,proto3" json:"str_job_manager_name,omitempty"` // @gotags: copier:"strJobManagerName", json:"strJobManagerName" + StrRelateJobId string `protobuf:"bytes,13,opt,name=str_relate_job_id,json=strRelateJobId,proto3" json:"str_relate_job_id,omitempty"` // @gotags: copier:"strRelateJobID", json:"strRelateJobID" + StrServerAddr string `protobuf:"bytes,14,opt,name=str_server_addr,json=strServerAddr,proto3" json:"str_server_addr,omitempty"` // @gotags: copier:"strServerAddr", json:"strServerAddr" + StrServerName string `protobuf:"bytes,15,opt,name=str_server_name,json=strServerName,proto3" json:"str_server_name,omitempty"` // @gotags: copier:"strServerName", json:"strServerName" + StrSessionCtime string `protobuf:"bytes,16,opt,name=str_session_ctime,json=strSessionCtime,proto3" json:"str_session_ctime,omitempty"` // @gotags: copier:"strSessionCTime", json:"strSessionCTime" + StrSessionHeight string `protobuf:"bytes,17,opt,name=str_session_height,json=strSessionHeight,proto3" json:"str_session_height,omitempty"` // @gotags: copier:"strSessionHeight", json:"strSessionHeight" + StrSessionId string `protobuf:"bytes,18,opt,name=str_session_id,json=strSessionId,proto3" json:"str_session_id,omitempty"` // @gotags: copier:"strSessionID", json:"strSessionID" + StrSessionOwner string `protobuf:"bytes,19,opt,name=str_session_owner,json=strSessionOwner,proto3" json:"str_session_owner,omitempty"` // @gotags: copier:"strSessionOwner", json:"strSessionOwner" + StrSessionType string `protobuf:"bytes,20,opt,name=str_session_type,json=strSessionType,proto3" json:"str_session_type,omitempty"` // @gotags: copier:"strSessionType", json:"strSessionType" + StrSessionWidth string `protobuf:"bytes,21,opt,name=str_session_width,json=strSessionWidth,proto3" json:"str_session_width,omitempty"` // @gotags: copier:"strSessionWidth", json:"strSessionWidth" + VncCode string `protobuf:"bytes,22,opt,name=vnc_code,json=vncCode,proto3" json:"vnc_code,omitempty"` // @gotags: copier:"vncCode", json:"vncCode" } func (x *JobVncSessionInfo) Reset() { @@ -933,41 +933,41 @@ type JobDetail struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AppType string `protobuf:"bytes,1,opt,name=app_type,json=appType,proto3" json:"appType" copier:"AppType"` // @gotags: copier:"AppType", json:"appType" - AveRss string `protobuf:"bytes,2,opt,name=ave_rss,json=aveRss,proto3" json:"aveRSS" copier:"AveRSS"` // @gotags: copier:"AveRSS", json:"aveRSS" - AveVmSize string `protobuf:"bytes,3,opt,name=ave_vm_size,json=aveVmSize,proto3" json:"aveVMSize" copier:"AveVMSize"` // @gotags: copier:"AveVMSize", json:"aveVMSize" - CpuTimeUsed string `protobuf:"bytes,4,opt,name=cpu_time_used,json=cpuTimeUsed,proto3" json:"cpuTimeUsed" copier:"CpuTimeUsed"` // @gotags: copier:"CpuTimeUsed", json:"cpuTimeUsed" - DcuNumReq uint32 `protobuf:"varint,5,opt,name=dcu_num_req,json=dcuNumReq,proto3" json:"dcuNumReq" copier:"DcuNumReq"` // @gotags: copier:"DcuNumReq", json:"dcuNumReq" - DcuNumUsed uint32 `protobuf:"varint,6,opt,name=dcu_num_used,json=dcuNumUsed,proto3" json:"dcuNumUsed" copier:"DcuNumUsed"` // @gotags: copier:"DcuNumUsed", json:"dcuNumUsed" - ErrorPath string `protobuf:"bytes,7,opt,name=error_path,json=errorPath,proto3" json:"errorPath" copier:"ErrorPath"` // @gotags: copier:"ErrorPath", json:"errorPath" - ExitCode string `protobuf:"bytes,8,opt,name=exit_code,json=exitCode,proto3" json:"exitCode" copier:"ExitCode"` // @gotags: copier:"ExitCode", json:"exitCode" - GpuNumReq uint32 `protobuf:"varint,9,opt,name=gpu_num_req,json=gpuNumReq,proto3" json:"gpuNumReq" copier:"GpuNumReq"` // @gotags: copier:"GpuNumReq", json:"gpuNumReq" - GpuNumUsed uint32 `protobuf:"varint,10,opt,name=gpu_num_used,json=gpuNumUsed,proto3" json:"gpuNumUsed" copier:"GpuNumUsed"` // @gotags: copier:"GpuNumUsed", json:"gpuNumUsed" - JobEndTime string `protobuf:"bytes,11,opt,name=job_end_time,json=jobEndTime,proto3" json:"jobEndTime" copier:"JobEndTime"` // @gotags: copier:"JobEndTime", json:"jobEndTime" - JobId string `protobuf:"bytes,12,opt,name=job_id,json=jobId,proto3" json:"jobId" copier:"JobId"` // @gotags: copier:"JobId", json:"jobId" - JobInitAttr *JobInitAttr `protobuf:"bytes,13,opt,name=job_init_attr,json=jobInitAttr,proto3" json:"JobInitAttr" copier:"JobInitAttr"` // @gotags: copier:"JobInitAttr", json:"JobInitAttr" - JobName string `protobuf:"bytes,14,opt,name=job_name,json=jobName,proto3" json:"jobName" copier:"JobName"` // @gotags: copier:"JobName", json:"jobName" - JobRunTime string `protobuf:"bytes,15,opt,name=job_run_time,json=jobRunTime,proto3" json:"jobRunTime" copier:"JobRunTime"` // @gotags: copier:"JobRunTime", json:"jobRunTime" - JobStartTime string `protobuf:"bytes,16,opt,name=job_start_time,json=jobStartTime,proto3" json:"jobStartTime" copier:"JobStartTime"` // @gotags: copier:"JobStartTime", json:"jobStartTime" - JobStatus string `protobuf:"bytes,17,opt,name=job_status,json=jobStatus,proto3" json:"jobStatus" copier:"JobStatus"` // @gotags: copier:"JobStatus", json:"jobStatus" - JobSubmitTime string `protobuf:"bytes,18,opt,name=job_submit_time,json=jobSubmitTime,proto3" json:"jobSubmitTime" copier:"JobSubmitTime"` // @gotags: copier:"JobSubmitTime", json:"jobSubmitTime" - JobSessionInfo *JobVncSessionInfo `protobuf:"bytes,19,opt,name=job_session_info,json=jobSessionInfo,proto3" json:"jobVncSessionInfo" copier:"JobVncSessionInfo"` // @gotags: copier:"JobVncSessionInfo", json:"jobVncSessionInfo" - JobManagerId string `protobuf:"bytes,20,opt,name=job_manager_id,json=jobManagerId,proto3" json:"jobmanagerId" copier:"JobManagerId"` // @gotags: copier:"JobManagerId", json:"jobmanagerId" - JobManagerName string `protobuf:"bytes,21,opt,name=job_manager_name,json=jobManagerName,proto3" json:"jobmanagerName" copier:"JobManagerName"` // @gotags: copier:"JobManagerName", json:"jobmanagerName" - JobManagerType string `protobuf:"bytes,22,opt,name=job_manager_type,json=jobManagerType,proto3" json:"jobmanagerType" copier:"JobManagerType"` // @gotags: copier:"JobManagerType", json:"jobmanagerType" - MemUsed string `protobuf:"bytes,23,opt,name=mem_used,json=memUsed,proto3" json:"memUsed" copier:"MemUsed"` // @gotags: copier:"MemUsed", json:"memUsed" - NodeNumReq uint32 `protobuf:"varint,24,opt,name=node_num_req,json=nodeNumReq,proto3" json:"nodeNumReq" copier:"NodeNumReq"` // @gotags: copier:"NodeNumReq", json:"nodeNumReq" - NodeUsed string `protobuf:"bytes,25,opt,name=node_used,json=nodeUsed,proto3" json:"nodeUsed" copier:"NodeUsed"` // @gotags: copier:"NodeUsed", json:"nodeUsed" - OutputPath string `protobuf:"bytes,26,opt,name=output_path,json=outputPath,proto3" json:"outputPath" copier:"OutputPath"` // @gotags: copier:"OutputPath", json:"outputPath" - Priority string `protobuf:"bytes,27,opt,name=priority,proto3" json:"priority" copier:"Priority"` // @gotags: copier:"Priority", json:"priority" - ProcNumReq uint32 `protobuf:"varint,28,opt,name=proc_num_req,json=procNumReq,proto3" json:"procNumReq" copier:"ProcNumReq"` // @gotags: copier:"ProcNumReq", json:"procNumReq" - ProcNumUsed uint32 `protobuf:"varint,29,opt,name=proc_num_used,json=procNumUsed,proto3" json:"procNumUsed" copier:"procNumUsed"` // @gotags: copier:"procNumUsed", json:"procNumUsed" - Queue string `protobuf:"bytes,30,opt,name=queue,proto3" json:"queue" copier:"Queue"` // @gotags: copier:"Queue", json:"queue" - Restarts string `protobuf:"bytes,31,opt,name=restarts,proto3" json:"restarts" copier:"Restarts"` // @gotags: copier:"Restarts", json:"restarts" - Scale string `protobuf:"bytes,32,opt,name=scale,proto3" json:"scale" copier:"Scale"` // @gotags: copier:"Scale", json:"scale" - User string `protobuf:"bytes,33,opt,name=user,proto3" json:"user" copier:"User"` // @gotags: copier:"User", json:"user" - WalltimeReq string `protobuf:"bytes,34,opt,name=walltime_req,json=walltimeReq,proto3" json:"walltimeReq" copier:"WalltimeReq"` // @gotags: copier:"WalltimeReq", json:"walltimeReq" - WorkDir string `protobuf:"bytes,35,opt,name=work_dir,json=workDir,proto3" json:"workDir" copier:"WorkDir"` // @gotags: copier:"WorkDir", json:"workDir" + AppType string `protobuf:"bytes,1,opt,name=app_type,json=appType,proto3" json:"app_type,omitempty"` // @gotags: copier:"AppType", json:"appType" + AveRss string `protobuf:"bytes,2,opt,name=ave_rss,json=aveRss,proto3" json:"ave_rss,omitempty"` // @gotags: copier:"AveRSS", json:"aveRSS" + AveVmSize string `protobuf:"bytes,3,opt,name=ave_vm_size,json=aveVmSize,proto3" json:"ave_vm_size,omitempty"` // @gotags: copier:"AveVMSize", json:"aveVMSize" + CpuTimeUsed string `protobuf:"bytes,4,opt,name=cpu_time_used,json=cpuTimeUsed,proto3" json:"cpu_time_used,omitempty"` // @gotags: copier:"CpuTimeUsed", json:"cpuTimeUsed" + DcuNumReq uint32 `protobuf:"varint,5,opt,name=dcu_num_req,json=dcuNumReq,proto3" json:"dcu_num_req,omitempty"` // @gotags: copier:"DcuNumReq", json:"dcuNumReq" + DcuNumUsed uint32 `protobuf:"varint,6,opt,name=dcu_num_used,json=dcuNumUsed,proto3" json:"dcu_num_used,omitempty"` // @gotags: copier:"DcuNumUsed", json:"dcuNumUsed" + ErrorPath string `protobuf:"bytes,7,opt,name=error_path,json=errorPath,proto3" json:"error_path,omitempty"` // @gotags: copier:"ErrorPath", json:"errorPath" + ExitCode string `protobuf:"bytes,8,opt,name=exit_code,json=exitCode,proto3" json:"exit_code,omitempty"` // @gotags: copier:"ExitCode", json:"exitCode" + GpuNumReq uint32 `protobuf:"varint,9,opt,name=gpu_num_req,json=gpuNumReq,proto3" json:"gpu_num_req,omitempty"` // @gotags: copier:"GpuNumReq", json:"gpuNumReq" + GpuNumUsed uint32 `protobuf:"varint,10,opt,name=gpu_num_used,json=gpuNumUsed,proto3" json:"gpu_num_used,omitempty"` // @gotags: copier:"GpuNumUsed", json:"gpuNumUsed" + JobEndTime string `protobuf:"bytes,11,opt,name=job_end_time,json=jobEndTime,proto3" json:"job_end_time,omitempty"` // @gotags: copier:"JobEndTime", json:"jobEndTime" + JobId string `protobuf:"bytes,12,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // @gotags: copier:"JobId", json:"jobId" + JobInitAttr *JobInitAttr `protobuf:"bytes,13,opt,name=job_init_attr,json=jobInitAttr,proto3" json:"job_init_attr,omitempty"` // @gotags: copier:"JobInitAttr", json:"JobInitAttr" + JobName string `protobuf:"bytes,14,opt,name=job_name,json=jobName,proto3" json:"job_name,omitempty"` // @gotags: copier:"JobName", json:"jobName" + JobRunTime string `protobuf:"bytes,15,opt,name=job_run_time,json=jobRunTime,proto3" json:"job_run_time,omitempty"` // @gotags: copier:"JobRunTime", json:"jobRunTime" + JobStartTime string `protobuf:"bytes,16,opt,name=job_start_time,json=jobStartTime,proto3" json:"job_start_time,omitempty"` // @gotags: copier:"JobStartTime", json:"jobStartTime" + JobStatus string `protobuf:"bytes,17,opt,name=job_status,json=jobStatus,proto3" json:"job_status,omitempty"` // @gotags: copier:"JobStatus", json:"jobStatus" + JobSubmitTime string `protobuf:"bytes,18,opt,name=job_submit_time,json=jobSubmitTime,proto3" json:"job_submit_time,omitempty"` // @gotags: copier:"JobSubmitTime", json:"jobSubmitTime" + JobSessionInfo *JobVncSessionInfo `protobuf:"bytes,19,opt,name=job_session_info,json=jobSessionInfo,proto3" json:"job_session_info,omitempty"` // @gotags: copier:"JobVncSessionInfo", json:"jobVncSessionInfo" + JobManagerId string `protobuf:"bytes,20,opt,name=job_manager_id,json=jobManagerId,proto3" json:"job_manager_id,omitempty"` // @gotags: copier:"JobManagerId", json:"jobmanagerId" + JobManagerName string `protobuf:"bytes,21,opt,name=job_manager_name,json=jobManagerName,proto3" json:"job_manager_name,omitempty"` // @gotags: copier:"JobManagerName", json:"jobmanagerName" + JobManagerType string `protobuf:"bytes,22,opt,name=job_manager_type,json=jobManagerType,proto3" json:"job_manager_type,omitempty"` // @gotags: copier:"JobManagerType", json:"jobmanagerType" + MemUsed string `protobuf:"bytes,23,opt,name=mem_used,json=memUsed,proto3" json:"mem_used,omitempty"` // @gotags: copier:"MemUsed", json:"memUsed" + NodeNumReq uint32 `protobuf:"varint,24,opt,name=node_num_req,json=nodeNumReq,proto3" json:"node_num_req,omitempty"` // @gotags: copier:"NodeNumReq", json:"nodeNumReq" + NodeUsed string `protobuf:"bytes,25,opt,name=node_used,json=nodeUsed,proto3" json:"node_used,omitempty"` // @gotags: copier:"NodeUsed", json:"nodeUsed" + OutputPath string `protobuf:"bytes,26,opt,name=output_path,json=outputPath,proto3" json:"output_path,omitempty"` // @gotags: copier:"OutputPath", json:"outputPath" + Priority string `protobuf:"bytes,27,opt,name=priority,proto3" json:"priority,omitempty"` // @gotags: copier:"Priority", json:"priority" + ProcNumReq uint32 `protobuf:"varint,28,opt,name=proc_num_req,json=procNumReq,proto3" json:"proc_num_req,omitempty"` // @gotags: copier:"ProcNumReq", json:"procNumReq" + ProcNumUsed uint32 `protobuf:"varint,29,opt,name=proc_num_used,json=procNumUsed,proto3" json:"proc_num_used,omitempty"` // @gotags: copier:"procNumUsed", json:"procNumUsed" + Queue string `protobuf:"bytes,30,opt,name=queue,proto3" json:"queue,omitempty"` // @gotags: copier:"Queue", json:"queue" + Restarts string `protobuf:"bytes,31,opt,name=restarts,proto3" json:"restarts,omitempty"` // @gotags: copier:"Restarts", json:"restarts" + Scale string `protobuf:"bytes,32,opt,name=scale,proto3" json:"scale,omitempty"` // @gotags: copier:"Scale", json:"scale" + User string `protobuf:"bytes,33,opt,name=user,proto3" json:"user,omitempty"` // @gotags: copier:"User", json:"user" + WalltimeReq string `protobuf:"bytes,34,opt,name=walltime_req,json=walltimeReq,proto3" json:"walltime_req,omitempty"` // @gotags: copier:"WalltimeReq", json:"walltimeReq" + WorkDir string `protobuf:"bytes,35,opt,name=work_dir,json=workDir,proto3" json:"work_dir,omitempty"` // @gotags: copier:"WorkDir", json:"workDir" } func (x *JobDetail) Reset() { @@ -1252,7 +1252,7 @@ type JobDetailReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"jobId" copier:"JobId"` // @gotags: copier:"JobId", json:"jobId" + JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // @gotags: copier:"JobId", json:"jobId" } func (x *JobDetailReq) Reset() { @@ -1299,9 +1299,9 @@ type GetJobDetailResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code" copier:"Code"` // @gotags: copier:"Code", json:"code" - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg" copier:"Msg"` // @gotags: copier:"Msg", json:"msg" - JobDetail *JobDetail `protobuf:"bytes,3,opt,name=job_detail,json=jobDetail,proto3" json:"data" copier:"JobDetail"` // @gotags: copier:"JobDetail", json:"data" + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code", json:"code" + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg", json:"msg" + JobDetail *JobDetail `protobuf:"bytes,3,opt,name=job_detail,json=jobDetail,proto3" json:"job_detail,omitempty"` // @gotags: copier:"JobDetail", json:"data" } func (x *GetJobDetailResp) Reset() { @@ -1363,7 +1363,7 @@ type DeleteJobReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - StrJobInfoMap string `protobuf:"bytes,1,opt,name=str_job_info_map,json=strJobInfoMap,proto3" json:"strJobInfoMap" copier:"strJobInfoMap"` // @gotags: copier:"strJobInfoMap", json:"strJobInfoMap" + StrJobInfoMap string `protobuf:"bytes,1,opt,name=str_job_info_map,json=strJobInfoMap,proto3" json:"str_job_info_map,omitempty"` // @gotags: copier:"strJobInfoMap", json:"strJobInfoMap" } func (x *DeleteJobReq) Reset() { @@ -1410,9 +1410,9 @@ type DeleteJobResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code" copier:"Code"` // @gotags: copier:"Code", json:"code" - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg" copier:"Msg"` // @gotags: copier:"Msg", json:"msg" - Result map[string]string `protobuf:"bytes,3,rep,name=result,proto3" json:"data" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3" copier:"Result"` // @gotags: copier:"Result", json:"data" + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code", json:"code" + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg", json:"msg" + Result map[string]string `protobuf:"bytes,3,rep,name=result,proto3" json:"result,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"bytes,2,opt,name=value,proto3"` // @gotags: copier:"Result", json:"data" } func (x *DeleteJobResp) Reset() { @@ -2397,33 +2397,31 @@ func (x *MapAppJobInfo) GetGAP_STD_ERR_FILE() string { return "" } -type FileContentResp struct { +type ParaStorQuotaReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" //状态码 示例:0 - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" //信息 示例:success - Data *FileDataResp `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //对象数据 + Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` // @gotags: copier:"username" } -func (x *FileContentResp) Reset() { - *x = FileContentResp{} +func (x *ParaStorQuotaReq) Reset() { + *x = ParaStorQuotaReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[12] + mi := &file_hpcAC_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FileContentResp) String() string { +func (x *ParaStorQuotaReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FileContentResp) ProtoMessage() {} +func (*ParaStorQuotaReq) ProtoMessage() {} -func (x *FileContentResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[12] +func (x *ParaStorQuotaReq) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2434,60 +2432,109 @@ func (x *FileContentResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FileContentResp.ProtoReflect.Descriptor instead. -func (*FileContentResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{12} +// Deprecated: Use ParaStorQuotaReq.ProtoReflect.Descriptor instead. +func (*ParaStorQuotaReq) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{19} } -func (x *FileContentResp) GetCode() string { +func (x *ParaStorQuotaReq) GetUsername() string { + if x != nil { + return x.Username + } + return "" +} + +type ParaStorQuotaResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // @gotags: copier:"Code" + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // @gotags: copier:"Msg" + Data []*QuotaData `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" +} + +func (x *ParaStorQuotaResp) Reset() { + *x = ParaStorQuotaResp{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ParaStorQuotaResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ParaStorQuotaResp) ProtoMessage() {} + +func (x *ParaStorQuotaResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ParaStorQuotaResp.ProtoReflect.Descriptor instead. +func (*ParaStorQuotaResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{20} +} + +func (x *ParaStorQuotaResp) GetCode() string { if x != nil { return x.Code } return "" } -func (x *FileContentResp) GetMsg() string { +func (x *ParaStorQuotaResp) GetMsg() string { if x != nil { return x.Msg } return "" } -func (x *FileContentResp) GetData() *FileDataResp { +func (x *ParaStorQuotaResp) GetData() []*QuotaData { if x != nil { return x.Data } return nil } -type FileDataReq struct { +type QuotaData struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - HostName string `protobuf:"bytes,1,opt,name=hostName,proto3" json:"hostName,omitempty"` // @gotags: copier:"HostName" //服务器hostname 示例:127.0.0.1 - DirPath string `protobuf:"bytes,2,opt,name=dirPath,proto3" json:"dirPath,omitempty"` // @gotags: copier:"DirPath" //服务器文件绝对路径 示例:/public/home/test/BASE/STDIN_1210_114429/std.out.22 - TriggerNum int32 `protobuf:"varint,3,opt,name=triggerNum,proto3" json:"triggerNum,omitempty"` // @gotags: copier:"TriggerNum" //翻页次数,第一次打开传1,文件每超过1000行,该参数累加1(类似分页,每页显示1000行数据) 示例:1 - RollDirection string `protobuf:"bytes,4,opt,name=rollDirection,proto3" json:"rollDirection,omitempty"` // @gotags: copier:"RollDirection" //文件查看方向,传参UP,从文件尾向上看;传参DOWN,从文件头向下看 示例:UP + Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` // @gotags: copier:"username" //用户名 + Path string `protobuf:"bytes,2,opt,name=path,proto3" json:"path,omitempty"` // @gotags: copier:"path" //共享存储配额路径 + Threshold float64 `protobuf:"fixed64,3,opt,name=threshold,proto3" json:"threshold,omitempty"` // @gotags: copier:"threshold" //共享存储配额量,单位GB + Usage float64 `protobuf:"fixed64,4,opt,name=usage,proto3" json:"usage,omitempty"` // @gotags: copier:"usage" //共享存储使用量,单位GB } -func (x *FileDataReq) Reset() { - *x = FileDataReq{} +func (x *QuotaData) Reset() { + *x = QuotaData{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[13] + mi := &file_hpcAC_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FileDataReq) String() string { +func (x *QuotaData) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FileDataReq) ProtoMessage() {} +func (*QuotaData) ProtoMessage() {} -func (x *FileDataReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[13] +func (x *QuotaData) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2498,68 +2545,64 @@ func (x *FileDataReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FileDataReq.ProtoReflect.Descriptor instead. -func (*FileDataReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{13} +// Deprecated: Use QuotaData.ProtoReflect.Descriptor instead. +func (*QuotaData) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{21} } -func (x *FileDataReq) GetHostName() string { +func (x *QuotaData) GetUsername() string { if x != nil { - return x.HostName + return x.Username } return "" } -func (x *FileDataReq) GetDirPath() string { +func (x *QuotaData) GetPath() string { if x != nil { - return x.DirPath + return x.Path } return "" } -func (x *FileDataReq) GetTriggerNum() int32 { +func (x *QuotaData) GetThreshold() float64 { if x != nil { - return x.TriggerNum + return x.Threshold } return 0 } -func (x *FileDataReq) GetRollDirection() string { +func (x *QuotaData) GetUsage() float64 { if x != nil { - return x.RollDirection + return x.Usage } - return "" + return 0 } -type FileDataResp struct { +type WallTimeReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AllLineTotal int32 `protobuf:"varint,1,opt,name=allLineTotal,proto3" json:"allLineTotal,omitempty"` // @gotags: copier:"AllLineTotal" //文件总行数 示例:100 - Success string `protobuf:"bytes,2,opt,name=success,proto3" json:"success,omitempty"` // @gotags: copier:"Success" //请求是否成功 示例:true - TotalTriggerTimes int32 `protobuf:"varint,3,opt,name=totalTriggerTimes,proto3" json:"totalTriggerTimes,omitempty"` // @gotags: copier:"TotalTriggerTimes" //总次数(类似分页总页数) 示例:1 - Errmsg string `protobuf:"bytes,4,opt,name=errmsg,proto3" json:"errmsg,omitempty"` // @gotags: copier:"Errmsg" //错误信息 示例:false - Data string `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //返回的文件内容 示例:start time is: 2021-10-14 + Username string `protobuf:"bytes,1,opt,name=username,proto3" json:"username,omitempty"` // @gotags: copier:"username" } -func (x *FileDataResp) Reset() { - *x = FileDataResp{} +func (x *WallTimeReq) Reset() { + *x = WallTimeReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[14] + mi := &file_hpcAC_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *FileDataResp) String() string { +func (x *WallTimeReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*FileDataResp) ProtoMessage() {} +func (*WallTimeReq) ProtoMessage() {} -func (x *FileDataResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[14] +func (x *WallTimeReq) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2570,72 +2613,106 @@ func (x *FileDataResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use FileDataResp.ProtoReflect.Descriptor instead. -func (*FileDataResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{14} +// Deprecated: Use WallTimeReq.ProtoReflect.Descriptor instead. +func (*WallTimeReq) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{22} } -func (x *FileDataResp) GetAllLineTotal() int32 { +func (x *WallTimeReq) GetUsername() string { if x != nil { - return x.AllLineTotal + return x.Username } - return 0 + return "" } -func (x *FileDataResp) GetSuccess() string { - if x != nil { - return x.Success +type WallTimeResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // @gotags: copier:"Code" + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // @gotags: copier:"Msg" + Data float64 `protobuf:"fixed64,3,opt,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" +} + +func (x *WallTimeResp) Reset() { + *x = WallTimeResp{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *FileDataResp) GetTotalTriggerTimes() int32 { +func (x *WallTimeResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WallTimeResp) ProtoMessage() {} + +func (x *WallTimeResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WallTimeResp.ProtoReflect.Descriptor instead. +func (*WallTimeResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{23} +} + +func (x *WallTimeResp) GetCode() string { if x != nil { - return x.TotalTriggerTimes + return x.Code } - return 0 + return "" } -func (x *FileDataResp) GetErrmsg() string { +func (x *WallTimeResp) GetMsg() string { if x != nil { - return x.Errmsg + return x.Msg } return "" } -func (x *FileDataResp) GetData() string { +func (x *WallTimeResp) GetData() float64 { if x != nil { return x.Data } - return "" + return 0 } -type QueueReq struct { +type QueueJobsReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` // @gotags: copier:"User" //用户 示例:test - StrJobManagerID string `protobuf:"bytes,2,opt,name=strJobManagerID,proto3" json:"strJobManagerID,omitempty"` // @gotags: copier:"StrJobManagerID" //调度器ID 示例:1626190154 + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` //@gotags: copier:"userName" } -func (x *QueueReq) Reset() { - *x = QueueReq{} +func (x *QueueJobsReq) Reset() { + *x = QueueJobsReq{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[15] + mi := &file_hpcAC_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *QueueReq) String() string { +func (x *QueueJobsReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueueReq) ProtoMessage() {} +func (*QueueJobsReq) ProtoMessage() {} -func (x *QueueReq) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[15] +func (x *QueueJobsReq) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2646,52 +2723,45 @@ func (x *QueueReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QueueReq.ProtoReflect.Descriptor instead. -func (*QueueReq) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{15} -} - -func (x *QueueReq) GetUser() string { - if x != nil { - return x.User - } - return "" +// Deprecated: Use QueueJobsReq.ProtoReflect.Descriptor instead. +func (*QueueJobsReq) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{24} } -func (x *QueueReq) GetStrJobManagerID() string { +func (x *QueueJobsReq) GetUserName() string { if x != nil { - return x.StrJobManagerID + return x.UserName } return "" } -type QueueResp struct { +type QueueJobsResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" //状态码 示例:0 - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" //信息 示例:success - Data []*QueueData `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //队列数组 + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // @gotags: copier:"Code" + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // @gotags: copier:"Msg" + Data []*Queue `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" } -func (x *QueueResp) Reset() { - *x = QueueResp{} +func (x *QueueJobsResp) Reset() { + *x = QueueJobsResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[16] + mi := &file_hpcAC_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *QueueResp) String() string { +func (x *QueueJobsResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueueResp) ProtoMessage() {} +func (*QueueJobsResp) ProtoMessage() {} -func (x *QueueResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[16] +func (x *QueueJobsResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2702,73 +2772,58 @@ func (x *QueueResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QueueResp.ProtoReflect.Descriptor instead. -func (*QueueResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{16} +// Deprecated: Use QueueJobsResp.ProtoReflect.Descriptor instead. +func (*QueueJobsResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{25} } -func (x *QueueResp) GetCode() string { +func (x *QueueJobsResp) GetCode() string { if x != nil { return x.Code } return "" } -func (x *QueueResp) GetMsg() string { +func (x *QueueJobsResp) GetMsg() string { if x != nil { return x.Msg } return "" } -func (x *QueueResp) GetData() []*QueueData { +func (x *QueueJobsResp) GetData() []*Queue { if x != nil { return x.Data } return nil } -type QueueData struct { +type Queue struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - AclHosts string `protobuf:"bytes,1,opt,name=aclHosts,proto3" json:"aclHosts,omitempty"` // @gotags: copier:"aclHosts" //可用节点,多个节点用逗号隔开 示例:node1,node2 - Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // @gotags: copier:"id" //队列名称 示例:debug - Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"` // @gotags: copier:"text" //队列名称 示例:debug - QueNodes string `protobuf:"bytes,4,opt,name=queNodes,proto3" json:"queNodes,omitempty"` // @gotags: copier:"queNodes" //队列节点总数 示例:3 - QueMinNodect string `protobuf:"bytes,5,opt,name=queMinNodect,proto3" json:"queMinNodect,omitempty"` // @gotags: copier:"queMinNodect" //队列最小节点数 示例:1 - QueMaxNgpus string `protobuf:"bytes,6,opt,name=queMaxNgpus,proto3" json:"queMaxNgpus,omitempty"` // @gotags: copier:"queMaxNgpus" //队列最大GPU卡数 示例:0 - QueMaxPPN string `protobuf:"bytes,7,opt,name=queMaxPPN,proto3" json:"queMaxPPN,omitempty"` // @gotags: copier:"queMaxPPN" //使用该队列作业最大CPU核心数 示例:4 - QueChargeRate string `protobuf:"bytes,8,opt,name=queChargeRate,proto3" json:"queChargeRate,omitempty"` // @gotags: copier:"queChargeRate" //费率 示例:1 - QueMaxNcpus string `protobuf:"bytes,9,opt,name=queMaxNcpus,proto3" json:"queMaxNcpus,omitempty"` // @gotags: copier:"queMaxNcpus" //用户最大可用核心数 示例:4 - QueMaxNdcus string `protobuf:"bytes,10,opt,name=queMaxNdcus,proto3" json:"queMaxNdcus,omitempty"` // @gotags: copier:"queMaxNdcus" //队列总DCU卡数 示例:0 - QueueName string `protobuf:"bytes,11,opt,name=queueName,proto3" json:"queueName,omitempty"` // @gotags: copier:"queueName" //队列名称 示例:debug - QueMinNcpus string `protobuf:"bytes,12,opt,name=queMinNcpus,proto3" json:"queMinNcpus,omitempty"` // @gotags: copier:"queMinNcpus" //队列最小CPU核数 示例:1 - QueFreeNodes string `protobuf:"bytes,13,opt,name=queFreeNodes,proto3" json:"queFreeNodes,omitempty"` // @gotags: copier:"queFreeNodes" //队列空闲节点数 示例:1 - QueMaxNodect string `protobuf:"bytes,14,opt,name=queMaxNodect,proto3" json:"queMaxNodect,omitempty"` // @gotags: copier:"queMaxNodect" //队列作业最大节点数 示例:1 - QueMaxGpuPN string `protobuf:"bytes,15,opt,name=queMaxGpuPN,proto3" json:"queMaxGpuPN,omitempty"` // @gotags: copier:"queMaxGpuPN" //队列单作业最大GPU卡数 示例:0 - QueMaxWalltime string `protobuf:"bytes,16,opt,name=queMaxWalltime,proto3" json:"queMaxWalltime,omitempty"` // @gotags: copier:"queMaxWalltime" //队列最大运行时间 示例:unlimit - QueMaxDcuPN string `protobuf:"bytes,17,opt,name=queMaxDcuPN,proto3" json:"queMaxDcuPN,omitempty"` // @gotags: copier:"queMaxDcuPN" //队列单作业最大DCU卡数 示例:0 + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // @gotags: copier:"name" + Values []*Metric `protobuf:"bytes,2,rep,name=values,proto3" json:"values,omitempty"` // @gotags: copier:"values" } -func (x *QueueData) Reset() { - *x = QueueData{} +func (x *Queue) Reset() { + *x = Queue{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[17] + mi := &file_hpcAC_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *QueueData) String() string { +func (x *Queue) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueueData) ProtoMessage() {} +func (*Queue) ProtoMessage() {} -func (x *QueueData) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[17] +func (x *Queue) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2779,157 +2834,145 @@ func (x *QueueData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QueueData.ProtoReflect.Descriptor instead. -func (*QueueData) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{17} +// Deprecated: Use Queue.ProtoReflect.Descriptor instead. +func (*Queue) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{26} } -func (x *QueueData) GetAclHosts() string { +func (x *Queue) GetName() string { if x != nil { - return x.AclHosts + return x.Name } return "" } -func (x *QueueData) GetId() string { +func (x *Queue) GetValues() []*Metric { if x != nil { - return x.Id + return x.Values } - return "" + return nil } -func (x *QueueData) GetText() string { - if x != nil { - return x.Text - } - return "" +type Metric struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MetricName string `protobuf:"bytes,1,opt,name=metricName,proto3" json:"metricName,omitempty"` // @gotags: copier:"metricName" + MetricValue string `protobuf:"bytes,2,opt,name=metricValue,proto3" json:"metricValue,omitempty"` // @gotags: copier:"metricValue" } -func (x *QueueData) GetQueNodes() string { - if x != nil { - return x.QueNodes +func (x *Metric) Reset() { + *x = Metric{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *QueueData) GetQueMinNodect() string { - if x != nil { - return x.QueMinNodect +func (x *Metric) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*Metric) ProtoMessage() {} + +func (x *Metric) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *QueueData) GetQueMaxNgpus() string { +// Deprecated: Use Metric.ProtoReflect.Descriptor instead. +func (*Metric) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{27} +} + +func (x *Metric) GetMetricName() string { if x != nil { - return x.QueMaxNgpus + return x.MetricName } return "" } -func (x *QueueData) GetQueMaxPPN() string { +func (x *Metric) GetMetricValue() string { if x != nil { - return x.QueMaxPPN + return x.MetricValue } return "" } -func (x *QueueData) GetQueChargeRate() string { - if x != nil { - return x.QueChargeRate - } - return "" -} - -func (x *QueueData) GetQueMaxNcpus() string { - if x != nil { - return x.QueMaxNcpus - } - return "" -} - -func (x *QueueData) GetQueMaxNdcus() string { - if x != nil { - return x.QueMaxNdcus - } - return "" -} - -func (x *QueueData) GetQueueName() string { - if x != nil { - return x.QueueName - } - return "" -} - -func (x *QueueData) GetQueMinNcpus() string { - if x != nil { - return x.QueMinNcpus - } - return "" +type CpuCoreReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (x *QueueData) GetQueFreeNodes() string { - if x != nil { - return x.QueFreeNodes +func (x *CpuCoreReq) Reset() { + *x = CpuCoreReq{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (x *QueueData) GetQueMaxNodect() string { - if x != nil { - return x.QueMaxNodect - } - return "" +func (x *CpuCoreReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *QueueData) GetQueMaxGpuPN() string { - if x != nil { - return x.QueMaxGpuPN - } - return "" -} +func (*CpuCoreReq) ProtoMessage() {} -func (x *QueueData) GetQueMaxWalltime() string { - if x != nil { - return x.QueMaxWalltime +func (x *CpuCoreReq) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (x *QueueData) GetQueMaxDcuPN() string { - if x != nil { - return x.QueMaxDcuPN - } - return "" +// Deprecated: Use CpuCoreReq.ProtoReflect.Descriptor instead. +func (*CpuCoreReq) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{28} } -type QueueDetailsResp struct { +type CpuCoreResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" //状态码 示例:0 - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" //信息 示例:success - Data []*QueueDetailsData `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //队列数组 + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // @gotags: copier:"Code" + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // @gotags: copier:"Msg" + Data []*CpuCore `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"data" } -func (x *QueueDetailsResp) Reset() { - *x = QueueDetailsResp{} +func (x *CpuCoreResp) Reset() { + *x = CpuCoreResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[18] + mi := &file_hpcAC_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *QueueDetailsResp) String() string { +func (x *CpuCoreResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueueDetailsResp) ProtoMessage() {} +func (*CpuCoreResp) ProtoMessage() {} -func (x *QueueDetailsResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[18] +func (x *CpuCoreResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2940,70 +2983,58 @@ func (x *QueueDetailsResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QueueDetailsResp.ProtoReflect.Descriptor instead. -func (*QueueDetailsResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{18} +// Deprecated: Use CpuCoreResp.ProtoReflect.Descriptor instead. +func (*CpuCoreResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{29} } -func (x *QueueDetailsResp) GetCode() string { +func (x *CpuCoreResp) GetCode() string { if x != nil { return x.Code } return "" } -func (x *QueueDetailsResp) GetMsg() string { +func (x *CpuCoreResp) GetMsg() string { if x != nil { return x.Msg } return "" } -func (x *QueueDetailsResp) GetData() []*QueueDetailsData { +func (x *CpuCoreResp) GetData() []*CpuCore { if x != nil { return x.Data } return nil } -type QueueDetailsData struct { +type CpuCore struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - QueNodes int32 `protobuf:"varint,1,opt,name=queNodes,proto3" json:"queNodes,omitempty"` // @gotags: copier:"queNodes" //队列节点总数 示例:3 - QueMinNodect int32 `protobuf:"varint,2,opt,name=queMinNodect,proto3" json:"queMinNodect,omitempty"` // @gotags: copier:"queMinNodect" //队列最小节点数 示例:1 - QueMaxNgpus int32 `protobuf:"varint,3,opt,name=queMaxNgpus,proto3" json:"queMaxNgpus,omitempty"` // @gotags: copier:"queMaxNgpus" //队列最大GPU卡数 示例:0 - QueMaxPPN int32 `protobuf:"varint,4,opt,name=queMaxPPN,proto3" json:"queMaxPPN,omitempty"` // @gotags: copier:"queMaxPPN" //使用该队列作业最大CPU核心数 示例:4 - QueChargeRate float32 `protobuf:"fixed32,5,opt,name=queChargeRate,proto3" json:"queChargeRate,omitempty"` // @gotags: copier:"queChargeRate" //费率 示例:1 - QueMaxNcpus int32 `protobuf:"varint,6,opt,name=queMaxNcpus,proto3" json:"queMaxNcpus,omitempty"` // @gotags: copier:"queMaxNcpus" //用户最大可用核心数 示例:4 - QueMaxNdcus int32 `protobuf:"varint,7,opt,name=queMaxNdcus,proto3" json:"queMaxNdcus,omitempty"` // @gotags: copier:"queMaxNdcus" //队列总DCU卡数 示例:0 - QueueName string `protobuf:"bytes,8,opt,name=queueName,proto3" json:"queueName,omitempty"` // @gotags: copier:"queueName" //队列名称 示例:debug - QueMinNcpus int32 `protobuf:"varint,9,opt,name=queMinNcpus,proto3" json:"queMinNcpus,omitempty"` // @gotags: copier:"queMinNcpus" //队列最小CPU核数 示例:1 - QueFreeNodes int32 `protobuf:"varint,10,opt,name=queFreeNodes,proto3" json:"queFreeNodes,omitempty"` // @gotags: copier:"queFreeNodes" //队列空闲节点数 示例:1 - QueMaxNodect int32 `protobuf:"varint,11,opt,name=queMaxNodect,proto3" json:"queMaxNodect,omitempty"` // @gotags: copier:"queMaxNodect" //队列作业最大节点数 示例:1 - QueMaxGpuPN int32 `protobuf:"varint,12,opt,name=queMaxGpuPN,proto3" json:"queMaxGpuPN,omitempty"` // @gotags: copier:"queMaxGpuPN" //队列单作业最大GPU卡数 示例:0 - QueMaxWalltime int32 `protobuf:"varint,13,opt,name=queMaxWalltime,proto3" json:"queMaxWalltime,omitempty"` // @gotags: copier:"queMaxWalltime" //队列最大运行时间 示例:unlimit - QueMaxDcuPN int32 `protobuf:"varint,14,opt,name=queMaxDcuPN,proto3" json:"queMaxDcuPN,omitempty"` // @gotags: copier:"queMaxDcuPN" //队列单作业最大DCU卡数 示例:0 + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // @gotags: copier:"name" + Y int32 `protobuf:"varint,2,opt,name=y,proto3" json:"y,omitempty"` // @gotags: copier:"y" } -func (x *QueueDetailsData) Reset() { - *x = QueueDetailsData{} +func (x *CpuCore) Reset() { + *x = CpuCore{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[19] + mi := &file_hpcAC_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *QueueDetailsData) String() string { +func (x *CpuCore) String() string { return protoimpl.X.MessageStringOf(x) } -func (*QueueDetailsData) ProtoMessage() {} +func (*CpuCore) ProtoMessage() {} -func (x *QueueDetailsData) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[19] +func (x *CpuCore) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3014,136 +3045,99 @@ func (x *QueueDetailsData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use QueueDetailsData.ProtoReflect.Descriptor instead. -func (*QueueDetailsData) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{19} -} - -func (x *QueueDetailsData) GetQueNodes() int32 { - if x != nil { - return x.QueNodes - } - return 0 -} - -func (x *QueueDetailsData) GetQueMinNodect() int32 { - if x != nil { - return x.QueMinNodect - } - return 0 -} - -func (x *QueueDetailsData) GetQueMaxNgpus() int32 { - if x != nil { - return x.QueMaxNgpus - } - return 0 -} - -func (x *QueueDetailsData) GetQueMaxPPN() int32 { - if x != nil { - return x.QueMaxPPN - } - return 0 +// Deprecated: Use CpuCore.ProtoReflect.Descriptor instead. +func (*CpuCore) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{30} } -func (x *QueueDetailsData) GetQueChargeRate() float32 { +func (x *CpuCore) GetName() string { if x != nil { - return x.QueChargeRate + return x.Name } - return 0 + return "" } -func (x *QueueDetailsData) GetQueMaxNcpus() int32 { +func (x *CpuCore) GetY() int32 { if x != nil { - return x.QueMaxNcpus + return x.Y } return 0 } -func (x *QueueDetailsData) GetQueMaxNdcus() int32 { - if x != nil { - return x.QueMaxNdcus - } - return 0 -} +type JobsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (x *QueueDetailsData) GetQueueName() string { - if x != nil { - return x.QueueName - } - return "" + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` // @gotags: copier:"userName" } -func (x *QueueDetailsData) GetQueMinNcpus() int32 { - if x != nil { - return x.QueMinNcpus +func (x *JobsReq) Reset() { + *x = JobsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (x *QueueDetailsData) GetQueFreeNodes() int32 { - if x != nil { - return x.QueFreeNodes - } - return 0 +func (x *JobsReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (x *QueueDetailsData) GetQueMaxNodect() int32 { - if x != nil { - return x.QueMaxNodect - } - return 0 -} +func (*JobsReq) ProtoMessage() {} -func (x *QueueDetailsData) GetQueMaxGpuPN() int32 { - if x != nil { - return x.QueMaxGpuPN +func (x *JobsReq) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (x *QueueDetailsData) GetQueMaxWalltime() int32 { - if x != nil { - return x.QueMaxWalltime - } - return 0 +// Deprecated: Use JobsReq.ProtoReflect.Descriptor instead. +func (*JobsReq) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{31} } -func (x *QueueDetailsData) GetQueMaxDcuPN() int32 { +func (x *JobsReq) GetUserName() string { if x != nil { - return x.QueMaxDcuPN + return x.UserName } - return 0 + return "" } -type UserQuotasLimitResp struct { +type JobsResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" //状态码 示例:0 - Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" //信息 示例:success - Data *UserQuotasLimitData `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //队列数组 + Code string `protobuf:"bytes,1,opt,name=Code,proto3" json:"Code,omitempty"` // @gotags: copier:"Code" + Msg string `protobuf:"bytes,2,opt,name=Msg,proto3" json:"Msg,omitempty"` // @gotags: copier:"Msg" + Data []*JobCore `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"data" } -func (x *UserQuotasLimitResp) Reset() { - *x = UserQuotasLimitResp{} +func (x *JobsResp) Reset() { + *x = JobsResp{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[20] + mi := &file_hpcAC_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UserQuotasLimitResp) String() string { +func (x *JobsResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserQuotasLimitResp) ProtoMessage() {} +func (*JobsResp) ProtoMessage() {} -func (x *UserQuotasLimitResp) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[20] +func (x *JobsResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3154,77 +3148,58 @@ func (x *UserQuotasLimitResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserQuotasLimitResp.ProtoReflect.Descriptor instead. -func (*UserQuotasLimitResp) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{20} +// Deprecated: Use JobsResp.ProtoReflect.Descriptor instead. +func (*JobsResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{32} } -func (x *UserQuotasLimitResp) GetCode() string { +func (x *JobsResp) GetCode() string { if x != nil { return x.Code } return "" } -func (x *UserQuotasLimitResp) GetMsg() string { +func (x *JobsResp) GetMsg() string { if x != nil { return x.Msg } return "" } -func (x *UserQuotasLimitResp) GetData() *UserQuotasLimitData { +func (x *JobsResp) GetData() []*JobCore { if x != nil { return x.Data } return nil } -type UserQuotasLimitData struct { +type JobCore struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` // @gotags: copier:"userName" //用户名称 - AccountName string `protobuf:"bytes,2,opt,name=accountName,proto3" json:"accountName,omitempty"` // @gotags: copier:"accountName" //用户所关联的默认的账号名 - UserMaxCpu int64 `protobuf:"varint,3,opt,name=userMaxCpu,proto3" json:"userMaxCpu,omitempty"` // @gotags: copier:"userMaxCpu" //用户最大CPU核数,单位:个,如果未做限制,则值为-1 - UserMaxDcu int64 `protobuf:"varint,4,opt,name=userMaxDcu,proto3" json:"userMaxDcu,omitempty"` // @gotags: copier:"userMaxDcu" //用户最大DCU卡数,单位:个,如果未做限制,则值为-1 - UserMaxGpu int64 `protobuf:"varint,5,opt,name=userMaxGpu,proto3" json:"userMaxGpu,omitempty"` // @gotags: copier:"userMaxGpu" //用户最大GPU卡数,单位:个,如果未做限制,则值为-1 - UserMaxMlu int64 `protobuf:"varint,6,opt,name=userMaxMlu,proto3" json:"userMaxMlu,omitempty"` // @gotags: copier:"userMaxMlu" //用户最大MLU卡数,单位:个,如果未做限制,则值为-1 - UserMaxMem int64 `protobuf:"varint,7,opt,name=userMaxMem,proto3" json:"userMaxMem,omitempty"` // @gotags: copier:"userMaxMem" //用户最大内存,单位:m,如果未做限制,则值为-1 - UserMaxNode int64 `protobuf:"varint,8,opt,name=userMaxNode,proto3" json:"userMaxNode,omitempty"` // @gotags: copier:"userMaxNode" //用户最大节点数,单位:个,如果未做限制,则值为-1 - UserMaxSubmitJob int64 `protobuf:"varint,9,opt,name=userMaxSubmitJob,proto3" json:"userMaxSubmitJob,omitempty"` // @gotags: copier:"userMaxSubmitJob" //用户最大提交作业数,单位:个,如果未做限制,则值为-1 - UserMaxRunJob int64 `protobuf:"varint,10,opt,name=userMaxRunJob,proto3" json:"userMaxRunJob,omitempty"` // @gotags: copier:"userMaxRunJob" //用户最大运行作业数,单位:个,如果未做限制,则值为-1 - AccountMaxCpu int64 `protobuf:"varint,11,opt,name=accountMaxCpu,proto3" json:"accountMaxCpu,omitempty"` // @gotags: copier:"accountMaxCpu" //账户最大CPU核数,单位:个,如果未做限制,则值为-1 - AccountMaxDcu int64 `protobuf:"varint,12,opt,name=accountMaxDcu,proto3" json:"accountMaxDcu,omitempty"` // @gotags: copier:"accountMaxDcu" //账户最大DCU卡数,单位:个,如果未做限制,则值为-1 - AccountMaxGpu int64 `protobuf:"varint,13,opt,name=accountMaxGpu,proto3" json:"accountMaxGpu,omitempty"` // @gotags: copier:"accountMaxGpu" //账户最大GPU卡数,单位:个,如果未做限制,则值为-1 - AccountMaxMlu int64 `protobuf:"varint,14,opt,name=accountMaxMlu,proto3" json:"accountMaxMlu,omitempty"` // @gotags: copier:"accountMaxMlu" //账户最大MLU卡数,单位:个,如果未做限制,则值为-1 - AccountMaxMem int64 `protobuf:"varint,15,opt,name=accountMaxMem,proto3" json:"accountMaxMem,omitempty"` // @gotags: copier:"accountMaxMem" //账户最大内存,单位:m,如果未做限制,则值为-1 - AccountMaxNode int64 `protobuf:"varint,16,opt,name=accountMaxNode,proto3" json:"accountMaxNode,omitempty"` // @gotags: copier:"accountMaxNode" //账户最大节点数,单位:个,如果未做限制,则值为-1 - AccountMaxSubmitJob int64 `protobuf:"varint,17,opt,name=accountMaxSubmitJob,proto3" json:"accountMaxSubmitJob,omitempty"` // @gotags: copier:"accountMaxSubmitJob" //账户最大提交作业数,单位:个,如果未做限制,则值为-1 - AccountMaxRunJob int64 `protobuf:"varint,18,opt,name=accountMaxRunJob,proto3" json:"accountMaxRunJob,omitempty"` // @gotags: copier:"accountMaxRunJob" //账户最大运行作业数,单位:个,如果未做限制,则值为-1 - UserMinCpu int64 `protobuf:"varint,19,opt,name=userMinCpu,proto3" json:"userMinCpu,omitempty"` // @gotags: copier:"userMinCpu" //用户最小CPU核数,单位:个,如果未做限制,则值为-1 - UserMinNode int64 `protobuf:"varint,20,opt,name=userMinNode,proto3" json:"userMinNode,omitempty"` // @gotags: copier:"userMinNode" //用户最小节点数,单位:个,如果未做限制,则值为-1 - MaxWallTime int64 `protobuf:"varint,21,opt,name=maxWallTime,proto3" json:"maxWallTime,omitempty"` // @gotags: copier:"maxWallTime" //用户关联的glod账号的机时,机时单位:s,如果未做限制,则值为-1 + Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // @gotags: copier:"name" + Y int32 `protobuf:"varint,2,opt,name=y,proto3" json:"y,omitempty"` // @gotags: copier:"y" } -func (x *UserQuotasLimitData) Reset() { - *x = UserQuotasLimitData{} +func (x *JobCore) Reset() { + *x = JobCore{} if protoimpl.UnsafeEnabled { - mi := &file_hpcAC_proto_msgTypes[21] + mi := &file_hpcAC_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *UserQuotasLimitData) String() string { +func (x *JobCore) String() string { return protoimpl.X.MessageStringOf(x) } -func (*UserQuotasLimitData) ProtoMessage() {} +func (*JobCore) ProtoMessage() {} -func (x *UserQuotasLimitData) ProtoReflect() protoreflect.Message { - mi := &file_hpcAC_proto_msgTypes[21] +func (x *JobCore) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -3235,156 +3210,1642 @@ func (x *UserQuotasLimitData) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use UserQuotasLimitData.ProtoReflect.Descriptor instead. -func (*UserQuotasLimitData) Descriptor() ([]byte, []int) { - return file_hpcAC_proto_rawDescGZIP(), []int{21} +// Deprecated: Use JobCore.ProtoReflect.Descriptor instead. +func (*JobCore) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{33} } -func (x *UserQuotasLimitData) GetUserName() string { +func (x *JobCore) GetName() string { if x != nil { - return x.UserName + return x.Name } return "" } -func (x *UserQuotasLimitData) GetAccountName() string { +func (x *JobCore) GetY() int32 { if x != nil { - return x.AccountName + return x.Y } - return "" + return 0 +} + +type HistoryJobDetailReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + JobId string `protobuf:"bytes,1,opt,name=jobId,proto3" json:"jobId,omitempty"` + JobmanagerId string `protobuf:"bytes,2,opt,name=jobmanagerId,proto3" json:"jobmanagerId,omitempty"` + AcctTime string `protobuf:"bytes,3,opt,name=acctTime,proto3" json:"acctTime,omitempty"` +} + +func (x *HistoryJobDetailReq) Reset() { + *x = HistoryJobDetailReq{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistoryJobDetailReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistoryJobDetailReq) ProtoMessage() {} + +func (x *HistoryJobDetailReq) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HistoryJobDetailReq.ProtoReflect.Descriptor instead. +func (*HistoryJobDetailReq) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{34} +} + +func (x *HistoryJobDetailReq) GetJobId() string { + if x != nil { + return x.JobId + } + return "" +} + +func (x *HistoryJobDetailReq) GetJobmanagerId() string { + if x != nil { + return x.JobmanagerId + } + return "" +} + +func (x *HistoryJobDetailReq) GetAcctTime() string { + if x != nil { + return x.AcctTime + } + return "" +} + +type HistoryJobDetailResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` +} + +func (x *HistoryJobDetailResp) Reset() { + *x = HistoryJobDetailResp{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistoryJobDetailResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistoryJobDetailResp) ProtoMessage() {} + +func (x *HistoryJobDetailResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HistoryJobDetailResp.ProtoReflect.Descriptor instead. +func (*HistoryJobDetailResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{35} +} + +func (x *HistoryJobDetailResp) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *HistoryJobDetailResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +type FileContentResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" //状态码 示例:0 + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" //信息 示例:success + Data *FileDataResp `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //对象数据 +} + +func (x *FileContentResp) Reset() { + *x = FileContentResp{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FileContentResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FileContentResp) ProtoMessage() {} + +func (x *FileContentResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FileContentResp.ProtoReflect.Descriptor instead. +func (*FileContentResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{36} +} + +func (x *FileContentResp) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *FileContentResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *FileContentResp) GetData() *FileDataResp { + if x != nil { + return x.Data + } + return nil +} + +type FileDataReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + HostName string `protobuf:"bytes,1,opt,name=hostName,proto3" json:"hostName,omitempty"` // @gotags: copier:"HostName" //服务器hostname 示例:127.0.0.1 + DirPath string `protobuf:"bytes,2,opt,name=dirPath,proto3" json:"dirPath,omitempty"` // @gotags: copier:"DirPath" //服务器文件绝对路径 示例:/public/home/test/BASE/STDIN_1210_114429/std.out.22 + TriggerNum int32 `protobuf:"varint,3,opt,name=triggerNum,proto3" json:"triggerNum,omitempty"` // @gotags: copier:"TriggerNum" //翻页次数,第一次打开传1,文件每超过1000行,该参数累加1(类似分页,每页显示1000行数据) 示例:1 + RollDirection string `protobuf:"bytes,4,opt,name=rollDirection,proto3" json:"rollDirection,omitempty"` // @gotags: copier:"RollDirection" //文件查看方向,传参UP,从文件尾向上看;传参DOWN,从文件头向下看 示例:UP +} + +func (x *FileDataReq) Reset() { + *x = FileDataReq{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FileDataReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FileDataReq) ProtoMessage() {} + +func (x *FileDataReq) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FileDataReq.ProtoReflect.Descriptor instead. +func (*FileDataReq) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{37} +} + +func (x *FileDataReq) GetHostName() string { + if x != nil { + return x.HostName + } + return "" +} + +func (x *FileDataReq) GetDirPath() string { + if x != nil { + return x.DirPath + } + return "" +} + +func (x *FileDataReq) GetTriggerNum() int32 { + if x != nil { + return x.TriggerNum + } + return 0 +} + +func (x *FileDataReq) GetRollDirection() string { + if x != nil { + return x.RollDirection + } + return "" +} + +type FileDataResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AllLineTotal int32 `protobuf:"varint,1,opt,name=allLineTotal,proto3" json:"allLineTotal,omitempty"` // @gotags: copier:"AllLineTotal" //文件总行数 示例:100 + Success string `protobuf:"bytes,2,opt,name=success,proto3" json:"success,omitempty"` // @gotags: copier:"Success" //请求是否成功 示例:true + TotalTriggerTimes int32 `protobuf:"varint,3,opt,name=totalTriggerTimes,proto3" json:"totalTriggerTimes,omitempty"` // @gotags: copier:"TotalTriggerTimes" //总次数(类似分页总页数) 示例:1 + Errmsg string `protobuf:"bytes,4,opt,name=errmsg,proto3" json:"errmsg,omitempty"` // @gotags: copier:"Errmsg" //错误信息 示例:false + Data string `protobuf:"bytes,5,opt,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //返回的文件内容 示例:start time is: 2021-10-14 +} + +func (x *FileDataResp) Reset() { + *x = FileDataResp{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *FileDataResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*FileDataResp) ProtoMessage() {} + +func (x *FileDataResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use FileDataResp.ProtoReflect.Descriptor instead. +func (*FileDataResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{38} +} + +func (x *FileDataResp) GetAllLineTotal() int32 { + if x != nil { + return x.AllLineTotal + } + return 0 +} + +func (x *FileDataResp) GetSuccess() string { + if x != nil { + return x.Success + } + return "" +} + +func (x *FileDataResp) GetTotalTriggerTimes() int32 { + if x != nil { + return x.TotalTriggerTimes + } + return 0 +} + +func (x *FileDataResp) GetErrmsg() string { + if x != nil { + return x.Errmsg + } + return "" +} + +func (x *FileDataResp) GetData() string { + if x != nil { + return x.Data + } + return "" +} + +type QueueReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + User string `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` // @gotags: copier:"User" //用户 示例:test + StrJobManagerID string `protobuf:"bytes,2,opt,name=strJobManagerID,proto3" json:"strJobManagerID,omitempty"` // @gotags: copier:"StrJobManagerID" //调度器ID 示例:1626190154 +} + +func (x *QueueReq) Reset() { + *x = QueueReq{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueueReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueueReq) ProtoMessage() {} + +func (x *QueueReq) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueueReq.ProtoReflect.Descriptor instead. +func (*QueueReq) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{39} +} + +func (x *QueueReq) GetUser() string { + if x != nil { + return x.User + } + return "" +} + +func (x *QueueReq) GetStrJobManagerID() string { + if x != nil { + return x.StrJobManagerID + } + return "" +} + +type QueueResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" //状态码 示例:0 + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" //信息 示例:success + Data []*QueueData `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //队列数组 +} + +func (x *QueueResp) Reset() { + *x = QueueResp{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueueResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueueResp) ProtoMessage() {} + +func (x *QueueResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueueResp.ProtoReflect.Descriptor instead. +func (*QueueResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{40} +} + +func (x *QueueResp) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *QueueResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *QueueResp) GetData() []*QueueData { + if x != nil { + return x.Data + } + return nil +} + +type QueueData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AclHosts string `protobuf:"bytes,1,opt,name=aclHosts,proto3" json:"aclHosts,omitempty"` // @gotags: copier:"aclHosts" //可用节点,多个节点用逗号隔开 示例:node1,node2 + Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // @gotags: copier:"id" //队列名称 示例:debug + Text string `protobuf:"bytes,3,opt,name=text,proto3" json:"text,omitempty"` // @gotags: copier:"text" //队列名称 示例:debug + QueNodes string `protobuf:"bytes,4,opt,name=queNodes,proto3" json:"queNodes,omitempty"` // @gotags: copier:"queNodes" //队列节点总数 示例:3 + QueMinNodect string `protobuf:"bytes,5,opt,name=queMinNodect,proto3" json:"queMinNodect,omitempty"` // @gotags: copier:"queMinNodect" //队列最小节点数 示例:1 + QueMaxNgpus string `protobuf:"bytes,6,opt,name=queMaxNgpus,proto3" json:"queMaxNgpus,omitempty"` // @gotags: copier:"queMaxNgpus" //队列最大GPU卡数 示例:0 + QueMaxPPN string `protobuf:"bytes,7,opt,name=queMaxPPN,proto3" json:"queMaxPPN,omitempty"` // @gotags: copier:"queMaxPPN" //使用该队列作业最大CPU核心数 示例:4 + QueChargeRate string `protobuf:"bytes,8,opt,name=queChargeRate,proto3" json:"queChargeRate,omitempty"` // @gotags: copier:"queChargeRate" //费率 示例:1 + QueMaxNcpus string `protobuf:"bytes,9,opt,name=queMaxNcpus,proto3" json:"queMaxNcpus,omitempty"` // @gotags: copier:"queMaxNcpus" //用户最大可用核心数 示例:4 + QueMaxNdcus string `protobuf:"bytes,10,opt,name=queMaxNdcus,proto3" json:"queMaxNdcus,omitempty"` // @gotags: copier:"queMaxNdcus" //队列总DCU卡数 示例:0 + QueueName string `protobuf:"bytes,11,opt,name=queueName,proto3" json:"queueName,omitempty"` // @gotags: copier:"queueName" //队列名称 示例:debug + QueMinNcpus string `protobuf:"bytes,12,opt,name=queMinNcpus,proto3" json:"queMinNcpus,omitempty"` // @gotags: copier:"queMinNcpus" //队列最小CPU核数 示例:1 + QueFreeNodes string `protobuf:"bytes,13,opt,name=queFreeNodes,proto3" json:"queFreeNodes,omitempty"` // @gotags: copier:"queFreeNodes" //队列空闲节点数 示例:1 + QueMaxNodect string `protobuf:"bytes,14,opt,name=queMaxNodect,proto3" json:"queMaxNodect,omitempty"` // @gotags: copier:"queMaxNodect" //队列作业最大节点数 示例:1 + QueMaxGpuPN string `protobuf:"bytes,15,opt,name=queMaxGpuPN,proto3" json:"queMaxGpuPN,omitempty"` // @gotags: copier:"queMaxGpuPN" //队列单作业最大GPU卡数 示例:0 + QueMaxWalltime string `protobuf:"bytes,16,opt,name=queMaxWalltime,proto3" json:"queMaxWalltime,omitempty"` // @gotags: copier:"queMaxWalltime" //队列最大运行时间 示例:unlimit + QueMaxDcuPN string `protobuf:"bytes,17,opt,name=queMaxDcuPN,proto3" json:"queMaxDcuPN,omitempty"` // @gotags: copier:"queMaxDcuPN" //队列单作业最大DCU卡数 示例:0 +} + +func (x *QueueData) Reset() { + *x = QueueData{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueueData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueueData) ProtoMessage() {} + +func (x *QueueData) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueueData.ProtoReflect.Descriptor instead. +func (*QueueData) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{41} +} + +func (x *QueueData) GetAclHosts() string { + if x != nil { + return x.AclHosts + } + return "" +} + +func (x *QueueData) GetId() string { + if x != nil { + return x.Id + } + return "" +} + +func (x *QueueData) GetText() string { + if x != nil { + return x.Text + } + return "" +} + +func (x *QueueData) GetQueNodes() string { + if x != nil { + return x.QueNodes + } + return "" +} + +func (x *QueueData) GetQueMinNodect() string { + if x != nil { + return x.QueMinNodect + } + return "" +} + +func (x *QueueData) GetQueMaxNgpus() string { + if x != nil { + return x.QueMaxNgpus + } + return "" +} + +func (x *QueueData) GetQueMaxPPN() string { + if x != nil { + return x.QueMaxPPN + } + return "" +} + +func (x *QueueData) GetQueChargeRate() string { + if x != nil { + return x.QueChargeRate + } + return "" +} + +func (x *QueueData) GetQueMaxNcpus() string { + if x != nil { + return x.QueMaxNcpus + } + return "" +} + +func (x *QueueData) GetQueMaxNdcus() string { + if x != nil { + return x.QueMaxNdcus + } + return "" +} + +func (x *QueueData) GetQueueName() string { + if x != nil { + return x.QueueName + } + return "" +} + +func (x *QueueData) GetQueMinNcpus() string { + if x != nil { + return x.QueMinNcpus + } + return "" +} + +func (x *QueueData) GetQueFreeNodes() string { + if x != nil { + return x.QueFreeNodes + } + return "" +} + +func (x *QueueData) GetQueMaxNodect() string { + if x != nil { + return x.QueMaxNodect + } + return "" +} + +func (x *QueueData) GetQueMaxGpuPN() string { + if x != nil { + return x.QueMaxGpuPN + } + return "" +} + +func (x *QueueData) GetQueMaxWalltime() string { + if x != nil { + return x.QueMaxWalltime + } + return "" +} + +func (x *QueueData) GetQueMaxDcuPN() string { + if x != nil { + return x.QueMaxDcuPN + } + return "" +} + +type QueueDetailsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" //状态码 示例:0 + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" //信息 示例:success + Data []*QueueDetailsData `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //队列数组 +} + +func (x *QueueDetailsResp) Reset() { + *x = QueueDetailsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueueDetailsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueueDetailsResp) ProtoMessage() {} + +func (x *QueueDetailsResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueueDetailsResp.ProtoReflect.Descriptor instead. +func (*QueueDetailsResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{42} +} + +func (x *QueueDetailsResp) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *QueueDetailsResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *QueueDetailsResp) GetData() []*QueueDetailsData { + if x != nil { + return x.Data + } + return nil +} + +type QueueDetailsData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + QueNodes int32 `protobuf:"varint,1,opt,name=queNodes,proto3" json:"queNodes,omitempty"` // @gotags: copier:"queNodes" //队列节点总数 示例:3 + QueMinNodect int32 `protobuf:"varint,2,opt,name=queMinNodect,proto3" json:"queMinNodect,omitempty"` // @gotags: copier:"queMinNodect" //队列最小节点数 示例:1 + QueMaxNgpus int32 `protobuf:"varint,3,opt,name=queMaxNgpus,proto3" json:"queMaxNgpus,omitempty"` // @gotags: copier:"queMaxNgpus" //队列最大GPU卡数 示例:0 + QueMaxPPN int32 `protobuf:"varint,4,opt,name=queMaxPPN,proto3" json:"queMaxPPN,omitempty"` // @gotags: copier:"queMaxPPN" //使用该队列作业最大CPU核心数 示例:4 + QueChargeRate float32 `protobuf:"fixed32,5,opt,name=queChargeRate,proto3" json:"queChargeRate,omitempty"` // @gotags: copier:"queChargeRate" //费率 示例:1 + QueMaxNcpus int32 `protobuf:"varint,6,opt,name=queMaxNcpus,proto3" json:"queMaxNcpus,omitempty"` // @gotags: copier:"queMaxNcpus" //用户最大可用核心数 示例:4 + QueMaxNdcus int32 `protobuf:"varint,7,opt,name=queMaxNdcus,proto3" json:"queMaxNdcus,omitempty"` // @gotags: copier:"queMaxNdcus" //队列总DCU卡数 示例:0 + QueueName string `protobuf:"bytes,8,opt,name=queueName,proto3" json:"queueName,omitempty"` // @gotags: copier:"queueName" //队列名称 示例:debug + QueMinNcpus int32 `protobuf:"varint,9,opt,name=queMinNcpus,proto3" json:"queMinNcpus,omitempty"` // @gotags: copier:"queMinNcpus" //队列最小CPU核数 示例:1 + QueFreeNodes int32 `protobuf:"varint,10,opt,name=queFreeNodes,proto3" json:"queFreeNodes,omitempty"` // @gotags: copier:"queFreeNodes" //队列空闲节点数 示例:1 + QueMaxNodect int32 `protobuf:"varint,11,opt,name=queMaxNodect,proto3" json:"queMaxNodect,omitempty"` // @gotags: copier:"queMaxNodect" //队列作业最大节点数 示例:1 + QueMaxGpuPN int32 `protobuf:"varint,12,opt,name=queMaxGpuPN,proto3" json:"queMaxGpuPN,omitempty"` // @gotags: copier:"queMaxGpuPN" //队列单作业最大GPU卡数 示例:0 + QueMaxWalltime int32 `protobuf:"varint,13,opt,name=queMaxWalltime,proto3" json:"queMaxWalltime,omitempty"` // @gotags: copier:"queMaxWalltime" //队列最大运行时间 示例:unlimit + QueMaxDcuPN int32 `protobuf:"varint,14,opt,name=queMaxDcuPN,proto3" json:"queMaxDcuPN,omitempty"` // @gotags: copier:"queMaxDcuPN" //队列单作业最大DCU卡数 示例:0 +} + +func (x *QueueDetailsData) Reset() { + *x = QueueDetailsData{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QueueDetailsData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QueueDetailsData) ProtoMessage() {} + +func (x *QueueDetailsData) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QueueDetailsData.ProtoReflect.Descriptor instead. +func (*QueueDetailsData) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{43} +} + +func (x *QueueDetailsData) GetQueNodes() int32 { + if x != nil { + return x.QueNodes + } + return 0 +} + +func (x *QueueDetailsData) GetQueMinNodect() int32 { + if x != nil { + return x.QueMinNodect + } + return 0 +} + +func (x *QueueDetailsData) GetQueMaxNgpus() int32 { + if x != nil { + return x.QueMaxNgpus + } + return 0 +} + +func (x *QueueDetailsData) GetQueMaxPPN() int32 { + if x != nil { + return x.QueMaxPPN + } + return 0 +} + +func (x *QueueDetailsData) GetQueChargeRate() float32 { + if x != nil { + return x.QueChargeRate + } + return 0 +} + +func (x *QueueDetailsData) GetQueMaxNcpus() int32 { + if x != nil { + return x.QueMaxNcpus + } + return 0 +} + +func (x *QueueDetailsData) GetQueMaxNdcus() int32 { + if x != nil { + return x.QueMaxNdcus + } + return 0 +} + +func (x *QueueDetailsData) GetQueueName() string { + if x != nil { + return x.QueueName + } + return "" +} + +func (x *QueueDetailsData) GetQueMinNcpus() int32 { + if x != nil { + return x.QueMinNcpus + } + return 0 +} + +func (x *QueueDetailsData) GetQueFreeNodes() int32 { + if x != nil { + return x.QueFreeNodes + } + return 0 +} + +func (x *QueueDetailsData) GetQueMaxNodect() int32 { + if x != nil { + return x.QueMaxNodect + } + return 0 +} + +func (x *QueueDetailsData) GetQueMaxGpuPN() int32 { + if x != nil { + return x.QueMaxGpuPN + } + return 0 +} + +func (x *QueueDetailsData) GetQueMaxWalltime() int32 { + if x != nil { + return x.QueMaxWalltime + } + return 0 +} + +func (x *QueueDetailsData) GetQueMaxDcuPN() int32 { + if x != nil { + return x.QueMaxDcuPN + } + return 0 +} + +type UserQuotasLimitResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Code string `protobuf:"bytes,1,opt,name=code,proto3" json:"code,omitempty"` // @gotags: copier:"Code" //状态码 示例:0 + Msg string `protobuf:"bytes,2,opt,name=msg,proto3" json:"msg,omitempty"` // @gotags: copier:"Msg" //信息 示例:success + Data *UserQuotasLimitData `protobuf:"bytes,3,opt,name=data,proto3" json:"data,omitempty"` // @gotags: copier:"Data" //队列数组 +} + +func (x *UserQuotasLimitResp) Reset() { + *x = UserQuotasLimitResp{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserQuotasLimitResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserQuotasLimitResp) ProtoMessage() {} + +func (x *UserQuotasLimitResp) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserQuotasLimitResp.ProtoReflect.Descriptor instead. +func (*UserQuotasLimitResp) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{44} +} + +func (x *UserQuotasLimitResp) GetCode() string { + if x != nil { + return x.Code + } + return "" +} + +func (x *UserQuotasLimitResp) GetMsg() string { + if x != nil { + return x.Msg + } + return "" +} + +func (x *UserQuotasLimitResp) GetData() *UserQuotasLimitData { + if x != nil { + return x.Data + } + return nil +} + +type UserQuotasLimitData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=userName,proto3" json:"userName,omitempty"` // @gotags: copier:"userName" //用户名称 + AccountName string `protobuf:"bytes,2,opt,name=accountName,proto3" json:"accountName,omitempty"` // @gotags: copier:"accountName" //用户所关联的默认的账号名 + UserMaxCpu int64 `protobuf:"varint,3,opt,name=userMaxCpu,proto3" json:"userMaxCpu,omitempty"` // @gotags: copier:"userMaxCpu" //用户最大CPU核数,单位:个,如果未做限制,则值为-1 + UserMaxDcu int64 `protobuf:"varint,4,opt,name=userMaxDcu,proto3" json:"userMaxDcu,omitempty"` // @gotags: copier:"userMaxDcu" //用户最大DCU卡数,单位:个,如果未做限制,则值为-1 + UserMaxGpu int64 `protobuf:"varint,5,opt,name=userMaxGpu,proto3" json:"userMaxGpu,omitempty"` // @gotags: copier:"userMaxGpu" //用户最大GPU卡数,单位:个,如果未做限制,则值为-1 + UserMaxMlu int64 `protobuf:"varint,6,opt,name=userMaxMlu,proto3" json:"userMaxMlu,omitempty"` // @gotags: copier:"userMaxMlu" //用户最大MLU卡数,单位:个,如果未做限制,则值为-1 + UserMaxMem int64 `protobuf:"varint,7,opt,name=userMaxMem,proto3" json:"userMaxMem,omitempty"` // @gotags: copier:"userMaxMem" //用户最大内存,单位:m,如果未做限制,则值为-1 + UserMaxNode int64 `protobuf:"varint,8,opt,name=userMaxNode,proto3" json:"userMaxNode,omitempty"` // @gotags: copier:"userMaxNode" //用户最大节点数,单位:个,如果未做限制,则值为-1 + UserMaxSubmitJob int64 `protobuf:"varint,9,opt,name=userMaxSubmitJob,proto3" json:"userMaxSubmitJob,omitempty"` // @gotags: copier:"userMaxSubmitJob" //用户最大提交作业数,单位:个,如果未做限制,则值为-1 + UserMaxRunJob int64 `protobuf:"varint,10,opt,name=userMaxRunJob,proto3" json:"userMaxRunJob,omitempty"` // @gotags: copier:"userMaxRunJob" //用户最大运行作业数,单位:个,如果未做限制,则值为-1 + AccountMaxCpu int64 `protobuf:"varint,11,opt,name=accountMaxCpu,proto3" json:"accountMaxCpu,omitempty"` // @gotags: copier:"accountMaxCpu" //账户最大CPU核数,单位:个,如果未做限制,则值为-1 + AccountMaxDcu int64 `protobuf:"varint,12,opt,name=accountMaxDcu,proto3" json:"accountMaxDcu,omitempty"` // @gotags: copier:"accountMaxDcu" //账户最大DCU卡数,单位:个,如果未做限制,则值为-1 + AccountMaxGpu int64 `protobuf:"varint,13,opt,name=accountMaxGpu,proto3" json:"accountMaxGpu,omitempty"` // @gotags: copier:"accountMaxGpu" //账户最大GPU卡数,单位:个,如果未做限制,则值为-1 + AccountMaxMlu int64 `protobuf:"varint,14,opt,name=accountMaxMlu,proto3" json:"accountMaxMlu,omitempty"` // @gotags: copier:"accountMaxMlu" //账户最大MLU卡数,单位:个,如果未做限制,则值为-1 + AccountMaxMem int64 `protobuf:"varint,15,opt,name=accountMaxMem,proto3" json:"accountMaxMem,omitempty"` // @gotags: copier:"accountMaxMem" //账户最大内存,单位:m,如果未做限制,则值为-1 + AccountMaxNode int64 `protobuf:"varint,16,opt,name=accountMaxNode,proto3" json:"accountMaxNode,omitempty"` // @gotags: copier:"accountMaxNode" //账户最大节点数,单位:个,如果未做限制,则值为-1 + AccountMaxSubmitJob int64 `protobuf:"varint,17,opt,name=accountMaxSubmitJob,proto3" json:"accountMaxSubmitJob,omitempty"` // @gotags: copier:"accountMaxSubmitJob" //账户最大提交作业数,单位:个,如果未做限制,则值为-1 + AccountMaxRunJob int64 `protobuf:"varint,18,opt,name=accountMaxRunJob,proto3" json:"accountMaxRunJob,omitempty"` // @gotags: copier:"accountMaxRunJob" //账户最大运行作业数,单位:个,如果未做限制,则值为-1 + UserMinCpu int64 `protobuf:"varint,19,opt,name=userMinCpu,proto3" json:"userMinCpu,omitempty"` // @gotags: copier:"userMinCpu" //用户最小CPU核数,单位:个,如果未做限制,则值为-1 + UserMinNode int64 `protobuf:"varint,20,opt,name=userMinNode,proto3" json:"userMinNode,omitempty"` // @gotags: copier:"userMinNode" //用户最小节点数,单位:个,如果未做限制,则值为-1 + MaxWallTime int64 `protobuf:"varint,21,opt,name=maxWallTime,proto3" json:"maxWallTime,omitempty"` // @gotags: copier:"maxWallTime" //用户关联的glod账号的机时,机时单位:s,如果未做限制,则值为-1 +} + +func (x *UserQuotasLimitData) Reset() { + *x = UserQuotasLimitData{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserQuotasLimitData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserQuotasLimitData) ProtoMessage() {} + +func (x *UserQuotasLimitData) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserQuotasLimitData.ProtoReflect.Descriptor instead. +func (*UserQuotasLimitData) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{45} +} + +func (x *UserQuotasLimitData) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *UserQuotasLimitData) GetAccountName() string { + if x != nil { + return x.AccountName + } + return "" } func (x *UserQuotasLimitData) GetUserMaxCpu() int64 { if x != nil { - return x.UserMaxCpu + return x.UserMaxCpu + } + return 0 +} + +func (x *UserQuotasLimitData) GetUserMaxDcu() int64 { + if x != nil { + return x.UserMaxDcu + } + return 0 +} + +func (x *UserQuotasLimitData) GetUserMaxGpu() int64 { + if x != nil { + return x.UserMaxGpu + } + return 0 +} + +func (x *UserQuotasLimitData) GetUserMaxMlu() int64 { + if x != nil { + return x.UserMaxMlu + } + return 0 +} + +func (x *UserQuotasLimitData) GetUserMaxMem() int64 { + if x != nil { + return x.UserMaxMem + } + return 0 +} + +func (x *UserQuotasLimitData) GetUserMaxNode() int64 { + if x != nil { + return x.UserMaxNode + } + return 0 +} + +func (x *UserQuotasLimitData) GetUserMaxSubmitJob() int64 { + if x != nil { + return x.UserMaxSubmitJob + } + return 0 +} + +func (x *UserQuotasLimitData) GetUserMaxRunJob() int64 { + if x != nil { + return x.UserMaxRunJob + } + return 0 +} + +func (x *UserQuotasLimitData) GetAccountMaxCpu() int64 { + if x != nil { + return x.AccountMaxCpu + } + return 0 +} + +func (x *UserQuotasLimitData) GetAccountMaxDcu() int64 { + if x != nil { + return x.AccountMaxDcu + } + return 0 +} + +func (x *UserQuotasLimitData) GetAccountMaxGpu() int64 { + if x != nil { + return x.AccountMaxGpu + } + return 0 +} + +func (x *UserQuotasLimitData) GetAccountMaxMlu() int64 { + if x != nil { + return x.AccountMaxMlu + } + return 0 +} + +func (x *UserQuotasLimitData) GetAccountMaxMem() int64 { + if x != nil { + return x.AccountMaxMem + } + return 0 +} + +func (x *UserQuotasLimitData) GetAccountMaxNode() int64 { + if x != nil { + return x.AccountMaxNode + } + return 0 +} + +func (x *UserQuotasLimitData) GetAccountMaxSubmitJob() int64 { + if x != nil { + return x.AccountMaxSubmitJob + } + return 0 +} + +func (x *UserQuotasLimitData) GetAccountMaxRunJob() int64 { + if x != nil { + return x.AccountMaxRunJob + } + return 0 +} + +func (x *UserQuotasLimitData) GetUserMinCpu() int64 { + if x != nil { + return x.UserMinCpu + } + return 0 +} + +func (x *UserQuotasLimitData) GetUserMinNode() int64 { + if x != nil { + return x.UserMinNode + } + return 0 +} + +func (x *UserQuotasLimitData) GetMaxWallTime() int64 { + if x != nil { + return x.MaxWallTime } return 0 } -func (x *UserQuotasLimitData) GetUserMaxDcu() int64 { +type HistoryJobDetailRespData struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + AcctTime string `protobuf:"bytes,1,opt,name=acctTime,proto3" json:"acctTime,omitempty"` // @gotags: copier:"acctTime" + AppType string `protobuf:"bytes,2,opt,name=appType,proto3" json:"appType,omitempty"` + Command string `protobuf:"bytes,3,opt,name=command,proto3" json:"command,omitempty"` + CommandExist string `protobuf:"bytes,4,opt,name=commandExist,proto3" json:"commandExist,omitempty"` + CpuNuclearHour string `protobuf:"bytes,5,opt,name=cpuNuclearHour,proto3" json:"cpuNuclearHour,omitempty"` + CpuNuclearSec string `protobuf:"bytes,6,opt,name=cpuNuclearSec,proto3" json:"cpuNuclearSec,omitempty"` + CpuUnitPrice float64 `protobuf:"fixed64,7,opt,name=cpuUnitPrice,proto3" json:"cpuUnitPrice,omitempty"` + DcuCardHour string `protobuf:"bytes,8,opt,name=dcuCardHour,proto3" json:"dcuCardHour,omitempty"` + DcuCardSec string `protobuf:"bytes,9,opt,name=dcuCardSec,proto3" json:"dcuCardSec,omitempty"` + DcuUnitPrice float64 `protobuf:"fixed64,10,opt,name=dcuUnitPrice,proto3" json:"dcuUnitPrice,omitempty"` + EfficiencyCpu string `protobuf:"bytes,11,opt,name=efficiencyCpu,proto3" json:"efficiencyCpu,omitempty"` + ExclusiveCputime int64 `protobuf:"varint,12,opt,name=exclusiveCputime,proto3" json:"exclusiveCputime,omitempty"` + ExclusiveMem int64 `protobuf:"varint,13,opt,name=exclusiveMem,proto3" json:"exclusiveMem,omitempty"` + ExclusiveWalltime int64 `protobuf:"varint,14,opt,name=exclusiveWalltime,proto3" json:"exclusiveWalltime,omitempty"` + Goldenable string `protobuf:"bytes,15,opt,name=goldenable,proto3" json:"goldenable,omitempty"` + GpuCardHour string `protobuf:"bytes,16,opt,name=gpuCardHour,proto3" json:"gpuCardHour,omitempty"` + GpuCardSec string `protobuf:"bytes,17,opt,name=gpuCardSec,proto3" json:"gpuCardSec,omitempty"` + GpuUnitPrice float64 `protobuf:"fixed64,18,opt,name=gpuUnitPrice,proto3" json:"gpuUnitPrice,omitempty"` + GroupName string `protobuf:"bytes,19,opt,name=groupName,proto3" json:"groupName,omitempty"` + HistoryAccount string `protobuf:"bytes,20,opt,name=historyAccount,proto3" json:"historyAccount,omitempty"` + HistoryQueuerate string `protobuf:"bytes,21,opt,name=historyQueuerate,proto3" json:"historyQueuerate,omitempty"` + IsSinglejob string `protobuf:"bytes,22,opt,name=isSinglejob,proto3" json:"isSinglejob,omitempty"` + JobCpuTime int64 `protobuf:"varint,23,opt,name=jobCpuTime,proto3" json:"jobCpuTime,omitempty"` + JobDcuNum int64 `protobuf:"varint,24,opt,name=jobDcuNum,proto3" json:"jobDcuNum,omitempty"` + JobEndTime string `protobuf:"bytes,25,opt,name=jobEndTime,proto3" json:"jobEndTime,omitempty"` + JobExecGpus string `protobuf:"bytes,26,opt,name=jobExecGpus,proto3" json:"jobExecGpus,omitempty"` + JobExecHost string `protobuf:"bytes,27,opt,name=jobExecHost,proto3" json:"jobExecHost,omitempty"` + JobExitStatus int64 `protobuf:"varint,28,opt,name=jobExitStatus,proto3" json:"jobExitStatus,omitempty"` + JobGpuNum int64 `protobuf:"varint,29,opt,name=jobGpuNum,proto3" json:"jobGpuNum,omitempty"` + JobId string `protobuf:"bytes,30,opt,name=jobId,proto3" json:"jobId,omitempty"` + JobMemUsed int64 `protobuf:"varint,31,opt,name=jobMemUsed,proto3" json:"jobMemUsed,omitempty"` + JobName string `protobuf:"bytes,32,opt,name=jobName,proto3" json:"jobName,omitempty"` + JobProcNum int64 `protobuf:"varint,33,opt,name=jobProcNum,proto3" json:"jobProcNum,omitempty"` + JobQueueTime string `protobuf:"bytes,34,opt,name=jobQueueTime,proto3" json:"jobQueueTime,omitempty"` + JobReqCpu float64 `protobuf:"fixed64,35,opt,name=jobReqCpu,proto3" json:"jobReqCpu,omitempty"` + JobReqDcu float64 `protobuf:"fixed64,36,opt,name=jobReqDcu,proto3" json:"jobReqDcu,omitempty"` + JobReqGpu float64 `protobuf:"fixed64,37,opt,name=jobReqGpu,proto3" json:"jobReqGpu,omitempty"` + JobReqMem string `protobuf:"bytes,38,opt,name=jobReqMem,proto3" json:"jobReqMem,omitempty"` + JobReqNodes float64 `protobuf:"fixed64,39,opt,name=jobReqNodes,proto3" json:"jobReqNodes,omitempty"` + JobResponseTime int64 `protobuf:"varint,40,opt,name=jobResponseTime,proto3" json:"jobResponseTime,omitempty"` + JobStartTime string `protobuf:"bytes,41,opt,name=jobStartTime,proto3" json:"jobStartTime,omitempty"` + JobState string `protobuf:"bytes,42,opt,name=jobState,proto3" json:"jobState,omitempty"` + JobVmemUsed int64 `protobuf:"varint,43,opt,name=jobVmemUsed,proto3" json:"jobVmemUsed,omitempty"` + JobWaitTime int64 `protobuf:"varint,44,opt,name=jobWaitTime,proto3" json:"jobWaitTime,omitempty"` + JobWalltimeUsed int64 `protobuf:"varint,45,opt,name=jobWalltimeUsed,proto3" json:"jobWalltimeUsed,omitempty"` + JobmanagerId int64 `protobuf:"varint,46,opt,name=jobmanagerId,proto3" json:"jobmanagerId,omitempty"` + JobmanagerName string `protobuf:"bytes,47,opt,name=jobmanagerName,proto3" json:"jobmanagerName,omitempty"` + NeedNodes string `protobuf:"bytes,48,opt,name=needNodes,proto3" json:"needNodes,omitempty"` + Nodect int64 `protobuf:"varint,49,opt,name=nodect,proto3" json:"nodect,omitempty"` + Owner string `protobuf:"bytes,50,opt,name=owner,proto3" json:"owner,omitempty"` + Queue string `protobuf:"bytes,51,opt,name=queue,proto3" json:"queue,omitempty"` + Scale string `protobuf:"bytes,52,opt,name=scale,proto3" json:"scale,omitempty"` + ShareCputime int64 `protobuf:"varint,53,opt,name=shareCputime,proto3" json:"shareCputime,omitempty"` + ShareMem int64 `protobuf:"varint,54,opt,name=shareMem,proto3" json:"shareMem,omitempty"` + ShareWalltime int64 `protobuf:"varint,55,opt,name=shareWalltime,proto3" json:"shareWalltime,omitempty"` + StartCount string `protobuf:"bytes,56,opt,name=startCount,proto3" json:"startCount,omitempty"` + UserName string `protobuf:"bytes,57,opt,name=userName,proto3" json:"userName,omitempty"` + Walltime int64 `protobuf:"varint,58,opt,name=walltime,proto3" json:"walltime,omitempty"` + Workdir string `protobuf:"bytes,59,opt,name=workdir,proto3" json:"workdir,omitempty"` +} + +func (x *HistoryJobDetailRespData) Reset() { + *x = HistoryJobDetailRespData{} + if protoimpl.UnsafeEnabled { + mi := &file_hpcAC_proto_msgTypes[47] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *HistoryJobDetailRespData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*HistoryJobDetailRespData) ProtoMessage() {} + +func (x *HistoryJobDetailRespData) ProtoReflect() protoreflect.Message { + mi := &file_hpcAC_proto_msgTypes[47] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use HistoryJobDetailRespData.ProtoReflect.Descriptor instead. +func (*HistoryJobDetailRespData) Descriptor() ([]byte, []int) { + return file_hpcAC_proto_rawDescGZIP(), []int{35, 0} +} + +func (x *HistoryJobDetailRespData) GetAcctTime() string { if x != nil { - return x.UserMaxDcu + return x.AcctTime + } + return "" +} + +func (x *HistoryJobDetailRespData) GetAppType() string { + if x != nil { + return x.AppType + } + return "" +} + +func (x *HistoryJobDetailRespData) GetCommand() string { + if x != nil { + return x.Command + } + return "" +} + +func (x *HistoryJobDetailRespData) GetCommandExist() string { + if x != nil { + return x.CommandExist + } + return "" +} + +func (x *HistoryJobDetailRespData) GetCpuNuclearHour() string { + if x != nil { + return x.CpuNuclearHour + } + return "" +} + +func (x *HistoryJobDetailRespData) GetCpuNuclearSec() string { + if x != nil { + return x.CpuNuclearSec + } + return "" +} + +func (x *HistoryJobDetailRespData) GetCpuUnitPrice() float64 { + if x != nil { + return x.CpuUnitPrice } return 0 } -func (x *UserQuotasLimitData) GetUserMaxGpu() int64 { +func (x *HistoryJobDetailRespData) GetDcuCardHour() string { if x != nil { - return x.UserMaxGpu + return x.DcuCardHour + } + return "" +} + +func (x *HistoryJobDetailRespData) GetDcuCardSec() string { + if x != nil { + return x.DcuCardSec + } + return "" +} + +func (x *HistoryJobDetailRespData) GetDcuUnitPrice() float64 { + if x != nil { + return x.DcuUnitPrice } return 0 } -func (x *UserQuotasLimitData) GetUserMaxMlu() int64 { +func (x *HistoryJobDetailRespData) GetEfficiencyCpu() string { if x != nil { - return x.UserMaxMlu + return x.EfficiencyCpu + } + return "" +} + +func (x *HistoryJobDetailRespData) GetExclusiveCputime() int64 { + if x != nil { + return x.ExclusiveCputime } return 0 } -func (x *UserQuotasLimitData) GetUserMaxMem() int64 { +func (x *HistoryJobDetailRespData) GetExclusiveMem() int64 { + if x != nil { + return x.ExclusiveMem + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetExclusiveWalltime() int64 { + if x != nil { + return x.ExclusiveWalltime + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetGoldenable() string { + if x != nil { + return x.Goldenable + } + return "" +} + +func (x *HistoryJobDetailRespData) GetGpuCardHour() string { + if x != nil { + return x.GpuCardHour + } + return "" +} + +func (x *HistoryJobDetailRespData) GetGpuCardSec() string { + if x != nil { + return x.GpuCardSec + } + return "" +} + +func (x *HistoryJobDetailRespData) GetGpuUnitPrice() float64 { + if x != nil { + return x.GpuUnitPrice + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetGroupName() string { + if x != nil { + return x.GroupName + } + return "" +} + +func (x *HistoryJobDetailRespData) GetHistoryAccount() string { + if x != nil { + return x.HistoryAccount + } + return "" +} + +func (x *HistoryJobDetailRespData) GetHistoryQueuerate() string { + if x != nil { + return x.HistoryQueuerate + } + return "" +} + +func (x *HistoryJobDetailRespData) GetIsSinglejob() string { + if x != nil { + return x.IsSinglejob + } + return "" +} + +func (x *HistoryJobDetailRespData) GetJobCpuTime() int64 { + if x != nil { + return x.JobCpuTime + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetJobDcuNum() int64 { + if x != nil { + return x.JobDcuNum + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetJobEndTime() string { + if x != nil { + return x.JobEndTime + } + return "" +} + +func (x *HistoryJobDetailRespData) GetJobExecGpus() string { + if x != nil { + return x.JobExecGpus + } + return "" +} + +func (x *HistoryJobDetailRespData) GetJobExecHost() string { + if x != nil { + return x.JobExecHost + } + return "" +} + +func (x *HistoryJobDetailRespData) GetJobExitStatus() int64 { + if x != nil { + return x.JobExitStatus + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetJobGpuNum() int64 { + if x != nil { + return x.JobGpuNum + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetJobId() string { + if x != nil { + return x.JobId + } + return "" +} + +func (x *HistoryJobDetailRespData) GetJobMemUsed() int64 { + if x != nil { + return x.JobMemUsed + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetJobName() string { + if x != nil { + return x.JobName + } + return "" +} + +func (x *HistoryJobDetailRespData) GetJobProcNum() int64 { + if x != nil { + return x.JobProcNum + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetJobQueueTime() string { + if x != nil { + return x.JobQueueTime + } + return "" +} + +func (x *HistoryJobDetailRespData) GetJobReqCpu() float64 { + if x != nil { + return x.JobReqCpu + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetJobReqDcu() float64 { + if x != nil { + return x.JobReqDcu + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetJobReqGpu() float64 { + if x != nil { + return x.JobReqGpu + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetJobReqMem() string { + if x != nil { + return x.JobReqMem + } + return "" +} + +func (x *HistoryJobDetailRespData) GetJobReqNodes() float64 { + if x != nil { + return x.JobReqNodes + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetJobResponseTime() int64 { + if x != nil { + return x.JobResponseTime + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetJobStartTime() string { + if x != nil { + return x.JobStartTime + } + return "" +} + +func (x *HistoryJobDetailRespData) GetJobState() string { + if x != nil { + return x.JobState + } + return "" +} + +func (x *HistoryJobDetailRespData) GetJobVmemUsed() int64 { + if x != nil { + return x.JobVmemUsed + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetJobWaitTime() int64 { + if x != nil { + return x.JobWaitTime + } + return 0 +} + +func (x *HistoryJobDetailRespData) GetJobWalltimeUsed() int64 { if x != nil { - return x.UserMaxMem + return x.JobWalltimeUsed } return 0 } -func (x *UserQuotasLimitData) GetUserMaxNode() int64 { +func (x *HistoryJobDetailRespData) GetJobmanagerId() int64 { if x != nil { - return x.UserMaxNode + return x.JobmanagerId } return 0 } -func (x *UserQuotasLimitData) GetUserMaxSubmitJob() int64 { +func (x *HistoryJobDetailRespData) GetJobmanagerName() string { if x != nil { - return x.UserMaxSubmitJob + return x.JobmanagerName } - return 0 + return "" } -func (x *UserQuotasLimitData) GetUserMaxRunJob() int64 { +func (x *HistoryJobDetailRespData) GetNeedNodes() string { if x != nil { - return x.UserMaxRunJob + return x.NeedNodes } - return 0 + return "" } -func (x *UserQuotasLimitData) GetAccountMaxCpu() int64 { +func (x *HistoryJobDetailRespData) GetNodect() int64 { if x != nil { - return x.AccountMaxCpu + return x.Nodect } return 0 } -func (x *UserQuotasLimitData) GetAccountMaxDcu() int64 { +func (x *HistoryJobDetailRespData) GetOwner() string { if x != nil { - return x.AccountMaxDcu + return x.Owner } - return 0 + return "" } -func (x *UserQuotasLimitData) GetAccountMaxGpu() int64 { +func (x *HistoryJobDetailRespData) GetQueue() string { if x != nil { - return x.AccountMaxGpu + return x.Queue } - return 0 + return "" } -func (x *UserQuotasLimitData) GetAccountMaxMlu() int64 { +func (x *HistoryJobDetailRespData) GetScale() string { if x != nil { - return x.AccountMaxMlu + return x.Scale } - return 0 + return "" } -func (x *UserQuotasLimitData) GetAccountMaxMem() int64 { +func (x *HistoryJobDetailRespData) GetShareCputime() int64 { if x != nil { - return x.AccountMaxMem + return x.ShareCputime } return 0 } -func (x *UserQuotasLimitData) GetAccountMaxNode() int64 { +func (x *HistoryJobDetailRespData) GetShareMem() int64 { if x != nil { - return x.AccountMaxNode + return x.ShareMem } return 0 } -func (x *UserQuotasLimitData) GetAccountMaxSubmitJob() int64 { +func (x *HistoryJobDetailRespData) GetShareWalltime() int64 { if x != nil { - return x.AccountMaxSubmitJob + return x.ShareWalltime } return 0 } -func (x *UserQuotasLimitData) GetAccountMaxRunJob() int64 { +func (x *HistoryJobDetailRespData) GetStartCount() string { if x != nil { - return x.AccountMaxRunJob + return x.StartCount } - return 0 + return "" } -func (x *UserQuotasLimitData) GetUserMinCpu() int64 { +func (x *HistoryJobDetailRespData) GetUserName() string { if x != nil { - return x.UserMinCpu + return x.UserName } - return 0 + return "" } -func (x *UserQuotasLimitData) GetUserMinNode() int64 { +func (x *HistoryJobDetailRespData) GetWalltime() int64 { if x != nil { - return x.UserMinNode + return x.Walltime } return 0 } -func (x *UserQuotasLimitData) GetMaxWallTime() int64 { +func (x *HistoryJobDetailRespData) GetWorkdir() string { if x != nil { - return x.MaxWallTime + return x.Workdir } - return 0 + return "" } var File_hpcAC_proto protoreflect.FileDescriptor @@ -3403,510 +4864,618 @@ var file_hpcAC_proto_rawDesc = []byte{ 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x70, 0x6f, 0x72, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x50, 0x6f, 0x72, 0x74, 0x22, 0x0f, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x22, 0x70, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, + 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x22, 0x61, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, - 0x73, 0x67, 0x12, 0x34, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, - 0x2e, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x0b, 0x6a, 0x6f, 0x62, - 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x73, 0x22, 0xcf, 0x0d, 0x0a, 0x0b, 0x4a, 0x6f, 0x62, - 0x49, 0x6e, 0x69, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, - 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x72, 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x72, 0x75, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6c, 0x6c, - 0x6f, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, - 0x63, 0x68, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, - 0x61, 0x74, 0x63, 0x68, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x75, 0x73, - 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x70, 0x75, - 0x73, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, - 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x65, 0x78, 0x69, 0x73, 0x74, - 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x45, - 0x78, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x12, 0x1b, - 0x0a, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, 0x64, - 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x64, - 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x61, 0x79, - 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, 0x6c, - 0x61, 0x79, 0x42, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, 0x64, - 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, 0x65, - 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, - 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x65, - 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x65, - 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x78, 0x63, 0x5f, 0x6e, 0x6f, - 0x64, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, - 0x78, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, - 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, - 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, 0x18, - 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x15, - 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x16, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x63, 0x73, - 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, 0x63, - 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x70, - 0x75, 0x73, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, - 0x69, 0x6e, 0x43, 0x70, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x11, 0x6d, 0x69, - 0x6e, 0x5f, 0x74, 0x6d, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, - 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x6d, 0x70, 0x44, 0x69, 0x73, - 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, - 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, - 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x6e, - 0x62, 0x73, 0x63, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x74, 0x61, 0x73, 0x6b, - 0x73, 0x50, 0x65, 0x72, 0x4e, 0x62, 0x73, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, 0x5f, - 0x63, 0x70, 0x75, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x75, 0x6d, 0x43, - 0x70, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x73, - 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x4e, 0x6f, 0x64, 0x65, 0x73, - 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x21, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x25, 0x0a, - 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, 0x18, - 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, 0x63, - 0x72, 0x69, 0x62, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, - 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x24, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, - 0x72, 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x26, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x71, 0x6f, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, - 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x5f, 0x62, 0x73, - 0x63, 0x74, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x42, 0x73, 0x63, - 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, - 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x52, 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x2b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x75, 0x6e, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x75, 0x6e, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x68, 0x6f, - 0x73, 0x74, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, 0x48, - 0x6f, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x73, 0x5f, 0x70, 0x72, 0x65, 0x5f, - 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, - 0x65, 0x63, 0x73, 0x50, 0x72, 0x65, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x30, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x73, - 0x74, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, - 0x64, 0x45, 0x72, 0x72, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x5f, 0x69, 0x6e, 0x18, 0x33, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x64, 0x49, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x73, - 0x74, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, - 0x64, 0x4f, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, 0x74, - 0x69, 0x6d, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, - 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x75, 0x73, - 0x70, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x72, 0x65, 0x73, - 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x72, 0x65, 0x73, 0x12, 0x1d, 0x0a, 0x0a, - 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x38, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x74, - 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x39, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x74, - 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x69, - 0x64, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x19, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x3b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x22, 0xfb, 0x06, 0x0a, 0x11, 0x4a, - 0x6f, 0x62, 0x56, 0x6e, 0x63, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x18, 0x0a, 0x07, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x69, 0x5f, - 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x5f, 0x64, 0x65, - 0x70, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x50, 0x69, 0x78, 0x65, - 0x6c, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x5f, 0x63, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x69, - 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, 0x63, - 0x61, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x61, 0x6c, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x77, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x61, 0x73, - 0x73, 0x77, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x45, 0x78, 0x74, 0x72, 0x61, 0x41, 0x74, 0x74, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x73, 0x74, - 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, 0x21, - 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x5f, 0x67, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x47, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, - 0x79, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x74, 0x72, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, - 0x61, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x11, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x41, 0x64, - 0x64, 0x72, 0x12, 0x2b, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, - 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, - 0x2f, 0x0a, 0x14, 0x73, 0x74, 0x72, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x73, - 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x29, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x5f, 0x6a, - 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x74, 0x72, - 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, 0x73, - 0x74, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x0e, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x41, - 0x64, 0x64, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, - 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, - 0x74, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x43, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x5f, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x11, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x48, - 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x5f, 0x73, 0x65, 0x73, - 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, - 0x74, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, 0x73, - 0x74, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x77, 0x6e, 0x65, 0x72, - 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x5f, 0x73, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x73, 0x74, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, - 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x19, 0x0a, - 0x08, 0x76, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x76, 0x6e, 0x63, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x93, 0x09, 0x0a, 0x09, 0x4a, 0x6f, 0x62, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x76, 0x65, 0x5f, 0x72, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x65, 0x52, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x61, 0x76, - 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x61, 0x76, 0x65, 0x56, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x63, 0x70, - 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x63, 0x70, 0x75, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x12, 0x1e, - 0x0a, 0x0b, 0x64, 0x63, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x20, - 0x0a, 0x0c, 0x64, 0x63, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x55, 0x73, 0x65, 0x64, - 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, - 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, 0x0b, - 0x67, 0x70, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x09, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0c, - 0x67, 0x70, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x20, - 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x5f, 0x69, - 0x6e, 0x69, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, - 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x74, - 0x74, 0x72, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, - 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x6a, 0x6f, - 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, - 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x10, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, - 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, - 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x10, 0x6a, 0x6f, 0x62, - 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x13, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x56, - 0x6e, 0x63, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6a, - 0x6f, 0x62, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, 0x0a, - 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, - 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, - 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, - 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, - 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, 0x75, - 0x73, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x55, 0x73, - 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, - 0x65, 0x71, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4e, 0x75, - 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, 0x73, 0x65, - 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x55, 0x73, 0x65, - 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, - 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x1b, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x20, - 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x1c, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, - 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x75, 0x73, 0x65, - 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, - 0x55, 0x73, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x1e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, 0x65, - 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, - 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, - 0x75, 0x73, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, - 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x65, 0x71, - 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, - 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, 0x18, - 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x22, 0x25, - 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x15, - 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, - 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, - 0x2f, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x44, - 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x22, 0x37, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, - 0x12, 0x27, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x4a, - 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x70, 0x22, 0xaa, 0x01, 0x0a, 0x0d, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, - 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, - 0x67, 0x12, 0x38, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x20, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x39, 0x0a, 0x0b, 0x52, - 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 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, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x91, 0x04, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x15, - 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, - 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, - 0x64, 0x65, 0x55, 0x73, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x6e, - 0x75, 0x6d, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x70, - 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6a, 0x6f, - 0x62, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x20, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x4d, - 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, - 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4e, 0x61, - 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, - 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, 0x0a, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, - 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, 0x08, - 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, - 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x4c, 0x69, - 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x22, 0x76, 0x0a, 0x0b, 0x4c, 0x69, 0x73, 0x74, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x21, 0x0a, - 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, -<<<<<<< HEAD - 0x12, 0x1e, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, - 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x6a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, 0x73, - 0x22, 0x85, 0x04, 0x0a, 0x0a, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x12, - 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, - 0x61, 0x70, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x65, - 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, - 0x6f, 0x62, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6a, 0x6f, 0x62, - 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x26, 0x0a, - 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x69, 0x74, 0x53, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, - 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x71, - 0x75, 0x65, 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x6a, 0x6f, 0x62, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, + 0x73, 0x67, 0x12, 0x25, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xcf, 0x0d, 0x0a, 0x0b, 0x4a, 0x6f, + 0x62, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x74, 0x74, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x61, 0x63, 0x63, 0x72, 0x75, 0x65, 0x5f, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x63, 0x63, 0x72, 0x75, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x61, 0x6c, 0x6c, 0x6f, 0x63, 0x5f, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x73, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x6c, + 0x6c, 0x6f, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x53, 0x69, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, + 0x74, 0x63, 0x68, 0x5f, 0x66, 0x6c, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x62, 0x61, 0x74, 0x63, 0x68, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1b, 0x0a, 0x09, 0x63, 0x70, 0x75, + 0x73, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x63, 0x70, + 0x75, 0x73, 0x54, 0x61, 0x73, 0x6b, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x12, 0x23, 0x0a, 0x0d, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x5f, 0x65, 0x78, 0x69, 0x73, + 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, + 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x1e, 0x0a, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x74, 0x69, 0x67, 0x75, 0x6f, 0x75, 0x73, 0x12, + 0x1b, 0x0a, 0x09, 0x63, 0x6f, 0x72, 0x65, 0x5f, 0x73, 0x70, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x63, 0x6f, 0x72, 0x65, 0x53, 0x70, 0x65, 0x63, 0x12, 0x1a, 0x0a, 0x08, + 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x64, 0x65, 0x61, 0x64, 0x6c, 0x69, 0x6e, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x64, 0x65, 0x6c, 0x61, + 0x79, 0x5f, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x42, 0x6f, 0x6f, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x65, 0x70, 0x65, 0x6e, + 0x64, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x65, 0x70, + 0x65, 0x6e, 0x64, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x23, 0x0a, 0x0d, 0x65, 0x6c, 0x69, 0x67, 0x69, + 0x62, 0x6c, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x65, 0x6c, 0x69, 0x67, 0x69, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, 0x08, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x65, 0x78, 0x63, 0x5f, 0x6e, + 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x65, 0x78, 0x63, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x65, + 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x73, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, + 0x75, 0x72, 0x65, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x5f, 0x69, 0x64, + 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, + 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x16, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x6c, 0x69, 0x63, 0x65, 0x6e, 0x73, 0x65, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6d, 0x63, + 0x73, 0x5f, 0x6c, 0x61, 0x62, 0x65, 0x6c, 0x18, 0x18, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6d, + 0x63, 0x73, 0x4c, 0x61, 0x62, 0x65, 0x6c, 0x12, 0x22, 0x0a, 0x0d, 0x6d, 0x69, 0x6e, 0x5f, 0x63, + 0x70, 0x75, 0x73, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6d, 0x69, 0x6e, 0x43, 0x70, 0x75, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x29, 0x0a, 0x11, 0x6d, + 0x69, 0x6e, 0x5f, 0x74, 0x6d, 0x70, 0x5f, 0x64, 0x69, 0x73, 0x6b, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6d, 0x69, 0x6e, 0x54, 0x6d, 0x70, 0x44, 0x69, + 0x73, 0x6b, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, + 0x6b, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x65, 0x74, 0x77, 0x6f, 0x72, 0x6b, + 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x69, 0x63, 0x65, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, + 0x6e, 0x69, 0x63, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6c, 0x69, 0x73, + 0x74, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x26, 0x0a, 0x0f, 0x6e, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, + 0x6e, 0x62, 0x73, 0x63, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6e, 0x74, 0x61, 0x73, + 0x6b, 0x73, 0x50, 0x65, 0x72, 0x4e, 0x62, 0x73, 0x63, 0x12, 0x19, 0x0a, 0x08, 0x6e, 0x75, 0x6d, + 0x5f, 0x63, 0x70, 0x75, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6e, 0x75, 0x6d, + 0x43, 0x70, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x6e, 0x6f, 0x64, 0x65, + 0x73, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x4e, 0x6f, 0x64, 0x65, + 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x61, 0x73, 0x6b, 0x73, 0x18, 0x21, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x75, 0x6d, 0x54, 0x61, 0x73, 0x6b, 0x73, 0x12, 0x25, + 0x0a, 0x0e, 0x6f, 0x76, 0x65, 0x72, 0x5f, 0x73, 0x75, 0x62, 0x73, 0x63, 0x72, 0x69, 0x62, 0x65, + 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6f, 0x76, 0x65, 0x72, 0x53, 0x75, 0x62, 0x73, + 0x63, 0x72, 0x69, 0x62, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x18, 0x24, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x70, 0x6f, 0x77, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x25, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x69, + 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x71, 0x6f, 0x73, 0x18, 0x26, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x71, 0x6f, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x18, 0x27, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x18, 0x28, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x72, 0x65, 0x62, 0x6f, 0x6f, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x5f, 0x62, + 0x73, 0x63, 0x74, 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x42, 0x73, + 0x63, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x52, 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x52, 0x65, 0x71, 0x4e, 0x6f, 0x64, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, + 0x2b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x72, 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x75, + 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x75, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x61, 0x74, 0x63, 0x68, 0x5f, 0x68, + 0x6f, 0x73, 0x74, 0x18, 0x2e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, 0x61, 0x74, 0x63, 0x68, + 0x48, 0x6f, 0x73, 0x74, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x65, 0x63, 0x73, 0x5f, 0x70, 0x72, 0x65, + 0x5f, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x73, 0x65, 0x63, 0x73, 0x50, 0x72, 0x65, 0x53, 0x75, 0x73, 0x70, 0x65, 0x6e, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x30, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x6f, 0x63, 0x6b, 0x73, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x31, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x17, 0x0a, 0x07, + 0x73, 0x74, 0x64, 0x5f, 0x65, 0x72, 0x72, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x64, 0x45, 0x72, 0x72, 0x12, 0x15, 0x0a, 0x06, 0x73, 0x74, 0x64, 0x5f, 0x69, 0x6e, 0x18, + 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x64, 0x49, 0x6e, 0x12, 0x17, 0x0a, 0x07, + 0x73, 0x74, 0x64, 0x5f, 0x6f, 0x75, 0x74, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, + 0x74, 0x64, 0x4f, 0x75, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x5f, + 0x74, 0x69, 0x6d, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x6d, + 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x75, 0x73, 0x70, 0x65, 0x6e, + 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x36, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x75, + 0x73, 0x70, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x74, 0x72, 0x65, + 0x73, 0x18, 0x37, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x74, 0x72, 0x65, 0x73, 0x12, 0x1d, 0x0a, + 0x0a, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x18, 0x38, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x74, 0x69, 0x6d, 0x65, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x19, 0x0a, 0x08, + 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x6d, 0x69, 0x6e, 0x18, 0x39, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x74, 0x69, 0x6d, 0x65, 0x4d, 0x69, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x75, 0x73, 0x65, 0x72, 0x5f, + 0x69, 0x64, 0x18, 0x3a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x19, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x3b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x22, 0xfb, 0x06, 0x0a, 0x11, + 0x4a, 0x6f, 0x62, 0x56, 0x6e, 0x63, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x69, + 0x5f, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x69, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0d, 0x69, 0x5f, 0x70, 0x69, 0x78, 0x65, 0x6c, 0x5f, 0x64, + 0x65, 0x70, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x50, 0x69, 0x78, + 0x65, 0x6c, 0x44, 0x65, 0x70, 0x74, 0x68, 0x12, 0x21, 0x0a, 0x0c, 0x6c, 0x69, 0x73, 0x74, 0x5f, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, + 0x69, 0x73, 0x74, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6c, 0x6f, + 0x63, 0x61, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x61, 0x73, 0x73, 0x77, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6c, 0x6f, 0x67, 0x69, 0x6e, 0x50, 0x61, + 0x73, 0x73, 0x77, 0x64, 0x12, 0x35, 0x0a, 0x17, 0x6d, 0x61, 0x70, 0x5f, 0x73, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x5f, 0x65, 0x78, 0x74, 0x72, 0x61, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x73, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x14, 0x6d, 0x61, 0x70, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x45, 0x78, 0x74, 0x72, 0x61, 0x41, 0x74, 0x74, 0x72, 0x73, 0x12, 0x22, 0x0a, 0x0d, 0x73, + 0x74, 0x72, 0x5f, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x41, 0x75, 0x74, 0x68, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x72, 0x5f, 0x67, 0x65, 0x6f, 0x6d, 0x65, 0x74, 0x72, 0x79, 0x18, + 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x72, 0x47, 0x65, 0x6f, 0x6d, 0x65, 0x74, + 0x72, 0x79, 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x74, 0x72, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, + 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x11, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x41, + 0x64, 0x64, 0x72, 0x12, 0x2b, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x2f, 0x0a, 0x14, 0x73, 0x74, 0x72, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, + 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x29, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x5f, 0x72, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x5f, + 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x74, + 0x72, 0x52, 0x65, 0x6c, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0f, + 0x73, 0x74, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x41, 0x64, 0x64, 0x72, 0x12, 0x26, 0x0a, 0x0f, 0x73, 0x74, 0x72, 0x5f, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, + 0x74, 0x72, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x11, + 0x73, 0x74, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x63, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x43, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x2c, 0x0a, 0x12, 0x73, 0x74, 0x72, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x68, 0x65, 0x69, 0x67, 0x68, 0x74, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x73, 0x74, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x48, 0x65, 0x69, 0x67, 0x68, 0x74, 0x12, 0x24, 0x0a, 0x0e, 0x73, 0x74, 0x72, 0x5f, 0x73, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x73, 0x74, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x2a, 0x0a, 0x11, + 0x73, 0x74, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x6f, 0x77, 0x6e, 0x65, + 0x72, 0x18, 0x13, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x28, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x5f, + 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x14, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0e, 0x73, 0x74, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x73, 0x74, 0x72, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, + 0x6e, 0x5f, 0x77, 0x69, 0x64, 0x74, 0x68, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x73, + 0x74, 0x72, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x57, 0x69, 0x64, 0x74, 0x68, 0x12, 0x19, + 0x0a, 0x08, 0x76, 0x6e, 0x63, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x76, 0x6e, 0x63, 0x43, 0x6f, 0x64, 0x65, 0x22, 0x93, 0x09, 0x0a, 0x09, 0x4a, 0x6f, + 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x74, + 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x17, 0x0a, 0x07, 0x61, 0x76, 0x65, 0x5f, 0x72, 0x73, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x76, 0x65, 0x52, 0x73, 0x73, 0x12, 0x1e, 0x0a, 0x0b, 0x61, + 0x76, 0x65, 0x5f, 0x76, 0x6d, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x61, 0x76, 0x65, 0x56, 0x6d, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x63, + 0x70, 0x75, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x63, 0x70, 0x75, 0x54, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x12, + 0x1e, 0x0a, 0x0b, 0x64, 0x63, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x09, 0x64, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x12, + 0x20, 0x0a, 0x0c, 0x64, 0x63, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x64, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x55, 0x73, 0x65, + 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, + 0x12, 0x1b, 0x0a, 0x09, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x78, 0x69, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1e, 0x0a, + 0x0b, 0x67, 0x70, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x71, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x09, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, + 0x0c, 0x67, 0x70, 0x75, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x0a, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x67, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, + 0x20, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x36, 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x5f, + 0x69, 0x6e, 0x69, 0x74, 0x5f, 0x61, 0x74, 0x74, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x69, 0x74, 0x41, + 0x74, 0x74, 0x72, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x49, 0x6e, 0x69, 0x74, 0x41, 0x74, 0x74, 0x72, + 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x6a, + 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x2a, 0x0a, 0x11, 0x6a, 0x6f, 0x62, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, - 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6a, 0x6f, 0x62, - 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, - 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, - 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x74, 0x18, 0x0d, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x71, - 0x75, 0x65, 0x75, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, - 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0f, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, - 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x22, 0xc3, 0x01, 0x0a, 0x11, 0x4c, 0x69, 0x73, - 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x1c, - 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, 0x69, - 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x2e, - 0x0a, 0x12, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x69, 0x73, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x42, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x93, - 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, - 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, 0x72, - 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x34, - 0x0a, 0x0c, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x04, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x68, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x0b, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, - 0x4a, 0x6f, 0x62, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, - 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, 0x72, - 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, - 0x72, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x68, 0x70, 0x63, - 0x41, 0x43, 0x2e, 0x4d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x22, - 0x49, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0xeb, 0x04, 0x0a, 0x0d, 0x4d, - 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0c, - 0x47, 0x41, 0x50, 0x5f, 0x43, 0x4d, 0x44, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x43, 0x4d, 0x44, 0x46, 0x49, 0x4c, 0x45, 0x12, 0x1b, - 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x12, 0x26, 0x0a, 0x0f, 0x47, - 0x41, 0x50, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x4e, 0x4f, 0x44, 0x45, 0x53, 0x54, 0x52, - 0x49, 0x4e, 0x47, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x55, 0x42, 0x4d, 0x49, - 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, - 0x50, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x59, 0x50, 0x45, 0x12, 0x20, 0x0a, 0x0c, 0x47, - 0x41, 0x50, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x05, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4e, 0x41, 0x4d, 0x45, 0x12, 0x20, 0x0a, - 0x0c, 0x47, 0x41, 0x50, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x52, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x57, 0x4f, 0x52, 0x4b, 0x44, 0x49, 0x52, 0x12, - 0x1b, 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x51, 0x55, 0x45, 0x55, 0x45, 0x12, 0x1b, 0x0a, 0x09, - 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x47, 0x41, 0x50, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x12, 0x17, 0x0a, 0x07, 0x47, 0x41, 0x50, - 0x5f, 0x50, 0x50, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x41, 0x50, 0x50, - 0x50, 0x4e, 0x12, 0x19, 0x0a, 0x08, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x47, 0x50, 0x55, 0x18, 0x0a, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x41, 0x50, 0x4e, 0x47, 0x50, 0x55, 0x12, 0x19, 0x0a, - 0x08, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x44, 0x43, 0x55, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x47, 0x41, 0x50, 0x4e, 0x44, 0x43, 0x55, 0x12, 0x1e, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, - 0x4a, 0x4f, 0x42, 0x5f, 0x4d, 0x45, 0x4d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, - 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4d, 0x45, 0x4d, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, - 0x57, 0x41, 0x4c, 0x4c, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x47, 0x41, 0x50, 0x57, 0x41, 0x4c, 0x4c, 0x54, 0x49, 0x4d, 0x45, 0x12, 0x23, 0x0a, 0x0d, - 0x47, 0x41, 0x50, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, 0x45, 0x18, 0x0e, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x47, 0x41, 0x50, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, - 0x45, 0x12, 0x1f, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x41, 0x50, 0x50, 0x4e, 0x41, 0x4d, 0x45, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x41, 0x50, 0x50, 0x4e, 0x41, - 0x4d, 0x45, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x5f, - 0x53, 0x55, 0x42, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x47, 0x41, 0x50, 0x4d, 0x55, - 0x4c, 0x54, 0x49, 0x53, 0x55, 0x42, 0x12, 0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, - 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x4f, 0x55, 0x54, 0x46, 0x49, 0x4c, 0x45, 0x12, - 0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x5f, 0x46, - 0x49, 0x4c, 0x45, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, - 0x44, 0x45, 0x52, 0x52, 0x46, 0x49, 0x4c, 0x45, 0x32, 0xf1, 0x02, 0x0a, 0x05, 0x68, 0x70, 0x63, - 0x41, 0x43, 0x12, 0x30, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x11, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, - 0x1a, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, - 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x12, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, - 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, - 0x1a, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, - 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x53, - 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, - 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, - 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x4d, 0x61, - 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, - 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x68, 0x70, - 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, - 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, - 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, - 0x62, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x42, 0x08, 0x5a, 0x06, - 0x2f, 0x68, 0x70, 0x63, 0x41, 0x43, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -======= - 0x12, 0x34, 0x0a, 0x0c, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x73, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x68, - 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x0b, 0x68, 0x69, 0x73, 0x74, 0x6f, - 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, - 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, - 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, - 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, - 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, - 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x68, - 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0x49, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x26, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x6a, 0x6f, 0x62, + 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x42, 0x0a, 0x10, 0x6a, 0x6f, + 0x62, 0x5f, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x13, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x18, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, + 0x56, 0x6e, 0x63, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, + 0x6a, 0x6f, 0x62, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x24, + 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x14, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, + 0x67, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, + 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x74, 0x79, + 0x70, 0x65, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, + 0x61, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x6d, 0x65, 0x6d, 0x5f, + 0x75, 0x73, 0x65, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x55, + 0x73, 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0c, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, + 0x72, 0x65, 0x71, 0x18, 0x18, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x6e, 0x6f, 0x64, 0x65, 0x4e, + 0x75, 0x6d, 0x52, 0x65, 0x71, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x18, 0x19, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x6f, 0x64, 0x65, 0x55, 0x73, + 0x65, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, + 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x12, + 0x20, 0x0a, 0x0c, 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x72, 0x65, 0x71, 0x18, + 0x1c, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x70, 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, 0x52, 0x65, + 0x71, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x63, 0x5f, 0x6e, 0x75, 0x6d, 0x5f, 0x75, 0x73, + 0x65, 0x64, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x70, 0x72, 0x6f, 0x63, 0x4e, 0x75, + 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x1e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x72, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x18, 0x1f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x72, + 0x65, 0x73, 0x74, 0x61, 0x72, 0x74, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, + 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x61, 0x6c, 0x65, 0x12, 0x12, 0x0a, + 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x21, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x5f, 0x72, 0x65, + 0x71, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, + 0x65, 0x52, 0x65, 0x71, 0x12, 0x19, 0x0a, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, + 0x18, 0x23, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x22, + 0x25, 0x0a, 0x0c, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, + 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x22, 0x69, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, + 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, + 0x12, 0x2f, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, + 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x22, 0x37, 0x0a, 0x0c, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x12, 0x27, 0x0a, 0x10, 0x73, 0x74, 0x72, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x6e, 0x66, + 0x6f, 0x5f, 0x6d, 0x61, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x74, 0x72, + 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x4d, 0x61, 0x70, 0x22, 0xaa, 0x01, 0x0a, 0x0d, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, + 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, + 0x73, 0x67, 0x12, 0x38, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x1a, 0x39, 0x0a, 0x0b, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x45, 0x6e, 0x74, 0x72, 0x79, 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, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x91, 0x04, 0x0a, 0x03, 0x6a, 0x6f, 0x62, 0x12, + 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x19, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x1b, 0x0a, 0x09, 0x6e, 0x6f, + 0x64, 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, + 0x6f, 0x64, 0x65, 0x55, 0x73, 0x65, 0x64, 0x12, 0x22, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x63, 0x5f, + 0x6e, 0x75, 0x6d, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x70, 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x24, 0x0a, 0x0e, 0x6a, + 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x74, 0x69, 0x6d, + 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x52, 0x75, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, + 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x10, 0x6a, 0x6f, 0x62, + 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x10, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, + 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x54, 0x79, 0x70, 0x65, 0x12, 0x1d, 0x0a, + 0x0a, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1f, 0x0a, 0x0b, + 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6f, 0x75, 0x74, 0x70, 0x75, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x19, 0x0a, + 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x64, 0x69, 0x72, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x44, 0x69, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, + 0x12, 0x19, 0x0a, 0x08, 0x61, 0x70, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x11, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x4c, + 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x22, 0x76, 0x0a, 0x0b, 0x4c, 0x69, 0x73, + 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, + 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x21, + 0x0a, 0x0c, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0a, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x6a, 0x6f, 0x62, 0x52, 0x04, 0x6a, 0x6f, 0x62, + 0x73, 0x22, 0x85, 0x04, 0x0a, 0x0a, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, + 0x12, 0x1b, 0x0a, 0x09, 0x61, 0x63, 0x63, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x19, 0x0a, + 0x08, 0x61, 0x70, 0x70, 0x5f, 0x74, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x5f, + 0x65, 0x6e, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x6a, 0x6f, 0x62, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0d, 0x6a, 0x6f, + 0x62, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x5f, 0x68, 0x6f, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x48, 0x6f, 0x73, 0x74, 0x12, 0x26, + 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x5f, 0x65, 0x78, 0x69, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x69, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x19, 0x0a, + 0x08, 0x6a, 0x6f, 0x62, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, + 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x5f, 0x73, 0x74, 0x61, 0x74, + 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x2a, 0x0a, 0x11, 0x6a, 0x6f, 0x62, 0x5f, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, + 0x65, 0x5f, 0x75, 0x73, 0x65, 0x64, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x6a, 0x6f, + 0x62, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x12, 0x24, 0x0a, + 0x0e, 0x6a, 0x6f, 0x62, 0x5f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, + 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x17, 0x0a, 0x07, 0x6e, 0x6f, 0x64, 0x65, 0x5f, 0x63, 0x74, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x43, 0x74, 0x12, 0x14, 0x0a, 0x05, + 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, + 0x75, 0x65, 0x12, 0x1b, 0x0a, 0x09, 0x75, 0x73, 0x65, 0x72, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x18, 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x22, 0xc3, 0x01, 0x0a, 0x11, 0x4c, 0x69, + 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, + 0x1c, 0x0a, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x69, 0x6d, 0x65, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x05, 0x73, 0x74, 0x61, 0x72, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x6c, 0x69, 0x6d, + 0x69, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x12, + 0x2e, 0x0a, 0x12, 0x69, 0x73, 0x51, 0x75, 0x65, 0x72, 0x79, 0x42, 0x79, 0x51, 0x75, 0x65, 0x75, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x12, 0x69, 0x73, 0x51, + 0x75, 0x65, 0x72, 0x79, 0x42, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, + 0x93, 0x01, 0x0a, 0x12, 0x4c, 0x69, 0x73, 0x74, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0d, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x12, 0x21, 0x0a, 0x0c, + 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0b, 0x72, 0x65, 0x63, 0x6f, 0x72, 0x64, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, + 0x34, 0x0a, 0x0c, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x73, 0x18, + 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x68, 0x69, + 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x52, 0x0b, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, + 0x79, 0x4a, 0x6f, 0x62, 0x73, 0x22, 0xa8, 0x01, 0x0a, 0x0c, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, + 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x74, 0x79, 0x70, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x73, 0x74, + 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x72, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x3a, 0x0a, 0x0d, 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, + 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x68, 0x70, + 0x63, 0x41, 0x43, 0x2e, 0x4d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x0d, 0x6d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, + 0x22, 0x49, 0x0a, 0x0d, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0xeb, 0x04, 0x0a, 0x0d, + 0x4d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, + 0x0c, 0x47, 0x41, 0x50, 0x5f, 0x43, 0x4d, 0x44, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x43, 0x4d, 0x44, 0x46, 0x49, 0x4c, 0x45, 0x12, + 0x1b, 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x12, 0x26, 0x0a, 0x0f, + 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x4e, 0x4f, 0x44, 0x45, 0x53, 0x54, + 0x52, 0x49, 0x4e, 0x47, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x55, 0x42, 0x4d, + 0x49, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, + 0x41, 0x50, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x59, 0x50, 0x45, 0x12, 0x20, 0x0a, 0x0c, + 0x47, 0x41, 0x50, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4e, 0x41, 0x4d, 0x45, 0x12, 0x20, + 0x0a, 0x0c, 0x47, 0x41, 0x50, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x52, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x57, 0x4f, 0x52, 0x4b, 0x44, 0x49, 0x52, + 0x12, 0x1b, 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x51, 0x55, 0x45, 0x55, 0x45, 0x12, 0x1b, 0x0a, + 0x09, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x47, 0x41, 0x50, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x12, 0x17, 0x0a, 0x07, 0x47, 0x41, + 0x50, 0x5f, 0x50, 0x50, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x41, 0x50, + 0x50, 0x50, 0x4e, 0x12, 0x19, 0x0a, 0x08, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x47, 0x50, 0x55, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x41, 0x50, 0x4e, 0x47, 0x50, 0x55, 0x12, 0x19, + 0x0a, 0x08, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x44, 0x43, 0x55, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x47, 0x41, 0x50, 0x4e, 0x44, 0x43, 0x55, 0x12, 0x1e, 0x0a, 0x0b, 0x47, 0x41, 0x50, + 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x4d, 0x45, 0x4d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x47, 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4d, 0x45, 0x4d, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, + 0x5f, 0x57, 0x41, 0x4c, 0x4c, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x47, 0x41, 0x50, 0x57, 0x41, 0x4c, 0x4c, 0x54, 0x49, 0x4d, 0x45, 0x12, 0x23, 0x0a, + 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, 0x45, 0x18, 0x0e, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x47, 0x41, 0x50, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, + 0x56, 0x45, 0x12, 0x1f, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x41, 0x50, 0x50, 0x4e, 0x41, 0x4d, + 0x45, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x41, 0x50, 0x50, 0x4e, + 0x41, 0x4d, 0x45, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x4d, 0x55, 0x4c, 0x54, 0x49, + 0x5f, 0x53, 0x55, 0x42, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x47, 0x41, 0x50, 0x4d, + 0x55, 0x4c, 0x54, 0x49, 0x53, 0x55, 0x42, 0x12, 0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, + 0x54, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x11, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x4f, 0x55, 0x54, 0x46, 0x49, 0x4c, 0x45, + 0x12, 0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, 0x5f, 0x45, 0x52, 0x52, 0x5f, + 0x46, 0x49, 0x4c, 0x45, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, + 0x54, 0x44, 0x45, 0x52, 0x52, 0x46, 0x49, 0x4c, 0x45, 0x22, 0x2e, 0x0a, 0x10, 0x50, 0x61, 0x72, + 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x5f, 0x0a, 0x11, 0x50, 0x61, 0x72, + 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, + 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x4d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x6f, 0x74, 0x61, + 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x6f, 0x0a, 0x09, 0x51, 0x75, + 0x6f, 0x74, 0x61, 0x44, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x68, 0x72, 0x65, 0x73, + 0x68, 0x6f, 0x6c, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x74, 0x68, 0x72, 0x65, + 0x73, 0x68, 0x6f, 0x6c, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x01, 0x52, 0x05, 0x75, 0x73, 0x61, 0x67, 0x65, 0x22, 0x29, 0x0a, 0x0b, 0x57, + 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, + 0x65, 0x72, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x48, 0x0a, 0x0c, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, + 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x01, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x22, 0x2a, 0x0a, 0x0c, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, + 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0x57, 0x0a, 0x0d, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, + 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x4d, 0x73, 0x67, 0x12, 0x20, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0c, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, + 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x42, 0x0a, 0x05, 0x51, 0x75, 0x65, 0x75, 0x65, 0x12, 0x12, + 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x25, 0x0a, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4d, 0x65, 0x74, 0x72, 0x69, + 0x63, 0x52, 0x06, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x73, 0x22, 0x4a, 0x0a, 0x06, 0x4d, 0x65, 0x74, + 0x72, 0x69, 0x63, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x56, 0x61, 0x6c, + 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, + 0x56, 0x61, 0x6c, 0x75, 0x65, 0x22, 0x0c, 0x0a, 0x0a, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, + 0x52, 0x65, 0x71, 0x22, 0x57, 0x0a, 0x0b, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0xeb, 0x04, 0x0a, - 0x0d, 0x4d, 0x61, 0x70, 0x41, 0x70, 0x70, 0x4a, 0x6f, 0x62, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, - 0x0a, 0x0c, 0x47, 0x41, 0x50, 0x5f, 0x43, 0x4d, 0x44, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x43, 0x4d, 0x44, 0x46, 0x49, 0x4c, 0x45, - 0x12, 0x1b, 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x4e, 0x4e, 0x4f, 0x44, 0x45, 0x12, 0x26, 0x0a, - 0x0f, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x4f, 0x44, 0x45, 0x5f, 0x53, 0x54, 0x52, 0x49, 0x4e, 0x47, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x4e, 0x4f, 0x44, 0x45, 0x53, - 0x54, 0x52, 0x49, 0x4e, 0x47, 0x12, 0x26, 0x0a, 0x0f, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x55, 0x42, - 0x4d, 0x49, 0x54, 0x5f, 0x54, 0x59, 0x50, 0x45, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x47, 0x41, 0x50, 0x53, 0x55, 0x42, 0x4d, 0x49, 0x54, 0x54, 0x59, 0x50, 0x45, 0x12, 0x20, 0x0a, - 0x0c, 0x47, 0x41, 0x50, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x4e, 0x41, 0x4d, 0x45, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4e, 0x41, 0x4d, 0x45, 0x12, - 0x20, 0x0a, 0x0c, 0x47, 0x41, 0x50, 0x5f, 0x57, 0x4f, 0x52, 0x4b, 0x5f, 0x44, 0x49, 0x52, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x57, 0x4f, 0x52, 0x4b, 0x44, 0x49, - 0x52, 0x12, 0x1b, 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x51, 0x55, 0x45, 0x55, 0x45, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x51, 0x55, 0x45, 0x55, 0x45, 0x12, 0x1b, - 0x0a, 0x09, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x47, 0x41, 0x50, 0x4e, 0x50, 0x52, 0x4f, 0x43, 0x12, 0x17, 0x0a, 0x07, 0x47, - 0x41, 0x50, 0x5f, 0x50, 0x50, 0x4e, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x47, 0x41, - 0x50, 0x50, 0x50, 0x4e, 0x12, 0x19, 0x0a, 0x08, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x47, 0x50, 0x55, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x41, 0x50, 0x4e, 0x47, 0x50, 0x55, 0x12, - 0x19, 0x0a, 0x08, 0x47, 0x41, 0x50, 0x5f, 0x4e, 0x44, 0x43, 0x55, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x47, 0x41, 0x50, 0x4e, 0x44, 0x43, 0x55, 0x12, 0x1e, 0x0a, 0x0b, 0x47, 0x41, - 0x50, 0x5f, 0x4a, 0x4f, 0x42, 0x5f, 0x4d, 0x45, 0x4d, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x47, 0x41, 0x50, 0x4a, 0x4f, 0x42, 0x4d, 0x45, 0x4d, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, - 0x50, 0x5f, 0x57, 0x41, 0x4c, 0x4c, 0x5f, 0x54, 0x49, 0x4d, 0x45, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x47, 0x41, 0x50, 0x57, 0x41, 0x4c, 0x4c, 0x54, 0x49, 0x4d, 0x45, 0x12, 0x23, - 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, 0x49, 0x56, 0x45, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x47, 0x41, 0x50, 0x45, 0x58, 0x43, 0x4c, 0x55, 0x53, - 0x49, 0x56, 0x45, 0x12, 0x1f, 0x0a, 0x0b, 0x47, 0x41, 0x50, 0x5f, 0x41, 0x50, 0x50, 0x4e, 0x41, - 0x4d, 0x45, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x47, 0x41, 0x50, 0x41, 0x50, 0x50, - 0x4e, 0x41, 0x4d, 0x45, 0x12, 0x22, 0x0a, 0x0d, 0x47, 0x41, 0x50, 0x5f, 0x4d, 0x55, 0x4c, 0x54, - 0x49, 0x5f, 0x53, 0x55, 0x42, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x47, 0x41, 0x50, - 0x4d, 0x55, 0x4c, 0x54, 0x49, 0x53, 0x55, 0x42, 0x12, 0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, - 0x53, 0x54, 0x44, 0x5f, 0x4f, 0x55, 0x54, 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x11, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, 0x53, 0x54, 0x44, 0x4f, 0x55, 0x54, 0x46, 0x49, 0x4c, - 0x45, 0x12, 0x27, 0x0a, 0x10, 0x47, 0x41, 0x50, 0x5f, 0x53, 0x54, 0x44, 0x5f, 0x45, 0x52, 0x52, - 0x5f, 0x46, 0x49, 0x4c, 0x45, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x41, 0x50, - 0x53, 0x54, 0x44, 0x45, 0x52, 0x52, 0x46, 0x49, 0x4c, 0x45, 0x22, 0x60, 0x0a, 0x0f, 0x46, 0x69, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, 0x73, 0x67, 0x12, 0x22, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x43, + 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2b, 0x0a, 0x07, + 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x79, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x01, 0x79, 0x22, 0x25, 0x0a, 0x07, 0x4a, 0x6f, 0x62, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, + 0x22, 0x54, 0x0a, 0x08, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x10, 0x0a, 0x03, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x4d, + 0x73, 0x67, 0x12, 0x22, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x72, 0x65, + 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x2b, 0x0a, 0x07, 0x4a, 0x6f, 0x62, 0x43, 0x6f, 0x72, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x0c, 0x0a, 0x01, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x01, 0x79, 0x22, 0x6b, 0x0a, 0x13, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, + 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, + 0x62, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, + 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, + 0x65, 0x72, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x22, 0xd7, 0x0f, 0x0a, 0x14, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, + 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6d, 0x73, 0x67, 0x1a, + 0x98, 0x0f, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x61, 0x63, 0x63, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x70, 0x70, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, + 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x6f, 0x6d, 0x6d, + 0x61, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x63, 0x6f, 0x6d, 0x6d, 0x61, 0x6e, 0x64, 0x45, 0x78, 0x69, 0x73, 0x74, 0x12, 0x26, 0x0a, 0x0e, + 0x63, 0x70, 0x75, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x61, 0x72, + 0x48, 0x6f, 0x75, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x70, 0x75, 0x4e, 0x75, 0x63, 0x6c, 0x65, + 0x61, 0x72, 0x53, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x63, 0x70, 0x75, + 0x4e, 0x75, 0x63, 0x6c, 0x65, 0x61, 0x72, 0x53, 0x65, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x63, 0x70, + 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x0c, 0x63, 0x70, 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x64, 0x63, 0x75, 0x43, 0x61, 0x72, 0x64, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x63, 0x75, 0x43, 0x61, 0x72, 0x64, 0x48, 0x6f, 0x75, 0x72, + 0x12, 0x1e, 0x0a, 0x0a, 0x64, 0x63, 0x75, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x63, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x64, 0x63, 0x75, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x63, + 0x12, 0x22, 0x0a, 0x0c, 0x64, 0x63, 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0c, 0x64, 0x63, 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, + 0x72, 0x69, 0x63, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x65, 0x66, 0x66, 0x69, 0x63, 0x69, 0x65, 0x6e, + 0x63, 0x79, 0x43, 0x70, 0x75, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x66, 0x66, + 0x69, 0x63, 0x69, 0x65, 0x6e, 0x63, 0x79, 0x43, 0x70, 0x75, 0x12, 0x2a, 0x0a, 0x10, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x43, 0x70, 0x75, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x0c, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x43, + 0x70, 0x75, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, + 0x69, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x6d, 0x12, 0x2c, 0x0a, 0x11, 0x65, 0x78, + 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x03, 0x52, 0x11, 0x65, 0x78, 0x63, 0x6c, 0x75, 0x73, 0x69, 0x76, 0x65, + 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x6f, 0x6c, 0x64, + 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x67, 0x6f, + 0x6c, 0x64, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x70, 0x75, 0x43, + 0x61, 0x72, 0x64, 0x48, 0x6f, 0x75, 0x72, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x67, + 0x70, 0x75, 0x43, 0x61, 0x72, 0x64, 0x48, 0x6f, 0x75, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x67, 0x70, + 0x75, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x63, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x67, 0x70, 0x75, 0x43, 0x61, 0x72, 0x64, 0x53, 0x65, 0x63, 0x12, 0x22, 0x0a, 0x0c, 0x67, 0x70, + 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x01, + 0x52, 0x0c, 0x67, 0x70, 0x75, 0x55, 0x6e, 0x69, 0x74, 0x50, 0x72, 0x69, 0x63, 0x65, 0x12, 0x1c, + 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x13, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x14, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x2a, 0x0a, 0x10, 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x72, 0x61, 0x74, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, + 0x68, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x72, 0x61, 0x74, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x69, 0x73, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x6a, 0x6f, 0x62, 0x18, + 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x69, 0x73, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x6a, + 0x6f, 0x62, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x43, 0x70, 0x75, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x17, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x43, 0x70, 0x75, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x44, 0x63, 0x75, 0x4e, 0x75, 0x6d, 0x18, + 0x18, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x44, 0x63, 0x75, 0x4e, 0x75, 0x6d, + 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x19, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x45, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x47, 0x70, 0x75, 0x73, 0x18, + 0x1a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x47, 0x70, + 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, 0x48, 0x6f, 0x73, + 0x74, 0x18, 0x1b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x65, 0x63, + 0x48, 0x6f, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6a, 0x6f, 0x62, 0x45, 0x78, 0x69, 0x74, 0x53, + 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x1c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6a, 0x6f, 0x62, + 0x45, 0x78, 0x69, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, + 0x62, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x18, 0x1d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x09, 0x6a, + 0x6f, 0x62, 0x47, 0x70, 0x75, 0x4e, 0x75, 0x6d, 0x12, 0x14, 0x0a, 0x05, 0x6a, 0x6f, 0x62, 0x49, + 0x64, 0x18, 0x1e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x4d, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x18, 0x1f, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x4d, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x12, 0x18, + 0x0a, 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x20, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x6a, 0x6f, 0x62, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x6a, 0x6f, 0x62, 0x50, + 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, 0x18, 0x21, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6a, 0x6f, + 0x62, 0x50, 0x72, 0x6f, 0x63, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x22, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x6a, 0x6f, 0x62, 0x51, 0x75, 0x65, 0x75, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, + 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x43, 0x70, 0x75, 0x18, 0x23, 0x20, 0x01, 0x28, 0x01, 0x52, + 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x43, 0x70, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, + 0x62, 0x52, 0x65, 0x71, 0x44, 0x63, 0x75, 0x18, 0x24, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6a, + 0x6f, 0x62, 0x52, 0x65, 0x71, 0x44, 0x63, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x52, + 0x65, 0x71, 0x47, 0x70, 0x75, 0x18, 0x25, 0x20, 0x01, 0x28, 0x01, 0x52, 0x09, 0x6a, 0x6f, 0x62, + 0x52, 0x65, 0x71, 0x47, 0x70, 0x75, 0x12, 0x1c, 0x0a, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, + 0x4d, 0x65, 0x6d, 0x18, 0x26, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x4d, 0x65, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x4e, 0x6f, + 0x64, 0x65, 0x73, 0x18, 0x27, 0x20, 0x01, 0x28, 0x01, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x28, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x28, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0f, 0x6a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x29, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x72, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x18, 0x2a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6a, 0x6f, 0x62, 0x53, 0x74, 0x61, 0x74, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x56, 0x6d, 0x65, 0x6d, 0x55, 0x73, 0x65, 0x64, 0x18, + 0x2b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x56, 0x6d, 0x65, 0x6d, 0x55, 0x73, + 0x65, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, 0x57, 0x61, 0x69, 0x74, 0x54, 0x69, 0x6d, + 0x65, 0x18, 0x2c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6a, 0x6f, 0x62, 0x57, 0x61, 0x69, 0x74, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x6a, 0x6f, 0x62, 0x57, 0x61, 0x6c, 0x6c, 0x74, + 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x18, 0x2d, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6a, + 0x6f, 0x62, 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x55, 0x73, 0x65, 0x64, 0x12, 0x22, + 0x0a, 0x0c, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x49, 0x64, 0x18, 0x2e, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x6a, 0x6f, 0x62, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x2f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6a, 0x6f, 0x62, 0x6d, + 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x6e, 0x65, + 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x18, 0x30, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6e, + 0x65, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x6e, 0x6f, 0x64, 0x65, + 0x63, 0x74, 0x18, 0x31, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x6e, 0x6f, 0x64, 0x65, 0x63, 0x74, + 0x12, 0x14, 0x0a, 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x32, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x18, + 0x33, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x71, 0x75, 0x65, 0x75, 0x65, 0x12, 0x14, 0x0a, 0x05, + 0x73, 0x63, 0x61, 0x6c, 0x65, 0x18, 0x34, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x63, 0x61, + 0x6c, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x43, 0x70, 0x75, 0x74, 0x69, + 0x6d, 0x65, 0x18, 0x35, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x73, 0x68, 0x61, 0x72, 0x65, 0x43, + 0x70, 0x75, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x4d, + 0x65, 0x6d, 0x18, 0x36, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x68, 0x61, 0x72, 0x65, 0x4d, + 0x65, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, 0x57, 0x61, 0x6c, 0x6c, 0x74, + 0x69, 0x6d, 0x65, 0x18, 0x37, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x73, 0x68, 0x61, 0x72, 0x65, + 0x57, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x74, 0x61, 0x72, + 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x38, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x73, 0x74, + 0x61, 0x72, 0x74, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x39, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, + 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, + 0x18, 0x3a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x77, 0x61, 0x6c, 0x6c, 0x74, 0x69, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x18, 0x3b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x77, 0x6f, 0x72, 0x6b, 0x64, 0x69, 0x72, 0x22, 0x60, 0x0a, 0x0f, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x12, 0x0a, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x63, 0x6f, 0x64, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, @@ -4070,7 +5639,7 @@ var file_hpcAC_proto_rawDesc = []byte{ 0x4e, 0x6f, 0x64, 0x65, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x75, 0x73, 0x65, 0x72, 0x4d, 0x69, 0x6e, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x61, 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6d, 0x61, - 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x32, 0xf2, 0x03, 0x0a, 0x05, 0x68, 0x70, + 0x78, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x32, 0xc1, 0x07, 0x0a, 0x05, 0x68, 0x70, 0x63, 0x41, 0x43, 0x12, 0x30, 0x0a, 0x07, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, @@ -4086,24 +5655,52 @@ var file_hpcAC_proto_rawDesc = []byte{ 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x4a, 0x6f, 0x62, 0x4d, 0x61, 0x6e, 0x61, - 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x46, - 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x68, 0x70, 0x63, - 0x41, 0x43, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x36, 0x0a, 0x11, 0x53, 0x65, 0x6c, 0x65, 0x63, 0x74, 0x51, 0x75, 0x65, 0x75, - 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, - 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, - 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x11, 0x51, 0x75, - 0x65, 0x72, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, - 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, - 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x14, 0x51, 0x75, 0x65, - 0x72, 0x79, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, - 0x74, 0x12, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, - 0x75, 0x6f, 0x74, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x52, 0x65, 0x73, 0x70, 0x42, 0x08, - 0x5a, 0x06, 0x2f, 0x68, 0x70, 0x63, 0x41, 0x43, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 + 0x67, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4a, 0x6f, + 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, + 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, + 0x70, 0x63, 0x41, 0x43, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, + 0x6c, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, + 0x6f, 0x62, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, + 0x0b, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x2e, 0x68, + 0x70, 0x63, 0x41, 0x43, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x44, 0x61, 0x74, 0x61, 0x52, 0x65, 0x71, + 0x1a, 0x16, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x46, 0x69, 0x6c, 0x65, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x11, 0x53, 0x65, 0x6c, 0x65, + 0x63, 0x74, 0x51, 0x75, 0x65, 0x75, 0x65, 0x42, 0x79, 0x55, 0x73, 0x65, 0x72, 0x12, 0x0f, 0x2e, + 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x10, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x3d, 0x0a, 0x11, 0x51, 0x75, 0x65, 0x72, 0x79, 0x51, 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x73, 0x12, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, + 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, + 0x75, 0x65, 0x75, 0x65, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x43, 0x0a, 0x14, 0x51, 0x75, 0x65, 0x72, 0x79, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, + 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, 0x12, 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, + 0x51, 0x75, 0x65, 0x75, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x73, 0x4c, 0x69, 0x6d, 0x69, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x50, 0x61, 0x72, 0x61, 0x53, 0x74, 0x6f, 0x72, + 0x51, 0x75, 0x6f, 0x74, 0x61, 0x12, 0x17, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x50, 0x61, + 0x72, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x71, 0x1a, 0x18, + 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x50, 0x61, 0x72, 0x61, 0x53, 0x74, 0x6f, 0x72, 0x51, + 0x75, 0x6f, 0x74, 0x61, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x57, 0x61, 0x6c, 0x6c, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x57, 0x61, 0x6c, + 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, + 0x2e, 0x57, 0x61, 0x6c, 0x6c, 0x54, 0x69, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, + 0x09, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x13, 0x2e, 0x68, 0x70, 0x63, + 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x14, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x51, 0x75, 0x65, 0x75, 0x65, 0x4a, 0x6f, 0x62, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x07, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, + 0x12, 0x11, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x43, 0x70, 0x75, 0x43, 0x6f, 0x72, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x43, 0x70, 0x75, 0x43, + 0x6f, 0x72, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x27, 0x0a, 0x04, 0x6a, 0x6f, 0x62, 0x73, 0x12, + 0x0e, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x0f, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x4b, 0x0a, 0x10, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, + 0x74, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x48, 0x69, 0x73, + 0x74, 0x6f, 0x72, 0x79, 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x71, + 0x1a, 0x1b, 0x2e, 0x68, 0x70, 0x63, 0x41, 0x43, 0x2e, 0x48, 0x69, 0x73, 0x74, 0x6f, 0x72, 0x79, + 0x4a, 0x6f, 0x62, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x52, 0x65, 0x73, 0x70, 0x42, 0x08, 0x5a, + 0x06, 0x2f, 0x68, 0x70, 0x63, 0x41, 0x43, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -4118,110 +5715,112 @@ func file_hpcAC_proto_rawDescGZIP() []byte { return file_hpcAC_proto_rawDescData } -<<<<<<< HEAD -var file_hpcAC_proto_msgTypes = make([]protoimpl.MessageInfo, 20) +var file_hpcAC_proto_msgTypes = make([]protoimpl.MessageInfo, 48) var file_hpcAC_proto_goTypes = []interface{}{ - (*JobManager)(nil), // 0: hpcAC.JobManager - (*JobManagerReq)(nil), // 1: hpcAC.JobManagerReq - (*ListJobManagerResp)(nil), // 2: hpcAC.ListJobManagerResp - (*JobInitAttr)(nil), // 3: hpcAC.JobInitAttr - (*JobVncSessionInfo)(nil), // 4: hpcAC.JobVncSessionInfo - (*JobDetail)(nil), // 5: hpcAC.JobDetail - (*JobDetailReq)(nil), // 6: hpcAC.JobDetailReq - (*GetJobDetailResp)(nil), // 7: hpcAC.GetJobDetailResp - (*DeleteJobReq)(nil), // 8: hpcAC.DeleteJobReq - (*DeleteJobResp)(nil), // 9: hpcAC.DeleteJobResp - (*Job)(nil), // 10: hpcAC.job - (*ListJobReq)(nil), // 11: hpcAC.ListJobReq - (*ListJobResp)(nil), // 12: hpcAC.ListJobResp - (*HistoryJob)(nil), // 13: hpcAC.historyJob - (*ListHistoryJobReq)(nil), // 14: hpcAC.ListHistoryJobReq - (*ListHistoryJobResp)(nil), // 15: hpcAC.ListHistoryJobResp - (*SubmitJobReq)(nil), // 16: hpcAC.SubmitJobReq - (*SubmitJobResp)(nil), // 17: hpcAC.SubmitJobResp - (*MapAppJobInfo)(nil), // 18: hpcAC.MapAppJobInfo - nil, // 19: hpcAC.DeleteJobResp.ResultEntry + (*JobManager)(nil), // 0: hpcAC.JobManager + (*JobManagerReq)(nil), // 1: hpcAC.JobManagerReq + (*ListJobManagerResp)(nil), // 2: hpcAC.ListJobManagerResp + (*JobInitAttr)(nil), // 3: hpcAC.JobInitAttr + (*JobVncSessionInfo)(nil), // 4: hpcAC.JobVncSessionInfo + (*JobDetail)(nil), // 5: hpcAC.JobDetail + (*JobDetailReq)(nil), // 6: hpcAC.JobDetailReq + (*GetJobDetailResp)(nil), // 7: hpcAC.GetJobDetailResp + (*DeleteJobReq)(nil), // 8: hpcAC.DeleteJobReq + (*DeleteJobResp)(nil), // 9: hpcAC.DeleteJobResp + (*Job)(nil), // 10: hpcAC.job + (*ListJobReq)(nil), // 11: hpcAC.ListJobReq + (*ListJobResp)(nil), // 12: hpcAC.ListJobResp + (*HistoryJob)(nil), // 13: hpcAC.historyJob + (*ListHistoryJobReq)(nil), // 14: hpcAC.ListHistoryJobReq + (*ListHistoryJobResp)(nil), // 15: hpcAC.ListHistoryJobResp + (*SubmitJobReq)(nil), // 16: hpcAC.SubmitJobReq + (*SubmitJobResp)(nil), // 17: hpcAC.SubmitJobResp + (*MapAppJobInfo)(nil), // 18: hpcAC.MapAppJobInfo + (*ParaStorQuotaReq)(nil), // 19: hpcAC.ParaStorQuotaReq + (*ParaStorQuotaResp)(nil), // 20: hpcAC.ParaStorQuotaResp + (*QuotaData)(nil), // 21: hpcAC.QuotaData + (*WallTimeReq)(nil), // 22: hpcAC.WallTimeReq + (*WallTimeResp)(nil), // 23: hpcAC.WallTimeResp + (*QueueJobsReq)(nil), // 24: hpcAC.QueueJobsReq + (*QueueJobsResp)(nil), // 25: hpcAC.QueueJobsResp + (*Queue)(nil), // 26: hpcAC.Queue + (*Metric)(nil), // 27: hpcAC.Metric + (*CpuCoreReq)(nil), // 28: hpcAC.CpuCoreReq + (*CpuCoreResp)(nil), // 29: hpcAC.CpuCoreResp + (*CpuCore)(nil), // 30: hpcAC.CpuCore + (*JobsReq)(nil), // 31: hpcAC.JobsReq + (*JobsResp)(nil), // 32: hpcAC.JobsResp + (*JobCore)(nil), // 33: hpcAC.JobCore + (*HistoryJobDetailReq)(nil), // 34: hpcAC.HistoryJobDetailReq + (*HistoryJobDetailResp)(nil), // 35: hpcAC.HistoryJobDetailResp + (*FileContentResp)(nil), // 36: hpcAC.FileContentResp + (*FileDataReq)(nil), // 37: hpcAC.FileDataReq + (*FileDataResp)(nil), // 38: hpcAC.FileDataResp + (*QueueReq)(nil), // 39: hpcAC.QueueReq + (*QueueResp)(nil), // 40: hpcAC.QueueResp + (*QueueData)(nil), // 41: hpcAC.QueueData + (*QueueDetailsResp)(nil), // 42: hpcAC.QueueDetailsResp + (*QueueDetailsData)(nil), // 43: hpcAC.QueueDetailsData + (*UserQuotasLimitResp)(nil), // 44: hpcAC.UserQuotasLimitResp + (*UserQuotasLimitData)(nil), // 45: hpcAC.UserQuotasLimitData + nil, // 46: hpcAC.DeleteJobResp.ResultEntry + (*HistoryJobDetailRespData)(nil), // 47: hpcAC.HistoryJobDetailResp.data } var file_hpcAC_proto_depIdxs = []int32{ - 0, // 0: hpcAC.ListJobManagerResp.job_managers:type_name -> hpcAC.JobManager + 0, // 0: hpcAC.ListJobManagerResp.data:type_name -> hpcAC.JobManager 3, // 1: hpcAC.JobDetail.job_init_attr:type_name -> hpcAC.JobInitAttr 4, // 2: hpcAC.JobDetail.job_session_info:type_name -> hpcAC.JobVncSessionInfo 5, // 3: hpcAC.GetJobDetailResp.job_detail:type_name -> hpcAC.JobDetail - 19, // 4: hpcAC.DeleteJobResp.result:type_name -> hpcAC.DeleteJobResp.ResultEntry + 46, // 4: hpcAC.DeleteJobResp.result:type_name -> hpcAC.DeleteJobResp.ResultEntry 10, // 5: hpcAC.ListJobResp.jobs:type_name -> hpcAC.job 13, // 6: hpcAC.ListHistoryJobResp.history_jobs:type_name -> hpcAC.historyJob 18, // 7: hpcAC.SubmitJobReq.mapAppJobInfo:type_name -> hpcAC.MapAppJobInfo - 11, // 8: hpcAC.hpcAC.ListJob:input_type -> hpcAC.ListJobReq - 14, // 9: hpcAC.hpcAC.ListHistoryJob:input_type -> hpcAC.ListHistoryJobReq - 16, // 10: hpcAC.hpcAC.SubmitJob:input_type -> hpcAC.SubmitJobReq - 1, // 11: hpcAC.hpcAC.ListJobManager:input_type -> hpcAC.JobManagerReq - 6, // 12: hpcAC.hpcAC.GetJobDetail:input_type -> hpcAC.JobDetailReq - 8, // 13: hpcAC.hpcAC.DeleteJob:input_type -> hpcAC.DeleteJobReq - 12, // 14: hpcAC.hpcAC.ListJob:output_type -> hpcAC.ListJobResp - 15, // 15: hpcAC.hpcAC.ListHistoryJob:output_type -> hpcAC.ListHistoryJobResp - 17, // 16: hpcAC.hpcAC.SubmitJob:output_type -> hpcAC.SubmitJobResp - 2, // 17: hpcAC.hpcAC.ListJobManager:output_type -> hpcAC.ListJobManagerResp - 7, // 18: hpcAC.hpcAC.GetJobDetail:output_type -> hpcAC.GetJobDetailResp - 9, // 19: hpcAC.hpcAC.DeleteJob:output_type -> hpcAC.DeleteJobResp - 14, // [14:20] is the sub-list for method output_type - 8, // [8:14] is the sub-list for method input_type -======= -var file_hpcAC_proto_msgTypes = make([]protoimpl.MessageInfo, 22) -var file_hpcAC_proto_goTypes = []interface{}{ - (*JobManager)(nil), // 0: hpcAC.JobManager - (*JobManagerReq)(nil), // 1: hpcAC.JobManagerReq - (*ListJobManagerResp)(nil), // 2: hpcAC.ListJobManagerResp - (*Job)(nil), // 3: hpcAC.job - (*ListJobReq)(nil), // 4: hpcAC.ListJobReq - (*ListJobResp)(nil), // 5: hpcAC.ListJobResp - (*HistoryJob)(nil), // 6: hpcAC.historyJob - (*ListHistoryJobReq)(nil), // 7: hpcAC.ListHistoryJobReq - (*ListHistoryJobResp)(nil), // 8: hpcAC.ListHistoryJobResp - (*SubmitJobReq)(nil), // 9: hpcAC.SubmitJobReq - (*SubmitJobResp)(nil), // 10: hpcAC.SubmitJobResp - (*MapAppJobInfo)(nil), // 11: hpcAC.MapAppJobInfo - (*FileContentResp)(nil), // 12: hpcAC.FileContentResp - (*FileDataReq)(nil), // 13: hpcAC.FileDataReq - (*FileDataResp)(nil), // 14: hpcAC.FileDataResp - (*QueueReq)(nil), // 15: hpcAC.QueueReq - (*QueueResp)(nil), // 16: hpcAC.QueueResp - (*QueueData)(nil), // 17: hpcAC.QueueData - (*QueueDetailsResp)(nil), // 18: hpcAC.QueueDetailsResp - (*QueueDetailsData)(nil), // 19: hpcAC.QueueDetailsData - (*UserQuotasLimitResp)(nil), // 20: hpcAC.UserQuotasLimitResp - (*UserQuotasLimitData)(nil), // 21: hpcAC.UserQuotasLimitData -} -var file_hpcAC_proto_depIdxs = []int32{ - 0, // 0: hpcAC.ListJobManagerResp.job_managers:type_name -> hpcAC.JobManager - 3, // 1: hpcAC.ListJobResp.jobs:type_name -> hpcAC.job - 6, // 2: hpcAC.ListHistoryJobResp.history_jobs:type_name -> hpcAC.historyJob - 11, // 3: hpcAC.SubmitJobReq.mapAppJobInfo:type_name -> hpcAC.MapAppJobInfo - 14, // 4: hpcAC.FileContentResp.data:type_name -> hpcAC.FileDataResp - 17, // 5: hpcAC.QueueResp.data:type_name -> hpcAC.QueueData - 19, // 6: hpcAC.QueueDetailsResp.data:type_name -> hpcAC.QueueDetailsData - 21, // 7: hpcAC.UserQuotasLimitResp.data:type_name -> hpcAC.UserQuotasLimitData - 4, // 8: hpcAC.hpcAC.ListJob:input_type -> hpcAC.ListJobReq - 7, // 9: hpcAC.hpcAC.ListHistoryJob:input_type -> hpcAC.ListHistoryJobReq - 9, // 10: hpcAC.hpcAC.SubmitJob:input_type -> hpcAC.SubmitJobReq - 1, // 11: hpcAC.hpcAC.ListJobManager:input_type -> hpcAC.JobManagerReq - 13, // 12: hpcAC.hpcAC.FileContent:input_type -> hpcAC.FileDataReq - 15, // 13: hpcAC.hpcAC.SelectQueueByUser:input_type -> hpcAC.QueueReq - 15, // 14: hpcAC.hpcAC.QueryQueueDetails:input_type -> hpcAC.QueueReq - 15, // 15: hpcAC.hpcAC.QueryUserQuotasLimit:input_type -> hpcAC.QueueReq - 5, // 16: hpcAC.hpcAC.ListJob:output_type -> hpcAC.ListJobResp - 8, // 17: hpcAC.hpcAC.ListHistoryJob:output_type -> hpcAC.ListHistoryJobResp - 10, // 18: hpcAC.hpcAC.SubmitJob:output_type -> hpcAC.SubmitJobResp - 2, // 19: hpcAC.hpcAC.ListJobManager:output_type -> hpcAC.ListJobManagerResp - 12, // 20: hpcAC.hpcAC.FileContent:output_type -> hpcAC.FileContentResp - 16, // 21: hpcAC.hpcAC.SelectQueueByUser:output_type -> hpcAC.QueueResp - 18, // 22: hpcAC.hpcAC.QueryQueueDetails:output_type -> hpcAC.QueueDetailsResp - 20, // 23: hpcAC.hpcAC.QueryUserQuotasLimit:output_type -> hpcAC.UserQuotasLimitResp - 16, // [16:24] is the sub-list for method output_type - 8, // [8:16] is the sub-list for method input_type ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 - 8, // [8:8] is the sub-list for extension type_name - 8, // [8:8] is the sub-list for extension extendee - 0, // [0:8] is the sub-list for field type_name + 21, // 8: hpcAC.ParaStorQuotaResp.data:type_name -> hpcAC.QuotaData + 26, // 9: hpcAC.QueueJobsResp.data:type_name -> hpcAC.Queue + 27, // 10: hpcAC.Queue.values:type_name -> hpcAC.Metric + 30, // 11: hpcAC.CpuCoreResp.data:type_name -> hpcAC.CpuCore + 33, // 12: hpcAC.JobsResp.data:type_name -> hpcAC.JobCore + 38, // 13: hpcAC.FileContentResp.data:type_name -> hpcAC.FileDataResp + 41, // 14: hpcAC.QueueResp.data:type_name -> hpcAC.QueueData + 43, // 15: hpcAC.QueueDetailsResp.data:type_name -> hpcAC.QueueDetailsData + 45, // 16: hpcAC.UserQuotasLimitResp.data:type_name -> hpcAC.UserQuotasLimitData + 11, // 17: hpcAC.hpcAC.ListJob:input_type -> hpcAC.ListJobReq + 14, // 18: hpcAC.hpcAC.ListHistoryJob:input_type -> hpcAC.ListHistoryJobReq + 16, // 19: hpcAC.hpcAC.SubmitJob:input_type -> hpcAC.SubmitJobReq + 1, // 20: hpcAC.hpcAC.ListJobManager:input_type -> hpcAC.JobManagerReq + 6, // 21: hpcAC.hpcAC.GetJobDetail:input_type -> hpcAC.JobDetailReq + 8, // 22: hpcAC.hpcAC.DeleteJob:input_type -> hpcAC.DeleteJobReq + 37, // 23: hpcAC.hpcAC.FileContent:input_type -> hpcAC.FileDataReq + 39, // 24: hpcAC.hpcAC.SelectQueueByUser:input_type -> hpcAC.QueueReq + 39, // 25: hpcAC.hpcAC.QueryQueueDetails:input_type -> hpcAC.QueueReq + 39, // 26: hpcAC.hpcAC.QueryUserQuotasLimit:input_type -> hpcAC.QueueReq + 19, // 27: hpcAC.hpcAC.ParaStorQuota:input_type -> hpcAC.ParaStorQuotaReq + 22, // 28: hpcAC.hpcAC.WallTime:input_type -> hpcAC.WallTimeReq + 24, // 29: hpcAC.hpcAC.QueueJobs:input_type -> hpcAC.QueueJobsReq + 28, // 30: hpcAC.hpcAC.CpuCore:input_type -> hpcAC.CpuCoreReq + 31, // 31: hpcAC.hpcAC.jobs:input_type -> hpcAC.JobsReq + 34, // 32: hpcAC.hpcAC.HistoryJobDetail:input_type -> hpcAC.HistoryJobDetailReq + 12, // 33: hpcAC.hpcAC.ListJob:output_type -> hpcAC.ListJobResp + 15, // 34: hpcAC.hpcAC.ListHistoryJob:output_type -> hpcAC.ListHistoryJobResp + 17, // 35: hpcAC.hpcAC.SubmitJob:output_type -> hpcAC.SubmitJobResp + 2, // 36: hpcAC.hpcAC.ListJobManager:output_type -> hpcAC.ListJobManagerResp + 7, // 37: hpcAC.hpcAC.GetJobDetail:output_type -> hpcAC.GetJobDetailResp + 9, // 38: hpcAC.hpcAC.DeleteJob:output_type -> hpcAC.DeleteJobResp + 36, // 39: hpcAC.hpcAC.FileContent:output_type -> hpcAC.FileContentResp + 40, // 40: hpcAC.hpcAC.SelectQueueByUser:output_type -> hpcAC.QueueResp + 42, // 41: hpcAC.hpcAC.QueryQueueDetails:output_type -> hpcAC.QueueDetailsResp + 44, // 42: hpcAC.hpcAC.QueryUserQuotasLimit:output_type -> hpcAC.UserQuotasLimitResp + 20, // 43: hpcAC.hpcAC.ParaStorQuota:output_type -> hpcAC.ParaStorQuotaResp + 23, // 44: hpcAC.hpcAC.WallTime:output_type -> hpcAC.WallTimeResp + 25, // 45: hpcAC.hpcAC.QueueJobs:output_type -> hpcAC.QueueJobsResp + 29, // 46: hpcAC.hpcAC.CpuCore:output_type -> hpcAC.CpuCoreResp + 32, // 47: hpcAC.hpcAC.jobs:output_type -> hpcAC.JobsResp + 35, // 48: hpcAC.hpcAC.HistoryJobDetail:output_type -> hpcAC.HistoryJobDetailResp + 33, // [33:49] is the sub-list for method output_type + 17, // [17:33] is the sub-list for method input_type + 17, // [17:17] is the sub-list for extension type_name + 17, // [17:17] is the sub-list for extension extendee + 0, // [0:17] is the sub-list for field type_name } func init() { file_hpcAC_proto_init() } @@ -4458,7 +6057,211 @@ func file_hpcAC_proto_init() { return nil } } - file_hpcAC_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + file_hpcAC_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParaStorQuotaReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ParaStorQuotaResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuotaData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WallTimeReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WallTimeResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueueJobsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QueueJobsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Queue); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Metric); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CpuCoreReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CpuCoreResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CpuCore); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JobCore); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistoryJobDetailReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistoryJobDetailResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_hpcAC_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileContentResp); i { case 0: return &v.state @@ -4470,7 +6273,7 @@ func file_hpcAC_proto_init() { return nil } } - file_hpcAC_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + file_hpcAC_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileDataReq); i { case 0: return &v.state @@ -4482,7 +6285,7 @@ func file_hpcAC_proto_init() { return nil } } - file_hpcAC_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + file_hpcAC_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*FileDataResp); i { case 0: return &v.state @@ -4494,7 +6297,7 @@ func file_hpcAC_proto_init() { return nil } } - file_hpcAC_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + file_hpcAC_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueueReq); i { case 0: return &v.state @@ -4506,7 +6309,7 @@ func file_hpcAC_proto_init() { return nil } } - file_hpcAC_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + file_hpcAC_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueueResp); i { case 0: return &v.state @@ -4518,7 +6321,7 @@ func file_hpcAC_proto_init() { return nil } } - file_hpcAC_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + file_hpcAC_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueueData); i { case 0: return &v.state @@ -4530,7 +6333,7 @@ func file_hpcAC_proto_init() { return nil } } - file_hpcAC_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + file_hpcAC_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueueDetailsResp); i { case 0: return &v.state @@ -4542,7 +6345,7 @@ func file_hpcAC_proto_init() { return nil } } - file_hpcAC_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + file_hpcAC_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*QueueDetailsData); i { case 0: return &v.state @@ -4554,7 +6357,7 @@ func file_hpcAC_proto_init() { return nil } } - file_hpcAC_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + file_hpcAC_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserQuotasLimitResp); i { case 0: return &v.state @@ -4566,7 +6369,7 @@ func file_hpcAC_proto_init() { return nil } } - file_hpcAC_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + file_hpcAC_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*UserQuotasLimitData); i { case 0: return &v.state @@ -4578,6 +6381,18 @@ func file_hpcAC_proto_init() { return nil } } + file_hpcAC_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*HistoryJobDetailRespData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -4585,11 +6400,7 @@ func file_hpcAC_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_hpcAC_proto_rawDesc, NumEnums: 0, -<<<<<<< HEAD - NumMessages: 20, -======= - NumMessages: 22, ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 + NumMessages: 48, NumExtensions: 0, NumServices: 1, }, diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC_grpc.pb.go b/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC_grpc.pb.go index 2551bb39..4cf65e40 100644 --- a/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC_grpc.pb.go +++ b/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC/hpcAC_grpc.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go-grpc. DO NOT EDIT. // versions: // - protoc-gen-go-grpc v1.2.0 -// - protoc v3.21.12 +// - protoc v3.19.4 // source: hpcAC.proto package hpcAC @@ -30,12 +30,10 @@ type HpcACClient interface { SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) // ListJobManager list all job managers ListJobManager(ctx context.Context, in *JobManagerReq, opts ...grpc.CallOption) (*ListJobManagerResp, error) -<<<<<<< HEAD // GetJobDetail get job detail GetJobDetail(ctx context.Context, in *JobDetailReq, opts ...grpc.CallOption) (*GetJobDetailResp, error) // DeleteJob delete job DeleteJob(ctx context.Context, in *DeleteJobReq, opts ...grpc.CallOption) (*DeleteJobResp, error) -======= // FileContent 查看文件内容 FileContent(ctx context.Context, in *FileDataReq, opts ...grpc.CallOption) (*FileContentResp, error) // SelectQueueByUser 查询用户可访问队列列表 @@ -44,7 +42,15 @@ type HpcACClient interface { QueryQueueDetails(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*QueueDetailsResp, error) // /QueryUserQuotasLimit 查询用户资源限制信息 QueryUserQuotasLimit(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*UserQuotasLimitResp, error) ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 + // ParaStor Quota + ParaStorQuota(ctx context.Context, in *ParaStorQuotaReq, opts ...grpc.CallOption) (*ParaStorQuotaResp, error) + // WallTime + WallTime(ctx context.Context, in *WallTimeReq, opts ...grpc.CallOption) (*WallTimeResp, error) + // QueueJobs + QueueJobs(ctx context.Context, in *QueueJobsReq, opts ...grpc.CallOption) (*QueueJobsResp, error) + CpuCore(ctx context.Context, in *CpuCoreReq, opts ...grpc.CallOption) (*CpuCoreResp, error) + Jobs(ctx context.Context, in *JobsReq, opts ...grpc.CallOption) (*JobsResp, error) + HistoryJobDetail(ctx context.Context, in *HistoryJobDetailReq, opts ...grpc.CallOption) (*HistoryJobDetailResp, error) } type hpcACClient struct { @@ -91,26 +97,33 @@ func (c *hpcACClient) ListJobManager(ctx context.Context, in *JobManagerReq, opt return out, nil } -<<<<<<< HEAD func (c *hpcACClient) GetJobDetail(ctx context.Context, in *JobDetailReq, opts ...grpc.CallOption) (*GetJobDetailResp, error) { out := new(GetJobDetailResp) err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/GetJobDetail", in, out, opts...) -======= -func (c *hpcACClient) FileContent(ctx context.Context, in *FileDataReq, opts ...grpc.CallOption) (*FileContentResp, error) { - out := new(FileContentResp) - err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/FileContent", in, out, opts...) ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 if err != nil { return nil, err } return out, nil } -<<<<<<< HEAD func (c *hpcACClient) DeleteJob(ctx context.Context, in *DeleteJobReq, opts ...grpc.CallOption) (*DeleteJobResp, error) { out := new(DeleteJobResp) err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/DeleteJob", in, out, opts...) -======= + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hpcACClient) FileContent(ctx context.Context, in *FileDataReq, opts ...grpc.CallOption) (*FileContentResp, error) { + out := new(FileContentResp) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/FileContent", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *hpcACClient) SelectQueueByUser(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*QueueResp, error) { out := new(QueueResp) err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/SelectQueueByUser", in, out, opts...) @@ -132,7 +145,60 @@ func (c *hpcACClient) QueryQueueDetails(ctx context.Context, in *QueueReq, opts func (c *hpcACClient) QueryUserQuotasLimit(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*UserQuotasLimitResp, error) { out := new(UserQuotasLimitResp) err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/QueryUserQuotasLimit", in, out, opts...) ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hpcACClient) ParaStorQuota(ctx context.Context, in *ParaStorQuotaReq, opts ...grpc.CallOption) (*ParaStorQuotaResp, error) { + out := new(ParaStorQuotaResp) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/ParaStorQuota", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hpcACClient) WallTime(ctx context.Context, in *WallTimeReq, opts ...grpc.CallOption) (*WallTimeResp, error) { + out := new(WallTimeResp) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/WallTime", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hpcACClient) QueueJobs(ctx context.Context, in *QueueJobsReq, opts ...grpc.CallOption) (*QueueJobsResp, error) { + out := new(QueueJobsResp) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/QueueJobs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hpcACClient) CpuCore(ctx context.Context, in *CpuCoreReq, opts ...grpc.CallOption) (*CpuCoreResp, error) { + out := new(CpuCoreResp) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/CpuCore", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hpcACClient) Jobs(ctx context.Context, in *JobsReq, opts ...grpc.CallOption) (*JobsResp, error) { + out := new(JobsResp) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/jobs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *hpcACClient) HistoryJobDetail(ctx context.Context, in *HistoryJobDetailReq, opts ...grpc.CallOption) (*HistoryJobDetailResp, error) { + out := new(HistoryJobDetailResp) + err := c.cc.Invoke(ctx, "/hpcAC.hpcAC/HistoryJobDetail", in, out, opts...) if err != nil { return nil, err } @@ -151,12 +217,10 @@ type HpcACServer interface { SubmitJob(context.Context, *SubmitJobReq) (*SubmitJobResp, error) // ListJobManager list all job managers ListJobManager(context.Context, *JobManagerReq) (*ListJobManagerResp, error) -<<<<<<< HEAD // GetJobDetail get job detail GetJobDetail(context.Context, *JobDetailReq) (*GetJobDetailResp, error) // DeleteJob delete job DeleteJob(context.Context, *DeleteJobReq) (*DeleteJobResp, error) -======= // FileContent 查看文件内容 FileContent(context.Context, *FileDataReq) (*FileContentResp, error) // SelectQueueByUser 查询用户可访问队列列表 @@ -165,7 +229,15 @@ type HpcACServer interface { QueryQueueDetails(context.Context, *QueueReq) (*QueueDetailsResp, error) // /QueryUserQuotasLimit 查询用户资源限制信息 QueryUserQuotasLimit(context.Context, *QueueReq) (*UserQuotasLimitResp, error) ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 + // ParaStor Quota + ParaStorQuota(context.Context, *ParaStorQuotaReq) (*ParaStorQuotaResp, error) + // WallTime + WallTime(context.Context, *WallTimeReq) (*WallTimeResp, error) + // QueueJobs + QueueJobs(context.Context, *QueueJobsReq) (*QueueJobsResp, error) + CpuCore(context.Context, *CpuCoreReq) (*CpuCoreResp, error) + Jobs(context.Context, *JobsReq) (*JobsResp, error) + HistoryJobDetail(context.Context, *HistoryJobDetailReq) (*HistoryJobDetailResp, error) mustEmbedUnimplementedHpcACServer() } @@ -185,13 +257,12 @@ func (UnimplementedHpcACServer) SubmitJob(context.Context, *SubmitJobReq) (*Subm func (UnimplementedHpcACServer) ListJobManager(context.Context, *JobManagerReq) (*ListJobManagerResp, error) { return nil, status.Errorf(codes.Unimplemented, "method ListJobManager not implemented") } -<<<<<<< HEAD func (UnimplementedHpcACServer) GetJobDetail(context.Context, *JobDetailReq) (*GetJobDetailResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetJobDetail not implemented") } func (UnimplementedHpcACServer) DeleteJob(context.Context, *DeleteJobReq) (*DeleteJobResp, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteJob not implemented") -======= +} func (UnimplementedHpcACServer) FileContent(context.Context, *FileDataReq) (*FileContentResp, error) { return nil, status.Errorf(codes.Unimplemented, "method FileContent not implemented") } @@ -203,7 +274,24 @@ func (UnimplementedHpcACServer) QueryQueueDetails(context.Context, *QueueReq) (* } func (UnimplementedHpcACServer) QueryUserQuotasLimit(context.Context, *QueueReq) (*UserQuotasLimitResp, error) { return nil, status.Errorf(codes.Unimplemented, "method QueryUserQuotasLimit not implemented") ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 +} +func (UnimplementedHpcACServer) ParaStorQuota(context.Context, *ParaStorQuotaReq) (*ParaStorQuotaResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ParaStorQuota not implemented") +} +func (UnimplementedHpcACServer) WallTime(context.Context, *WallTimeReq) (*WallTimeResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method WallTime not implemented") +} +func (UnimplementedHpcACServer) QueueJobs(context.Context, *QueueJobsReq) (*QueueJobsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method QueueJobs not implemented") +} +func (UnimplementedHpcACServer) CpuCore(context.Context, *CpuCoreReq) (*CpuCoreResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CpuCore not implemented") +} +func (UnimplementedHpcACServer) Jobs(context.Context, *JobsReq) (*JobsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method Jobs not implemented") +} +func (UnimplementedHpcACServer) HistoryJobDetail(context.Context, *HistoryJobDetailReq) (*HistoryJobDetailResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method HistoryJobDetail not implemented") } func (UnimplementedHpcACServer) mustEmbedUnimplementedHpcACServer() {} @@ -290,18 +378,12 @@ func _HpcAC_ListJobManager_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } -<<<<<<< HEAD func _HpcAC_GetJobDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(JobDetailReq) -======= -func _HpcAC_FileContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(FileDataReq) ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 if err := dec(in); err != nil { return nil, err } if interceptor == nil { -<<<<<<< HEAD return srv.(HpcACServer).GetJobDetail(ctx, in) } info := &grpc.UnaryServerInfo{ @@ -310,32 +392,16 @@ func _HpcAC_FileContent_Handler(srv interface{}, ctx context.Context, dec func(i } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).GetJobDetail(ctx, req.(*JobDetailReq)) -======= - return srv.(HpcACServer).FileContent(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/hpcAC.hpcAC/FileContent", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(HpcACServer).FileContent(ctx, req.(*FileDataReq)) ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 } return interceptor(ctx, in, info, handler) } -<<<<<<< HEAD func _HpcAC_DeleteJob_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(DeleteJobReq) -======= -func _HpcAC_SelectQueueByUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QueueReq) ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 if err := dec(in); err != nil { return nil, err } if interceptor == nil { -<<<<<<< HEAD return srv.(HpcACServer).DeleteJob(ctx, in) } info := &grpc.UnaryServerInfo{ @@ -344,7 +410,34 @@ func _HpcAC_SelectQueueByUser_Handler(srv interface{}, ctx context.Context, dec } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).DeleteJob(ctx, req.(*DeleteJobReq)) -======= + } + return interceptor(ctx, in, info, handler) +} + +func _HpcAC_FileContent_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(FileDataReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HpcACServer).FileContent(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hpcAC.hpcAC/FileContent", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HpcACServer).FileContent(ctx, req.(*FileDataReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HpcAC_SelectQueueByUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueueReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { return srv.(HpcACServer).SelectQueueByUser(ctx, in) } info := &grpc.UnaryServerInfo{ @@ -389,7 +482,114 @@ func _HpcAC_QueryUserQuotasLimit_Handler(srv interface{}, ctx context.Context, d } handler := func(ctx context.Context, req interface{}) (interface{}, error) { return srv.(HpcACServer).QueryUserQuotasLimit(ctx, req.(*QueueReq)) ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 + } + return interceptor(ctx, in, info, handler) +} + +func _HpcAC_ParaStorQuota_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ParaStorQuotaReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HpcACServer).ParaStorQuota(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hpcAC.hpcAC/ParaStorQuota", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HpcACServer).ParaStorQuota(ctx, req.(*ParaStorQuotaReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HpcAC_WallTime_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WallTimeReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HpcACServer).WallTime(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hpcAC.hpcAC/WallTime", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HpcACServer).WallTime(ctx, req.(*WallTimeReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HpcAC_QueueJobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QueueJobsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HpcACServer).QueueJobs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hpcAC.hpcAC/QueueJobs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HpcACServer).QueueJobs(ctx, req.(*QueueJobsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HpcAC_CpuCore_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CpuCoreReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HpcACServer).CpuCore(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hpcAC.hpcAC/CpuCore", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HpcACServer).CpuCore(ctx, req.(*CpuCoreReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HpcAC_Jobs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(JobsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HpcACServer).Jobs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hpcAC.hpcAC/jobs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HpcACServer).Jobs(ctx, req.(*JobsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _HpcAC_HistoryJobDetail_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(HistoryJobDetailReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(HpcACServer).HistoryJobDetail(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/hpcAC.hpcAC/HistoryJobDetail", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(HpcACServer).HistoryJobDetail(ctx, req.(*HistoryJobDetailReq)) } return interceptor(ctx, in, info, handler) } @@ -418,14 +618,14 @@ var HpcAC_ServiceDesc = grpc.ServiceDesc{ Handler: _HpcAC_ListJobManager_Handler, }, { -<<<<<<< HEAD MethodName: "GetJobDetail", Handler: _HpcAC_GetJobDetail_Handler, }, { MethodName: "DeleteJob", Handler: _HpcAC_DeleteJob_Handler, -======= + }, + { MethodName: "FileContent", Handler: _HpcAC_FileContent_Handler, }, @@ -440,7 +640,30 @@ var HpcAC_ServiceDesc = grpc.ServiceDesc{ { MethodName: "QueryUserQuotasLimit", Handler: _HpcAC_QueryUserQuotasLimit_Handler, ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 + }, + { + MethodName: "ParaStorQuota", + Handler: _HpcAC_ParaStorQuota_Handler, + }, + { + MethodName: "WallTime", + Handler: _HpcAC_WallTime_Handler, + }, + { + MethodName: "QueueJobs", + Handler: _HpcAC_QueueJobs_Handler, + }, + { + MethodName: "CpuCore", + Handler: _HpcAC_CpuCore_Handler, + }, + { + MethodName: "jobs", + Handler: _HpcAC_Jobs_Handler, + }, + { + MethodName: "HistoryJobDetail", + Handler: _HpcAC_HistoryJobDetail_Handler, }, }, Streams: []grpc.StreamDesc{}, diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/hpcacclient/hpcac.go b/adaptor/PCM-HPC/PCM-AC/rpc/hpcacclient/hpcac.go index 580383db..f5c11e2f 100644 --- a/adaptor/PCM-HPC/PCM-AC/rpc/hpcacclient/hpcac.go +++ b/adaptor/PCM-HPC/PCM-AC/rpc/hpcacclient/hpcac.go @@ -13,50 +13,53 @@ import ( ) type ( -<<<<<<< HEAD - DeleteJobReq = hpcAC.DeleteJobReq - DeleteJobResp = hpcAC.DeleteJobResp - GetJobDetailResp = hpcAC.GetJobDetailResp - HistoryJob = hpcAC.HistoryJob - Job = hpcAC.Job - JobDetail = hpcAC.JobDetail - JobDetailReq = hpcAC.JobDetailReq - JobInitAttr = hpcAC.JobInitAttr - JobManager = hpcAC.JobManager - JobManagerReq = hpcAC.JobManagerReq - JobVncSessionInfo = hpcAC.JobVncSessionInfo - ListHistoryJobReq = hpcAC.ListHistoryJobReq - ListHistoryJobResp = hpcAC.ListHistoryJobResp - ListJobManagerResp = hpcAC.ListJobManagerResp - ListJobReq = hpcAC.ListJobReq - ListJobResp = hpcAC.ListJobResp - MapAppJobInfo = hpcAC.MapAppJobInfo - SubmitJobReq = hpcAC.SubmitJobReq - SubmitJobResp = hpcAC.SubmitJobResp -======= - FileContentResp = hpcAC.FileContentResp - FileDataReq = hpcAC.FileDataReq - FileDataResp = hpcAC.FileDataResp - HistoryJob = hpcAC.HistoryJob - Job = hpcAC.Job - JobManager = hpcAC.JobManager - JobManagerReq = hpcAC.JobManagerReq - ListHistoryJobReq = hpcAC.ListHistoryJobReq - ListHistoryJobResp = hpcAC.ListHistoryJobResp - ListJobManagerResp = hpcAC.ListJobManagerResp - ListJobReq = hpcAC.ListJobReq - ListJobResp = hpcAC.ListJobResp - MapAppJobInfo = hpcAC.MapAppJobInfo - QueueData = hpcAC.QueueData - QueueDetailsData = hpcAC.QueueDetailsData - QueueDetailsResp = hpcAC.QueueDetailsResp - QueueReq = hpcAC.QueueReq - QueueResp = hpcAC.QueueResp - SubmitJobReq = hpcAC.SubmitJobReq - SubmitJobResp = hpcAC.SubmitJobResp - UserQuotasLimitData = hpcAC.UserQuotasLimitData - UserQuotasLimitResp = hpcAC.UserQuotasLimitResp ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 + CpuCore = hpcAC.CpuCore + CpuCoreReq = hpcAC.CpuCoreReq + CpuCoreResp = hpcAC.CpuCoreResp + DeleteJobReq = hpcAC.DeleteJobReq + DeleteJobResp = hpcAC.DeleteJobResp + FileContentResp = hpcAC.FileContentResp + FileDataReq = hpcAC.FileDataReq + FileDataResp = hpcAC.FileDataResp + GetJobDetailResp = hpcAC.GetJobDetailResp + HistoryJob = hpcAC.HistoryJob + HistoryJobDetailReq = hpcAC.HistoryJobDetailReq + HistoryJobDetailResp = hpcAC.HistoryJobDetailResp + HistoryJobDetailRespData = hpcAC.HistoryJobDetailRespData + Job = hpcAC.Job + JobCore = hpcAC.JobCore + JobDetail = hpcAC.JobDetail + JobDetailReq = hpcAC.JobDetailReq + JobInitAttr = hpcAC.JobInitAttr + JobManager = hpcAC.JobManager + JobManagerReq = hpcAC.JobManagerReq + JobVncSessionInfo = hpcAC.JobVncSessionInfo + JobsReq = hpcAC.JobsReq + JobsResp = hpcAC.JobsResp + ListHistoryJobReq = hpcAC.ListHistoryJobReq + ListHistoryJobResp = hpcAC.ListHistoryJobResp + ListJobManagerResp = hpcAC.ListJobManagerResp + ListJobReq = hpcAC.ListJobReq + ListJobResp = hpcAC.ListJobResp + MapAppJobInfo = hpcAC.MapAppJobInfo + Metric = hpcAC.Metric + ParaStorQuotaReq = hpcAC.ParaStorQuotaReq + ParaStorQuotaResp = hpcAC.ParaStorQuotaResp + Queue = hpcAC.Queue + QueueData = hpcAC.QueueData + QueueDetailsData = hpcAC.QueueDetailsData + QueueDetailsResp = hpcAC.QueueDetailsResp + QueueJobsReq = hpcAC.QueueJobsReq + QueueJobsResp = hpcAC.QueueJobsResp + QueueReq = hpcAC.QueueReq + QueueResp = hpcAC.QueueResp + QuotaData = hpcAC.QuotaData + SubmitJobReq = hpcAC.SubmitJobReq + SubmitJobResp = hpcAC.SubmitJobResp + UserQuotasLimitData = hpcAC.UserQuotasLimitData + UserQuotasLimitResp = hpcAC.UserQuotasLimitResp + WallTimeReq = hpcAC.WallTimeReq + WallTimeResp = hpcAC.WallTimeResp HpcAC interface { // ListJob list all jobs @@ -67,12 +70,10 @@ type ( SubmitJob(ctx context.Context, in *SubmitJobReq, opts ...grpc.CallOption) (*SubmitJobResp, error) // ListJobManager list all job managers ListJobManager(ctx context.Context, in *JobManagerReq, opts ...grpc.CallOption) (*ListJobManagerResp, error) -<<<<<<< HEAD // GetJobDetail get job detail GetJobDetail(ctx context.Context, in *JobDetailReq, opts ...grpc.CallOption) (*GetJobDetailResp, error) // DeleteJob delete job DeleteJob(ctx context.Context, in *DeleteJobReq, opts ...grpc.CallOption) (*DeleteJobResp, error) -======= // FileContent 查看文件内容 FileContent(ctx context.Context, in *FileDataReq, opts ...grpc.CallOption) (*FileContentResp, error) // SelectQueueByUser 查询用户可访问队列列表 @@ -81,7 +82,15 @@ type ( QueryQueueDetails(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*QueueDetailsResp, error) // QueryUserQuotasLimit 查询用户资源限制信息 QueryUserQuotasLimit(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*UserQuotasLimitResp, error) ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 + // ParaStor Quota + ParaStorQuota(ctx context.Context, in *ParaStorQuotaReq, opts ...grpc.CallOption) (*ParaStorQuotaResp, error) + // WallTime + WallTime(ctx context.Context, in *WallTimeReq, opts ...grpc.CallOption) (*WallTimeResp, error) + // QueueJobs + QueueJobs(ctx context.Context, in *QueueJobsReq, opts ...grpc.CallOption) (*QueueJobsResp, error) + CpuCore(ctx context.Context, in *CpuCoreReq, opts ...grpc.CallOption) (*CpuCoreResp, error) + Jobs(ctx context.Context, in *JobsReq, opts ...grpc.CallOption) (*JobsResp, error) + HistoryJobDetail(ctx context.Context, in *HistoryJobDetailReq, opts ...grpc.CallOption) (*HistoryJobDetailResp, error) } defaultHpcAC struct { @@ -119,7 +128,6 @@ func (m *defaultHpcAC) ListJobManager(ctx context.Context, in *JobManagerReq, op return client.ListJobManager(ctx, in, opts...) } -<<<<<<< HEAD // GetJobDetail get job detail func (m *defaultHpcAC) GetJobDetail(ctx context.Context, in *JobDetailReq, opts ...grpc.CallOption) (*GetJobDetailResp, error) { client := hpcAC.NewHpcACClient(m.cli.Conn()) @@ -130,7 +138,8 @@ func (m *defaultHpcAC) GetJobDetail(ctx context.Context, in *JobDetailReq, opts func (m *defaultHpcAC) DeleteJob(ctx context.Context, in *DeleteJobReq, opts ...grpc.CallOption) (*DeleteJobResp, error) { client := hpcAC.NewHpcACClient(m.cli.Conn()) return client.DeleteJob(ctx, in, opts...) -======= +} + // FileContent 查看文件内容 func (m *defaultHpcAC) FileContent(ctx context.Context, in *FileDataReq, opts ...grpc.CallOption) (*FileContentResp, error) { client := hpcAC.NewHpcACClient(m.cli.Conn()) @@ -153,5 +162,37 @@ func (m *defaultHpcAC) QueryQueueDetails(ctx context.Context, in *QueueReq, opts func (m *defaultHpcAC) QueryUserQuotasLimit(ctx context.Context, in *QueueReq, opts ...grpc.CallOption) (*UserQuotasLimitResp, error) { client := hpcAC.NewHpcACClient(m.cli.Conn()) return client.QueryUserQuotasLimit(ctx, in, opts...) ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 +} + +// ParaStor Quota +func (m *defaultHpcAC) ParaStorQuota(ctx context.Context, in *ParaStorQuotaReq, opts ...grpc.CallOption) (*ParaStorQuotaResp, error) { + client := hpcAC.NewHpcACClient(m.cli.Conn()) + return client.ParaStorQuota(ctx, in, opts...) +} + +// WallTime +func (m *defaultHpcAC) WallTime(ctx context.Context, in *WallTimeReq, opts ...grpc.CallOption) (*WallTimeResp, error) { + client := hpcAC.NewHpcACClient(m.cli.Conn()) + return client.WallTime(ctx, in, opts...) +} + +// QueueJobs +func (m *defaultHpcAC) QueueJobs(ctx context.Context, in *QueueJobsReq, opts ...grpc.CallOption) (*QueueJobsResp, error) { + client := hpcAC.NewHpcACClient(m.cli.Conn()) + return client.QueueJobs(ctx, in, opts...) +} + +func (m *defaultHpcAC) CpuCore(ctx context.Context, in *CpuCoreReq, opts ...grpc.CallOption) (*CpuCoreResp, error) { + client := hpcAC.NewHpcACClient(m.cli.Conn()) + return client.CpuCore(ctx, in, opts...) +} + +func (m *defaultHpcAC) Jobs(ctx context.Context, in *JobsReq, opts ...grpc.CallOption) (*JobsResp, error) { + client := hpcAC.NewHpcACClient(m.cli.Conn()) + return client.Jobs(ctx, in, opts...) +} + +func (m *defaultHpcAC) HistoryJobDetail(ctx context.Context, in *HistoryJobDetailReq, opts ...grpc.CallOption) (*HistoryJobDetailResp, error) { + client := hpcAC.NewHpcACClient(m.cli.Conn()) + return client.HistoryJobDetail(ctx, in, opts...) } diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/cpucorelogic.go b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/cpucorelogic.go new file mode 100644 index 00000000..7b3e575c --- /dev/null +++ b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/cpucorelogic.go @@ -0,0 +1,37 @@ +package logic + +import ( + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/util" + "PCM/common/tool" + "context" + + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC" + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type CpuCoreLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewCpuCoreLogic(ctx context.Context, svcCtx *svc.ServiceContext) *CpuCoreLogic { + return &CpuCoreLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *CpuCoreLogic) CpuCore(in *hpcAC.CpuCoreReq) (*hpcAC.CpuCoreResp, error) { + url := "https://api01.hpccube.com:65106/hpc/openapi/v2/view/cpucore/state" + var cpuCoreResp *hpcAC.CpuCoreResp + acHttpRequest := tool.GetACHttpRequest() + acHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson). + SetResult(&cpuCoreResp). + SetHeader("token", util.GetToken()). + Get(url) + return cpuCoreResp, nil +} diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/historyjobdetaillogic.go b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/historyjobdetaillogic.go new file mode 100644 index 00000000..338af63c --- /dev/null +++ b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/historyjobdetaillogic.go @@ -0,0 +1,39 @@ +package logic + +import ( + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/util" + "PCM/common/tool" + "context" + "fmt" + + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC" + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type HistoryJobDetailLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewHistoryJobDetailLogic(ctx context.Context, svcCtx *svc.ServiceContext) *HistoryJobDetailLogic { + return &HistoryJobDetailLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *HistoryJobDetailLogic) HistoryJobDetail(in *hpcAC.HistoryJobDetailReq) (*hpcAC.HistoryJobDetailResp, error) { + url := fmt.Sprint("https://api01.hpccube.com:65106//hpc/openapi/v2/historyjobs/%s/%s?acctTime=%s", in.JobmanagerId, in.JobId, in.AcctTime) + var jobsResp *hpcAC.JobsResp + acHttpRequest := tool.GetACHttpRequest() + acHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson). + SetResult(&jobsResp). + SetHeader("token", util.GetToken()). + Get(url) + + return &hpcAC.HistoryJobDetailResp{}, nil +} diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/jobslogic.go b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/jobslogic.go new file mode 100644 index 00000000..96b3202d --- /dev/null +++ b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/jobslogic.go @@ -0,0 +1,36 @@ +package logic + +import ( + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC" + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/svc" + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/util" + "PCM/common/tool" + "context" + + "github.com/zeromicro/go-zero/core/logx" +) + +type JobsLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewJobsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *JobsLogic { + return &JobsLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *JobsLogic) Jobs(in *hpcAC.JobsReq) (*hpcAC.JobsResp, error) { + url := "https://api01.hpccube.com:65106/hpc/openapi/v2/view/jobs/state?userName=" + in.UserName + var jobsResp *hpcAC.JobsResp + acHttpRequest := tool.GetACHttpRequest() + acHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson). + SetResult(&jobsResp). + SetHeader("token", util.GetToken()). + Get(url) + return jobsResp, nil +} diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/listjobmanagerlogic.go b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/listjobmanagerlogic.go index 035d01bd..3d998453 100644 --- a/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/listjobmanagerlogic.go +++ b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/listjobmanagerlogic.go @@ -67,7 +67,7 @@ func (l *ListJobManagerLogic) ListJobManager(in *hpcAC.JobManagerReq) (*hpcAC.Li if err = json.Unmarshal(body, &resp); err != nil { if resp.Code != "0" { - resp.JobManagers = nil + resp.Data = nil } else { return nil, err } diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/parastorquotalogic.go b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/parastorquotalogic.go new file mode 100644 index 00000000..1cc8d590 --- /dev/null +++ b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/parastorquotalogic.go @@ -0,0 +1,40 @@ +package logic + +import ( + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/util" + "PCM/common/tool" + "context" + + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC" + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type ParaStorQuotaLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewParaStorQuotaLogic(ctx context.Context, svcCtx *svc.ServiceContext) *ParaStorQuotaLogic { + return &ParaStorQuotaLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// ParaStor Quota +func (l *ParaStorQuotaLogic) ParaStorQuota(in *hpcAC.ParaStorQuotaReq) (*hpcAC.ParaStorQuotaResp, error) { + // todo: add your logic here and delete this line + println("token:", util.GetToken()) + url := "https://api01.hpccube.com:65106/hpc/openapi/v2/parastor/quota/usernames/" + in.Username + var acResp *hpcAC.ParaStorQuotaResp + acHttpRequest := tool.GetACHttpRequest() + acHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson). + SetResult(&acResp). + SetHeader("token", util.GetToken()). + Get(url) + return acResp, nil +} diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/queuejobslogic.go b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/queuejobslogic.go new file mode 100644 index 00000000..ef9bd8e9 --- /dev/null +++ b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/queuejobslogic.go @@ -0,0 +1,38 @@ +package logic + +import ( + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/util" + "PCM/common/tool" + "context" + + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC" + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/svc" + + "github.com/zeromicro/go-zero/core/logx" +) + +type QueueJobsLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewQueueJobsLogic(ctx context.Context, svcCtx *svc.ServiceContext) *QueueJobsLogic { + return &QueueJobsLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +// QueueJobs +func (l *QueueJobsLogic) QueueJobs(in *hpcAC.QueueJobsReq) (*hpcAC.QueueJobsResp, error) { + url := "https://api01.hpccube.com:65106/hpc/openapi/v2/view/queue/jobs?userName=" + in.UserName + var queueJobsResp *hpcAC.QueueJobsResp + acHttpRequest := tool.GetACHttpRequest() + acHttpRequest.SetHeader(tool.ContentType, tool.ApplicationJson). + SetResult(&queueJobsResp). + SetHeader("token", util.GetToken()). + Get(url) + return queueJobsResp, nil +} diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/walltimelogic.go b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/walltimelogic.go new file mode 100644 index 00000000..a86ea99b --- /dev/null +++ b/adaptor/PCM-HPC/PCM-AC/rpc/internal/logic/walltimelogic.go @@ -0,0 +1,37 @@ +package logic + +import ( + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/hpcAC" + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/svc" + "PCM/adaptor/PCM-HPC/PCM-AC/rpc/internal/util" + "PCM/common/tool" + "context" + + "github.com/zeromicro/go-zero/core/logx" +) + +type WallTimeLogic struct { + ctx context.Context + svcCtx *svc.ServiceContext + logx.Logger +} + +func NewWallTimeLogic(ctx context.Context, svcCtx *svc.ServiceContext) *WallTimeLogic { + return &WallTimeLogic{ + ctx: ctx, + svcCtx: svcCtx, + Logger: logx.WithContext(ctx), + } +} + +func (l *WallTimeLogic) WallTime(in *hpcAC.WallTimeReq) (*hpcAC.WallTimeResp, error) { + url := "https://api01.hpccube.com:65106/hpc/openapi/v2/view/walltime/users/" + in.Username + var wallTimeResp *hpcAC.WallTimeResp + acHttpRequest := tool.GetACHttpRequest() + acHttpRequest. + SetResult(&wallTimeResp). + SetHeader(tool.ContentType, tool.ApplicationJson). + SetHeader("token", util.GetToken()). + Get(url) + return wallTimeResp, nil +} diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/internal/server/hpcacserver.go b/adaptor/PCM-HPC/PCM-AC/rpc/internal/server/hpcacserver.go index f8501940..132d7051 100644 --- a/adaptor/PCM-HPC/PCM-AC/rpc/internal/server/hpcacserver.go +++ b/adaptor/PCM-HPC/PCM-AC/rpc/internal/server/hpcacserver.go @@ -46,7 +46,6 @@ func (s *HpcACServer) ListJobManager(ctx context.Context, in *hpcAC.JobManagerRe return l.ListJobManager(in) } -<<<<<<< HEAD // GetJobDetail get job detail func (s *HpcACServer) GetJobDetail(ctx context.Context, in *hpcAC.JobDetailReq) (*hpcAC.GetJobDetailResp, error) { l := logic.NewGetJobDetailLogic(ctx, s.svcCtx) @@ -57,7 +56,8 @@ func (s *HpcACServer) GetJobDetail(ctx context.Context, in *hpcAC.JobDetailReq) func (s *HpcACServer) DeleteJob(ctx context.Context, in *hpcAC.DeleteJobReq) (*hpcAC.DeleteJobResp, error) { l := logic.NewDeleteJobLogic(ctx, s.svcCtx) return l.DeleteJob(in) -======= +} + // FileContent 查看文件内容 func (s *HpcACServer) FileContent(ctx context.Context, in *hpcAC.FileDataReq) (*hpcAC.FileContentResp, error) { l := logic.NewFileContentLogic(ctx, s.svcCtx) @@ -80,5 +80,37 @@ func (s *HpcACServer) QueryQueueDetails(ctx context.Context, in *hpcAC.QueueReq) func (s *HpcACServer) QueryUserQuotasLimit(ctx context.Context, in *hpcAC.QueueReq) (*hpcAC.UserQuotasLimitResp, error) { l := logic.NewQueryUserQuotasLimitLogic(ctx, s.svcCtx) return l.QueryUserQuotasLimit(in) ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 +} + +// ParaStor Quota +func (s *HpcACServer) ParaStorQuota(ctx context.Context, in *hpcAC.ParaStorQuotaReq) (*hpcAC.ParaStorQuotaResp, error) { + l := logic.NewParaStorQuotaLogic(ctx, s.svcCtx) + return l.ParaStorQuota(in) +} + +// WallTime +func (s *HpcACServer) WallTime(ctx context.Context, in *hpcAC.WallTimeReq) (*hpcAC.WallTimeResp, error) { + l := logic.NewWallTimeLogic(ctx, s.svcCtx) + return l.WallTime(in) +} + +// QueueJobs +func (s *HpcACServer) QueueJobs(ctx context.Context, in *hpcAC.QueueJobsReq) (*hpcAC.QueueJobsResp, error) { + l := logic.NewQueueJobsLogic(ctx, s.svcCtx) + return l.QueueJobs(in) +} + +func (s *HpcACServer) CpuCore(ctx context.Context, in *hpcAC.CpuCoreReq) (*hpcAC.CpuCoreResp, error) { + l := logic.NewCpuCoreLogic(ctx, s.svcCtx) + return l.CpuCore(in) +} + +func (s *HpcACServer) Jobs(ctx context.Context, in *hpcAC.JobsReq) (*hpcAC.JobsResp, error) { + l := logic.NewJobsLogic(ctx, s.svcCtx) + return l.Jobs(in) +} + +func (s *HpcACServer) HistoryJobDetail(ctx context.Context, in *hpcAC.HistoryJobDetailReq) (*hpcAC.HistoryJobDetailResp, error) { + l := logic.NewHistoryJobDetailLogic(ctx, s.svcCtx) + return l.HistoryJobDetail(in) } diff --git a/adaptor/PCM-HPC/PCM-AC/rpc/pb/hpcAC.proto b/adaptor/PCM-HPC/PCM-AC/rpc/pb/hpcAC.proto index 97e84791..fd33326d 100644 --- a/adaptor/PCM-HPC/PCM-AC/rpc/pb/hpcAC.proto +++ b/adaptor/PCM-HPC/PCM-AC/rpc/pb/hpcAC.proto @@ -18,7 +18,7 @@ message JobManagerReq{ message ListJobManagerResp{ string code = 1; // @gotags: copier:"Code", json:"code" string msg = 2; // @gotags: copier:"Msg", json:"msg" - repeated JobManager job_managers = 3; // @gotags: copier:"JobManagers", json:"data" + repeated JobManager data = 3; // @gotags: copier:"JobManagers", json:"data" } /******************Cluster End*************************/ @@ -277,6 +277,157 @@ message MapAppJobInfo{ } /******************Job(Submit) End*************************/ +message ParaStorQuotaReq{ + string username = 1; // @gotags: copier:"username" +} + + +message ParaStorQuotaResp{ + string Code = 1; // @gotags: copier:"Code" + string Msg = 2; // @gotags: copier:"Msg" + repeated QuotaData data = 3; // @gotags: copier:"Data" +} + +message QuotaData{ + string username = 1; // @gotags: copier:"username" //用户名 + string path = 2; // @gotags: copier:"path" //共享存储配额路径 + double threshold = 3; // @gotags: copier:"threshold" //共享存储配额量,单位GB + double usage = 4; // @gotags: copier:"usage" //共享存储使用量,单位GB +} + +message WallTimeReq{ + string username = 1; // @gotags: copier:"username" +} + +message WallTimeResp{ + string Code = 1; // @gotags: copier:"Code" + string Msg = 2; // @gotags: copier:"Msg" + double data = 3; // @gotags: copier:"Data" +} + +message QueueJobsReq{ + string userName = 1;//@gotags: copier:"userName" +} + +message QueueJobsResp{ + string Code = 1; // @gotags: copier:"Code" + string Msg = 2; // @gotags: copier:"Msg" + repeated Queue data = 3; // @gotags: copier:"Data" +} + +message Queue{ + string name = 1; // @gotags: copier:"name" + repeated Metric values = 2;// @gotags: copier:"values" + +} + +message Metric{ + string metricName = 1;// @gotags: copier:"metricName" + string metricValue = 2;// @gotags: copier:"metricValue" +} + +message CpuCoreReq{ + +} + +message CpuCoreResp{ + string Code = 1; // @gotags: copier:"Code" + string Msg = 2; // @gotags: copier:"Msg" + repeated CpuCore data = 3; // @gotags: copier:"data" +} + +message CpuCore{ + string name = 1; // @gotags: copier:"name" + int32 y = 2;// @gotags: copier:"y" +} + +message JobsReq{ + string userName = 1; // @gotags: copier:"userName" +} + +message JobsResp{ + string Code = 1; // @gotags: copier:"Code" + string Msg = 2; // @gotags: copier:"Msg" + repeated JobCore data = 3; // @gotags: copier:"data" +} + +message JobCore{ + string name = 1; // @gotags: copier:"name" + int32 y = 2;// @gotags: copier:"y" +} + +message HistoryJobDetailReq{ + string jobId = 1; + string jobmanagerId = 2; + string acctTime = 3; +} + +message HistoryJobDetailResp { + string code = 1; + string msg = 2; + + message data { + string acctTime = 1;// @gotags: copier:"acctTime" + string appType = 2; + string command = 3; + string commandExist = 4; + string cpuNuclearHour = 5; + string cpuNuclearSec = 6; + double cpuUnitPrice = 7; + string dcuCardHour = 8; + string dcuCardSec = 9; + double dcuUnitPrice = 10; + string efficiencyCpu = 11; + int64 exclusiveCputime = 12; + int64 exclusiveMem = 13; + int64 exclusiveWalltime = 14; + string goldenable = 15; + string gpuCardHour = 16; + string gpuCardSec = 17; + double gpuUnitPrice = 18; + string groupName = 19; + string historyAccount = 20; + string historyQueuerate = 21; + string isSinglejob = 22; + int64 jobCpuTime = 23; + int64 jobDcuNum = 24; + string jobEndTime = 25; + string jobExecGpus = 26; + string jobExecHost = 27; + int64 jobExitStatus = 28; + int64 jobGpuNum = 29; + string jobId = 30; + int64 jobMemUsed = 31; + string jobName = 32; + int64 jobProcNum = 33; + string jobQueueTime = 34; + double jobReqCpu = 35; + double jobReqDcu = 36; + double jobReqGpu = 37; + string jobReqMem = 38; + double jobReqNodes = 39; + int64 jobResponseTime = 40; + string jobStartTime = 41; + string jobState = 42; + int64 jobVmemUsed = 43; + int64 jobWaitTime = 44; + int64 jobWalltimeUsed = 45; + int64 jobmanagerId = 46; + string jobmanagerName = 47; + string needNodes = 48; + int64 nodect = 49; + string owner = 50; + string queue = 51; + string scale = 52; + int64 shareCputime = 53; + int64 shareMem = 54; + int64 shareWalltime = 55; + string startCount = 56; + string userName = 57; + int64 walltime = 58; + string workdir = 59; + } +} message FileContentResp{ string code = 1; // @gotags: copier:"Code" //状态码 示例:0 string msg = 2; // @gotags: copier:"Msg" //信息 示例:success @@ -397,13 +548,12 @@ service hpcAC { // ListJobManager list all job managers rpc ListJobManager(JobManagerReq) returns (ListJobManagerResp); -<<<<<<< HEAD // GetJobDetail get job detail rpc GetJobDetail(JobDetailReq) returns (GetJobDetailResp); // DeleteJob delete job rpc DeleteJob(DeleteJobReq) returns (DeleteJobResp); -======= + //FileContent 查看文件内容 rpc FileContent(FileDataReq) returns (FileContentResp); @@ -415,5 +565,19 @@ service hpcAC { ///QueryUserQuotasLimit 查询用户资源限制信息 rpc QueryUserQuotasLimit(QueueReq) returns(UserQuotasLimitResp); ->>>>>>> ff7628a455a0eb264866e5bde762cd1c671eb8f3 + + //ParaStor Quota + rpc ParaStorQuota(ParaStorQuotaReq) returns (ParaStorQuotaResp); + + //WallTime + rpc WallTime(WallTimeReq) returns (WallTimeResp); + + //QueueJobs + rpc QueueJobs(QueueJobsReq)returns (QueueJobsResp); + + rpc CpuCore(CpuCoreReq) returns (CpuCoreResp); + + rpc jobs(JobsReq) returns (JobsResp); + + rpc HistoryJobDetail(HistoryJobDetailReq)returns (HistoryJobDetailResp); } \ No newline at end of file diff --git a/common/tool/http.go b/common/tool/http.go index c7843099..c463a14b 100644 --- a/common/tool/http.go +++ b/common/tool/http.go @@ -3,11 +3,51 @@ package tool import ( "bytes" "encoding/json" + "github.com/go-resty/resty/v2" + "io" "io/ioutil" + "log" "net/http" "time" ) +const ( + GET = "GET" + PUT = "PUT" + POST = "POST" + DELETE = "DELETE" +) +const ( + ContentType = "Content-Type" + ApplicationJson = "application/json" +) + +func GetACHttpRequest() *resty.Request { + + client := resty.New() + request := client.R() + return request +} + +func HttpClient(method string, url string, payload io.Reader, token string) ([]byte, error) { + request, err := http.NewRequest(method, url, payload) + request.Header.Add("Content-Type", "application/json") + request.Header.Add("User-Agent", "API Explorer") + request.Header.Add("x-auth-token", token) + client := &http.Client{} + res, err := client.Do(request) + if err != nil { + log.Fatal(err) + } + defer res.Body.Close() + body, err := io.ReadAll(res.Body) + if err != nil { + log.Fatal(err) + } + + return body, err +} + // 发送POST请求 // url:请求地址,data:POST请求提交的数据,contentType:请求体格式,如:application/json // content:请求放回的内容