Files
syncwarden/internal/syncthing/types.go

89 lines
2.4 KiB
Go

package syncthing
import "time"
// HealthStatus from /rest/noauth/health.
type HealthStatus struct {
Status string `json:"status"` // "OK"
}
// SystemStatus from /rest/system/status.
type SystemStatus struct {
MyID string `json:"myID"`
Uptime int `json:"uptime"`
StartTime time.Time `json:"startTime"`
}
// SystemVersion from /rest/system/version.
type SystemVersion struct {
Version string `json:"version"`
LongVersion string `json:"longVersion"`
}
// ConnectionInfo for a single device from /rest/system/connections.
type ConnectionInfo struct {
Connected bool `json:"connected"`
Paused bool `json:"paused"`
Address string `json:"address"`
Type string `json:"type"`
InBytesTotal int64 `json:"inBytesTotal"`
OutBytesTotal int64 `json:"outBytesTotal"`
}
// Connections from /rest/system/connections.
type Connections struct {
Total ConnectionInfo `json:"total"`
Connections map[string]ConnectionInfo `json:"connections"`
}
// FolderConfig from /rest/config folders array.
type FolderConfig struct {
ID string `json:"id"`
Label string `json:"label"`
Path string `json:"path"`
Paused bool `json:"paused"`
}
// DeviceConfig from /rest/config devices array.
type DeviceConfig struct {
DeviceID string `json:"deviceID"`
Name string `json:"name"`
Paused bool `json:"paused"`
}
// FullConfig from /rest/config.
type FullConfig struct {
Folders []FolderConfig `json:"folders"`
Devices []DeviceConfig `json:"devices"`
}
// FolderStatus from /rest/db/status.
type FolderStatus struct {
State string `json:"state"` // "idle", "scanning", "syncing", "error", etc.
StateChanged time.Time `json:"stateChanged"`
NeedFiles int `json:"needFiles"`
NeedBytes int64 `json:"needBytes"`
GlobalFiles int `json:"globalFiles"`
GlobalBytes int64 `json:"globalBytes"`
LocalFiles int `json:"localFiles"`
LocalBytes int64 `json:"localBytes"`
Errors int `json:"errors"`
PullErrors int `json:"pullErrors"`
}
// Event from /rest/events.
type Event struct {
ID int `json:"id"`
Type string `json:"type"`
Time time.Time `json:"time"`
Data any `json:"data"`
}
// PendingDevice from /rest/cluster/pending/devices.
type PendingDevice struct {
DeviceID string `json:"deviceID"`
Name string `json:"name"`
Time time.Time `json:"time"`
Address string `json:"address"`
}