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 }