Ctrl K
ComunidadGuías…

proto/managedendpoint.pb.go

Rama main · réplica de lectura del repositorio original.

Archivo original ↗Preguntar a KiBot
// 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
}