mirror of
https://github.com/photoprism/photoprism.git
synced 2025-09-26 21:01:58 +08:00
83 lines
3.0 KiB
Go
83 lines
3.0 KiB
Go
package cluster
|
|
|
|
// NodeDatabase represents database metadata returned for a node.
|
|
// swagger:model NodeDatabase
|
|
type NodeDatabase struct {
|
|
Name string `json:"name"`
|
|
User string `json:"user"`
|
|
Driver string `json:"driver,omitempty"`
|
|
RotatedAt string `json:"rotatedAt"`
|
|
}
|
|
|
|
// Node is the API response DTO for a cluster node.
|
|
// swagger:model Node
|
|
type Node struct {
|
|
UUID string `json:"uuid"` // NodeUUID
|
|
Name string `json:"name"` // NodeName
|
|
Role string `json:"role"` // NodeRole
|
|
ClientID string `json:"clientId,omitempty"`
|
|
SiteUrl string `json:"siteUrl,omitempty"`
|
|
AdvertiseUrl string `json:"advertiseUrl,omitempty"`
|
|
Labels map[string]string `json:"labels,omitempty"`
|
|
CreatedAt string `json:"createdAt"`
|
|
UpdatedAt string `json:"updatedAt"`
|
|
Database *NodeDatabase `json:"database,omitempty"`
|
|
}
|
|
|
|
// DatabaseInfo provides basic database connection metadata for summary endpoints.
|
|
// swagger:model DatabaseInfo
|
|
type DatabaseInfo struct {
|
|
Driver string `json:"driver"`
|
|
Host string `json:"host"`
|
|
Port int `json:"port"`
|
|
}
|
|
|
|
// SummaryResponse is the response type for GET /api/v1/cluster.
|
|
// swagger:model SummaryResponse
|
|
type SummaryResponse struct {
|
|
UUID string `json:"uuid"` // ClusterUUID
|
|
ClusterCIDR string `json:"clusterCidr,omitempty"`
|
|
Nodes int `json:"nodes"`
|
|
Database DatabaseInfo `json:"database"`
|
|
Time string `json:"time"`
|
|
}
|
|
|
|
// RegisterSecrets contains newly issued or rotated node secrets.
|
|
// swagger:model RegisterSecrets
|
|
type RegisterSecrets struct {
|
|
ClientSecret string `json:"clientSecret,omitempty"`
|
|
RotatedAt string `json:"rotatedAt,omitempty"`
|
|
}
|
|
|
|
// RegisterDatabase describes database credentials returned during registration/rotation.
|
|
// swagger:model RegisterDatabase
|
|
type RegisterDatabase struct {
|
|
Driver string `json:"driver"`
|
|
Host string `json:"host"`
|
|
Port int `json:"port"`
|
|
Name string `json:"name"`
|
|
User string `json:"user"`
|
|
Password string `json:"password,omitempty"`
|
|
DSN string `json:"dsn,omitempty"`
|
|
RotatedAt string `json:"rotatedAt,omitempty"`
|
|
}
|
|
|
|
// RegisterResponse is the response body for POST /api/v1/cluster/nodes/register.
|
|
// swagger:model RegisterResponse
|
|
type RegisterResponse struct {
|
|
UUID string `json:"uuid"` // ClusterUUID
|
|
ClusterCIDR string `json:"clusterCidr,omitempty"`
|
|
Node Node `json:"node"`
|
|
Database RegisterDatabase `json:"database"`
|
|
Secrets *RegisterSecrets `json:"secrets,omitempty"`
|
|
JWKSUrl string `json:"jwksUrl,omitempty"`
|
|
AlreadyRegistered bool `json:"alreadyRegistered"`
|
|
AlreadyProvisioned bool `json:"alreadyProvisioned"`
|
|
}
|
|
|
|
// StatusResponse is a generic status wrapper for simple ok responses.
|
|
// swagger:model StatusResponse
|
|
type StatusResponse struct {
|
|
Status string `json:"status"`
|
|
}
|