package domain type ServerLifecycleAction string const ( ServerLifecycleActionCreate ServerLifecycleAction = "create" ServerLifecycleActionStart ServerLifecycleAction = "start" ServerLifecycleActionStop ServerLifecycleAction = "stop" ) const ( LifecycleCapabilityInstall = "process.install" LifecycleCapabilityStart = "process.start" LifecycleCapabilityStop = "process.stop" ) type ServerLifecycleCreate struct { ID string PluginID string RunEndpointID string Name string OwnerUserID string IdempotencyKey string } type ServerLifecycleCommand struct { ServerInstanceID string ExpectedConfigVersion int IdempotencyKey string } type ServerLifecycleResult struct { Accepted bool Action ServerLifecycleAction Instance ServerInstance Job Job } func LifecycleCapabilityForAction(action ServerLifecycleAction) string { switch action { case ServerLifecycleActionCreate: return LifecycleCapabilityInstall case ServerLifecycleActionStart: return LifecycleCapabilityStart case ServerLifecycleActionStop: return LifecycleCapabilityStop default: return "" } } func CopyServerLifecycleCreate(create ServerLifecycleCreate) ServerLifecycleCreate { return create } func CopyServerLifecycleCommand(command ServerLifecycleCommand) ServerLifecycleCommand { return command } func CopyServerLifecycleResult(result ServerLifecycleResult) ServerLifecycleResult { result.Instance = CopyServerInstance(result.Instance) result.Job = CopyJob(result.Job) return result }