~ knotless Search/
↑↓ move↵ open⇧↵ all results
0
0
main
46 lines · 889 B Raw History
package policy

import (
	"context"

	policyv1alpha1 "github.com/johnandersen777/socialweb-computer-kcp/api/policy/v1alpha1"
)

const CapabilityRun = "policy.run"

type Owner struct {
	APIVersion string

	Kind string

	Name string

	UID string
}

type RunRequest struct {
	Name string

	Workflow string

	Owner Owner

	Spec policyv1alpha1.PolicyWorkflowRunSpec
}

type Runner interface {
	Run(ctx context.Context, req RunRequest) (string, error)

	Status(ctx context.Context, runID string) (policyv1alpha1.PolicyWorkflowRunStatus, error)

	Wait(ctx context.Context, runID string) (policyv1alpha1.PolicyWorkflowRunStatus, error)
}

func Terminal(phase policyv1alpha1.PolicyWorkflowRunPhase) bool {
	switch phase {
	case policyv1alpha1.PolicyWorkflowRunSucceeded, policyv1alpha1.PolicyWorkflowRunFailed, policyv1alpha1.PolicyWorkflowRunCancelled:
		return true
	default:
		return false
	}
}