393 lines
12 KiB
Go
393 lines
12 KiB
Go
package domain
|
|
|
|
import "time"
|
|
|
|
type ClientManagerLifecycleStatus string
|
|
|
|
const (
|
|
ClientManagerLifecycleRequested ClientManagerLifecycleStatus = "requested"
|
|
ClientManagerLifecycleBuilding ClientManagerLifecycleStatus = "building"
|
|
ClientManagerLifecycleAvailable ClientManagerLifecycleStatus = "available"
|
|
ClientManagerLifecycleDeploying ClientManagerLifecycleStatus = "deploying"
|
|
ClientManagerLifecycleInstalled ClientManagerLifecycleStatus = "installed"
|
|
ClientManagerLifecycleRegistering ClientManagerLifecycleStatus = "registering"
|
|
ClientManagerLifecycleOnline ClientManagerLifecycleStatus = "online"
|
|
ClientManagerLifecycleDegraded ClientManagerLifecycleStatus = "degraded"
|
|
ClientManagerLifecycleOffline ClientManagerLifecycleStatus = "offline"
|
|
ClientManagerLifecycleUpdating ClientManagerLifecycleStatus = "updating"
|
|
ClientManagerLifecycleRollingBack ClientManagerLifecycleStatus = "rolling_back"
|
|
ClientManagerLifecycleStopping ClientManagerLifecycleStatus = "stopping"
|
|
ClientManagerLifecycleUninstalled ClientManagerLifecycleStatus = "uninstalled"
|
|
ClientManagerLifecycleFailed ClientManagerLifecycleStatus = "failed"
|
|
)
|
|
|
|
type ClientManagerHealthStatus string
|
|
|
|
const (
|
|
ClientManagerHealthUnknown ClientManagerHealthStatus = "unknown"
|
|
ClientManagerHealthHealthy ClientManagerHealthStatus = "healthy"
|
|
ClientManagerHealthDegraded ClientManagerHealthStatus = "degraded"
|
|
ClientManagerHealthUnhealthy ClientManagerHealthStatus = "unhealthy"
|
|
ClientManagerHealthOffline ClientManagerHealthStatus = "offline"
|
|
)
|
|
|
|
type ClientManagerLifecycleOperation string
|
|
|
|
const (
|
|
ClientManagerOperationDeploy ClientManagerLifecycleOperation = "deploy"
|
|
ClientManagerOperationStart ClientManagerLifecycleOperation = "start"
|
|
ClientManagerOperationStop ClientManagerLifecycleOperation = "stop"
|
|
ClientManagerOperationRestart ClientManagerLifecycleOperation = "restart"
|
|
ClientManagerOperationStatus ClientManagerLifecycleOperation = "status"
|
|
ClientManagerOperationUpdate ClientManagerLifecycleOperation = "update"
|
|
ClientManagerOperationRollback ClientManagerLifecycleOperation = "rollback"
|
|
ClientManagerOperationUninstall ClientManagerLifecycleOperation = "uninstall"
|
|
)
|
|
|
|
const (
|
|
JobCapabilityClientManagerDeploy = "client-manager.deploy"
|
|
JobCapabilityClientManagerControl = "client-manager.control"
|
|
JobCapabilityClientManagerUpdate = "client-manager.update"
|
|
JobCapabilityClientManagerRollback = "client-manager.rollback"
|
|
JobCapabilityClientManagerUninstall = "client-manager.uninstall"
|
|
)
|
|
|
|
const ClientManagerCompanionConfigSchemaVersion = 1
|
|
|
|
type ClientManagerSessionStatus string
|
|
|
|
const (
|
|
ClientManagerSessionActive ClientManagerSessionStatus = "active"
|
|
ClientManagerSessionRevoked ClientManagerSessionStatus = "revoked"
|
|
ClientManagerSessionExpired ClientManagerSessionStatus = "expired"
|
|
)
|
|
|
|
type RuntimeClientManagerDeployment struct {
|
|
Mode string
|
|
ExecutableRef string
|
|
Arguments []string
|
|
AutoStart bool
|
|
RequiredRunCapabilities []string
|
|
}
|
|
|
|
type RuntimeClientManagerLifecycle struct {
|
|
Actions []string
|
|
StartupTimeoutSeconds int
|
|
StopTimeoutSeconds int
|
|
}
|
|
|
|
type RuntimeClientManagerHealth struct {
|
|
Mode string
|
|
IntervalSeconds int
|
|
DegradedAfterSeconds int
|
|
OfflineAfterSeconds int
|
|
RequiredCapabilities []string
|
|
}
|
|
|
|
type RuntimeClientManagerCompatibility struct {
|
|
MinimumVersion string
|
|
MaximumVersion string
|
|
AllowDowngrade bool
|
|
}
|
|
|
|
type RuntimeClientManagerUpdatePolicy struct {
|
|
Strategy string
|
|
RequireApproval bool
|
|
HealthConfirmationSeconds int
|
|
RetainPrevious bool
|
|
}
|
|
|
|
type ClientManagerInstallation struct {
|
|
ID string
|
|
ServerInstanceID string
|
|
PluginID string
|
|
ProfileKey string
|
|
RunEndpointID string
|
|
TargetOS string
|
|
TargetArch string
|
|
Status ClientManagerLifecycleStatus
|
|
Phase string
|
|
DesiredVersion string
|
|
ActiveVersion string
|
|
PreviousVersion string
|
|
DesiredRevision string
|
|
ActiveRevision string
|
|
PreviousRevision string
|
|
DesiredArtifactID string
|
|
ActiveArtifactID string
|
|
PreviousArtifactID string
|
|
Checksum string
|
|
KeyGeneration int
|
|
DeploymentGeneration int
|
|
CurrentJobID string
|
|
LastSuccessfulJobID string
|
|
LastOperation ClientManagerLifecycleOperation
|
|
Health ClientManagerHealthStatus
|
|
HealthReason string
|
|
LastSeenAt time.Time
|
|
LastHeartbeatSequence uint64
|
|
Retryable bool
|
|
RequiresRedeploy bool
|
|
CreatedAt time.Time
|
|
UpdatedAt time.Time
|
|
InstalledAt time.Time
|
|
UninstalledAt time.Time
|
|
}
|
|
|
|
type ClientManagerSession struct {
|
|
ID string
|
|
InstallationID string
|
|
ServerInstanceID string
|
|
ProfileKey string
|
|
RunEndpointID string
|
|
ArtifactID string
|
|
KeyGeneration int
|
|
DeploymentGeneration int
|
|
TokenHash string
|
|
Capabilities []string
|
|
Status ClientManagerSessionStatus
|
|
LastHeartbeatSequence uint64
|
|
LastSeenAt time.Time
|
|
ExpiresAt time.Time
|
|
CreatedAt time.Time
|
|
UpdatedAt time.Time
|
|
RevokedAt time.Time
|
|
}
|
|
|
|
type ClientManagerRegistrationNonce struct {
|
|
ID string
|
|
InstallationID string
|
|
ExpiresAt time.Time
|
|
CreatedAt time.Time
|
|
}
|
|
|
|
type ClientManagerLifecycleActionAvailability struct {
|
|
Operation ClientManagerLifecycleOperation
|
|
Available bool
|
|
Reason string
|
|
}
|
|
|
|
type ClientManagerLifecycleView struct {
|
|
Installation ClientManagerInstallation
|
|
Distribution ClientManagerDistribution
|
|
Job Job
|
|
Actions []ClientManagerLifecycleActionAvailability
|
|
}
|
|
|
|
type ClientManagerDeployRequest struct {
|
|
ServerInstanceID string
|
|
ProfileKey string
|
|
DistributionID string
|
|
ExpectedDeploymentGeneration int
|
|
IdempotencyKey string
|
|
}
|
|
|
|
type ClientManagerControlRequest struct {
|
|
ServerInstanceID string
|
|
ProfileKey string
|
|
Operation ClientManagerLifecycleOperation
|
|
ExpectedDeploymentGeneration int
|
|
IdempotencyKey string
|
|
}
|
|
|
|
type ClientManagerUpdateRequest struct {
|
|
ServerInstanceID string
|
|
ProfileKey string
|
|
DistributionID string
|
|
ExpectedDeploymentGeneration int
|
|
Approved bool
|
|
IdempotencyKey string
|
|
}
|
|
|
|
type ClientManagerUninstallRequest struct {
|
|
ServerInstanceID string
|
|
ProfileKey string
|
|
ExpectedDeploymentGeneration int
|
|
Confirmed bool
|
|
IdempotencyKey string
|
|
}
|
|
|
|
type ClientManagerRetryRequest struct {
|
|
ServerInstanceID string
|
|
ProfileKey string
|
|
ExpectedDeploymentGeneration int
|
|
IdempotencyKey string
|
|
}
|
|
|
|
type ClientManagerRevokeSessionRequest struct {
|
|
ServerInstanceID string
|
|
ProfileKey string
|
|
Reason string
|
|
}
|
|
|
|
type ClientManagerLifecycleInputRequest struct {
|
|
RunEndpointID string
|
|
SessionToken string
|
|
JobID string
|
|
LeaseToken string
|
|
Attempt int
|
|
}
|
|
|
|
type ClientManagerLifecycleInput struct {
|
|
InstallationID string
|
|
ServerInstanceID string
|
|
ProfileKey string
|
|
Operation ClientManagerLifecycleOperation
|
|
ArtifactID string
|
|
Checksum string
|
|
TargetOS string
|
|
TargetArch string
|
|
Version string
|
|
SourceRevision string
|
|
KeyGeneration int
|
|
DeploymentGeneration int
|
|
ExecutableRef string
|
|
Arguments []string
|
|
AutoStart bool
|
|
StartupTimeoutSeconds int
|
|
StopTimeoutSeconds int
|
|
HealthConfirmationSeconds int
|
|
IdempotencyKey string
|
|
CompanionConfig *ClientManagerCompanionConfigInput
|
|
}
|
|
|
|
type ClientManagerCompanionConfigInput struct {
|
|
SchemaVersion int
|
|
ConfigTemplateKey string
|
|
ConfigTemplateRef string
|
|
ConfigOutputRef string
|
|
ConfigSchemaRef string
|
|
ConfigFormat string
|
|
PlatformBaseURLSource string
|
|
InstallationID string
|
|
ServerInstanceID string
|
|
PluginID string
|
|
ProfileKey string
|
|
ArtifactID string
|
|
Version string
|
|
SourceRevision string
|
|
TargetOS string
|
|
TargetArch string
|
|
KeyGeneration int
|
|
DeploymentGeneration int
|
|
Capabilities []string
|
|
RegistrationProof string
|
|
ProofMaterialSource string
|
|
ProofMaterialEnv string
|
|
SessionMode string
|
|
TLSPolicy string
|
|
HeartbeatIntervalSeconds int
|
|
CommandPollIntervalSeconds int
|
|
RequestTimeoutSeconds int
|
|
}
|
|
|
|
type ClientManagerRegisterRequest struct {
|
|
InstallationID string
|
|
ServerInstanceID string
|
|
ProfileKey string
|
|
ArtifactID string
|
|
Version string
|
|
SourceRevision string
|
|
TargetOS string
|
|
TargetArch string
|
|
KeyGeneration int
|
|
DeploymentGeneration int
|
|
Capabilities []string
|
|
Timestamp time.Time
|
|
Nonce string
|
|
Signature string
|
|
}
|
|
|
|
type ClientManagerRegisterResult struct {
|
|
Accepted bool
|
|
InstallationID string
|
|
SessionToken string
|
|
ExpiresAt time.Time
|
|
HeartbeatEvery int
|
|
ServerTime time.Time
|
|
}
|
|
|
|
type ClientManagerHeartbeat struct {
|
|
InstallationID string
|
|
SessionToken string
|
|
Sequence uint64
|
|
Health ClientManagerHealthStatus
|
|
HealthReason string
|
|
Capabilities []string
|
|
SentAt time.Time
|
|
}
|
|
|
|
type ClientManagerHeartbeatResult struct {
|
|
Accepted bool
|
|
InstallationID string
|
|
Status ClientManagerLifecycleStatus
|
|
Health ClientManagerHealthStatus
|
|
NextHeartbeat int
|
|
SessionExpiresAt time.Time
|
|
ServerTime time.Time
|
|
}
|
|
|
|
type ClientManagerInstallationFilter struct {
|
|
ServerInstanceID string
|
|
ProfileKey string
|
|
RunEndpointID string
|
|
Status ClientManagerLifecycleStatus
|
|
}
|
|
|
|
type ClientManagerSessionFilter struct {
|
|
InstallationID string
|
|
ServerInstanceID string
|
|
ProfileKey string
|
|
Status ClientManagerSessionStatus
|
|
}
|
|
|
|
type ClientManagerNonceFilter struct {
|
|
InstallationID string
|
|
ExpiresBefore time.Time
|
|
}
|
|
|
|
func CopyClientManagerInstallation(value ClientManagerInstallation) ClientManagerInstallation {
|
|
return value
|
|
}
|
|
|
|
func CopyClientManagerSession(value ClientManagerSession) ClientManagerSession {
|
|
value.Capabilities = CopyStringSlice(value.Capabilities)
|
|
return value
|
|
}
|
|
|
|
func CopyClientManagerRegistrationNonce(value ClientManagerRegistrationNonce) ClientManagerRegistrationNonce {
|
|
return value
|
|
}
|
|
|
|
func CopyClientManagerLifecycleView(value ClientManagerLifecycleView) ClientManagerLifecycleView {
|
|
value.Installation = CopyClientManagerInstallation(value.Installation)
|
|
value.Distribution = CopyClientManagerDistribution(value.Distribution)
|
|
value.Job = CopyJob(value.Job)
|
|
value.Actions = append([]ClientManagerLifecycleActionAvailability(nil), value.Actions...)
|
|
return value
|
|
}
|
|
|
|
func CopyClientManagerLifecycleInput(value ClientManagerLifecycleInput) ClientManagerLifecycleInput {
|
|
value.Arguments = CopyStringSlice(value.Arguments)
|
|
if value.CompanionConfig != nil {
|
|
companion := CopyClientManagerCompanionConfigInput(*value.CompanionConfig)
|
|
value.CompanionConfig = &companion
|
|
}
|
|
return value
|
|
}
|
|
|
|
func CopyClientManagerCompanionConfigInput(value ClientManagerCompanionConfigInput) ClientManagerCompanionConfigInput {
|
|
value.Capabilities = CopyStringSlice(value.Capabilities)
|
|
return value
|
|
}
|
|
|
|
func CopyClientManagerRegisterRequest(value ClientManagerRegisterRequest) ClientManagerRegisterRequest {
|
|
value.Capabilities = CopyStringSlice(value.Capabilities)
|
|
return value
|
|
}
|
|
|
|
func CopyClientManagerHeartbeat(value ClientManagerHeartbeat) ClientManagerHeartbeat {
|
|
value.Capabilities = CopyStringSlice(value.Capabilities)
|
|
return value
|
|
}
|