From decad4cf05b903d8bad0f7bfbf40f07ae0a567fa Mon Sep 17 00:00:00 2001 From: Nathan Swartz <112000252+swartzn@users.noreply.github.com> Date: Wed, 25 Jun 2025 16:09:53 -0500 Subject: [PATCH] feat(rst): add job request priority and scheduled work state --- cpp/flex.pb.cc | 318 +++++++++++-------- cpp/flex.pb.h | 88 +++++- go/flex/flex.pb.go | 530 +++++++++++++++++-------------- go/flex/flex_protoopaque.pb.go | 548 +++++++++++++++++++-------------- proto/flex.proto | 14 +- rust/flex.rs | 17 +- 6 files changed, 903 insertions(+), 612 deletions(-) diff --git a/cpp/flex.pb.cc b/cpp/flex.pb.cc index ff24a63..0e90a2b 100644 --- a/cpp/flex.pb.cc +++ b/cpp/flex.pb.cc @@ -691,7 +691,8 @@ inline constexpr JobRequestCfg::Impl_::Impl_( overwrite_{false}, flatten_{false}, force_{false}, - update_{false} {} + update_{false}, + priority_{0} {} template PROTOBUF_CONSTEXPR JobRequestCfg::JobRequestCfg(::_pbi::ConstantInitialized) @@ -840,6 +841,7 @@ inline constexpr WorkRequest::Impl_::Impl_( segment_{nullptr}, remote_storage_target_{0u}, stub_local_{false}, + priority_{0}, Type_{}, _oneof_case_{} {} @@ -1047,6 +1049,7 @@ const ::uint32_t PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg, _impl_.update_), PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg, _impl_.metadata_), PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg, _impl_.tagging_), + PROTOBUF_FIELD_OFFSET(::flex::JobRequestCfg, _impl_.priority_), ~0u, ~0u, ~0u, @@ -1059,6 +1062,7 @@ const ::uint32_t 2, ~0u, 0, + 3, ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flex::WorkRequest_Segment, _internal_metadata_), ~0u, // no _extensions_ @@ -1089,6 +1093,7 @@ const ::uint32_t ::_pbi::kInvalidFieldOffsetTag, ::_pbi::kInvalidFieldOffsetTag, PROTOBUF_FIELD_OFFSET(::flex::WorkRequest, _impl_.stub_local_), + PROTOBUF_FIELD_OFFSET(::flex::WorkRequest, _impl_.priority_), PROTOBUF_FIELD_OFFSET(::flex::WorkRequest, _impl_.Type_), ~0u, ~0u, @@ -1100,6 +1105,7 @@ const ::uint32_t ~0u, ~0u, ~0u, + 1, PROTOBUF_FIELD_OFFSET(::flex::BuilderJob, _impl_._has_bits_), PROTOBUF_FIELD_OFFSET(::flex::BuilderJob, _internal_metadata_), ~0u, // no _extensions_ @@ -1331,24 +1337,24 @@ static const ::_pbi::MigrationSchema {83, -1, -1, sizeof(::flex::BulkUpdateWorkResponse)}, {93, 111, -1, sizeof(::flex::JobLockedInfo)}, {121, 131, -1, sizeof(::flex::JobRequestCfg_MetadataEntry_DoNotUse)}, - {133, 153, -1, sizeof(::flex::JobRequestCfg)}, - {165, -1, -1, sizeof(::flex::WorkRequest_Segment)}, - {177, 196, -1, sizeof(::flex::WorkRequest)}, - {206, 215, -1, sizeof(::flex::BuilderJob)}, - {216, 230, -1, sizeof(::flex::MockJob)}, - {236, 246, -1, sizeof(::flex::SyncJob_MetadataEntry_DoNotUse)}, - {248, 264, -1, sizeof(::flex::SyncJob)}, - {272, -1, -1, sizeof(::flex::Work_Status)}, - {282, -1, -1, sizeof(::flex::Work_Part)}, - {296, 310, -1, sizeof(::flex::Work)}, - {316, 326, -1, sizeof(::flex::UpdateConfigRequest)}, - {328, -1, -1, sizeof(::flex::UpdateConfigResponse)}, - {338, -1, -1, sizeof(::flex::BeeRemoteNode)}, - {355, -1, -1, sizeof(::flex::RemoteStorageTarget_Policies)}, - {364, -1, -1, sizeof(::flex::RemoteStorageTarget_S3)}, - {378, 388, -1, sizeof(::flex::RemoteStorageTarget_Azure)}, - {390, -1, -1, sizeof(::flex::RemoteStorageTarget_POSIX)}, - {399, 415, -1, sizeof(::flex::RemoteStorageTarget)}, + {133, 154, -1, sizeof(::flex::JobRequestCfg)}, + {167, -1, -1, sizeof(::flex::WorkRequest_Segment)}, + {179, 199, -1, sizeof(::flex::WorkRequest)}, + {210, 219, -1, sizeof(::flex::BuilderJob)}, + {220, 234, -1, sizeof(::flex::MockJob)}, + {240, 250, -1, sizeof(::flex::SyncJob_MetadataEntry_DoNotUse)}, + {252, 268, -1, sizeof(::flex::SyncJob)}, + {276, -1, -1, sizeof(::flex::Work_Status)}, + {286, -1, -1, sizeof(::flex::Work_Part)}, + {300, 314, -1, sizeof(::flex::Work)}, + {320, 330, -1, sizeof(::flex::UpdateConfigRequest)}, + {332, -1, -1, sizeof(::flex::UpdateConfigResponse)}, + {342, -1, -1, sizeof(::flex::BeeRemoteNode)}, + {359, -1, -1, sizeof(::flex::RemoteStorageTarget_Policies)}, + {368, -1, -1, sizeof(::flex::RemoteStorageTarget_S3)}, + {382, 392, -1, sizeof(::flex::RemoteStorageTarget_Azure)}, + {394, -1, -1, sizeof(::flex::RemoteStorageTarget_POSIX)}, + {403, 419, -1, sizeof(::flex::RemoteStorageTarget)}, }; static const ::_pb::Message* const file_default_instances[] = { &::flex::_HeartbeatRequest_default_instance_._instance, @@ -1408,7 +1414,7 @@ const char descriptor_table_protodef_flex_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIA "p\022\023\n\013remote_size\030\006 \001(\003\0220\n\014remote_mtime\030\007" " \001(\0132\032.google.protobuf.Timestamp\022\027\n\017stub" "_url_rst_id\030\010 \001(\r\022\025\n\rstub_url_path\030\t \001(\t" - "\022\022\n\nexternalId\030\n \001(\t\"\371\002\n\rJobRequestCfg\022\033" + "\022\022\n\nexternalId\030\n \001(\t\"\235\003\n\rJobRequestCfg\022\033" "\n\023remoteStorageTarget\030\001 \001(\r\022\014\n\004path\030\002 \001(" "\t\022\022\n\nremotePath\030\003 \001(\t\022\020\n\010download\030\004 \001(\010\022" "\022\n\nstub_local\030\005 \001(\010\022\021\n\toverwrite\030\006 \001(\010\022\017" @@ -1416,81 +1422,83 @@ const char descriptor_table_protodef_flex_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIA "_info\030\t \001(\0132\023.flex.JobLockedInfo\022\023\n\006upda" "te\030\n \001(\010H\000\210\001\001\0223\n\010metadata\030\r \003(\0132!.flex.J" "obRequestCfg.MetadataEntry\022\024\n\007tagging\030\016 " - "\001(\tH\001\210\001\001\032/\n\rMetadataEntry\022\013\n\003key\030\001 \001(\t\022\r" - "\n\005value\030\002 \001(\t:\0028\001B\t\n\007_updateB\n\n\010_tagging" - "\"\375\002\n\013WorkRequest\022\016\n\006job_id\030\001 \001(\t\022\022\n\nrequ" - "est_id\030\002 \001(\t\022\023\n\013external_id\030\003 \001(\t\022\014\n\004pat" - "h\030\004 \001(\t\022*\n\007segment\030\005 \001(\0132\031.flex.WorkRequ" - "est.Segment\022\035\n\025remote_storage_target\030\006 \001" - "(\r\022\035\n\004mock\030\n \001(\0132\r.flex.MockJobH\000\022\035\n\004syn" - "c\030\013 \001(\0132\r.flex.SyncJobH\000\022#\n\007builder\030\014 \001(" - "\0132\020.flex.BuilderJobH\000\022\022\n\nstub_local\030\010 \001(" - "\010\032]\n\007Segment\022\024\n\014offset_start\030\001 \001(\003\022\023\n\013of" - "fset_stop\030\002 \001(\003\022\023\n\013parts_start\030\003 \001(\005\022\022\n\n" - "parts_stop\030\004 \001(\005B\006\n\004Type\".\n\nBuilderJob\022 " - "\n\003cfg\030\001 \001(\0132\023.flex.JobRequestCfg\"\255\001\n\007Moc" - "kJob\022\031\n\021num_test_segments\030\001 \001(\005\022\021\n\tfile_" - "size\030\002 \001(\003\022\023\n\013external_id\030\003 \001(\t\022\023\n\013shoul" - "d_fail\030\004 \001(\010\022(\n\013locked_info\030\006 \001(\0132\023.flex" - ".JobLockedInfo\022 \n\003cfg\030\007 \001(\0132\023.flex.JobRe" - "questCfg\"\362\002\n\007SyncJob\022*\n\toperation\030\001 \001(\0162" - "\027.flex.SyncJob.Operation\022\021\n\toverwrite\030\002 " - "\001(\010\022\023\n\013remote_path\030\003 \001(\t\022\017\n\007flatten\030\005 \001(" - "\010\022(\n\013locked_info\030\006 \001(\0132\023.flex.JobLockedI" - "nfo\022\023\n\006update\030\007 \001(\010H\000\210\001\001\022-\n\010metadata\030\t \003" - "(\0132\033.flex.SyncJob.MetadataEntry\022\024\n\007taggi" - "ng\030\n \001(\tH\001\210\001\001\032/\n\rMetadataEntry\022\013\n\003key\030\001 " - "\001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"6\n\tOperation\022\017\n\013U" - "NSPECIFIED\020\000\022\n\n\006UPLOAD\020\001\022\014\n\010DOWNLOAD\020\002B\t" - "\n\007_updateB\n\n\010_tagging\"\333\003\n\004Work\022\014\n\004path\030\001" - " \001(\t\022\016\n\006job_id\030\002 \001(\t\022\022\n\nrequest_id\030\003 \001(\t" - "\022!\n\006status\030\004 \001(\0132\021.flex.Work.Status\022\036\n\005p" - "arts\030\005 \003(\0132\017.flex.Work.Part\022\023\n\013job_build" - "er\030\006 \001(\010\032:\n\006Status\022\037\n\005state\030\001 \001(\0162\020.flex" - ".Work.State\022\017\n\007message\030\002 \001(\t\032\206\001\n\004Part\022\023\n" - "\013part_number\030\001 \001(\005\022\024\n\014offset_start\030\002 \001(\003" - "\022\023\n\013offset_stop\030\003 \001(\003\022\022\n\nentity_tag\030\004 \001(" - "\t\022\027\n\017checksum_sha256\030\005 \001(\t\022\021\n\tcompleted\030" - "\006 \001(\010\"\203\001\n\005State\022\017\n\013UNSPECIFIED\020\000\022\013\n\007UNKN" - "OWN\020\001\022\013\n\007CREATED\020\002\022\r\n\tSCHEDULED\020\003\022\013\n\007RUN" - "NING\020\004\022\t\n\005ERROR\020\006\022\n\n\006FAILED\020\007\022\r\n\tCANCELL" - "ED\020\010\022\r\n\tCOMPLETED\020\t\"g\n\023UpdateConfigReque" - "st\022\'\n\nbee_remote\030\001 \001(\0132\023.flex.BeeRemoteN" - "ode\022\'\n\004rsts\030\002 \003(\0132\031.flex.RemoteStorageTa" - "rget\"\234\001\n\024UpdateConfigResponse\0221\n\006result\030" - "\001 \001(\0162!.flex.UpdateConfigResponse.Result" - "\022\017\n\007message\030\002 \001(\t\"@\n\006Result\022\017\n\013UNSPECIFI" - "ED\020\000\022\013\n\007SUCCESS\020\001\022\013\n\007PARTIAL\020\002\022\013\n\007FAILUR" - "E\020\003\"\342\001\n\rBeeRemoteNode\022\n\n\002id\030\001 \001(\t\022\017\n\007add" - "ress\030\002 \001(\t\022\025\n\rmgmtd_address\030\003 \001(\t\022\026\n\016mgm" - "td_tls_cert\030\004 \001(\014\022&\n\036mgmtd_tls_disable_v" - "erification\030\005 \001(\010\022\031\n\021mgmtd_tls_disable\030\006" - " \001(\010\022\027\n\017mgmtd_use_proxy\030\t \001(\010\022\023\n\013auth_se" - "cret\030\007 \001(\014\022\024\n\014auth_disable\030\010 \001(\010\"\213\004\n\023Rem" - "oteStorageTarget\022\n\n\002id\030\001 \001(\r\022\014\n\004name\030\002 \001" - "(\t\0224\n\010policies\030\003 \001(\0132\".flex.RemoteStorag" - "eTarget.Policies\022*\n\002s3\030\004 \001(\0132\034.flex.Remo" - "teStorageTarget.S3H\000\0220\n\005posix\030\005 \001(\0132\037.fl" - "ex.RemoteStorageTarget.POSIXH\000\0220\n\005azure\030" - "\006 \001(\0132\037.flex.RemoteStorageTarget.AzureH\000" - "\022\016\n\004mock\030\007 \001(\tH\000\032\'\n\010Policies\022\033\n\023fast_sta" - "rt_max_size\030\001 \001(\003\032x\n\002S3\022\024\n\014endpoint_url\030" - "\001 \001(\t\022\024\n\014partition_id\030\002 \001(\t\022\016\n\006region\030\003 " - "\001(\t\022\016\n\006bucket\030\004 \001(\t\022\022\n\naccess_key\030\005 \001(\t\022" - "\022\n\nsecret_key\030\006 \001(\t\032B\n\005Azure\022(\n\002s3\030\001 \001(\013" - "2\034.flex.RemoteStorageTarget.S3\022\017\n\007accoun" - "t\030\002 \001(\t\032\025\n\005POSIX\022\014\n\004path\030\001 \001(\tB\006\n\004type2\340" - "\002\n\nWorkerNode\022E\n\014UpdateConfig\022\031.flex.Upd" - "ateConfigRequest\032\032.flex.UpdateConfigResp" - "onse\022<\n\tHeartbeat\022\026.flex.HeartbeatReques" - "t\032\027.flex.HeartbeatResponse\022\?\n\nSubmitWork" - "\022\027.flex.SubmitWorkRequest\032\030.flex.SubmitW" - "orkResponse\022\?\n\nUpdateWork\022\027.flex.UpdateW" - "orkRequest\032\030.flex.UpdateWorkResponse\022K\n\016" - "BulkUpdateWork\022\033.flex.BulkUpdateWorkRequ" - "est\032\034.flex.BulkUpdateWorkResponseB\'Z%git" - "hub.com/thinkparq/protobuf/go/flexb\006prot" - "o3" + "\001(\tH\001\210\001\001\022\025\n\010priority\030\013 \001(\005H\002\210\001\001\032/\n\rMetad" + "ataEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001" + "B\t\n\007_updateB\n\n\010_taggingB\013\n\t_priority\"\241\003\n" + "\013WorkRequest\022\016\n\006job_id\030\001 \001(\t\022\022\n\nrequest_" + "id\030\002 \001(\t\022\023\n\013external_id\030\003 \001(\t\022\014\n\004path\030\004 " + "\001(\t\022*\n\007segment\030\005 \001(\0132\031.flex.WorkRequest." + "Segment\022\035\n\025remote_storage_target\030\006 \001(\r\022\035" + "\n\004mock\030\n \001(\0132\r.flex.MockJobH\000\022\035\n\004sync\030\013 " + "\001(\0132\r.flex.SyncJobH\000\022#\n\007builder\030\014 \001(\0132\020." + "flex.BuilderJobH\000\022\022\n\nstub_local\030\010 \001(\010\022\025\n" + "\010priority\030\t \001(\005H\001\210\001\001\032]\n\007Segment\022\024\n\014offse" + "t_start\030\001 \001(\003\022\023\n\013offset_stop\030\002 \001(\003\022\023\n\013pa" + "rts_start\030\003 \001(\005\022\022\n\nparts_stop\030\004 \001(\005B\006\n\004T" + "ypeB\013\n\t_priority\".\n\nBuilderJob\022 \n\003cfg\030\001 " + "\001(\0132\023.flex.JobRequestCfg\"\255\001\n\007MockJob\022\031\n\021" + "num_test_segments\030\001 \001(\005\022\021\n\tfile_size\030\002 \001" + "(\003\022\023\n\013external_id\030\003 \001(\t\022\023\n\013should_fail\030\004" + " \001(\010\022(\n\013locked_info\030\006 \001(\0132\023.flex.JobLock" + "edInfo\022 \n\003cfg\030\007 \001(\0132\023.flex.JobRequestCfg" + "\"\362\002\n\007SyncJob\022*\n\toperation\030\001 \001(\0162\027.flex.S" + "yncJob.Operation\022\021\n\toverwrite\030\002 \001(\010\022\023\n\013r" + "emote_path\030\003 \001(\t\022\017\n\007flatten\030\005 \001(\010\022(\n\013loc" + "ked_info\030\006 \001(\0132\023.flex.JobLockedInfo\022\023\n\006u" + "pdate\030\007 \001(\010H\000\210\001\001\022-\n\010metadata\030\t \003(\0132\033.fle" + "x.SyncJob.MetadataEntry\022\024\n\007tagging\030\n \001(\t" + "H\001\210\001\001\032/\n\rMetadataEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005v" + "alue\030\002 \001(\t:\0028\001\"6\n\tOperation\022\017\n\013UNSPECIFI" + "ED\020\000\022\n\n\006UPLOAD\020\001\022\014\n\010DOWNLOAD\020\002B\t\n\007_updat" + "eB\n\n\010_tagging\"\354\003\n\004Work\022\014\n\004path\030\001 \001(\t\022\016\n\006" + "job_id\030\002 \001(\t\022\022\n\nrequest_id\030\003 \001(\t\022!\n\006stat" + "us\030\004 \001(\0132\021.flex.Work.Status\022\036\n\005parts\030\005 \003" + "(\0132\017.flex.Work.Part\022\023\n\013job_builder\030\006 \001(\010" + "\032:\n\006Status\022\037\n\005state\030\001 \001(\0162\020.flex.Work.St" + "ate\022\017\n\007message\030\002 \001(\t\032\206\001\n\004Part\022\023\n\013part_nu" + "mber\030\001 \001(\005\022\024\n\014offset_start\030\002 \001(\003\022\023\n\013offs" + "et_stop\030\003 \001(\003\022\022\n\nentity_tag\030\004 \001(\t\022\027\n\017che" + "cksum_sha256\030\005 \001(\t\022\021\n\tcompleted\030\006 \001(\010\"\224\001" + "\n\005State\022\017\n\013UNSPECIFIED\020\000\022\013\n\007UNKNOWN\020\001\022\013\n" + "\007CREATED\020\002\022\r\n\tSCHEDULED\020\003\022\013\n\007RUNNING\020\004\022\017" + "\n\013RESCHEDULED\020\005\022\t\n\005ERROR\020\006\022\n\n\006FAILED\020\007\022\r" + "\n\tCANCELLED\020\010\022\r\n\tCOMPLETED\020\t\"g\n\023UpdateCo" + "nfigRequest\022\'\n\nbee_remote\030\001 \001(\0132\023.flex.B" + "eeRemoteNode\022\'\n\004rsts\030\002 \003(\0132\031.flex.Remote" + "StorageTarget\"\234\001\n\024UpdateConfigResponse\0221" + "\n\006result\030\001 \001(\0162!.flex.UpdateConfigRespon" + "se.Result\022\017\n\007message\030\002 \001(\t\"@\n\006Result\022\017\n\013" + "UNSPECIFIED\020\000\022\013\n\007SUCCESS\020\001\022\013\n\007PARTIAL\020\002\022" + "\013\n\007FAILURE\020\003\"\342\001\n\rBeeRemoteNode\022\n\n\002id\030\001 \001" + "(\t\022\017\n\007address\030\002 \001(\t\022\025\n\rmgmtd_address\030\003 \001" + "(\t\022\026\n\016mgmtd_tls_cert\030\004 \001(\014\022&\n\036mgmtd_tls_" + "disable_verification\030\005 \001(\010\022\031\n\021mgmtd_tls_" + "disable\030\006 \001(\010\022\027\n\017mgmtd_use_proxy\030\t \001(\010\022\023" + "\n\013auth_secret\030\007 \001(\014\022\024\n\014auth_disable\030\010 \001(" + "\010\"\213\004\n\023RemoteStorageTarget\022\n\n\002id\030\001 \001(\r\022\014\n" + "\004name\030\002 \001(\t\0224\n\010policies\030\003 \001(\0132\".flex.Rem" + "oteStorageTarget.Policies\022*\n\002s3\030\004 \001(\0132\034." + "flex.RemoteStorageTarget.S3H\000\0220\n\005posix\030\005" + " \001(\0132\037.flex.RemoteStorageTarget.POSIXH\000\022" + "0\n\005azure\030\006 \001(\0132\037.flex.RemoteStorageTarge" + "t.AzureH\000\022\016\n\004mock\030\007 \001(\tH\000\032\'\n\010Policies\022\033\n" + "\023fast_start_max_size\030\001 \001(\003\032x\n\002S3\022\024\n\014endp" + "oint_url\030\001 \001(\t\022\024\n\014partition_id\030\002 \001(\t\022\016\n\006" + "region\030\003 \001(\t\022\016\n\006bucket\030\004 \001(\t\022\022\n\naccess_k" + "ey\030\005 \001(\t\022\022\n\nsecret_key\030\006 \001(\t\032B\n\005Azure\022(\n" + "\002s3\030\001 \001(\0132\034.flex.RemoteStorageTarget.S3\022" + "\017\n\007account\030\002 \001(\t\032\025\n\005POSIX\022\014\n\004path\030\001 \001(\tB" + "\006\n\004type2\340\002\n\nWorkerNode\022E\n\014UpdateConfig\022\031" + ".flex.UpdateConfigRequest\032\032.flex.UpdateC" + "onfigResponse\022<\n\tHeartbeat\022\026.flex.Heartb" + "eatRequest\032\027.flex.HeartbeatResponse\022\?\n\nS" + "ubmitWork\022\027.flex.SubmitWorkRequest\032\030.fle" + "x.SubmitWorkResponse\022\?\n\nUpdateWork\022\027.fle" + "x.UpdateWorkRequest\032\030.flex.UpdateWorkRes" + "ponse\022K\n\016BulkUpdateWork\022\033.flex.BulkUpdat" + "eWorkRequest\032\034.flex.BulkUpdateWorkRespon" + "seB\'Z%github.com/thinkparq/protobuf/go/f" + "lexb\006proto3" }; static const ::_pbi::DescriptorTable* const descriptor_table_flex_2eproto_deps[1] = { @@ -1500,7 +1508,7 @@ static ::absl::once_flag descriptor_table_flex_2eproto_once; PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_flex_2eproto = { false, false, - 4282, + 4371, descriptor_table_protodef_flex_2eproto, "flex.proto", &descriptor_table_flex_2eproto_once, @@ -1580,9 +1588,9 @@ const ::google::protobuf::EnumDescriptor* Work_State_descriptor() { return file_level_enum_descriptors_flex_2eproto[3]; } PROTOBUF_CONSTINIT const uint32_t Work_State_internal_data_[] = { - 327680u, 32u, 30u, }; + 655360u, 0u, }; bool Work_State_IsValid(int value) { - return 0 <= value && value <= 9 && ((991u >> value) & 1) != 0; + return 0 <= value && value <= 9; } #if (__cplusplus < 201703) && \ (!defined(_MSC_VER) || (_MSC_VER >= 1900 && _MSC_VER < 1912)) @@ -1592,6 +1600,7 @@ constexpr Work_State Work::UNKNOWN; constexpr Work_State Work::CREATED; constexpr Work_State Work::SCHEDULED; constexpr Work_State Work::RUNNING; +constexpr Work_State Work::RESCHEDULED; constexpr Work_State Work::ERROR; constexpr Work_State Work::FAILED; constexpr Work_State Work::CANCELLED; @@ -4561,9 +4570,9 @@ JobRequestCfg::JobRequestCfg( offsetof(Impl_, remotestoragetarget_), reinterpret_cast(&from._impl_) + offsetof(Impl_, remotestoragetarget_), - offsetof(Impl_, update_) - + offsetof(Impl_, priority_) - offsetof(Impl_, remotestoragetarget_) + - sizeof(Impl_::update_)); + sizeof(Impl_::priority_)); // @@protoc_insertion_point(copy_constructor:flex.JobRequestCfg) } @@ -4581,9 +4590,9 @@ inline void JobRequestCfg::SharedCtor(::_pb::Arena* arena) { ::memset(reinterpret_cast(&_impl_) + offsetof(Impl_, locked_info_), 0, - offsetof(Impl_, update_) - + offsetof(Impl_, priority_) - offsetof(Impl_, locked_info_) + - sizeof(Impl_::update_)); + sizeof(Impl_::priority_)); } JobRequestCfg::~JobRequestCfg() { // @@protoc_insertion_point(destructor:flex.JobRequestCfg) @@ -4652,15 +4661,15 @@ const ::google::protobuf::internal::ClassData* JobRequestCfg::GetClassData() con return _class_data_.base(); } PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 -const ::_pbi::TcParseTable<4, 12, 2, 64, 2> JobRequestCfg::_table_ = { +const ::_pbi::TcParseTable<4, 13, 2, 64, 2> JobRequestCfg::_table_ = { { PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_._has_bits_), 0, // no _extensions_ 14, 120, // max_field_number, fast_idx_mask offsetof(decltype(_table_), field_lookup_table), - 4294953984, // skipmap + 4294952960, // skipmap offsetof(decltype(_table_), field_entries), - 12, // num_field_entries + 13, // num_field_entries 2, // num_aux_entries offsetof(decltype(_table_), aux_entries), _class_data_.base(), @@ -4701,7 +4710,9 @@ const ::_pbi::TcParseTable<4, 12, 2, 64, 2> JobRequestCfg::_table_ = { // optional bool update = 10; {::_pbi::TcParser::SingularVarintNoZag1(), {80, 2, 0, PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.update_)}}, - {::_pbi::TcParser::MiniParse, {}}, + // optional int32 priority = 11; + {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(JobRequestCfg, _impl_.priority_), 3>(), + {88, 3, 0, PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.priority_)}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, // optional string tagging = 14; @@ -4741,6 +4752,9 @@ const ::_pbi::TcParseTable<4, 12, 2, 64, 2> JobRequestCfg::_table_ = { // optional bool update = 10; {PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.update_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)}, + // optional int32 priority = 11; + {PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.priority_), _Internal::kHasBitsOffset + 3, 0, + (0 | ::_fl::kFcOptional | ::_fl::kInt32)}, // map metadata = 13; {PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.metadata_), -1, 1, (0 | ::_fl::kFcRepeated | ::_fl::kMap)}, @@ -4754,7 +4768,7 @@ const ::_pbi::TcParseTable<4, 12, 2, 64, 2> JobRequestCfg::_table_ = { 1, 0, 0, 9, 9)}, }}, {{ - "\22\0\4\12\0\0\0\0\0\0\0\10\7\0\0\0" + "\22\0\4\12\0\0\0\0\0\0\0\0\10\7\0\0" "flex.JobRequestCfg" "path" "remotePath" @@ -4786,7 +4800,11 @@ PROTOBUF_NOINLINE void JobRequestCfg::Clear() { ::memset(&_impl_.remotestoragetarget_, 0, static_cast<::size_t>( reinterpret_cast(&_impl_.force_) - reinterpret_cast(&_impl_.remotestoragetarget_)) + sizeof(_impl_.force_)); - _impl_.update_ = false; + if (cached_has_bits & 0x0000000cu) { + ::memset(&_impl_.update_, 0, static_cast<::size_t>( + reinterpret_cast(&_impl_.priority_) - + reinterpret_cast(&_impl_.update_)) + sizeof(_impl_.priority_)); + } _impl_._has_bits_.Clear(); _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); } @@ -4879,6 +4897,13 @@ PROTOBUF_NOINLINE void JobRequestCfg::Clear() { 10, this_._internal_update(), target); } + // optional int32 priority = 11; + if (cached_has_bits & 0x00000008u) { + target = ::google::protobuf::internal::WireFormatLite:: + WriteInt32ToArrayWithField<11>( + stream, this_._internal_priority(), target); + } + // map metadata = 13; if (!this_._internal_metadata().empty()) { using MapType = ::google::protobuf::Map; @@ -5008,11 +5033,16 @@ PROTOBUF_NOINLINE void JobRequestCfg::Clear() { total_size += 2; } } - { + if (cached_has_bits & 0x0000000cu) { // optional bool update = 10; if (cached_has_bits & 0x00000004u) { total_size += 2; } + // optional int32 priority = 11; + if (cached_has_bits & 0x00000008u) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( + this_._internal_priority()); + } } return this_.MaybeComputeUnknownFieldsSize(total_size, &this_._impl_._cached_size_); @@ -5067,8 +5097,13 @@ void JobRequestCfg::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::g if (from._internal_force() != 0) { _this->_impl_.force_ = from._impl_.force_; } - if (cached_has_bits & 0x00000004u) { - _this->_impl_.update_ = from._impl_.update_; + if (cached_has_bits & 0x0000000cu) { + if (cached_has_bits & 0x00000004u) { + _this->_impl_.update_ = from._impl_.update_; + } + if (cached_has_bits & 0x00000008u) { + _this->_impl_.priority_ = from._impl_.priority_; + } } _this->_impl_._has_bits_[0] |= cached_has_bits; _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_); @@ -5093,8 +5128,8 @@ void JobRequestCfg::InternalSwap(JobRequestCfg* PROTOBUF_RESTRICT other) { ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.remotepath_, &other->_impl_.remotepath_, arena); ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.tagging_, &other->_impl_.tagging_, arena); ::google::protobuf::internal::memswap< - PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.update_) - + sizeof(JobRequestCfg::_impl_.update_) + PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.priority_) + + sizeof(JobRequestCfg::_impl_.priority_) - PROTOBUF_FIELD_OFFSET(JobRequestCfg, _impl_.locked_info_)>( reinterpret_cast(&_impl_.locked_info_), reinterpret_cast(&other->_impl_.locked_info_)); @@ -5479,9 +5514,9 @@ WorkRequest::WorkRequest( offsetof(Impl_, remote_storage_target_), reinterpret_cast(&from._impl_) + offsetof(Impl_, remote_storage_target_), - offsetof(Impl_, stub_local_) - + offsetof(Impl_, priority_) - offsetof(Impl_, remote_storage_target_) + - sizeof(Impl_::stub_local_)); + sizeof(Impl_::priority_)); switch (Type_case()) { case TYPE_NOT_SET: break; @@ -5514,9 +5549,9 @@ inline void WorkRequest::SharedCtor(::_pb::Arena* arena) { ::memset(reinterpret_cast(&_impl_) + offsetof(Impl_, segment_), 0, - offsetof(Impl_, stub_local_) - + offsetof(Impl_, priority_) - offsetof(Impl_, segment_) + - sizeof(Impl_::stub_local_)); + sizeof(Impl_::priority_)); } WorkRequest::~WorkRequest() { // @@protoc_insertion_point(destructor:flex.WorkRequest) @@ -5609,15 +5644,15 @@ const ::google::protobuf::internal::ClassData* WorkRequest::GetClassData() const return _class_data_.base(); } PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 -const ::_pbi::TcParseTable<3, 10, 4, 64, 2> WorkRequest::_table_ = { +const ::_pbi::TcParseTable<4, 11, 4, 64, 2> WorkRequest::_table_ = { { PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_._has_bits_), 0, // no _extensions_ - 12, 56, // max_field_number, fast_idx_mask + 12, 120, // max_field_number, fast_idx_mask offsetof(decltype(_table_), field_lookup_table), - 4294963520, // skipmap + 4294963264, // skipmap offsetof(decltype(_table_), field_entries), - 10, // num_field_entries + 11, // num_field_entries 4, // num_aux_entries offsetof(decltype(_table_), aux_entries), _class_data_.base(), @@ -5627,9 +5662,7 @@ const ::_pbi::TcParseTable<3, 10, 4, 64, 2> WorkRequest::_table_ = { ::_pbi::TcParser::GetTable<::flex::WorkRequest>(), // to_prefetch #endif // PROTOBUF_PREFETCH_PARSE_TABLE }, {{ - // bool stub_local = 8; - {::_pbi::TcParser::SingularVarintNoZag1(), - {64, 63, 0, PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.stub_local_)}}, + {::_pbi::TcParser::MiniParse, {}}, // string job_id = 1; {::_pbi::TcParser::FastUS1, {10, 63, 0, PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.job_id_)}}, @@ -5649,6 +5682,18 @@ const ::_pbi::TcParseTable<3, 10, 4, 64, 2> WorkRequest::_table_ = { {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(WorkRequest, _impl_.remote_storage_target_), 63>(), {48, 63, 0, PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.remote_storage_target_)}}, {::_pbi::TcParser::MiniParse, {}}, + // bool stub_local = 8; + {::_pbi::TcParser::SingularVarintNoZag1(), + {64, 63, 0, PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.stub_local_)}}, + // optional int32 priority = 9; + {::_pbi::TcParser::SingularVarintNoZag1<::uint32_t, offsetof(WorkRequest, _impl_.priority_), 1>(), + {72, 1, 0, PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.priority_)}}, + {::_pbi::TcParser::MiniParse, {}}, + {::_pbi::TcParser::MiniParse, {}}, + {::_pbi::TcParser::MiniParse, {}}, + {::_pbi::TcParser::MiniParse, {}}, + {::_pbi::TcParser::MiniParse, {}}, + {::_pbi::TcParser::MiniParse, {}}, }}, {{ 65535, 65535 }}, {{ @@ -5673,6 +5718,9 @@ const ::_pbi::TcParseTable<3, 10, 4, 64, 2> WorkRequest::_table_ = { // bool stub_local = 8; {PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.stub_local_), -1, 0, (0 | ::_fl::kFcSingular | ::_fl::kBool)}, + // optional int32 priority = 9; + {PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.priority_), _Internal::kHasBitsOffset + 1, 0, + (0 | ::_fl::kFcOptional | ::_fl::kInt32)}, // .flex.MockJob mock = 10; {PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.Type_.mock_), _Internal::kOneofCaseOffset + 0, 1, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)}, @@ -5716,6 +5764,7 @@ PROTOBUF_NOINLINE void WorkRequest::Clear() { ::memset(&_impl_.remote_storage_target_, 0, static_cast<::size_t>( reinterpret_cast(&_impl_.stub_local_) - reinterpret_cast(&_impl_.remote_storage_target_)) + sizeof(_impl_.stub_local_)); + _impl_.priority_ = 0; clear_Type(); _impl_._has_bits_.Clear(); _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); @@ -5790,6 +5839,13 @@ PROTOBUF_NOINLINE void WorkRequest::Clear() { 8, this_._internal_stub_local(), target); } + // optional int32 priority = 9; + if (cached_has_bits & 0x00000002u) { + target = ::google::protobuf::internal::WireFormatLite:: + WriteInt32ToArrayWithField<9>( + stream, this_._internal_priority(), target); + } + switch (this_.Type_case()) { case kMock: { target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage( @@ -5876,6 +5932,13 @@ PROTOBUF_NOINLINE void WorkRequest::Clear() { if (this_._internal_stub_local() != 0) { total_size += 2; } + } + { + // optional int32 priority = 9; + if (cached_has_bits & 0x00000002u) { + total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( + this_._internal_priority()); + } } switch (this_.Type_case()) { // .flex.MockJob mock = 10; @@ -5941,6 +6004,9 @@ void WorkRequest::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::goo if (from._internal_stub_local() != 0) { _this->_impl_.stub_local_ = from._impl_.stub_local_; } + if (cached_has_bits & 0x00000002u) { + _this->_impl_.priority_ = from._impl_.priority_; + } _this->_impl_._has_bits_[0] |= cached_has_bits; if (const uint32_t oneof_from_case = from._impl_._oneof_case_[0]) { const uint32_t oneof_to_case = _this->_impl_._oneof_case_[0]; @@ -6006,8 +6072,8 @@ void WorkRequest::InternalSwap(WorkRequest* PROTOBUF_RESTRICT other) { ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.external_id_, &other->_impl_.external_id_, arena); ::_pbi::ArenaStringPtr::InternalSwap(&_impl_.path_, &other->_impl_.path_, arena); ::google::protobuf::internal::memswap< - PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.stub_local_) - + sizeof(WorkRequest::_impl_.stub_local_) + PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.priority_) + + sizeof(WorkRequest::_impl_.priority_) - PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.segment_)>( reinterpret_cast(&_impl_.segment_), reinterpret_cast(&other->_impl_.segment_)); diff --git a/cpp/flex.pb.h b/cpp/flex.pb.h index f3bee0b..933142d 100644 --- a/cpp/flex.pb.h +++ b/cpp/flex.pb.h @@ -257,6 +257,7 @@ enum Work_State : int { Work_State_CREATED = 2, Work_State_SCHEDULED = 3, Work_State_RUNNING = 4, + Work_State_RESCHEDULED = 5, Work_State_ERROR = 6, Work_State_FAILED = 7, Work_State_CANCELLED = 8, @@ -3326,6 +3327,7 @@ class Work final : public ::google::protobuf::Message static constexpr State CREATED = Work_State_CREATED; static constexpr State SCHEDULED = Work_State_SCHEDULED; static constexpr State RUNNING = Work_State_RUNNING; + static constexpr State RESCHEDULED = Work_State_RESCHEDULED; static constexpr State ERROR = Work_State_ERROR; static constexpr State FAILED = Work_State_FAILED; static constexpr State CANCELLED = Work_State_CANCELLED; @@ -5431,6 +5433,7 @@ class JobRequestCfg final : public ::google::protobuf::Message kFlattenFieldNumber = 7, kForceFieldNumber = 8, kUpdateFieldNumber = 10, + kPriorityFieldNumber = 11, }; // map metadata = 13; int metadata_size() const; @@ -5581,13 +5584,24 @@ class JobRequestCfg final : public ::google::protobuf::Message bool _internal_update() const; void _internal_set_update(bool value); + public: + // optional int32 priority = 11; + bool has_priority() const; + void clear_priority() ; + ::int32_t priority() const; + void set_priority(::int32_t value); + + private: + ::int32_t _internal_priority() const; + void _internal_set_priority(::int32_t value); + public: // @@protoc_insertion_point(class_scope:flex.JobRequestCfg) private: class _Internal; friend class ::google::protobuf::internal::TcParser; static const ::google::protobuf::internal::TcParseTable< - 4, 12, 2, + 4, 13, 2, 64, 2> _table_; @@ -5622,6 +5636,7 @@ class JobRequestCfg final : public ::google::protobuf::Message bool flatten_; bool force_; bool update_; + ::int32_t priority_; PROTOBUF_TSAN_DECLARE_MEMBER }; union { Impl_ _impl_; }; @@ -6675,6 +6690,7 @@ class WorkRequest final : public ::google::protobuf::Message kSegmentFieldNumber = 5, kRemoteStorageTargetFieldNumber = 6, kStubLocalFieldNumber = 8, + kPriorityFieldNumber = 9, kMockFieldNumber = 10, kSyncFieldNumber = 11, kBuilderFieldNumber = 12, @@ -6777,6 +6793,17 @@ class WorkRequest final : public ::google::protobuf::Message bool _internal_stub_local() const; void _internal_set_stub_local(bool value); + public: + // optional int32 priority = 9; + bool has_priority() const; + void clear_priority() ; + ::int32_t priority() const; + void set_priority(::int32_t value); + + private: + ::int32_t _internal_priority() const; + void _internal_set_priority(::int32_t value); + public: // .flex.MockJob mock = 10; bool has_mock() const; @@ -6847,7 +6874,7 @@ class WorkRequest final : public ::google::protobuf::Message inline void clear_has_Type(); friend class ::google::protobuf::internal::TcParser; static const ::google::protobuf::internal::TcParseTable< - 3, 10, 4, + 4, 11, 4, 64, 2> _table_; @@ -6874,6 +6901,7 @@ class WorkRequest final : public ::google::protobuf::Message ::flex::WorkRequest_Segment* segment_; ::uint32_t remote_storage_target_; bool stub_local_; + ::int32_t priority_; union TypeUnion { constexpr TypeUnion() : _constinit_{} {} ::google::protobuf::internal::ConstantInitialized _constinit_; @@ -8752,6 +8780,34 @@ inline void JobRequestCfg::set_allocated_tagging(std::string* value) { // @@protoc_insertion_point(field_set_allocated:flex.JobRequestCfg.tagging) } +// optional int32 priority = 11; +inline bool JobRequestCfg::has_priority() const { + bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; + return value; +} +inline void JobRequestCfg::clear_priority() { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.priority_ = 0; + _impl_._has_bits_[0] &= ~0x00000008u; +} +inline ::int32_t JobRequestCfg::priority() const { + // @@protoc_insertion_point(field_get:flex.JobRequestCfg.priority) + return _internal_priority(); +} +inline void JobRequestCfg::set_priority(::int32_t value) { + _internal_set_priority(value); + _impl_._has_bits_[0] |= 0x00000008u; + // @@protoc_insertion_point(field_set:flex.JobRequestCfg.priority) +} +inline ::int32_t JobRequestCfg::_internal_priority() const { + ::google::protobuf::internal::TSanRead(&_impl_); + return _impl_.priority_; +} +inline void JobRequestCfg::_internal_set_priority(::int32_t value) { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.priority_ = value; +} + // ------------------------------------------------------------------- // WorkRequest_Segment @@ -9417,6 +9473,34 @@ inline void WorkRequest::_internal_set_stub_local(bool value) { _impl_.stub_local_ = value; } +// optional int32 priority = 9; +inline bool WorkRequest::has_priority() const { + bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; + return value; +} +inline void WorkRequest::clear_priority() { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.priority_ = 0; + _impl_._has_bits_[0] &= ~0x00000002u; +} +inline ::int32_t WorkRequest::priority() const { + // @@protoc_insertion_point(field_get:flex.WorkRequest.priority) + return _internal_priority(); +} +inline void WorkRequest::set_priority(::int32_t value) { + _internal_set_priority(value); + _impl_._has_bits_[0] |= 0x00000002u; + // @@protoc_insertion_point(field_set:flex.WorkRequest.priority) +} +inline ::int32_t WorkRequest::_internal_priority() const { + ::google::protobuf::internal::TSanRead(&_impl_); + return _impl_.priority_; +} +inline void WorkRequest::_internal_set_priority(::int32_t value) { + ::google::protobuf::internal::TSanWrite(&_impl_); + _impl_.priority_ = value; +} + inline bool WorkRequest::has_Type() const { return Type_case() != TYPE_NOT_SET; } diff --git a/go/flex/flex.pb.go b/go/flex/flex.pb.go index 61de902..bb50846 100644 --- a/go/flex/flex.pb.go +++ b/go/flex/flex.pb.go @@ -173,10 +173,9 @@ const ( Work_SCHEDULED Work_State = 3 // When a worker node is actively running a request. Work_RUNNING Work_State = 4 - // A user manually requested the job be paused. - // TODO: https://github.com/ThinkParQ/bee-remote/issues/16 - // PAUSED = 5; - // + // Remote storage target is busy or resource is temporarily unavailable so the request has + // been rescheduled. For example, if a restore object is needed before a get object request. + Work_RESCHEDULED Work_State = 5 // ERROR indicates one or more transient/ephemeral error(s) occurred carrying out the // request, but the worker node is still retrying the request. Once the allowed number of // retries or retry timeout is exceed, the work request will fail. @@ -206,6 +205,7 @@ var ( 2: "CREATED", 3: "SCHEDULED", 4: "RUNNING", + 5: "RESCHEDULED", 6: "ERROR", 7: "FAILED", 8: "CANCELLED", @@ -217,6 +217,7 @@ var ( "CREATED": 2, "SCHEDULED": 3, "RUNNING": 4, + "RESCHEDULED": 5, "ERROR": 6, "FAILED": 7, "CANCELLED": 8, @@ -1176,6 +1177,7 @@ type JobRequestCfg struct { Update *bool `protobuf:"varint,10,opt,name=update,proto3,oneof" json:"update,omitempty"` Metadata map[string]string `protobuf:"bytes,13,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` Tagging *string `protobuf:"bytes,14,opt,name=tagging,proto3,oneof" json:"tagging,omitempty"` + Priority *int32 `protobuf:"varint,11,opt,name=priority,proto3,oneof" json:"priority,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1289,6 +1291,13 @@ func (x *JobRequestCfg) GetTagging() string { return "" } +func (x *JobRequestCfg) GetPriority() int32 { + if x != nil && x.Priority != nil { + return *x.Priority + } + return 0 +} + func (x *JobRequestCfg) SetRemoteStorageTarget(v uint32) { x.RemoteStorageTarget = v } @@ -1337,6 +1346,10 @@ func (x *JobRequestCfg) SetTagging(v string) { x.Tagging = &v } +func (x *JobRequestCfg) SetPriority(v int32) { + x.Priority = &v +} + func (x *JobRequestCfg) HasLockedInfo() bool { if x == nil { return false @@ -1358,6 +1371,13 @@ func (x *JobRequestCfg) HasTagging() bool { return x.Tagging != nil } +func (x *JobRequestCfg) HasPriority() bool { + if x == nil { + return false + } + return x.Priority != nil +} + func (x *JobRequestCfg) ClearLockedInfo() { x.LockedInfo = nil } @@ -1370,6 +1390,10 @@ func (x *JobRequestCfg) ClearTagging() { x.Tagging = nil } +func (x *JobRequestCfg) ClearPriority() { + x.Priority = nil +} + type JobRequestCfg_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. @@ -1385,6 +1409,7 @@ type JobRequestCfg_builder struct { Update *bool Metadata map[string]string Tagging *string + Priority *int32 } func (b0 JobRequestCfg_builder) Build() *JobRequestCfg { @@ -1403,6 +1428,7 @@ func (b0 JobRequestCfg_builder) Build() *JobRequestCfg { x.Update = b.Update x.Metadata = b.Metadata x.Tagging = b.Tagging + x.Priority = b.Priority return m0 } @@ -1424,7 +1450,8 @@ type WorkRequest struct { // *WorkRequest_Builder Type isWorkRequest_Type `protobuf_oneof:"Type"` // When stub_local is set the local file with be a stub file - StubLocal bool `protobuf:"varint,8,opt,name=stub_local,json=stubLocal,proto3" json:"stub_local,omitempty"` + StubLocal bool `protobuf:"varint,8,opt,name=stub_local,json=stubLocal,proto3" json:"stub_local,omitempty"` + Priority *int32 `protobuf:"varint,9,opt,name=priority,proto3,oneof" json:"priority,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1537,6 +1564,13 @@ func (x *WorkRequest) GetStubLocal() bool { return false } +func (x *WorkRequest) GetPriority() int32 { + if x != nil && x.Priority != nil { + return *x.Priority + } + return 0 +} + func (x *WorkRequest) SetJobId(v string) { x.JobId = v } @@ -1589,6 +1623,10 @@ func (x *WorkRequest) SetStubLocal(v bool) { x.StubLocal = v } +func (x *WorkRequest) SetPriority(v int32) { + x.Priority = &v +} + func (x *WorkRequest) HasSegment() bool { if x == nil { return false @@ -1627,6 +1665,13 @@ func (x *WorkRequest) HasBuilder() bool { return ok } +func (x *WorkRequest) HasPriority() bool { + if x == nil { + return false + } + return x.Priority != nil +} + func (x *WorkRequest) ClearSegment() { x.Segment = nil } @@ -1653,6 +1698,10 @@ func (x *WorkRequest) ClearBuilder() { } } +func (x *WorkRequest) ClearPriority() { + x.Priority = nil +} + const WorkRequest_Type_not_set_case case_WorkRequest_Type = 0 const WorkRequest_Mock_case case_WorkRequest_Type = 10 const WorkRequest_Sync_case case_WorkRequest_Type = 11 @@ -1692,6 +1741,7 @@ type WorkRequest_builder struct { // -- end of Type // When stub_local is set the local file with be a stub file StubLocal bool + Priority *int32 } func (b0 WorkRequest_builder) Build() *WorkRequest { @@ -1714,6 +1764,7 @@ func (b0 WorkRequest_builder) Build() *WorkRequest { x.Type = &WorkRequest_Builder{b.Builder} } x.StubLocal = b.StubLocal + x.Priority = b.Priority return m0 } @@ -3791,7 +3842,7 @@ var file_flex_proto_rawDesc = []byte{ 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x75, 0x62, 0x55, 0x72, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x49, 0x64, 0x22, 0x83, 0x04, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x6c, 0x49, 0x64, 0x22, 0xb1, 0x04, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, @@ -3818,240 +3869,247 @@ var file_flex_proto_rawDesc = []byte{ 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x74, 0x61, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 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, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x22, 0x90, 0x04, 0x0a, 0x0b, 0x57, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, - 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, - 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, - 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, - 0x65, 0x78, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, - 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x48, - 0x00, 0x52, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x2c, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, - 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, - 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x07, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x62, 0x5f, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x74, 0x75, 0x62, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x1a, 0x8d, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 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, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xbe, 0x04, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x12, 0x33, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x6d, + 0x6f, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, + 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, 0x63, 0x6b, + 0x12, 0x23, 0x0a, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, + 0x04, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x2c, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x75, + 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x62, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x74, 0x75, 0x62, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x88, 0x01, 0x01, 0x1a, 0x8d, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x6f, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, + 0x74, 0x6f, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, 0x74, + 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x73, 0x53, + 0x74, 0x6f, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x33, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, + 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x12, 0x25, 0x0a, 0x03, 0x63, 0x66, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x52, 0x03, 0x63, 0x66, 0x67, 0x22, 0xf1, 0x01, + 0x0a, 0x07, 0x4d, 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x75, 0x6d, + 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x66, 0x61, + 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, + 0x46, 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, + 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, + 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x03, 0x63, 0x66, + 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x52, 0x03, 0x63, 0x66, + 0x67, 0x22, 0xd0, 0x03, 0x0a, 0x07, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x12, 0x35, 0x0a, + 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x34, 0x0a, + 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, + 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, + 0x62, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x61, 0x67, + 0x67, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x74, 0x61, + 0x67, 0x67, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 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, 0x36, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x61, 0x67, + 0x67, 0x69, 0x6e, 0x67, 0x22, 0xfa, 0x04, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x25, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, 0x50, 0x61, + 0x72, 0x74, 0x52, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, + 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x6a, 0x6f, 0x62, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x1a, 0x4a, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0xd1, 0x01, 0x0a, 0x04, 0x50, 0x61, 0x72, 0x74, 0x12, + 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, - 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, - 0x74, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x73, - 0x53, 0x74, 0x6f, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x0a, - 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x12, 0x25, 0x0a, 0x03, 0x63, 0x66, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, - 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x52, 0x03, 0x63, 0x66, - 0x67, 0x22, 0xf1, 0x01, 0x0a, 0x07, 0x4d, 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x0a, - 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x54, 0x65, 0x73, - 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x75, 0x6c, - 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x68, - 0x6f, 0x75, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, - 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, - 0x0a, 0x03, 0x63, 0x66, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, - 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, - 0x52, 0x03, 0x63, 0x66, 0x67, 0x22, 0xd0, 0x03, 0x0a, 0x07, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, - 0x62, 0x12, 0x35, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, - 0x4a, 0x6f, 0x62, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, - 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, - 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, - 0x6e, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, - 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6c, 0x6f, 0x63, - 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, - 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, - 0x07, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x07, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x36, 0x0a, 0x09, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x50, 0x4c, 0x4f, 0x41, - 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, - 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xe9, 0x04, 0x0a, 0x04, 0x57, 0x6f, 0x72, - 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x6c, - 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x52, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x12, 0x1f, 0x0a, - 0x0b, 0x6a, 0x6f, 0x62, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x1a, 0x4a, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, - 0x6f, 0x72, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0xd1, 0x01, 0x0a, 0x04, 0x50, - 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x54, 0x61, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, - 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x83, - 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, - 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, - 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, - 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, - 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, - 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, - 0x45, 0x44, 0x10, 0x09, 0x22, 0x78, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0a, 0x62, - 0x65, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x62, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, - 0x2d, 0x0a, 0x04, 0x72, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x04, 0x72, 0x73, 0x74, 0x73, 0x22, 0xad, - 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, 0x06, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, - 0x53, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x10, - 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x22, 0xe1, - 0x02, 0x0a, 0x0d, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x67, - 0x6d, 0x74, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x24, 0x0a, 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, - 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, - 0x6c, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x6d, - 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x67, - 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x44, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, - 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x55, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1f, - 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, - 0x21, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x22, 0x9d, 0x05, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, - 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x69, 0x65, 0x73, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2e, - 0x0a, 0x02, 0x73, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x65, + 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, + 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x54, 0x61, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, + 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, + 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0b, + 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x52, + 0x45, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, + 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, + 0x44, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, + 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, + 0x09, 0x22, 0x78, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0a, 0x62, 0x65, 0x65, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, + 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x52, 0x09, 0x62, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x04, + 0x72, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x53, 0x33, 0x48, 0x00, 0x52, 0x02, 0x73, 0x33, 0x12, 0x37, - 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x04, 0x72, 0x73, 0x74, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x14, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, 0x06, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, + 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x0b, + 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x22, 0xe1, 0x02, 0x0a, 0x0d, + 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x64, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, + 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x43, 0x65, + 0x72, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x6d, 0x67, 0x6d, 0x74, + 0x64, 0x54, 0x6c, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x67, 0x6d, 0x74, 0x64, + 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x75, 0x73, 0x65, + 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6d, 0x67, + 0x6d, 0x74, 0x64, 0x55, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x61, + 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x61, 0x75, 0x74, 0x68, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x22, + 0x9d, 0x05, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x48, 0x00, - 0x52, 0x05, 0x70, 0x6f, 0x73, 0x69, 0x78, 0x12, 0x37, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x12, 0x14, 0x0a, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x1a, 0x39, 0x0a, 0x08, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x10, 0x66, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, - 0x65, 0x1a, 0xb8, 0x01, 0x0a, 0x02, 0x53, 0x33, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x4f, 0x0a, 0x05, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x53, 0x33, 0x52, - 0x02, 0x73, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x1b, 0x0a, - 0x05, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x32, 0xe0, 0x02, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x6f, 0x64, - 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x66, - 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, - 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x16, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, 0x61, - 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, - 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x42, 0x75, 0x6c, 0x6b, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1b, 0x2e, 0x66, 0x6c, 0x65, - 0x78, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, - 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x70, 0x61, 0x72, 0x71, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x65, 0x78, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x02, 0x73, + 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x2e, 0x53, 0x33, 0x48, 0x00, 0x52, 0x02, 0x73, 0x33, 0x12, 0x37, 0x0a, 0x05, 0x70, + 0x6f, 0x73, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x65, + 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x48, 0x00, 0x52, 0x05, 0x70, + 0x6f, 0x73, 0x69, 0x78, 0x12, 0x37, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x41, + 0x7a, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, + 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6d, + 0x6f, 0x63, 0x6b, 0x1a, 0x39, 0x0a, 0x08, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, + 0x2d, 0x0a, 0x13, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x66, 0x61, + 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0xb8, + 0x01, 0x0a, 0x02, 0x53, 0x33, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x4f, 0x0a, 0x05, 0x41, 0x7a, 0x75, + 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x53, 0x33, 0x52, 0x02, 0x73, 0x33, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x1b, 0x0a, 0x05, 0x50, 0x4f, + 0x53, 0x49, 0x58, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x32, + 0xe0, 0x02, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x45, + 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x19, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x66, 0x6c, 0x65, 0x78, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, + 0x61, 0x74, 0x12, 0x16, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, + 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x66, 0x6c, 0x65, + 0x78, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, + 0x6b, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, + 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x66, 0x6c, 0x65, + 0x78, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x66, 0x6c, + 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1b, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, + 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x75, 0x6c, 0x6b, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x70, 0x61, 0x72, 0x71, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x65, 0x78, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var file_flex_proto_enumTypes = make([]protoimpl.EnumInfo, 5) diff --git a/go/flex/flex_protoopaque.pb.go b/go/flex/flex_protoopaque.pb.go index 75b8c50..60a0776 100644 --- a/go/flex/flex_protoopaque.pb.go +++ b/go/flex/flex_protoopaque.pb.go @@ -173,10 +173,9 @@ const ( Work_SCHEDULED Work_State = 3 // When a worker node is actively running a request. Work_RUNNING Work_State = 4 - // A user manually requested the job be paused. - // TODO: https://github.com/ThinkParQ/bee-remote/issues/16 - // PAUSED = 5; - // + // Remote storage target is busy or resource is temporarily unavailable so the request has + // been rescheduled. For example, if a restore object is needed before a get object request. + Work_RESCHEDULED Work_State = 5 // ERROR indicates one or more transient/ephemeral error(s) occurred carrying out the // request, but the worker node is still retrying the request. Once the allowed number of // retries or retry timeout is exceed, the work request will fail. @@ -206,6 +205,7 @@ var ( 2: "CREATED", 3: "SCHEDULED", 4: "RUNNING", + 5: "RESCHEDULED", 6: "ERROR", 7: "FAILED", 8: "CANCELLED", @@ -217,6 +217,7 @@ var ( "CREATED": 2, "SCHEDULED": 3, "RUNNING": 4, + "RESCHEDULED": 5, "ERROR": 6, "FAILED": 7, "CANCELLED": 8, @@ -1168,6 +1169,7 @@ type JobRequestCfg struct { xxx_hidden_Update bool `protobuf:"varint,10,opt,name=update,proto3,oneof" json:"update,omitempty"` xxx_hidden_Metadata map[string]string `protobuf:"bytes,13,rep,name=metadata,proto3" json:"metadata,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` xxx_hidden_Tagging *string `protobuf:"bytes,14,opt,name=tagging,proto3,oneof" json:"tagging,omitempty"` + xxx_hidden_Priority int32 `protobuf:"varint,11,opt,name=priority,proto3,oneof" json:"priority,omitempty"` XXX_raceDetectHookData protoimpl.RaceDetectHookData XXX_presence [1]uint32 unknownFields protoimpl.UnknownFields @@ -1286,6 +1288,13 @@ func (x *JobRequestCfg) GetTagging() string { return "" } +func (x *JobRequestCfg) GetPriority() int32 { + if x != nil { + return x.xxx_hidden_Priority + } + return 0 +} + func (x *JobRequestCfg) SetRemoteStorageTarget(v uint32) { x.xxx_hidden_RemoteStorageTarget = v } @@ -1324,7 +1333,7 @@ func (x *JobRequestCfg) SetLockedInfo(v *JobLockedInfo) { func (x *JobRequestCfg) SetUpdate(v bool) { x.xxx_hidden_Update = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 9, 12) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 9, 13) } func (x *JobRequestCfg) SetMetadata(v map[string]string) { @@ -1333,7 +1342,12 @@ func (x *JobRequestCfg) SetMetadata(v map[string]string) { func (x *JobRequestCfg) SetTagging(v string) { x.xxx_hidden_Tagging = &v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 11, 12) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 11, 13) +} + +func (x *JobRequestCfg) SetPriority(v int32) { + x.xxx_hidden_Priority = v + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 12, 13) } func (x *JobRequestCfg) HasLockedInfo() bool { @@ -1357,6 +1371,13 @@ func (x *JobRequestCfg) HasTagging() bool { return protoimpl.X.Present(&(x.XXX_presence[0]), 11) } +func (x *JobRequestCfg) HasPriority() bool { + if x == nil { + return false + } + return protoimpl.X.Present(&(x.XXX_presence[0]), 12) +} + func (x *JobRequestCfg) ClearLockedInfo() { x.xxx_hidden_LockedInfo = nil } @@ -1371,6 +1392,11 @@ func (x *JobRequestCfg) ClearTagging() { x.xxx_hidden_Tagging = nil } +func (x *JobRequestCfg) ClearPriority() { + protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 12) + x.xxx_hidden_Priority = 0 +} + type JobRequestCfg_builder struct { _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. @@ -1386,6 +1412,7 @@ type JobRequestCfg_builder struct { Update *bool Metadata map[string]string Tagging *string + Priority *int32 } func (b0 JobRequestCfg_builder) Build() *JobRequestCfg { @@ -1402,14 +1429,18 @@ func (b0 JobRequestCfg_builder) Build() *JobRequestCfg { x.xxx_hidden_Force = b.Force x.xxx_hidden_LockedInfo = b.LockedInfo if b.Update != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 9, 12) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 9, 13) x.xxx_hidden_Update = *b.Update } x.xxx_hidden_Metadata = b.Metadata if b.Tagging != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 11, 12) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 11, 13) x.xxx_hidden_Tagging = b.Tagging } + if b.Priority != nil { + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 12, 13) + x.xxx_hidden_Priority = *b.Priority + } return m0 } @@ -1424,6 +1455,9 @@ type WorkRequest struct { xxx_hidden_RemoteStorageTarget uint32 `protobuf:"varint,6,opt,name=remote_storage_target,json=remoteStorageTarget,proto3" json:"remote_storage_target,omitempty"` xxx_hidden_Type isWorkRequest_Type `protobuf_oneof:"Type"` xxx_hidden_StubLocal bool `protobuf:"varint,8,opt,name=stub_local,json=stubLocal,proto3" json:"stub_local,omitempty"` + xxx_hidden_Priority int32 `protobuf:"varint,9,opt,name=priority,proto3,oneof" json:"priority,omitempty"` + XXX_raceDetectHookData protoimpl.RaceDetectHookData + XXX_presence [1]uint32 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } @@ -1529,6 +1563,13 @@ func (x *WorkRequest) GetStubLocal() bool { return false } +func (x *WorkRequest) GetPriority() int32 { + if x != nil { + return x.xxx_hidden_Priority + } + return 0 +} + func (x *WorkRequest) SetJobId(v string) { x.xxx_hidden_JobId = v } @@ -1581,6 +1622,11 @@ func (x *WorkRequest) SetStubLocal(v bool) { x.xxx_hidden_StubLocal = v } +func (x *WorkRequest) SetPriority(v int32) { + x.xxx_hidden_Priority = v + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 8, 9) +} + func (x *WorkRequest) HasSegment() bool { if x == nil { return false @@ -1619,6 +1665,13 @@ func (x *WorkRequest) HasBuilder() bool { return ok } +func (x *WorkRequest) HasPriority() bool { + if x == nil { + return false + } + return protoimpl.X.Present(&(x.XXX_presence[0]), 8) +} + func (x *WorkRequest) ClearSegment() { x.xxx_hidden_Segment = nil } @@ -1645,6 +1698,11 @@ func (x *WorkRequest) ClearBuilder() { } } +func (x *WorkRequest) ClearPriority() { + protoimpl.X.ClearPresent(&(x.XXX_presence[0]), 8) + x.xxx_hidden_Priority = 0 +} + const WorkRequest_Type_not_set_case case_WorkRequest_Type = 0 const WorkRequest_Mock_case case_WorkRequest_Type = 10 const WorkRequest_Sync_case case_WorkRequest_Type = 11 @@ -1684,6 +1742,7 @@ type WorkRequest_builder struct { // -- end of xxx_hidden_Type // When stub_local is set the local file with be a stub file StubLocal bool + Priority *int32 } func (b0 WorkRequest_builder) Build() *WorkRequest { @@ -1706,6 +1765,10 @@ func (b0 WorkRequest_builder) Build() *WorkRequest { x.xxx_hidden_Type = &workRequest_Builder{b.Builder} } x.xxx_hidden_StubLocal = b.StubLocal + if b.Priority != nil { + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 8, 9) + x.xxx_hidden_Priority = *b.Priority + } return m0 } @@ -3734,7 +3797,7 @@ var file_flex_proto_rawDesc = []byte{ 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x75, 0x62, 0x55, 0x72, 0x6c, 0x50, 0x61, 0x74, 0x68, 0x12, 0x1e, 0x0a, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, - 0x6c, 0x49, 0x64, 0x22, 0x83, 0x04, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x6c, 0x49, 0x64, 0x22, 0xb1, 0x04, 0x0a, 0x0d, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x12, 0x30, 0x0a, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, @@ -3761,240 +3824,247 @@ var file_flex_proto_rawDesc = []byte{ 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x74, 0x61, 0x67, 0x67, 0x69, - 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, - 0x61, 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, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, - 0x08, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x22, 0x90, 0x04, 0x0a, 0x0b, 0x57, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, - 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, - 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, - 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, - 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x12, 0x33, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, - 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, - 0x52, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, - 0x65, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, - 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, - 0x65, 0x78, 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, - 0x63, 0x6b, 0x12, 0x23, 0x0a, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x48, - 0x00, 0x52, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x2c, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, - 0x65, 0x72, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, - 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x07, 0x62, 0x75, - 0x69, 0x6c, 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x62, 0x5f, 0x6c, 0x6f, - 0x63, 0x61, 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x74, 0x75, 0x62, 0x4c, - 0x6f, 0x63, 0x61, 0x6c, 0x1a, 0x8d, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, + 0x6e, 0x67, 0x88, 0x01, 0x01, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, + 0x79, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x48, 0x02, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, + 0x69, 0x74, 0x79, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, + 0x74, 0x61, 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, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0a, + 0x0a, 0x08, 0x5f, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x70, + 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0xbe, 0x04, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1d, + 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x1f, 0x0a, + 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x12, + 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, + 0x74, 0x68, 0x12, 0x33, 0x0a, 0x07, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x07, + 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x32, 0x0a, 0x15, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x13, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, + 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x23, 0x0a, 0x04, 0x6d, + 0x6f, 0x63, 0x6b, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, + 0x2e, 0x4d, 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x04, 0x6d, 0x6f, 0x63, 0x6b, + 0x12, 0x23, 0x0a, 0x04, 0x73, 0x79, 0x6e, 0x63, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, + 0x04, 0x73, 0x79, 0x6e, 0x63, 0x12, 0x2c, 0x0a, 0x07, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, + 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x75, + 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x48, 0x00, 0x52, 0x07, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x65, 0x72, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x74, 0x75, 0x62, 0x5f, 0x6c, 0x6f, 0x63, 0x61, + 0x6c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x73, 0x74, 0x75, 0x62, 0x4c, 0x6f, 0x63, + 0x61, 0x6c, 0x12, 0x1f, 0x0a, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x48, 0x01, 0x52, 0x08, 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, + 0x88, 0x01, 0x01, 0x1a, 0x8d, 0x01, 0x0a, 0x07, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, + 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x6f, + 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, + 0x74, 0x6f, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, 0x74, 0x61, + 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, 0x53, + 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, 0x74, + 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x73, 0x53, + 0x74, 0x6f, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x42, 0x0b, 0x0a, 0x09, 0x5f, + 0x70, 0x72, 0x69, 0x6f, 0x72, 0x69, 0x74, 0x79, 0x22, 0x33, 0x0a, 0x0a, 0x42, 0x75, 0x69, 0x6c, + 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x12, 0x25, 0x0a, 0x03, 0x63, 0x66, 0x67, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x52, 0x03, 0x63, 0x66, 0x67, 0x22, 0xf1, 0x01, + 0x0a, 0x07, 0x4d, 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x0a, 0x11, 0x6e, 0x75, 0x6d, + 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x54, 0x65, 0x73, 0x74, 0x53, 0x65, 0x67, + 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, 0x65, 0x5f, 0x73, 0x69, + 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, 0x6c, 0x65, 0x53, 0x69, + 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, + 0x6c, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, 0x5f, 0x66, 0x61, + 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x75, 0x6c, 0x64, + 0x46, 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, + 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, + 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, 0x0a, 0x03, 0x63, 0x66, + 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, + 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x52, 0x03, 0x63, 0x66, + 0x67, 0x22, 0xd0, 0x03, 0x0a, 0x07, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x12, 0x35, 0x0a, + 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, 0x74, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, 0x72, 0x77, 0x72, 0x69, + 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x50, + 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, 0x6e, 0x12, 0x34, 0x0a, + 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, + 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x07, 0x20, + 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, + 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x18, 0x09, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, + 0x62, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, 0x07, 0x74, 0x61, 0x67, + 0x67, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x07, 0x74, 0x61, + 0x67, 0x67, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, 0x4d, 0x65, 0x74, 0x61, + 0x64, 0x61, 0x74, 0x61, 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, 0x36, 0x0a, 0x09, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x50, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x01, 0x12, + 0x0c, 0x0a, 0x08, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, 0x02, 0x42, 0x09, 0x0a, + 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, 0x5f, 0x74, 0x61, 0x67, + 0x67, 0x69, 0x6e, 0x67, 0x22, 0xfa, 0x04, 0x0a, 0x04, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x12, 0x0a, + 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, + 0x6f, 0x72, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x12, 0x25, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, 0x50, 0x61, + 0x72, 0x74, 0x52, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x6a, 0x6f, 0x62, + 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, + 0x6a, 0x6f, 0x62, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x1a, 0x4a, 0x0a, 0x06, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0xd1, 0x01, 0x0a, 0x04, 0x50, 0x61, 0x72, 0x74, 0x12, + 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, 0x74, - 0x6f, 0x70, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, - 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, 0x74, - 0x61, 0x72, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, - 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x73, 0x5f, 0x73, - 0x74, 0x6f, 0x70, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x70, 0x61, 0x72, 0x74, 0x73, - 0x53, 0x74, 0x6f, 0x70, 0x42, 0x06, 0x0a, 0x04, 0x54, 0x79, 0x70, 0x65, 0x22, 0x33, 0x0a, 0x0a, - 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x4a, 0x6f, 0x62, 0x12, 0x25, 0x0a, 0x03, 0x63, 0x66, - 0x67, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, - 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, 0x52, 0x03, 0x63, 0x66, - 0x67, 0x22, 0xf1, 0x01, 0x0a, 0x07, 0x4d, 0x6f, 0x63, 0x6b, 0x4a, 0x6f, 0x62, 0x12, 0x2a, 0x0a, - 0x11, 0x6e, 0x75, 0x6d, 0x5f, 0x74, 0x65, 0x73, 0x74, 0x5f, 0x73, 0x65, 0x67, 0x6d, 0x65, 0x6e, - 0x74, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x6e, 0x75, 0x6d, 0x54, 0x65, 0x73, - 0x74, 0x53, 0x65, 0x67, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x1b, 0x0a, 0x09, 0x66, 0x69, 0x6c, - 0x65, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x66, 0x69, - 0x6c, 0x65, 0x53, 0x69, 0x7a, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, - 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, - 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x73, 0x68, 0x6f, 0x75, 0x6c, - 0x64, 0x5f, 0x66, 0x61, 0x69, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0a, 0x73, 0x68, - 0x6f, 0x75, 0x6c, 0x64, 0x46, 0x61, 0x69, 0x6c, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, - 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x0a, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x25, - 0x0a, 0x03, 0x63, 0x66, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, - 0x65, 0x78, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x43, 0x66, 0x67, - 0x52, 0x03, 0x63, 0x66, 0x67, 0x22, 0xd0, 0x03, 0x0a, 0x07, 0x53, 0x79, 0x6e, 0x63, 0x4a, 0x6f, - 0x62, 0x12, 0x35, 0x0a, 0x09, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0e, 0x32, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, 0x6e, 0x63, - 0x4a, 0x6f, 0x62, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x09, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x6f, 0x76, 0x65, 0x72, - 0x77, 0x72, 0x69, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x6f, 0x76, 0x65, - 0x72, 0x77, 0x72, 0x69, 0x74, 0x65, 0x12, 0x1f, 0x0a, 0x0b, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x6d, - 0x6f, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, - 0x65, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x66, 0x6c, 0x61, 0x74, 0x74, 0x65, - 0x6e, 0x12, 0x34, 0x0a, 0x0b, 0x6c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x4a, 0x6f, - 0x62, 0x4c, 0x6f, 0x63, 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6c, 0x6f, 0x63, - 0x6b, 0x65, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x08, 0x48, 0x00, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x88, 0x01, 0x01, 0x12, 0x37, 0x0a, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x79, - 0x6e, 0x63, 0x4a, 0x6f, 0x62, 0x2e, 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x08, 0x6d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 0x12, 0x1d, 0x0a, - 0x07, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, - 0x52, 0x07, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x88, 0x01, 0x01, 0x1a, 0x3b, 0x0a, 0x0d, - 0x4d, 0x65, 0x74, 0x61, 0x64, 0x61, 0x74, 0x61, 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, 0x36, 0x0a, 0x09, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0a, 0x0a, 0x06, 0x55, 0x50, 0x4c, 0x4f, 0x41, - 0x44, 0x10, 0x01, 0x12, 0x0c, 0x0a, 0x08, 0x44, 0x4f, 0x57, 0x4e, 0x4c, 0x4f, 0x41, 0x44, 0x10, - 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x0a, 0x0a, 0x08, - 0x5f, 0x74, 0x61, 0x67, 0x67, 0x69, 0x6e, 0x67, 0x22, 0xe9, 0x04, 0x0a, 0x04, 0x57, 0x6f, 0x72, - 0x6b, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x1d, 0x0a, 0x0a, - 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x49, 0x64, 0x12, 0x29, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x6c, - 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, - 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x25, 0x0a, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, - 0x6b, 0x2e, 0x50, 0x61, 0x72, 0x74, 0x52, 0x05, 0x70, 0x61, 0x72, 0x74, 0x73, 0x12, 0x1f, 0x0a, - 0x0b, 0x6a, 0x6f, 0x62, 0x5f, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x08, 0x52, 0x0a, 0x6a, 0x6f, 0x62, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x65, 0x72, 0x1a, 0x4a, - 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x26, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x10, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, - 0x6f, 0x72, 0x6b, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x1a, 0xd1, 0x01, 0x0a, 0x04, 0x50, - 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x5f, 0x6e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x72, 0x74, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, 0x5f, 0x73, - 0x74, 0x61, 0x72, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x6f, 0x66, 0x66, 0x73, - 0x65, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x6f, 0x66, 0x66, 0x73, 0x65, - 0x74, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x66, - 0x66, 0x73, 0x65, 0x74, 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, - 0x74, 0x79, 0x5f, 0x74, 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, - 0x74, 0x69, 0x74, 0x79, 0x54, 0x61, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, - 0x73, 0x75, 0x6d, 0x5f, 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, - 0x12, 0x1c, 0x0a, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x83, - 0x01, 0x0a, 0x05, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, - 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, - 0x4e, 0x4f, 0x57, 0x4e, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, - 0x44, 0x10, 0x02, 0x12, 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, - 0x10, 0x03, 0x12, 0x0b, 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, - 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, - 0x49, 0x4c, 0x45, 0x44, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, - 0x4c, 0x45, 0x44, 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, - 0x45, 0x44, 0x10, 0x09, 0x22, 0x78, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0a, 0x62, - 0x65, 0x65, 0x5f, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x13, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x4e, 0x6f, 0x64, 0x65, 0x52, 0x09, 0x62, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, - 0x2d, 0x0a, 0x04, 0x72, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x04, 0x72, 0x73, 0x74, 0x73, 0x22, 0xad, - 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, 0x06, - 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, - 0x49, 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, - 0x53, 0x53, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x10, - 0x02, 0x12, 0x0b, 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x22, 0xe1, - 0x02, 0x0a, 0x0d, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, - 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x67, - 0x6d, 0x74, 0x64, 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, - 0x24, 0x0a, 0x0e, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, - 0x74, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, - 0x73, 0x43, 0x65, 0x72, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, - 0x6c, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x6d, - 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, - 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x67, - 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x44, - 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, - 0x75, 0x73, 0x65, 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x55, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1f, - 0x0a, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x07, 0x20, - 0x01, 0x28, 0x0c, 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, - 0x21, 0x0a, 0x0c, 0x61, 0x75, 0x74, 0x68, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x22, 0x9d, 0x05, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, - 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, - 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, - 0x0a, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, - 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, - 0x63, 0x69, 0x65, 0x73, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2e, - 0x0a, 0x02, 0x73, 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x65, + 0x6f, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x6f, 0x66, 0x66, 0x73, 0x65, 0x74, + 0x53, 0x74, 0x6f, 0x70, 0x12, 0x1d, 0x0a, 0x0a, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, 0x5f, 0x74, + 0x61, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x65, 0x6e, 0x74, 0x69, 0x74, 0x79, + 0x54, 0x61, 0x67, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x5f, + 0x73, 0x68, 0x61, 0x32, 0x35, 0x36, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x73, 0x75, 0x6d, 0x53, 0x68, 0x61, 0x32, 0x35, 0x36, 0x12, 0x1c, 0x0a, 0x09, + 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, + 0x09, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x22, 0x94, 0x01, 0x0a, 0x05, 0x53, + 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, + 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x55, 0x4e, 0x4b, 0x4e, 0x4f, 0x57, 0x4e, + 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x43, 0x52, 0x45, 0x41, 0x54, 0x45, 0x44, 0x10, 0x02, 0x12, + 0x0d, 0x0a, 0x09, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x03, 0x12, 0x0b, + 0x0a, 0x07, 0x52, 0x55, 0x4e, 0x4e, 0x49, 0x4e, 0x47, 0x10, 0x04, 0x12, 0x0f, 0x0a, 0x0b, 0x52, + 0x45, 0x53, 0x43, 0x48, 0x45, 0x44, 0x55, 0x4c, 0x45, 0x44, 0x10, 0x05, 0x12, 0x09, 0x0a, 0x05, + 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x06, 0x12, 0x0a, 0x0a, 0x06, 0x46, 0x41, 0x49, 0x4c, 0x45, + 0x44, 0x10, 0x07, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, + 0x10, 0x08, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, + 0x09, 0x22, 0x78, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x32, 0x0a, 0x0a, 0x62, 0x65, 0x65, 0x5f, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x13, 0x2e, 0x66, + 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, + 0x65, 0x52, 0x09, 0x62, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x2d, 0x0a, 0x04, + 0x72, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, - 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x53, 0x33, 0x48, 0x00, 0x52, 0x02, 0x73, 0x33, 0x12, 0x37, - 0x0a, 0x05, 0x70, 0x6f, 0x73, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x52, 0x04, 0x72, 0x73, 0x74, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x14, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0e, 0x32, 0x21, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x2e, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x40, 0x0a, 0x06, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, + 0x45, 0x44, 0x10, 0x00, 0x12, 0x0b, 0x0a, 0x07, 0x53, 0x55, 0x43, 0x43, 0x45, 0x53, 0x53, 0x10, + 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x50, 0x41, 0x52, 0x54, 0x49, 0x41, 0x4c, 0x10, 0x02, 0x12, 0x0b, + 0x0a, 0x07, 0x46, 0x41, 0x49, 0x4c, 0x55, 0x52, 0x45, 0x10, 0x03, 0x22, 0xe1, 0x02, 0x0a, 0x0d, + 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x6d, 0x67, 0x6d, 0x74, 0x64, + 0x5f, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, + 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x41, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x24, 0x0a, 0x0e, + 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x63, 0x65, 0x72, 0x74, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x0c, 0x52, 0x0c, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x43, 0x65, + 0x72, 0x74, 0x12, 0x43, 0x0a, 0x1e, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x74, 0x6c, 0x73, 0x5f, + 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x1b, 0x6d, 0x67, 0x6d, 0x74, + 0x64, 0x54, 0x6c, 0x73, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x56, 0x65, 0x72, 0x69, 0x66, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x2a, 0x0a, 0x11, 0x6d, 0x67, 0x6d, 0x74, 0x64, + 0x5f, 0x74, 0x6c, 0x73, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x54, 0x6c, 0x73, 0x44, 0x69, 0x73, 0x61, + 0x62, 0x6c, 0x65, 0x12, 0x26, 0x0a, 0x0f, 0x6d, 0x67, 0x6d, 0x74, 0x64, 0x5f, 0x75, 0x73, 0x65, + 0x5f, 0x70, 0x72, 0x6f, 0x78, 0x79, 0x18, 0x09, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x6d, 0x67, + 0x6d, 0x74, 0x64, 0x55, 0x73, 0x65, 0x50, 0x72, 0x6f, 0x78, 0x79, 0x12, 0x1f, 0x0a, 0x0b, 0x61, + 0x75, 0x74, 0x68, 0x5f, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0c, + 0x52, 0x0a, 0x61, 0x75, 0x74, 0x68, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x12, 0x21, 0x0a, 0x0c, + 0x61, 0x75, 0x74, 0x68, 0x5f, 0x64, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x68, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x22, + 0x9d, 0x05, 0x0a, 0x13, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x02, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x3e, 0x0a, 0x08, 0x70, + 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x48, 0x00, - 0x52, 0x05, 0x70, 0x6f, 0x73, 0x69, 0x78, 0x12, 0x37, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, - 0x74, 0x2e, 0x41, 0x7a, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, - 0x12, 0x14, 0x0a, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, - 0x52, 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x1a, 0x39, 0x0a, 0x08, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, - 0x65, 0x73, 0x12, 0x2d, 0x0a, 0x13, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, - 0x5f, 0x6d, 0x61, 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x10, 0x66, 0x61, 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, - 0x65, 0x1a, 0xb8, 0x01, 0x0a, 0x02, 0x53, 0x33, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x70, - 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x70, - 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, - 0x0a, 0x06, 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x72, 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1d, - 0x0a, 0x0a, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, - 0x0a, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x4f, 0x0a, 0x05, - 0x41, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, - 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x53, 0x33, 0x52, - 0x02, 0x73, 0x33, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x1b, 0x0a, - 0x05, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, - 0x70, 0x65, 0x32, 0xe0, 0x02, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x6f, 0x64, - 0x65, 0x12, 0x45, 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x19, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, - 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x66, - 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, - 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x16, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, 0x61, - 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, - 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, 0x6d, - 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, - 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x42, 0x75, 0x6c, 0x6b, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1b, 0x2e, 0x66, 0x6c, 0x65, - 0x78, 0x2e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, - 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, - 0x63, 0x6f, 0x6d, 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x70, 0x61, 0x72, 0x71, 0x2f, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x65, 0x78, 0x62, 0x06, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, + 0x73, 0x52, 0x08, 0x70, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, 0x2e, 0x0a, 0x02, 0x73, + 0x33, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, + 0x65, 0x74, 0x2e, 0x53, 0x33, 0x48, 0x00, 0x52, 0x02, 0x73, 0x33, 0x12, 0x37, 0x0a, 0x05, 0x70, + 0x6f, 0x73, 0x69, 0x78, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x65, + 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, + 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x50, 0x4f, 0x53, 0x49, 0x58, 0x48, 0x00, 0x52, 0x05, 0x70, + 0x6f, 0x73, 0x69, 0x78, 0x12, 0x37, 0x0a, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x18, 0x06, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x41, + 0x7a, 0x75, 0x72, 0x65, 0x48, 0x00, 0x52, 0x05, 0x61, 0x7a, 0x75, 0x72, 0x65, 0x12, 0x14, 0x0a, + 0x04, 0x6d, 0x6f, 0x63, 0x6b, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x04, 0x6d, + 0x6f, 0x63, 0x6b, 0x1a, 0x39, 0x0a, 0x08, 0x50, 0x6f, 0x6c, 0x69, 0x63, 0x69, 0x65, 0x73, 0x12, + 0x2d, 0x0a, 0x13, 0x66, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x61, + 0x78, 0x5f, 0x73, 0x69, 0x7a, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x66, 0x61, + 0x73, 0x74, 0x53, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x61, 0x78, 0x53, 0x69, 0x7a, 0x65, 0x1a, 0xb8, + 0x01, 0x0a, 0x02, 0x53, 0x33, 0x12, 0x21, 0x0a, 0x0c, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, + 0x74, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x65, 0x6e, 0x64, + 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x55, 0x72, 0x6c, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x72, 0x74, + 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x70, 0x61, 0x72, 0x74, 0x69, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x67, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x67, + 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x62, 0x75, 0x63, 0x6b, 0x65, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x61, + 0x63, 0x63, 0x65, 0x73, 0x73, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x61, 0x63, 0x63, 0x65, 0x73, 0x73, 0x4b, 0x65, 0x79, 0x12, 0x1d, 0x0a, 0x0a, 0x73, 0x65, + 0x63, 0x72, 0x65, 0x74, 0x5f, 0x6b, 0x65, 0x79, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x73, 0x65, 0x63, 0x72, 0x65, 0x74, 0x4b, 0x65, 0x79, 0x1a, 0x4f, 0x0a, 0x05, 0x41, 0x7a, 0x75, + 0x72, 0x65, 0x12, 0x2c, 0x0a, 0x02, 0x73, 0x33, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x53, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x2e, 0x53, 0x33, 0x52, 0x02, 0x73, 0x33, + 0x12, 0x18, 0x0a, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x1a, 0x1b, 0x0a, 0x05, 0x50, 0x4f, + 0x53, 0x49, 0x58, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x32, + 0xe0, 0x02, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x45, + 0x0a, 0x0c, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x19, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, + 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x66, 0x6c, 0x65, 0x78, + 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3c, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, + 0x61, 0x74, 0x12, 0x16, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, + 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x17, 0x2e, 0x66, 0x6c, 0x65, + 0x78, 0x2e, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, + 0x6b, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, + 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x66, 0x6c, 0x65, + 0x78, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x3f, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x12, 0x17, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x18, 0x2e, 0x66, 0x6c, + 0x65, 0x78, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4b, 0x0a, 0x0e, 0x42, 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1b, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, + 0x75, 0x6c, 0x6b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x75, 0x6c, 0x6b, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x42, 0x27, 0x5a, 0x25, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, + 0x2f, 0x74, 0x68, 0x69, 0x6e, 0x6b, 0x70, 0x61, 0x72, 0x71, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x67, 0x6f, 0x2f, 0x66, 0x6c, 0x65, 0x78, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var file_flex_proto_enumTypes = make([]protoimpl.EnumInfo, 5) diff --git a/proto/flex.proto b/proto/flex.proto index 1c64d53..eb08063 100644 --- a/proto/flex.proto +++ b/proto/flex.proto @@ -119,6 +119,7 @@ message JobRequestCfg { optional bool update = 10; map metadata = 13; optional string tagging = 14; + optional int32 priority = 11; } // BeeRemote assigns work for a job to one or more worker nodes. @@ -150,6 +151,7 @@ message WorkRequest { } // When stub_local is set the local file with be a stub file bool stub_local = 8; + optional int32 priority = 9; } // JobBuilderJob is a special type of job that creates job requests of any time. @@ -233,10 +235,9 @@ message Work { SCHEDULED = 3; // When a worker node is actively running a request. RUNNING = 4; - // A user manually requested the job be paused. - // TODO: https://github.com/ThinkParQ/bee-remote/issues/16 - // PAUSED = 5; - // + // Remote storage target is busy or resource is temporarily unavailable so the request has + // been rescheduled. For example, if a restore object is needed before a get object request. + RESCHEDULED = 5; // ERROR indicates one or more transient/ephemeral error(s) occurred carrying out the // request, but the worker node is still retrying the request. Once the allowed number of // retries or retry timeout is exceed, the work request will fail. @@ -255,7 +256,10 @@ message Work { // If the work request completed successfully. Once work reaches this state and a response // is sent to BeeRemote, the worker node should no longer have a record or be acting on this // request. - COMPLETED = 9; + COMPLETED = 9; + // A user manually requested the job be paused. + // TODO: https://github.com/ThinkParQ/bee-remote/issues/16 + // PAUSED = 10; } // Each work request is split into one or more parts so data can be diff --git a/rust/flex.rs b/rust/flex.rs index a9f960d..9ddccae 100644 --- a/rust/flex.rs +++ b/rust/flex.rs @@ -209,6 +209,8 @@ pub struct JobRequestCfg { >, #[prost(string, optional, tag = "14")] pub tagging: ::core::option::Option<::prost::alloc::string::String>, + #[prost(int32, optional, tag = "11")] + pub priority: ::core::option::Option, } /// BeeRemote assigns work for a job to one or more worker nodes. #[derive(Clone, PartialEq, ::prost::Message)] @@ -230,6 +232,8 @@ pub struct WorkRequest { /// When stub_local is set the local file with be a stub file #[prost(bool, tag = "8")] pub stub_local: bool, + #[prost(int32, optional, tag = "9")] + pub priority: ::core::option::Option, #[prost(oneof = "work_request::Type", tags = "10, 11, 12")] pub r#type: ::core::option::Option, } @@ -452,10 +456,9 @@ pub mod work { Scheduled = 3, /// When a worker node is actively running a request. Running = 4, - /// A user manually requested the job be paused. - /// TODO: - /// PAUSED = 5; - /// + /// Remote storage target is busy or resource is temporarily unavailable so the request has + /// been rescheduled. For example, if a restore object is needed before a get object request. + Rescheduled = 5, /// ERROR indicates one or more transient/ephemeral error(s) occurred carrying out the /// request, but the worker node is still retrying the request. Once the allowed number of /// retries or retry timeout is exceed, the work request will fail. @@ -474,6 +477,10 @@ pub mod work { /// If the work request completed successfully. Once work reaches this state and a response /// is sent to BeeRemote, the worker node should no longer have a record or be acting on this /// request. + /// + /// A user manually requested the job be paused. + /// TODO: + /// PAUSED = 10; Completed = 9, } impl State { @@ -488,6 +495,7 @@ pub mod work { Self::Created => "CREATED", Self::Scheduled => "SCHEDULED", Self::Running => "RUNNING", + Self::Rescheduled => "RESCHEDULED", Self::Error => "ERROR", Self::Failed => "FAILED", Self::Cancelled => "CANCELLED", @@ -502,6 +510,7 @@ pub mod work { "CREATED" => Some(Self::Created), "SCHEDULED" => Some(Self::Scheduled), "RUNNING" => Some(Self::Running), + "RESCHEDULED" => Some(Self::Rescheduled), "ERROR" => Some(Self::Error), "FAILED" => Some(Self::Failed), "CANCELLED" => Some(Self::Cancelled),