package api type MachineRequest struct { Name string `json:"name"` Host string `json:"host"` Port int `json:"port"` SSHUser string `json:"ssh_user"` SSHKeyID *int64 `json:"ssh_key_id"` MACAddress *string `json:"mac_address"` WoLEnabled bool `json:"wol_enabled"` BroadcastAddr *string `json:"broadcast_addr"` WakeTimeoutSeconds int `json:"wake_timeout_seconds"` WakeCheckIntervalSeconds int `json:"wake_check_interval_seconds"` } type MachineResponse struct { ID int64 `json:"id"` Name string `json:"name"` Host string `json:"host"` Port int `json:"port"` SSHUser string `json:"ssh_user"` SSHKeyID *int64 `json:"ssh_key_id"` MACAddress *string `json:"mac_address"` WoLEnabled bool `json:"wol_enabled"` BroadcastAddr *string `json:"broadcast_addr"` WakeTimeoutSeconds int `json:"wake_timeout_seconds"` WakeCheckIntervalSeconds int `json:"wake_check_interval_seconds"` FingerprintConfirmed bool `json:"fingerprint_confirmed"` Status string `json:"status"` } type SyncPairRequest struct { Name string `json:"name"` SourceMachineID *int64 `json:"source_machine_id"` SourcePath string `json:"source_path"` DestMachineID *int64 `json:"dest_machine_id"` DestPath string `json:"dest_path"` Direction string `json:"direction"` RsyncFlags string `json:"rsync_flags"` ExcludePatterns string `json:"exclude_patterns"` Enabled bool `json:"enabled"` } type SyncPairResponse struct { ID int64 `json:"id"` Name string `json:"name"` SourceMachineID *int64 `json:"source_machine_id"` SourcePath string `json:"source_path"` DestMachineID *int64 `json:"dest_machine_id"` DestPath string `json:"dest_path"` Direction string `json:"direction"` RsyncFlags string `json:"rsync_flags"` ExcludePatterns string `json:"exclude_patterns"` Enabled bool `json:"enabled"` } type JobResponse struct { ID int64 `json:"id"` SyncPairID int64 `json:"sync_pair_id"` TriggerType string `json:"trigger_type"` Status string `json:"status"` StartedAt *string `json:"started_at"` FinishedAt *string `json:"finished_at"` LogFile *string `json:"log_file"` ErrorMessage *string `json:"error_message,omitempty"` ErrorCode *string `json:"error_code,omitempty"` DurationSeconds *int64 `json:"duration_seconds,omitempty"` LogLineCount *int64 `json:"log_line_count,omitempty"` } type LogLineResponse struct { ID int64 `json:"id"` JobID int64 `json:"job_id"` Stream string `json:"stream"` Content string `json:"content"` Timestamp string `json:"timestamp"` } type SSHKeyRequest struct { Label string `json:"label"` Generate bool `json:"generate"` PublicKey string `json:"public_key"` } type SSHKeyResponse struct { ID int64 `json:"id"` Label string `json:"label"` PublicKey string `json:"public_key"` Fingerprint string `json:"fingerprint"` InUse bool `json:"in_use"` HasPrivateKey bool `json:"has_private_key"` CreatedAt string `json:"created_at"` } type ErrorResponse struct { Error string `json:"error"` } type SettingsInfoResponse struct { Version string `json:"version"` DataDir string `json:"data_dir"` SSHPubKey string `json:"ssh_pub_key"` }