diff --git a/cpp/beeremote.pb.cc b/cpp/beeremote.pb.cc index 4e05298..777f311 100644 --- a/cpp/beeremote.pb.cc +++ b/cpp/beeremote.pb.cc @@ -378,6 +378,7 @@ inline constexpr JobRequest::Impl_::Impl_( &::google::protobuf::internal::fixed_address_empty_string, ::_pbi::ConstantInitialized()), generation_status_{nullptr}, + delay_execution_{nullptr}, priority_{0}, remote_storage_target_{0u}, force_{false}, @@ -686,6 +687,7 @@ const ::uint32_t PROTOBUF_FIELD_OFFSET(::beeremote::JobRequest, _impl_.stub_local_), PROTOBUF_FIELD_OFFSET(::beeremote::JobRequest, _impl_.generation_status_), PROTOBUF_FIELD_OFFSET(::beeremote::JobRequest, _impl_.update_), + PROTOBUF_FIELD_OFFSET(::beeremote::JobRequest, _impl_.delay_execution_), PROTOBUF_FIELD_OFFSET(::beeremote::JobRequest, _impl_.type_), ~0u, ~0u, @@ -697,6 +699,7 @@ const ::uint32_t ~0u, ~0u, 0, + 2, 1, PROTOBUF_FIELD_OFFSET(::beeremote::Job_Status, _impl_._has_bits_), PROTOBUF_FIELD_OFFSET(::beeremote::Job_Status, _internal_metadata_), @@ -925,25 +928,25 @@ static const ::_pbi::MigrationSchema {0, 9, -1, sizeof(::beeremote::SubmitJobRequest)}, {10, 20, -1, sizeof(::beeremote::SubmitJobResponse)}, {22, -1, -1, sizeof(::beeremote::JobRequest_GenerationStatus)}, - {32, 52, -1, sizeof(::beeremote::JobRequest)}, - {63, 74, -1, sizeof(::beeremote::Job_Status)}, - {77, 92, -1, sizeof(::beeremote::Job)}, - {99, 110, -1, sizeof(::beeremote::JobResult_WorkResult)}, - {113, 124, -1, sizeof(::beeremote::JobResult)}, - {127, 137, -1, sizeof(::beeremote::UpdatePathsRequest)}, - {139, 149, -1, sizeof(::beeremote::UpdatePathsResponse)}, - {151, 161, -1, sizeof(::beeremote::UpdateJobsRequest_RemoteTargetsEntry_DoNotUse)}, - {163, 176, -1, sizeof(::beeremote::UpdateJobsRequest)}, - {181, -1, -1, sizeof(::beeremote::UpdateJobsResponse)}, - {192, -1, -1, sizeof(::beeremote::GetJobsRequest_QueryIdAndPath)}, - {202, -1, -1, sizeof(::beeremote::GetJobsRequest)}, - {217, -1, -1, sizeof(::beeremote::GetJobsResponse)}, - {227, 236, -1, sizeof(::beeremote::UpdateWorkRequest)}, - {237, -1, -1, sizeof(::beeremote::UpdateWorkResponse)}, - {245, -1, -1, sizeof(::beeremote::GetRSTConfigRequest)}, - {253, -1, -1, sizeof(::beeremote::GetRSTConfigResponse)}, - {262, -1, -1, sizeof(::beeremote::GetStubContentsRequest)}, - {271, 281, -1, sizeof(::beeremote::GetStubContentsResponse)}, + {32, 53, -1, sizeof(::beeremote::JobRequest)}, + {65, 76, -1, sizeof(::beeremote::Job_Status)}, + {79, 94, -1, sizeof(::beeremote::Job)}, + {101, 112, -1, sizeof(::beeremote::JobResult_WorkResult)}, + {115, 126, -1, sizeof(::beeremote::JobResult)}, + {129, 139, -1, sizeof(::beeremote::UpdatePathsRequest)}, + {141, 151, -1, sizeof(::beeremote::UpdatePathsResponse)}, + {153, 163, -1, sizeof(::beeremote::UpdateJobsRequest_RemoteTargetsEntry_DoNotUse)}, + {165, 178, -1, sizeof(::beeremote::UpdateJobsRequest)}, + {183, -1, -1, sizeof(::beeremote::UpdateJobsResponse)}, + {194, -1, -1, sizeof(::beeremote::GetJobsRequest_QueryIdAndPath)}, + {204, -1, -1, sizeof(::beeremote::GetJobsRequest)}, + {219, -1, -1, sizeof(::beeremote::GetJobsResponse)}, + {229, 238, -1, sizeof(::beeremote::UpdateWorkRequest)}, + {239, -1, -1, sizeof(::beeremote::UpdateWorkResponse)}, + {247, -1, -1, sizeof(::beeremote::GetRSTConfigRequest)}, + {255, -1, -1, sizeof(::beeremote::GetRSTConfigResponse)}, + {264, -1, -1, sizeof(::beeremote::GetStubContentsRequest)}, + {273, 283, -1, sizeof(::beeremote::GetStubContentsResponse)}, }; static const ::_pb::Message* const file_default_instances[] = { &::beeremote::_SubmitJobRequest_default_instance_._instance, @@ -972,113 +975,117 @@ static const ::_pb::Message* const file_default_instances[] = { const char descriptor_table_protodef_beeremote_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE( protodesc_cold) = { "\n\017beeremote.proto\022\tbeeremote\032\nflex.proto" - "\032\037google/protobuf/timestamp.proto\":\n\020Sub" - "mitJobRequest\022&\n\007request\030\001 \001(\0132\025.beeremo" - "te.JobRequest\"\210\002\n\021SubmitJobResponse\022$\n\006r" - "esult\030\001 \001(\0132\024.beeremote.JobResult\022;\n\006sta" - "tus\030\002 \001(\0162+.beeremote.SubmitJobResponse." - "ResponseStatus\"\217\001\n\016ResponseStatus\022\013\n\007INV" - "ALID\020\000\022\013\n\007CREATED\020\001\022\014\n\010EXISTING\020\002\022\017\n\013NOT" - "_ALLOWED\020\003\022\024\n\020ALREADY_COMPLETE\020\004\022\025\n\021ALRE" - "ADY_OFFLOADED\020\005\022\027\n\023FAILED_PRECONDITION\020\006" - "\"\230\004\n\nJobRequest\022\014\n\004path\030\001 \001(\t\022\014\n\004name\030\002 " - "\001(\t\022\020\n\010priority\030\003 \001(\005\022\035\n\025remote_storage_" - "target\030\004 \001(\r\022\035\n\004sync\030\n \001(\0132\r.flex.SyncJo" - "bH\000\022\035\n\004mock\030\013 \001(\0132\r.flex.MockJobH\000\022#\n\007bu" - "ilder\030\014 \001(\0132\020.flex.BuilderJobH\000\022\r\n\005force" - "\030\005 \001(\010\022\022\n\nstub_local\030\007 \001(\010\022A\n\021generation" - "_status\030\010 \001(\0132&.beeremote.JobRequest.Gen" - "erationStatus\022\023\n\006update\030\t \001(\010H\001\210\001\001\032\313\001\n\020G" - "enerationStatus\022;\n\005state\030\001 \001(\0162,.beeremo" - "te.JobRequest.GenerationStatus.State\022\017\n\007" - "message\030\002 \001(\t\"i\n\005State\022\017\n\013UNSPECIFIED\020\000\022" - "\024\n\020ALREADY_COMPLETE\020\001\022\025\n\021ALREADY_OFFLOAD" - "ED\020\002\022\027\n\023FAILED_PRECONDITION\020\003\022\t\n\005ERROR\020\004" - "B\006\n\004typeB\t\n\007_update\"\261\004\n\003Job\022\n\n\002id\030\001 \001(\t\022" - "&\n\007request\030\002 \001(\0132\025.beeremote.JobRequest\022" - "+\n\007created\030\003 \001(\0132\032.google.protobuf.Times" - "tamp\022%\n\006status\030\004 \001(\0132\025.beeremote.Job.Sta" - "tus\022\023\n\013external_id\030\005 \001(\t\0224\n\013start_mtime\030" - "\006 \001(\0132\032.google.protobuf.TimestampH\000\210\001\001\0223" - "\n\nstop_mtime\030\007 \001(\0132\032.google.protobuf.Tim" - "estampH\001\210\001\001\032k\n\006Status\022#\n\005state\030\001 \001(\0162\024.b" - "eeremote.Job.State\022\017\n\007message\030\002 \001(\t\022+\n\007u" - "pdated\030\003 \001(\0132\032.google.protobuf.Timestamp" - "\"\225\001\n\005State\022\017\n\013UNSPECIFIED\020\000\022\013\n\007UNKNOWN\020\001" - "\022\016\n\nUNASSIGNED\020\002\022\r\n\tSCHEDULED\020\003\022\013\n\007RUNNI" - "NG\020\004\022\t\n\005ERROR\020\006\022\n\n\006FAILED\020\007\022\r\n\tCANCELLED" - "\020\010\022\r\n\tCOMPLETED\020\t\022\r\n\tOFFLOADED\020\nB\016\n\014_sta" - "rt_mtimeB\r\n\013_stop_mtime\"\337\001\n\tJobResult\022\033\n" - "\003job\030\001 \001(\0132\016.beeremote.Job\022(\n\rwork_reque" - "sts\030\002 \003(\0132\021.flex.WorkRequest\0225\n\014work_res" - "ults\030\003 \003(\0132\037.beeremote.JobResult.WorkRes" - "ult\032T\n\nWorkResult\022\030\n\004work\030\001 \001(\0132\n.flex.W" - "ork\022\025\n\rassigned_node\030\002 \001(\t\022\025\n\rassigned_p" - "ool\030\003 \001(\t\"a\n\022UpdatePathsRequest\022\023\n\013path_" - "prefix\030\001 \001(\t\0226\n\020requested_update\030\002 \001(\0132\034" - ".beeremote.UpdateJobsRequest\"Y\n\023UpdatePa" - "thsResponse\022\014\n\004path\030\001 \001(\t\0224\n\rupdate_resu" - "lt\030\002 \001(\0132\035.beeremote.UpdateJobsResponse\"" - "\311\002\n\021UpdateJobsRequest\022\014\n\004path\030\001 \001(\t\022\023\n\006j" - "ob_id\030\002 \001(\tH\000\210\001\001\022G\n\016remote_targets\030\003 \003(\013" - "2/.beeremote.UpdateJobsRequest.RemoteTar" - "getsEntry\0228\n\tnew_state\030\n \001(\0162%.beeremote" - ".UpdateJobsRequest.NewState\022\024\n\014force_upd" - "ate\030\004 \001(\010\0324\n\022RemoteTargetsEntry\022\013\n\003key\030\001" - " \001(\r\022\r\n\005value\030\002 \001(\010:\0028\001\"7\n\010NewState\022\017\n\013U" - "NSPECIFIED\020\000\022\r\n\tCANCELLED\020\001\022\013\n\007DELETED\020\002" - "B\t\n\007_job_id\"X\n\022UpdateJobsResponse\022\n\n\002ok\030" - "\001 \001(\010\022\017\n\007message\030\002 \001(\t\022%\n\007results\030\003 \003(\0132" - "\024.beeremote.JobResult\"\236\002\n\016GetJobsRequest" - "\022F\n\022by_job_id_and_path\030\001 \001(\0132(.beeremote" - ".GetJobsRequest.QueryIdAndPathH\000\022\027\n\rby_e" - "xact_path\030\002 \001(\tH\000\022\030\n\016by_path_prefix\030\003 \001(" - "\tH\000\022\035\n\025include_work_requests\030\004 \001(\010\022\034\n\024in" - "clude_work_results\030\005 \001(\010\022\033\n\023update_work_" - "results\030\006 \001(\010\032.\n\016QueryIdAndPath\022\016\n\006job_i" - "d\030\001 \001(\t\022\014\n\004path\030\002 \001(\tB\007\n\005query\"F\n\017GetJob" - "sResponse\022\014\n\004path\030\001 \001(\t\022%\n\007results\030\002 \003(\013" - "2\024.beeremote.JobResult\"-\n\021UpdateWorkRequ" - "est\022\030\n\004work\030\001 \001(\0132\n.flex.Work\"\024\n\022UpdateW" - "orkResponse\"\025\n\023GetRSTConfigRequest\"\?\n\024Ge" - "tRSTConfigResponse\022\'\n\004rsts\030\001 \003(\0132\031.flex." - "RemoteStorageTarget\"&\n\026GetStubContentsRe" - "quest\022\014\n\004path\030\001 \001(\t\"S\n\027GetStubContentsRe" - "sponse\022\023\n\006rst_id\030\001 \001(\rH\000\210\001\001\022\020\n\003url\030\002 \001(\t" - "H\001\210\001\001B\t\n\007_rst_idB\006\n\004_url2\370\004\n\tBeeRemote\022F" - "\n\tSubmitJob\022\033.beeremote.SubmitJobRequest" - "\032\034.beeremote.SubmitJobResponse\022N\n\013Update" - "Paths\022\035.beeremote.UpdatePathsRequest\032\036.b" - "eeremote.UpdatePathsResponse0\001\022I\n\nUpdate" - "Jobs\022\034.beeremote.UpdateJobsRequest\032\035.bee" - "remote.UpdateJobsResponse\022B\n\007GetJobs\022\031.b" - "eeremote.GetJobsRequest\032\032.beeremote.GetJ" - "obsResponse0\001\022I\n\nUpdateWork\022\034.beeremote." - "UpdateWorkRequest\032\035.beeremote.UpdateWork" - "Response\022O\n\014GetRSTConfig\022\036.beeremote.Get" - "RSTConfigRequest\032\037.beeremote.GetRSTConfi" - "gResponse\022X\n\017GetStubContents\022!.beeremote" - ".GetStubContentsRequest\032\".beeremote.GetS" - "tubContentsResponse\022N\n\017GetCapabilities\022\034" - ".flex.GetCapabilitiesRequest\032\035.flex.GetC" - "apabilitiesResponseB,Z*github.com/thinkp" - "arq/protobuf/go/beeremoteb\006proto3" + "\032\036google/protobuf/duration.proto\032\037google" + "/protobuf/timestamp.proto\":\n\020SubmitJobRe" + "quest\022&\n\007request\030\001 \001(\0132\025.beeremote.JobRe" + "quest\"\210\002\n\021SubmitJobResponse\022$\n\006result\030\001 " + "\001(\0132\024.beeremote.JobResult\022;\n\006status\030\002 \001(" + "\0162+.beeremote.SubmitJobResponse.Response" + "Status\"\217\001\n\016ResponseStatus\022\013\n\007INVALID\020\000\022\013" + "\n\007CREATED\020\001\022\014\n\010EXISTING\020\002\022\017\n\013NOT_ALLOWED" + "\020\003\022\024\n\020ALREADY_COMPLETE\020\004\022\025\n\021ALREADY_OFFL" + "OADED\020\005\022\027\n\023FAILED_PRECONDITION\020\006\"\345\004\n\nJob" + "Request\022\014\n\004path\030\001 \001(\t\022\014\n\004name\030\002 \001(\t\022\020\n\010p" + "riority\030\003 \001(\005\022\035\n\025remote_storage_target\030\004" + " \001(\r\022\035\n\004sync\030\n \001(\0132\r.flex.SyncJobH\000\022\035\n\004m" + "ock\030\013 \001(\0132\r.flex.MockJobH\000\022#\n\007builder\030\014 " + "\001(\0132\020.flex.BuilderJobH\000\022\r\n\005force\030\005 \001(\010\022\022" + "\n\nstub_local\030\007 \001(\010\022A\n\021generation_status\030" + "\010 \001(\0132&.beeremote.JobRequest.GenerationS" + "tatus\022\023\n\006update\030\t \001(\010H\001\210\001\001\0227\n\017delay_exec" + "ution\030\r \001(\0132\031.google.protobuf.DurationH\002" + "\210\001\001\032\313\001\n\020GenerationStatus\022;\n\005state\030\001 \001(\0162" + ",.beeremote.JobRequest.GenerationStatus." + "State\022\017\n\007message\030\002 \001(\t\"i\n\005State\022\017\n\013UNSPE" + "CIFIED\020\000\022\024\n\020ALREADY_COMPLETE\020\001\022\025\n\021ALREAD" + "Y_OFFLOADED\020\002\022\027\n\023FAILED_PRECONDITION\020\003\022\t" + "\n\005ERROR\020\004B\006\n\004typeB\t\n\007_updateB\022\n\020_delay_e" + "xecution\"\261\004\n\003Job\022\n\n\002id\030\001 \001(\t\022&\n\007request\030" + "\002 \001(\0132\025.beeremote.JobRequest\022+\n\007created\030" + "\003 \001(\0132\032.google.protobuf.Timestamp\022%\n\006sta" + "tus\030\004 \001(\0132\025.beeremote.Job.Status\022\023\n\013exte" + "rnal_id\030\005 \001(\t\0224\n\013start_mtime\030\006 \001(\0132\032.goo" + "gle.protobuf.TimestampH\000\210\001\001\0223\n\nstop_mtim" + "e\030\007 \001(\0132\032.google.protobuf.TimestampH\001\210\001\001" + "\032k\n\006Status\022#\n\005state\030\001 \001(\0162\024.beeremote.Jo" + "b.State\022\017\n\007message\030\002 \001(\t\022+\n\007updated\030\003 \001(" + "\0132\032.google.protobuf.Timestamp\"\225\001\n\005State\022" + "\017\n\013UNSPECIFIED\020\000\022\013\n\007UNKNOWN\020\001\022\016\n\nUNASSIG" + "NED\020\002\022\r\n\tSCHEDULED\020\003\022\013\n\007RUNNING\020\004\022\t\n\005ERR" + "OR\020\006\022\n\n\006FAILED\020\007\022\r\n\tCANCELLED\020\010\022\r\n\tCOMPL" + "ETED\020\t\022\r\n\tOFFLOADED\020\nB\016\n\014_start_mtimeB\r\n" + "\013_stop_mtime\"\337\001\n\tJobResult\022\033\n\003job\030\001 \001(\0132" + "\016.beeremote.Job\022(\n\rwork_requests\030\002 \003(\0132\021" + ".flex.WorkRequest\0225\n\014work_results\030\003 \003(\0132" + "\037.beeremote.JobResult.WorkResult\032T\n\nWork" + "Result\022\030\n\004work\030\001 \001(\0132\n.flex.Work\022\025\n\rassi" + "gned_node\030\002 \001(\t\022\025\n\rassigned_pool\030\003 \001(\t\"a" + "\n\022UpdatePathsRequest\022\023\n\013path_prefix\030\001 \001(" + "\t\0226\n\020requested_update\030\002 \001(\0132\034.beeremote." + "UpdateJobsRequest\"Y\n\023UpdatePathsResponse" + "\022\014\n\004path\030\001 \001(\t\0224\n\rupdate_result\030\002 \001(\0132\035." + "beeremote.UpdateJobsResponse\"\311\002\n\021UpdateJ" + "obsRequest\022\014\n\004path\030\001 \001(\t\022\023\n\006job_id\030\002 \001(\t" + "H\000\210\001\001\022G\n\016remote_targets\030\003 \003(\0132/.beeremot" + "e.UpdateJobsRequest.RemoteTargetsEntry\0228" + "\n\tnew_state\030\n \001(\0162%.beeremote.UpdateJobs" + "Request.NewState\022\024\n\014force_update\030\004 \001(\010\0324" + "\n\022RemoteTargetsEntry\022\013\n\003key\030\001 \001(\r\022\r\n\005val" + "ue\030\002 \001(\010:\0028\001\"7\n\010NewState\022\017\n\013UNSPECIFIED\020" + "\000\022\r\n\tCANCELLED\020\001\022\013\n\007DELETED\020\002B\t\n\007_job_id" + "\"X\n\022UpdateJobsResponse\022\n\n\002ok\030\001 \001(\010\022\017\n\007me" + "ssage\030\002 \001(\t\022%\n\007results\030\003 \003(\0132\024.beeremote" + ".JobResult\"\236\002\n\016GetJobsRequest\022F\n\022by_job_" + "id_and_path\030\001 \001(\0132(.beeremote.GetJobsReq" + "uest.QueryIdAndPathH\000\022\027\n\rby_exact_path\030\002" + " \001(\tH\000\022\030\n\016by_path_prefix\030\003 \001(\tH\000\022\035\n\025incl" + "ude_work_requests\030\004 \001(\010\022\034\n\024include_work_" + "results\030\005 \001(\010\022\033\n\023update_work_results\030\006 \001" + "(\010\032.\n\016QueryIdAndPath\022\016\n\006job_id\030\001 \001(\t\022\014\n\004" + "path\030\002 \001(\tB\007\n\005query\"F\n\017GetJobsResponse\022\014" + "\n\004path\030\001 \001(\t\022%\n\007results\030\002 \003(\0132\024.beeremot" + "e.JobResult\"-\n\021UpdateWorkRequest\022\030\n\004work" + "\030\001 \001(\0132\n.flex.Work\"\024\n\022UpdateWorkResponse" + "\"\025\n\023GetRSTConfigRequest\"\?\n\024GetRSTConfigR" + "esponse\022\'\n\004rsts\030\001 \003(\0132\031.flex.RemoteStora" + "geTarget\"&\n\026GetStubContentsRequest\022\014\n\004pa" + "th\030\001 \001(\t\"S\n\027GetStubContentsResponse\022\023\n\006r" + "st_id\030\001 \001(\rH\000\210\001\001\022\020\n\003url\030\002 \001(\tH\001\210\001\001B\t\n\007_r" + "st_idB\006\n\004_url2\370\004\n\tBeeRemote\022F\n\tSubmitJob" + "\022\033.beeremote.SubmitJobRequest\032\034.beeremot" + "e.SubmitJobResponse\022N\n\013UpdatePaths\022\035.bee" + "remote.UpdatePathsRequest\032\036.beeremote.Up" + "datePathsResponse0\001\022I\n\nUpdateJobs\022\034.beer" + "emote.UpdateJobsRequest\032\035.beeremote.Upda" + "teJobsResponse\022B\n\007GetJobs\022\031.beeremote.Ge" + "tJobsRequest\032\032.beeremote.GetJobsResponse" + "0\001\022I\n\nUpdateWork\022\034.beeremote.UpdateWorkR" + "equest\032\035.beeremote.UpdateWorkResponse\022O\n" + "\014GetRSTConfig\022\036.beeremote.GetRSTConfigRe" + "quest\032\037.beeremote.GetRSTConfigResponse\022X" + "\n\017GetStubContents\022!.beeremote.GetStubCon" + "tentsRequest\032\".beeremote.GetStubContents" + "Response\022N\n\017GetCapabilities\022\034.flex.GetCa" + "pabilitiesRequest\032\035.flex.GetCapabilities" + "ResponseB,Z*github.com/thinkparq/protobu" + "f/go/beeremoteb\006proto3" }; -static const ::_pbi::DescriptorTable* const descriptor_table_beeremote_2eproto_deps[2] = +static const ::_pbi::DescriptorTable* const descriptor_table_beeremote_2eproto_deps[3] = { &::descriptor_table_flex_2eproto, + &::descriptor_table_google_2fprotobuf_2fduration_2eproto, &::descriptor_table_google_2fprotobuf_2ftimestamp_2eproto, }; static ::absl::once_flag descriptor_table_beeremote_2eproto_once; PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_beeremote_2eproto = { false, false, - 3673, + 3782, descriptor_table_protodef_beeremote_2eproto, "beeremote.proto", &descriptor_table_beeremote_2eproto_once, descriptor_table_beeremote_2eproto_deps, - 2, + 3, 22, schemas, file_default_instances, @@ -2061,6 +2068,11 @@ void JobRequest::clear_builder() { clear_has_type(); } } +void JobRequest::clear_delay_execution() { + ::google::protobuf::internal::TSanWrite(&_impl_); + if (_impl_.delay_execution_ != nullptr) _impl_.delay_execution_->Clear(); + _impl_._has_bits_[0] &= ~0x00000002u; +} JobRequest::JobRequest(::google::protobuf::Arena* arena) #if defined(PROTOBUF_CUSTOM_VTABLE) : ::google::protobuf::Message(arena, _class_data_.base()) { @@ -2097,6 +2109,9 @@ JobRequest::JobRequest( _impl_.generation_status_ = (cached_has_bits & 0x00000001u) ? ::google::protobuf::Message::CopyConstruct<::beeremote::JobRequest_GenerationStatus>( arena, *from._impl_.generation_status_) : nullptr; + _impl_.delay_execution_ = (cached_has_bits & 0x00000002u) ? ::google::protobuf::Message::CopyConstruct<::google::protobuf::Duration>( + arena, *from._impl_.delay_execution_) + : nullptr; ::memcpy(reinterpret_cast(&_impl_) + offsetof(Impl_, priority_), reinterpret_cast(&from._impl_) + @@ -2149,6 +2164,7 @@ inline void JobRequest::SharedDtor(MessageLite& self) { this_._impl_.path_.Destroy(); this_._impl_.name_.Destroy(); delete this_._impl_.generation_status_; + delete this_._impl_.delay_execution_; if (this_.has_type()) { this_.clear_type(); } @@ -2227,16 +2243,16 @@ const ::google::protobuf::internal::ClassData* JobRequest::GetClassData() const return _class_data_.base(); } PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 -const ::_pbi::TcParseTable<4, 11, 4, 45, 2> JobRequest::_table_ = { +const ::_pbi::TcParseTable<4, 12, 5, 45, 2> JobRequest::_table_ = { { PROTOBUF_FIELD_OFFSET(JobRequest, _impl_._has_bits_), 0, // no _extensions_ - 12, 120, // max_field_number, fast_idx_mask + 13, 120, // max_field_number, fast_idx_mask offsetof(decltype(_table_), field_lookup_table), - 4294963232, // skipmap + 4294959136, // skipmap offsetof(decltype(_table_), field_entries), - 11, // num_field_entries - 4, // num_aux_entries + 12, // num_field_entries + 5, // num_aux_entries offsetof(decltype(_table_), aux_entries), _class_data_.base(), nullptr, // post_loop_handler @@ -2269,12 +2285,14 @@ const ::_pbi::TcParseTable<4, 11, 4, 45, 2> JobRequest::_table_ = { {::_pbi::TcParser::FastMtS1, {66, 0, 0, PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.generation_status_)}}, // optional bool update = 9; - {::_pbi::TcParser::SingularVarintNoZag1(), - {72, 1, 0, PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.update_)}}, - {::_pbi::TcParser::MiniParse, {}}, + {::_pbi::TcParser::SingularVarintNoZag1(), + {72, 2, 0, PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.update_)}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, + // optional .google.protobuf.Duration delay_execution = 13; + {::_pbi::TcParser::FastMtS1, + {106, 1, 4, PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.delay_execution_)}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, }}, {{ @@ -2302,7 +2320,7 @@ const ::_pbi::TcParseTable<4, 11, 4, 45, 2> JobRequest::_table_ = { {PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.generation_status_), _Internal::kHasBitsOffset + 0, 0, (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)}, // optional bool update = 9; - {PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.update_), _Internal::kHasBitsOffset + 1, 0, + {PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.update_), _Internal::kHasBitsOffset + 2, 0, (0 | ::_fl::kFcOptional | ::_fl::kBool)}, // .flex.SyncJob sync = 10; {PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.type_.sync_), _Internal::kOneofCaseOffset + 0, 1, @@ -2313,11 +2331,15 @@ const ::_pbi::TcParseTable<4, 11, 4, 45, 2> JobRequest::_table_ = { // .flex.BuilderJob builder = 12; {PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.type_.builder_), _Internal::kOneofCaseOffset + 0, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)}, + // optional .google.protobuf.Duration delay_execution = 13; + {PROTOBUF_FIELD_OFFSET(JobRequest, _impl_.delay_execution_), _Internal::kHasBitsOffset + 1, 4, + (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)}, }}, {{ {::_pbi::TcParser::GetTable<::beeremote::JobRequest_GenerationStatus>()}, {::_pbi::TcParser::GetTable<::flex::SyncJob>()}, {::_pbi::TcParser::GetTable<::flex::MockJob>()}, {::_pbi::TcParser::GetTable<::flex::BuilderJob>()}, + {::_pbi::TcParser::GetTable<::google::protobuf::Duration>()}, }}, {{ "\24\4\4\0\0\0\0\0\0\0\0\0\0\0\0\0" "beeremote.JobRequest" @@ -2336,9 +2358,15 @@ PROTOBUF_NOINLINE void JobRequest::Clear() { _impl_.path_.ClearToEmpty(); _impl_.name_.ClearToEmpty(); cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - ABSL_DCHECK(_impl_.generation_status_ != nullptr); - _impl_.generation_status_->Clear(); + if (cached_has_bits & 0x00000003u) { + if (cached_has_bits & 0x00000001u) { + ABSL_DCHECK(_impl_.generation_status_ != nullptr); + _impl_.generation_status_->Clear(); + } + if (cached_has_bits & 0x00000002u) { + ABSL_DCHECK(_impl_.delay_execution_ != nullptr); + _impl_.delay_execution_->Clear(); + } } ::memset(&_impl_.priority_, 0, static_cast<::size_t>( reinterpret_cast(&_impl_.stub_local_) - @@ -2417,7 +2445,7 @@ PROTOBUF_NOINLINE void JobRequest::Clear() { } // optional bool update = 9; - if (cached_has_bits & 0x00000002u) { + if (cached_has_bits & 0x00000004u) { target = stream->EnsureSpace(target); target = ::_pbi::WireFormatLite::WriteBoolToArray( 9, this_._internal_update(), target); @@ -2445,6 +2473,13 @@ PROTOBUF_NOINLINE void JobRequest::Clear() { default: break; } + // optional .google.protobuf.Duration delay_execution = 13; + if (cached_has_bits & 0x00000002u) { + target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage( + 13, *this_._impl_.delay_execution_, this_._impl_.delay_execution_->GetCachedSize(), target, + stream); + } + if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( @@ -2481,13 +2516,18 @@ PROTOBUF_NOINLINE void JobRequest::Clear() { this_._internal_name()); } } - { + cached_has_bits = this_._impl_._has_bits_[0]; + if (cached_has_bits & 0x00000003u) { // .beeremote.JobRequest.GenerationStatus generation_status = 8; - cached_has_bits = this_._impl_._has_bits_[0]; if (cached_has_bits & 0x00000001u) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.generation_status_); } + // optional .google.protobuf.Duration delay_execution = 13; + if (cached_has_bits & 0x00000002u) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.delay_execution_); + } } { // int32 priority = 3; @@ -2511,7 +2551,7 @@ PROTOBUF_NOINLINE void JobRequest::Clear() { } { // optional bool update = 9; - if (cached_has_bits & 0x00000002u) { + if (cached_has_bits & 0x00000004u) { total_size += 2; } } @@ -2558,13 +2598,24 @@ void JobRequest::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::goog _this->_internal_set_name(from._internal_name()); } cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - ABSL_DCHECK(from._impl_.generation_status_ != nullptr); - if (_this->_impl_.generation_status_ == nullptr) { - _this->_impl_.generation_status_ = - ::google::protobuf::Message::CopyConstruct<::beeremote::JobRequest_GenerationStatus>(arena, *from._impl_.generation_status_); - } else { - _this->_impl_.generation_status_->MergeFrom(*from._impl_.generation_status_); + if (cached_has_bits & 0x00000003u) { + if (cached_has_bits & 0x00000001u) { + ABSL_DCHECK(from._impl_.generation_status_ != nullptr); + if (_this->_impl_.generation_status_ == nullptr) { + _this->_impl_.generation_status_ = + ::google::protobuf::Message::CopyConstruct<::beeremote::JobRequest_GenerationStatus>(arena, *from._impl_.generation_status_); + } else { + _this->_impl_.generation_status_->MergeFrom(*from._impl_.generation_status_); + } + } + if (cached_has_bits & 0x00000002u) { + ABSL_DCHECK(from._impl_.delay_execution_ != nullptr); + if (_this->_impl_.delay_execution_ == nullptr) { + _this->_impl_.delay_execution_ = + ::google::protobuf::Message::CopyConstruct<::google::protobuf::Duration>(arena, *from._impl_.delay_execution_); + } else { + _this->_impl_.delay_execution_->MergeFrom(*from._impl_.delay_execution_); + } } } if (from._internal_priority() != 0) { @@ -2579,7 +2630,7 @@ void JobRequest::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::goog if (from._internal_stub_local() != 0) { _this->_impl_.stub_local_ = from._impl_.stub_local_; } - if (cached_has_bits & 0x00000002u) { + if (cached_has_bits & 0x00000004u) { _this->_impl_.update_ = from._impl_.update_; } _this->_impl_._has_bits_[0] |= cached_has_bits; diff --git a/cpp/beeremote.pb.h b/cpp/beeremote.pb.h index 0a665f7..653abf0 100644 --- a/cpp/beeremote.pb.h +++ b/cpp/beeremote.pb.h @@ -35,6 +35,7 @@ #include "google/protobuf/generated_enum_reflection.h" #include "google/protobuf/unknown_field_set.h" #include "flex.pb.h" +#include "google/protobuf/duration.pb.h" #include "google/protobuf/timestamp.pb.h" // @@protoc_insertion_point(includes) @@ -3063,6 +3064,7 @@ class JobRequest final : public ::google::protobuf::Message kPathFieldNumber = 1, kNameFieldNumber = 2, kGenerationStatusFieldNumber = 8, + kDelayExecutionFieldNumber = 13, kPriorityFieldNumber = 3, kRemoteStorageTargetFieldNumber = 4, kForceFieldNumber = 5, @@ -3118,6 +3120,21 @@ class JobRequest final : public ::google::protobuf::Message const ::beeremote::JobRequest_GenerationStatus& _internal_generation_status() const; ::beeremote::JobRequest_GenerationStatus* _internal_mutable_generation_status(); + public: + // optional .google.protobuf.Duration delay_execution = 13; + bool has_delay_execution() const; + void clear_delay_execution() ; + const ::google::protobuf::Duration& delay_execution() const; + PROTOBUF_NODISCARD ::google::protobuf::Duration* release_delay_execution(); + ::google::protobuf::Duration* mutable_delay_execution(); + void set_allocated_delay_execution(::google::protobuf::Duration* value); + void unsafe_arena_set_allocated_delay_execution(::google::protobuf::Duration* value); + ::google::protobuf::Duration* unsafe_arena_release_delay_execution(); + + private: + const ::google::protobuf::Duration& _internal_delay_execution() const; + ::google::protobuf::Duration* _internal_mutable_delay_execution(); + public: // int32 priority = 3; void clear_priority() ; @@ -3239,7 +3256,7 @@ class JobRequest final : public ::google::protobuf::Message inline void clear_has_type(); friend class ::google::protobuf::internal::TcParser; static const ::google::protobuf::internal::TcParseTable< - 4, 11, 4, + 4, 12, 5, 45, 2> _table_; @@ -3262,6 +3279,7 @@ class JobRequest final : public ::google::protobuf::Message ::google::protobuf::internal::ArenaStringPtr path_; ::google::protobuf::internal::ArenaStringPtr name_; ::beeremote::JobRequest_GenerationStatus* generation_status_; + ::google::protobuf::Duration* delay_execution_; ::int32_t priority_; ::uint32_t remote_storage_target_; bool force_; @@ -5923,13 +5941,13 @@ inline void JobRequest::set_allocated_generation_status(::beeremote::JobRequest_ // optional bool update = 9; inline bool JobRequest::has_update() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; + bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; return value; } inline void JobRequest::clear_update() { ::google::protobuf::internal::TSanWrite(&_impl_); _impl_.update_ = false; - _impl_._has_bits_[0] &= ~0x00000002u; + _impl_._has_bits_[0] &= ~0x00000004u; } inline bool JobRequest::update() const { // @@protoc_insertion_point(field_get:beeremote.JobRequest.update) @@ -5937,7 +5955,7 @@ inline bool JobRequest::update() const { } inline void JobRequest::set_update(bool value) { _internal_set_update(value); - _impl_._has_bits_[0] |= 0x00000002u; + _impl_._has_bits_[0] |= 0x00000004u; // @@protoc_insertion_point(field_set:beeremote.JobRequest.update) } inline bool JobRequest::_internal_update() const { @@ -5949,6 +5967,97 @@ inline void JobRequest::_internal_set_update(bool value) { _impl_.update_ = value; } +// optional .google.protobuf.Duration delay_execution = 13; +inline bool JobRequest::has_delay_execution() const { + bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; + PROTOBUF_ASSUME(!value || _impl_.delay_execution_ != nullptr); + return value; +} +inline const ::google::protobuf::Duration& JobRequest::_internal_delay_execution() const { + ::google::protobuf::internal::TSanRead(&_impl_); + const ::google::protobuf::Duration* p = _impl_.delay_execution_; + return p != nullptr ? *p : reinterpret_cast(::google::protobuf::_Duration_default_instance_); +} +inline const ::google::protobuf::Duration& JobRequest::delay_execution() const ABSL_ATTRIBUTE_LIFETIME_BOUND { + // @@protoc_insertion_point(field_get:beeremote.JobRequest.delay_execution) + return _internal_delay_execution(); +} +inline void JobRequest::unsafe_arena_set_allocated_delay_execution(::google::protobuf::Duration* value) { + ::google::protobuf::internal::TSanWrite(&_impl_); + if (GetArena() == nullptr) { + delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.delay_execution_); + } + _impl_.delay_execution_ = reinterpret_cast<::google::protobuf::Duration*>(value); + if (value != nullptr) { + _impl_._has_bits_[0] |= 0x00000002u; + } else { + _impl_._has_bits_[0] &= ~0x00000002u; + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:beeremote.JobRequest.delay_execution) +} +inline ::google::protobuf::Duration* JobRequest::release_delay_execution() { + ::google::protobuf::internal::TSanWrite(&_impl_); + + _impl_._has_bits_[0] &= ~0x00000002u; + ::google::protobuf::Duration* released = _impl_.delay_execution_; + _impl_.delay_execution_ = nullptr; + if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) { + auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released); + released = ::google::protobuf::internal::DuplicateIfNonNull(released); + if (GetArena() == nullptr) { + delete old; + } + } else { + if (GetArena() != nullptr) { + released = ::google::protobuf::internal::DuplicateIfNonNull(released); + } + } + return released; +} +inline ::google::protobuf::Duration* JobRequest::unsafe_arena_release_delay_execution() { + ::google::protobuf::internal::TSanWrite(&_impl_); + // @@protoc_insertion_point(field_release:beeremote.JobRequest.delay_execution) + + _impl_._has_bits_[0] &= ~0x00000002u; + ::google::protobuf::Duration* temp = _impl_.delay_execution_; + _impl_.delay_execution_ = nullptr; + return temp; +} +inline ::google::protobuf::Duration* JobRequest::_internal_mutable_delay_execution() { + ::google::protobuf::internal::TSanWrite(&_impl_); + if (_impl_.delay_execution_ == nullptr) { + auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Duration>(GetArena()); + _impl_.delay_execution_ = reinterpret_cast<::google::protobuf::Duration*>(p); + } + return _impl_.delay_execution_; +} +inline ::google::protobuf::Duration* JobRequest::mutable_delay_execution() ABSL_ATTRIBUTE_LIFETIME_BOUND { + _impl_._has_bits_[0] |= 0x00000002u; + ::google::protobuf::Duration* _msg = _internal_mutable_delay_execution(); + // @@protoc_insertion_point(field_mutable:beeremote.JobRequest.delay_execution) + return _msg; +} +inline void JobRequest::set_allocated_delay_execution(::google::protobuf::Duration* value) { + ::google::protobuf::Arena* message_arena = GetArena(); + ::google::protobuf::internal::TSanWrite(&_impl_); + if (message_arena == nullptr) { + delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.delay_execution_); + } + + if (value != nullptr) { + ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena(); + if (message_arena != submessage_arena) { + value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena); + } + _impl_._has_bits_[0] |= 0x00000002u; + } else { + _impl_._has_bits_[0] &= ~0x00000002u; + } + + _impl_.delay_execution_ = reinterpret_cast<::google::protobuf::Duration*>(value); + // @@protoc_insertion_point(field_set_allocated:beeremote.JobRequest.delay_execution) +} + inline bool JobRequest::has_type() const { return type_case() != TYPE_NOT_SET; } diff --git a/cpp/flex.pb.cc b/cpp/flex.pb.cc index 91238dc..fe43304 100644 --- a/cpp/flex.pb.cc +++ b/cpp/flex.pb.cc @@ -899,6 +899,31 @@ struct GetCapabilitiesResponseDefaultTypeInternal { PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 GetCapabilitiesResponseDefaultTypeInternal _GetCapabilitiesResponse_default_instance_; +inline constexpr RemoteStorageTarget_XtreemStore::Impl_::Impl_( + ::_pbi::ConstantInitialized) noexcept + : _cached_size_{0}, + s3_{nullptr} {} + +template +PROTOBUF_CONSTEXPR RemoteStorageTarget_XtreemStore::RemoteStorageTarget_XtreemStore(::_pbi::ConstantInitialized) +#if defined(PROTOBUF_CUSTOM_VTABLE) + : ::google::protobuf::Message(_class_data_.base()), +#else // PROTOBUF_CUSTOM_VTABLE + : ::google::protobuf::Message(), +#endif // PROTOBUF_CUSTOM_VTABLE + _impl_(::_pbi::ConstantInitialized()) { +} +struct RemoteStorageTarget_XtreemStoreDefaultTypeInternal { + PROTOBUF_CONSTEXPR RemoteStorageTarget_XtreemStoreDefaultTypeInternal() : _instance(::_pbi::ConstantInitialized{}) {} + ~RemoteStorageTarget_XtreemStoreDefaultTypeInternal() {} + union { + RemoteStorageTarget_XtreemStore _instance; + }; +}; + +PROTOBUF_ATTRIBUTE_NO_DESTROY PROTOBUF_CONSTINIT + PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 RemoteStorageTarget_XtreemStoreDefaultTypeInternal _RemoteStorageTarget_XtreemStore_default_instance_; + inline constexpr RemoteStorageTarget_Azure::Impl_::Impl_( ::_pbi::ConstantInitialized) noexcept : _cached_size_{0}, @@ -1002,6 +1027,8 @@ inline constexpr WorkRequest::Impl_::Impl_( &::google::protobuf::internal::fixed_address_empty_string, ::_pbi::ConstantInitialized()), segment_{nullptr}, + executeafter_{nullptr}, + delay_execution_{nullptr}, remote_storage_target_{0u}, stub_local_{false}, priority_{0}, @@ -1322,6 +1349,8 @@ const ::uint32_t ::_pbi::kInvalidFieldOffsetTag, PROTOBUF_FIELD_OFFSET(::flex::WorkRequest, _impl_.stub_local_), PROTOBUF_FIELD_OFFSET(::flex::WorkRequest, _impl_.priority_), + PROTOBUF_FIELD_OFFSET(::flex::WorkRequest, _impl_.executeafter_), + PROTOBUF_FIELD_OFFSET(::flex::WorkRequest, _impl_.delay_execution_), PROTOBUF_FIELD_OFFSET(::flex::WorkRequest, _impl_.Type_), ~0u, ~0u, @@ -1333,7 +1362,9 @@ const ::uint32_t ~0u, ~0u, ~0u, + 3, 1, + 2, PROTOBUF_FIELD_OFFSET(::flex::BuilderJob, _impl_._has_bits_), PROTOBUF_FIELD_OFFSET(::flex::BuilderJob, _internal_metadata_), ~0u, // no _extensions_ @@ -1552,6 +1583,16 @@ const ::uint32_t PROTOBUF_FIELD_OFFSET(::flex::RemoteStorageTarget_Azure, _impl_.account_), 0, ~0u, + PROTOBUF_FIELD_OFFSET(::flex::RemoteStorageTarget_XtreemStore, _impl_._has_bits_), + PROTOBUF_FIELD_OFFSET(::flex::RemoteStorageTarget_XtreemStore, _internal_metadata_), + ~0u, // no _extensions_ + ~0u, // no _oneof_case_ + ~0u, // no _weak_field_map_ + ~0u, // no _inlined_string_donated_ + ~0u, // no _split_ + ~0u, // no sizeof(Split) + PROTOBUF_FIELD_OFFSET(::flex::RemoteStorageTarget_XtreemStore, _impl_.s3_), + 0, ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flex::RemoteStorageTarget_POSIX, _internal_metadata_), ~0u, // no _extensions_ @@ -1576,6 +1617,7 @@ const ::uint32_t ::_pbi::kInvalidFieldOffsetTag, ::_pbi::kInvalidFieldOffsetTag, ::_pbi::kInvalidFieldOffsetTag, + ::_pbi::kInvalidFieldOffsetTag, PROTOBUF_FIELD_OFFSET(::flex::RemoteStorageTarget, _impl_.type_), ~0u, ~0u, @@ -1584,6 +1626,7 @@ const ::uint32_t ~0u, ~0u, ~0u, + ~0u, ~0u, // no _has_bits_ PROTOBUF_FIELD_OFFSET(::flex::GetCapabilitiesRequest, _internal_metadata_), ~0u, // no _extensions_ @@ -1668,30 +1711,31 @@ static const ::_pbi::MigrationSchema {123, 133, -1, sizeof(::flex::JobRequestCfg_MetadataEntry_DoNotUse)}, {135, 159, -1, sizeof(::flex::JobRequestCfg)}, {175, -1, -1, sizeof(::flex::WorkRequest_Segment)}, - {187, 207, -1, sizeof(::flex::WorkRequest)}, - {218, 229, -1, sizeof(::flex::BuilderJob)}, - {232, 246, -1, sizeof(::flex::MockJob)}, - {252, 262, -1, sizeof(::flex::SyncJob_MetadataEntry_DoNotUse)}, - {264, 282, -1, sizeof(::flex::SyncJob)}, - {292, -1, -1, sizeof(::flex::Work_Status)}, - {302, -1, -1, sizeof(::flex::Work_Part)}, - {316, 330, -1, sizeof(::flex::Work)}, - {336, 346, -1, sizeof(::flex::UpdateConfigRequest)}, - {348, -1, -1, sizeof(::flex::UpdateConfigResponse)}, - {358, -1, -1, sizeof(::flex::BeeRemoteNode)}, - {375, -1, -1, sizeof(::flex::RemoteStorageTarget_Policies)}, - {384, -1, -1, sizeof(::flex::RemoteStorageTarget_S3_StorageClass_Archival)}, - {397, 407, -1, sizeof(::flex::RemoteStorageTarget_S3_StorageClass)}, - {409, -1, -1, sizeof(::flex::RemoteStorageTarget_S3)}, - {424, 434, -1, sizeof(::flex::RemoteStorageTarget_Azure)}, - {436, -1, -1, sizeof(::flex::RemoteStorageTarget_POSIX)}, - {445, 461, -1, sizeof(::flex::RemoteStorageTarget)}, - {468, -1, -1, sizeof(::flex::GetCapabilitiesRequest)}, - {476, 486, -1, sizeof(::flex::GetCapabilitiesResponse_FeaturesEntry_DoNotUse)}, - {488, 499, -1, sizeof(::flex::GetCapabilitiesResponse)}, - {502, 512, -1, sizeof(::flex::Feature_SubFeatureEntry_DoNotUse)}, - {514, -1, -1, sizeof(::flex::Feature)}, - {523, -1, -1, sizeof(::flex::BuildInfo)}, + {187, 209, -1, sizeof(::flex::WorkRequest)}, + {222, 233, -1, sizeof(::flex::BuilderJob)}, + {236, 250, -1, sizeof(::flex::MockJob)}, + {256, 266, -1, sizeof(::flex::SyncJob_MetadataEntry_DoNotUse)}, + {268, 286, -1, sizeof(::flex::SyncJob)}, + {296, -1, -1, sizeof(::flex::Work_Status)}, + {306, -1, -1, sizeof(::flex::Work_Part)}, + {320, 334, -1, sizeof(::flex::Work)}, + {340, 350, -1, sizeof(::flex::UpdateConfigRequest)}, + {352, -1, -1, sizeof(::flex::UpdateConfigResponse)}, + {362, -1, -1, sizeof(::flex::BeeRemoteNode)}, + {379, -1, -1, sizeof(::flex::RemoteStorageTarget_Policies)}, + {388, -1, -1, sizeof(::flex::RemoteStorageTarget_S3_StorageClass_Archival)}, + {401, 411, -1, sizeof(::flex::RemoteStorageTarget_S3_StorageClass)}, + {413, -1, -1, sizeof(::flex::RemoteStorageTarget_S3)}, + {428, 438, -1, sizeof(::flex::RemoteStorageTarget_Azure)}, + {440, 449, -1, sizeof(::flex::RemoteStorageTarget_XtreemStore)}, + {450, -1, -1, sizeof(::flex::RemoteStorageTarget_POSIX)}, + {459, 476, -1, sizeof(::flex::RemoteStorageTarget)}, + {484, -1, -1, sizeof(::flex::GetCapabilitiesRequest)}, + {492, 502, -1, sizeof(::flex::GetCapabilitiesResponse_FeaturesEntry_DoNotUse)}, + {504, 515, -1, sizeof(::flex::GetCapabilitiesResponse)}, + {518, 528, -1, sizeof(::flex::Feature_SubFeatureEntry_DoNotUse)}, + {530, -1, -1, sizeof(::flex::Feature)}, + {539, -1, -1, sizeof(::flex::BuildInfo)}, }; static const ::_pb::Message* const file_default_instances[] = { &::flex::_HeartbeatRequest_default_instance_._instance, @@ -1723,6 +1767,7 @@ static const ::_pb::Message* const file_default_instances[] = { &::flex::_RemoteStorageTarget_S3_StorageClass_default_instance_._instance, &::flex::_RemoteStorageTarget_S3_default_instance_._instance, &::flex::_RemoteStorageTarget_Azure_default_instance_._instance, + &::flex::_RemoteStorageTarget_XtreemStore_default_instance_._instance, &::flex::_RemoteStorageTarget_POSIX_default_instance_._instance, &::flex::_RemoteStorageTarget_default_instance_._instance, &::flex::_GetCapabilitiesRequest_default_instance_._instance, @@ -1734,161 +1779,168 @@ static const ::_pb::Message* const file_default_instances[] = { }; const char descriptor_table_protodef_flex_2eproto[] ABSL_ATTRIBUTE_SECTION_VARIABLE( protodesc_cold) = { - "\n\nflex.proto\022\004flex\032\037google/protobuf/time" - "stamp.proto\")\n\020HeartbeatRequest\022\025\n\rinclu" - "de_stats\030\001 \001(\010\"J\n\021HeartbeatResponse\022\020\n\010i" - "s_ready\030\001 \001(\010\022#\n\nnode_stats\030\002 \001(\0132\017.flex" - ".NodeStats\"S\n\tNodeStats\022-\n\ttimestamp\030\001 \001" - "(\0132\032.google.protobuf.Timestamp\022\027\n\017active" - "_requests\030\002 \001(\003\"7\n\021SubmitWorkRequest\022\"\n\007" - "request\030\001 \001(\0132\021.flex.WorkRequest\".\n\022Subm" - "itWorkResponse\022\030\n\004work\030\001 \001(\0132\n.flex.Work" - "\"\230\001\n\021UpdateWorkRequest\022\016\n\006job_id\030\001 \001(\t\022\022" - "\n\nrequest_id\030\002 \001(\t\0223\n\tnew_state\030\003 \001(\0162 ." - "flex.UpdateWorkRequest.NewState\"*\n\010NewSt" - "ate\022\017\n\013UNSPECIFIED\020\000\022\r\n\tCANCELLED\020\001\".\n\022U" - "pdateWorkResponse\022\030\n\004work\030\001 \001(\0132\n.flex.W" - "ork\"|\n\025BulkUpdateWorkRequest\0227\n\tnew_stat" - "e\030\001 \001(\0162$.flex.BulkUpdateWorkRequest.New" - "State\"*\n\010NewState\022\017\n\013UNSPECIFIED\020\000\022\r\n\tUN" - "CHANGED\020\001\":\n\026BulkUpdateWorkResponse\022\017\n\007s" - "uccess\030\001 \001(\010\022\017\n\007message\030\002 \001(\t\"\241\002\n\rJobLoc" - "kedInfo\022\031\n\021read_write_locked\030\001 \001(\010\022\016\n\006ex" - "ists\030\002 \001(\010\022\014\n\004size\030\003 \001(\003\022\014\n\004mode\030\004 \001(\r\022)" - "\n\005mtime\030\005 \001(\0132\032.google.protobuf.Timestam" - "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\022\023\n\013is_archived\030\013 \001(" - "\010\"\243\004\n\rJobRequestCfg\022\033\n\023remoteStorageTarg" - "et\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\n\007flatten\030\007 \001(\010\022\r\n\005" - "force\030\010 \001(\010\022(\n\013locked_info\030\t \001(\0132\023.flex." - "JobLockedInfo\022\023\n\006update\030\n \001(\010H\000\210\001\001\0223\n\010me" - "tadata\030\r \003(\0132!.flex.JobRequestCfg.Metada" - "taEntry\022\024\n\007tagging\030\016 \001(\tH\001\210\001\001\022\025\n\010priorit" - "y\030\013 \001(\005H\002\210\001\001\022\032\n\rstorage_class\030\014 \001(\tH\003\210\001\001" - "\022\032\n\rallow_restore\030\017 \001(\010H\004\210\001\001\022\030\n\013filter_e" - "xpr\030\020 \001(\tH\005\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_t" - "aggingB\013\n\t_priorityB\020\n\016_storage_classB\020\n" - "\016_allow_restoreB\016\n\014_filter_expr\"\241\003\n\013Work" - "Request\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.Segme" - "nt\022\035\n\025remote_storage_target\030\006 \001(\r\022\035\n\004moc" - "k\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\010prio" - "rity\030\t \001(\005H\001\210\001\001\032]\n\007Segment\022\024\n\014offset_sta" - "rt\030\001 \001(\003\022\023\n\013offset_stop\030\002 \001(\003\022\023\n\013parts_s" - "tart\030\003 \001(\005\022\022\n\nparts_stop\030\004 \001(\005B\006\n\004TypeB\013" - "\n\t_priority\"Q\n\nBuilderJob\022 \n\003cfg\030\001 \001(\0132\023" - ".flex.JobRequestCfg\022\021\n\tsubmitted\030\002 \001(\005\022\016" - "\n\006errors\030\003 \001(\005\"\255\001\n\007MockJob\022\031\n\021num_test_s" - "egments\030\001 \001(\005\022\021\n\tfile_size\030\002 \001(\003\022\023\n\013exte" - "rnal_id\030\003 \001(\t\022\023\n\013should_fail\030\004 \001(\010\022(\n\013lo" - "cked_info\030\006 \001(\0132\023.flex.JobLockedInfo\022 \n\003" - "cfg\030\007 \001(\0132\023.flex.JobRequestCfg\"\316\003\n\007SyncJ" - "ob\022*\n\toperation\030\001 \001(\0162\027.flex.SyncJob.Ope" - "ration\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.JobLockedInfo\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\007tagging\030\n \001(\tH\001\210\001\001\022\032\n\rs" - "torage_class\030\014 \001(\tH\002\210\001\001\022\032\n\rallow_restore" - "\030\r \001(\010H\003\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\013UNS" - "PECIFIED\020\000\022\n\n\006UPLOAD\020\001\022\014\n\010DOWNLOAD\020\002B\t\n\007" - "_updateB\n\n\010_taggingB\020\n\016_storage_classB\020\n" - "\016_allow_restore\"\354\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\006st" - "atus\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." - "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\013of" - "fset_stop\030\003 \001(\003\022\022\n\nentity_tag\030\004 \001(\t\022\027\n\017c" - "hecksum_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\023Update" - "ConfigRequest\022\'\n\nbee_remote\030\001 \001(\0132\023.flex" - ".BeeRemoteNode\022\'\n\004rsts\030\002 \003(\0132\031.flex.Remo" - "teStorageTarget\"\234\001\n\024UpdateConfigResponse" - "\0221\n\006result\030\001 \001(\0162!.flex.UpdateConfigResp" - "onse.Result\022\017\n\007message\030\002 \001(\t\"@\n\006Result\022\017" - "\n\013UNSPECIFIED\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_tl" - "s_disable_verification\030\005 \001(\010\022\031\n\021mgmtd_tl" - "s_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\"\301\006\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.R" - "emoteStorageTarget.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\0220\n\005azure\030\006 \001(\0132\037.flex.RemoteStorageTar" - "get.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\032\255\003\n\002S3\022\024\n\014e" - "ndpoint_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\nacces" - "s_key\030\005 \001(\t\022\022\n\nsecret_key\030\006 \001(\t\022@\n\rstora" - "ge_class\030\010 \003(\0132).flex.RemoteStorageTarge" - "t.S3.StorageClass\032\360\001\n\014StorageClass\022\014\n\004na" - "me\030\001 \001(\t\022I\n\010archival\030\002 \001(\01322.flex.Remote" - "StorageTarget.S3.StorageClass.ArchivalH\000" - "\210\001\001\032z\n\010Archival\022\026\n\016retrieval_tier\030\001 \001(\t\022" - "\026\n\016retention_days\030\002 \001(\005\022\022\n\ncheck_time\030\003 " - "\001(\t\022\024\n\014recheck_time\030\004 \001(\t\022\024\n\014auto_restor" - "e\030\005 \001(\010B\013\n\t_archival\032B\n\005Azure\022(\n\002s3\030\001 \001(" - "\0132\034.flex.RemoteStorageTarget.S3\022\017\n\007accou" - "nt\030\002 \001(\t\032\025\n\005POSIX\022\014\n\004path\030\001 \001(\tB\006\n\004type\"" - "\030\n\026GetCapabilitiesRequest\"\362\001\n\027GetCapabil" - "itiesResponse\022#\n\nbuild_info\030\001 \001(\0132\017.flex" - ".BuildInfo\022=\n\010features\030\002 \003(\0132+.flex.GetC" - "apabilitiesResponse.FeaturesEntry\0223\n\017sta" - "rt_timestamp\030\003 \001(\0132\032.google.protobuf.Tim" - "estamp\032>\n\rFeaturesEntry\022\013\n\003key\030\001 \001(\t\022\034\n\005" - "value\030\002 \001(\0132\r.flex.Feature:\0028\001\"\177\n\007Featur" - "e\0222\n\013sub_feature\030\001 \003(\0132\035.flex.Feature.Su" - "bFeatureEntry\032@\n\017SubFeatureEntry\022\013\n\003key\030" - "\001 \001(\t\022\034\n\005value\030\002 \001(\0132\r.flex.Feature:\0028\001\"" - "U\n\tBuildInfo\022\023\n\013binary_name\030\001 \001(\t\022\017\n\007ver" - "sion\030\002 \001(\t\022\016\n\006commit\030\003 \001(\t\022\022\n\nbuild_time" - "\030\004 \001(\t2\260\003\n\nWorkerNode\022E\n\014UpdateConfig\022\031." - "flex.UpdateConfigRequest\032\032.flex.UpdateCo" - "nfigResponse\022<\n\tHeartbeat\022\026.flex.Heartbe" - "atRequest\032\027.flex.HeartbeatResponse\022\?\n\nSu" - "bmitWork\022\027.flex.SubmitWorkRequest\032\030.flex" - ".SubmitWorkResponse\022\?\n\nUpdateWork\022\027.flex" - ".UpdateWorkRequest\032\030.flex.UpdateWorkResp" - "onse\022K\n\016BulkUpdateWork\022\033.flex.BulkUpdate" - "WorkRequest\032\034.flex.BulkUpdateWorkRespons" - "e\022N\n\017GetCapabilities\022\034.flex.GetCapabilit" - "iesRequest\032\035.flex.GetCapabilitiesRespons" - "eB\'Z%github.com/thinkparq/protobuf/go/fl" - "exb\006proto3" -}; -static const ::_pbi::DescriptorTable* const descriptor_table_flex_2eproto_deps[1] = + "\n\nflex.proto\022\004flex\032\036google/protobuf/dura" + "tion.proto\032\037google/protobuf/timestamp.pr" + "oto\")\n\020HeartbeatRequest\022\025\n\rinclude_stats" + "\030\001 \001(\010\"J\n\021HeartbeatResponse\022\020\n\010is_ready\030" + "\001 \001(\010\022#\n\nnode_stats\030\002 \001(\0132\017.flex.NodeSta" + "ts\"S\n\tNodeStats\022-\n\ttimestamp\030\001 \001(\0132\032.goo" + "gle.protobuf.Timestamp\022\027\n\017active_request" + "s\030\002 \001(\003\"7\n\021SubmitWorkRequest\022\"\n\007request\030" + "\001 \001(\0132\021.flex.WorkRequest\".\n\022SubmitWorkRe" + "sponse\022\030\n\004work\030\001 \001(\0132\n.flex.Work\"\230\001\n\021Upd" + "ateWorkRequest\022\016\n\006job_id\030\001 \001(\t\022\022\n\nreques" + "t_id\030\002 \001(\t\0223\n\tnew_state\030\003 \001(\0162 .flex.Upd" + "ateWorkRequest.NewState\"*\n\010NewState\022\017\n\013U" + "NSPECIFIED\020\000\022\r\n\tCANCELLED\020\001\".\n\022UpdateWor" + "kResponse\022\030\n\004work\030\001 \001(\0132\n.flex.Work\"|\n\025B" + "ulkUpdateWorkRequest\0227\n\tnew_state\030\001 \001(\0162" + "$.flex.BulkUpdateWorkRequest.NewState\"*\n" + "\010NewState\022\017\n\013UNSPECIFIED\020\000\022\r\n\tUNCHANGED\020" + "\001\":\n\026BulkUpdateWorkResponse\022\017\n\007success\030\001" + " \001(\010\022\017\n\007message\030\002 \001(\t\"\241\002\n\rJobLockedInfo\022" + "\031\n\021read_write_locked\030\001 \001(\010\022\016\n\006exists\030\002 \001" + "(\010\022\014\n\004size\030\003 \001(\003\022\014\n\004mode\030\004 \001(\r\022)\n\005mtime\030" + "\005 \001(\0132\032.google.protobuf.Timestamp\022\023\n\013rem" + "ote_size\030\006 \001(\003\0220\n\014remote_mtime\030\007 \001(\0132\032.g" + "oogle.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\nexte" + "rnalId\030\n \001(\t\022\023\n\013is_archived\030\013 \001(\010\"\243\004\n\rJo" + "bRequestCfg\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\010do" + "wnload\030\004 \001(\010\022\022\n\nstub_local\030\005 \001(\010\022\021\n\tover" + "write\030\006 \001(\010\022\017\n\007flatten\030\007 \001(\010\022\r\n\005force\030\010 " + "\001(\010\022(\n\013locked_info\030\t \001(\0132\023.flex.JobLocke" + "dInfo\022\023\n\006update\030\n \001(\010H\000\210\001\001\0223\n\010metadata\030\r" + " \003(\0132!.flex.JobRequestCfg.MetadataEntry\022" + "\024\n\007tagging\030\016 \001(\tH\001\210\001\001\022\025\n\010priority\030\013 \001(\005H" + "\002\210\001\001\022\032\n\rstorage_class\030\014 \001(\tH\003\210\001\001\022\032\n\rallo" + "w_restore\030\017 \001(\010H\004\210\001\001\022\030\n\013filter_expr\030\020 \001(" + "\tH\005\210\001\001\032/\n\rMetadataEntry\022\013\n\003key\030\001 \001(\t\022\r\n\005" + "value\030\002 \001(\t:\0028\001B\t\n\007_updateB\n\n\010_taggingB\013" + "\n\t_priorityB\020\n\016_storage_classB\020\n\016_allow_" + "restoreB\016\n\014_filter_expr\"\207\004\n\013WorkRequest\022" + "\016\n\006job_id\030\001 \001(\t\022\022\n\nrequest_id\030\002 \001(\t\022\023\n\013e" + "xternal_id\030\003 \001(\t\022\014\n\004path\030\004 \001(\t\022*\n\007segmen" + "t\030\005 \001(\0132\031.flex.WorkRequest.Segment\022\035\n\025re" + "mote_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.Sy" + "ncJobH\000\022#\n\007builder\030\014 \001(\0132\020.flex.BuilderJ" + "obH\000\022\022\n\nstub_local\030\010 \001(\010\022\025\n\010priority\030\t \001" + "(\005H\001\210\001\001\0220\n\014ExecuteAfter\030\r \001(\0132\032.google.p" + "rotobuf.Timestamp\0222\n\017delay_execution\030\016 \001" + "(\0132\031.google.protobuf.Duration\032]\n\007Segment" + "\022\024\n\014offset_start\030\001 \001(\003\022\023\n\013offset_stop\030\002 " + "\001(\003\022\023\n\013parts_start\030\003 \001(\005\022\022\n\nparts_stop\030\004" + " \001(\005B\006\n\004TypeB\013\n\t_priority\"Q\n\nBuilderJob\022" + " \n\003cfg\030\001 \001(\0132\023.flex.JobRequestCfg\022\021\n\tsub" + "mitted\030\002 \001(\005\022\016\n\006errors\030\003 \001(\005\"\255\001\n\007MockJob" + "\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\013should_fa" + "il\030\004 \001(\010\022(\n\013locked_info\030\006 \001(\0132\023.flex.Job" + "LockedInfo\022 \n\003cfg\030\007 \001(\0132\023.flex.JobReques" + "tCfg\"\316\003\n\007SyncJob\022*\n\toperation\030\001 \001(\0162\027.fl" + "ex.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.JobLockedInfo\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\007tagging\030\n" + " \001(\tH\001\210\001\001\022\032\n\rstorage_class\030\014 \001(\tH\002\210\001\001\022\032\n" + "\rallow_restore\030\r \001(\010H\003\210\001\001\032/\n\rMetadataEnt" + "ry\022\013\n\003key\030\001 \001(\t\022\r\n\005value\030\002 \001(\t:\0028\001\"6\n\tOp" + "eration\022\017\n\013UNSPECIFIED\020\000\022\n\n\006UPLOAD\020\001\022\014\n\010" + "DOWNLOAD\020\002B\t\n\007_updateB\n\n\010_taggingB\020\n\016_st" + "orage_classB\020\n\016_allow_restore\"\354\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.Sta" + "tus\022\036\n\005parts\030\005 \003(\0132\017.flex.Work.Part\022\023\n\013j" + "ob_builder\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_sta" + "rt\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\tco" + "mpleted\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\tCOMPLET" + "ED\020\t\"g\n\023UpdateConfigRequest\022\'\n\nbee_remot" + "e\030\001 \001(\0132\023.flex.BeeRemoteNode\022\'\n\004rsts\030\002 \003" + "(\0132\031.flex.RemoteStorageTarget\"\234\001\n\024Update" + "ConfigResponse\0221\n\006result\030\001 \001(\0162!.flex.Up" + "dateConfigResponse.Result\022\017\n\007message\030\002 \001" + "(\t\"@\n\006Result\022\017\n\013UNSPECIFIED\020\000\022\013\n\007SUCCESS" + "\020\001\022\013\n\007PARTIAL\020\002\022\013\n\007FAILURE\020\003\"\342\001\n\rBeeRemo" + "teNode\022\n\n\002id\030\001 \001(\t\022\017\n\007address\030\002 \001(\t\022\025\n\rm" + "gmtd_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_u" + "se_proxy\030\t \001(\010\022\023\n\013auth_secret\030\007 \001(\014\022\024\n\014a" + "uth_disable\030\010 \001(\010\"\270\007\n\023RemoteStorageTarge" + "t\022\n\n\002id\030\001 \001(\r\022\014\n\004name\030\002 \001(\t\0224\n\010policies\030" + "\003 \001(\0132\".flex.RemoteStorageTarget.Policie" + "s\022*\n\002s3\030\004 \001(\0132\034.flex.RemoteStorageTarget" + ".S3H\000\0220\n\005posix\030\005 \001(\0132\037.flex.RemoteStorag" + "eTarget.POSIXH\000\0220\n\005azure\030\006 \001(\0132\037.flex.Re" + "moteStorageTarget.AzureH\000\022\016\n\004mock\030\007 \001(\tH" + "\000\022<\n\013xtreemstore\030\010 \001(\0132%.flex.RemoteStor" + "ageTarget.XtreemStoreH\000\032\'\n\010Policies\022\033\n\023f" + "ast_start_max_size\030\001 \001(\003\032\255\003\n\002S3\022\024\n\014endpo" + "int_url\030\001 \001(\t\022\024\n\014partition_id\030\002 \001(\t\022\016\n\006r" + "egion\030\003 \001(\t\022\016\n\006bucket\030\004 \001(\t\022\022\n\naccess_ke" + "y\030\005 \001(\t\022\022\n\nsecret_key\030\006 \001(\t\022@\n\rstorage_c" + "lass\030\010 \003(\0132).flex.RemoteStorageTarget.S3" + ".StorageClass\032\360\001\n\014StorageClass\022\014\n\004name\030\001" + " \001(\t\022I\n\010archival\030\002 \001(\01322.flex.RemoteStor" + "ageTarget.S3.StorageClass.ArchivalH\000\210\001\001\032" + "z\n\010Archival\022\026\n\016retrieval_tier\030\001 \001(\t\022\026\n\016r" + "etention_days\030\002 \001(\005\022\022\n\ncheck_time\030\003 \001(\t\022" + "\024\n\014recheck_time\030\004 \001(\t\022\024\n\014auto_restore\030\005 " + "\001(\010B\013\n\t_archival\032B\n\005Azure\022(\n\002s3\030\001 \001(\0132\034." + "flex.RemoteStorageTarget.S3\022\017\n\007account\030\002" + " \001(\t\0327\n\013XtreemStore\022(\n\002s3\030\001 \001(\0132\034.flex.R" + "emoteStorageTarget.S3\032\025\n\005POSIX\022\014\n\004path\030\001" + " \001(\tB\006\n\004type\"\030\n\026GetCapabilitiesRequest\"\362" + "\001\n\027GetCapabilitiesResponse\022#\n\nbuild_info" + "\030\001 \001(\0132\017.flex.BuildInfo\022=\n\010features\030\002 \003(" + "\0132+.flex.GetCapabilitiesResponse.Feature" + "sEntry\0223\n\017start_timestamp\030\003 \001(\0132\032.google" + ".protobuf.Timestamp\032>\n\rFeaturesEntry\022\013\n\003" + "key\030\001 \001(\t\022\034\n\005value\030\002 \001(\0132\r.flex.Feature:" + "\0028\001\"\177\n\007Feature\0222\n\013sub_feature\030\001 \003(\0132\035.fl" + "ex.Feature.SubFeatureEntry\032@\n\017SubFeature" + "Entry\022\013\n\003key\030\001 \001(\t\022\034\n\005value\030\002 \001(\0132\r.flex" + ".Feature:\0028\001\"U\n\tBuildInfo\022\023\n\013binary_name" + "\030\001 \001(\t\022\017\n\007version\030\002 \001(\t\022\016\n\006commit\030\003 \001(\t\022" + "\022\n\nbuild_time\030\004 \001(\t2\260\003\n\nWorkerNode\022E\n\014Up" + "dateConfig\022\031.flex.UpdateConfigRequest\032\032." + "flex.UpdateConfigResponse\022<\n\tHeartbeat\022\026" + ".flex.HeartbeatRequest\032\027.flex.HeartbeatR" + "esponse\022\?\n\nSubmitWork\022\027.flex.SubmitWorkR" + "equest\032\030.flex.SubmitWorkResponse\022\?\n\nUpda" + "teWork\022\027.flex.UpdateWorkRequest\032\030.flex.U" + "pdateWorkResponse\022K\n\016BulkUpdateWork\022\033.fl" + "ex.BulkUpdateWorkRequest\032\034.flex.BulkUpda" + "teWorkResponse\022N\n\017GetCapabilities\022\034.flex" + ".GetCapabilitiesRequest\032\035.flex.GetCapabi" + "litiesResponseB\'Z%github.com/thinkparq/p" + "rotobuf/go/flexb\006proto3" +}; +static const ::_pbi::DescriptorTable* const descriptor_table_flex_2eproto_deps[2] = { + &::descriptor_table_google_2fprotobuf_2fduration_2eproto, &::descriptor_table_google_2fprotobuf_2ftimestamp_2eproto, }; static ::absl::once_flag descriptor_table_flex_2eproto_once; PROTOBUF_CONSTINIT const ::_pbi::DescriptorTable descriptor_table_flex_2eproto = { false, false, - 5530, + 5783, descriptor_table_protodef_flex_2eproto, "flex.proto", &descriptor_table_flex_2eproto_once, descriptor_table_flex_2eproto_deps, - 1, - 37, + 2, + 38, schemas, file_default_instances, TableStruct_flex_2eproto::offsets, @@ -5948,6 +6000,16 @@ void WorkRequest::set_allocated_builder(::flex::BuilderJob* builder) { } // @@protoc_insertion_point(field_set_allocated:flex.WorkRequest.builder) } +void WorkRequest::clear_executeafter() { + ::google::protobuf::internal::TSanWrite(&_impl_); + if (_impl_.executeafter_ != nullptr) _impl_.executeafter_->Clear(); + _impl_._has_bits_[0] &= ~0x00000002u; +} +void WorkRequest::clear_delay_execution() { + ::google::protobuf::internal::TSanWrite(&_impl_); + if (_impl_.delay_execution_ != nullptr) _impl_.delay_execution_->Clear(); + _impl_._has_bits_[0] &= ~0x00000004u; +} WorkRequest::WorkRequest(::google::protobuf::Arena* arena) #if defined(PROTOBUF_CUSTOM_VTABLE) : ::google::protobuf::Message(arena, _class_data_.base()) { @@ -5986,6 +6048,12 @@ WorkRequest::WorkRequest( _impl_.segment_ = (cached_has_bits & 0x00000001u) ? ::google::protobuf::Message::CopyConstruct<::flex::WorkRequest_Segment>( arena, *from._impl_.segment_) : nullptr; + _impl_.executeafter_ = (cached_has_bits & 0x00000002u) ? ::google::protobuf::Message::CopyConstruct<::google::protobuf::Timestamp>( + arena, *from._impl_.executeafter_) + : nullptr; + _impl_.delay_execution_ = (cached_has_bits & 0x00000004u) ? ::google::protobuf::Message::CopyConstruct<::google::protobuf::Duration>( + arena, *from._impl_.delay_execution_) + : nullptr; ::memcpy(reinterpret_cast(&_impl_) + offsetof(Impl_, remote_storage_target_), reinterpret_cast(&from._impl_) + @@ -6042,6 +6110,8 @@ inline void WorkRequest::SharedDtor(MessageLite& self) { this_._impl_.external_id_.Destroy(); this_._impl_.path_.Destroy(); delete this_._impl_.segment_; + delete this_._impl_.executeafter_; + delete this_._impl_.delay_execution_; if (this_.has_Type()) { this_.clear_Type(); } @@ -6120,16 +6190,16 @@ const ::google::protobuf::internal::ClassData* WorkRequest::GetClassData() const return _class_data_.base(); } PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 -const ::_pbi::TcParseTable<4, 11, 4, 64, 2> WorkRequest::_table_ = { +const ::_pbi::TcParseTable<4, 13, 6, 64, 2> WorkRequest::_table_ = { { PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_._has_bits_), 0, // no _extensions_ - 12, 120, // max_field_number, fast_idx_mask + 14, 120, // max_field_number, fast_idx_mask offsetof(decltype(_table_), field_lookup_table), - 4294963264, // skipmap + 4294950976, // skipmap offsetof(decltype(_table_), field_entries), - 11, // num_field_entries - 4, // num_aux_entries + 13, // num_field_entries + 6, // num_aux_entries offsetof(decltype(_table_), aux_entries), _class_data_.base(), nullptr, // post_loop_handler @@ -6162,13 +6232,17 @@ const ::_pbi::TcParseTable<4, 11, 4, 64, 2> WorkRequest::_table_ = { {::_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::SingularVarintNoZag1<::uint32_t, offsetof(WorkRequest, _impl_.priority_), 3>(), + {72, 3, 0, PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.priority_)}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, {::_pbi::TcParser::MiniParse, {}}, + // .google.protobuf.Timestamp ExecuteAfter = 13; + {::_pbi::TcParser::FastMtS1, + {106, 1, 4, PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.executeafter_)}}, + // .google.protobuf.Duration delay_execution = 14; + {::_pbi::TcParser::FastMtS1, + {114, 2, 5, PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.delay_execution_)}}, {::_pbi::TcParser::MiniParse, {}}, }}, {{ 65535, 65535 @@ -6195,7 +6269,7 @@ const ::_pbi::TcParseTable<4, 11, 4, 64, 2> WorkRequest::_table_ = { {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, + {PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.priority_), _Internal::kHasBitsOffset + 3, 0, (0 | ::_fl::kFcOptional | ::_fl::kInt32)}, // .flex.MockJob mock = 10; {PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.Type_.mock_), _Internal::kOneofCaseOffset + 0, 1, @@ -6206,11 +6280,19 @@ const ::_pbi::TcParseTable<4, 11, 4, 64, 2> WorkRequest::_table_ = { // .flex.BuilderJob builder = 12; {PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.Type_.builder_), _Internal::kOneofCaseOffset + 0, 3, (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)}, + // .google.protobuf.Timestamp ExecuteAfter = 13; + {PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.executeafter_), _Internal::kHasBitsOffset + 1, 4, + (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)}, + // .google.protobuf.Duration delay_execution = 14; + {PROTOBUF_FIELD_OFFSET(WorkRequest, _impl_.delay_execution_), _Internal::kHasBitsOffset + 2, 5, + (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)}, }}, {{ {::_pbi::TcParser::GetTable<::flex::WorkRequest_Segment>()}, {::_pbi::TcParser::GetTable<::flex::MockJob>()}, {::_pbi::TcParser::GetTable<::flex::SyncJob>()}, {::_pbi::TcParser::GetTable<::flex::BuilderJob>()}, + {::_pbi::TcParser::GetTable<::google::protobuf::Timestamp>()}, + {::_pbi::TcParser::GetTable<::google::protobuf::Duration>()}, }}, {{ "\20\6\12\13\4\0\0\0\0\0\0\0\0\0\0\0" "flex.WorkRequest" @@ -6233,9 +6315,19 @@ PROTOBUF_NOINLINE void WorkRequest::Clear() { _impl_.external_id_.ClearToEmpty(); _impl_.path_.ClearToEmpty(); cached_has_bits = _impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - ABSL_DCHECK(_impl_.segment_ != nullptr); - _impl_.segment_->Clear(); + if (cached_has_bits & 0x00000007u) { + if (cached_has_bits & 0x00000001u) { + ABSL_DCHECK(_impl_.segment_ != nullptr); + _impl_.segment_->Clear(); + } + if (cached_has_bits & 0x00000002u) { + ABSL_DCHECK(_impl_.executeafter_ != nullptr); + _impl_.executeafter_->Clear(); + } + if (cached_has_bits & 0x00000004u) { + ABSL_DCHECK(_impl_.delay_execution_ != nullptr); + _impl_.delay_execution_->Clear(); + } } ::memset(&_impl_.remote_storage_target_, 0, static_cast<::size_t>( reinterpret_cast(&_impl_.stub_local_) - @@ -6316,7 +6408,7 @@ PROTOBUF_NOINLINE void WorkRequest::Clear() { } // optional int32 priority = 9; - if (cached_has_bits & 0x00000002u) { + if (cached_has_bits & 0x00000008u) { target = ::google::protobuf::internal::WireFormatLite:: WriteInt32ToArrayWithField<9>( stream, this_._internal_priority(), target); @@ -6344,6 +6436,20 @@ PROTOBUF_NOINLINE void WorkRequest::Clear() { default: break; } + // .google.protobuf.Timestamp ExecuteAfter = 13; + if (cached_has_bits & 0x00000002u) { + target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage( + 13, *this_._impl_.executeafter_, this_._impl_.executeafter_->GetCachedSize(), target, + stream); + } + + // .google.protobuf.Duration delay_execution = 14; + if (cached_has_bits & 0x00000004u) { + target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage( + 14, *this_._impl_.delay_execution_, this_._impl_.delay_execution_->GetCachedSize(), target, + stream); + } + if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) { target = ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( @@ -6390,13 +6496,23 @@ PROTOBUF_NOINLINE void WorkRequest::Clear() { this_._internal_path()); } } - { + cached_has_bits = this_._impl_._has_bits_[0]; + if (cached_has_bits & 0x00000007u) { // .flex.WorkRequest.Segment segment = 5; - cached_has_bits = this_._impl_._has_bits_[0]; if (cached_has_bits & 0x00000001u) { total_size += 1 + ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.segment_); } + // .google.protobuf.Timestamp ExecuteAfter = 13; + if (cached_has_bits & 0x00000002u) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.executeafter_); + } + // .google.protobuf.Duration delay_execution = 14; + if (cached_has_bits & 0x00000004u) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.delay_execution_); + } } { // uint32 remote_storage_target = 6; @@ -6411,7 +6527,7 @@ PROTOBUF_NOINLINE void WorkRequest::Clear() { } { // optional int32 priority = 9; - if (cached_has_bits & 0x00000002u) { + if (cached_has_bits & 0x00000008u) { total_size += ::_pbi::WireFormatLite::Int32SizePlusOne( this_._internal_priority()); } @@ -6465,13 +6581,33 @@ void WorkRequest::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::goo _this->_internal_set_path(from._internal_path()); } cached_has_bits = from._impl_._has_bits_[0]; - if (cached_has_bits & 0x00000001u) { - ABSL_DCHECK(from._impl_.segment_ != nullptr); - if (_this->_impl_.segment_ == nullptr) { - _this->_impl_.segment_ = - ::google::protobuf::Message::CopyConstruct<::flex::WorkRequest_Segment>(arena, *from._impl_.segment_); - } else { - _this->_impl_.segment_->MergeFrom(*from._impl_.segment_); + if (cached_has_bits & 0x00000007u) { + if (cached_has_bits & 0x00000001u) { + ABSL_DCHECK(from._impl_.segment_ != nullptr); + if (_this->_impl_.segment_ == nullptr) { + _this->_impl_.segment_ = + ::google::protobuf::Message::CopyConstruct<::flex::WorkRequest_Segment>(arena, *from._impl_.segment_); + } else { + _this->_impl_.segment_->MergeFrom(*from._impl_.segment_); + } + } + if (cached_has_bits & 0x00000002u) { + ABSL_DCHECK(from._impl_.executeafter_ != nullptr); + if (_this->_impl_.executeafter_ == nullptr) { + _this->_impl_.executeafter_ = + ::google::protobuf::Message::CopyConstruct<::google::protobuf::Timestamp>(arena, *from._impl_.executeafter_); + } else { + _this->_impl_.executeafter_->MergeFrom(*from._impl_.executeafter_); + } + } + if (cached_has_bits & 0x00000004u) { + ABSL_DCHECK(from._impl_.delay_execution_ != nullptr); + if (_this->_impl_.delay_execution_ == nullptr) { + _this->_impl_.delay_execution_ = + ::google::protobuf::Message::CopyConstruct<::google::protobuf::Duration>(arena, *from._impl_.delay_execution_); + } else { + _this->_impl_.delay_execution_->MergeFrom(*from._impl_.delay_execution_); + } } } if (from._internal_remote_storage_target() != 0) { @@ -6480,7 +6616,7 @@ 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) { + if (cached_has_bits & 0x00000008u) { _this->_impl_.priority_ = from._impl_.priority_; } _this->_impl_._has_bits_[0] |= cached_has_bits; @@ -11536,6 +11672,256 @@ ::google::protobuf::Metadata RemoteStorageTarget_Azure::GetMetadata() const { } // =================================================================== +class RemoteStorageTarget_XtreemStore::_Internal { + public: + using HasBits = + decltype(std::declval()._impl_._has_bits_); + static constexpr ::int32_t kHasBitsOffset = + 8 * PROTOBUF_FIELD_OFFSET(RemoteStorageTarget_XtreemStore, _impl_._has_bits_); +}; + +RemoteStorageTarget_XtreemStore::RemoteStorageTarget_XtreemStore(::google::protobuf::Arena* arena) +#if defined(PROTOBUF_CUSTOM_VTABLE) + : ::google::protobuf::Message(arena, _class_data_.base()) { +#else // PROTOBUF_CUSTOM_VTABLE + : ::google::protobuf::Message(arena) { +#endif // PROTOBUF_CUSTOM_VTABLE + SharedCtor(arena); + // @@protoc_insertion_point(arena_constructor:flex.RemoteStorageTarget.XtreemStore) +} +inline PROTOBUF_NDEBUG_INLINE RemoteStorageTarget_XtreemStore::Impl_::Impl_( + ::google::protobuf::internal::InternalVisibility visibility, ::google::protobuf::Arena* arena, + const Impl_& from, const ::flex::RemoteStorageTarget_XtreemStore& from_msg) + : _has_bits_{from._has_bits_}, + _cached_size_{0} {} + +RemoteStorageTarget_XtreemStore::RemoteStorageTarget_XtreemStore( + ::google::protobuf::Arena* arena, + const RemoteStorageTarget_XtreemStore& from) +#if defined(PROTOBUF_CUSTOM_VTABLE) + : ::google::protobuf::Message(arena, _class_data_.base()) { +#else // PROTOBUF_CUSTOM_VTABLE + : ::google::protobuf::Message(arena) { +#endif // PROTOBUF_CUSTOM_VTABLE + RemoteStorageTarget_XtreemStore* const _this = this; + (void)_this; + _internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>( + from._internal_metadata_); + new (&_impl_) Impl_(internal_visibility(), arena, from._impl_, from); + ::uint32_t cached_has_bits = _impl_._has_bits_[0]; + _impl_.s3_ = (cached_has_bits & 0x00000001u) ? ::google::protobuf::Message::CopyConstruct<::flex::RemoteStorageTarget_S3>( + arena, *from._impl_.s3_) + : nullptr; + + // @@protoc_insertion_point(copy_constructor:flex.RemoteStorageTarget.XtreemStore) +} +inline PROTOBUF_NDEBUG_INLINE RemoteStorageTarget_XtreemStore::Impl_::Impl_( + ::google::protobuf::internal::InternalVisibility visibility, + ::google::protobuf::Arena* arena) + : _cached_size_{0} {} + +inline void RemoteStorageTarget_XtreemStore::SharedCtor(::_pb::Arena* arena) { + new (&_impl_) Impl_(internal_visibility(), arena); + _impl_.s3_ = {}; +} +RemoteStorageTarget_XtreemStore::~RemoteStorageTarget_XtreemStore() { + // @@protoc_insertion_point(destructor:flex.RemoteStorageTarget.XtreemStore) + SharedDtor(*this); +} +inline void RemoteStorageTarget_XtreemStore::SharedDtor(MessageLite& self) { + RemoteStorageTarget_XtreemStore& this_ = static_cast(self); + this_._internal_metadata_.Delete<::google::protobuf::UnknownFieldSet>(); + ABSL_DCHECK(this_.GetArena() == nullptr); + delete this_._impl_.s3_; + this_._impl_.~Impl_(); +} + +inline void* RemoteStorageTarget_XtreemStore::PlacementNew_(const void*, void* mem, + ::google::protobuf::Arena* arena) { + return ::new (mem) RemoteStorageTarget_XtreemStore(arena); +} +constexpr auto RemoteStorageTarget_XtreemStore::InternalNewImpl_() { + return ::google::protobuf::internal::MessageCreator::ZeroInit(sizeof(RemoteStorageTarget_XtreemStore), + alignof(RemoteStorageTarget_XtreemStore)); +} +PROTOBUF_CONSTINIT +PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 +const ::google::protobuf::internal::ClassDataFull RemoteStorageTarget_XtreemStore::_class_data_ = { + ::google::protobuf::internal::ClassData{ + &_RemoteStorageTarget_XtreemStore_default_instance_._instance, + &_table_.header, + nullptr, // OnDemandRegisterArenaDtor + nullptr, // IsInitialized + &RemoteStorageTarget_XtreemStore::MergeImpl, + ::google::protobuf::Message::GetNewImpl(), +#if defined(PROTOBUF_CUSTOM_VTABLE) + &RemoteStorageTarget_XtreemStore::SharedDtor, + ::google::protobuf::Message::GetClearImpl(), &RemoteStorageTarget_XtreemStore::ByteSizeLong, + &RemoteStorageTarget_XtreemStore::_InternalSerialize, +#endif // PROTOBUF_CUSTOM_VTABLE + PROTOBUF_FIELD_OFFSET(RemoteStorageTarget_XtreemStore, _impl_._cached_size_), + false, + }, + &RemoteStorageTarget_XtreemStore::kDescriptorMethods, + &descriptor_table_flex_2eproto, + nullptr, // tracker +}; +const ::google::protobuf::internal::ClassData* RemoteStorageTarget_XtreemStore::GetClassData() const { + ::google::protobuf::internal::PrefetchToLocalCache(&_class_data_); + ::google::protobuf::internal::PrefetchToLocalCache(_class_data_.tc_table); + return _class_data_.base(); +} +PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 +const ::_pbi::TcParseTable<0, 1, 1, 0, 2> RemoteStorageTarget_XtreemStore::_table_ = { + { + PROTOBUF_FIELD_OFFSET(RemoteStorageTarget_XtreemStore, _impl_._has_bits_), + 0, // no _extensions_ + 1, 0, // max_field_number, fast_idx_mask + offsetof(decltype(_table_), field_lookup_table), + 4294967294, // skipmap + offsetof(decltype(_table_), field_entries), + 1, // num_field_entries + 1, // num_aux_entries + offsetof(decltype(_table_), aux_entries), + _class_data_.base(), + nullptr, // post_loop_handler + ::_pbi::TcParser::GenericFallback, // fallback + #ifdef PROTOBUF_PREFETCH_PARSE_TABLE + ::_pbi::TcParser::GetTable<::flex::RemoteStorageTarget_XtreemStore>(), // to_prefetch + #endif // PROTOBUF_PREFETCH_PARSE_TABLE + }, {{ + // .flex.RemoteStorageTarget.S3 s3 = 1; + {::_pbi::TcParser::FastMtS1, + {10, 0, 0, PROTOBUF_FIELD_OFFSET(RemoteStorageTarget_XtreemStore, _impl_.s3_)}}, + }}, {{ + 65535, 65535 + }}, {{ + // .flex.RemoteStorageTarget.S3 s3 = 1; + {PROTOBUF_FIELD_OFFSET(RemoteStorageTarget_XtreemStore, _impl_.s3_), _Internal::kHasBitsOffset + 0, 0, + (0 | ::_fl::kFcOptional | ::_fl::kMessage | ::_fl::kTvTable)}, + }}, {{ + {::_pbi::TcParser::GetTable<::flex::RemoteStorageTarget_S3>()}, + }}, {{ + }}, +}; + +PROTOBUF_NOINLINE void RemoteStorageTarget_XtreemStore::Clear() { +// @@protoc_insertion_point(message_clear_start:flex.RemoteStorageTarget.XtreemStore) + ::google::protobuf::internal::TSanWrite(&_impl_); + ::uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void) cached_has_bits; + + cached_has_bits = _impl_._has_bits_[0]; + if (cached_has_bits & 0x00000001u) { + ABSL_DCHECK(_impl_.s3_ != nullptr); + _impl_.s3_->Clear(); + } + _impl_._has_bits_.Clear(); + _internal_metadata_.Clear<::google::protobuf::UnknownFieldSet>(); +} + +#if defined(PROTOBUF_CUSTOM_VTABLE) + ::uint8_t* RemoteStorageTarget_XtreemStore::_InternalSerialize( + const MessageLite& base, ::uint8_t* target, + ::google::protobuf::io::EpsCopyOutputStream* stream) { + const RemoteStorageTarget_XtreemStore& this_ = static_cast(base); +#else // PROTOBUF_CUSTOM_VTABLE + ::uint8_t* RemoteStorageTarget_XtreemStore::_InternalSerialize( + ::uint8_t* target, + ::google::protobuf::io::EpsCopyOutputStream* stream) const { + const RemoteStorageTarget_XtreemStore& this_ = *this; +#endif // PROTOBUF_CUSTOM_VTABLE + // @@protoc_insertion_point(serialize_to_array_start:flex.RemoteStorageTarget.XtreemStore) + ::uint32_t cached_has_bits = 0; + (void)cached_has_bits; + + cached_has_bits = this_._impl_._has_bits_[0]; + // .flex.RemoteStorageTarget.S3 s3 = 1; + if (cached_has_bits & 0x00000001u) { + target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage( + 1, *this_._impl_.s3_, this_._impl_.s3_->GetCachedSize(), target, + stream); + } + + if (PROTOBUF_PREDICT_FALSE(this_._internal_metadata_.have_unknown_fields())) { + target = + ::_pbi::WireFormat::InternalSerializeUnknownFieldsToArray( + this_._internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance), target, stream); + } + // @@protoc_insertion_point(serialize_to_array_end:flex.RemoteStorageTarget.XtreemStore) + return target; + } + +#if defined(PROTOBUF_CUSTOM_VTABLE) + ::size_t RemoteStorageTarget_XtreemStore::ByteSizeLong(const MessageLite& base) { + const RemoteStorageTarget_XtreemStore& this_ = static_cast(base); +#else // PROTOBUF_CUSTOM_VTABLE + ::size_t RemoteStorageTarget_XtreemStore::ByteSizeLong() const { + const RemoteStorageTarget_XtreemStore& this_ = *this; +#endif // PROTOBUF_CUSTOM_VTABLE + // @@protoc_insertion_point(message_byte_size_start:flex.RemoteStorageTarget.XtreemStore) + ::size_t total_size = 0; + + ::uint32_t cached_has_bits = 0; + // Prevent compiler warnings about cached_has_bits being unused + (void)cached_has_bits; + + { + // .flex.RemoteStorageTarget.S3 s3 = 1; + cached_has_bits = this_._impl_._has_bits_[0]; + if (cached_has_bits & 0x00000001u) { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.s3_); + } + } + return this_.MaybeComputeUnknownFieldsSize(total_size, + &this_._impl_._cached_size_); + } + +void RemoteStorageTarget_XtreemStore::MergeImpl(::google::protobuf::MessageLite& to_msg, const ::google::protobuf::MessageLite& from_msg) { + auto* const _this = static_cast(&to_msg); + auto& from = static_cast(from_msg); + ::google::protobuf::Arena* arena = _this->GetArena(); + // @@protoc_insertion_point(class_specific_merge_from_start:flex.RemoteStorageTarget.XtreemStore) + ABSL_DCHECK_NE(&from, _this); + ::uint32_t cached_has_bits = 0; + (void) cached_has_bits; + + cached_has_bits = from._impl_._has_bits_[0]; + if (cached_has_bits & 0x00000001u) { + ABSL_DCHECK(from._impl_.s3_ != nullptr); + if (_this->_impl_.s3_ == nullptr) { + _this->_impl_.s3_ = + ::google::protobuf::Message::CopyConstruct<::flex::RemoteStorageTarget_S3>(arena, *from._impl_.s3_); + } else { + _this->_impl_.s3_->MergeFrom(*from._impl_.s3_); + } + } + _this->_impl_._has_bits_[0] |= cached_has_bits; + _this->_internal_metadata_.MergeFrom<::google::protobuf::UnknownFieldSet>(from._internal_metadata_); +} + +void RemoteStorageTarget_XtreemStore::CopyFrom(const RemoteStorageTarget_XtreemStore& from) { +// @@protoc_insertion_point(class_specific_copy_from_start:flex.RemoteStorageTarget.XtreemStore) + if (&from == this) return; + Clear(); + MergeFrom(from); +} + + +void RemoteStorageTarget_XtreemStore::InternalSwap(RemoteStorageTarget_XtreemStore* PROTOBUF_RESTRICT other) { + using std::swap; + _internal_metadata_.InternalSwap(&other->_internal_metadata_); + swap(_impl_._has_bits_[0], other->_impl_._has_bits_[0]); + swap(_impl_.s3_, other->_impl_.s3_); +} + +::google::protobuf::Metadata RemoteStorageTarget_XtreemStore::GetMetadata() const { + return ::google::protobuf::Message::GetMetadataImpl(GetClassData()->full()); +} +// =================================================================== + class RemoteStorageTarget_POSIX::_Internal { public: }; @@ -11816,6 +12202,19 @@ void RemoteStorageTarget::set_allocated_azure(::flex::RemoteStorageTarget_Azure* } // @@protoc_insertion_point(field_set_allocated:flex.RemoteStorageTarget.azure) } +void RemoteStorageTarget::set_allocated_xtreemstore(::flex::RemoteStorageTarget_XtreemStore* xtreemstore) { + ::google::protobuf::Arena* message_arena = GetArena(); + clear_type(); + if (xtreemstore) { + ::google::protobuf::Arena* submessage_arena = xtreemstore->GetArena(); + if (message_arena != submessage_arena) { + xtreemstore = ::google::protobuf::internal::GetOwnedMessage(message_arena, xtreemstore, submessage_arena); + } + set_has_xtreemstore(); + _impl_.type_.xtreemstore_ = xtreemstore; + } + // @@protoc_insertion_point(field_set_allocated:flex.RemoteStorageTarget.xtreemstore) +} RemoteStorageTarget::RemoteStorageTarget(::google::protobuf::Arena* arena) #if defined(PROTOBUF_CUSTOM_VTABLE) : ::google::protobuf::Message(arena, _class_data_.base()) { @@ -11867,6 +12266,9 @@ RemoteStorageTarget::RemoteStorageTarget( case kMock: new (&_impl_.type_.mock_) decltype(_impl_.type_.mock_){arena, from._impl_.type_.mock_}; break; + case kXtreemstore: + _impl_.type_.xtreemstore_ = ::google::protobuf::Message::CopyConstruct<::flex::RemoteStorageTarget_XtreemStore>(arena, *from._impl_.type_.xtreemstore_); + break; } // @@protoc_insertion_point(copy_constructor:flex.RemoteStorageTarget) @@ -11936,6 +12338,14 @@ void RemoteStorageTarget::clear_type() { _impl_.type_.mock_.Destroy(); break; } + case kXtreemstore: { + if (GetArena() == nullptr) { + delete _impl_.type_.xtreemstore_; + } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) { + ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.type_.xtreemstore_); + } + break; + } case TYPE_NOT_SET: { break; } @@ -11980,16 +12390,16 @@ const ::google::protobuf::internal::ClassData* RemoteStorageTarget::GetClassData return _class_data_.base(); } PROTOBUF_CONSTINIT PROTOBUF_ATTRIBUTE_INIT_PRIORITY1 -const ::_pbi::TcParseTable<2, 7, 4, 41, 2> RemoteStorageTarget::_table_ = { +const ::_pbi::TcParseTable<2, 8, 5, 49, 2> RemoteStorageTarget::_table_ = { { PROTOBUF_FIELD_OFFSET(RemoteStorageTarget, _impl_._has_bits_), 0, // no _extensions_ - 7, 24, // max_field_number, fast_idx_mask + 8, 24, // max_field_number, fast_idx_mask offsetof(decltype(_table_), field_lookup_table), - 4294967168, // skipmap + 4294967040, // skipmap offsetof(decltype(_table_), field_entries), - 7, // num_field_entries - 4, // num_aux_entries + 8, // num_field_entries + 5, // num_aux_entries offsetof(decltype(_table_), aux_entries), _class_data_.base(), nullptr, // post_loop_handler @@ -12032,13 +12442,17 @@ const ::_pbi::TcParseTable<2, 7, 4, 41, 2> RemoteStorageTarget::_table_ = { // string mock = 7; {PROTOBUF_FIELD_OFFSET(RemoteStorageTarget, _impl_.type_.mock_), _Internal::kOneofCaseOffset + 0, 0, (0 | ::_fl::kFcOneof | ::_fl::kUtf8String | ::_fl::kRepAString)}, + // .flex.RemoteStorageTarget.XtreemStore xtreemstore = 8; + {PROTOBUF_FIELD_OFFSET(RemoteStorageTarget, _impl_.type_.xtreemstore_), _Internal::kOneofCaseOffset + 0, 4, + (0 | ::_fl::kFcOneof | ::_fl::kMessage | ::_fl::kTvTable)}, }}, {{ {::_pbi::TcParser::GetTable<::flex::RemoteStorageTarget_Policies>()}, {::_pbi::TcParser::GetTable<::flex::RemoteStorageTarget_S3>()}, {::_pbi::TcParser::GetTable<::flex::RemoteStorageTarget_POSIX>()}, {::_pbi::TcParser::GetTable<::flex::RemoteStorageTarget_Azure>()}, + {::_pbi::TcParser::GetTable<::flex::RemoteStorageTarget_XtreemStore>()}, }}, {{ - "\30\0\4\0\0\0\0\4" + "\30\0\4\0\0\0\0\4\0\0\0\0\0\0\0\0" "flex.RemoteStorageTarget" "name" "mock" @@ -12128,6 +12542,12 @@ PROTOBUF_NOINLINE void RemoteStorageTarget::Clear() { target = stream->WriteStringMaybeAliased(7, _s, target); break; } + case kXtreemstore: { + target = ::google::protobuf::internal::WireFormatLite::InternalWriteMessage( + 8, *this_._impl_.type_.xtreemstore_, this_._impl_.type_.xtreemstore_->GetCachedSize(), target, + stream); + break; + } default: break; } @@ -12202,6 +12622,12 @@ PROTOBUF_NOINLINE void RemoteStorageTarget::Clear() { this_._internal_mock()); break; } + // .flex.RemoteStorageTarget.XtreemStore xtreemstore = 8; + case kXtreemstore: { + total_size += 1 + + ::google::protobuf::internal::WireFormatLite::MessageSize(*this_._impl_.type_.xtreemstore_); + break; + } case TYPE_NOT_SET: { break; } @@ -12281,6 +12707,15 @@ void RemoteStorageTarget::MergeImpl(::google::protobuf::MessageLite& to_msg, con _this->_impl_.type_.mock_.Set(from._internal_mock(), arena); break; } + case kXtreemstore: { + if (oneof_needs_init) { + _this->_impl_.type_.xtreemstore_ = + ::google::protobuf::Message::CopyConstruct<::flex::RemoteStorageTarget_XtreemStore>(arena, *from._impl_.type_.xtreemstore_); + } else { + _this->_impl_.type_.xtreemstore_->MergeFrom(from._internal_xtreemstore()); + } + break; + } case TYPE_NOT_SET: break; } diff --git a/cpp/flex.pb.h b/cpp/flex.pb.h index 4c8943b..e242931 100644 --- a/cpp/flex.pb.h +++ b/cpp/flex.pb.h @@ -34,6 +34,7 @@ #include "google/protobuf/map_field_inl.h" #include "google/protobuf/generated_enum_reflection.h" #include "google/protobuf/unknown_field_set.h" +#include "google/protobuf/duration.pb.h" #include "google/protobuf/timestamp.pb.h" // @@protoc_insertion_point(includes) @@ -130,6 +131,9 @@ extern RemoteStorageTarget_S3_StorageClassDefaultTypeInternal _RemoteStorageTarg class RemoteStorageTarget_S3_StorageClass_Archival; struct RemoteStorageTarget_S3_StorageClass_ArchivalDefaultTypeInternal; extern RemoteStorageTarget_S3_StorageClass_ArchivalDefaultTypeInternal _RemoteStorageTarget_S3_StorageClass_Archival_default_instance_; +class RemoteStorageTarget_XtreemStore; +struct RemoteStorageTarget_XtreemStoreDefaultTypeInternal; +extern RemoteStorageTarget_XtreemStoreDefaultTypeInternal _RemoteStorageTarget_XtreemStore_default_instance_; class SubmitWorkRequest; struct SubmitWorkRequestDefaultTypeInternal; extern SubmitWorkRequestDefaultTypeInternal _SubmitWorkRequest_default_instance_; @@ -2072,7 +2076,7 @@ class RemoteStorageTarget_POSIX final : public ::google::protobuf::Message return reinterpret_cast( &_RemoteStorageTarget_POSIX_default_instance_); } - static constexpr int kIndexInFileMessages = 29; + static constexpr int kIndexInFileMessages = 30; friend void swap(RemoteStorageTarget_POSIX& a, RemoteStorageTarget_POSIX& b) { a.Swap(&b); } inline void Swap(RemoteStorageTarget_POSIX* other) { if (other == this) return; @@ -2496,7 +2500,7 @@ class GetCapabilitiesRequest final : public ::google::protobuf::internal::ZeroFi return reinterpret_cast( &_GetCapabilitiesRequest_default_instance_); } - static constexpr int kIndexInFileMessages = 31; + static constexpr int kIndexInFileMessages = 32; friend void swap(GetCapabilitiesRequest& a, GetCapabilitiesRequest& b) { a.Swap(&b); } inline void Swap(GetCapabilitiesRequest* other) { if (other == this) return; @@ -2642,7 +2646,7 @@ class Feature final : public ::google::protobuf::Message return reinterpret_cast( &_Feature_default_instance_); } - static constexpr int kIndexInFileMessages = 35; + static constexpr int kIndexInFileMessages = 36; friend void swap(Feature& a, Feature& b) { a.Swap(&b); } inline void Swap(Feature* other) { if (other == this) return; @@ -3296,7 +3300,7 @@ class BuildInfo final : public ::google::protobuf::Message return reinterpret_cast( &_BuildInfo_default_instance_); } - static constexpr int kIndexInFileMessages = 36; + static constexpr int kIndexInFileMessages = 37; friend void swap(BuildInfo& a, BuildInfo& b) { a.Swap(&b); } inline void Swap(BuildInfo* other) { if (other == this) return; @@ -6647,7 +6651,7 @@ class GetCapabilitiesResponse final : public ::google::protobuf::Message return reinterpret_cast( &_GetCapabilitiesResponse_default_instance_); } - static constexpr int kIndexInFileMessages = 33; + static constexpr int kIndexInFileMessages = 34; friend void swap(GetCapabilitiesResponse& a, GetCapabilitiesResponse& b) { a.Swap(&b); } inline void Swap(GetCapabilitiesResponse* other) { if (other == this) return; @@ -6821,6 +6825,202 @@ class GetCapabilitiesResponse final : public ::google::protobuf::Message }; // ------------------------------------------------------------------- +class RemoteStorageTarget_XtreemStore final : public ::google::protobuf::Message +/* @@protoc_insertion_point(class_definition:flex.RemoteStorageTarget.XtreemStore) */ { + public: + inline RemoteStorageTarget_XtreemStore() : RemoteStorageTarget_XtreemStore(nullptr) {} + ~RemoteStorageTarget_XtreemStore() PROTOBUF_FINAL; + +#if defined(PROTOBUF_CUSTOM_VTABLE) + void operator delete(RemoteStorageTarget_XtreemStore* msg, std::destroying_delete_t) { + SharedDtor(*msg); + ::google::protobuf::internal::SizedDelete(msg, sizeof(RemoteStorageTarget_XtreemStore)); + } +#endif + + template + explicit PROTOBUF_CONSTEXPR RemoteStorageTarget_XtreemStore( + ::google::protobuf::internal::ConstantInitialized); + + inline RemoteStorageTarget_XtreemStore(const RemoteStorageTarget_XtreemStore& from) : RemoteStorageTarget_XtreemStore(nullptr, from) {} + inline RemoteStorageTarget_XtreemStore(RemoteStorageTarget_XtreemStore&& from) noexcept + : RemoteStorageTarget_XtreemStore(nullptr, std::move(from)) {} + inline RemoteStorageTarget_XtreemStore& operator=(const RemoteStorageTarget_XtreemStore& from) { + CopyFrom(from); + return *this; + } + inline RemoteStorageTarget_XtreemStore& operator=(RemoteStorageTarget_XtreemStore&& from) noexcept { + if (this == &from) return *this; + if (::google::protobuf::internal::CanMoveWithInternalSwap(GetArena(), from.GetArena())) { + InternalSwap(&from); + } else { + CopyFrom(from); + } + return *this; + } + + inline const ::google::protobuf::UnknownFieldSet& unknown_fields() const + ABSL_ATTRIBUTE_LIFETIME_BOUND { + return _internal_metadata_.unknown_fields<::google::protobuf::UnknownFieldSet>(::google::protobuf::UnknownFieldSet::default_instance); + } + inline ::google::protobuf::UnknownFieldSet* mutable_unknown_fields() + ABSL_ATTRIBUTE_LIFETIME_BOUND { + return _internal_metadata_.mutable_unknown_fields<::google::protobuf::UnknownFieldSet>(); + } + + static const ::google::protobuf::Descriptor* descriptor() { + return GetDescriptor(); + } + static const ::google::protobuf::Descriptor* GetDescriptor() { + return default_instance().GetMetadata().descriptor; + } + static const ::google::protobuf::Reflection* GetReflection() { + return default_instance().GetMetadata().reflection; + } + static const RemoteStorageTarget_XtreemStore& default_instance() { + return *internal_default_instance(); + } + static inline const RemoteStorageTarget_XtreemStore* internal_default_instance() { + return reinterpret_cast( + &_RemoteStorageTarget_XtreemStore_default_instance_); + } + static constexpr int kIndexInFileMessages = 29; + friend void swap(RemoteStorageTarget_XtreemStore& a, RemoteStorageTarget_XtreemStore& b) { a.Swap(&b); } + inline void Swap(RemoteStorageTarget_XtreemStore* other) { + if (other == this) return; + if (::google::protobuf::internal::CanUseInternalSwap(GetArena(), other->GetArena())) { + InternalSwap(other); + } else { + ::google::protobuf::internal::GenericSwap(this, other); + } + } + void UnsafeArenaSwap(RemoteStorageTarget_XtreemStore* other) { + if (other == this) return; + ABSL_DCHECK(GetArena() == other->GetArena()); + InternalSwap(other); + } + + // implements Message ---------------------------------------------- + + RemoteStorageTarget_XtreemStore* New(::google::protobuf::Arena* arena = nullptr) const { + return ::google::protobuf::Message::DefaultConstruct(arena); + } + using ::google::protobuf::Message::CopyFrom; + void CopyFrom(const RemoteStorageTarget_XtreemStore& from); + using ::google::protobuf::Message::MergeFrom; + void MergeFrom(const RemoteStorageTarget_XtreemStore& from) { RemoteStorageTarget_XtreemStore::MergeImpl(*this, from); } + + private: + static void MergeImpl( + ::google::protobuf::MessageLite& to_msg, + const ::google::protobuf::MessageLite& from_msg); + + public: + bool IsInitialized() const { + return true; + } + ABSL_ATTRIBUTE_REINITIALIZES void Clear() PROTOBUF_FINAL; + #if defined(PROTOBUF_CUSTOM_VTABLE) + private: + static ::size_t ByteSizeLong(const ::google::protobuf::MessageLite& msg); + static ::uint8_t* _InternalSerialize( + const MessageLite& msg, ::uint8_t* target, + ::google::protobuf::io::EpsCopyOutputStream* stream); + + public: + ::size_t ByteSizeLong() const { return ByteSizeLong(*this); } + ::uint8_t* _InternalSerialize( + ::uint8_t* target, + ::google::protobuf::io::EpsCopyOutputStream* stream) const { + return _InternalSerialize(*this, target, stream); + } + #else // PROTOBUF_CUSTOM_VTABLE + ::size_t ByteSizeLong() const final; + ::uint8_t* _InternalSerialize( + ::uint8_t* target, + ::google::protobuf::io::EpsCopyOutputStream* stream) const final; + #endif // PROTOBUF_CUSTOM_VTABLE + int GetCachedSize() const { return _impl_._cached_size_.Get(); } + + private: + void SharedCtor(::google::protobuf::Arena* arena); + static void SharedDtor(MessageLite& self); + void InternalSwap(RemoteStorageTarget_XtreemStore* other); + private: + template + friend ::absl::string_view( + ::google::protobuf::internal::GetAnyMessageName)(); + static ::absl::string_view FullMessageName() { return "flex.RemoteStorageTarget.XtreemStore"; } + + protected: + explicit RemoteStorageTarget_XtreemStore(::google::protobuf::Arena* arena); + RemoteStorageTarget_XtreemStore(::google::protobuf::Arena* arena, const RemoteStorageTarget_XtreemStore& from); + RemoteStorageTarget_XtreemStore(::google::protobuf::Arena* arena, RemoteStorageTarget_XtreemStore&& from) noexcept + : RemoteStorageTarget_XtreemStore(arena) { + *this = ::std::move(from); + } + const ::google::protobuf::internal::ClassData* GetClassData() const PROTOBUF_FINAL; + static void* PlacementNew_(const void*, void* mem, + ::google::protobuf::Arena* arena); + static constexpr auto InternalNewImpl_(); + static const ::google::protobuf::internal::ClassDataFull _class_data_; + + public: + ::google::protobuf::Metadata GetMetadata() const; + // nested types ---------------------------------------------------- + + // accessors ------------------------------------------------------- + enum : int { + kS3FieldNumber = 1, + }; + // .flex.RemoteStorageTarget.S3 s3 = 1; + bool has_s3() const; + void clear_s3() ; + const ::flex::RemoteStorageTarget_S3& s3() const; + PROTOBUF_NODISCARD ::flex::RemoteStorageTarget_S3* release_s3(); + ::flex::RemoteStorageTarget_S3* mutable_s3(); + void set_allocated_s3(::flex::RemoteStorageTarget_S3* value); + void unsafe_arena_set_allocated_s3(::flex::RemoteStorageTarget_S3* value); + ::flex::RemoteStorageTarget_S3* unsafe_arena_release_s3(); + + private: + const ::flex::RemoteStorageTarget_S3& _internal_s3() const; + ::flex::RemoteStorageTarget_S3* _internal_mutable_s3(); + + public: + // @@protoc_insertion_point(class_scope:flex.RemoteStorageTarget.XtreemStore) + private: + class _Internal; + friend class ::google::protobuf::internal::TcParser; + static const ::google::protobuf::internal::TcParseTable< + 0, 1, 1, + 0, 2> + _table_; + + friend class ::google::protobuf::MessageLite; + friend class ::google::protobuf::Arena; + template + friend class ::google::protobuf::Arena::InternalHelper; + using InternalArenaConstructable_ = void; + using DestructorSkippable_ = void; + struct Impl_ { + inline explicit constexpr Impl_( + ::google::protobuf::internal::ConstantInitialized) noexcept; + inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility, + ::google::protobuf::Arena* arena); + inline explicit Impl_(::google::protobuf::internal::InternalVisibility visibility, + ::google::protobuf::Arena* arena, const Impl_& from, + const RemoteStorageTarget_XtreemStore& from_msg); + ::google::protobuf::internal::HasBits<1> _has_bits_; + ::google::protobuf::internal::CachedSize _cached_size_; + ::flex::RemoteStorageTarget_S3* s3_; + PROTOBUF_TSAN_DECLARE_MEMBER + }; + union { Impl_ _impl_; }; + friend struct ::TableStruct_flex_2eproto; +}; +// ------------------------------------------------------------------- + class RemoteStorageTarget_Azure final : public ::google::protobuf::Message /* @@protoc_insertion_point(class_definition:flex.RemoteStorageTarget.Azure) */ { public: @@ -7680,6 +7880,8 @@ class WorkRequest final : public ::google::protobuf::Message kExternalIdFieldNumber = 3, kPathFieldNumber = 4, kSegmentFieldNumber = 5, + kExecuteAfterFieldNumber = 13, + kDelayExecutionFieldNumber = 14, kRemoteStorageTargetFieldNumber = 6, kStubLocalFieldNumber = 8, kPriorityFieldNumber = 9, @@ -7765,6 +7967,36 @@ class WorkRequest final : public ::google::protobuf::Message const ::flex::WorkRequest_Segment& _internal_segment() const; ::flex::WorkRequest_Segment* _internal_mutable_segment(); + public: + // .google.protobuf.Timestamp ExecuteAfter = 13; + bool has_executeafter() const; + void clear_executeafter() ; + const ::google::protobuf::Timestamp& executeafter() const; + PROTOBUF_NODISCARD ::google::protobuf::Timestamp* release_executeafter(); + ::google::protobuf::Timestamp* mutable_executeafter(); + void set_allocated_executeafter(::google::protobuf::Timestamp* value); + void unsafe_arena_set_allocated_executeafter(::google::protobuf::Timestamp* value); + ::google::protobuf::Timestamp* unsafe_arena_release_executeafter(); + + private: + const ::google::protobuf::Timestamp& _internal_executeafter() const; + ::google::protobuf::Timestamp* _internal_mutable_executeafter(); + + public: + // .google.protobuf.Duration delay_execution = 14; + bool has_delay_execution() const; + void clear_delay_execution() ; + const ::google::protobuf::Duration& delay_execution() const; + PROTOBUF_NODISCARD ::google::protobuf::Duration* release_delay_execution(); + ::google::protobuf::Duration* mutable_delay_execution(); + void set_allocated_delay_execution(::google::protobuf::Duration* value); + void unsafe_arena_set_allocated_delay_execution(::google::protobuf::Duration* value); + ::google::protobuf::Duration* unsafe_arena_release_delay_execution(); + + private: + const ::google::protobuf::Duration& _internal_delay_execution() const; + ::google::protobuf::Duration* _internal_mutable_delay_execution(); + public: // uint32 remote_storage_target = 6; void clear_remote_storage_target() ; @@ -7866,7 +8098,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< - 4, 11, 4, + 4, 13, 6, 64, 2> _table_; @@ -7891,6 +8123,8 @@ class WorkRequest final : public ::google::protobuf::Message ::google::protobuf::internal::ArenaStringPtr external_id_; ::google::protobuf::internal::ArenaStringPtr path_; ::flex::WorkRequest_Segment* segment_; + ::google::protobuf::Timestamp* executeafter_; + ::google::protobuf::Duration* delay_execution_; ::uint32_t remote_storage_target_; bool stub_local_; ::int32_t priority_; @@ -7969,13 +8203,14 @@ class RemoteStorageTarget final : public ::google::protobuf::Message kPosix = 5, kAzure = 6, kMock = 7, + kXtreemstore = 8, TYPE_NOT_SET = 0, }; static inline const RemoteStorageTarget* internal_default_instance() { return reinterpret_cast( &_RemoteStorageTarget_default_instance_); } - static constexpr int kIndexInFileMessages = 30; + static constexpr int kIndexInFileMessages = 31; friend void swap(RemoteStorageTarget& a, RemoteStorageTarget& b) { a.Swap(&b); } inline void Swap(RemoteStorageTarget* other) { if (other == this) return; @@ -8062,6 +8297,7 @@ class RemoteStorageTarget final : public ::google::protobuf::Message using Policies = RemoteStorageTarget_Policies; using S3 = RemoteStorageTarget_S3; using Azure = RemoteStorageTarget_Azure; + using XtreemStore = RemoteStorageTarget_XtreemStore; using POSIX = RemoteStorageTarget_POSIX; // accessors ------------------------------------------------------- @@ -8073,6 +8309,7 @@ class RemoteStorageTarget final : public ::google::protobuf::Message kPosixFieldNumber = 5, kAzureFieldNumber = 6, kMockFieldNumber = 7, + kXtreemstoreFieldNumber = 8, }; // string name = 2; void clear_name() ; @@ -8188,6 +8425,25 @@ class RemoteStorageTarget final : public ::google::protobuf::Message const std::string& value); std::string* _internal_mutable_mock(); + public: + // .flex.RemoteStorageTarget.XtreemStore xtreemstore = 8; + bool has_xtreemstore() const; + private: + bool _internal_has_xtreemstore() const; + + public: + void clear_xtreemstore() ; + const ::flex::RemoteStorageTarget_XtreemStore& xtreemstore() const; + PROTOBUF_NODISCARD ::flex::RemoteStorageTarget_XtreemStore* release_xtreemstore(); + ::flex::RemoteStorageTarget_XtreemStore* mutable_xtreemstore(); + void set_allocated_xtreemstore(::flex::RemoteStorageTarget_XtreemStore* value); + void unsafe_arena_set_allocated_xtreemstore(::flex::RemoteStorageTarget_XtreemStore* value); + ::flex::RemoteStorageTarget_XtreemStore* unsafe_arena_release_xtreemstore(); + + private: + const ::flex::RemoteStorageTarget_XtreemStore& _internal_xtreemstore() const; + ::flex::RemoteStorageTarget_XtreemStore* _internal_mutable_xtreemstore(); + public: void clear_type(); TypeCase type_case() const; @@ -8198,12 +8454,13 @@ class RemoteStorageTarget final : public ::google::protobuf::Message void set_has_posix(); void set_has_azure(); void set_has_mock(); + void set_has_xtreemstore(); inline bool has_type() const; inline void clear_has_type(); friend class ::google::protobuf::internal::TcParser; static const ::google::protobuf::internal::TcParseTable< - 2, 7, 4, - 41, 2> + 2, 8, 5, + 49, 2> _table_; friend class ::google::protobuf::MessageLite; @@ -8232,6 +8489,7 @@ class RemoteStorageTarget final : public ::google::protobuf::Message ::flex::RemoteStorageTarget_POSIX* posix_; ::flex::RemoteStorageTarget_Azure* azure_; ::google::protobuf::internal::ArenaStringPtr mock_; + ::flex::RemoteStorageTarget_XtreemStore* xtreemstore_; } type_; ::uint32_t _oneof_case_[1]; PROTOBUF_TSAN_DECLARE_MEMBER @@ -11202,13 +11460,13 @@ inline void WorkRequest::_internal_set_stub_local(bool value) { // optional int32 priority = 9; inline bool WorkRequest::has_priority() const { - bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; + bool value = (_impl_._has_bits_[0] & 0x00000008u) != 0; return value; } inline void WorkRequest::clear_priority() { ::google::protobuf::internal::TSanWrite(&_impl_); _impl_.priority_ = 0; - _impl_._has_bits_[0] &= ~0x00000002u; + _impl_._has_bits_[0] &= ~0x00000008u; } inline ::int32_t WorkRequest::priority() const { // @@protoc_insertion_point(field_get:flex.WorkRequest.priority) @@ -11216,7 +11474,7 @@ inline ::int32_t WorkRequest::priority() const { } inline void WorkRequest::set_priority(::int32_t value) { _internal_set_priority(value); - _impl_._has_bits_[0] |= 0x00000002u; + _impl_._has_bits_[0] |= 0x00000008u; // @@protoc_insertion_point(field_set:flex.WorkRequest.priority) } inline ::int32_t WorkRequest::_internal_priority() const { @@ -11228,6 +11486,188 @@ inline void WorkRequest::_internal_set_priority(::int32_t value) { _impl_.priority_ = value; } +// .google.protobuf.Timestamp ExecuteAfter = 13; +inline bool WorkRequest::has_executeafter() const { + bool value = (_impl_._has_bits_[0] & 0x00000002u) != 0; + PROTOBUF_ASSUME(!value || _impl_.executeafter_ != nullptr); + return value; +} +inline const ::google::protobuf::Timestamp& WorkRequest::_internal_executeafter() const { + ::google::protobuf::internal::TSanRead(&_impl_); + const ::google::protobuf::Timestamp* p = _impl_.executeafter_; + return p != nullptr ? *p : reinterpret_cast(::google::protobuf::_Timestamp_default_instance_); +} +inline const ::google::protobuf::Timestamp& WorkRequest::executeafter() const ABSL_ATTRIBUTE_LIFETIME_BOUND { + // @@protoc_insertion_point(field_get:flex.WorkRequest.ExecuteAfter) + return _internal_executeafter(); +} +inline void WorkRequest::unsafe_arena_set_allocated_executeafter(::google::protobuf::Timestamp* value) { + ::google::protobuf::internal::TSanWrite(&_impl_); + if (GetArena() == nullptr) { + delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.executeafter_); + } + _impl_.executeafter_ = reinterpret_cast<::google::protobuf::Timestamp*>(value); + if (value != nullptr) { + _impl_._has_bits_[0] |= 0x00000002u; + } else { + _impl_._has_bits_[0] &= ~0x00000002u; + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:flex.WorkRequest.ExecuteAfter) +} +inline ::google::protobuf::Timestamp* WorkRequest::release_executeafter() { + ::google::protobuf::internal::TSanWrite(&_impl_); + + _impl_._has_bits_[0] &= ~0x00000002u; + ::google::protobuf::Timestamp* released = _impl_.executeafter_; + _impl_.executeafter_ = nullptr; + if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) { + auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released); + released = ::google::protobuf::internal::DuplicateIfNonNull(released); + if (GetArena() == nullptr) { + delete old; + } + } else { + if (GetArena() != nullptr) { + released = ::google::protobuf::internal::DuplicateIfNonNull(released); + } + } + return released; +} +inline ::google::protobuf::Timestamp* WorkRequest::unsafe_arena_release_executeafter() { + ::google::protobuf::internal::TSanWrite(&_impl_); + // @@protoc_insertion_point(field_release:flex.WorkRequest.ExecuteAfter) + + _impl_._has_bits_[0] &= ~0x00000002u; + ::google::protobuf::Timestamp* temp = _impl_.executeafter_; + _impl_.executeafter_ = nullptr; + return temp; +} +inline ::google::protobuf::Timestamp* WorkRequest::_internal_mutable_executeafter() { + ::google::protobuf::internal::TSanWrite(&_impl_); + if (_impl_.executeafter_ == nullptr) { + auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Timestamp>(GetArena()); + _impl_.executeafter_ = reinterpret_cast<::google::protobuf::Timestamp*>(p); + } + return _impl_.executeafter_; +} +inline ::google::protobuf::Timestamp* WorkRequest::mutable_executeafter() ABSL_ATTRIBUTE_LIFETIME_BOUND { + _impl_._has_bits_[0] |= 0x00000002u; + ::google::protobuf::Timestamp* _msg = _internal_mutable_executeafter(); + // @@protoc_insertion_point(field_mutable:flex.WorkRequest.ExecuteAfter) + return _msg; +} +inline void WorkRequest::set_allocated_executeafter(::google::protobuf::Timestamp* value) { + ::google::protobuf::Arena* message_arena = GetArena(); + ::google::protobuf::internal::TSanWrite(&_impl_); + if (message_arena == nullptr) { + delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.executeafter_); + } + + if (value != nullptr) { + ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena(); + if (message_arena != submessage_arena) { + value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena); + } + _impl_._has_bits_[0] |= 0x00000002u; + } else { + _impl_._has_bits_[0] &= ~0x00000002u; + } + + _impl_.executeafter_ = reinterpret_cast<::google::protobuf::Timestamp*>(value); + // @@protoc_insertion_point(field_set_allocated:flex.WorkRequest.ExecuteAfter) +} + +// .google.protobuf.Duration delay_execution = 14; +inline bool WorkRequest::has_delay_execution() const { + bool value = (_impl_._has_bits_[0] & 0x00000004u) != 0; + PROTOBUF_ASSUME(!value || _impl_.delay_execution_ != nullptr); + return value; +} +inline const ::google::protobuf::Duration& WorkRequest::_internal_delay_execution() const { + ::google::protobuf::internal::TSanRead(&_impl_); + const ::google::protobuf::Duration* p = _impl_.delay_execution_; + return p != nullptr ? *p : reinterpret_cast(::google::protobuf::_Duration_default_instance_); +} +inline const ::google::protobuf::Duration& WorkRequest::delay_execution() const ABSL_ATTRIBUTE_LIFETIME_BOUND { + // @@protoc_insertion_point(field_get:flex.WorkRequest.delay_execution) + return _internal_delay_execution(); +} +inline void WorkRequest::unsafe_arena_set_allocated_delay_execution(::google::protobuf::Duration* value) { + ::google::protobuf::internal::TSanWrite(&_impl_); + if (GetArena() == nullptr) { + delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.delay_execution_); + } + _impl_.delay_execution_ = reinterpret_cast<::google::protobuf::Duration*>(value); + if (value != nullptr) { + _impl_._has_bits_[0] |= 0x00000004u; + } else { + _impl_._has_bits_[0] &= ~0x00000004u; + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:flex.WorkRequest.delay_execution) +} +inline ::google::protobuf::Duration* WorkRequest::release_delay_execution() { + ::google::protobuf::internal::TSanWrite(&_impl_); + + _impl_._has_bits_[0] &= ~0x00000004u; + ::google::protobuf::Duration* released = _impl_.delay_execution_; + _impl_.delay_execution_ = nullptr; + if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) { + auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released); + released = ::google::protobuf::internal::DuplicateIfNonNull(released); + if (GetArena() == nullptr) { + delete old; + } + } else { + if (GetArena() != nullptr) { + released = ::google::protobuf::internal::DuplicateIfNonNull(released); + } + } + return released; +} +inline ::google::protobuf::Duration* WorkRequest::unsafe_arena_release_delay_execution() { + ::google::protobuf::internal::TSanWrite(&_impl_); + // @@protoc_insertion_point(field_release:flex.WorkRequest.delay_execution) + + _impl_._has_bits_[0] &= ~0x00000004u; + ::google::protobuf::Duration* temp = _impl_.delay_execution_; + _impl_.delay_execution_ = nullptr; + return temp; +} +inline ::google::protobuf::Duration* WorkRequest::_internal_mutable_delay_execution() { + ::google::protobuf::internal::TSanWrite(&_impl_); + if (_impl_.delay_execution_ == nullptr) { + auto* p = ::google::protobuf::Message::DefaultConstruct<::google::protobuf::Duration>(GetArena()); + _impl_.delay_execution_ = reinterpret_cast<::google::protobuf::Duration*>(p); + } + return _impl_.delay_execution_; +} +inline ::google::protobuf::Duration* WorkRequest::mutable_delay_execution() ABSL_ATTRIBUTE_LIFETIME_BOUND { + _impl_._has_bits_[0] |= 0x00000004u; + ::google::protobuf::Duration* _msg = _internal_mutable_delay_execution(); + // @@protoc_insertion_point(field_mutable:flex.WorkRequest.delay_execution) + return _msg; +} +inline void WorkRequest::set_allocated_delay_execution(::google::protobuf::Duration* value) { + ::google::protobuf::Arena* message_arena = GetArena(); + ::google::protobuf::internal::TSanWrite(&_impl_); + if (message_arena == nullptr) { + delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.delay_execution_); + } + + if (value != nullptr) { + ::google::protobuf::Arena* submessage_arena = reinterpret_cast<::google::protobuf::MessageLite*>(value)->GetArena(); + if (message_arena != submessage_arena) { + value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena); + } + _impl_._has_bits_[0] |= 0x00000004u; + } else { + _impl_._has_bits_[0] &= ~0x00000004u; + } + + _impl_.delay_execution_ = reinterpret_cast<::google::protobuf::Duration*>(value); + // @@protoc_insertion_point(field_set_allocated:flex.WorkRequest.delay_execution) +} + inline bool WorkRequest::has_Type() const { return Type_case() != TYPE_NOT_SET; } @@ -14118,6 +14558,106 @@ inline void RemoteStorageTarget_Azure::set_allocated_account(std::string* value) // ------------------------------------------------------------------- +// RemoteStorageTarget_XtreemStore + +// .flex.RemoteStorageTarget.S3 s3 = 1; +inline bool RemoteStorageTarget_XtreemStore::has_s3() const { + bool value = (_impl_._has_bits_[0] & 0x00000001u) != 0; + PROTOBUF_ASSUME(!value || _impl_.s3_ != nullptr); + return value; +} +inline void RemoteStorageTarget_XtreemStore::clear_s3() { + ::google::protobuf::internal::TSanWrite(&_impl_); + if (_impl_.s3_ != nullptr) _impl_.s3_->Clear(); + _impl_._has_bits_[0] &= ~0x00000001u; +} +inline const ::flex::RemoteStorageTarget_S3& RemoteStorageTarget_XtreemStore::_internal_s3() const { + ::google::protobuf::internal::TSanRead(&_impl_); + const ::flex::RemoteStorageTarget_S3* p = _impl_.s3_; + return p != nullptr ? *p : reinterpret_cast(::flex::_RemoteStorageTarget_S3_default_instance_); +} +inline const ::flex::RemoteStorageTarget_S3& RemoteStorageTarget_XtreemStore::s3() const ABSL_ATTRIBUTE_LIFETIME_BOUND { + // @@protoc_insertion_point(field_get:flex.RemoteStorageTarget.XtreemStore.s3) + return _internal_s3(); +} +inline void RemoteStorageTarget_XtreemStore::unsafe_arena_set_allocated_s3(::flex::RemoteStorageTarget_S3* value) { + ::google::protobuf::internal::TSanWrite(&_impl_); + if (GetArena() == nullptr) { + delete reinterpret_cast<::google::protobuf::MessageLite*>(_impl_.s3_); + } + _impl_.s3_ = reinterpret_cast<::flex::RemoteStorageTarget_S3*>(value); + if (value != nullptr) { + _impl_._has_bits_[0] |= 0x00000001u; + } else { + _impl_._has_bits_[0] &= ~0x00000001u; + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:flex.RemoteStorageTarget.XtreemStore.s3) +} +inline ::flex::RemoteStorageTarget_S3* RemoteStorageTarget_XtreemStore::release_s3() { + ::google::protobuf::internal::TSanWrite(&_impl_); + + _impl_._has_bits_[0] &= ~0x00000001u; + ::flex::RemoteStorageTarget_S3* released = _impl_.s3_; + _impl_.s3_ = nullptr; + if (::google::protobuf::internal::DebugHardenForceCopyInRelease()) { + auto* old = reinterpret_cast<::google::protobuf::MessageLite*>(released); + released = ::google::protobuf::internal::DuplicateIfNonNull(released); + if (GetArena() == nullptr) { + delete old; + } + } else { + if (GetArena() != nullptr) { + released = ::google::protobuf::internal::DuplicateIfNonNull(released); + } + } + return released; +} +inline ::flex::RemoteStorageTarget_S3* RemoteStorageTarget_XtreemStore::unsafe_arena_release_s3() { + ::google::protobuf::internal::TSanWrite(&_impl_); + // @@protoc_insertion_point(field_release:flex.RemoteStorageTarget.XtreemStore.s3) + + _impl_._has_bits_[0] &= ~0x00000001u; + ::flex::RemoteStorageTarget_S3* temp = _impl_.s3_; + _impl_.s3_ = nullptr; + return temp; +} +inline ::flex::RemoteStorageTarget_S3* RemoteStorageTarget_XtreemStore::_internal_mutable_s3() { + ::google::protobuf::internal::TSanWrite(&_impl_); + if (_impl_.s3_ == nullptr) { + auto* p = ::google::protobuf::Message::DefaultConstruct<::flex::RemoteStorageTarget_S3>(GetArena()); + _impl_.s3_ = reinterpret_cast<::flex::RemoteStorageTarget_S3*>(p); + } + return _impl_.s3_; +} +inline ::flex::RemoteStorageTarget_S3* RemoteStorageTarget_XtreemStore::mutable_s3() ABSL_ATTRIBUTE_LIFETIME_BOUND { + _impl_._has_bits_[0] |= 0x00000001u; + ::flex::RemoteStorageTarget_S3* _msg = _internal_mutable_s3(); + // @@protoc_insertion_point(field_mutable:flex.RemoteStorageTarget.XtreemStore.s3) + return _msg; +} +inline void RemoteStorageTarget_XtreemStore::set_allocated_s3(::flex::RemoteStorageTarget_S3* value) { + ::google::protobuf::Arena* message_arena = GetArena(); + ::google::protobuf::internal::TSanWrite(&_impl_); + if (message_arena == nullptr) { + delete (_impl_.s3_); + } + + if (value != nullptr) { + ::google::protobuf::Arena* submessage_arena = (value)->GetArena(); + if (message_arena != submessage_arena) { + value = ::google::protobuf::internal::GetOwnedMessage(message_arena, value, submessage_arena); + } + _impl_._has_bits_[0] |= 0x00000001u; + } else { + _impl_._has_bits_[0] &= ~0x00000001u; + } + + _impl_.s3_ = reinterpret_cast<::flex::RemoteStorageTarget_S3*>(value); + // @@protoc_insertion_point(field_set_allocated:flex.RemoteStorageTarget.XtreemStore.s3) +} + +// ------------------------------------------------------------------- + // RemoteStorageTarget_POSIX // string path = 1; @@ -14660,6 +15200,85 @@ inline void RemoteStorageTarget::set_allocated_mock(std::string* value) { // @@protoc_insertion_point(field_set_allocated:flex.RemoteStorageTarget.mock) } +// .flex.RemoteStorageTarget.XtreemStore xtreemstore = 8; +inline bool RemoteStorageTarget::has_xtreemstore() const { + return type_case() == kXtreemstore; +} +inline bool RemoteStorageTarget::_internal_has_xtreemstore() const { + return type_case() == kXtreemstore; +} +inline void RemoteStorageTarget::set_has_xtreemstore() { + _impl_._oneof_case_[0] = kXtreemstore; +} +inline void RemoteStorageTarget::clear_xtreemstore() { + ::google::protobuf::internal::TSanWrite(&_impl_); + if (type_case() == kXtreemstore) { + if (GetArena() == nullptr) { + delete _impl_.type_.xtreemstore_; + } else if (::google::protobuf::internal::DebugHardenClearOneofMessageOnArena()) { + ::google::protobuf::internal::MaybePoisonAfterClear(_impl_.type_.xtreemstore_); + } + clear_has_type(); + } +} +inline ::flex::RemoteStorageTarget_XtreemStore* RemoteStorageTarget::release_xtreemstore() { + // @@protoc_insertion_point(field_release:flex.RemoteStorageTarget.xtreemstore) + if (type_case() == kXtreemstore) { + clear_has_type(); + auto* temp = _impl_.type_.xtreemstore_; + if (GetArena() != nullptr) { + temp = ::google::protobuf::internal::DuplicateIfNonNull(temp); + } + _impl_.type_.xtreemstore_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline const ::flex::RemoteStorageTarget_XtreemStore& RemoteStorageTarget::_internal_xtreemstore() const { + return type_case() == kXtreemstore ? *_impl_.type_.xtreemstore_ : reinterpret_cast<::flex::RemoteStorageTarget_XtreemStore&>(::flex::_RemoteStorageTarget_XtreemStore_default_instance_); +} +inline const ::flex::RemoteStorageTarget_XtreemStore& RemoteStorageTarget::xtreemstore() const ABSL_ATTRIBUTE_LIFETIME_BOUND { + // @@protoc_insertion_point(field_get:flex.RemoteStorageTarget.xtreemstore) + return _internal_xtreemstore(); +} +inline ::flex::RemoteStorageTarget_XtreemStore* RemoteStorageTarget::unsafe_arena_release_xtreemstore() { + // @@protoc_insertion_point(field_unsafe_arena_release:flex.RemoteStorageTarget.xtreemstore) + if (type_case() == kXtreemstore) { + clear_has_type(); + auto* temp = _impl_.type_.xtreemstore_; + _impl_.type_.xtreemstore_ = nullptr; + return temp; + } else { + return nullptr; + } +} +inline void RemoteStorageTarget::unsafe_arena_set_allocated_xtreemstore(::flex::RemoteStorageTarget_XtreemStore* value) { + // We rely on the oneof clear method to free the earlier contents + // of this oneof. We can directly use the pointer we're given to + // set the new value. + clear_type(); + if (value) { + set_has_xtreemstore(); + _impl_.type_.xtreemstore_ = value; + } + // @@protoc_insertion_point(field_unsafe_arena_set_allocated:flex.RemoteStorageTarget.xtreemstore) +} +inline ::flex::RemoteStorageTarget_XtreemStore* RemoteStorageTarget::_internal_mutable_xtreemstore() { + if (type_case() != kXtreemstore) { + clear_type(); + set_has_xtreemstore(); + _impl_.type_.xtreemstore_ = + ::google::protobuf::Message::DefaultConstruct<::flex::RemoteStorageTarget_XtreemStore>(GetArena()); + } + return _impl_.type_.xtreemstore_; +} +inline ::flex::RemoteStorageTarget_XtreemStore* RemoteStorageTarget::mutable_xtreemstore() ABSL_ATTRIBUTE_LIFETIME_BOUND { + ::flex::RemoteStorageTarget_XtreemStore* _msg = _internal_mutable_xtreemstore(); + // @@protoc_insertion_point(field_mutable:flex.RemoteStorageTarget.xtreemstore) + return _msg; +} + inline bool RemoteStorageTarget::has_type() const { return type_case() != TYPE_NOT_SET; } diff --git a/go/beeremote/beeremote.pb.go b/go/beeremote/beeremote.pb.go index 8169375..45d9b78 100644 --- a/go/beeremote/beeremote.pb.go +++ b/go/beeremote/beeremote.pb.go @@ -12,6 +12,7 @@ import ( flex "github.com/thinkparq/protobuf/go/flex" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" ) @@ -155,7 +156,7 @@ const ( // When all worker node(s) have accepted the job's work requests, but may be waiting on // an available worker goroutine to pickup the request. Job_SCHEDULED Job_State = 3 - // When all work requests for this job are in progress. + // When any work requests for this job are in progress. Job_RUNNING Job_State = 4 // TODO: https://github.com/ThinkParQ/bee-remote/issues/16 // A user manually requested the job be paused. @@ -472,8 +473,11 @@ type JobRequest struct { // job is already in a terminal or failed state. GenerationStatus *JobRequest_GenerationStatus `protobuf:"bytes,8,opt,name=generation_status,json=generationStatus,proto3" json:"generation_status,omitempty"` Update *bool `protobuf:"varint,9,opt,name=update,proto3,oneof" json:"update,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + // delay_execution specifies a delay used to generate the execute-after + // time for the work request by adding it to the current time. + DelayExecution *durationpb.Duration `protobuf:"bytes,13,opt,name=delay_execution,json=delayExecution,proto3,oneof" json:"delay_execution,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *JobRequest) Reset() { @@ -591,6 +595,13 @@ func (x *JobRequest) GetUpdate() bool { return false } +func (x *JobRequest) GetDelayExecution() *durationpb.Duration { + if x != nil { + return x.DelayExecution + } + return nil +} + func (x *JobRequest) SetPath(v string) { x.Path = v } @@ -647,6 +658,10 @@ func (x *JobRequest) SetUpdate(v bool) { x.Update = &v } +func (x *JobRequest) SetDelayExecution(v *durationpb.Duration) { + x.DelayExecution = v +} + func (x *JobRequest) HasType() bool { if x == nil { return false @@ -692,6 +707,13 @@ func (x *JobRequest) HasUpdate() bool { return x.Update != nil } +func (x *JobRequest) HasDelayExecution() bool { + if x == nil { + return false + } + return x.DelayExecution != nil +} + func (x *JobRequest) ClearType() { x.Type = nil } @@ -722,6 +744,10 @@ func (x *JobRequest) ClearUpdate() { x.Update = nil } +func (x *JobRequest) ClearDelayExecution() { + x.DelayExecution = nil +} + const JobRequest_Type_not_set_case case_JobRequest_Type = 0 const JobRequest_Sync_case case_JobRequest_Type = 10 const JobRequest_Mock_case case_JobRequest_Type = 11 @@ -772,6 +798,9 @@ type JobRequest_builder struct { // job is already in a terminal or failed state. GenerationStatus *JobRequest_GenerationStatus Update *bool + // delay_execution specifies a delay used to generate the execute-after + // time for the work request by adding it to the current time. + DelayExecution *durationpb.Duration } func (b0 JobRequest_builder) Build() *JobRequest { @@ -795,6 +824,7 @@ func (b0 JobRequest_builder) Build() *JobRequest { x.StubLocal = b.StubLocal x.GenerationStatus = b.GenerationStatus x.Update = b.Update + x.DelayExecution = b.DelayExecution return m0 } @@ -2659,7 +2689,9 @@ var File_beeremote_proto protoreflect.FileDescriptor var file_beeremote_proto_rawDesc = []byte{ 0x0a, 0x0f, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x1a, 0x0a, 0x66, 0x6c, - 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x43, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, @@ -2683,7 +2715,7 @@ var file_beeremote_proto_rawDesc = []byte{ 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x43, 0x4f, - 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x22, 0x94, 0x05, 0x0a, 0x0a, 0x4a, 0x6f, + 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x22, 0xf1, 0x05, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, @@ -2709,222 +2741,227 @@ var file_beeremote_proto_rawDesc = []byte{ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0xdb, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x22, 0x69, 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, 0x14, 0x0a, 0x10, - 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, - 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x4f, 0x46, - 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, - 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, - 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x42, 0x06, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x22, 0x8c, 0x05, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, - 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, - 0x40, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x48, 0x01, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x1a, 0x84, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x62, 0x65, - 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 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, 0x12, 0x34, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x95, 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, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 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, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x0a, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0xa1, 0x02, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, - 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x65, 0x65, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, - 0x36, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x5f, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, - 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x76, 0x0a, 0x0a, 0x57, - 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x77, 0x6f, 0x72, - 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, - 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, - 0x6f, 0x6f, 0x6c, 0x22, 0x7e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x74, - 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x70, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x22, 0x6d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x42, - 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x22, 0x88, 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x06, - 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, - 0x12, 0x42, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x08, 0x4e, 0x65, 0x77, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, - 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, - 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x22, 0x6e, 0x0a, - 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x02, 0x6f, 0x6b, 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, 0x12, 0x2e, 0x0a, - 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x92, 0x03, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x56, 0x0a, 0x12, 0x62, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x6e, - 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, - 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x41, - 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x79, 0x4a, 0x6f, 0x62, 0x49, - 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x79, 0x5f, 0x65, - 0x78, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0b, 0x62, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, - 0x0a, 0x0e, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x79, 0x50, 0x61, 0x74, 0x68, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x3b, 0x0a, 0x0e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x15, - 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x22, 0x55, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, + 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x47, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0xdb, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x62, + 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 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, 0x22, 0x69, 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, 0x14, 0x0a, 0x10, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, + 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, + 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, + 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x45, + 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x05, + 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, + 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, + 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, + 0x52, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x84, + 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 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, 0x12, + 0x34, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x95, 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, 0x0e, 0x0a, + 0x0a, 0x55, 0x4e, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 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, 0x12, 0x0d, + 0x0a, 0x09, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x0a, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xa1, 0x02, 0x0a, + 0x09, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, 0x03, 0x6a, 0x6f, + 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x36, 0x0a, 0x0d, + 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x33, 0x0a, 0x11, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, - 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x14, - 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 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, 0x2c, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x22, 0x5f, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x72, - 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x72, - 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x72, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, - 0x6c, 0x32, 0xf8, 0x04, 0x0a, 0x09, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, - 0x46, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x62, - 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, - 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x19, 0x2e, - 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x77, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x76, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x6f, 0x6c, + 0x22, 0x7e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x74, + 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x22, 0x6d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x0d, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, + 0x88, 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6a, 0x6f, 0x62, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x42, 0x0a, + 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, + 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x08, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, + 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x22, 0x6e, 0x0a, 0x12, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, + 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, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x65, + 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x92, 0x03, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x56, 0x0a, + 0x12, 0x62, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x65, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x50, + 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x79, 0x4a, 0x6f, 0x62, 0x49, 0x64, 0x41, 0x6e, + 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x63, + 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, + 0x62, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x62, + 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x79, 0x50, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, + 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x3b, 0x0a, 0x0e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x6a, + 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, + 0x55, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x33, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x77, + 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x65, 0x78, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x14, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x1e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, + 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 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, + 0x2c, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x5f, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x72, 0x73, 0x74, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x72, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x32, 0xf8, + 0x04, 0x0a, 0x09, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x46, 0x0a, 0x09, + 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x62, 0x65, 0x65, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x73, 0x12, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, + 0x62, 0x73, 0x12, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x42, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x19, 0x2e, 0x62, 0x65, 0x65, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x12, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, + 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, + 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x53, + 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, + 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x53, + 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x58, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x21, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0f, - 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, - 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2c, 0x5a, 0x2a, - 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, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x66, + 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x66, 0x6c, 0x65, + 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2c, 0x5a, 0x2a, 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, 0x62, 0x65, + 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_beeremote_proto_enumTypes = make([]protoimpl.EnumInfo, 4) @@ -2959,12 +2996,13 @@ var file_beeremote_proto_goTypes = []any{ (*flex.SyncJob)(nil), // 26: flex.SyncJob (*flex.MockJob)(nil), // 27: flex.MockJob (*flex.BuilderJob)(nil), // 28: flex.BuilderJob - (*timestamppb.Timestamp)(nil), // 29: google.protobuf.Timestamp - (*flex.WorkRequest)(nil), // 30: flex.WorkRequest - (*flex.Work)(nil), // 31: flex.Work - (*flex.RemoteStorageTarget)(nil), // 32: flex.RemoteStorageTarget - (*flex.GetCapabilitiesRequest)(nil), // 33: flex.GetCapabilitiesRequest - (*flex.GetCapabilitiesResponse)(nil), // 34: flex.GetCapabilitiesResponse + (*durationpb.Duration)(nil), // 29: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 30: google.protobuf.Timestamp + (*flex.WorkRequest)(nil), // 31: flex.WorkRequest + (*flex.Work)(nil), // 32: flex.Work + (*flex.RemoteStorageTarget)(nil), // 33: flex.RemoteStorageTarget + (*flex.GetCapabilitiesRequest)(nil), // 34: flex.GetCapabilitiesRequest + (*flex.GetCapabilitiesResponse)(nil), // 35: flex.GetCapabilitiesResponse } var file_beeremote_proto_depIdxs = []int32{ 6, // 0: beeremote.SubmitJobRequest.request:type_name -> beeremote.JobRequest @@ -2974,48 +3012,49 @@ var file_beeremote_proto_depIdxs = []int32{ 27, // 4: beeremote.JobRequest.mock:type_name -> flex.MockJob 28, // 5: beeremote.JobRequest.builder:type_name -> flex.BuilderJob 21, // 6: beeremote.JobRequest.generation_status:type_name -> beeremote.JobRequest.GenerationStatus - 6, // 7: beeremote.Job.request:type_name -> beeremote.JobRequest - 29, // 8: beeremote.Job.created:type_name -> google.protobuf.Timestamp - 22, // 9: beeremote.Job.status:type_name -> beeremote.Job.Status - 29, // 10: beeremote.Job.start_mtime:type_name -> google.protobuf.Timestamp - 29, // 11: beeremote.Job.stop_mtime:type_name -> google.protobuf.Timestamp - 7, // 12: beeremote.JobResult.job:type_name -> beeremote.Job - 30, // 13: beeremote.JobResult.work_requests:type_name -> flex.WorkRequest - 23, // 14: beeremote.JobResult.work_results:type_name -> beeremote.JobResult.WorkResult - 11, // 15: beeremote.UpdatePathsRequest.requested_update:type_name -> beeremote.UpdateJobsRequest - 12, // 16: beeremote.UpdatePathsResponse.update_result:type_name -> beeremote.UpdateJobsResponse - 24, // 17: beeremote.UpdateJobsRequest.remote_targets:type_name -> beeremote.UpdateJobsRequest.RemoteTargetsEntry - 3, // 18: beeremote.UpdateJobsRequest.new_state:type_name -> beeremote.UpdateJobsRequest.NewState - 8, // 19: beeremote.UpdateJobsResponse.results:type_name -> beeremote.JobResult - 25, // 20: beeremote.GetJobsRequest.by_job_id_and_path:type_name -> beeremote.GetJobsRequest.QueryIdAndPath - 8, // 21: beeremote.GetJobsResponse.results:type_name -> beeremote.JobResult - 31, // 22: beeremote.UpdateWorkRequest.work:type_name -> flex.Work - 32, // 23: beeremote.GetRSTConfigResponse.rsts:type_name -> flex.RemoteStorageTarget - 1, // 24: beeremote.JobRequest.GenerationStatus.state:type_name -> beeremote.JobRequest.GenerationStatus.State - 2, // 25: beeremote.Job.Status.state:type_name -> beeremote.Job.State - 29, // 26: beeremote.Job.Status.updated:type_name -> google.protobuf.Timestamp - 31, // 27: beeremote.JobResult.WorkResult.work:type_name -> flex.Work - 4, // 28: beeremote.BeeRemote.SubmitJob:input_type -> beeremote.SubmitJobRequest - 9, // 29: beeremote.BeeRemote.UpdatePaths:input_type -> beeremote.UpdatePathsRequest - 11, // 30: beeremote.BeeRemote.UpdateJobs:input_type -> beeremote.UpdateJobsRequest - 13, // 31: beeremote.BeeRemote.GetJobs:input_type -> beeremote.GetJobsRequest - 15, // 32: beeremote.BeeRemote.UpdateWork:input_type -> beeremote.UpdateWorkRequest - 17, // 33: beeremote.BeeRemote.GetRSTConfig:input_type -> beeremote.GetRSTConfigRequest - 19, // 34: beeremote.BeeRemote.GetStubContents:input_type -> beeremote.GetStubContentsRequest - 33, // 35: beeremote.BeeRemote.GetCapabilities:input_type -> flex.GetCapabilitiesRequest - 5, // 36: beeremote.BeeRemote.SubmitJob:output_type -> beeremote.SubmitJobResponse - 10, // 37: beeremote.BeeRemote.UpdatePaths:output_type -> beeremote.UpdatePathsResponse - 12, // 38: beeremote.BeeRemote.UpdateJobs:output_type -> beeremote.UpdateJobsResponse - 14, // 39: beeremote.BeeRemote.GetJobs:output_type -> beeremote.GetJobsResponse - 16, // 40: beeremote.BeeRemote.UpdateWork:output_type -> beeremote.UpdateWorkResponse - 18, // 41: beeremote.BeeRemote.GetRSTConfig:output_type -> beeremote.GetRSTConfigResponse - 20, // 42: beeremote.BeeRemote.GetStubContents:output_type -> beeremote.GetStubContentsResponse - 34, // 43: beeremote.BeeRemote.GetCapabilities:output_type -> flex.GetCapabilitiesResponse - 36, // [36:44] is the sub-list for method output_type - 28, // [28:36] is the sub-list for method input_type - 28, // [28:28] is the sub-list for extension type_name - 28, // [28:28] is the sub-list for extension extendee - 0, // [0:28] is the sub-list for field type_name + 29, // 7: beeremote.JobRequest.delay_execution:type_name -> google.protobuf.Duration + 6, // 8: beeremote.Job.request:type_name -> beeremote.JobRequest + 30, // 9: beeremote.Job.created:type_name -> google.protobuf.Timestamp + 22, // 10: beeremote.Job.status:type_name -> beeremote.Job.Status + 30, // 11: beeremote.Job.start_mtime:type_name -> google.protobuf.Timestamp + 30, // 12: beeremote.Job.stop_mtime:type_name -> google.protobuf.Timestamp + 7, // 13: beeremote.JobResult.job:type_name -> beeremote.Job + 31, // 14: beeremote.JobResult.work_requests:type_name -> flex.WorkRequest + 23, // 15: beeremote.JobResult.work_results:type_name -> beeremote.JobResult.WorkResult + 11, // 16: beeremote.UpdatePathsRequest.requested_update:type_name -> beeremote.UpdateJobsRequest + 12, // 17: beeremote.UpdatePathsResponse.update_result:type_name -> beeremote.UpdateJobsResponse + 24, // 18: beeremote.UpdateJobsRequest.remote_targets:type_name -> beeremote.UpdateJobsRequest.RemoteTargetsEntry + 3, // 19: beeremote.UpdateJobsRequest.new_state:type_name -> beeremote.UpdateJobsRequest.NewState + 8, // 20: beeremote.UpdateJobsResponse.results:type_name -> beeremote.JobResult + 25, // 21: beeremote.GetJobsRequest.by_job_id_and_path:type_name -> beeremote.GetJobsRequest.QueryIdAndPath + 8, // 22: beeremote.GetJobsResponse.results:type_name -> beeremote.JobResult + 32, // 23: beeremote.UpdateWorkRequest.work:type_name -> flex.Work + 33, // 24: beeremote.GetRSTConfigResponse.rsts:type_name -> flex.RemoteStorageTarget + 1, // 25: beeremote.JobRequest.GenerationStatus.state:type_name -> beeremote.JobRequest.GenerationStatus.State + 2, // 26: beeremote.Job.Status.state:type_name -> beeremote.Job.State + 30, // 27: beeremote.Job.Status.updated:type_name -> google.protobuf.Timestamp + 32, // 28: beeremote.JobResult.WorkResult.work:type_name -> flex.Work + 4, // 29: beeremote.BeeRemote.SubmitJob:input_type -> beeremote.SubmitJobRequest + 9, // 30: beeremote.BeeRemote.UpdatePaths:input_type -> beeremote.UpdatePathsRequest + 11, // 31: beeremote.BeeRemote.UpdateJobs:input_type -> beeremote.UpdateJobsRequest + 13, // 32: beeremote.BeeRemote.GetJobs:input_type -> beeremote.GetJobsRequest + 15, // 33: beeremote.BeeRemote.UpdateWork:input_type -> beeremote.UpdateWorkRequest + 17, // 34: beeremote.BeeRemote.GetRSTConfig:input_type -> beeremote.GetRSTConfigRequest + 19, // 35: beeremote.BeeRemote.GetStubContents:input_type -> beeremote.GetStubContentsRequest + 34, // 36: beeremote.BeeRemote.GetCapabilities:input_type -> flex.GetCapabilitiesRequest + 5, // 37: beeremote.BeeRemote.SubmitJob:output_type -> beeremote.SubmitJobResponse + 10, // 38: beeremote.BeeRemote.UpdatePaths:output_type -> beeremote.UpdatePathsResponse + 12, // 39: beeremote.BeeRemote.UpdateJobs:output_type -> beeremote.UpdateJobsResponse + 14, // 40: beeremote.BeeRemote.GetJobs:output_type -> beeremote.GetJobsResponse + 16, // 41: beeremote.BeeRemote.UpdateWork:output_type -> beeremote.UpdateWorkResponse + 18, // 42: beeremote.BeeRemote.GetRSTConfig:output_type -> beeremote.GetRSTConfigResponse + 20, // 43: beeremote.BeeRemote.GetStubContents:output_type -> beeremote.GetStubContentsResponse + 35, // 44: beeremote.BeeRemote.GetCapabilities:output_type -> flex.GetCapabilitiesResponse + 37, // [37:45] is the sub-list for method output_type + 29, // [29:37] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name } func init() { file_beeremote_proto_init() } diff --git a/go/beeremote/beeremote_protoopaque.pb.go b/go/beeremote/beeremote_protoopaque.pb.go index d957f81..84bda9b 100644 --- a/go/beeremote/beeremote_protoopaque.pb.go +++ b/go/beeremote/beeremote_protoopaque.pb.go @@ -12,6 +12,7 @@ import ( flex "github.com/thinkparq/protobuf/go/flex" protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" ) @@ -155,7 +156,7 @@ const ( // When all worker node(s) have accepted the job's work requests, but may be waiting on // an available worker goroutine to pickup the request. Job_SCHEDULED Job_State = 3 - // When all work requests for this job are in progress. + // When any work requests for this job are in progress. Job_RUNNING Job_State = 4 // TODO: https://github.com/ThinkParQ/bee-remote/issues/16 // A user manually requested the job be paused. @@ -454,6 +455,7 @@ type JobRequest struct { xxx_hidden_StubLocal bool `protobuf:"varint,7,opt,name=stub_local,json=stubLocal,proto3" json:"stub_local,omitempty"` xxx_hidden_GenerationStatus *JobRequest_GenerationStatus `protobuf:"bytes,8,opt,name=generation_status,json=generationStatus,proto3" json:"generation_status,omitempty"` xxx_hidden_Update bool `protobuf:"varint,9,opt,name=update,proto3,oneof" json:"update,omitempty"` + xxx_hidden_DelayExecution *durationpb.Duration `protobuf:"bytes,13,opt,name=delay_execution,json=delayExecution,proto3,oneof" json:"delay_execution,omitempty"` XXX_raceDetectHookData protoimpl.RaceDetectHookData XXX_presence [1]uint32 unknownFields protoimpl.UnknownFields @@ -568,6 +570,13 @@ func (x *JobRequest) GetUpdate() bool { return false } +func (x *JobRequest) GetDelayExecution() *durationpb.Duration { + if x != nil { + return x.xxx_hidden_DelayExecution + } + return nil +} + func (x *JobRequest) SetPath(v string) { x.xxx_hidden_Path = v } @@ -622,7 +631,11 @@ func (x *JobRequest) SetGenerationStatus(v *JobRequest_GenerationStatus) { func (x *JobRequest) SetUpdate(v bool) { x.xxx_hidden_Update = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 8, 9) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 8, 10) +} + +func (x *JobRequest) SetDelayExecution(v *durationpb.Duration) { + x.xxx_hidden_DelayExecution = v } func (x *JobRequest) HasType() bool { @@ -670,6 +683,13 @@ func (x *JobRequest) HasUpdate() bool { return protoimpl.X.Present(&(x.XXX_presence[0]), 8) } +func (x *JobRequest) HasDelayExecution() bool { + if x == nil { + return false + } + return x.xxx_hidden_DelayExecution != nil +} + func (x *JobRequest) ClearType() { x.xxx_hidden_Type = nil } @@ -701,6 +721,10 @@ func (x *JobRequest) ClearUpdate() { x.xxx_hidden_Update = false } +func (x *JobRequest) ClearDelayExecution() { + x.xxx_hidden_DelayExecution = nil +} + const JobRequest_Type_not_set_case case_JobRequest_Type = 0 const JobRequest_Sync_case case_JobRequest_Type = 10 const JobRequest_Mock_case case_JobRequest_Type = 11 @@ -751,6 +775,9 @@ type JobRequest_builder struct { // job is already in a terminal or failed state. GenerationStatus *JobRequest_GenerationStatus Update *bool + // delay_execution specifies a delay used to generate the execute-after + // time for the work request by adding it to the current time. + DelayExecution *durationpb.Duration } func (b0 JobRequest_builder) Build() *JobRequest { @@ -774,9 +801,10 @@ func (b0 JobRequest_builder) Build() *JobRequest { x.xxx_hidden_StubLocal = b.StubLocal x.xxx_hidden_GenerationStatus = b.GenerationStatus if b.Update != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 8, 9) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 8, 10) x.xxx_hidden_Update = *b.Update } + x.xxx_hidden_DelayExecution = b.DelayExecution return m0 } @@ -2611,7 +2639,9 @@ var File_beeremote_proto protoreflect.FileDescriptor var file_beeremote_proto_rawDesc = []byte{ 0x0a, 0x0f, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x1a, 0x0a, 0x66, 0x6c, - 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x43, 0x0a, 0x10, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x2f, 0x0a, @@ -2635,7 +2665,7 @@ var file_beeremote_proto_rawDesc = []byte{ 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x04, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x05, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x43, 0x4f, - 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x22, 0x94, 0x05, 0x0a, 0x0a, 0x4a, 0x6f, + 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x06, 0x22, 0xf1, 0x05, 0x0a, 0x0a, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, @@ -2661,222 +2691,227 @@ var file_beeremote_proto_rawDesc = []byte{ 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x10, 0x67, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1b, 0x0a, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x1a, - 0xdb, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 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, 0x22, 0x69, 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, 0x14, 0x0a, 0x10, - 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, - 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x4f, 0x46, - 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, - 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x45, 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, - 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x42, 0x06, 0x0a, - 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x22, 0x8c, 0x05, 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x52, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, - 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, - 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, - 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, - 0x2d, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, - 0x0a, 0x0b, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, - 0x40, 0x0a, 0x0b, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, - 0x48, 0x00, 0x52, 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x12, 0x3e, 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, - 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, - 0x70, 0x48, 0x01, 0x52, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, - 0x01, 0x1a, 0x84, 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x05, - 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x62, 0x65, - 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 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, 0x12, 0x34, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, - 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x95, 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, 0x0e, 0x0a, 0x0a, 0x55, 0x4e, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 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, 0x12, 0x0d, 0x0a, 0x09, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x0a, - 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, - 0x42, 0x0d, 0x0a, 0x0b, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x22, - 0xa1, 0x02, 0x0a, 0x09, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, - 0x03, 0x6a, 0x6f, 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x65, 0x65, - 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, - 0x36, 0x0a, 0x0d, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, - 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x5f, - 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, - 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, - 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x76, 0x0a, 0x0a, 0x57, - 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x77, 0x6f, 0x72, - 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, - 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x73, - 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x23, - 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, - 0x6f, 0x6f, 0x6c, 0x22, 0x7e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x74, - 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x70, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x52, 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x22, 0x6d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, - 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, - 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x42, - 0x0a, 0x0d, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x22, 0x88, 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x06, - 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x5f, 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x2f, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, - 0x79, 0x52, 0x0d, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, - 0x12, 0x42, 0x0a, 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, - 0x01, 0x28, 0x0e, 0x32, 0x25, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x2e, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, - 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x63, - 0x65, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, - 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, - 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, - 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x08, 0x4e, 0x65, 0x77, - 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, - 0x46, 0x49, 0x45, 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, - 0x4c, 0x45, 0x44, 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, - 0x10, 0x02, 0x42, 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x22, 0x6e, 0x0a, - 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, - 0x02, 0x6f, 0x6b, 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, 0x12, 0x2e, 0x0a, - 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, - 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x92, 0x03, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x12, 0x56, 0x0a, 0x12, 0x62, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x6e, - 0x64, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, - 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x41, - 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x79, 0x4a, 0x6f, 0x62, 0x49, - 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x79, 0x5f, 0x65, - 0x78, 0x61, 0x63, 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, - 0x00, 0x52, 0x0b, 0x62, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, - 0x0a, 0x0e, 0x62, 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x79, 0x50, 0x61, 0x74, 0x68, - 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, - 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, - 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, - 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x3b, 0x0a, 0x0e, - 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x15, - 0x0a, 0x06, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x6a, 0x6f, 0x62, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, - 0x72, 0x79, 0x22, 0x55, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, + 0x28, 0x08, 0x48, 0x01, 0x52, 0x06, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x88, 0x01, 0x01, 0x12, + 0x47, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x48, 0x02, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x45, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x88, 0x01, 0x01, 0x1a, 0xdb, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x6e, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x42, 0x0a, + 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x2c, 0x2e, 0x62, + 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x2e, 0x47, 0x65, 0x6e, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 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, 0x22, 0x69, 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, 0x14, 0x0a, 0x10, 0x41, 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, + 0x5f, 0x43, 0x4f, 0x4d, 0x50, 0x4c, 0x45, 0x54, 0x45, 0x10, 0x01, 0x12, 0x15, 0x0a, 0x11, 0x41, + 0x4c, 0x52, 0x45, 0x41, 0x44, 0x59, 0x5f, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, + 0x10, 0x02, 0x12, 0x17, 0x0a, 0x13, 0x46, 0x41, 0x49, 0x4c, 0x45, 0x44, 0x5f, 0x50, 0x52, 0x45, + 0x43, 0x4f, 0x4e, 0x44, 0x49, 0x54, 0x49, 0x4f, 0x4e, 0x10, 0x03, 0x12, 0x09, 0x0a, 0x05, 0x45, + 0x52, 0x52, 0x4f, 0x52, 0x10, 0x04, 0x42, 0x06, 0x0a, 0x04, 0x74, 0x79, 0x70, 0x65, 0x42, 0x09, + 0x0a, 0x07, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x42, 0x12, 0x0a, 0x10, 0x5f, 0x64, 0x65, + 0x6c, 0x61, 0x79, 0x5f, 0x65, 0x78, 0x65, 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x8c, 0x05, + 0x0a, 0x03, 0x4a, 0x6f, 0x62, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x2f, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x07, 0x72, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x34, 0x0a, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x07, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x12, 0x2d, 0x0a, 0x06, + 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x62, + 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, + 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x5f, 0x69, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x65, 0x78, 0x74, 0x65, 0x72, 0x6e, 0x61, 0x6c, 0x49, 0x64, 0x12, 0x40, 0x0a, 0x0b, + 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x00, 0x52, + 0x0a, 0x73, 0x74, 0x61, 0x72, 0x74, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x12, 0x3e, + 0x0a, 0x0a, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x48, 0x01, + 0x52, 0x09, 0x73, 0x74, 0x6f, 0x70, 0x4d, 0x74, 0x69, 0x6d, 0x65, 0x88, 0x01, 0x01, 0x1a, 0x84, + 0x01, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2a, 0x0a, 0x05, 0x73, 0x74, 0x61, + 0x74, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0e, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, + 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 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, 0x12, + 0x34, 0x0a, 0x07, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, + 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x07, 0x75, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x64, 0x22, 0x95, 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, 0x0e, 0x0a, + 0x0a, 0x55, 0x4e, 0x41, 0x53, 0x53, 0x49, 0x47, 0x4e, 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, 0x12, 0x0d, + 0x0a, 0x09, 0x4f, 0x46, 0x46, 0x4c, 0x4f, 0x41, 0x44, 0x45, 0x44, 0x10, 0x0a, 0x42, 0x0e, 0x0a, + 0x0c, 0x5f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x42, 0x0d, 0x0a, + 0x0b, 0x5f, 0x73, 0x74, 0x6f, 0x70, 0x5f, 0x6d, 0x74, 0x69, 0x6d, 0x65, 0x22, 0xa1, 0x02, 0x0a, + 0x09, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x20, 0x0a, 0x03, 0x6a, 0x6f, + 0x62, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x03, 0x6a, 0x6f, 0x62, 0x12, 0x36, 0x0a, 0x0d, + 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, + 0x65, 0x73, 0x74, 0x73, 0x12, 0x42, 0x0a, 0x0c, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, - 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x33, 0x0a, 0x11, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, - 0x0a, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, - 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x14, - 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, - 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 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, 0x2c, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, - 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, - 0x22, 0x5f, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x72, - 0x73, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x72, - 0x73, 0x74, 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x09, - 0x0a, 0x07, 0x5f, 0x72, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, - 0x6c, 0x32, 0xf8, 0x04, 0x0a, 0x09, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, - 0x46, 0x0a, 0x09, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x62, - 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, - 0x6f, 0x62, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, - 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x12, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, - 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, - 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, - 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, - 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x42, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x19, 0x2e, - 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x57, 0x6f, 0x72, 0x6b, 0x12, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, - 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0b, 0x77, 0x6f, 0x72, + 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x76, 0x0a, 0x0a, 0x57, 0x6f, 0x72, 0x6b, + 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x57, 0x6f, 0x72, 0x6b, + 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x12, 0x23, 0x0a, 0x0d, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, + 0x65, 0x64, 0x5f, 0x6e, 0x6f, 0x64, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x4e, 0x6f, 0x64, 0x65, 0x12, 0x23, 0x0a, 0x0d, 0x61, + 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x5f, 0x70, 0x6f, 0x6f, 0x6c, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0c, 0x61, 0x73, 0x73, 0x69, 0x67, 0x6e, 0x65, 0x64, 0x50, 0x6f, 0x6f, 0x6c, + 0x22, 0x7e, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, + 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x61, 0x74, + 0x68, 0x50, 0x72, 0x65, 0x66, 0x69, 0x78, 0x12, 0x47, 0x0a, 0x10, 0x72, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x65, 0x64, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, + 0x0f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x65, 0x64, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x22, 0x6d, 0x0a, 0x13, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x42, 0x0a, 0x0d, 0x75, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x0c, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, + 0x88, 0x03, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x1a, 0x0a, 0x06, 0x6a, 0x6f, 0x62, + 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x05, 0x6a, 0x6f, 0x62, + 0x49, 0x64, 0x88, 0x01, 0x01, 0x12, 0x56, 0x0a, 0x0e, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x5f, + 0x74, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2f, 0x2e, + 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x0d, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, 0x72, 0x67, 0x65, 0x74, 0x73, 0x12, 0x42, 0x0a, + 0x09, 0x6e, 0x65, 0x77, 0x5f, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0e, + 0x32, 0x25, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x2e, 0x4e, + 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x08, 0x6e, 0x65, 0x77, 0x53, 0x74, 0x61, 0x74, + 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x5f, 0x75, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0b, 0x66, 0x6f, 0x72, 0x63, 0x65, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x1a, 0x40, 0x0a, 0x12, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x54, 0x61, + 0x72, 0x67, 0x65, 0x74, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, + 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, + 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x37, 0x0a, 0x08, 0x4e, 0x65, 0x77, 0x53, 0x74, 0x61, + 0x74, 0x65, 0x12, 0x0f, 0x0a, 0x0b, 0x55, 0x4e, 0x53, 0x50, 0x45, 0x43, 0x49, 0x46, 0x49, 0x45, + 0x44, 0x10, 0x00, 0x12, 0x0d, 0x0a, 0x09, 0x43, 0x41, 0x4e, 0x43, 0x45, 0x4c, 0x4c, 0x45, 0x44, + 0x10, 0x01, 0x12, 0x0b, 0x0a, 0x07, 0x44, 0x45, 0x4c, 0x45, 0x54, 0x45, 0x44, 0x10, 0x02, 0x42, + 0x09, 0x0a, 0x07, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x22, 0x6e, 0x0a, 0x12, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x0e, 0x0a, 0x02, 0x6f, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x02, 0x6f, 0x6b, + 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, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x65, + 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x52, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x92, 0x03, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x56, 0x0a, + 0x12, 0x62, 0x79, 0x5f, 0x6a, 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x5f, 0x61, 0x6e, 0x64, 0x5f, 0x70, + 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x62, 0x65, 0x65, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x2e, 0x51, 0x75, 0x65, 0x72, 0x79, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x50, + 0x61, 0x74, 0x68, 0x48, 0x00, 0x52, 0x0e, 0x62, 0x79, 0x4a, 0x6f, 0x62, 0x49, 0x64, 0x41, 0x6e, + 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x24, 0x0a, 0x0d, 0x62, 0x79, 0x5f, 0x65, 0x78, 0x61, 0x63, + 0x74, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0b, + 0x62, 0x79, 0x45, 0x78, 0x61, 0x63, 0x74, 0x50, 0x61, 0x74, 0x68, 0x12, 0x26, 0x0a, 0x0e, 0x62, + 0x79, 0x5f, 0x70, 0x61, 0x74, 0x68, 0x5f, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x48, 0x00, 0x52, 0x0c, 0x62, 0x79, 0x50, 0x61, 0x74, 0x68, 0x50, 0x72, 0x65, + 0x66, 0x69, 0x78, 0x12, 0x32, 0x0a, 0x15, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x5f, 0x77, + 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x13, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x30, 0x0a, 0x14, 0x69, 0x6e, 0x63, 0x6c, 0x75, + 0x64, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x12, 0x69, 0x6e, 0x63, 0x6c, 0x75, 0x64, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x12, 0x2e, 0x0a, 0x13, 0x75, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x5f, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x11, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, + 0x72, 0x6b, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x1a, 0x3b, 0x0a, 0x0e, 0x51, 0x75, 0x65, + 0x72, 0x79, 0x49, 0x64, 0x41, 0x6e, 0x64, 0x50, 0x61, 0x74, 0x68, 0x12, 0x15, 0x0a, 0x06, 0x6a, + 0x6f, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x6a, 0x6f, 0x62, + 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x42, 0x07, 0x0a, 0x05, 0x71, 0x75, 0x65, 0x72, 0x79, 0x22, + 0x55, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x2e, 0x0a, 0x07, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, + 0x6f, 0x74, 0x65, 0x2e, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x07, 0x72, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x73, 0x22, 0x33, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x04, 0x77, + 0x6f, 0x72, 0x6b, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x66, 0x6c, 0x65, 0x78, + 0x2e, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x04, 0x77, 0x6f, 0x72, 0x6b, 0x22, 0x14, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x4f, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, - 0x67, 0x12, 0x1e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x1a, 0x1f, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x12, 0x58, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x21, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x22, 0x15, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, + 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x45, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, + 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x12, 0x2d, 0x0a, 0x04, 0x72, 0x73, 0x74, 0x73, 0x18, 0x01, 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, + 0x2c, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, + 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x22, 0x5f, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1a, 0x0a, 0x06, 0x72, 0x73, 0x74, 0x5f, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x48, 0x00, 0x52, 0x05, 0x72, 0x73, 0x74, 0x49, + 0x64, 0x88, 0x01, 0x01, 0x12, 0x15, 0x0a, 0x03, 0x75, 0x72, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x48, 0x01, 0x52, 0x03, 0x75, 0x72, 0x6c, 0x88, 0x01, 0x01, 0x42, 0x09, 0x0a, 0x07, 0x5f, + 0x72, 0x73, 0x74, 0x5f, 0x69, 0x64, 0x42, 0x06, 0x0a, 0x04, 0x5f, 0x75, 0x72, 0x6c, 0x32, 0xf8, + 0x04, 0x0a, 0x09, 0x42, 0x65, 0x65, 0x52, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x12, 0x46, 0x0a, 0x09, + 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x12, 0x1b, 0x2e, 0x62, 0x65, 0x65, 0x72, + 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, + 0x74, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x4a, 0x6f, 0x62, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0b, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, + 0x74, 0x68, 0x73, 0x12, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, + 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x50, 0x61, 0x74, 0x68, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, + 0x62, 0x73, 0x12, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x1a, 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x42, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x12, 0x19, 0x2e, 0x62, 0x65, 0x65, + 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1a, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, + 0x65, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x62, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x30, 0x01, 0x12, 0x49, 0x0a, 0x0a, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, + 0x6b, 0x12, 0x1c, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, + 0x1d, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x57, 0x6f, 0x72, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4f, + 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x52, 0x53, 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1e, + 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x53, + 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1f, + 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x53, + 0x54, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x58, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x73, 0x12, 0x21, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, + 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, + 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x62, 0x65, 0x65, 0x72, 0x65, - 0x6d, 0x6f, 0x74, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x53, 0x74, 0x75, 0x62, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0f, - 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, - 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, - 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2c, 0x5a, 0x2a, - 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, 0x62, 0x65, 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x4e, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x66, + 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x66, 0x6c, 0x65, + 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x42, 0x2c, 0x5a, 0x2a, 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, 0x62, 0x65, + 0x65, 0x72, 0x65, 0x6d, 0x6f, 0x74, 0x65, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var file_beeremote_proto_enumTypes = make([]protoimpl.EnumInfo, 4) @@ -2911,12 +2946,13 @@ var file_beeremote_proto_goTypes = []any{ (*flex.SyncJob)(nil), // 26: flex.SyncJob (*flex.MockJob)(nil), // 27: flex.MockJob (*flex.BuilderJob)(nil), // 28: flex.BuilderJob - (*timestamppb.Timestamp)(nil), // 29: google.protobuf.Timestamp - (*flex.WorkRequest)(nil), // 30: flex.WorkRequest - (*flex.Work)(nil), // 31: flex.Work - (*flex.RemoteStorageTarget)(nil), // 32: flex.RemoteStorageTarget - (*flex.GetCapabilitiesRequest)(nil), // 33: flex.GetCapabilitiesRequest - (*flex.GetCapabilitiesResponse)(nil), // 34: flex.GetCapabilitiesResponse + (*durationpb.Duration)(nil), // 29: google.protobuf.Duration + (*timestamppb.Timestamp)(nil), // 30: google.protobuf.Timestamp + (*flex.WorkRequest)(nil), // 31: flex.WorkRequest + (*flex.Work)(nil), // 32: flex.Work + (*flex.RemoteStorageTarget)(nil), // 33: flex.RemoteStorageTarget + (*flex.GetCapabilitiesRequest)(nil), // 34: flex.GetCapabilitiesRequest + (*flex.GetCapabilitiesResponse)(nil), // 35: flex.GetCapabilitiesResponse } var file_beeremote_proto_depIdxs = []int32{ 6, // 0: beeremote.SubmitJobRequest.request:type_name -> beeremote.JobRequest @@ -2926,48 +2962,49 @@ var file_beeremote_proto_depIdxs = []int32{ 27, // 4: beeremote.JobRequest.mock:type_name -> flex.MockJob 28, // 5: beeremote.JobRequest.builder:type_name -> flex.BuilderJob 21, // 6: beeremote.JobRequest.generation_status:type_name -> beeremote.JobRequest.GenerationStatus - 6, // 7: beeremote.Job.request:type_name -> beeremote.JobRequest - 29, // 8: beeremote.Job.created:type_name -> google.protobuf.Timestamp - 22, // 9: beeremote.Job.status:type_name -> beeremote.Job.Status - 29, // 10: beeremote.Job.start_mtime:type_name -> google.protobuf.Timestamp - 29, // 11: beeremote.Job.stop_mtime:type_name -> google.protobuf.Timestamp - 7, // 12: beeremote.JobResult.job:type_name -> beeremote.Job - 30, // 13: beeremote.JobResult.work_requests:type_name -> flex.WorkRequest - 23, // 14: beeremote.JobResult.work_results:type_name -> beeremote.JobResult.WorkResult - 11, // 15: beeremote.UpdatePathsRequest.requested_update:type_name -> beeremote.UpdateJobsRequest - 12, // 16: beeremote.UpdatePathsResponse.update_result:type_name -> beeremote.UpdateJobsResponse - 24, // 17: beeremote.UpdateJobsRequest.remote_targets:type_name -> beeremote.UpdateJobsRequest.RemoteTargetsEntry - 3, // 18: beeremote.UpdateJobsRequest.new_state:type_name -> beeremote.UpdateJobsRequest.NewState - 8, // 19: beeremote.UpdateJobsResponse.results:type_name -> beeremote.JobResult - 25, // 20: beeremote.GetJobsRequest.by_job_id_and_path:type_name -> beeremote.GetJobsRequest.QueryIdAndPath - 8, // 21: beeremote.GetJobsResponse.results:type_name -> beeremote.JobResult - 31, // 22: beeremote.UpdateWorkRequest.work:type_name -> flex.Work - 32, // 23: beeremote.GetRSTConfigResponse.rsts:type_name -> flex.RemoteStorageTarget - 1, // 24: beeremote.JobRequest.GenerationStatus.state:type_name -> beeremote.JobRequest.GenerationStatus.State - 2, // 25: beeremote.Job.Status.state:type_name -> beeremote.Job.State - 29, // 26: beeremote.Job.Status.updated:type_name -> google.protobuf.Timestamp - 31, // 27: beeremote.JobResult.WorkResult.work:type_name -> flex.Work - 4, // 28: beeremote.BeeRemote.SubmitJob:input_type -> beeremote.SubmitJobRequest - 9, // 29: beeremote.BeeRemote.UpdatePaths:input_type -> beeremote.UpdatePathsRequest - 11, // 30: beeremote.BeeRemote.UpdateJobs:input_type -> beeremote.UpdateJobsRequest - 13, // 31: beeremote.BeeRemote.GetJobs:input_type -> beeremote.GetJobsRequest - 15, // 32: beeremote.BeeRemote.UpdateWork:input_type -> beeremote.UpdateWorkRequest - 17, // 33: beeremote.BeeRemote.GetRSTConfig:input_type -> beeremote.GetRSTConfigRequest - 19, // 34: beeremote.BeeRemote.GetStubContents:input_type -> beeremote.GetStubContentsRequest - 33, // 35: beeremote.BeeRemote.GetCapabilities:input_type -> flex.GetCapabilitiesRequest - 5, // 36: beeremote.BeeRemote.SubmitJob:output_type -> beeremote.SubmitJobResponse - 10, // 37: beeremote.BeeRemote.UpdatePaths:output_type -> beeremote.UpdatePathsResponse - 12, // 38: beeremote.BeeRemote.UpdateJobs:output_type -> beeremote.UpdateJobsResponse - 14, // 39: beeremote.BeeRemote.GetJobs:output_type -> beeremote.GetJobsResponse - 16, // 40: beeremote.BeeRemote.UpdateWork:output_type -> beeremote.UpdateWorkResponse - 18, // 41: beeremote.BeeRemote.GetRSTConfig:output_type -> beeremote.GetRSTConfigResponse - 20, // 42: beeremote.BeeRemote.GetStubContents:output_type -> beeremote.GetStubContentsResponse - 34, // 43: beeremote.BeeRemote.GetCapabilities:output_type -> flex.GetCapabilitiesResponse - 36, // [36:44] is the sub-list for method output_type - 28, // [28:36] is the sub-list for method input_type - 28, // [28:28] is the sub-list for extension type_name - 28, // [28:28] is the sub-list for extension extendee - 0, // [0:28] is the sub-list for field type_name + 29, // 7: beeremote.JobRequest.delay_execution:type_name -> google.protobuf.Duration + 6, // 8: beeremote.Job.request:type_name -> beeremote.JobRequest + 30, // 9: beeremote.Job.created:type_name -> google.protobuf.Timestamp + 22, // 10: beeremote.Job.status:type_name -> beeremote.Job.Status + 30, // 11: beeremote.Job.start_mtime:type_name -> google.protobuf.Timestamp + 30, // 12: beeremote.Job.stop_mtime:type_name -> google.protobuf.Timestamp + 7, // 13: beeremote.JobResult.job:type_name -> beeremote.Job + 31, // 14: beeremote.JobResult.work_requests:type_name -> flex.WorkRequest + 23, // 15: beeremote.JobResult.work_results:type_name -> beeremote.JobResult.WorkResult + 11, // 16: beeremote.UpdatePathsRequest.requested_update:type_name -> beeremote.UpdateJobsRequest + 12, // 17: beeremote.UpdatePathsResponse.update_result:type_name -> beeremote.UpdateJobsResponse + 24, // 18: beeremote.UpdateJobsRequest.remote_targets:type_name -> beeremote.UpdateJobsRequest.RemoteTargetsEntry + 3, // 19: beeremote.UpdateJobsRequest.new_state:type_name -> beeremote.UpdateJobsRequest.NewState + 8, // 20: beeremote.UpdateJobsResponse.results:type_name -> beeremote.JobResult + 25, // 21: beeremote.GetJobsRequest.by_job_id_and_path:type_name -> beeremote.GetJobsRequest.QueryIdAndPath + 8, // 22: beeremote.GetJobsResponse.results:type_name -> beeremote.JobResult + 32, // 23: beeremote.UpdateWorkRequest.work:type_name -> flex.Work + 33, // 24: beeremote.GetRSTConfigResponse.rsts:type_name -> flex.RemoteStorageTarget + 1, // 25: beeremote.JobRequest.GenerationStatus.state:type_name -> beeremote.JobRequest.GenerationStatus.State + 2, // 26: beeremote.Job.Status.state:type_name -> beeremote.Job.State + 30, // 27: beeremote.Job.Status.updated:type_name -> google.protobuf.Timestamp + 32, // 28: beeremote.JobResult.WorkResult.work:type_name -> flex.Work + 4, // 29: beeremote.BeeRemote.SubmitJob:input_type -> beeremote.SubmitJobRequest + 9, // 30: beeremote.BeeRemote.UpdatePaths:input_type -> beeremote.UpdatePathsRequest + 11, // 31: beeremote.BeeRemote.UpdateJobs:input_type -> beeremote.UpdateJobsRequest + 13, // 32: beeremote.BeeRemote.GetJobs:input_type -> beeremote.GetJobsRequest + 15, // 33: beeremote.BeeRemote.UpdateWork:input_type -> beeremote.UpdateWorkRequest + 17, // 34: beeremote.BeeRemote.GetRSTConfig:input_type -> beeremote.GetRSTConfigRequest + 19, // 35: beeremote.BeeRemote.GetStubContents:input_type -> beeremote.GetStubContentsRequest + 34, // 36: beeremote.BeeRemote.GetCapabilities:input_type -> flex.GetCapabilitiesRequest + 5, // 37: beeremote.BeeRemote.SubmitJob:output_type -> beeremote.SubmitJobResponse + 10, // 38: beeremote.BeeRemote.UpdatePaths:output_type -> beeremote.UpdatePathsResponse + 12, // 39: beeremote.BeeRemote.UpdateJobs:output_type -> beeremote.UpdateJobsResponse + 14, // 40: beeremote.BeeRemote.GetJobs:output_type -> beeremote.GetJobsResponse + 16, // 41: beeremote.BeeRemote.UpdateWork:output_type -> beeremote.UpdateWorkResponse + 18, // 42: beeremote.BeeRemote.GetRSTConfig:output_type -> beeremote.GetRSTConfigResponse + 20, // 43: beeremote.BeeRemote.GetStubContents:output_type -> beeremote.GetStubContentsResponse + 35, // 44: beeremote.BeeRemote.GetCapabilities:output_type -> flex.GetCapabilitiesResponse + 37, // [37:45] is the sub-list for method output_type + 29, // [29:37] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name } func init() { file_beeremote_proto_init() } diff --git a/go/flex/flex.pb.go b/go/flex/flex.pb.go index fb896df..d88275b 100644 --- a/go/flex/flex.pb.go +++ b/go/flex/flex.pb.go @@ -13,6 +13,7 @@ package flex import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" ) @@ -1541,10 +1542,15 @@ 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"` - Priority *int32 `protobuf:"varint,9,opt,name=priority,proto3,oneof" json:"priority,omitempty"` - unknownFields protoimpl.UnknownFields - sizeCache protoimpl.SizeCache + 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"` + // A work request scheduled for a future time is placed in the wait queue until it's expired. + ExecuteAfter *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=ExecuteAfter,proto3" json:"ExecuteAfter,omitempty"` + // delay_execution specifies a delay before execution. The executing node converts it to + // ExecuteAfter using its local time to avoid clock synchronization issues. + DelayExecution *durationpb.Duration `protobuf:"bytes,14,opt,name=delay_execution,json=delayExecution,proto3" json:"delay_execution,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache } func (x *WorkRequest) Reset() { @@ -1662,6 +1668,20 @@ func (x *WorkRequest) GetPriority() int32 { return 0 } +func (x *WorkRequest) GetExecuteAfter() *timestamppb.Timestamp { + if x != nil { + return x.ExecuteAfter + } + return nil +} + +func (x *WorkRequest) GetDelayExecution() *durationpb.Duration { + if x != nil { + return x.DelayExecution + } + return nil +} + func (x *WorkRequest) SetJobId(v string) { x.JobId = v } @@ -1718,6 +1738,14 @@ func (x *WorkRequest) SetPriority(v int32) { x.Priority = &v } +func (x *WorkRequest) SetExecuteAfter(v *timestamppb.Timestamp) { + x.ExecuteAfter = v +} + +func (x *WorkRequest) SetDelayExecution(v *durationpb.Duration) { + x.DelayExecution = v +} + func (x *WorkRequest) HasSegment() bool { if x == nil { return false @@ -1763,6 +1791,20 @@ func (x *WorkRequest) HasPriority() bool { return x.Priority != nil } +func (x *WorkRequest) HasExecuteAfter() bool { + if x == nil { + return false + } + return x.ExecuteAfter != nil +} + +func (x *WorkRequest) HasDelayExecution() bool { + if x == nil { + return false + } + return x.DelayExecution != nil +} + func (x *WorkRequest) ClearSegment() { x.Segment = nil } @@ -1793,6 +1835,14 @@ func (x *WorkRequest) ClearPriority() { x.Priority = nil } +func (x *WorkRequest) ClearExecuteAfter() { + x.ExecuteAfter = nil +} + +func (x *WorkRequest) ClearDelayExecution() { + x.DelayExecution = 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 @@ -1833,6 +1883,11 @@ type WorkRequest_builder struct { // When stub_local is set the local file with be a stub file StubLocal bool Priority *int32 + // A work request scheduled for a future time is placed in the wait queue until it's expired. + ExecuteAfter *timestamppb.Timestamp + // delay_execution specifies a delay before execution. The executing node converts it to + // ExecuteAfter using its local time to avoid clock synchronization issues. + DelayExecution *durationpb.Duration } func (b0 WorkRequest_builder) Build() *WorkRequest { @@ -1856,6 +1911,8 @@ func (b0 WorkRequest_builder) Build() *WorkRequest { } x.StubLocal = b.StubLocal x.Priority = b.Priority + x.ExecuteAfter = b.ExecuteAfter + x.DelayExecution = b.DelayExecution return m0 } @@ -2938,6 +2995,7 @@ type RemoteStorageTarget struct { // *RemoteStorageTarget_Posix // *RemoteStorageTarget_Azure_ // *RemoteStorageTarget_Mock + // *RemoteStorageTarget_Xtreemstore Type isRemoteStorageTarget_Type `protobuf_oneof:"type"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache @@ -3032,6 +3090,15 @@ func (x *RemoteStorageTarget) GetMock() string { return "" } +func (x *RemoteStorageTarget) GetXtreemstore() *RemoteStorageTarget_XtreemStore { + if x != nil { + if x, ok := x.Type.(*RemoteStorageTarget_Xtreemstore); ok { + return x.Xtreemstore + } + } + return nil +} + func (x *RemoteStorageTarget) SetId(v uint32) { x.Id = v } @@ -3072,6 +3139,14 @@ func (x *RemoteStorageTarget) SetMock(v string) { x.Type = &RemoteStorageTarget_Mock{v} } +func (x *RemoteStorageTarget) SetXtreemstore(v *RemoteStorageTarget_XtreemStore) { + if v == nil { + x.Type = nil + return + } + x.Type = &RemoteStorageTarget_Xtreemstore{v} +} + func (x *RemoteStorageTarget) HasPolicies() bool { if x == nil { return false @@ -3118,6 +3193,14 @@ func (x *RemoteStorageTarget) HasMock() bool { return ok } +func (x *RemoteStorageTarget) HasXtreemstore() bool { + if x == nil { + return false + } + _, ok := x.Type.(*RemoteStorageTarget_Xtreemstore) + return ok +} + func (x *RemoteStorageTarget) ClearPolicies() { x.Policies = nil } @@ -3150,11 +3233,18 @@ func (x *RemoteStorageTarget) ClearMock() { } } +func (x *RemoteStorageTarget) ClearXtreemstore() { + if _, ok := x.Type.(*RemoteStorageTarget_Xtreemstore); ok { + x.Type = nil + } +} + const RemoteStorageTarget_Type_not_set_case case_RemoteStorageTarget_Type = 0 const RemoteStorageTarget_S3_case case_RemoteStorageTarget_Type = 4 const RemoteStorageTarget_Posix_case case_RemoteStorageTarget_Type = 5 const RemoteStorageTarget_Azure_case case_RemoteStorageTarget_Type = 6 const RemoteStorageTarget_Mock_case case_RemoteStorageTarget_Type = 7 +const RemoteStorageTarget_Xtreemstore_case case_RemoteStorageTarget_Type = 8 func (x *RemoteStorageTarget) WhichType() case_RemoteStorageTarget_Type { if x == nil { @@ -3169,6 +3259,8 @@ func (x *RemoteStorageTarget) WhichType() case_RemoteStorageTarget_Type { return RemoteStorageTarget_Azure_case case *RemoteStorageTarget_Mock: return RemoteStorageTarget_Mock_case + case *RemoteStorageTarget_Xtreemstore: + return RemoteStorageTarget_Xtreemstore_case default: return RemoteStorageTarget_Type_not_set_case } @@ -3188,10 +3280,11 @@ type RemoteStorageTarget_builder struct { // in the rst package for additional details. // Fields of oneof Type: - S3 *RemoteStorageTarget_S3 - Posix *RemoteStorageTarget_POSIX - Azure *RemoteStorageTarget_Azure - Mock *string + S3 *RemoteStorageTarget_S3 + Posix *RemoteStorageTarget_POSIX + Azure *RemoteStorageTarget_Azure + Mock *string + Xtreemstore *RemoteStorageTarget_XtreemStore // -- end of Type } @@ -3214,6 +3307,9 @@ func (b0 RemoteStorageTarget_builder) Build() *RemoteStorageTarget { if b.Mock != nil { x.Type = &RemoteStorageTarget_Mock{*b.Mock} } + if b.Xtreemstore != nil { + x.Type = &RemoteStorageTarget_Xtreemstore{b.Xtreemstore} + } return m0 } @@ -3247,6 +3343,10 @@ type RemoteStorageTarget_Mock struct { Mock string `protobuf:"bytes,7,opt,name=mock,proto3,oneof"` } +type RemoteStorageTarget_Xtreemstore struct { + Xtreemstore *RemoteStorageTarget_XtreemStore `protobuf:"bytes,8,opt,name=xtreemstore,proto3,oneof"` +} + func (*RemoteStorageTarget_S3_) isRemoteStorageTarget_Type() {} func (*RemoteStorageTarget_Posix) isRemoteStorageTarget_Type() {} @@ -3255,6 +3355,8 @@ func (*RemoteStorageTarget_Azure_) isRemoteStorageTarget_Type() {} func (*RemoteStorageTarget_Mock) isRemoteStorageTarget_Type() {} +func (*RemoteStorageTarget_Xtreemstore) isRemoteStorageTarget_Type() {} + type GetCapabilitiesRequest struct { state protoimpl.MessageState `protogen:"hybrid.v1"` unknownFields protoimpl.UnknownFields @@ -4213,6 +4315,74 @@ func (b0 RemoteStorageTarget_Azure_builder) Build() *RemoteStorageTarget_Azure { return m0 } +type RemoteStorageTarget_XtreemStore struct { + state protoimpl.MessageState `protogen:"hybrid.v1"` + S3 *RemoteStorageTarget_S3 `protobuf:"bytes,1,opt,name=s3,proto3" json:"s3,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RemoteStorageTarget_XtreemStore) Reset() { + *x = RemoteStorageTarget_XtreemStore{} + mi := &file_flex_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemoteStorageTarget_XtreemStore) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoteStorageTarget_XtreemStore) ProtoMessage() {} + +func (x *RemoteStorageTarget_XtreemStore) ProtoReflect() protoreflect.Message { + mi := &file_flex_proto_msgTypes[32] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +func (x *RemoteStorageTarget_XtreemStore) GetS3() *RemoteStorageTarget_S3 { + if x != nil { + return x.S3 + } + return nil +} + +func (x *RemoteStorageTarget_XtreemStore) SetS3(v *RemoteStorageTarget_S3) { + x.S3 = v +} + +func (x *RemoteStorageTarget_XtreemStore) HasS3() bool { + if x == nil { + return false + } + return x.S3 != nil +} + +func (x *RemoteStorageTarget_XtreemStore) ClearS3() { + x.S3 = nil +} + +type RemoteStorageTarget_XtreemStore_builder struct { + _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. + + S3 *RemoteStorageTarget_S3 +} + +func (b0 RemoteStorageTarget_XtreemStore_builder) Build() *RemoteStorageTarget_XtreemStore { + m0 := &RemoteStorageTarget_XtreemStore{} + b, x := &b0, m0 + _, _ = b, x + x.S3 = b.S3 + return m0 +} + type RemoteStorageTarget_POSIX struct { state protoimpl.MessageState `protogen:"hybrid.v1"` Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` @@ -4222,7 +4392,7 @@ type RemoteStorageTarget_POSIX struct { func (x *RemoteStorageTarget_POSIX) Reset() { *x = RemoteStorageTarget_POSIX{} - mi := &file_flex_proto_msgTypes[32] + mi := &file_flex_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4234,7 +4404,7 @@ func (x *RemoteStorageTarget_POSIX) String() string { func (*RemoteStorageTarget_POSIX) ProtoMessage() {} func (x *RemoteStorageTarget_POSIX) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[32] + mi := &file_flex_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4282,7 +4452,7 @@ type RemoteStorageTarget_S3_StorageClass struct { func (x *RemoteStorageTarget_S3_StorageClass) Reset() { *x = RemoteStorageTarget_S3_StorageClass{} - mi := &file_flex_proto_msgTypes[33] + mi := &file_flex_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4294,7 +4464,7 @@ func (x *RemoteStorageTarget_S3_StorageClass) String() string { func (*RemoteStorageTarget_S3_StorageClass) ProtoMessage() {} func (x *RemoteStorageTarget_S3_StorageClass) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[33] + mi := &file_flex_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4375,7 +4545,7 @@ type RemoteStorageTarget_S3_StorageClass_Archival struct { func (x *RemoteStorageTarget_S3_StorageClass_Archival) Reset() { *x = RemoteStorageTarget_S3_StorageClass_Archival{} - mi := &file_flex_proto_msgTypes[34] + mi := &file_flex_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4387,7 +4557,7 @@ func (x *RemoteStorageTarget_S3_StorageClass_Archival) String() string { func (*RemoteStorageTarget_S3_StorageClass_Archival) ProtoMessage() {} func (x *RemoteStorageTarget_S3_StorageClass_Archival) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[34] + mi := &file_flex_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4485,7 +4655,9 @@ var File_flex_proto protoreflect.FileDescriptor var file_flex_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x66, 0x6c, - 0x65, 0x78, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x65, 0x78, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x37, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, @@ -4611,7 +4783,7 @@ var file_flex_proto_rawDesc = []byte{ 0x74, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x22, 0xbe, 0x04, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x52, + 0x72, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x22, 0xc2, 0x05, 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, @@ -4637,295 +4809,312 @@ var file_flex_proto_rawDesc = []byte{ 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, 0x69, 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, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 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, 0xc8, 0x04, 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, 0x12, 0x28, 0x0a, - 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, - 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 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, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, - 0x65, 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, 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, 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, 0x52, 0x04, 0x72, 0x73, 0x74, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, + 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x41, 0x66, 0x74, + 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x41, 0x66, 0x74, + 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 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, 0x69, 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, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 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, 0xc8, 0x04, 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, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x03, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 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, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 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, 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, 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, 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, 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, 0xb4, 0x08, 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, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 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, 0xbc, 0x09, 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, 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, - 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, 0xcf, 0x04, 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, 0x12, 0x4e, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 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, 0x2e, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x1a, 0xc4, 0x02, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x08, 0x61, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 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, 0x2e, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, - 0x6c, 0x48, 0x00, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, - 0x1a, 0xbd, 0x01, 0x0a, 0x08, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 0x12, 0x25, 0x0a, - 0x0e, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, - 0x54, 0x69, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, - 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x72, 0x65, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 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, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa3, 0x02, - 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x0a, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, - 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x08, 0x66, 0x65, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x66, 0x6c, - 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0x4a, 0x0a, 0x0d, 0x46, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, - 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x97, 0x01, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, - 0x3e, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x46, 0x65, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, - 0x4c, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7d, 0x0a, - 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x69, - 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x32, 0xb0, 0x03, 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, 0x12, - 0x4e, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 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, + 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, 0x12, 0x49, 0x0a, 0x0b, 0x78, 0x74, 0x72, 0x65, 0x65, 0x6d, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 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, 0x58, 0x74, 0x72, 0x65, 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x72, 0x65, + 0x48, 0x00, 0x52, 0x0b, 0x78, 0x74, 0x72, 0x65, 0x65, 0x6d, 0x73, 0x74, 0x6f, 0x72, 0x65, 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, 0xcf, 0x04, 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, 0x12, 0x4e, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 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, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x1a, 0xc4, 0x02, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x08, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 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, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, + 0x48, 0x00, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x1a, + 0xbd, 0x01, 0x0a, 0x08, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, + 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x54, + 0x69, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x74, + 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x72, 0x65, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 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, 0x3b, 0x0a, + 0x0b, 0x58, 0x74, 0x72, 0x65, 0x65, 0x6d, 0x53, 0x74, 0x6f, 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, 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, 0x22, + 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa3, 0x02, 0x0a, 0x17, 0x47, 0x65, + 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x6c, 0x65, 0x78, + 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x43, + 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x1a, 0x4a, 0x0a, 0x0d, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x97, 0x01, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x73, + 0x75, 0x62, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, + 0x53, 0x75, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0a, 0x73, 0x75, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0x4c, 0x0a, 0x0f, 0x53, + 0x75, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7d, 0x0a, 0x09, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x69, 0x6e, + 0x61, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x32, 0xb0, 0x03, 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, 0x12, 0x4e, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1c, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x66, + 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x69, 0x65, 0x73, 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) -var file_flex_proto_msgTypes = make([]protoimpl.MessageInfo, 37) +var file_flex_proto_msgTypes = make([]protoimpl.MessageInfo, 38) var file_flex_proto_goTypes = []any{ (UpdateWorkRequest_NewState)(0), // 0: flex.UpdateWorkRequest.NewState (BulkUpdateWorkRequest_NewState)(0), // 1: flex.BulkUpdateWorkRequest.NewState @@ -4964,71 +5153,77 @@ var file_flex_proto_goTypes = []any{ (*RemoteStorageTarget_Policies)(nil), // 34: flex.RemoteStorageTarget.Policies (*RemoteStorageTarget_S3)(nil), // 35: flex.RemoteStorageTarget.S3 (*RemoteStorageTarget_Azure)(nil), // 36: flex.RemoteStorageTarget.Azure - (*RemoteStorageTarget_POSIX)(nil), // 37: flex.RemoteStorageTarget.POSIX - (*RemoteStorageTarget_S3_StorageClass)(nil), // 38: flex.RemoteStorageTarget.S3.StorageClass - (*RemoteStorageTarget_S3_StorageClass_Archival)(nil), // 39: flex.RemoteStorageTarget.S3.StorageClass.Archival - nil, // 40: flex.GetCapabilitiesResponse.FeaturesEntry - nil, // 41: flex.Feature.SubFeatureEntry - (*timestamppb.Timestamp)(nil), // 42: google.protobuf.Timestamp + (*RemoteStorageTarget_XtreemStore)(nil), // 37: flex.RemoteStorageTarget.XtreemStore + (*RemoteStorageTarget_POSIX)(nil), // 38: flex.RemoteStorageTarget.POSIX + (*RemoteStorageTarget_S3_StorageClass)(nil), // 39: flex.RemoteStorageTarget.S3.StorageClass + (*RemoteStorageTarget_S3_StorageClass_Archival)(nil), // 40: flex.RemoteStorageTarget.S3.StorageClass.Archival + nil, // 41: flex.GetCapabilitiesResponse.FeaturesEntry + nil, // 42: flex.Feature.SubFeatureEntry + (*timestamppb.Timestamp)(nil), // 43: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 44: google.protobuf.Duration } var file_flex_proto_depIdxs = []int32{ 7, // 0: flex.HeartbeatResponse.node_stats:type_name -> flex.NodeStats - 42, // 1: flex.NodeStats.timestamp:type_name -> google.protobuf.Timestamp + 43, // 1: flex.NodeStats.timestamp:type_name -> google.protobuf.Timestamp 16, // 2: flex.SubmitWorkRequest.request:type_name -> flex.WorkRequest 20, // 3: flex.SubmitWorkResponse.work:type_name -> flex.Work 0, // 4: flex.UpdateWorkRequest.new_state:type_name -> flex.UpdateWorkRequest.NewState 20, // 5: flex.UpdateWorkResponse.work:type_name -> flex.Work 1, // 6: flex.BulkUpdateWorkRequest.new_state:type_name -> flex.BulkUpdateWorkRequest.NewState - 42, // 7: flex.JobLockedInfo.mtime:type_name -> google.protobuf.Timestamp - 42, // 8: flex.JobLockedInfo.remote_mtime:type_name -> google.protobuf.Timestamp + 43, // 7: flex.JobLockedInfo.mtime:type_name -> google.protobuf.Timestamp + 43, // 8: flex.JobLockedInfo.remote_mtime:type_name -> google.protobuf.Timestamp 14, // 9: flex.JobRequestCfg.locked_info:type_name -> flex.JobLockedInfo 29, // 10: flex.JobRequestCfg.metadata:type_name -> flex.JobRequestCfg.MetadataEntry 30, // 11: flex.WorkRequest.segment:type_name -> flex.WorkRequest.Segment 18, // 12: flex.WorkRequest.mock:type_name -> flex.MockJob 19, // 13: flex.WorkRequest.sync:type_name -> flex.SyncJob 17, // 14: flex.WorkRequest.builder:type_name -> flex.BuilderJob - 15, // 15: flex.BuilderJob.cfg:type_name -> flex.JobRequestCfg - 14, // 16: flex.MockJob.locked_info:type_name -> flex.JobLockedInfo - 15, // 17: flex.MockJob.cfg:type_name -> flex.JobRequestCfg - 2, // 18: flex.SyncJob.operation:type_name -> flex.SyncJob.Operation - 14, // 19: flex.SyncJob.locked_info:type_name -> flex.JobLockedInfo - 31, // 20: flex.SyncJob.metadata:type_name -> flex.SyncJob.MetadataEntry - 32, // 21: flex.Work.status:type_name -> flex.Work.Status - 33, // 22: flex.Work.parts:type_name -> flex.Work.Part - 23, // 23: flex.UpdateConfigRequest.bee_remote:type_name -> flex.BeeRemoteNode - 24, // 24: flex.UpdateConfigRequest.rsts:type_name -> flex.RemoteStorageTarget - 4, // 25: flex.UpdateConfigResponse.result:type_name -> flex.UpdateConfigResponse.Result - 34, // 26: flex.RemoteStorageTarget.policies:type_name -> flex.RemoteStorageTarget.Policies - 35, // 27: flex.RemoteStorageTarget.s3:type_name -> flex.RemoteStorageTarget.S3 - 37, // 28: flex.RemoteStorageTarget.posix:type_name -> flex.RemoteStorageTarget.POSIX - 36, // 29: flex.RemoteStorageTarget.azure:type_name -> flex.RemoteStorageTarget.Azure - 28, // 30: flex.GetCapabilitiesResponse.build_info:type_name -> flex.BuildInfo - 40, // 31: flex.GetCapabilitiesResponse.features:type_name -> flex.GetCapabilitiesResponse.FeaturesEntry - 42, // 32: flex.GetCapabilitiesResponse.start_timestamp:type_name -> google.protobuf.Timestamp - 41, // 33: flex.Feature.sub_feature:type_name -> flex.Feature.SubFeatureEntry - 3, // 34: flex.Work.Status.state:type_name -> flex.Work.State - 38, // 35: flex.RemoteStorageTarget.S3.storage_class:type_name -> flex.RemoteStorageTarget.S3.StorageClass - 35, // 36: flex.RemoteStorageTarget.Azure.s3:type_name -> flex.RemoteStorageTarget.S3 - 39, // 37: flex.RemoteStorageTarget.S3.StorageClass.archival:type_name -> flex.RemoteStorageTarget.S3.StorageClass.Archival - 27, // 38: flex.GetCapabilitiesResponse.FeaturesEntry.value:type_name -> flex.Feature - 27, // 39: flex.Feature.SubFeatureEntry.value:type_name -> flex.Feature - 21, // 40: flex.WorkerNode.UpdateConfig:input_type -> flex.UpdateConfigRequest - 5, // 41: flex.WorkerNode.Heartbeat:input_type -> flex.HeartbeatRequest - 8, // 42: flex.WorkerNode.SubmitWork:input_type -> flex.SubmitWorkRequest - 10, // 43: flex.WorkerNode.UpdateWork:input_type -> flex.UpdateWorkRequest - 12, // 44: flex.WorkerNode.BulkUpdateWork:input_type -> flex.BulkUpdateWorkRequest - 25, // 45: flex.WorkerNode.GetCapabilities:input_type -> flex.GetCapabilitiesRequest - 22, // 46: flex.WorkerNode.UpdateConfig:output_type -> flex.UpdateConfigResponse - 6, // 47: flex.WorkerNode.Heartbeat:output_type -> flex.HeartbeatResponse - 9, // 48: flex.WorkerNode.SubmitWork:output_type -> flex.SubmitWorkResponse - 11, // 49: flex.WorkerNode.UpdateWork:output_type -> flex.UpdateWorkResponse - 13, // 50: flex.WorkerNode.BulkUpdateWork:output_type -> flex.BulkUpdateWorkResponse - 26, // 51: flex.WorkerNode.GetCapabilities:output_type -> flex.GetCapabilitiesResponse - 46, // [46:52] is the sub-list for method output_type - 40, // [40:46] is the sub-list for method input_type - 40, // [40:40] is the sub-list for extension type_name - 40, // [40:40] is the sub-list for extension extendee - 0, // [0:40] is the sub-list for field type_name + 43, // 15: flex.WorkRequest.ExecuteAfter:type_name -> google.protobuf.Timestamp + 44, // 16: flex.WorkRequest.delay_execution:type_name -> google.protobuf.Duration + 15, // 17: flex.BuilderJob.cfg:type_name -> flex.JobRequestCfg + 14, // 18: flex.MockJob.locked_info:type_name -> flex.JobLockedInfo + 15, // 19: flex.MockJob.cfg:type_name -> flex.JobRequestCfg + 2, // 20: flex.SyncJob.operation:type_name -> flex.SyncJob.Operation + 14, // 21: flex.SyncJob.locked_info:type_name -> flex.JobLockedInfo + 31, // 22: flex.SyncJob.metadata:type_name -> flex.SyncJob.MetadataEntry + 32, // 23: flex.Work.status:type_name -> flex.Work.Status + 33, // 24: flex.Work.parts:type_name -> flex.Work.Part + 23, // 25: flex.UpdateConfigRequest.bee_remote:type_name -> flex.BeeRemoteNode + 24, // 26: flex.UpdateConfigRequest.rsts:type_name -> flex.RemoteStorageTarget + 4, // 27: flex.UpdateConfigResponse.result:type_name -> flex.UpdateConfigResponse.Result + 34, // 28: flex.RemoteStorageTarget.policies:type_name -> flex.RemoteStorageTarget.Policies + 35, // 29: flex.RemoteStorageTarget.s3:type_name -> flex.RemoteStorageTarget.S3 + 38, // 30: flex.RemoteStorageTarget.posix:type_name -> flex.RemoteStorageTarget.POSIX + 36, // 31: flex.RemoteStorageTarget.azure:type_name -> flex.RemoteStorageTarget.Azure + 37, // 32: flex.RemoteStorageTarget.xtreemstore:type_name -> flex.RemoteStorageTarget.XtreemStore + 28, // 33: flex.GetCapabilitiesResponse.build_info:type_name -> flex.BuildInfo + 41, // 34: flex.GetCapabilitiesResponse.features:type_name -> flex.GetCapabilitiesResponse.FeaturesEntry + 43, // 35: flex.GetCapabilitiesResponse.start_timestamp:type_name -> google.protobuf.Timestamp + 42, // 36: flex.Feature.sub_feature:type_name -> flex.Feature.SubFeatureEntry + 3, // 37: flex.Work.Status.state:type_name -> flex.Work.State + 39, // 38: flex.RemoteStorageTarget.S3.storage_class:type_name -> flex.RemoteStorageTarget.S3.StorageClass + 35, // 39: flex.RemoteStorageTarget.Azure.s3:type_name -> flex.RemoteStorageTarget.S3 + 35, // 40: flex.RemoteStorageTarget.XtreemStore.s3:type_name -> flex.RemoteStorageTarget.S3 + 40, // 41: flex.RemoteStorageTarget.S3.StorageClass.archival:type_name -> flex.RemoteStorageTarget.S3.StorageClass.Archival + 27, // 42: flex.GetCapabilitiesResponse.FeaturesEntry.value:type_name -> flex.Feature + 27, // 43: flex.Feature.SubFeatureEntry.value:type_name -> flex.Feature + 21, // 44: flex.WorkerNode.UpdateConfig:input_type -> flex.UpdateConfigRequest + 5, // 45: flex.WorkerNode.Heartbeat:input_type -> flex.HeartbeatRequest + 8, // 46: flex.WorkerNode.SubmitWork:input_type -> flex.SubmitWorkRequest + 10, // 47: flex.WorkerNode.UpdateWork:input_type -> flex.UpdateWorkRequest + 12, // 48: flex.WorkerNode.BulkUpdateWork:input_type -> flex.BulkUpdateWorkRequest + 25, // 49: flex.WorkerNode.GetCapabilities:input_type -> flex.GetCapabilitiesRequest + 22, // 50: flex.WorkerNode.UpdateConfig:output_type -> flex.UpdateConfigResponse + 6, // 51: flex.WorkerNode.Heartbeat:output_type -> flex.HeartbeatResponse + 9, // 52: flex.WorkerNode.SubmitWork:output_type -> flex.SubmitWorkResponse + 11, // 53: flex.WorkerNode.UpdateWork:output_type -> flex.UpdateWorkResponse + 13, // 54: flex.WorkerNode.BulkUpdateWork:output_type -> flex.BulkUpdateWorkResponse + 26, // 55: flex.WorkerNode.GetCapabilities:output_type -> flex.GetCapabilitiesResponse + 50, // [50:56] is the sub-list for method output_type + 44, // [44:50] is the sub-list for method input_type + 44, // [44:44] is the sub-list for extension type_name + 44, // [44:44] is the sub-list for extension extendee + 0, // [0:44] is the sub-list for field type_name } func init() { file_flex_proto_init() } @@ -5048,15 +5243,16 @@ func file_flex_proto_init() { (*RemoteStorageTarget_Posix)(nil), (*RemoteStorageTarget_Azure_)(nil), (*RemoteStorageTarget_Mock)(nil), + (*RemoteStorageTarget_Xtreemstore)(nil), } - file_flex_proto_msgTypes[33].OneofWrappers = []any{} + file_flex_proto_msgTypes[34].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_flex_proto_rawDesc, NumEnums: 5, - NumMessages: 37, + NumMessages: 38, NumExtensions: 0, NumServices: 1, }, diff --git a/go/flex/flex_protoopaque.pb.go b/go/flex/flex_protoopaque.pb.go index e66a2c4..009c3ef 100644 --- a/go/flex/flex_protoopaque.pb.go +++ b/go/flex/flex_protoopaque.pb.go @@ -13,6 +13,7 @@ package flex import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" + durationpb "google.golang.org/protobuf/types/known/durationpb" timestamppb "google.golang.org/protobuf/types/known/timestamppb" reflect "reflect" ) @@ -1567,6 +1568,8 @@ type WorkRequest struct { 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_hidden_ExecuteAfter *timestamppb.Timestamp `protobuf:"bytes,13,opt,name=ExecuteAfter,proto3" json:"ExecuteAfter,omitempty"` + xxx_hidden_DelayExecution *durationpb.Duration `protobuf:"bytes,14,opt,name=delay_execution,json=delayExecution,proto3" json:"delay_execution,omitempty"` XXX_raceDetectHookData protoimpl.RaceDetectHookData XXX_presence [1]uint32 unknownFields protoimpl.UnknownFields @@ -1681,6 +1684,20 @@ func (x *WorkRequest) GetPriority() int32 { return 0 } +func (x *WorkRequest) GetExecuteAfter() *timestamppb.Timestamp { + if x != nil { + return x.xxx_hidden_ExecuteAfter + } + return nil +} + +func (x *WorkRequest) GetDelayExecution() *durationpb.Duration { + if x != nil { + return x.xxx_hidden_DelayExecution + } + return nil +} + func (x *WorkRequest) SetJobId(v string) { x.xxx_hidden_JobId = v } @@ -1735,7 +1752,15 @@ func (x *WorkRequest) SetStubLocal(v bool) { func (x *WorkRequest) SetPriority(v int32) { x.xxx_hidden_Priority = v - protoimpl.X.SetPresent(&(x.XXX_presence[0]), 8, 9) + protoimpl.X.SetPresent(&(x.XXX_presence[0]), 8, 11) +} + +func (x *WorkRequest) SetExecuteAfter(v *timestamppb.Timestamp) { + x.xxx_hidden_ExecuteAfter = v +} + +func (x *WorkRequest) SetDelayExecution(v *durationpb.Duration) { + x.xxx_hidden_DelayExecution = v } func (x *WorkRequest) HasSegment() bool { @@ -1783,6 +1808,20 @@ func (x *WorkRequest) HasPriority() bool { return protoimpl.X.Present(&(x.XXX_presence[0]), 8) } +func (x *WorkRequest) HasExecuteAfter() bool { + if x == nil { + return false + } + return x.xxx_hidden_ExecuteAfter != nil +} + +func (x *WorkRequest) HasDelayExecution() bool { + if x == nil { + return false + } + return x.xxx_hidden_DelayExecution != nil +} + func (x *WorkRequest) ClearSegment() { x.xxx_hidden_Segment = nil } @@ -1814,6 +1853,14 @@ func (x *WorkRequest) ClearPriority() { x.xxx_hidden_Priority = 0 } +func (x *WorkRequest) ClearExecuteAfter() { + x.xxx_hidden_ExecuteAfter = nil +} + +func (x *WorkRequest) ClearDelayExecution() { + x.xxx_hidden_DelayExecution = 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 @@ -1854,6 +1901,11 @@ type WorkRequest_builder struct { // When stub_local is set the local file with be a stub file StubLocal bool Priority *int32 + // A work request scheduled for a future time is placed in the wait queue until it's expired. + ExecuteAfter *timestamppb.Timestamp + // delay_execution specifies a delay before execution. The executing node converts it to + // ExecuteAfter using its local time to avoid clock synchronization issues. + DelayExecution *durationpb.Duration } func (b0 WorkRequest_builder) Build() *WorkRequest { @@ -1877,9 +1929,11 @@ func (b0 WorkRequest_builder) Build() *WorkRequest { } x.xxx_hidden_StubLocal = b.StubLocal if b.Priority != nil { - protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 8, 9) + protoimpl.X.SetPresentNonAtomic(&(x.XXX_presence[0]), 8, 11) x.xxx_hidden_Priority = *b.Priority } + x.xxx_hidden_ExecuteAfter = b.ExecuteAfter + x.xxx_hidden_DelayExecution = b.DelayExecution return m0 } @@ -3040,6 +3094,15 @@ func (x *RemoteStorageTarget) GetMock() string { return "" } +func (x *RemoteStorageTarget) GetXtreemstore() *RemoteStorageTarget_XtreemStore { + if x != nil { + if x, ok := x.xxx_hidden_Type.(*remoteStorageTarget_Xtreemstore); ok { + return x.Xtreemstore + } + } + return nil +} + func (x *RemoteStorageTarget) SetId(v uint32) { x.xxx_hidden_Id = v } @@ -3080,6 +3143,14 @@ func (x *RemoteStorageTarget) SetMock(v string) { x.xxx_hidden_Type = &remoteStorageTarget_Mock{v} } +func (x *RemoteStorageTarget) SetXtreemstore(v *RemoteStorageTarget_XtreemStore) { + if v == nil { + x.xxx_hidden_Type = nil + return + } + x.xxx_hidden_Type = &remoteStorageTarget_Xtreemstore{v} +} + func (x *RemoteStorageTarget) HasPolicies() bool { if x == nil { return false @@ -3126,6 +3197,14 @@ func (x *RemoteStorageTarget) HasMock() bool { return ok } +func (x *RemoteStorageTarget) HasXtreemstore() bool { + if x == nil { + return false + } + _, ok := x.xxx_hidden_Type.(*remoteStorageTarget_Xtreemstore) + return ok +} + func (x *RemoteStorageTarget) ClearPolicies() { x.xxx_hidden_Policies = nil } @@ -3158,11 +3237,18 @@ func (x *RemoteStorageTarget) ClearMock() { } } +func (x *RemoteStorageTarget) ClearXtreemstore() { + if _, ok := x.xxx_hidden_Type.(*remoteStorageTarget_Xtreemstore); ok { + x.xxx_hidden_Type = nil + } +} + const RemoteStorageTarget_Type_not_set_case case_RemoteStorageTarget_Type = 0 const RemoteStorageTarget_S3_case case_RemoteStorageTarget_Type = 4 const RemoteStorageTarget_Posix_case case_RemoteStorageTarget_Type = 5 const RemoteStorageTarget_Azure_case case_RemoteStorageTarget_Type = 6 const RemoteStorageTarget_Mock_case case_RemoteStorageTarget_Type = 7 +const RemoteStorageTarget_Xtreemstore_case case_RemoteStorageTarget_Type = 8 func (x *RemoteStorageTarget) WhichType() case_RemoteStorageTarget_Type { if x == nil { @@ -3177,6 +3263,8 @@ func (x *RemoteStorageTarget) WhichType() case_RemoteStorageTarget_Type { return RemoteStorageTarget_Azure_case case *remoteStorageTarget_Mock: return RemoteStorageTarget_Mock_case + case *remoteStorageTarget_Xtreemstore: + return RemoteStorageTarget_Xtreemstore_case default: return RemoteStorageTarget_Type_not_set_case } @@ -3196,10 +3284,11 @@ type RemoteStorageTarget_builder struct { // in the rst package for additional details. // Fields of oneof xxx_hidden_Type: - S3 *RemoteStorageTarget_S3 - Posix *RemoteStorageTarget_POSIX - Azure *RemoteStorageTarget_Azure - Mock *string + S3 *RemoteStorageTarget_S3 + Posix *RemoteStorageTarget_POSIX + Azure *RemoteStorageTarget_Azure + Mock *string + Xtreemstore *RemoteStorageTarget_XtreemStore // -- end of xxx_hidden_Type } @@ -3222,6 +3311,9 @@ func (b0 RemoteStorageTarget_builder) Build() *RemoteStorageTarget { if b.Mock != nil { x.xxx_hidden_Type = &remoteStorageTarget_Mock{*b.Mock} } + if b.Xtreemstore != nil { + x.xxx_hidden_Type = &remoteStorageTarget_Xtreemstore{b.Xtreemstore} + } return m0 } @@ -3255,6 +3347,10 @@ type remoteStorageTarget_Mock struct { Mock string `protobuf:"bytes,7,opt,name=mock,proto3,oneof"` } +type remoteStorageTarget_Xtreemstore struct { + Xtreemstore *RemoteStorageTarget_XtreemStore `protobuf:"bytes,8,opt,name=xtreemstore,proto3,oneof"` +} + func (*remoteStorageTarget_S3_) isRemoteStorageTarget_Type() {} func (*remoteStorageTarget_Posix) isRemoteStorageTarget_Type() {} @@ -3263,6 +3359,8 @@ func (*remoteStorageTarget_Azure_) isRemoteStorageTarget_Type() {} func (*remoteStorageTarget_Mock) isRemoteStorageTarget_Type() {} +func (*remoteStorageTarget_Xtreemstore) isRemoteStorageTarget_Type() {} + type GetCapabilitiesRequest struct { state protoimpl.MessageState `protogen:"opaque.v1"` unknownFields protoimpl.UnknownFields @@ -4194,6 +4292,74 @@ func (b0 RemoteStorageTarget_Azure_builder) Build() *RemoteStorageTarget_Azure { return m0 } +type RemoteStorageTarget_XtreemStore struct { + state protoimpl.MessageState `protogen:"opaque.v1"` + xxx_hidden_S3 *RemoteStorageTarget_S3 `protobuf:"bytes,1,opt,name=s3,proto3" json:"s3,omitempty"` + unknownFields protoimpl.UnknownFields + sizeCache protoimpl.SizeCache +} + +func (x *RemoteStorageTarget_XtreemStore) Reset() { + *x = RemoteStorageTarget_XtreemStore{} + mi := &file_flex_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) +} + +func (x *RemoteStorageTarget_XtreemStore) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*RemoteStorageTarget_XtreemStore) ProtoMessage() {} + +func (x *RemoteStorageTarget_XtreemStore) ProtoReflect() protoreflect.Message { + mi := &file_flex_proto_msgTypes[32] + if x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +func (x *RemoteStorageTarget_XtreemStore) GetS3() *RemoteStorageTarget_S3 { + if x != nil { + return x.xxx_hidden_S3 + } + return nil +} + +func (x *RemoteStorageTarget_XtreemStore) SetS3(v *RemoteStorageTarget_S3) { + x.xxx_hidden_S3 = v +} + +func (x *RemoteStorageTarget_XtreemStore) HasS3() bool { + if x == nil { + return false + } + return x.xxx_hidden_S3 != nil +} + +func (x *RemoteStorageTarget_XtreemStore) ClearS3() { + x.xxx_hidden_S3 = nil +} + +type RemoteStorageTarget_XtreemStore_builder struct { + _ [0]func() // Prevents comparability and use of unkeyed literals for the builder. + + S3 *RemoteStorageTarget_S3 +} + +func (b0 RemoteStorageTarget_XtreemStore_builder) Build() *RemoteStorageTarget_XtreemStore { + m0 := &RemoteStorageTarget_XtreemStore{} + b, x := &b0, m0 + _, _ = b, x + x.xxx_hidden_S3 = b.S3 + return m0 +} + type RemoteStorageTarget_POSIX struct { state protoimpl.MessageState `protogen:"opaque.v1"` xxx_hidden_Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` @@ -4203,7 +4369,7 @@ type RemoteStorageTarget_POSIX struct { func (x *RemoteStorageTarget_POSIX) Reset() { *x = RemoteStorageTarget_POSIX{} - mi := &file_flex_proto_msgTypes[32] + mi := &file_flex_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4215,7 +4381,7 @@ func (x *RemoteStorageTarget_POSIX) String() string { func (*RemoteStorageTarget_POSIX) ProtoMessage() {} func (x *RemoteStorageTarget_POSIX) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[32] + mi := &file_flex_proto_msgTypes[33] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4261,7 +4427,7 @@ type RemoteStorageTarget_S3_StorageClass struct { func (x *RemoteStorageTarget_S3_StorageClass) Reset() { *x = RemoteStorageTarget_S3_StorageClass{} - mi := &file_flex_proto_msgTypes[33] + mi := &file_flex_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4273,7 +4439,7 @@ func (x *RemoteStorageTarget_S3_StorageClass) String() string { func (*RemoteStorageTarget_S3_StorageClass) ProtoMessage() {} func (x *RemoteStorageTarget_S3_StorageClass) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[33] + mi := &file_flex_proto_msgTypes[34] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4348,7 +4514,7 @@ type RemoteStorageTarget_S3_StorageClass_Archival struct { func (x *RemoteStorageTarget_S3_StorageClass_Archival) Reset() { *x = RemoteStorageTarget_S3_StorageClass_Archival{} - mi := &file_flex_proto_msgTypes[34] + mi := &file_flex_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -4360,7 +4526,7 @@ func (x *RemoteStorageTarget_S3_StorageClass_Archival) String() string { func (*RemoteStorageTarget_S3_StorageClass_Archival) ProtoMessage() {} func (x *RemoteStorageTarget_S3_StorageClass_Archival) ProtoReflect() protoreflect.Message { - mi := &file_flex_proto_msgTypes[34] + mi := &file_flex_proto_msgTypes[35] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -4458,7 +4624,9 @@ var File_flex_proto protoreflect.FileDescriptor var file_flex_proto_rawDesc = []byte{ 0x0a, 0x0a, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x04, 0x66, 0x6c, - 0x65, 0x78, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x65, 0x78, 0x1a, 0x1e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x62, 0x75, 0x66, 0x2f, 0x64, 0x75, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x2e, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x1a, 0x1f, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x37, 0x0a, 0x10, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x23, 0x0a, 0x0d, 0x69, 0x6e, 0x63, 0x6c, 0x75, @@ -4584,7 +4752,7 @@ var file_flex_proto_rawDesc = []byte{ 0x74, 0x79, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, 0x0e, 0x0a, 0x0c, 0x5f, 0x66, 0x69, 0x6c, 0x74, 0x65, - 0x72, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x22, 0xbe, 0x04, 0x0a, 0x0b, 0x57, 0x6f, 0x72, 0x6b, 0x52, + 0x72, 0x5f, 0x65, 0x78, 0x70, 0x72, 0x22, 0xc2, 0x05, 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, @@ -4610,295 +4778,312 @@ var file_flex_proto_rawDesc = []byte{ 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, 0x69, 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, 0x12, 0x1c, 0x0a, 0x09, - 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x73, 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, 0xc8, 0x04, 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, 0x12, 0x28, 0x0a, - 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x43, - 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x61, 0x6c, 0x6c, 0x6f, 0x77, - 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x08, 0x48, 0x03, - 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 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, 0x42, 0x10, 0x0a, - 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x42, - 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, - 0x65, 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, 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, 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, 0x52, 0x04, 0x72, 0x73, 0x74, 0x73, 0x22, 0xad, 0x01, 0x0a, 0x14, 0x55, 0x70, 0x64, + 0x01, 0x01, 0x12, 0x3e, 0x0a, 0x0c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x41, 0x66, 0x74, + 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, + 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0c, 0x45, 0x78, 0x65, 0x63, 0x75, 0x74, 0x65, 0x41, 0x66, 0x74, + 0x65, 0x72, 0x12, 0x42, 0x0a, 0x0f, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x5f, 0x65, 0x78, 0x65, 0x63, + 0x75, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x6f, + 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x44, 0x75, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0e, 0x64, 0x65, 0x6c, 0x61, 0x79, 0x45, 0x78, 0x65, + 0x63, 0x75, 0x74, 0x69, 0x6f, 0x6e, 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, 0x69, 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, + 0x12, 0x1c, 0x0a, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x73, 0x75, 0x62, 0x6d, 0x69, 0x74, 0x74, 0x65, 0x64, 0x12, 0x16, + 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 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, 0xc8, 0x04, 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, 0x12, 0x28, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, 0x61, + 0x73, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x48, 0x02, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, + 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x88, 0x01, 0x01, 0x12, 0x28, 0x0a, 0x0d, 0x61, + 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x08, 0x48, 0x03, 0x52, 0x0c, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x52, 0x65, 0x73, 0x74, 0x6f, + 0x72, 0x65, 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, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6c, + 0x61, 0x73, 0x73, 0x42, 0x10, 0x0a, 0x0e, 0x5f, 0x61, 0x6c, 0x6c, 0x6f, 0x77, 0x5f, 0x72, 0x65, + 0x73, 0x74, 0x6f, 0x72, 0x65, 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, 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, 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, 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, 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, 0xb4, 0x08, 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, 0x78, 0x2e, 0x52, 0x65, 0x6d, 0x6f, + 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, 0xbc, 0x09, 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, 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, - 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, 0xcf, 0x04, 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, 0x12, 0x4e, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 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, 0x2e, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, - 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x1a, 0xc4, 0x02, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x72, 0x61, - 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x08, 0x61, - 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 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, 0x2e, 0x53, 0x74, 0x6f, 0x72, - 0x61, 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, - 0x6c, 0x48, 0x00, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, - 0x1a, 0xbd, 0x01, 0x0a, 0x08, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 0x12, 0x25, 0x0a, - 0x0e, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, - 0x54, 0x69, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, - 0x6e, 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, - 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, - 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, - 0x63, 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x72, 0x65, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, - 0x0c, 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x08, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, - 0x42, 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 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, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, - 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa3, 0x02, - 0x0a, 0x17, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x0a, 0x62, 0x75, 0x69, - 0x6c, 0x64, 0x5f, 0x69, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, - 0x62, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x08, 0x66, 0x65, 0x61, - 0x74, 0x75, 0x72, 0x65, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x66, 0x6c, - 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, - 0x65, 0x73, 0x12, 0x43, 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, - 0x73, 0x74, 0x61, 0x6d, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, - 0x6f, 0x67, 0x6c, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, - 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, 0x70, 0x1a, 0x4a, 0x0a, 0x0d, 0x46, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, - 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, - 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, - 0x02, 0x38, 0x01, 0x22, 0x97, 0x01, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, - 0x3e, 0x0a, 0x0b, 0x73, 0x75, 0x62, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x46, 0x65, 0x61, 0x74, - 0x75, 0x72, 0x65, 0x2e, 0x53, 0x75, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x6e, - 0x74, 0x72, 0x79, 0x52, 0x0a, 0x73, 0x75, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, - 0x4c, 0x0a, 0x0f, 0x53, 0x75, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x74, - 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, - 0x72, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7d, 0x0a, - 0x09, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x69, - 0x6e, 0x61, 0x72, 0x79, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, - 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, - 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, - 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x32, 0xb0, 0x03, 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, 0x12, - 0x4e, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, - 0x65, 0x73, 0x12, 0x1c, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, - 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, - 0x1a, 0x1d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, - 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 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, + 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, 0x12, 0x49, 0x0a, 0x0b, 0x78, 0x74, 0x72, 0x65, 0x65, 0x6d, 0x73, 0x74, + 0x6f, 0x72, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 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, 0x58, 0x74, 0x72, 0x65, 0x65, 0x6d, 0x53, 0x74, 0x6f, 0x72, 0x65, + 0x48, 0x00, 0x52, 0x0b, 0x78, 0x74, 0x72, 0x65, 0x65, 0x6d, 0x73, 0x74, 0x6f, 0x72, 0x65, 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, 0xcf, 0x04, 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, 0x12, 0x4e, 0x0a, 0x0d, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x5f, 0x63, 0x6c, 0x61, 0x73, 0x73, 0x18, 0x08, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x29, 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, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x52, 0x0c, 0x73, 0x74, 0x6f, 0x72, 0x61, 0x67, 0x65, + 0x43, 0x6c, 0x61, 0x73, 0x73, 0x1a, 0xc4, 0x02, 0x0a, 0x0c, 0x53, 0x74, 0x6f, 0x72, 0x61, 0x67, + 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x53, 0x0a, 0x08, 0x61, 0x72, + 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x32, 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, 0x2e, 0x53, 0x74, 0x6f, 0x72, 0x61, + 0x67, 0x65, 0x43, 0x6c, 0x61, 0x73, 0x73, 0x2e, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, + 0x48, 0x00, 0x52, 0x08, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 0x88, 0x01, 0x01, 0x1a, + 0xbd, 0x01, 0x0a, 0x08, 0x41, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 0x12, 0x25, 0x0a, 0x0e, + 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x5f, 0x74, 0x69, 0x65, 0x72, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x72, 0x65, 0x74, 0x72, 0x69, 0x65, 0x76, 0x61, 0x6c, 0x54, + 0x69, 0x65, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x74, 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, + 0x5f, 0x64, 0x61, 0x79, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x72, 0x65, 0x74, + 0x65, 0x6e, 0x74, 0x69, 0x6f, 0x6e, 0x44, 0x61, 0x79, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x63, 0x68, + 0x65, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x63, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x72, 0x65, 0x63, + 0x68, 0x65, 0x63, 0x6b, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x72, 0x65, 0x63, 0x68, 0x65, 0x63, 0x6b, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, + 0x61, 0x75, 0x74, 0x6f, 0x5f, 0x72, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0b, 0x61, 0x75, 0x74, 0x6f, 0x52, 0x65, 0x73, 0x74, 0x6f, 0x72, 0x65, 0x42, + 0x0b, 0x0a, 0x09, 0x5f, 0x61, 0x72, 0x63, 0x68, 0x69, 0x76, 0x61, 0x6c, 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, 0x3b, 0x0a, + 0x0b, 0x58, 0x74, 0x72, 0x65, 0x65, 0x6d, 0x53, 0x74, 0x6f, 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, 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, 0x22, + 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, + 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0xa3, 0x02, 0x0a, 0x17, 0x47, 0x65, + 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x2e, 0x0a, 0x0a, 0x62, 0x75, 0x69, 0x6c, 0x64, 0x5f, 0x69, + 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x66, 0x6c, 0x65, 0x78, + 0x2e, 0x42, 0x75, 0x69, 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x62, 0x75, 0x69, 0x6c, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x47, 0x0a, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x2b, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x47, + 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x52, 0x08, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x12, 0x43, + 0x0a, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x73, 0x74, 0x61, 0x6d, + 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x6f, 0x6f, 0x67, 0x6c, 0x65, + 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x75, 0x66, 0x2e, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x52, 0x0e, 0x73, 0x74, 0x61, 0x72, 0x74, 0x54, 0x69, 0x6d, 0x65, 0x73, 0x74, + 0x61, 0x6d, 0x70, 0x1a, 0x4a, 0x0a, 0x0d, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x73, 0x45, + 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x46, 0x65, 0x61, + 0x74, 0x75, 0x72, 0x65, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, + 0x97, 0x01, 0x0a, 0x07, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x12, 0x3e, 0x0a, 0x0b, 0x73, + 0x75, 0x62, 0x5f, 0x66, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x1d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x2e, + 0x53, 0x75, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, + 0x0a, 0x73, 0x75, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x1a, 0x4c, 0x0a, 0x0f, 0x53, + 0x75, 0x62, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, + 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, + 0x12, 0x23, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x0d, 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x46, 0x65, 0x61, 0x74, 0x75, 0x72, 0x65, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x7d, 0x0a, 0x09, 0x42, 0x75, 0x69, + 0x6c, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1f, 0x0a, 0x0b, 0x62, 0x69, 0x6e, 0x61, 0x72, 0x79, + 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x62, 0x69, 0x6e, + 0x61, 0x72, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, + 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x63, 0x6f, 0x6d, 0x6d, 0x69, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x62, 0x75, 0x69, + 0x6c, 0x64, 0x5f, 0x74, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x62, + 0x75, 0x69, 0x6c, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x32, 0xb0, 0x03, 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, 0x12, 0x4e, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x12, 0x1c, + 0x2e, 0x66, 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, + 0x69, 0x74, 0x69, 0x65, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1d, 0x2e, 0x66, + 0x6c, 0x65, 0x78, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, + 0x69, 0x65, 0x73, 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) -var file_flex_proto_msgTypes = make([]protoimpl.MessageInfo, 37) +var file_flex_proto_msgTypes = make([]protoimpl.MessageInfo, 38) var file_flex_proto_goTypes = []any{ (UpdateWorkRequest_NewState)(0), // 0: flex.UpdateWorkRequest.NewState (BulkUpdateWorkRequest_NewState)(0), // 1: flex.BulkUpdateWorkRequest.NewState @@ -4937,71 +5122,77 @@ var file_flex_proto_goTypes = []any{ (*RemoteStorageTarget_Policies)(nil), // 34: flex.RemoteStorageTarget.Policies (*RemoteStorageTarget_S3)(nil), // 35: flex.RemoteStorageTarget.S3 (*RemoteStorageTarget_Azure)(nil), // 36: flex.RemoteStorageTarget.Azure - (*RemoteStorageTarget_POSIX)(nil), // 37: flex.RemoteStorageTarget.POSIX - (*RemoteStorageTarget_S3_StorageClass)(nil), // 38: flex.RemoteStorageTarget.S3.StorageClass - (*RemoteStorageTarget_S3_StorageClass_Archival)(nil), // 39: flex.RemoteStorageTarget.S3.StorageClass.Archival - nil, // 40: flex.GetCapabilitiesResponse.FeaturesEntry - nil, // 41: flex.Feature.SubFeatureEntry - (*timestamppb.Timestamp)(nil), // 42: google.protobuf.Timestamp + (*RemoteStorageTarget_XtreemStore)(nil), // 37: flex.RemoteStorageTarget.XtreemStore + (*RemoteStorageTarget_POSIX)(nil), // 38: flex.RemoteStorageTarget.POSIX + (*RemoteStorageTarget_S3_StorageClass)(nil), // 39: flex.RemoteStorageTarget.S3.StorageClass + (*RemoteStorageTarget_S3_StorageClass_Archival)(nil), // 40: flex.RemoteStorageTarget.S3.StorageClass.Archival + nil, // 41: flex.GetCapabilitiesResponse.FeaturesEntry + nil, // 42: flex.Feature.SubFeatureEntry + (*timestamppb.Timestamp)(nil), // 43: google.protobuf.Timestamp + (*durationpb.Duration)(nil), // 44: google.protobuf.Duration } var file_flex_proto_depIdxs = []int32{ 7, // 0: flex.HeartbeatResponse.node_stats:type_name -> flex.NodeStats - 42, // 1: flex.NodeStats.timestamp:type_name -> google.protobuf.Timestamp + 43, // 1: flex.NodeStats.timestamp:type_name -> google.protobuf.Timestamp 16, // 2: flex.SubmitWorkRequest.request:type_name -> flex.WorkRequest 20, // 3: flex.SubmitWorkResponse.work:type_name -> flex.Work 0, // 4: flex.UpdateWorkRequest.new_state:type_name -> flex.UpdateWorkRequest.NewState 20, // 5: flex.UpdateWorkResponse.work:type_name -> flex.Work 1, // 6: flex.BulkUpdateWorkRequest.new_state:type_name -> flex.BulkUpdateWorkRequest.NewState - 42, // 7: flex.JobLockedInfo.mtime:type_name -> google.protobuf.Timestamp - 42, // 8: flex.JobLockedInfo.remote_mtime:type_name -> google.protobuf.Timestamp + 43, // 7: flex.JobLockedInfo.mtime:type_name -> google.protobuf.Timestamp + 43, // 8: flex.JobLockedInfo.remote_mtime:type_name -> google.protobuf.Timestamp 14, // 9: flex.JobRequestCfg.locked_info:type_name -> flex.JobLockedInfo 29, // 10: flex.JobRequestCfg.metadata:type_name -> flex.JobRequestCfg.MetadataEntry 30, // 11: flex.WorkRequest.segment:type_name -> flex.WorkRequest.Segment 18, // 12: flex.WorkRequest.mock:type_name -> flex.MockJob 19, // 13: flex.WorkRequest.sync:type_name -> flex.SyncJob 17, // 14: flex.WorkRequest.builder:type_name -> flex.BuilderJob - 15, // 15: flex.BuilderJob.cfg:type_name -> flex.JobRequestCfg - 14, // 16: flex.MockJob.locked_info:type_name -> flex.JobLockedInfo - 15, // 17: flex.MockJob.cfg:type_name -> flex.JobRequestCfg - 2, // 18: flex.SyncJob.operation:type_name -> flex.SyncJob.Operation - 14, // 19: flex.SyncJob.locked_info:type_name -> flex.JobLockedInfo - 31, // 20: flex.SyncJob.metadata:type_name -> flex.SyncJob.MetadataEntry - 32, // 21: flex.Work.status:type_name -> flex.Work.Status - 33, // 22: flex.Work.parts:type_name -> flex.Work.Part - 23, // 23: flex.UpdateConfigRequest.bee_remote:type_name -> flex.BeeRemoteNode - 24, // 24: flex.UpdateConfigRequest.rsts:type_name -> flex.RemoteStorageTarget - 4, // 25: flex.UpdateConfigResponse.result:type_name -> flex.UpdateConfigResponse.Result - 34, // 26: flex.RemoteStorageTarget.policies:type_name -> flex.RemoteStorageTarget.Policies - 35, // 27: flex.RemoteStorageTarget.s3:type_name -> flex.RemoteStorageTarget.S3 - 37, // 28: flex.RemoteStorageTarget.posix:type_name -> flex.RemoteStorageTarget.POSIX - 36, // 29: flex.RemoteStorageTarget.azure:type_name -> flex.RemoteStorageTarget.Azure - 28, // 30: flex.GetCapabilitiesResponse.build_info:type_name -> flex.BuildInfo - 40, // 31: flex.GetCapabilitiesResponse.features:type_name -> flex.GetCapabilitiesResponse.FeaturesEntry - 42, // 32: flex.GetCapabilitiesResponse.start_timestamp:type_name -> google.protobuf.Timestamp - 41, // 33: flex.Feature.sub_feature:type_name -> flex.Feature.SubFeatureEntry - 3, // 34: flex.Work.Status.state:type_name -> flex.Work.State - 38, // 35: flex.RemoteStorageTarget.S3.storage_class:type_name -> flex.RemoteStorageTarget.S3.StorageClass - 35, // 36: flex.RemoteStorageTarget.Azure.s3:type_name -> flex.RemoteStorageTarget.S3 - 39, // 37: flex.RemoteStorageTarget.S3.StorageClass.archival:type_name -> flex.RemoteStorageTarget.S3.StorageClass.Archival - 27, // 38: flex.GetCapabilitiesResponse.FeaturesEntry.value:type_name -> flex.Feature - 27, // 39: flex.Feature.SubFeatureEntry.value:type_name -> flex.Feature - 21, // 40: flex.WorkerNode.UpdateConfig:input_type -> flex.UpdateConfigRequest - 5, // 41: flex.WorkerNode.Heartbeat:input_type -> flex.HeartbeatRequest - 8, // 42: flex.WorkerNode.SubmitWork:input_type -> flex.SubmitWorkRequest - 10, // 43: flex.WorkerNode.UpdateWork:input_type -> flex.UpdateWorkRequest - 12, // 44: flex.WorkerNode.BulkUpdateWork:input_type -> flex.BulkUpdateWorkRequest - 25, // 45: flex.WorkerNode.GetCapabilities:input_type -> flex.GetCapabilitiesRequest - 22, // 46: flex.WorkerNode.UpdateConfig:output_type -> flex.UpdateConfigResponse - 6, // 47: flex.WorkerNode.Heartbeat:output_type -> flex.HeartbeatResponse - 9, // 48: flex.WorkerNode.SubmitWork:output_type -> flex.SubmitWorkResponse - 11, // 49: flex.WorkerNode.UpdateWork:output_type -> flex.UpdateWorkResponse - 13, // 50: flex.WorkerNode.BulkUpdateWork:output_type -> flex.BulkUpdateWorkResponse - 26, // 51: flex.WorkerNode.GetCapabilities:output_type -> flex.GetCapabilitiesResponse - 46, // [46:52] is the sub-list for method output_type - 40, // [40:46] is the sub-list for method input_type - 40, // [40:40] is the sub-list for extension type_name - 40, // [40:40] is the sub-list for extension extendee - 0, // [0:40] is the sub-list for field type_name + 43, // 15: flex.WorkRequest.ExecuteAfter:type_name -> google.protobuf.Timestamp + 44, // 16: flex.WorkRequest.delay_execution:type_name -> google.protobuf.Duration + 15, // 17: flex.BuilderJob.cfg:type_name -> flex.JobRequestCfg + 14, // 18: flex.MockJob.locked_info:type_name -> flex.JobLockedInfo + 15, // 19: flex.MockJob.cfg:type_name -> flex.JobRequestCfg + 2, // 20: flex.SyncJob.operation:type_name -> flex.SyncJob.Operation + 14, // 21: flex.SyncJob.locked_info:type_name -> flex.JobLockedInfo + 31, // 22: flex.SyncJob.metadata:type_name -> flex.SyncJob.MetadataEntry + 32, // 23: flex.Work.status:type_name -> flex.Work.Status + 33, // 24: flex.Work.parts:type_name -> flex.Work.Part + 23, // 25: flex.UpdateConfigRequest.bee_remote:type_name -> flex.BeeRemoteNode + 24, // 26: flex.UpdateConfigRequest.rsts:type_name -> flex.RemoteStorageTarget + 4, // 27: flex.UpdateConfigResponse.result:type_name -> flex.UpdateConfigResponse.Result + 34, // 28: flex.RemoteStorageTarget.policies:type_name -> flex.RemoteStorageTarget.Policies + 35, // 29: flex.RemoteStorageTarget.s3:type_name -> flex.RemoteStorageTarget.S3 + 38, // 30: flex.RemoteStorageTarget.posix:type_name -> flex.RemoteStorageTarget.POSIX + 36, // 31: flex.RemoteStorageTarget.azure:type_name -> flex.RemoteStorageTarget.Azure + 37, // 32: flex.RemoteStorageTarget.xtreemstore:type_name -> flex.RemoteStorageTarget.XtreemStore + 28, // 33: flex.GetCapabilitiesResponse.build_info:type_name -> flex.BuildInfo + 41, // 34: flex.GetCapabilitiesResponse.features:type_name -> flex.GetCapabilitiesResponse.FeaturesEntry + 43, // 35: flex.GetCapabilitiesResponse.start_timestamp:type_name -> google.protobuf.Timestamp + 42, // 36: flex.Feature.sub_feature:type_name -> flex.Feature.SubFeatureEntry + 3, // 37: flex.Work.Status.state:type_name -> flex.Work.State + 39, // 38: flex.RemoteStorageTarget.S3.storage_class:type_name -> flex.RemoteStorageTarget.S3.StorageClass + 35, // 39: flex.RemoteStorageTarget.Azure.s3:type_name -> flex.RemoteStorageTarget.S3 + 35, // 40: flex.RemoteStorageTarget.XtreemStore.s3:type_name -> flex.RemoteStorageTarget.S3 + 40, // 41: flex.RemoteStorageTarget.S3.StorageClass.archival:type_name -> flex.RemoteStorageTarget.S3.StorageClass.Archival + 27, // 42: flex.GetCapabilitiesResponse.FeaturesEntry.value:type_name -> flex.Feature + 27, // 43: flex.Feature.SubFeatureEntry.value:type_name -> flex.Feature + 21, // 44: flex.WorkerNode.UpdateConfig:input_type -> flex.UpdateConfigRequest + 5, // 45: flex.WorkerNode.Heartbeat:input_type -> flex.HeartbeatRequest + 8, // 46: flex.WorkerNode.SubmitWork:input_type -> flex.SubmitWorkRequest + 10, // 47: flex.WorkerNode.UpdateWork:input_type -> flex.UpdateWorkRequest + 12, // 48: flex.WorkerNode.BulkUpdateWork:input_type -> flex.BulkUpdateWorkRequest + 25, // 49: flex.WorkerNode.GetCapabilities:input_type -> flex.GetCapabilitiesRequest + 22, // 50: flex.WorkerNode.UpdateConfig:output_type -> flex.UpdateConfigResponse + 6, // 51: flex.WorkerNode.Heartbeat:output_type -> flex.HeartbeatResponse + 9, // 52: flex.WorkerNode.SubmitWork:output_type -> flex.SubmitWorkResponse + 11, // 53: flex.WorkerNode.UpdateWork:output_type -> flex.UpdateWorkResponse + 13, // 54: flex.WorkerNode.BulkUpdateWork:output_type -> flex.BulkUpdateWorkResponse + 26, // 55: flex.WorkerNode.GetCapabilities:output_type -> flex.GetCapabilitiesResponse + 50, // [50:56] is the sub-list for method output_type + 44, // [44:50] is the sub-list for method input_type + 44, // [44:44] is the sub-list for extension type_name + 44, // [44:44] is the sub-list for extension extendee + 0, // [0:44] is the sub-list for field type_name } func init() { file_flex_proto_init() } @@ -5021,15 +5212,16 @@ func file_flex_proto_init() { (*remoteStorageTarget_Posix)(nil), (*remoteStorageTarget_Azure_)(nil), (*remoteStorageTarget_Mock)(nil), + (*remoteStorageTarget_Xtreemstore)(nil), } - file_flex_proto_msgTypes[33].OneofWrappers = []any{} + file_flex_proto_msgTypes[34].OneofWrappers = []any{} type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_flex_proto_rawDesc, NumEnums: 5, - NumMessages: 37, + NumMessages: 38, NumExtensions: 0, NumServices: 1, }, diff --git a/proto/beeremote.proto b/proto/beeremote.proto index fcc3053..d103eee 100644 --- a/proto/beeremote.proto +++ b/proto/beeremote.proto @@ -3,6 +3,7 @@ package beeremote; option go_package = "github.com/thinkparq/protobuf/go/beeremote"; import "flex.proto"; +import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; // Externally facing RPCs and messages clients and worker nodes use to interact @@ -98,6 +99,9 @@ message JobRequest { string message = 2; } optional bool update = 9; + // delay_execution specifies a delay used to generate the execute-after + // time for the work request by adding it to the current time. + optional google.protobuf.Duration delay_execution = 13; } // Job contains all the data from the original request plus the job ID and @@ -146,7 +150,7 @@ message Job { // When all worker node(s) have accepted the job's work requests, but may be waiting on // an available worker goroutine to pickup the request. SCHEDULED = 3; - // When all work requests for this job are in progress. + // When any work requests for this job are in progress. RUNNING = 4; // TODO: https://github.com/ThinkParQ/bee-remote/issues/16 // A user manually requested the job be paused. diff --git a/proto/flex.proto b/proto/flex.proto index 7bf97f2..475afb3 100644 --- a/proto/flex.proto +++ b/proto/flex.proto @@ -3,6 +3,7 @@ syntax = "proto3"; package flex; option go_package = "github.com/thinkparq/protobuf/go/flex"; +import "google/protobuf/duration.proto"; import "google/protobuf/timestamp.proto"; // A WorkerNode is able to handle one or more types of work requests. @@ -158,6 +159,11 @@ message WorkRequest { // When stub_local is set the local file with be a stub file bool stub_local = 8; optional int32 priority = 9; + // A work request scheduled for a future time is placed in the wait queue until it's expired. + google.protobuf.Timestamp ExecuteAfter = 13; + // delay_execution specifies a delay before execution. The executing node converts it to + // ExecuteAfter using its local time to avoid clock synchronization issues. + google.protobuf.Duration delay_execution = 14; } // JobBuilderJob is a special type of job that creates job requests of any time. @@ -388,6 +394,7 @@ message RemoteStorageTarget { POSIX posix = 5; Azure azure = 6; string mock = 7; + XtreemStore xtreemstore = 8; } // The S3 type uses the AWS S3 SDK under the hood. To support non-AWS S3 @@ -440,6 +447,10 @@ message RemoteStorageTarget { S3 s3 = 1; string account = 2; } + + message XtreemStore { + S3 s3 = 1; + } message POSIX { string path = 1; diff --git a/rust/beeremote.rs b/rust/beeremote.rs index a1533d4..4391059 100644 --- a/rust/beeremote.rs +++ b/rust/beeremote.rs @@ -101,6 +101,10 @@ pub struct JobRequest { pub generation_status: ::core::option::Option, #[prost(bool, optional, tag = "9")] pub update: ::core::option::Option, + /// delay_execution specifies a delay used to generate the execute-after + /// time for the work request by adding it to the current time. + #[prost(message, optional, tag = "13")] + pub delay_execution: ::core::option::Option<::prost_types::Duration>, #[prost(oneof = "job_request::Type", tags = "10, 11, 12")] pub r#type: ::core::option::Option, } @@ -270,7 +274,7 @@ pub mod job { /// When all worker node(s) have accepted the job's work requests, but may be waiting on /// an available worker goroutine to pickup the request. Scheduled = 3, - /// When all work requests for this job are in progress. + /// When any work requests for this job are in progress. Running = 4, /// TODO: /// A user manually requested the job be paused. diff --git a/rust/flex.rs b/rust/flex.rs index d3b34dc..d5c0231 100644 --- a/rust/flex.rs +++ b/rust/flex.rs @@ -243,6 +243,13 @@ pub struct WorkRequest { pub stub_local: bool, #[prost(int32, optional, tag = "9")] pub priority: ::core::option::Option, + /// A work request scheduled for a future time is placed in the wait queue until it's expired. + #[prost(message, optional, tag = "13")] + pub execute_after: ::core::option::Option<::prost_types::Timestamp>, + /// delay_execution specifies a delay before execution. The executing node converts it to + /// ExecuteAfter using its local time to avoid clock synchronization issues. + #[prost(message, optional, tag = "14")] + pub delay_execution: ::core::option::Option<::prost_types::Duration>, #[prost(oneof = "work_request::Type", tags = "10, 11, 12")] pub r#type: ::core::option::Option, } @@ -659,7 +666,7 @@ pub struct RemoteStorageTarget { /// in the rst package for additional details. /// /// Ref: - #[prost(oneof = "remote_storage_target::Type", tags = "4, 5, 6, 7")] + #[prost(oneof = "remote_storage_target::Type", tags = "4, 5, 6, 7, 8")] pub r#type: ::core::option::Option, } /// Nested message and enum types in `RemoteStorageTarget`. @@ -765,6 +772,11 @@ pub mod remote_storage_target { #[prost(string, tag = "2")] pub account: ::prost::alloc::string::String, } + #[derive(Clone, PartialEq, ::prost::Message)] + pub struct XtreemStore { + #[prost(message, optional, tag = "1")] + pub s3: ::core::option::Option, + } #[derive(Clone, PartialEq, Eq, Hash, ::prost::Message)] pub struct Posix { #[prost(string, tag = "1")] @@ -788,6 +800,8 @@ pub mod remote_storage_target { Azure(Azure), #[prost(string, tag = "7")] Mock(::prost::alloc::string::String), + #[prost(message, tag = "8")] + Xtreemstore(XtreemStore), } } #[derive(Clone, Copy, PartialEq, Eq, Hash, ::prost::Message)]