package domain type ServerLifecycleAction string const ( ServerLifecycleActionCreate ServerLifecycleAction = "create" ServerLifecycleActionStart ServerLifecycleAction = "start" ServerLifecycleActionStop ServerLifecycleAction = "stop" ServerLifecycleActionStatus ServerLifecycleAction = "status" ) const ( LifecycleCapabilityInstall = "process.install" LifecycleCapabilityStart = "process.start" LifecycleCapabilityStop = "process.stop" LifecycleCapabilityStatus = "process.status" ) type ServerLifecycleCreate struct { ID string PluginID string RunEndpointID string Name string OwnerUserID string IdempotencyKey string ProfileKey string Bindings map[string]string Deployment ServerDeploymentDefinition } 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 case ServerLifecycleActionStatus: return LifecycleCapabilityStatus default: return "" } } func CopyServerLifecycleCreate(create ServerLifecycleCreate) ServerLifecycleCreate { create.Bindings = CopyStringMap(create.Bindings) create.Deployment = CopyServerDeploymentDefinition(create.Deployment) 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 }