Help us shape the future of Go! Take the 2026 Go Developer Survey

requirements

package
v0.87.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Oct 20, 2026 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

View Source
const (
	KindObservability Kind = "observability"
	KindWebAPI        Kind = "web_api"
	KindMessageBroker Kind = "message_broker"
	KindDatabase      Kind = "database"
	KindCache         Kind = "cache"
	KindStorage       Kind = "storage"

	RuntimeKubernetes              Runtime              = "kubernetes"
	RuntimeECS                     Runtime              = "ecs"
	RuntimeCloudRun                Runtime              = "cloud_run"
	RuntimeAzureContainerApps      Runtime              = "azure_container_apps"
	RuntimeDigitalOceanAppPlatform Runtime              = "digitalocean_app_platform"
	TelemetrySignalTraces          TelemetrySignal      = "traces"
	TelemetrySignalMetrics         TelemetrySignal      = "metrics"
	TelemetrySignalLogs            TelemetrySignal      = "logs"
	ObservabilityBackendOTel       ObservabilityBackend = "otel"
	ObservabilityBackendDatadog    ObservabilityBackend = "datadog"
	ObservabilityBackendPrometheus ObservabilityBackend = "prometheus"
	ObservabilityBackendLoki       ObservabilityBackend = "loki"
	ObservabilityBackendGrafana    ObservabilityBackend = "grafana"
	DeploymentModeSidecar          DeploymentMode       = "sidecar"
	DeploymentModeDaemonSet        DeploymentMode       = "daemonset"
	DeploymentModeSiblingService   DeploymentMode       = "sibling_service"
	DeploymentModeManaged          DeploymentMode       = "managed"
)

Variables

This section is empty.

Functions

func RequirementContextFromConfig

func RequirementContextFromConfig(cfg *config.WorkflowConfig, environment string) *pb.RequirementContext

Types

type DeploymentMode

type DeploymentMode string

type ExternalDiscoveryProvider

type ExternalDiscoveryProvider struct {
	Client           pb.IaCRequirementDiscoveryClient
	Context          *pb.RequirementContext
	ModuleConfigJSON []byte
}

func (ExternalDiscoveryProvider) IaCRequirements

func (p ExternalDiscoveryProvider) IaCRequirements(ctx context.Context, input Input) ([]Requirement, error)

type Input

type Input struct {
	Config      *config.WorkflowConfig
	Manifests   map[string]*config.PluginManifestFile
	Providers   []Provider
	Environment string
}

type Kind

type Kind string

type ObservabilityBackend

type ObservabilityBackend string

type Provider

type Provider interface {
	IaCRequirements(context.Context, Input) ([]Requirement, error)
}

type ProviderFunc

type ProviderFunc func(context.Context, Input) ([]Requirement, error)

func (ProviderFunc) IaCRequirements

func (f ProviderFunc) IaCRequirements(ctx context.Context, input Input) ([]Requirement, error)

type Requirement

type Requirement struct {
	Key                   string
	Kind                  Kind
	Source                string
	ResourceTypeHint      string
	Environment           string
	Runtimes              []Runtime
	TelemetrySignals      []TelemetrySignal
	ObservabilityBackends []ObservabilityBackend
	DeploymentModes       []DeploymentMode
	VendorFeatures        []string
	ParametersJSON        []byte
}

Requirement is Workflow's provider-neutral IaC requirement model. It mirrors the strict protobuf contract while staying pleasant to author in Go tests and plugin manifest adapters.

func Discover

func Discover(ctx context.Context, input Input) ([]Requirement, error)

func DiscoverManifestRequirements

func DiscoverManifestRequirements(cfg *config.WorkflowConfig, manifests map[string]*config.PluginManifestFile) ([]Requirement, error)

func FromManifestRequirement

func FromManifestRequirement(raw config.ModuleInfraRequirementV2) (Requirement, error)

func FromProto

func FromProto(in *pb.IaCRequirement) (Requirement, error)

func (Requirement) ToProto

func (r Requirement) ToProto() (*pb.IaCRequirement, error)

func (Requirement) Validate

func (r Requirement) Validate() error

type Runtime

type Runtime string

type TelemetrySignal

type TelemetrySignal string

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL