// Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.31.0 // protoc v4.25.1 // source: managedendpoint.proto package proto import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" ) const ( // Verify that this generated code is sufficiently up-to-date. _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) // Verify that runtime/protoimpl is sufficiently up-to-date. _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) ) type ReplicaCapacity struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields InFlight int64 `protobuf:"varint,1,opt,name=in_flight,json=inFlight,proto3" json:"in_flight,omitempty"` MaxConcurrency int64 `protobuf:"varint,2,opt,name=max_concurrency,json=maxConcurrency,proto3" json:"max_concurrency,omitempty"` Running int64 `protobuf:"varint,3,opt,name=running,proto3" json:"running,omitempty"` Waiting int64 `protobuf:"varint,4,opt,name=waiting,proto3" json:"waiting,omitempty"` KvCacheFreeMilli int64 `protobuf:"varint,5,opt,name=kv_cache_free_milli,json=kvCacheFreeMilli,proto3" json:"kv_cache_free_milli,omitempty"` DecodeTokensPerSec int64 `protobuf:"varint,6,opt,name=decode_tokens_per_sec,json=decodeTokensPerSec,proto3" json:"decode_tokens_per_sec,omitempty"` PromptTokensPerSec int64 `protobuf:"varint,7,opt,name=prompt_tokens_per_sec,json=promptTokensPerSec,proto3" json:"prompt_tokens_per_sec,omitempty"` TtftMs int64 `protobuf:"varint,8,opt,name=ttft_ms,json=ttftMs,proto3" json:"ttft_ms,omitempty"` TpotMs int64 `protobuf:"varint,9,opt,name=tpot_ms,json=tpotMs,proto3" json:"tpot_ms,omitempty"` PrefixCacheHitMilli int64 `protobuf:"varint,10,opt,name=prefix_cache_hit_milli,json=prefixCacheHitMilli,proto3" json:"prefix_cache_hit_milli,omitempty"` } func (x *ReplicaCapacity) Reset() { *x = ReplicaCapacity{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReplicaCapacity) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReplicaCapacity) ProtoMessage() {} func (x *ReplicaCapacity) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReplicaCapacity.ProtoReflect.Descriptor instead. func (*ReplicaCapacity) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{0} } func (x *ReplicaCapacity) GetInFlight() int64 { if x != nil { return x.InFlight } return 0 } func (x *ReplicaCapacity) GetMaxConcurrency() int64 { if x != nil { return x.MaxConcurrency } return 0 } func (x *ReplicaCapacity) GetRunning() int64 { if x != nil { return x.Running } return 0 } func (x *ReplicaCapacity) GetWaiting() int64 { if x != nil { return x.Waiting } return 0 } func (x *ReplicaCapacity) GetKvCacheFreeMilli() int64 { if x != nil { return x.KvCacheFreeMilli } return 0 } func (x *ReplicaCapacity) GetDecodeTokensPerSec() int64 { if x != nil { return x.DecodeTokensPerSec } return 0 } func (x *ReplicaCapacity) GetPromptTokensPerSec() int64 { if x != nil { return x.PromptTokensPerSec } return 0 } func (x *ReplicaCapacity) GetTtftMs() int64 { if x != nil { return x.TtftMs } return 0 } func (x *ReplicaCapacity) GetTpotMs() int64 { if x != nil { return x.TpotMs } return 0 } func (x *ReplicaCapacity) GetPrefixCacheHitMilli() int64 { if x != nil { return x.PrefixCacheHitMilli } return 0 } // ReplicaConfig is the live harness config of one replica: the requested // revision and the engine's answer to it. type ReplicaConfig struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Revision uint64 `protobuf:"varint,1,opt,name=revision,proto3" json:"revision,omitempty"` ConfigJson string `protobuf:"bytes,2,opt,name=config_json,json=configJson,proto3" json:"config_json,omitempty"` Author string `protobuf:"bytes,3,opt,name=author,proto3" json:"author,omitempty"` SetAtUnixMs int64 `protobuf:"varint,4,opt,name=set_at_unix_ms,json=setAtUnixMs,proto3" json:"set_at_unix_ms,omitempty"` AckedRevision uint64 `protobuf:"varint,5,opt,name=acked_revision,json=ackedRevision,proto3" json:"acked_revision,omitempty"` Applied bool `protobuf:"varint,6,opt,name=applied,proto3" json:"applied,omitempty"` Error string `protobuf:"bytes,7,opt,name=error,proto3" json:"error,omitempty"` EffectiveJson string `protobuf:"bytes,8,opt,name=effective_json,json=effectiveJson,proto3" json:"effective_json,omitempty"` AckedAtUnixMs int64 `protobuf:"varint,9,opt,name=acked_at_unix_ms,json=ackedAtUnixMs,proto3" json:"acked_at_unix_ms,omitempty"` Actor string `protobuf:"bytes,10,opt,name=actor,proto3" json:"actor,omitempty"` // authenticated token that set the revision } func (x *ReplicaConfig) Reset() { *x = ReplicaConfig{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ReplicaConfig) String() string { return protoimpl.X.MessageStringOf(x) } func (*ReplicaConfig) ProtoMessage() {} func (x *ReplicaConfig) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ReplicaConfig.ProtoReflect.Descriptor instead. func (*ReplicaConfig) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{1} } func (x *ReplicaConfig) GetRevision() uint64 { if x != nil { return x.Revision } return 0 } func (x *ReplicaConfig) GetConfigJson() string { if x != nil { return x.ConfigJson } return "" } func (x *ReplicaConfig) GetAuthor() string { if x != nil { return x.Author } return "" } func (x *ReplicaConfig) GetSetAtUnixMs() int64 { if x != nil { return x.SetAtUnixMs } return 0 } func (x *ReplicaConfig) GetAckedRevision() uint64 { if x != nil { return x.AckedRevision } return 0 } func (x *ReplicaConfig) GetApplied() bool { if x != nil { return x.Applied } return false } func (x *ReplicaConfig) GetError() string { if x != nil { return x.Error } return "" } func (x *ReplicaConfig) GetEffectiveJson() string { if x != nil { return x.EffectiveJson } return "" } func (x *ReplicaConfig) GetAckedAtUnixMs() int64 { if x != nil { return x.AckedAtUnixMs } return 0 } func (x *ReplicaConfig) GetActor() string { if x != nil { return x.Actor } return "" } type EndpointReplica struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` EndpointId string `protobuf:"bytes,2,opt,name=endpoint_id,json=endpointId,proto3" json:"endpoint_id,omitempty"` Version uint32 `protobuf:"varint,3,opt,name=version,proto3" json:"version,omitempty"` Gpu string `protobuf:"bytes,4,opt,name=gpu,proto3" json:"gpu,omitempty"` GpuCount uint32 `protobuf:"varint,5,opt,name=gpu_count,json=gpuCount,proto3" json:"gpu_count,omitempty"` PoolName string `protobuf:"bytes,7,opt,name=pool_name,json=poolName,proto3" json:"pool_name,omitempty"` ContainerId string `protobuf:"bytes,8,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` WorkerId string `protobuf:"bytes,9,opt,name=worker_id,json=workerId,proto3" json:"worker_id,omitempty"` Address string `protobuf:"bytes,10,opt,name=address,proto3" json:"address,omitempty"` Status string `protobuf:"bytes,11,opt,name=status,proto3" json:"status,omitempty"` StatusReason string `protobuf:"bytes,12,opt,name=status_reason,json=statusReason,proto3" json:"status_reason,omitempty"` HarnessEnabled bool `protobuf:"varint,14,opt,name=harness_enabled,json=harnessEnabled,proto3" json:"harness_enabled,omitempty"` Config *ReplicaConfig `protobuf:"bytes,15,opt,name=config,proto3" json:"config,omitempty"` Capacity *ReplicaCapacity `protobuf:"bytes,16,opt,name=capacity,proto3" json:"capacity,omitempty"` CapabilitiesJson string `protobuf:"bytes,17,opt,name=capabilities_json,json=capabilitiesJson,proto3" json:"capabilities_json,omitempty"` EngineMetricsJson string `protobuf:"bytes,18,opt,name=engine_metrics_json,json=engineMetricsJson,proto3" json:"engine_metrics_json,omitempty"` StartedAtUnixMs int64 `protobuf:"varint,19,opt,name=started_at_unix_ms,json=startedAtUnixMs,proto3" json:"started_at_unix_ms,omitempty"` ReadyAtUnixMs int64 `protobuf:"varint,20,opt,name=ready_at_unix_ms,json=readyAtUnixMs,proto3" json:"ready_at_unix_ms,omitempty"` LastHeartbeatUnixMs int64 `protobuf:"varint,21,opt,name=last_heartbeat_unix_ms,json=lastHeartbeatUnixMs,proto3" json:"last_heartbeat_unix_ms,omitempty"` MachineId string `protobuf:"bytes,22,opt,name=machine_id,json=machineId,proto3" json:"machine_id,omitempty"` // Set when the replica runs on a workspace's contributed machine. ProviderWorkspaceId string `protobuf:"bytes,23,opt,name=provider_workspace_id,json=providerWorkspaceId,proto3" json:"provider_workspace_id,omitempty"` // True for a replica reserved to satisfy a non-preemptible minimum. Protected bool `protobuf:"varint,24,opt,name=protected,proto3" json:"protected,omitempty"` } func (x *EndpointReplica) Reset() { *x = EndpointReplica{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EndpointReplica) String() string { return protoimpl.X.MessageStringOf(x) } func (*EndpointReplica) ProtoMessage() {} func (x *EndpointReplica) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EndpointReplica.ProtoReflect.Descriptor instead. func (*EndpointReplica) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{2} } func (x *EndpointReplica) GetId() string { if x != nil { return x.Id } return "" } func (x *EndpointReplica) GetEndpointId() string { if x != nil { return x.EndpointId } return "" } func (x *EndpointReplica) GetVersion() uint32 { if x != nil { return x.Version } return 0 } func (x *EndpointReplica) GetGpu() string { if x != nil { return x.Gpu } return "" } func (x *EndpointReplica) GetGpuCount() uint32 { if x != nil { return x.GpuCount } return 0 } func (x *EndpointReplica) GetPoolName() string { if x != nil { return x.PoolName } return "" } func (x *EndpointReplica) GetContainerId() string { if x != nil { return x.ContainerId } return "" } func (x *EndpointReplica) GetWorkerId() string { if x != nil { return x.WorkerId } return "" } func (x *EndpointReplica) GetAddress() string { if x != nil { return x.Address } return "" } func (x *EndpointReplica) GetStatus() string { if x != nil { return x.Status } return "" } func (x *EndpointReplica) GetStatusReason() string { if x != nil { return x.StatusReason } return "" } func (x *EndpointReplica) GetHarnessEnabled() bool { if x != nil { return x.HarnessEnabled } return false } func (x *EndpointReplica) GetConfig() *ReplicaConfig { if x != nil { return x.Config } return nil } func (x *EndpointReplica) GetCapacity() *ReplicaCapacity { if x != nil { return x.Capacity } return nil } func (x *EndpointReplica) GetCapabilitiesJson() string { if x != nil { return x.CapabilitiesJson } return "" } func (x *EndpointReplica) GetEngineMetricsJson() string { if x != nil { return x.EngineMetricsJson } return "" } func (x *EndpointReplica) GetStartedAtUnixMs() int64 { if x != nil { return x.StartedAtUnixMs } return 0 } func (x *EndpointReplica) GetReadyAtUnixMs() int64 { if x != nil { return x.ReadyAtUnixMs } return 0 } func (x *EndpointReplica) GetLastHeartbeatUnixMs() int64 { if x != nil { return x.LastHeartbeatUnixMs } return 0 } func (x *EndpointReplica) GetMachineId() string { if x != nil { return x.MachineId } return "" } func (x *EndpointReplica) GetProviderWorkspaceId() string { if x != nil { return x.ProviderWorkspaceId } return "" } func (x *EndpointReplica) GetProtected() bool { if x != nil { return x.Protected } return false } type ManagedEndpoint struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Id string `protobuf:"bytes,1,opt,name=id,proto3" json:"id,omitempty"` SpecJson string `protobuf:"bytes,2,opt,name=spec_json,json=specJson,proto3" json:"spec_json,omitempty"` StubId string `protobuf:"bytes,3,opt,name=stub_id,json=stubId,proto3" json:"stub_id,omitempty"` Version uint32 `protobuf:"varint,4,opt,name=version,proto3" json:"version,omitempty"` GitSha string `protobuf:"bytes,5,opt,name=git_sha,json=gitSha,proto3" json:"git_sha,omitempty"` Status string `protobuf:"bytes,6,opt,name=status,proto3" json:"status,omitempty"` CreatedAtUnixMs int64 `protobuf:"varint,7,opt,name=created_at_unix_ms,json=createdAtUnixMs,proto3" json:"created_at_unix_ms,omitempty"` UpdatedAtUnixMs int64 `protobuf:"varint,8,opt,name=updated_at_unix_ms,json=updatedAtUnixMs,proto3" json:"updated_at_unix_ms,omitempty"` ReadyReplicas uint32 `protobuf:"varint,9,opt,name=ready_replicas,json=readyReplicas,proto3" json:"ready_replicas,omitempty"` TotalReplicas uint32 `protobuf:"varint,10,opt,name=total_replicas,json=totalReplicas,proto3" json:"total_replicas,omitempty"` // config.yaml placement: JSON {gpu: {priority, min_replicas, max_replicas, preemption}}. PlacementsJson string `protobuf:"bytes,11,opt,name=placements_json,json=placementsJson,proto3" json:"placements_json,omitempty"` // deploy_failed, retired, disabled, waiting_for_capacity, loading, ready or failed. State string `protobuf:"bytes,12,opt,name=state,proto3" json:"state,omitempty"` StateReason string `protobuf:"bytes,13,opt,name=state_reason,json=stateReason,proto3" json:"state_reason,omitempty"` } func (x *ManagedEndpoint) Reset() { *x = ManagedEndpoint{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ManagedEndpoint) String() string { return protoimpl.X.MessageStringOf(x) } func (*ManagedEndpoint) ProtoMessage() {} func (x *ManagedEndpoint) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ManagedEndpoint.ProtoReflect.Descriptor instead. func (*ManagedEndpoint) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{3} } func (x *ManagedEndpoint) GetId() string { if x != nil { return x.Id } return "" } func (x *ManagedEndpoint) GetSpecJson() string { if x != nil { return x.SpecJson } return "" } func (x *ManagedEndpoint) GetStubId() string { if x != nil { return x.StubId } return "" } func (x *ManagedEndpoint) GetVersion() uint32 { if x != nil { return x.Version } return 0 } func (x *ManagedEndpoint) GetGitSha() string { if x != nil { return x.GitSha } return "" } func (x *ManagedEndpoint) GetStatus() string { if x != nil { return x.Status } return "" } func (x *ManagedEndpoint) GetCreatedAtUnixMs() int64 { if x != nil { return x.CreatedAtUnixMs } return 0 } func (x *ManagedEndpoint) GetUpdatedAtUnixMs() int64 { if x != nil { return x.UpdatedAtUnixMs } return 0 } func (x *ManagedEndpoint) GetReadyReplicas() uint32 { if x != nil { return x.ReadyReplicas } return 0 } func (x *ManagedEndpoint) GetTotalReplicas() uint32 { if x != nil { return x.TotalReplicas } return 0 } func (x *ManagedEndpoint) GetPlacementsJson() string { if x != nil { return x.PlacementsJson } return "" } func (x *ManagedEndpoint) GetState() string { if x != nil { return x.State } return "" } func (x *ManagedEndpoint) GetStateReason() string { if x != nil { return x.StateReason } return "" } type Event struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Name string `protobuf:"bytes,1,opt,name=name,proto3" json:"name,omitempty"` // endpoint.* event name PayloadJson string `protobuf:"bytes,2,opt,name=payload_json,json=payloadJson,proto3" json:"payload_json,omitempty"` // event schema payload AtUnixMs int64 `protobuf:"varint,3,opt,name=at_unix_ms,json=atUnixMs,proto3" json:"at_unix_ms,omitempty"` } func (x *Event) Reset() { *x = Event{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *Event) String() string { return protoimpl.X.MessageStringOf(x) } func (*Event) ProtoMessage() {} func (x *Event) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Event.ProtoReflect.Descriptor instead. func (*Event) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{4} } func (x *Event) GetName() string { if x != nil { return x.Name } return "" } func (x *Event) GetPayloadJson() string { if x != nil { return x.PayloadJson } return "" } func (x *Event) GetAtUnixMs() int64 { if x != nil { return x.AtUnixMs } return 0 } type HarnessRegisterRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` Engine string `protobuf:"bytes,2,opt,name=engine,proto3" json:"engine,omitempty"` EngineVersion string `protobuf:"bytes,3,opt,name=engine_version,json=engineVersion,proto3" json:"engine_version,omitempty"` // JSON control catalog / capabilities advertised by the harness. CapabilitiesJson string `protobuf:"bytes,4,opt,name=capabilities_json,json=capabilitiesJson,proto3" json:"capabilities_json,omitempty"` // JSON startup limits (max_num_seqs, max_model_len, ...). LimitsJson string `protobuf:"bytes,5,opt,name=limits_json,json=limitsJson,proto3" json:"limits_json,omitempty"` } func (x *HarnessRegisterRequest) Reset() { *x = HarnessRegisterRequest{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HarnessRegisterRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*HarnessRegisterRequest) ProtoMessage() {} func (x *HarnessRegisterRequest) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HarnessRegisterRequest.ProtoReflect.Descriptor instead. func (*HarnessRegisterRequest) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{5} } func (x *HarnessRegisterRequest) GetContainerId() string { if x != nil { return x.ContainerId } return "" } func (x *HarnessRegisterRequest) GetEngine() string { if x != nil { return x.Engine } return "" } func (x *HarnessRegisterRequest) GetEngineVersion() string { if x != nil { return x.EngineVersion } return "" } func (x *HarnessRegisterRequest) GetCapabilitiesJson() string { if x != nil { return x.CapabilitiesJson } return "" } func (x *HarnessRegisterRequest) GetLimitsJson() string { if x != nil { return x.LimitsJson } return "" } type HarnessRegisterResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"` ReplicaId string `protobuf:"bytes,3,opt,name=replica_id,json=replicaId,proto3" json:"replica_id,omitempty"` EndpointId string `protobuf:"bytes,4,opt,name=endpoint_id,json=endpointId,proto3" json:"endpoint_id,omitempty"` Gpu string `protobuf:"bytes,5,opt,name=gpu,proto3" json:"gpu,omitempty"` HeartbeatIntervalSeconds uint32 `protobuf:"varint,6,opt,name=heartbeat_interval_seconds,json=heartbeatIntervalSeconds,proto3" json:"heartbeat_interval_seconds,omitempty"` // Current live config; unset when none was pushed to this replica. Current *ReplicaConfig `protobuf:"bytes,7,opt,name=current,proto3" json:"current,omitempty"` } func (x *HarnessRegisterResponse) Reset() { *x = HarnessRegisterResponse{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HarnessRegisterResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*HarnessRegisterResponse) ProtoMessage() {} func (x *HarnessRegisterResponse) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HarnessRegisterResponse.ProtoReflect.Descriptor instead. func (*HarnessRegisterResponse) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{6} } func (x *HarnessRegisterResponse) GetOk() bool { if x != nil { return x.Ok } return false } func (x *HarnessRegisterResponse) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } func (x *HarnessRegisterResponse) GetReplicaId() string { if x != nil { return x.ReplicaId } return "" } func (x *HarnessRegisterResponse) GetEndpointId() string { if x != nil { return x.EndpointId } return "" } func (x *HarnessRegisterResponse) GetGpu() string { if x != nil { return x.Gpu } return "" } func (x *HarnessRegisterResponse) GetHeartbeatIntervalSeconds() uint32 { if x != nil { return x.HeartbeatIntervalSeconds } return 0 } func (x *HarnessRegisterResponse) GetCurrent() *ReplicaConfig { if x != nil { return x.Current } return nil } type HarnessWatchConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReplicaId string `protobuf:"bytes,1,opt,name=replica_id,json=replicaId,proto3" json:"replica_id,omitempty"` // Resume from this revision (exclusive); zero sends the current revision. AfterRevision uint64 `protobuf:"varint,2,opt,name=after_revision,json=afterRevision,proto3" json:"after_revision,omitempty"` } func (x *HarnessWatchConfigRequest) Reset() { *x = HarnessWatchConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HarnessWatchConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*HarnessWatchConfigRequest) ProtoMessage() {} func (x *HarnessWatchConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HarnessWatchConfigRequest.ProtoReflect.Descriptor instead. func (*HarnessWatchConfigRequest) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{7} } func (x *HarnessWatchConfigRequest) GetReplicaId() string { if x != nil { return x.ReplicaId } return "" } func (x *HarnessWatchConfigRequest) GetAfterRevision() uint64 { if x != nil { return x.AfterRevision } return 0 } type HarnessAckConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReplicaId string `protobuf:"bytes,1,opt,name=replica_id,json=replicaId,proto3" json:"replica_id,omitempty"` Revision uint64 `protobuf:"varint,2,opt,name=revision,proto3" json:"revision,omitempty"` Applied bool `protobuf:"varint,3,opt,name=applied,proto3" json:"applied,omitempty"` Error string `protobuf:"bytes,4,opt,name=error,proto3" json:"error,omitempty"` // JSON of the effective config after apply. EffectiveJson string `protobuf:"bytes,5,opt,name=effective_json,json=effectiveJson,proto3" json:"effective_json,omitempty"` } func (x *HarnessAckConfigRequest) Reset() { *x = HarnessAckConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HarnessAckConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*HarnessAckConfigRequest) ProtoMessage() {} func (x *HarnessAckConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HarnessAckConfigRequest.ProtoReflect.Descriptor instead. func (*HarnessAckConfigRequest) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{8} } func (x *HarnessAckConfigRequest) GetReplicaId() string { if x != nil { return x.ReplicaId } return "" } func (x *HarnessAckConfigRequest) GetRevision() uint64 { if x != nil { return x.Revision } return 0 } func (x *HarnessAckConfigRequest) GetApplied() bool { if x != nil { return x.Applied } return false } func (x *HarnessAckConfigRequest) GetError() string { if x != nil { return x.Error } return "" } func (x *HarnessAckConfigRequest) GetEffectiveJson() string { if x != nil { return x.EffectiveJson } return "" } type HarnessAckConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"` } func (x *HarnessAckConfigResponse) Reset() { *x = HarnessAckConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HarnessAckConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*HarnessAckConfigResponse) ProtoMessage() {} func (x *HarnessAckConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[9] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HarnessAckConfigResponse.ProtoReflect.Descriptor instead. func (*HarnessAckConfigResponse) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{9} } func (x *HarnessAckConfigResponse) GetOk() bool { if x != nil { return x.Ok } return false } func (x *HarnessAckConfigResponse) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } type HarnessHeartbeatRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReplicaId string `protobuf:"bytes,1,opt,name=replica_id,json=replicaId,proto3" json:"replica_id,omitempty"` Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` // loading | ready | draining Capacity *ReplicaCapacity `protobuf:"bytes,3,opt,name=capacity,proto3" json:"capacity,omitempty"` AppliedRevision uint64 `protobuf:"varint,4,opt,name=applied_revision,json=appliedRevision,proto3" json:"applied_revision,omitempty"` // JSON engine metrics summary. MetricsJson string `protobuf:"bytes,5,opt,name=metrics_json,json=metricsJson,proto3" json:"metrics_json,omitempty"` } func (x *HarnessHeartbeatRequest) Reset() { *x = HarnessHeartbeatRequest{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[10] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HarnessHeartbeatRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*HarnessHeartbeatRequest) ProtoMessage() {} func (x *HarnessHeartbeatRequest) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[10] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HarnessHeartbeatRequest.ProtoReflect.Descriptor instead. func (*HarnessHeartbeatRequest) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{10} } func (x *HarnessHeartbeatRequest) GetReplicaId() string { if x != nil { return x.ReplicaId } return "" } func (x *HarnessHeartbeatRequest) GetStatus() string { if x != nil { return x.Status } return "" } func (x *HarnessHeartbeatRequest) GetCapacity() *ReplicaCapacity { if x != nil { return x.Capacity } return nil } func (x *HarnessHeartbeatRequest) GetAppliedRevision() uint64 { if x != nil { return x.AppliedRevision } return 0 } func (x *HarnessHeartbeatRequest) GetMetricsJson() string { if x != nil { return x.MetricsJson } return "" } type HarnessHeartbeatResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"` // Set when the control plane wants the replica to drain and exit. Drain bool `protobuf:"varint,3,opt,name=drain,proto3" json:"drain,omitempty"` DrainSeconds uint32 `protobuf:"varint,4,opt,name=drain_seconds,json=drainSeconds,proto3" json:"drain_seconds,omitempty"` HeartbeatIntervalSeconds uint32 `protobuf:"varint,5,opt,name=heartbeat_interval_seconds,json=heartbeatIntervalSeconds,proto3" json:"heartbeat_interval_seconds,omitempty"` } func (x *HarnessHeartbeatResponse) Reset() { *x = HarnessHeartbeatResponse{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[11] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HarnessHeartbeatResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*HarnessHeartbeatResponse) ProtoMessage() {} func (x *HarnessHeartbeatResponse) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[11] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HarnessHeartbeatResponse.ProtoReflect.Descriptor instead. func (*HarnessHeartbeatResponse) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{11} } func (x *HarnessHeartbeatResponse) GetOk() bool { if x != nil { return x.Ok } return false } func (x *HarnessHeartbeatResponse) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } func (x *HarnessHeartbeatResponse) GetDrain() bool { if x != nil { return x.Drain } return false } func (x *HarnessHeartbeatResponse) GetDrainSeconds() uint32 { if x != nil { return x.DrainSeconds } return 0 } func (x *HarnessHeartbeatResponse) GetHeartbeatIntervalSeconds() uint32 { if x != nil { return x.HeartbeatIntervalSeconds } return 0 } type HarnessPublishEventsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReplicaId string `protobuf:"bytes,1,opt,name=replica_id,json=replicaId,proto3" json:"replica_id,omitempty"` Events []*Event `protobuf:"bytes,2,rep,name=events,proto3" json:"events,omitempty"` } func (x *HarnessPublishEventsRequest) Reset() { *x = HarnessPublishEventsRequest{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[12] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HarnessPublishEventsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*HarnessPublishEventsRequest) ProtoMessage() {} func (x *HarnessPublishEventsRequest) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[12] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HarnessPublishEventsRequest.ProtoReflect.Descriptor instead. func (*HarnessPublishEventsRequest) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{12} } func (x *HarnessPublishEventsRequest) GetReplicaId() string { if x != nil { return x.ReplicaId } return "" } func (x *HarnessPublishEventsRequest) GetEvents() []*Event { if x != nil { return x.Events } return nil } type HarnessPublishEventsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"` Accepted uint32 `protobuf:"varint,3,opt,name=accepted,proto3" json:"accepted,omitempty"` } func (x *HarnessPublishEventsResponse) Reset() { *x = HarnessPublishEventsResponse{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[13] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *HarnessPublishEventsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*HarnessPublishEventsResponse) ProtoMessage() {} func (x *HarnessPublishEventsResponse) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[13] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HarnessPublishEventsResponse.ProtoReflect.Descriptor instead. func (*HarnessPublishEventsResponse) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{13} } func (x *HarnessPublishEventsResponse) GetOk() bool { if x != nil { return x.Ok } return false } func (x *HarnessPublishEventsResponse) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } func (x *HarnessPublishEventsResponse) GetAccepted() uint32 { if x != nil { return x.Accepted } return 0 } type ListEndpointsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *ListEndpointsRequest) Reset() { *x = ListEndpointsRequest{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[14] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListEndpointsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListEndpointsRequest) ProtoMessage() {} func (x *ListEndpointsRequest) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[14] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListEndpointsRequest.ProtoReflect.Descriptor instead. func (*ListEndpointsRequest) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{14} } type ListEndpointsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"` Endpoints []*ManagedEndpoint `protobuf:"bytes,3,rep,name=endpoints,proto3" json:"endpoints,omitempty"` } func (x *ListEndpointsResponse) Reset() { *x = ListEndpointsResponse{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[15] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListEndpointsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListEndpointsResponse) ProtoMessage() {} func (x *ListEndpointsResponse) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[15] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListEndpointsResponse.ProtoReflect.Descriptor instead. func (*ListEndpointsResponse) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{15} } func (x *ListEndpointsResponse) GetOk() bool { if x != nil { return x.Ok } return false } func (x *ListEndpointsResponse) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } func (x *ListEndpointsResponse) GetEndpoints() []*ManagedEndpoint { if x != nil { return x.Endpoints } return nil } type GetEndpointRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields EndpointId string `protobuf:"bytes,1,opt,name=endpoint_id,json=endpointId,proto3" json:"endpoint_id,omitempty"` } func (x *GetEndpointRequest) Reset() { *x = GetEndpointRequest{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[16] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetEndpointRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetEndpointRequest) ProtoMessage() {} func (x *GetEndpointRequest) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[16] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetEndpointRequest.ProtoReflect.Descriptor instead. func (*GetEndpointRequest) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{16} } func (x *GetEndpointRequest) GetEndpointId() string { if x != nil { return x.EndpointId } return "" } type GetEndpointResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"` Endpoint *ManagedEndpoint `protobuf:"bytes,3,opt,name=endpoint,proto3" json:"endpoint,omitempty"` Replicas []*EndpointReplica `protobuf:"bytes,4,rep,name=replicas,proto3" json:"replicas,omitempty"` } func (x *GetEndpointResponse) Reset() { *x = GetEndpointResponse{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[17] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetEndpointResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetEndpointResponse) ProtoMessage() {} func (x *GetEndpointResponse) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[17] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetEndpointResponse.ProtoReflect.Descriptor instead. func (*GetEndpointResponse) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{17} } func (x *GetEndpointResponse) GetOk() bool { if x != nil { return x.Ok } return false } func (x *GetEndpointResponse) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } func (x *GetEndpointResponse) GetEndpoint() *ManagedEndpoint { if x != nil { return x.Endpoint } return nil } func (x *GetEndpointResponse) GetReplicas() []*EndpointReplica { if x != nil { return x.Replicas } return nil } type ListReplicasRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields EndpointId string `protobuf:"bytes,1,opt,name=endpoint_id,json=endpointId,proto3" json:"endpoint_id,omitempty"` Status string `protobuf:"bytes,2,opt,name=status,proto3" json:"status,omitempty"` Gpu string `protobuf:"bytes,3,opt,name=gpu,proto3" json:"gpu,omitempty"` } func (x *ListReplicasRequest) Reset() { *x = ListReplicasRequest{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[18] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListReplicasRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListReplicasRequest) ProtoMessage() {} func (x *ListReplicasRequest) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[18] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListReplicasRequest.ProtoReflect.Descriptor instead. func (*ListReplicasRequest) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{18} } func (x *ListReplicasRequest) GetEndpointId() string { if x != nil { return x.EndpointId } return "" } func (x *ListReplicasRequest) GetStatus() string { if x != nil { return x.Status } return "" } func (x *ListReplicasRequest) GetGpu() string { if x != nil { return x.Gpu } return "" } type ListReplicasResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"` Replicas []*EndpointReplica `protobuf:"bytes,3,rep,name=replicas,proto3" json:"replicas,omitempty"` } func (x *ListReplicasResponse) Reset() { *x = ListReplicasResponse{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[19] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ListReplicasResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ListReplicasResponse) ProtoMessage() {} func (x *ListReplicasResponse) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[19] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ListReplicasResponse.ProtoReflect.Descriptor instead. func (*ListReplicasResponse) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{19} } func (x *ListReplicasResponse) GetOk() bool { if x != nil { return x.Ok } return false } func (x *ListReplicasResponse) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } func (x *ListReplicasResponse) GetReplicas() []*EndpointReplica { if x != nil { return x.Replicas } return nil } type GetMetricsRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields EndpointId string `protobuf:"bytes,1,opt,name=endpoint_id,json=endpointId,proto3" json:"endpoint_id,omitempty"` Gpu string `protobuf:"bytes,2,opt,name=gpu,proto3" json:"gpu,omitempty"` ReplicaId string `protobuf:"bytes,3,opt,name=replica_id,json=replicaId,proto3" json:"replica_id,omitempty"` WindowSeconds uint32 `protobuf:"varint,4,opt,name=window_seconds,json=windowSeconds,proto3" json:"window_seconds,omitempty"` // With replica_id: only requests served under this acknowledged live config. ConfigRevision uint64 `protobuf:"varint,5,opt,name=config_revision,json=configRevision,proto3" json:"config_revision,omitempty"` } func (x *GetMetricsRequest) Reset() { *x = GetMetricsRequest{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetMetricsRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetMetricsRequest) ProtoMessage() {} func (x *GetMetricsRequest) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetMetricsRequest.ProtoReflect.Descriptor instead. func (*GetMetricsRequest) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{20} } func (x *GetMetricsRequest) GetEndpointId() string { if x != nil { return x.EndpointId } return "" } func (x *GetMetricsRequest) GetGpu() string { if x != nil { return x.Gpu } return "" } func (x *GetMetricsRequest) GetReplicaId() string { if x != nil { return x.ReplicaId } return "" } func (x *GetMetricsRequest) GetWindowSeconds() uint32 { if x != nil { return x.WindowSeconds } return 0 } func (x *GetMetricsRequest) GetConfigRevision() uint64 { if x != nil { return x.ConfigRevision } return 0 } type EndpointMetrics struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields EndpointId string `protobuf:"bytes,1,opt,name=endpoint_id,json=endpointId,proto3" json:"endpoint_id,omitempty"` Gpu string `protobuf:"bytes,2,opt,name=gpu,proto3" json:"gpu,omitempty"` WindowSeconds uint32 `protobuf:"varint,3,opt,name=window_seconds,json=windowSeconds,proto3" json:"window_seconds,omitempty"` Requests int64 `protobuf:"varint,4,opt,name=requests,proto3" json:"requests,omitempty"` Errors int64 `protobuf:"varint,5,opt,name=errors,proto3" json:"errors,omitempty"` PromptTokens int64 `protobuf:"varint,6,opt,name=prompt_tokens,json=promptTokens,proto3" json:"prompt_tokens,omitempty"` CompletionTokens int64 `protobuf:"varint,7,opt,name=completion_tokens,json=completionTokens,proto3" json:"completion_tokens,omitempty"` TtftMs int64 `protobuf:"varint,8,opt,name=ttft_ms,json=ttftMs,proto3" json:"ttft_ms,omitempty"` // mean over the window TpotMs int64 `protobuf:"varint,9,opt,name=tpot_ms,json=tpotMs,proto3" json:"tpot_ms,omitempty"` // mean over the window DecodeTokensPerSec int64 `protobuf:"varint,10,opt,name=decode_tokens_per_sec,json=decodeTokensPerSec,proto3" json:"decode_tokens_per_sec,omitempty"` QueueWaitMs int64 `protobuf:"varint,11,opt,name=queue_wait_ms,json=queueWaitMs,proto3" json:"queue_wait_ms,omitempty"` // mean over the window CostMicroUsd int64 `protobuf:"varint,12,opt,name=cost_micro_usd,json=costMicroUsd,proto3" json:"cost_micro_usd,omitempty"` ReadyReplicas uint32 `protobuf:"varint,13,opt,name=ready_replicas,json=readyReplicas,proto3" json:"ready_replicas,omitempty"` AggregateCapacity *ReplicaCapacity `protobuf:"bytes,14,opt,name=aggregate_capacity,json=aggregateCapacity,proto3" json:"aggregate_capacity,omitempty"` ConfigRevision uint64 `protobuf:"varint,15,opt,name=config_revision,json=configRevision,proto3" json:"config_revision,omitempty"` } func (x *EndpointMetrics) Reset() { *x = EndpointMetrics{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[21] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *EndpointMetrics) String() string { return protoimpl.X.MessageStringOf(x) } func (*EndpointMetrics) ProtoMessage() {} func (x *EndpointMetrics) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[21] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use EndpointMetrics.ProtoReflect.Descriptor instead. func (*EndpointMetrics) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{21} } func (x *EndpointMetrics) GetEndpointId() string { if x != nil { return x.EndpointId } return "" } func (x *EndpointMetrics) GetGpu() string { if x != nil { return x.Gpu } return "" } func (x *EndpointMetrics) GetWindowSeconds() uint32 { if x != nil { return x.WindowSeconds } return 0 } func (x *EndpointMetrics) GetRequests() int64 { if x != nil { return x.Requests } return 0 } func (x *EndpointMetrics) GetErrors() int64 { if x != nil { return x.Errors } return 0 } func (x *EndpointMetrics) GetPromptTokens() int64 { if x != nil { return x.PromptTokens } return 0 } func (x *EndpointMetrics) GetCompletionTokens() int64 { if x != nil { return x.CompletionTokens } return 0 } func (x *EndpointMetrics) GetTtftMs() int64 { if x != nil { return x.TtftMs } return 0 } func (x *EndpointMetrics) GetTpotMs() int64 { if x != nil { return x.TpotMs } return 0 } func (x *EndpointMetrics) GetDecodeTokensPerSec() int64 { if x != nil { return x.DecodeTokensPerSec } return 0 } func (x *EndpointMetrics) GetQueueWaitMs() int64 { if x != nil { return x.QueueWaitMs } return 0 } func (x *EndpointMetrics) GetCostMicroUsd() int64 { if x != nil { return x.CostMicroUsd } return 0 } func (x *EndpointMetrics) GetReadyReplicas() uint32 { if x != nil { return x.ReadyReplicas } return 0 } func (x *EndpointMetrics) GetAggregateCapacity() *ReplicaCapacity { if x != nil { return x.AggregateCapacity } return nil } func (x *EndpointMetrics) GetConfigRevision() uint64 { if x != nil { return x.ConfigRevision } return 0 } type GetMetricsResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"` Metrics *EndpointMetrics `protobuf:"bytes,3,opt,name=metrics,proto3" json:"metrics,omitempty"` Replicas []*EndpointReplica `protobuf:"bytes,4,rep,name=replicas,proto3" json:"replicas,omitempty"` } func (x *GetMetricsResponse) Reset() { *x = GetMetricsResponse{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetMetricsResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetMetricsResponse) ProtoMessage() {} func (x *GetMetricsResponse) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetMetricsResponse.ProtoReflect.Descriptor instead. func (*GetMetricsResponse) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{22} } func (x *GetMetricsResponse) GetOk() bool { if x != nil { return x.Ok } return false } func (x *GetMetricsResponse) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } func (x *GetMetricsResponse) GetMetrics() *EndpointMetrics { if x != nil { return x.Metrics } return nil } func (x *GetMetricsResponse) GetReplicas() []*EndpointReplica { if x != nil { return x.Replicas } return nil } type SetReplicaConfigRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReplicaId string `protobuf:"bytes,1,opt,name=replica_id,json=replicaId,proto3" json:"replica_id,omitempty"` ConfigJson string `protobuf:"bytes,2,opt,name=config_json,json=configJson,proto3" json:"config_json,omitempty"` Author string `protobuf:"bytes,3,opt,name=author,proto3" json:"author,omitempty"` // Wait up to this long for the harness ack (0 = default). WaitSeconds uint32 `protobuf:"varint,4,opt,name=wait_seconds,json=waitSeconds,proto3" json:"wait_seconds,omitempty"` } func (x *SetReplicaConfigRequest) Reset() { *x = SetReplicaConfigRequest{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[23] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SetReplicaConfigRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*SetReplicaConfigRequest) ProtoMessage() {} func (x *SetReplicaConfigRequest) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[23] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SetReplicaConfigRequest.ProtoReflect.Descriptor instead. func (*SetReplicaConfigRequest) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{23} } func (x *SetReplicaConfigRequest) GetReplicaId() string { if x != nil { return x.ReplicaId } return "" } func (x *SetReplicaConfigRequest) GetConfigJson() string { if x != nil { return x.ConfigJson } return "" } func (x *SetReplicaConfigRequest) GetAuthor() string { if x != nil { return x.Author } return "" } func (x *SetReplicaConfigRequest) GetWaitSeconds() uint32 { if x != nil { return x.WaitSeconds } return 0 } type SetReplicaConfigResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"` Replica *EndpointReplica `protobuf:"bytes,3,opt,name=replica,proto3" json:"replica,omitempty"` } func (x *SetReplicaConfigResponse) Reset() { *x = SetReplicaConfigResponse{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[24] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *SetReplicaConfigResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*SetReplicaConfigResponse) ProtoMessage() {} func (x *SetReplicaConfigResponse) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[24] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use SetReplicaConfigResponse.ProtoReflect.Descriptor instead. func (*SetReplicaConfigResponse) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{24} } func (x *SetReplicaConfigResponse) GetOk() bool { if x != nil { return x.Ok } return false } func (x *SetReplicaConfigResponse) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } func (x *SetReplicaConfigResponse) GetReplica() *EndpointReplica { if x != nil { return x.Replica } return nil } type StopReplicaRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields ReplicaId string `protobuf:"bytes,1,opt,name=replica_id,json=replicaId,proto3" json:"replica_id,omitempty"` // Grace for in-flight requests; zero stops immediately. DrainSeconds uint32 `protobuf:"varint,2,opt,name=drain_seconds,json=drainSeconds,proto3" json:"drain_seconds,omitempty"` } func (x *StopReplicaRequest) Reset() { *x = StopReplicaRequest{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopReplicaRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopReplicaRequest) ProtoMessage() {} func (x *StopReplicaRequest) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StopReplicaRequest.ProtoReflect.Descriptor instead. func (*StopReplicaRequest) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{25} } func (x *StopReplicaRequest) GetReplicaId() string { if x != nil { return x.ReplicaId } return "" } func (x *StopReplicaRequest) GetDrainSeconds() uint32 { if x != nil { return x.DrainSeconds } return 0 } type StopReplicaResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"` Replica *EndpointReplica `protobuf:"bytes,3,opt,name=replica,proto3" json:"replica,omitempty"` } func (x *StopReplicaResponse) Reset() { *x = StopReplicaResponse{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *StopReplicaResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*StopReplicaResponse) ProtoMessage() {} func (x *StopReplicaResponse) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use StopReplicaResponse.ProtoReflect.Descriptor instead. func (*StopReplicaResponse) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{26} } func (x *StopReplicaResponse) GetOk() bool { if x != nil { return x.Ok } return false } func (x *StopReplicaResponse) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } func (x *StopReplicaResponse) GetReplica() *EndpointReplica { if x != nil { return x.Replica } return nil } type GitOpsEndpointState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` Status string `protobuf:"bytes,4,opt,name=status,proto3" json:"status,omitempty"` Error string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"` StubId string `protobuf:"bytes,6,opt,name=stub_id,json=stubId,proto3" json:"stub_id,omitempty"` Version uint32 `protobuf:"varint,7,opt,name=version,proto3" json:"version,omitempty"` UpdatedAtUnixMs int64 `protobuf:"varint,8,opt,name=updated_at_unix_ms,json=updatedAtUnixMs,proto3" json:"updated_at_unix_ms,omitempty"` } func (x *GitOpsEndpointState) Reset() { *x = GitOpsEndpointState{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GitOpsEndpointState) String() string { return protoimpl.X.MessageStringOf(x) } func (*GitOpsEndpointState) ProtoMessage() {} func (x *GitOpsEndpointState) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GitOpsEndpointState.ProtoReflect.Descriptor instead. func (*GitOpsEndpointState) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{27} } func (x *GitOpsEndpointState) GetPath() string { if x != nil { return x.Path } return "" } func (x *GitOpsEndpointState) GetId() string { if x != nil { return x.Id } return "" } func (x *GitOpsEndpointState) GetStatus() string { if x != nil { return x.Status } return "" } func (x *GitOpsEndpointState) GetError() string { if x != nil { return x.Error } return "" } func (x *GitOpsEndpointState) GetStubId() string { if x != nil { return x.StubId } return "" } func (x *GitOpsEndpointState) GetVersion() uint32 { if x != nil { return x.Version } return 0 } func (x *GitOpsEndpointState) GetUpdatedAtUnixMs() int64 { if x != nil { return x.UpdatedAtUnixMs } return 0 } type GitOpsState struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RepoUrl string `protobuf:"bytes,1,opt,name=repo_url,json=repoUrl,proto3" json:"repo_url,omitempty"` Ref string `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"` LastSha string `protobuf:"bytes,3,opt,name=last_sha,json=lastSha,proto3" json:"last_sha,omitempty"` LastRunAtUnixMs int64 `protobuf:"varint,5,opt,name=last_run_at_unix_ms,json=lastRunAtUnixMs,proto3" json:"last_run_at_unix_ms,omitempty"` LastError string `protobuf:"bytes,6,opt,name=last_error,json=lastError,proto3" json:"last_error,omitempty"` FleetError string `protobuf:"bytes,7,opt,name=fleet_error,json=fleetError,proto3" json:"fleet_error,omitempty"` Endpoints []*GitOpsEndpointState `protobuf:"bytes,9,rep,name=endpoints,proto3" json:"endpoints,omitempty"` // A deploy that announced itself and has not applied yet. PendingSha string `protobuf:"bytes,10,opt,name=pending_sha,json=pendingSha,proto3" json:"pending_sha,omitempty"` PendingAtUnixMs int64 `protobuf:"varint,11,opt,name=pending_at_unix_ms,json=pendingAtUnixMs,proto3" json:"pending_at_unix_ms,omitempty"` } func (x *GitOpsState) Reset() { *x = GitOpsState{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GitOpsState) String() string { return protoimpl.X.MessageStringOf(x) } func (*GitOpsState) ProtoMessage() {} func (x *GitOpsState) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GitOpsState.ProtoReflect.Descriptor instead. func (*GitOpsState) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{28} } func (x *GitOpsState) GetRepoUrl() string { if x != nil { return x.RepoUrl } return "" } func (x *GitOpsState) GetRef() string { if x != nil { return x.Ref } return "" } func (x *GitOpsState) GetLastSha() string { if x != nil { return x.LastSha } return "" } func (x *GitOpsState) GetLastRunAtUnixMs() int64 { if x != nil { return x.LastRunAtUnixMs } return 0 } func (x *GitOpsState) GetLastError() string { if x != nil { return x.LastError } return "" } func (x *GitOpsState) GetFleetError() string { if x != nil { return x.FleetError } return "" } func (x *GitOpsState) GetEndpoints() []*GitOpsEndpointState { if x != nil { return x.Endpoints } return nil } func (x *GitOpsState) GetPendingSha() string { if x != nil { return x.PendingSha } return "" } func (x *GitOpsState) GetPendingAtUnixMs() int64 { if x != nil { return x.PendingAtUnixMs } return 0 } type GetGitOpsStatusRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } func (x *GetGitOpsStatusRequest) Reset() { *x = GetGitOpsStatusRequest{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetGitOpsStatusRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetGitOpsStatusRequest) ProtoMessage() {} func (x *GetGitOpsStatusRequest) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetGitOpsStatusRequest.ProtoReflect.Descriptor instead. func (*GetGitOpsStatusRequest) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{29} } type GetGitOpsStatusResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"` State *GitOpsState `protobuf:"bytes,3,opt,name=state,proto3" json:"state,omitempty"` // The applied config.yaml as JSON {endpoint_id: {enabled, gpus: {gpu: {priority, min_replicas, max_replicas, preemption}}}}. FleetJson string `protobuf:"bytes,4,opt,name=fleet_json,json=fleetJson,proto3" json:"fleet_json,omitempty"` } func (x *GetGitOpsStatusResponse) Reset() { *x = GetGitOpsStatusResponse{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *GetGitOpsStatusResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*GetGitOpsStatusResponse) ProtoMessage() {} func (x *GetGitOpsStatusResponse) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use GetGitOpsStatusResponse.ProtoReflect.Descriptor instead. func (*GetGitOpsStatusResponse) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{30} } func (x *GetGitOpsStatusResponse) GetOk() bool { if x != nil { return x.Ok } return false } func (x *GetGitOpsStatusResponse) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } func (x *GetGitOpsStatusResponse) GetState() *GitOpsState { if x != nil { return x.State } return nil } func (x *GetGitOpsStatusResponse) GetFleetJson() string { if x != nil { return x.FleetJson } return "" } // RepoEndpoint is one app directory of the endpoints repo: its spec and image // on a dry run, its deploy outcome on a real one. type RepoEndpoint struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Path string `protobuf:"bytes,1,opt,name=path,proto3" json:"path,omitempty"` // app directory relative to endpoints/ Id string `protobuf:"bytes,2,opt,name=id,proto3" json:"id,omitempty"` // empty when the app failed to import SpecJson string `protobuf:"bytes,3,opt,name=spec_json,json=specJson,proto3" json:"spec_json,omitempty"` // ManagedEndpoint.spec() Image string `protobuf:"bytes,4,opt,name=image,proto3" json:"image,omitempty"` // registry image the app starts from, if any Error string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"` // import or deploy failure StubId string `protobuf:"bytes,6,opt,name=stub_id,json=stubId,proto3" json:"stub_id,omitempty"` Version uint32 `protobuf:"varint,7,opt,name=version,proto3" json:"version,omitempty"` } func (x *RepoEndpoint) Reset() { *x = RepoEndpoint{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *RepoEndpoint) String() string { return protoimpl.X.MessageStringOf(x) } func (*RepoEndpoint) ProtoMessage() {} func (x *RepoEndpoint) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RepoEndpoint.ProtoReflect.Descriptor instead. func (*RepoEndpoint) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{31} } func (x *RepoEndpoint) GetPath() string { if x != nil { return x.Path } return "" } func (x *RepoEndpoint) GetId() string { if x != nil { return x.Id } return "" } func (x *RepoEndpoint) GetSpecJson() string { if x != nil { return x.SpecJson } return "" } func (x *RepoEndpoint) GetImage() string { if x != nil { return x.Image } return "" } func (x *RepoEndpoint) GetError() string { if x != nil { return x.Error } return "" } func (x *RepoEndpoint) GetStubId() string { if x != nil { return x.StubId } return "" } func (x *RepoEndpoint) GetVersion() uint32 { if x != nil { return x.Version } return 0 } // ApplyRepoRequest is what the repo's CI sends after deploying every app: // config.yaml plus each app's outcome. A dry run validates without applying. type ApplyRepoRequest struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields RepoUrl string `protobuf:"bytes,1,opt,name=repo_url,json=repoUrl,proto3" json:"repo_url,omitempty"` Ref string `protobuf:"bytes,2,opt,name=ref,proto3" json:"ref,omitempty"` Sha string `protobuf:"bytes,3,opt,name=sha,proto3" json:"sha,omitempty"` ConfigYaml string `protobuf:"bytes,4,opt,name=config_yaml,json=configYaml,proto3" json:"config_yaml,omitempty"` Endpoints []*RepoEndpoint `protobuf:"bytes,5,rep,name=endpoints,proto3" json:"endpoints,omitempty"` DryRun bool `protobuf:"varint,6,opt,name=dry_run,json=dryRun,proto3" json:"dry_run,omitempty"` } func (x *ApplyRepoRequest) Reset() { *x = ApplyRepoRequest{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyRepoRequest) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyRepoRequest) ProtoMessage() {} func (x *ApplyRepoRequest) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApplyRepoRequest.ProtoReflect.Descriptor instead. func (*ApplyRepoRequest) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{32} } func (x *ApplyRepoRequest) GetRepoUrl() string { if x != nil { return x.RepoUrl } return "" } func (x *ApplyRepoRequest) GetRef() string { if x != nil { return x.Ref } return "" } func (x *ApplyRepoRequest) GetSha() string { if x != nil { return x.Sha } return "" } func (x *ApplyRepoRequest) GetConfigYaml() string { if x != nil { return x.ConfigYaml } return "" } func (x *ApplyRepoRequest) GetEndpoints() []*RepoEndpoint { if x != nil { return x.Endpoints } return nil } func (x *ApplyRepoRequest) GetDryRun() bool { if x != nil { return x.DryRun } return false } type ApplyRepoResponse struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields Ok bool `protobuf:"varint,1,opt,name=ok,proto3" json:"ok,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=err_msg,json=errMsg,proto3" json:"err_msg,omitempty"` Errors []string `protobuf:"bytes,3,rep,name=errors,proto3" json:"errors,omitempty"` Warnings []string `protobuf:"bytes,4,rep,name=warnings,proto3" json:"warnings,omitempty"` State *GitOpsState `protobuf:"bytes,5,opt,name=state,proto3" json:"state,omitempty"` } func (x *ApplyRepoResponse) Reset() { *x = ApplyRepoResponse{} if protoimpl.UnsafeEnabled { mi := &file_managedendpoint_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } func (x *ApplyRepoResponse) String() string { return protoimpl.X.MessageStringOf(x) } func (*ApplyRepoResponse) ProtoMessage() {} func (x *ApplyRepoResponse) ProtoReflect() protoreflect.Message { mi := &file_managedendpoint_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use ApplyRepoResponse.ProtoReflect.Descriptor instead. func (*ApplyRepoResponse) Descriptor() ([]byte, []int) { return file_managedendpoint_proto_rawDescGZIP(), []int{33} } func (x *ApplyRepoResponse) GetOk() bool { if x != nil { return x.Ok } return false } func (x *ApplyRepoResponse) GetErrMsg() string { if x != nil { return x.ErrMsg } return "" } func (x *ApplyRepoResponse) GetErrors() []string { if x != nil { return x.Errors } return nil } func (x *ApplyRepoResponse) GetWarnings() []string { if x != nil { return x.Warnings } return nil } func (x *ApplyRepoResponse) GetState() *GitOpsState { if x != nil { return x.State } return nil } var File_managedendpoint_proto protoreflect.FileDescriptor var file_managedendpoint_proto_rawDesc = []byte{ 0x0a, 0x15, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0f, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x22, 0x87, 0x03, 0x0a, 0x0f, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x1b, 0x0a, 0x09, 0x69, 0x6e, 0x5f, 0x66, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x69, 0x6e, 0x46, 0x6c, 0x69, 0x67, 0x68, 0x74, 0x12, 0x27, 0x0a, 0x0f, 0x6d, 0x61, 0x78, 0x5f, 0x63, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0e, 0x6d, 0x61, 0x78, 0x43, 0x6f, 0x6e, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x63, 0x79, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x72, 0x75, 0x6e, 0x6e, 0x69, 0x6e, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x77, 0x61, 0x69, 0x74, 0x69, 0x6e, 0x67, 0x12, 0x2d, 0x0a, 0x13, 0x6b, 0x76, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x66, 0x72, 0x65, 0x65, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x6b, 0x76, 0x43, 0x61, 0x63, 0x68, 0x65, 0x46, 0x72, 0x65, 0x65, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x12, 0x31, 0x0a, 0x15, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x31, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x74, 0x66, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x74, 0x66, 0x74, 0x4d, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x70, 0x6f, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x70, 0x6f, 0x74, 0x4d, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x5f, 0x63, 0x61, 0x63, 0x68, 0x65, 0x5f, 0x68, 0x69, 0x74, 0x5f, 0x6d, 0x69, 0x6c, 0x6c, 0x69, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x70, 0x72, 0x65, 0x66, 0x69, 0x78, 0x43, 0x61, 0x63, 0x68, 0x65, 0x48, 0x69, 0x74, 0x4d, 0x69, 0x6c, 0x6c, 0x69, 0x22, 0xc6, 0x02, 0x0a, 0x0d, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x23, 0x0a, 0x0e, 0x73, 0x65, 0x74, 0x5f, 0x61, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x73, 0x65, 0x74, 0x41, 0x74, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x10, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x61, 0x63, 0x6b, 0x65, 0x64, 0x41, 0x74, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x61, 0x63, 0x74, 0x6f, 0x72, 0x22, 0xbd, 0x06, 0x0a, 0x0f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x70, 0x75, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x70, 0x75, 0x12, 0x1b, 0x0a, 0x09, 0x67, 0x70, 0x75, 0x5f, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x67, 0x70, 0x75, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x1b, 0x0a, 0x09, 0x70, 0x6f, 0x6f, 0x6c, 0x5f, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x70, 0x6f, 0x6f, 0x6c, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x77, 0x6f, 0x72, 0x6b, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x61, 0x64, 0x64, 0x72, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x27, 0x0a, 0x0f, 0x68, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x5f, 0x65, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0e, 0x68, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x45, 0x6e, 0x61, 0x62, 0x6c, 0x65, 0x64, 0x12, 0x36, 0x0a, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x06, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x10, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x2e, 0x0a, 0x13, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x12, 0x20, 0x01, 0x28, 0x09, 0x52, 0x11, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x12, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6d, 0x73, 0x18, 0x13, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x73, 0x74, 0x61, 0x72, 0x74, 0x65, 0x64, 0x41, 0x74, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x73, 0x12, 0x27, 0x0a, 0x10, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x61, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6d, 0x73, 0x18, 0x14, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x79, 0x41, 0x74, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x73, 0x12, 0x33, 0x0a, 0x16, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6d, 0x73, 0x18, 0x15, 0x20, 0x01, 0x28, 0x03, 0x52, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x16, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6d, 0x61, 0x63, 0x68, 0x69, 0x6e, 0x65, 0x49, 0x64, 0x12, 0x32, 0x0a, 0x15, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x5f, 0x77, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x5f, 0x69, 0x64, 0x18, 0x17, 0x20, 0x01, 0x28, 0x09, 0x52, 0x13, 0x70, 0x72, 0x6f, 0x76, 0x69, 0x64, 0x65, 0x72, 0x57, 0x6f, 0x72, 0x6b, 0x73, 0x70, 0x61, 0x63, 0x65, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x18, 0x18, 0x20, 0x01, 0x28, 0x08, 0x52, 0x09, 0x70, 0x72, 0x6f, 0x74, 0x65, 0x63, 0x74, 0x65, 0x64, 0x4a, 0x04, 0x08, 0x06, 0x10, 0x07, 0x22, 0xac, 0x03, 0x0a, 0x0f, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x70, 0x65, 0x63, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x75, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x75, 0x62, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x17, 0x0a, 0x07, 0x67, 0x69, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x67, 0x69, 0x74, 0x53, 0x68, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6d, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x73, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x25, 0x0a, 0x0e, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x74, 0x6f, 0x74, 0x61, 0x6c, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x70, 0x6c, 0x61, 0x63, 0x65, 0x6d, 0x65, 0x6e, 0x74, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x73, 0x74, 0x61, 0x74, 0x65, 0x5f, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x74, 0x61, 0x74, 0x65, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x22, 0x5c, 0x0a, 0x05, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x21, 0x0a, 0x0c, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x61, 0x79, 0x6c, 0x6f, 0x61, 0x64, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x0a, 0x61, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x61, 0x74, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x73, 0x22, 0xc8, 0x01, 0x0a, 0x16, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x21, 0x0a, 0x0c, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x61, 0x69, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x5f, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x6e, 0x67, 0x69, 0x6e, 0x65, 0x56, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x63, 0x61, 0x70, 0x61, 0x62, 0x69, 0x6c, 0x69, 0x74, 0x69, 0x65, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x1f, 0x0a, 0x0b, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x6c, 0x69, 0x6d, 0x69, 0x74, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x22, 0x8c, 0x02, 0x0a, 0x17, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 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, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x70, 0x75, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x70, 0x75, 0x12, 0x3c, 0x0a, 0x1a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x38, 0x0a, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x07, 0x63, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x22, 0x61, 0x0a, 0x19, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x61, 0x66, 0x74, 0x65, 0x72, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0d, 0x61, 0x66, 0x74, 0x65, 0x72, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xab, 0x01, 0x0a, 0x17, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x04, 0x52, 0x08, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x25, 0x0a, 0x0e, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x65, 0x66, 0x66, 0x65, 0x63, 0x74, 0x69, 0x76, 0x65, 0x4a, 0x73, 0x6f, 0x6e, 0x22, 0x43, 0x0a, 0x18, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0xdc, 0x01, 0x0a, 0x17, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x3c, 0x0a, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x52, 0x08, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x29, 0x0a, 0x10, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x65, 0x64, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x21, 0x0a, 0x0c, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x4a, 0x73, 0x6f, 0x6e, 0x22, 0xbc, 0x01, 0x0a, 0x18, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 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, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x3c, 0x0a, 0x1a, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x5f, 0x69, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x18, 0x68, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x49, 0x6e, 0x74, 0x65, 0x72, 0x76, 0x61, 0x6c, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x6c, 0x0a, 0x1b, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x64, 0x12, 0x2e, 0x0a, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x52, 0x06, 0x65, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x22, 0x63, 0x0a, 0x1c, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 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, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x08, 0x61, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x22, 0x16, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x80, 0x01, 0x0a, 0x15, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 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, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x3e, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x22, 0x35, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x22, 0xba, 0x01, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 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, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x3c, 0x0a, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x4d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x08, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x3c, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, 0x60, 0x0a, 0x13, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x70, 0x75, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x70, 0x75, 0x22, 0x7d, 0x0a, 0x14, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 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, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x3c, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, 0xb5, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x70, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x70, 0x75, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xc1, 0x04, 0x0a, 0x0f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x49, 0x64, 0x12, 0x10, 0x0a, 0x03, 0x67, 0x70, 0x75, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x67, 0x70, 0x75, 0x12, 0x25, 0x0a, 0x0e, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x77, 0x69, 0x6e, 0x64, 0x6f, 0x77, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x72, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x23, 0x0a, 0x0d, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x70, 0x72, 0x6f, 0x6d, 0x70, 0x74, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x2b, 0x0a, 0x11, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x10, 0x63, 0x6f, 0x6d, 0x70, 0x6c, 0x65, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x74, 0x66, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x74, 0x66, 0x74, 0x4d, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x74, 0x70, 0x6f, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x09, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x74, 0x70, 0x6f, 0x74, 0x4d, 0x73, 0x12, 0x31, 0x0a, 0x15, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x5f, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x5f, 0x70, 0x65, 0x72, 0x5f, 0x73, 0x65, 0x63, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x03, 0x52, 0x12, 0x64, 0x65, 0x63, 0x6f, 0x64, 0x65, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x73, 0x50, 0x65, 0x72, 0x53, 0x65, 0x63, 0x12, 0x22, 0x0a, 0x0d, 0x71, 0x75, 0x65, 0x75, 0x65, 0x5f, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x71, 0x75, 0x65, 0x75, 0x65, 0x57, 0x61, 0x69, 0x74, 0x4d, 0x73, 0x12, 0x24, 0x0a, 0x0e, 0x63, 0x6f, 0x73, 0x74, 0x5f, 0x6d, 0x69, 0x63, 0x72, 0x6f, 0x5f, 0x75, 0x73, 0x64, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0c, 0x63, 0x6f, 0x73, 0x74, 0x4d, 0x69, 0x63, 0x72, 0x6f, 0x55, 0x73, 0x64, 0x12, 0x25, 0x0a, 0x0e, 0x72, 0x65, 0x61, 0x64, 0x79, 0x5f, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0d, 0x72, 0x65, 0x61, 0x64, 0x79, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x4f, 0x0a, 0x12, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x5f, 0x63, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x52, 0x11, 0x61, 0x67, 0x67, 0x72, 0x65, 0x67, 0x61, 0x74, 0x65, 0x43, 0x61, 0x70, 0x61, 0x63, 0x69, 0x74, 0x79, 0x12, 0x27, 0x0a, 0x0f, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x72, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x04, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x76, 0x69, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xb7, 0x01, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 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, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x07, 0x6d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x3c, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x08, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x22, 0x94, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x64, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x61, 0x75, 0x74, 0x68, 0x6f, 0x72, 0x12, 0x21, 0x0a, 0x0c, 0x77, 0x61, 0x69, 0x74, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x77, 0x61, 0x69, 0x74, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x7f, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 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, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x22, 0x58, 0x0a, 0x12, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1d, 0x0a, 0x0a, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x49, 0x64, 0x12, 0x23, 0x0a, 0x0d, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x5f, 0x73, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0c, 0x64, 0x72, 0x61, 0x69, 0x6e, 0x53, 0x65, 0x63, 0x6f, 0x6e, 0x64, 0x73, 0x22, 0x7a, 0x0a, 0x13, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 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, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x20, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x22, 0xc7, 0x01, 0x0a, 0x13, 0x47, 0x69, 0x74, 0x4f, 0x70, 0x73, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x75, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x75, 0x62, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x12, 0x2b, 0x0a, 0x12, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x5f, 0x61, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6d, 0x73, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x75, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x41, 0x74, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x73, 0x22, 0xd5, 0x02, 0x0a, 0x0b, 0x47, 0x69, 0x74, 0x4f, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x19, 0x0a, 0x08, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6c, 0x61, 0x73, 0x74, 0x53, 0x68, 0x61, 0x12, 0x2c, 0x0a, 0x13, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x72, 0x75, 0x6e, 0x5f, 0x61, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6d, 0x73, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x6c, 0x61, 0x73, 0x74, 0x52, 0x75, 0x6e, 0x41, 0x74, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x73, 0x12, 0x1d, 0x0a, 0x0a, 0x6c, 0x61, 0x73, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x6c, 0x61, 0x73, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x1f, 0x0a, 0x0b, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x5f, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x42, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x09, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x47, 0x69, 0x74, 0x4f, 0x70, 0x73, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x1f, 0x0a, 0x0b, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x73, 0x68, 0x61, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x53, 0x68, 0x61, 0x12, 0x2b, 0x0a, 0x12, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x5f, 0x61, 0x74, 0x5f, 0x75, 0x6e, 0x69, 0x78, 0x5f, 0x6d, 0x73, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x70, 0x65, 0x6e, 0x64, 0x69, 0x6e, 0x67, 0x41, 0x74, 0x55, 0x6e, 0x69, 0x78, 0x4d, 0x73, 0x22, 0x18, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x4f, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x22, 0x95, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x4f, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 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, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x47, 0x69, 0x74, 0x4f, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x12, 0x1d, 0x0a, 0x0a, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x66, 0x6c, 0x65, 0x65, 0x74, 0x4a, 0x73, 0x6f, 0x6e, 0x22, 0xae, 0x01, 0x0a, 0x0c, 0x52, 0x65, 0x70, 0x6f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x70, 0x61, 0x74, 0x68, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x70, 0x61, 0x74, 0x68, 0x12, 0x0e, 0x0a, 0x02, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x69, 0x64, 0x12, 0x1b, 0x0a, 0x09, 0x73, 0x70, 0x65, 0x63, 0x5f, 0x6a, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x73, 0x70, 0x65, 0x63, 0x4a, 0x73, 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x69, 0x6d, 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x12, 0x17, 0x0a, 0x07, 0x73, 0x74, 0x75, 0x62, 0x5f, 0x69, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x74, 0x75, 0x62, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x76, 0x65, 0x72, 0x73, 0x69, 0x6f, 0x6e, 0x22, 0xc8, 0x01, 0x0a, 0x10, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x19, 0x0a, 0x08, 0x72, 0x65, 0x70, 0x6f, 0x5f, 0x75, 0x72, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x72, 0x65, 0x70, 0x6f, 0x55, 0x72, 0x6c, 0x12, 0x10, 0x0a, 0x03, 0x72, 0x65, 0x66, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x72, 0x65, 0x66, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x68, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x73, 0x68, 0x61, 0x12, 0x1f, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x5f, 0x79, 0x61, 0x6d, 0x6c, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x63, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x59, 0x61, 0x6d, 0x6c, 0x12, 0x3b, 0x0a, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6f, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x09, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x17, 0x0a, 0x07, 0x64, 0x72, 0x79, 0x5f, 0x72, 0x75, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x08, 0x52, 0x06, 0x64, 0x72, 0x79, 0x52, 0x75, 0x6e, 0x22, 0xa4, 0x01, 0x0a, 0x11, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 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, 0x17, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x5f, 0x6d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x73, 0x12, 0x1a, 0x0a, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x18, 0x04, 0x20, 0x03, 0x28, 0x09, 0x52, 0x08, 0x77, 0x61, 0x72, 0x6e, 0x69, 0x6e, 0x67, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x47, 0x69, 0x74, 0x4f, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x65, 0x52, 0x05, 0x73, 0x74, 0x61, 0x74, 0x65, 0x32, 0x90, 0x04, 0x0a, 0x16, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x5f, 0x0a, 0x08, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x12, 0x27, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0b, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x2a, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x57, 0x61, 0x74, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x1e, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x22, 0x00, 0x30, 0x01, 0x12, 0x62, 0x0a, 0x09, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x28, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x41, 0x63, 0x6b, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x62, 0x0a, 0x09, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x12, 0x28, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x48, 0x65, 0x61, 0x72, 0x74, 0x62, 0x65, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x6e, 0x0a, 0x0d, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x12, 0x2c, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x2d, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x48, 0x61, 0x72, 0x6e, 0x65, 0x73, 0x73, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x73, 0x68, 0x45, 0x76, 0x65, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x32, 0x91, 0x06, 0x0a, 0x14, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x60, 0x0a, 0x0d, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x12, 0x25, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x26, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x12, 0x23, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x45, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5d, 0x0a, 0x0c, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x12, 0x24, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x25, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x57, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x12, 0x22, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x23, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x74, 0x72, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x69, 0x0a, 0x10, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x12, 0x28, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x29, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x43, 0x6f, 0x6e, 0x66, 0x69, 0x67, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x5a, 0x0a, 0x0b, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x12, 0x23, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x24, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x53, 0x74, 0x6f, 0x70, 0x52, 0x65, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x66, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x4f, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x27, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x4f, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x28, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x69, 0x74, 0x4f, 0x70, 0x73, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x12, 0x54, 0x0a, 0x09, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x12, 0x21, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x1a, 0x22, 0x2e, 0x6d, 0x61, 0x6e, 0x61, 0x67, 0x65, 0x64, 0x65, 0x6e, 0x64, 0x70, 0x6f, 0x69, 0x6e, 0x74, 0x2e, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x70, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x22, 0x00, 0x42, 0x23, 0x5a, 0x21, 0x67, 0x69, 0x74, 0x68, 0x75, 0x62, 0x2e, 0x63, 0x6f, 0x6d, 0x2f, 0x62, 0x65, 0x61, 0x6d, 0x2d, 0x63, 0x6c, 0x6f, 0x75, 0x64, 0x2f, 0x62, 0x65, 0x74, 0x61, 0x39, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( file_managedendpoint_proto_rawDescOnce sync.Once file_managedendpoint_proto_rawDescData = file_managedendpoint_proto_rawDesc ) func file_managedendpoint_proto_rawDescGZIP() []byte { file_managedendpoint_proto_rawDescOnce.Do(func() { file_managedendpoint_proto_rawDescData = protoimpl.X.CompressGZIP(file_managedendpoint_proto_rawDescData) }) return file_managedendpoint_proto_rawDescData } var file_managedendpoint_proto_msgTypes = make([]protoimpl.MessageInfo, 34) var file_managedendpoint_proto_goTypes = []interface{}{ (*ReplicaCapacity)(nil), // 0: managedendpoint.ReplicaCapacity (*ReplicaConfig)(nil), // 1: managedendpoint.ReplicaConfig (*EndpointReplica)(nil), // 2: managedendpoint.EndpointReplica (*ManagedEndpoint)(nil), // 3: managedendpoint.ManagedEndpoint (*Event)(nil), // 4: managedendpoint.Event (*HarnessRegisterRequest)(nil), // 5: managedendpoint.HarnessRegisterRequest (*HarnessRegisterResponse)(nil), // 6: managedendpoint.HarnessRegisterResponse (*HarnessWatchConfigRequest)(nil), // 7: managedendpoint.HarnessWatchConfigRequest (*HarnessAckConfigRequest)(nil), // 8: managedendpoint.HarnessAckConfigRequest (*HarnessAckConfigResponse)(nil), // 9: managedendpoint.HarnessAckConfigResponse (*HarnessHeartbeatRequest)(nil), // 10: managedendpoint.HarnessHeartbeatRequest (*HarnessHeartbeatResponse)(nil), // 11: managedendpoint.HarnessHeartbeatResponse (*HarnessPublishEventsRequest)(nil), // 12: managedendpoint.HarnessPublishEventsRequest (*HarnessPublishEventsResponse)(nil), // 13: managedendpoint.HarnessPublishEventsResponse (*ListEndpointsRequest)(nil), // 14: managedendpoint.ListEndpointsRequest (*ListEndpointsResponse)(nil), // 15: managedendpoint.ListEndpointsResponse (*GetEndpointRequest)(nil), // 16: managedendpoint.GetEndpointRequest (*GetEndpointResponse)(nil), // 17: managedendpoint.GetEndpointResponse (*ListReplicasRequest)(nil), // 18: managedendpoint.ListReplicasRequest (*ListReplicasResponse)(nil), // 19: managedendpoint.ListReplicasResponse (*GetMetricsRequest)(nil), // 20: managedendpoint.GetMetricsRequest (*EndpointMetrics)(nil), // 21: managedendpoint.EndpointMetrics (*GetMetricsResponse)(nil), // 22: managedendpoint.GetMetricsResponse (*SetReplicaConfigRequest)(nil), // 23: managedendpoint.SetReplicaConfigRequest (*SetReplicaConfigResponse)(nil), // 24: managedendpoint.SetReplicaConfigResponse (*StopReplicaRequest)(nil), // 25: managedendpoint.StopReplicaRequest (*StopReplicaResponse)(nil), // 26: managedendpoint.StopReplicaResponse (*GitOpsEndpointState)(nil), // 27: managedendpoint.GitOpsEndpointState (*GitOpsState)(nil), // 28: managedendpoint.GitOpsState (*GetGitOpsStatusRequest)(nil), // 29: managedendpoint.GetGitOpsStatusRequest (*GetGitOpsStatusResponse)(nil), // 30: managedendpoint.GetGitOpsStatusResponse (*RepoEndpoint)(nil), // 31: managedendpoint.RepoEndpoint (*ApplyRepoRequest)(nil), // 32: managedendpoint.ApplyRepoRequest (*ApplyRepoResponse)(nil), // 33: managedendpoint.ApplyRepoResponse } var file_managedendpoint_proto_depIdxs = []int32{ 1, // 0: managedendpoint.EndpointReplica.config:type_name -> managedendpoint.ReplicaConfig 0, // 1: managedendpoint.EndpointReplica.capacity:type_name -> managedendpoint.ReplicaCapacity 1, // 2: managedendpoint.HarnessRegisterResponse.current:type_name -> managedendpoint.ReplicaConfig 0, // 3: managedendpoint.HarnessHeartbeatRequest.capacity:type_name -> managedendpoint.ReplicaCapacity 4, // 4: managedendpoint.HarnessPublishEventsRequest.events:type_name -> managedendpoint.Event 3, // 5: managedendpoint.ListEndpointsResponse.endpoints:type_name -> managedendpoint.ManagedEndpoint 3, // 6: managedendpoint.GetEndpointResponse.endpoint:type_name -> managedendpoint.ManagedEndpoint 2, // 7: managedendpoint.GetEndpointResponse.replicas:type_name -> managedendpoint.EndpointReplica 2, // 8: managedendpoint.ListReplicasResponse.replicas:type_name -> managedendpoint.EndpointReplica 0, // 9: managedendpoint.EndpointMetrics.aggregate_capacity:type_name -> managedendpoint.ReplicaCapacity 21, // 10: managedendpoint.GetMetricsResponse.metrics:type_name -> managedendpoint.EndpointMetrics 2, // 11: managedendpoint.GetMetricsResponse.replicas:type_name -> managedendpoint.EndpointReplica 2, // 12: managedendpoint.SetReplicaConfigResponse.replica:type_name -> managedendpoint.EndpointReplica 2, // 13: managedendpoint.StopReplicaResponse.replica:type_name -> managedendpoint.EndpointReplica 27, // 14: managedendpoint.GitOpsState.endpoints:type_name -> managedendpoint.GitOpsEndpointState 28, // 15: managedendpoint.GetGitOpsStatusResponse.state:type_name -> managedendpoint.GitOpsState 31, // 16: managedendpoint.ApplyRepoRequest.endpoints:type_name -> managedendpoint.RepoEndpoint 28, // 17: managedendpoint.ApplyRepoResponse.state:type_name -> managedendpoint.GitOpsState 5, // 18: managedendpoint.EndpointHarnessService.Register:input_type -> managedendpoint.HarnessRegisterRequest 7, // 19: managedendpoint.EndpointHarnessService.WatchConfig:input_type -> managedendpoint.HarnessWatchConfigRequest 8, // 20: managedendpoint.EndpointHarnessService.AckConfig:input_type -> managedendpoint.HarnessAckConfigRequest 10, // 21: managedendpoint.EndpointHarnessService.Heartbeat:input_type -> managedendpoint.HarnessHeartbeatRequest 12, // 22: managedendpoint.EndpointHarnessService.PublishEvents:input_type -> managedendpoint.HarnessPublishEventsRequest 14, // 23: managedendpoint.EndpointAdminService.ListEndpoints:input_type -> managedendpoint.ListEndpointsRequest 16, // 24: managedendpoint.EndpointAdminService.GetEndpoint:input_type -> managedendpoint.GetEndpointRequest 18, // 25: managedendpoint.EndpointAdminService.ListReplicas:input_type -> managedendpoint.ListReplicasRequest 20, // 26: managedendpoint.EndpointAdminService.GetMetrics:input_type -> managedendpoint.GetMetricsRequest 23, // 27: managedendpoint.EndpointAdminService.SetReplicaConfig:input_type -> managedendpoint.SetReplicaConfigRequest 25, // 28: managedendpoint.EndpointAdminService.StopReplica:input_type -> managedendpoint.StopReplicaRequest 29, // 29: managedendpoint.EndpointAdminService.GetGitOpsStatus:input_type -> managedendpoint.GetGitOpsStatusRequest 32, // 30: managedendpoint.EndpointAdminService.ApplyRepo:input_type -> managedendpoint.ApplyRepoRequest 6, // 31: managedendpoint.EndpointHarnessService.Register:output_type -> managedendpoint.HarnessRegisterResponse 1, // 32: managedendpoint.EndpointHarnessService.WatchConfig:output_type -> managedendpoint.ReplicaConfig 9, // 33: managedendpoint.EndpointHarnessService.AckConfig:output_type -> managedendpoint.HarnessAckConfigResponse 11, // 34: managedendpoint.EndpointHarnessService.Heartbeat:output_type -> managedendpoint.HarnessHeartbeatResponse 13, // 35: managedendpoint.EndpointHarnessService.PublishEvents:output_type -> managedendpoint.HarnessPublishEventsResponse 15, // 36: managedendpoint.EndpointAdminService.ListEndpoints:output_type -> managedendpoint.ListEndpointsResponse 17, // 37: managedendpoint.EndpointAdminService.GetEndpoint:output_type -> managedendpoint.GetEndpointResponse 19, // 38: managedendpoint.EndpointAdminService.ListReplicas:output_type -> managedendpoint.ListReplicasResponse 22, // 39: managedendpoint.EndpointAdminService.GetMetrics:output_type -> managedendpoint.GetMetricsResponse 24, // 40: managedendpoint.EndpointAdminService.SetReplicaConfig:output_type -> managedendpoint.SetReplicaConfigResponse 26, // 41: managedendpoint.EndpointAdminService.StopReplica:output_type -> managedendpoint.StopReplicaResponse 30, // 42: managedendpoint.EndpointAdminService.GetGitOpsStatus:output_type -> managedendpoint.GetGitOpsStatusResponse 33, // 43: managedendpoint.EndpointAdminService.ApplyRepo:output_type -> managedendpoint.ApplyRepoResponse 31, // [31:44] is the sub-list for method output_type 18, // [18:31] is the sub-list for method input_type 18, // [18:18] is the sub-list for extension type_name 18, // [18:18] is the sub-list for extension extendee 0, // [0:18] is the sub-list for field type_name } func init() { file_managedendpoint_proto_init() } func file_managedendpoint_proto_init() { if File_managedendpoint_proto != nil { return } if !protoimpl.UnsafeEnabled { file_managedendpoint_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplicaCapacity); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ReplicaConfig); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EndpointReplica); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ManagedEndpoint); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*Event); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HarnessRegisterRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HarnessRegisterResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HarnessWatchConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HarnessAckConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HarnessAckConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HarnessHeartbeatRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HarnessHeartbeatResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HarnessPublishEventsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*HarnessPublishEventsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEndpointsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListEndpointsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetEndpointRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetEndpointResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListReplicasRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ListReplicasResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMetricsRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*EndpointMetrics); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetMetricsResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetReplicaConfigRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*SetReplicaConfigResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopReplicaRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*StopReplicaResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GitOpsEndpointState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GitOpsState); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGitOpsStatusRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGitOpsStatusResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*RepoEndpoint); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyRepoRequest); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } file_managedendpoint_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ApplyRepoResponse); i { case 0: return &v.state case 1: return &v.sizeCache case 2: return &v.unknownFields default: return nil } } } type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_managedendpoint_proto_rawDesc, NumEnums: 0, NumMessages: 34, NumExtensions: 0, NumServices: 2, }, GoTypes: file_managedendpoint_proto_goTypes, DependencyIndexes: file_managedendpoint_proto_depIdxs, MessageInfos: file_managedendpoint_proto_msgTypes, }.Build() File_managedendpoint_proto = out.File file_managedendpoint_proto_rawDesc = nil file_managedendpoint_proto_goTypes = nil file_managedendpoint_proto_depIdxs = nil }