// Backupy protobuf v1 — see docs/07-api-contract.md // // Messages flowing from the agent to the server over the long-lived WSS // connection. Each is wrapped in an Envelope (see envelope.proto). // Code generated by protoc-gen-go. DO NOT EDIT. // versions: // protoc-gen-go v1.36.11 // protoc (unknown) // source: backupv1/agent_to_server.proto package backupv1 import ( protoreflect "google.golang.org/protobuf/reflect/protoreflect" protoimpl "google.golang.org/protobuf/runtime/protoimpl" reflect "reflect" sync "sync" unsafe "unsafe" ) 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) ) // Register is the first message the agent sends after authenticating the // WSS connection. The server replies with RegisterAck. // See docs/07-api-contract.md §4 (Register). type Register struct { state protoimpl.MessageState `protogen:"open.v1"` AgentVersion string `protobuf:"bytes,1,opt,name=agent_version,json=agentVersion,proto3" json:"agent_version,omitempty"` Hostname string `protobuf:"bytes,2,opt,name=hostname,proto3" json:"hostname,omitempty"` Os string `protobuf:"bytes,3,opt,name=os,proto3" json:"os,omitempty"` // "linux" Arch string `protobuf:"bytes,4,opt,name=arch,proto3" json:"arch,omitempty"` // "amd64" DockerVersion string `protobuf:"bytes,5,opt,name=docker_version,json=dockerVersion,proto3" json:"docker_version,omitempty"` Capabilities []string `protobuf:"bytes,6,rep,name=capabilities,proto3" json:"capabilities,omitempty"` // ["pg_dump", "mysqldump", "docker_discovery"] LastKnownConfigVersion uint64 `protobuf:"varint,7,opt,name=last_known_config_version,json=lastKnownConfigVersion,proto3" json:"last_known_config_version,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Register) Reset() { *x = Register{} mi := &file_backupv1_agent_to_server_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Register) String() string { return protoimpl.X.MessageStringOf(x) } func (*Register) ProtoMessage() {} func (x *Register) ProtoReflect() protoreflect.Message { mi := &file_backupv1_agent_to_server_proto_msgTypes[0] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Register.ProtoReflect.Descriptor instead. func (*Register) Descriptor() ([]byte, []int) { return file_backupv1_agent_to_server_proto_rawDescGZIP(), []int{0} } func (x *Register) GetAgentVersion() string { if x != nil { return x.AgentVersion } return "" } func (x *Register) GetHostname() string { if x != nil { return x.Hostname } return "" } func (x *Register) GetOs() string { if x != nil { return x.Os } return "" } func (x *Register) GetArch() string { if x != nil { return x.Arch } return "" } func (x *Register) GetDockerVersion() string { if x != nil { return x.DockerVersion } return "" } func (x *Register) GetCapabilities() []string { if x != nil { return x.Capabilities } return nil } func (x *Register) GetLastKnownConfigVersion() uint64 { if x != nil { return x.LastKnownConfigVersion } return 0 } // Heartbeat is sent every heartbeat_interval_sec (default 30s). // See docs/07-api-contract.md §4 (Heartbeat). type Heartbeat struct { state protoimpl.MessageState `protogen:"open.v1"` ConfigVersion uint64 `protobuf:"varint,1,opt,name=config_version,json=configVersion,proto3" json:"config_version,omitempty"` Metrics *AgentMetrics `protobuf:"bytes,2,opt,name=metrics,proto3" json:"metrics,omitempty"` ActiveJobIds []string `protobuf:"bytes,3,rep,name=active_job_ids,json=activeJobIds,proto3" json:"active_job_ids,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Heartbeat) Reset() { *x = Heartbeat{} mi := &file_backupv1_agent_to_server_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Heartbeat) String() string { return protoimpl.X.MessageStringOf(x) } func (*Heartbeat) ProtoMessage() {} func (x *Heartbeat) ProtoReflect() protoreflect.Message { mi := &file_backupv1_agent_to_server_proto_msgTypes[1] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Heartbeat.ProtoReflect.Descriptor instead. func (*Heartbeat) Descriptor() ([]byte, []int) { return file_backupv1_agent_to_server_proto_rawDescGZIP(), []int{1} } func (x *Heartbeat) GetConfigVersion() uint64 { if x != nil { return x.ConfigVersion } return 0 } func (x *Heartbeat) GetMetrics() *AgentMetrics { if x != nil { return x.Metrics } return nil } func (x *Heartbeat) GetActiveJobIds() []string { if x != nil { return x.ActiveJobIds } return nil } // DiscoveryReport is sent on startup and whenever docker events change the set // of running containers. See docs/07-api-contract.md §4 (DiscoveryReport). type DiscoveryReport struct { state protoimpl.MessageState `protogen:"open.v1"` Containers []*DiscoveredContainer `protobuf:"bytes,1,rep,name=containers,proto3" json:"containers,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DiscoveryReport) Reset() { *x = DiscoveryReport{} mi := &file_backupv1_agent_to_server_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DiscoveryReport) String() string { return protoimpl.X.MessageStringOf(x) } func (*DiscoveryReport) ProtoMessage() {} func (x *DiscoveryReport) ProtoReflect() protoreflect.Message { mi := &file_backupv1_agent_to_server_proto_msgTypes[2] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DiscoveryReport.ProtoReflect.Descriptor instead. func (*DiscoveryReport) Descriptor() ([]byte, []int) { return file_backupv1_agent_to_server_proto_rawDescGZIP(), []int{2} } func (x *DiscoveryReport) GetContainers() []*DiscoveredContainer { if x != nil { return x.Containers } return nil } type DiscoveredContainer struct { state protoimpl.MessageState `protogen:"open.v1"` ContainerId string `protobuf:"bytes,1,opt,name=container_id,json=containerId,proto3" json:"container_id,omitempty"` Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` Image string `protobuf:"bytes,3,opt,name=image,proto3" json:"image,omitempty"` // "postgres:16" DetectedDbType string `protobuf:"bytes,4,opt,name=detected_db_type,json=detectedDbType,proto3" json:"detected_db_type,omitempty"` // "postgresql" Networks []string `protobuf:"bytes,5,rep,name=networks,proto3" json:"networks,omitempty"` EnvHints map[string]string `protobuf:"bytes,6,rep,name=env_hints,json=envHints,proto3" json:"env_hints,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` // env vars filtered to remove secrets Ports []*PortBinding `protobuf:"bytes,7,rep,name=ports,proto3" json:"ports,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *DiscoveredContainer) Reset() { *x = DiscoveredContainer{} mi := &file_backupv1_agent_to_server_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *DiscoveredContainer) String() string { return protoimpl.X.MessageStringOf(x) } func (*DiscoveredContainer) ProtoMessage() {} func (x *DiscoveredContainer) ProtoReflect() protoreflect.Message { mi := &file_backupv1_agent_to_server_proto_msgTypes[3] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use DiscoveredContainer.ProtoReflect.Descriptor instead. func (*DiscoveredContainer) Descriptor() ([]byte, []int) { return file_backupv1_agent_to_server_proto_rawDescGZIP(), []int{3} } func (x *DiscoveredContainer) GetContainerId() string { if x != nil { return x.ContainerId } return "" } func (x *DiscoveredContainer) GetName() string { if x != nil { return x.Name } return "" } func (x *DiscoveredContainer) GetImage() string { if x != nil { return x.Image } return "" } func (x *DiscoveredContainer) GetDetectedDbType() string { if x != nil { return x.DetectedDbType } return "" } func (x *DiscoveredContainer) GetNetworks() []string { if x != nil { return x.Networks } return nil } func (x *DiscoveredContainer) GetEnvHints() map[string]string { if x != nil { return x.EnvHints } return nil } func (x *DiscoveredContainer) GetPorts() []*PortBinding { if x != nil { return x.Ports } return nil } // JobUpdate is a progress tick for a running backup job. // See docs/07-api-contract.md §4 (JobUpdate). // // run_id was appended (field 6) after the initial Phase-1 wire so the // scheduler can correlate a tick to a specific BackupRun row. Older // agents that omit it are tolerated as "job-level" updates (no run row // transition). type JobUpdate struct { state protoimpl.MessageState `protogen:"open.v1"` JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` Status JobStatus `protobuf:"varint,2,opt,name=status,proto3,enum=backup.v1.JobStatus" json:"status,omitempty"` ProgressPercent uint32 `protobuf:"varint,3,opt,name=progress_percent,json=progressPercent,proto3" json:"progress_percent,omitempty"` CurrentStep string `protobuf:"bytes,4,opt,name=current_step,json=currentStep,proto3" json:"current_step,omitempty"` // "dumping", "compressing", "uploading" ErrorMessage string `protobuf:"bytes,5,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` // populated when status == FAILED RunId string `protobuf:"bytes,6,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"` // correlates to BackupRun.id; appended in v1.1 unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *JobUpdate) Reset() { *x = JobUpdate{} mi := &file_backupv1_agent_to_server_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *JobUpdate) String() string { return protoimpl.X.MessageStringOf(x) } func (*JobUpdate) ProtoMessage() {} func (x *JobUpdate) ProtoReflect() protoreflect.Message { mi := &file_backupv1_agent_to_server_proto_msgTypes[4] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use JobUpdate.ProtoReflect.Descriptor instead. func (*JobUpdate) Descriptor() ([]byte, []int) { return file_backupv1_agent_to_server_proto_rawDescGZIP(), []int{4} } func (x *JobUpdate) GetJobId() string { if x != nil { return x.JobId } return "" } func (x *JobUpdate) GetStatus() JobStatus { if x != nil { return x.Status } return JobStatus_JOB_STATUS_UNSPECIFIED } func (x *JobUpdate) GetProgressPercent() uint32 { if x != nil { return x.ProgressPercent } return 0 } func (x *JobUpdate) GetCurrentStep() string { if x != nil { return x.CurrentStep } return "" } func (x *JobUpdate) GetErrorMessage() string { if x != nil { return x.ErrorMessage } return "" } func (x *JobUpdate) GetRunId() string { if x != nil { return x.RunId } return "" } // BackupCompleted is sent once after a successful S3 upload, carrying the // metadata the server needs to persist a backup_runs row. // See docs/07-api-contract.md §4 (BackupCompleted). type BackupCompleted struct { state protoimpl.MessageState `protogen:"open.v1"` JobId string `protobuf:"bytes,1,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` RunId string `protobuf:"bytes,2,opt,name=run_id,json=runId,proto3" json:"run_id,omitempty"` S3Key string `protobuf:"bytes,3,opt,name=s3_key,json=s3Key,proto3" json:"s3_key,omitempty"` SizeBytes uint64 `protobuf:"varint,4,opt,name=size_bytes,json=sizeBytes,proto3" json:"size_bytes,omitempty"` Sha256 string `protobuf:"bytes,5,opt,name=sha256,proto3" json:"sha256,omitempty"` DurationMs uint64 `protobuf:"varint,6,opt,name=duration_ms,json=durationMs,proto3" json:"duration_ms,omitempty"` DekKmsId string `protobuf:"bytes,7,opt,name=dek_kms_id,json=dekKmsId,proto3" json:"dek_kms_id,omitempty"` EncryptedDek []byte `protobuf:"bytes,8,opt,name=encrypted_dek,json=encryptedDek,proto3" json:"encrypted_dek,omitempty"` Compression string `protobuf:"bytes,9,opt,name=compression,proto3" json:"compression,omitempty"` // "zstd" DbEngineVersion string `protobuf:"bytes,10,opt,name=db_engine_version,json=dbEngineVersion,proto3" json:"db_engine_version,omitempty"` // "PostgreSQL 16.2" unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *BackupCompleted) Reset() { *x = BackupCompleted{} mi := &file_backupv1_agent_to_server_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *BackupCompleted) String() string { return protoimpl.X.MessageStringOf(x) } func (*BackupCompleted) ProtoMessage() {} func (x *BackupCompleted) ProtoReflect() protoreflect.Message { mi := &file_backupv1_agent_to_server_proto_msgTypes[5] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use BackupCompleted.ProtoReflect.Descriptor instead. func (*BackupCompleted) Descriptor() ([]byte, []int) { return file_backupv1_agent_to_server_proto_rawDescGZIP(), []int{5} } func (x *BackupCompleted) GetJobId() string { if x != nil { return x.JobId } return "" } func (x *BackupCompleted) GetRunId() string { if x != nil { return x.RunId } return "" } func (x *BackupCompleted) GetS3Key() string { if x != nil { return x.S3Key } return "" } func (x *BackupCompleted) GetSizeBytes() uint64 { if x != nil { return x.SizeBytes } return 0 } func (x *BackupCompleted) GetSha256() string { if x != nil { return x.Sha256 } return "" } func (x *BackupCompleted) GetDurationMs() uint64 { if x != nil { return x.DurationMs } return 0 } func (x *BackupCompleted) GetDekKmsId() string { if x != nil { return x.DekKmsId } return "" } func (x *BackupCompleted) GetEncryptedDek() []byte { if x != nil { return x.EncryptedDek } return nil } func (x *BackupCompleted) GetCompression() string { if x != nil { return x.Compression } return "" } func (x *BackupCompleted) GetDbEngineVersion() string { if x != nil { return x.DbEngineVersion } return "" } // HealthCheckResult is the outcome of a single probe run. // See docs/07-api-contract.md §4 (HealthCheckResult). type HealthCheckResult struct { state protoimpl.MessageState `protogen:"open.v1"` CheckId string `protobuf:"bytes,1,opt,name=check_id,json=checkId,proto3" json:"check_id,omitempty"` TsMs uint64 `protobuf:"varint,2,opt,name=ts_ms,json=tsMs,proto3" json:"ts_ms,omitempty"` Ok bool `protobuf:"varint,3,opt,name=ok,proto3" json:"ok,omitempty"` LatencyMs uint32 `protobuf:"varint,4,opt,name=latency_ms,json=latencyMs,proto3" json:"latency_ms,omitempty"` Error string `protobuf:"bytes,5,opt,name=error,proto3" json:"error,omitempty"` StatusCode uint32 `protobuf:"varint,6,opt,name=status_code,json=statusCode,proto3" json:"status_code,omitempty"` // populated for HTTP/HTTPS probes unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *HealthCheckResult) Reset() { *x = HealthCheckResult{} mi := &file_backupv1_agent_to_server_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *HealthCheckResult) String() string { return protoimpl.X.MessageStringOf(x) } func (*HealthCheckResult) ProtoMessage() {} func (x *HealthCheckResult) ProtoReflect() protoreflect.Message { mi := &file_backupv1_agent_to_server_proto_msgTypes[6] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use HealthCheckResult.ProtoReflect.Descriptor instead. func (*HealthCheckResult) Descriptor() ([]byte, []int) { return file_backupv1_agent_to_server_proto_rawDescGZIP(), []int{6} } func (x *HealthCheckResult) GetCheckId() string { if x != nil { return x.CheckId } return "" } func (x *HealthCheckResult) GetTsMs() uint64 { if x != nil { return x.TsMs } return 0 } func (x *HealthCheckResult) GetOk() bool { if x != nil { return x.Ok } return false } func (x *HealthCheckResult) GetLatencyMs() uint32 { if x != nil { return x.LatencyMs } return 0 } func (x *HealthCheckResult) GetError() string { if x != nil { return x.Error } return "" } func (x *HealthCheckResult) GetStatusCode() uint32 { if x != nil { return x.StatusCode } return 0 } // LogEvent is a structured log line streamed from the agent. // See docs/07-api-contract.md §4 (LogEvent). type LogEvent struct { state protoimpl.MessageState `protogen:"open.v1"` TsMs uint64 `protobuf:"varint,1,opt,name=ts_ms,json=tsMs,proto3" json:"ts_ms,omitempty"` Level LogLevel `protobuf:"varint,2,opt,name=level,proto3,enum=backup.v1.LogLevel" json:"level,omitempty"` JobId string `protobuf:"bytes,3,opt,name=job_id,json=jobId,proto3" json:"job_id,omitempty"` // optional Message string `protobuf:"bytes,4,opt,name=message,proto3" json:"message,omitempty"` Fields map[string]string `protobuf:"bytes,5,rep,name=fields,proto3" json:"fields,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"bytes,2,opt,name=value"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *LogEvent) Reset() { *x = LogEvent{} mi := &file_backupv1_agent_to_server_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *LogEvent) String() string { return protoimpl.X.MessageStringOf(x) } func (*LogEvent) ProtoMessage() {} func (x *LogEvent) ProtoReflect() protoreflect.Message { mi := &file_backupv1_agent_to_server_proto_msgTypes[7] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use LogEvent.ProtoReflect.Descriptor instead. func (*LogEvent) Descriptor() ([]byte, []int) { return file_backupv1_agent_to_server_proto_rawDescGZIP(), []int{7} } func (x *LogEvent) GetTsMs() uint64 { if x != nil { return x.TsMs } return 0 } func (x *LogEvent) GetLevel() LogLevel { if x != nil { return x.Level } return LogLevel_TRACE } func (x *LogEvent) GetJobId() string { if x != nil { return x.JobId } return "" } func (x *LogEvent) GetMessage() string { if x != nil { return x.Message } return "" } func (x *LogEvent) GetFields() map[string]string { if x != nil { return x.Fields } return nil } // RestoreUpdate is reserved for future agent-driven restore flows. In MVP the // agent never receives a RunRestore command — restore happens through the REST // download endpoint and the local backupy-decrypt CLI. Kept in the contract so // the field number is stable for Phase 3. // See docs/07-api-contract.md §4 (RestoreUpdate). type RestoreUpdate struct { state protoimpl.MessageState `protogen:"open.v1"` RestoreId string `protobuf:"bytes,1,opt,name=restore_id,json=restoreId,proto3" json:"restore_id,omitempty"` Status JobStatus `protobuf:"varint,2,opt,name=status,proto3,enum=backup.v1.JobStatus" json:"status,omitempty"` ProgressPercent uint32 `protobuf:"varint,3,opt,name=progress_percent,json=progressPercent,proto3" json:"progress_percent,omitempty"` CurrentStep string `protobuf:"bytes,4,opt,name=current_step,json=currentStep,proto3" json:"current_step,omitempty"` ErrorMessage string `protobuf:"bytes,5,opt,name=error_message,json=errorMessage,proto3" json:"error_message,omitempty"` unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *RestoreUpdate) Reset() { *x = RestoreUpdate{} mi := &file_backupv1_agent_to_server_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *RestoreUpdate) String() string { return protoimpl.X.MessageStringOf(x) } func (*RestoreUpdate) ProtoMessage() {} func (x *RestoreUpdate) ProtoReflect() protoreflect.Message { mi := &file_backupv1_agent_to_server_proto_msgTypes[8] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use RestoreUpdate.ProtoReflect.Descriptor instead. func (*RestoreUpdate) Descriptor() ([]byte, []int) { return file_backupv1_agent_to_server_proto_rawDescGZIP(), []int{8} } func (x *RestoreUpdate) GetRestoreId() string { if x != nil { return x.RestoreId } return "" } func (x *RestoreUpdate) GetStatus() JobStatus { if x != nil { return x.Status } return JobStatus_JOB_STATUS_UNSPECIFIED } func (x *RestoreUpdate) GetProgressPercent() uint32 { if x != nil { return x.ProgressPercent } return 0 } func (x *RestoreUpdate) GetCurrentStep() string { if x != nil { return x.CurrentStep } return "" } func (x *RestoreUpdate) GetErrorMessage() string { if x != nil { return x.ErrorMessage } return "" } // Ack responds to a server message identified by correlation_id. // See docs/07-api-contract.md §4 (Ack). type Ack struct { state protoimpl.MessageState `protogen:"open.v1"` CorrelationId string `protobuf:"bytes,1,opt,name=correlation_id,json=correlationId,proto3" json:"correlation_id,omitempty"` Accepted bool `protobuf:"varint,2,opt,name=accepted,proto3" json:"accepted,omitempty"` Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"` // populated when accepted == false unknownFields protoimpl.UnknownFields sizeCache protoimpl.SizeCache } func (x *Ack) Reset() { *x = Ack{} mi := &file_backupv1_agent_to_server_proto_msgTypes[9] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } func (x *Ack) String() string { return protoimpl.X.MessageStringOf(x) } func (*Ack) ProtoMessage() {} func (x *Ack) ProtoReflect() protoreflect.Message { mi := &file_backupv1_agent_to_server_proto_msgTypes[9] if x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { ms.StoreMessageInfo(mi) } return ms } return mi.MessageOf(x) } // Deprecated: Use Ack.ProtoReflect.Descriptor instead. func (*Ack) Descriptor() ([]byte, []int) { return file_backupv1_agent_to_server_proto_rawDescGZIP(), []int{9} } func (x *Ack) GetCorrelationId() string { if x != nil { return x.CorrelationId } return "" } func (x *Ack) GetAccepted() bool { if x != nil { return x.Accepted } return false } func (x *Ack) GetReason() string { if x != nil { return x.Reason } return "" } var File_backupv1_agent_to_server_proto protoreflect.FileDescriptor const file_backupv1_agent_to_server_proto_rawDesc = "" + "\n" + "\x1ebackupv1/agent_to_server.proto\x12\tbackup.v1\x1a\x15backupv1/common.proto\"\xf5\x01\n" + "\bRegister\x12#\n" + "\ragent_version\x18\x01 \x01(\tR\fagentVersion\x12\x1a\n" + "\bhostname\x18\x02 \x01(\tR\bhostname\x12\x0e\n" + "\x02os\x18\x03 \x01(\tR\x02os\x12\x12\n" + "\x04arch\x18\x04 \x01(\tR\x04arch\x12%\n" + "\x0edocker_version\x18\x05 \x01(\tR\rdockerVersion\x12\"\n" + "\fcapabilities\x18\x06 \x03(\tR\fcapabilities\x129\n" + "\x19last_known_config_version\x18\a \x01(\x04R\x16lastKnownConfigVersion\"\x8b\x01\n" + "\tHeartbeat\x12%\n" + "\x0econfig_version\x18\x01 \x01(\x04R\rconfigVersion\x121\n" + "\ametrics\x18\x02 \x01(\v2\x17.backup.v1.AgentMetricsR\ametrics\x12$\n" + "\x0eactive_job_ids\x18\x03 \x03(\tR\factiveJobIds\"Q\n" + "\x0fDiscoveryReport\x12>\n" + "\n" + "containers\x18\x01 \x03(\v2\x1e.backup.v1.DiscoveredContainerR\n" + "containers\"\xde\x02\n" + "\x13DiscoveredContainer\x12!\n" + "\fcontainer_id\x18\x01 \x01(\tR\vcontainerId\x12\x12\n" + "\x04name\x18\x02 \x01(\tR\x04name\x12\x14\n" + "\x05image\x18\x03 \x01(\tR\x05image\x12(\n" + "\x10detected_db_type\x18\x04 \x01(\tR\x0edetectedDbType\x12\x1a\n" + "\bnetworks\x18\x05 \x03(\tR\bnetworks\x12I\n" + "\tenv_hints\x18\x06 \x03(\v2,.backup.v1.DiscoveredContainer.EnvHintsEntryR\benvHints\x12,\n" + "\x05ports\x18\a \x03(\v2\x16.backup.v1.PortBindingR\x05ports\x1a;\n" + "\rEnvHintsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xda\x01\n" + "\tJobUpdate\x12\x15\n" + "\x06job_id\x18\x01 \x01(\tR\x05jobId\x12,\n" + "\x06status\x18\x02 \x01(\x0e2\x14.backup.v1.JobStatusR\x06status\x12)\n" + "\x10progress_percent\x18\x03 \x01(\rR\x0fprogressPercent\x12!\n" + "\fcurrent_step\x18\x04 \x01(\tR\vcurrentStep\x12#\n" + "\rerror_message\x18\x05 \x01(\tR\ferrorMessage\x12\x15\n" + "\x06run_id\x18\x06 \x01(\tR\x05runId\"\xbf\x02\n" + "\x0fBackupCompleted\x12\x15\n" + "\x06job_id\x18\x01 \x01(\tR\x05jobId\x12\x15\n" + "\x06run_id\x18\x02 \x01(\tR\x05runId\x12\x15\n" + "\x06s3_key\x18\x03 \x01(\tR\x05s3Key\x12\x1d\n" + "\n" + "size_bytes\x18\x04 \x01(\x04R\tsizeBytes\x12\x16\n" + "\x06sha256\x18\x05 \x01(\tR\x06sha256\x12\x1f\n" + "\vduration_ms\x18\x06 \x01(\x04R\n" + "durationMs\x12\x1c\n" + "\n" + "dek_kms_id\x18\a \x01(\tR\bdekKmsId\x12#\n" + "\rencrypted_dek\x18\b \x01(\fR\fencryptedDek\x12 \n" + "\vcompression\x18\t \x01(\tR\vcompression\x12*\n" + "\x11db_engine_version\x18\n" + " \x01(\tR\x0fdbEngineVersion\"\xa9\x01\n" + "\x11HealthCheckResult\x12\x19\n" + "\bcheck_id\x18\x01 \x01(\tR\acheckId\x12\x13\n" + "\x05ts_ms\x18\x02 \x01(\x04R\x04tsMs\x12\x0e\n" + "\x02ok\x18\x03 \x01(\bR\x02ok\x12\x1d\n" + "\n" + "latency_ms\x18\x04 \x01(\rR\tlatencyMs\x12\x14\n" + "\x05error\x18\x05 \x01(\tR\x05error\x12\x1f\n" + "\vstatus_code\x18\x06 \x01(\rR\n" + "statusCode\"\xef\x01\n" + "\bLogEvent\x12\x13\n" + "\x05ts_ms\x18\x01 \x01(\x04R\x04tsMs\x12)\n" + "\x05level\x18\x02 \x01(\x0e2\x13.backup.v1.LogLevelR\x05level\x12\x15\n" + "\x06job_id\x18\x03 \x01(\tR\x05jobId\x12\x18\n" + "\amessage\x18\x04 \x01(\tR\amessage\x127\n" + "\x06fields\x18\x05 \x03(\v2\x1f.backup.v1.LogEvent.FieldsEntryR\x06fields\x1a9\n" + "\vFieldsEntry\x12\x10\n" + "\x03key\x18\x01 \x01(\tR\x03key\x12\x14\n" + "\x05value\x18\x02 \x01(\tR\x05value:\x028\x01\"\xcf\x01\n" + "\rRestoreUpdate\x12\x1d\n" + "\n" + "restore_id\x18\x01 \x01(\tR\trestoreId\x12,\n" + "\x06status\x18\x02 \x01(\x0e2\x14.backup.v1.JobStatusR\x06status\x12)\n" + "\x10progress_percent\x18\x03 \x01(\rR\x0fprogressPercent\x12!\n" + "\fcurrent_step\x18\x04 \x01(\tR\vcurrentStep\x12#\n" + "\rerror_message\x18\x05 \x01(\tR\ferrorMessage\"`\n" + "\x03Ack\x12%\n" + "\x0ecorrelation_id\x18\x01 \x01(\tR\rcorrelationId\x12\x1a\n" + "\baccepted\x18\x02 \x01(\bR\baccepted\x12\x16\n" + "\x06reason\x18\x03 \x01(\tR\x06reasonB\xac\x01\n" + "\rcom.backup.v1B\x12AgentToServerProtoP\x01ZBgithub.com/backupy/backupy/packages/proto/gen/go/backupv1;backupv1\xa2\x02\x03BXX\xaa\x02\tBackup.V1\xca\x02\tBackup\\V1\xe2\x02\x15Backup\\V1\\GPBMetadata\xea\x02\n" + "Backup::V1b\x06proto3" var ( file_backupv1_agent_to_server_proto_rawDescOnce sync.Once file_backupv1_agent_to_server_proto_rawDescData []byte ) func file_backupv1_agent_to_server_proto_rawDescGZIP() []byte { file_backupv1_agent_to_server_proto_rawDescOnce.Do(func() { file_backupv1_agent_to_server_proto_rawDescData = protoimpl.X.CompressGZIP(unsafe.Slice(unsafe.StringData(file_backupv1_agent_to_server_proto_rawDesc), len(file_backupv1_agent_to_server_proto_rawDesc))) }) return file_backupv1_agent_to_server_proto_rawDescData } var file_backupv1_agent_to_server_proto_msgTypes = make([]protoimpl.MessageInfo, 12) var file_backupv1_agent_to_server_proto_goTypes = []any{ (*Register)(nil), // 0: backup.v1.Register (*Heartbeat)(nil), // 1: backup.v1.Heartbeat (*DiscoveryReport)(nil), // 2: backup.v1.DiscoveryReport (*DiscoveredContainer)(nil), // 3: backup.v1.DiscoveredContainer (*JobUpdate)(nil), // 4: backup.v1.JobUpdate (*BackupCompleted)(nil), // 5: backup.v1.BackupCompleted (*HealthCheckResult)(nil), // 6: backup.v1.HealthCheckResult (*LogEvent)(nil), // 7: backup.v1.LogEvent (*RestoreUpdate)(nil), // 8: backup.v1.RestoreUpdate (*Ack)(nil), // 9: backup.v1.Ack nil, // 10: backup.v1.DiscoveredContainer.EnvHintsEntry nil, // 11: backup.v1.LogEvent.FieldsEntry (*AgentMetrics)(nil), // 12: backup.v1.AgentMetrics (*PortBinding)(nil), // 13: backup.v1.PortBinding (JobStatus)(0), // 14: backup.v1.JobStatus (LogLevel)(0), // 15: backup.v1.LogLevel } var file_backupv1_agent_to_server_proto_depIdxs = []int32{ 12, // 0: backup.v1.Heartbeat.metrics:type_name -> backup.v1.AgentMetrics 3, // 1: backup.v1.DiscoveryReport.containers:type_name -> backup.v1.DiscoveredContainer 10, // 2: backup.v1.DiscoveredContainer.env_hints:type_name -> backup.v1.DiscoveredContainer.EnvHintsEntry 13, // 3: backup.v1.DiscoveredContainer.ports:type_name -> backup.v1.PortBinding 14, // 4: backup.v1.JobUpdate.status:type_name -> backup.v1.JobStatus 15, // 5: backup.v1.LogEvent.level:type_name -> backup.v1.LogLevel 11, // 6: backup.v1.LogEvent.fields:type_name -> backup.v1.LogEvent.FieldsEntry 14, // 7: backup.v1.RestoreUpdate.status:type_name -> backup.v1.JobStatus 8, // [8:8] is the sub-list for method output_type 8, // [8:8] is the sub-list for method input_type 8, // [8:8] is the sub-list for extension type_name 8, // [8:8] is the sub-list for extension extendee 0, // [0:8] is the sub-list for field type_name } func init() { file_backupv1_agent_to_server_proto_init() } func file_backupv1_agent_to_server_proto_init() { if File_backupv1_agent_to_server_proto != nil { return } file_backupv1_common_proto_init() type x struct{} out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: unsafe.Slice(unsafe.StringData(file_backupv1_agent_to_server_proto_rawDesc), len(file_backupv1_agent_to_server_proto_rawDesc)), NumEnums: 0, NumMessages: 12, NumExtensions: 0, NumServices: 0, }, GoTypes: file_backupv1_agent_to_server_proto_goTypes, DependencyIndexes: file_backupv1_agent_to_server_proto_depIdxs, MessageInfos: file_backupv1_agent_to_server_proto_msgTypes, }.Build() File_backupv1_agent_to_server_proto = out.File file_backupv1_agent_to_server_proto_goTypes = nil file_backupv1_agent_to_server_proto_depIdxs = nil }