157 lines
4.6 KiB
Go
157 lines
4.6 KiB
Go
package domain
|
|
|
|
import "time"
|
|
|
|
type PluginLifecycleState string
|
|
|
|
const (
|
|
PluginLifecycleStatePending PluginLifecycleState = "pending"
|
|
PluginLifecycleStateInstalled PluginLifecycleState = "installed"
|
|
PluginLifecycleStateEnabled PluginLifecycleState = "enabled"
|
|
PluginLifecycleStateDisabled PluginLifecycleState = "disabled"
|
|
PluginLifecycleStateUpgrading PluginLifecycleState = "upgrading"
|
|
PluginLifecycleStateRollingBack PluginLifecycleState = "rolling_back"
|
|
PluginLifecycleStateRetired PluginLifecycleState = "retired"
|
|
PluginLifecycleStateFailed PluginLifecycleState = "failed"
|
|
)
|
|
|
|
type PluginLifecycleOperation string
|
|
|
|
const (
|
|
PluginLifecycleOperationInstall PluginLifecycleOperation = "install"
|
|
PluginLifecycleOperationEnable PluginLifecycleOperation = "enable"
|
|
PluginLifecycleOperationDisable PluginLifecycleOperation = "disable"
|
|
PluginLifecycleOperationUpgrade PluginLifecycleOperation = "upgrade"
|
|
PluginLifecycleOperationRollback PluginLifecycleOperation = "rollback"
|
|
PluginLifecycleOperationRetire PluginLifecycleOperation = "retire"
|
|
PluginLifecycleOperationDependencyCheck PluginLifecycleOperation = "dependency-check"
|
|
)
|
|
|
|
type PluginLifecycleInstallation struct {
|
|
ID string
|
|
PluginID string
|
|
ServerInstanceID string
|
|
CurrentVersion string
|
|
TargetVersion string
|
|
PreviousVersion string
|
|
DesiredState PluginLifecycleState
|
|
CurrentState PluginLifecycleState
|
|
LastOperation PluginLifecycleOperation
|
|
Compatibility string
|
|
DependencyState DependencyState
|
|
JobID string
|
|
FailureReason string
|
|
IdempotencyKey string
|
|
CreatedAt time.Time
|
|
UpdatedAt time.Time
|
|
}
|
|
|
|
type PluginLifecycleFilter struct {
|
|
PluginID string
|
|
ServerInstanceID string
|
|
CurrentState PluginLifecycleState
|
|
}
|
|
|
|
type PluginLifecycleRequest struct {
|
|
PluginID string
|
|
ServerInstanceID string
|
|
Operation PluginLifecycleOperation
|
|
TargetVersion string
|
|
IdempotencyKey string
|
|
Confirmed bool
|
|
}
|
|
|
|
type PluginLifecycleResult struct {
|
|
Installation PluginLifecycleInstallation
|
|
Job Job
|
|
Status string
|
|
}
|
|
|
|
type AIConfigDiffState string
|
|
|
|
const (
|
|
AIConfigDiffStatePending AIConfigDiffState = "pending"
|
|
AIConfigDiffStateApproved AIConfigDiffState = "approved"
|
|
AIConfigDiffStateCancelled AIConfigDiffState = "cancelled"
|
|
AIConfigDiffStateExpired AIConfigDiffState = "expired"
|
|
)
|
|
|
|
type AIConfigDiffPreview struct {
|
|
ID string
|
|
RequestID string
|
|
CreatedBy string
|
|
ServerInstanceID string
|
|
PluginID string
|
|
ProviderID string
|
|
Model string
|
|
Key string
|
|
ConfigVersion int
|
|
CurrentConfigChecksum string
|
|
ProposedConfig string
|
|
DiffSummary string
|
|
State AIConfigDiffState
|
|
ExpiresAt time.Time
|
|
ApprovedBy string
|
|
ApprovedAt time.Time
|
|
ApprovalIdempotencyKey string
|
|
CancelledBy string
|
|
CancelledAt time.Time
|
|
JobID string
|
|
CreatedAt time.Time
|
|
UpdatedAt time.Time
|
|
}
|
|
|
|
type AIConfigDiffFilter struct {
|
|
ServerInstanceID string
|
|
PluginID string
|
|
State AIConfigDiffState
|
|
}
|
|
|
|
type AIConfigDiffApprovalRequest struct {
|
|
DiffID string
|
|
IdempotencyKey string
|
|
}
|
|
|
|
type AIConfigDiffApprovalResult struct {
|
|
Preview AIConfigDiffPreview
|
|
Dispatch ServerConfigWriteDispatch
|
|
}
|
|
|
|
func CopyPluginLifecycleInstallation(installation PluginLifecycleInstallation) PluginLifecycleInstallation {
|
|
return installation
|
|
}
|
|
|
|
func CopyPluginLifecycleInstallations(installations []PluginLifecycleInstallation) []PluginLifecycleInstallation {
|
|
if installations == nil {
|
|
return nil
|
|
}
|
|
out := make([]PluginLifecycleInstallation, len(installations))
|
|
copy(out, installations)
|
|
return out
|
|
}
|
|
|
|
func CopyPluginLifecycleResult(result PluginLifecycleResult) PluginLifecycleResult {
|
|
result.Installation = CopyPluginLifecycleInstallation(result.Installation)
|
|
result.Job = CopyJob(result.Job)
|
|
return result
|
|
}
|
|
|
|
func CopyAIConfigDiffPreview(preview AIConfigDiffPreview) AIConfigDiffPreview {
|
|
return preview
|
|
}
|
|
|
|
func CopyAIConfigDiffPreviews(previews []AIConfigDiffPreview) []AIConfigDiffPreview {
|
|
if previews == nil {
|
|
return nil
|
|
}
|
|
out := make([]AIConfigDiffPreview, len(previews))
|
|
copy(out, previews)
|
|
return out
|
|
}
|
|
|
|
func CopyAIConfigDiffApprovalResult(result AIConfigDiffApprovalResult) AIConfigDiffApprovalResult {
|
|
result.Preview = CopyAIConfigDiffPreview(result.Preview)
|
|
result.Dispatch = CopyServerConfigWriteDispatch(result.Dispatch)
|
|
return result
|
|
}
|