Versions in this module Expand all Collapse all v0 v0.2.0 Aug 2, 2026 Changes in this version + type AuditedInstance struct + InstanceID string + InstanceType string + LaunchedAt time.Time + Name string + Owned bool + Provider string + Region string + type Fake struct + LaunchErr func(offer Offer) error + ListOwnedErr error + OnLaunch func(h WorkerHandle) + OnTerminate func(h WorkerHandle) + QuoteErr error + func NewFake() *Fake + func (f *Fake) AddOwnedInstance(oi OwnedInstance) + func (f *Fake) Launch(_ context.Context, id string, offer Offer, spec WorkerSpec) (WorkerHandle, error) + func (f *Fake) LaunchedCount() int + func (f *Fake) ListOwned(_ context.Context) ([]OwnedInstance, error) + func (f *Fake) LiveCount() int + func (f *Fake) Name() string + func (f *Fake) Quote(_ context.Context, req Requirement) ([]Offer, error) + func (f *Fake) SetClock(now func() time.Time) + func (f *Fake) SetName(name string) + func (f *Fake) SetOffers(model string, offers []Offer) + func (f *Fake) Terminate(_ context.Context, h WorkerHandle) error + type Gate interface + ProvisionAllowed func(ctx context.Context, provider string) (bool, error) + type GatedProvider struct + func (g *GatedProvider) Launch(ctx context.Context, id string, offer Offer, spec WorkerSpec) (WorkerHandle, error) + func (g *GatedProvider) ListOwned(ctx context.Context) ([]OwnedInstance, error) + func (g *GatedProvider) Name() string + func (g *GatedProvider) Quote(ctx context.Context, req Requirement) ([]Offer, error) + func (g *GatedProvider) Terminate(ctx context.Context, h WorkerHandle) error + type InstanceAuditor interface + AuditInstances func(ctx context.Context) ([]AuditedInstance, error) + Name func() string + type Kind string + const KindOnDemand + const KindSpot + type MultiCloudProvider struct + func NewMultiCloudProvider(name string, subs ...Provider) (*MultiCloudProvider, error) + func (m *MultiCloudProvider) AuditInstances(ctx context.Context) ([]AuditedInstance, error) + func (m *MultiCloudProvider) Launch(ctx context.Context, id string, offer Offer, spec WorkerSpec) (WorkerHandle, error) + func (m *MultiCloudProvider) ListOwned(ctx context.Context) ([]OwnedInstance, error) + func (m *MultiCloudProvider) Name() string + func (m *MultiCloudProvider) Providers() []string + func (m *MultiCloudProvider) Quote(ctx context.Context, req Requirement) ([]Offer, error) + func (m *MultiCloudProvider) Terminate(ctx context.Context, h WorkerHandle) error + type MultiRegionProvider struct + func NewMultiRegionProvider(name string, byRegion map[string]Provider) (*MultiRegionProvider, error) + func (m *MultiRegionProvider) AuditInstances(ctx context.Context) ([]AuditedInstance, error) + func (m *MultiRegionProvider) Launch(ctx context.Context, id string, offer Offer, spec WorkerSpec) (WorkerHandle, error) + func (m *MultiRegionProvider) ListOwned(ctx context.Context) ([]OwnedInstance, error) + func (m *MultiRegionProvider) Name() string + func (m *MultiRegionProvider) Quote(ctx context.Context, req Requirement) ([]Offer, error) + func (m *MultiRegionProvider) Regions() []string + func (m *MultiRegionProvider) Terminate(ctx context.Context, h WorkerHandle) error + type Offer struct + Currency string + InstanceType string + Kind Kind + PricePerHour float64 + Provider string + Region string + Zone string + type OwnedInstance struct + InstanceID string + LaunchedAt time.Time + Model string + Provider string + Region string + WorkerID string + type Provider interface + Launch func(ctx context.Context, id string, offer Offer, spec WorkerSpec) (WorkerHandle, error) + ListOwned func(ctx context.Context) ([]OwnedInstance, error) + Name func() string + Quote func(ctx context.Context, req Requirement) ([]Offer, error) + Terminate func(ctx context.Context, h WorkerHandle) error + func NewGatedProvider(cloud string, inner Provider, gate Gate, log *slog.Logger) Provider + type Requirement struct + InstanceTypes []string + Model string + Region string + type WorkerHandle struct + ID string + InstanceID string + LaunchedAt time.Time + Offer Offer + Provider string + Spec WorkerSpec + type WorkerSpec struct + Env map[string]string + Image string + ImageVariant string + InstanceProfile string + Model string + UserData string