compute

package
v0.26.0 Latest Latest
Warning

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

Go to latest
Published: Jun 19, 2026 License: Apache-2.0 Imports: 22 Imported by: 0

Documentation

Index

Constants

View Source
const (
	ImageSourceDisk     = "disk"
	ImageSourceSnapshot = "snapshot"
	ImageSourceImage    = "image"
)
View Source
const (
	NetworkTierPremium  = "PREMIUM"
	NetworkTierStandard = "STANDARD"
)
View Source
const (
	BootDiskSourcePublicImage  = "publicImage"
	BootDiskSourceCustomImage  = "customImage"
	BootDiskSourceSnapshot     = "snapshot"
	BootDiskSourceExistingDisk = "existingDisk"
)
View Source
const (
	AdditionalDiskModeNew      = "newDisk"
	AdditionalDiskModeExisting = "existingDisk"
)
View Source
const (
	DefaultDiskType   = "pd-balanced"
	DefaultDiskSizeGb = 10
)
View Source
const (
	ConfidentialInstanceTypeSEV    = "SEV"     // AMD Secure Encrypted Virtualization
	ConfidentialInstanceTypeSEVSNP = "SEV_SNP" // AMD SEV - Secure Nested Paging
	ConfidentialInstanceTypeTDX    = "TDX"     // Intel Trust Domain eXtension
)
View Source
const (
	NICTypeGVNIC     = "GVNIC"
	NICTypeVirtioNet = "VIRTIO_NET"
)
View Source
const (
	StackTypeIPv4Only  = "IPV4_ONLY"
	StackTypeDualStack = "IPV4_IPV6"
)
View Source
const (
	ExternalIPNone      = "none"
	ExternalIPEphemeral = "ephemeral"
	ExternalIPStatic    = "static"
)
View Source
const (
	InternalIPEphemeral = "ephemeral"
	InternalIPStatic    = "static"
)
View Source
const (
	OnHostMaintenanceMigrate   = "MIGRATE"
	OnHostMaintenanceTerminate = "TERMINATE"
)
View Source
const (
	NodeAffinityOperatorIn    = "IN"
	NodeAffinityOperatorNotIn = "NOT_IN"
)
View Source
const (
	ImageStateActive     = "ACTIVE"
	ImageStateDeprecated = "DEPRECATED"
	ImageStateObsolete   = "OBSOLETE"
	ImageStateDeleted    = "DELETED"
)

Image deprecation states accepted by the Compute Engine images.deprecate API.

View Source
const (
	ResourceTypeRegion        = "region"
	ResourceTypeZone          = "zone"
	ResourceTypeMachineFamily = "machineFamily"
	ResourceTypeMachineType   = "machineType"
	// ResourceTypeInstanceMachineType lists machine types in the zone of a
	// selected instance (value is the instance path zones/<zone>/instances/<name>),
	// so the new-type picker can derive the zone without a separate zone field.
	ResourceTypeInstanceMachineType = "instanceMachineType"
)
View Source
const (
	ResourceTypePublicImages         = "publicImages"
	ResourceTypeCustomImages         = "customImages"
	ResourceTypeSnapshots            = "snapshots"
	ResourceTypeDisks                = "disks"
	ResourceTypeDiskTypes            = "diskTypes"
	ResourceTypeSnapshotSchedules    = "snapshotSchedules"
	ResourceTypeImageStorageLocation = "imageStorageLocation"
)
View Source
const (
	ResourceTypeNetwork    = "network"
	ResourceTypeSubnetwork = "subnetwork"
	ResourceTypeAddress    = "address"
	ResourceTypeFirewall   = "firewall"
)
View Source
const (
	// ResourceTypeInstanceGroup lists zonal instance groups (the VM backends a
	// regional passthrough Network Load Balancer forwards traffic to).
	ResourceTypeInstanceGroup = "instanceGroup"
	// ResourceTypeForwardingRule lists regional external forwarding rules — the
	// "anchor" that identifies a load balancer for Delete.
	ResourceTypeForwardingRule = "forwardingRule"
)

Resource types for the load balancer pickers.

View Source
const (
	EmittedEventType = "gcp.compute.vmInstance"

	// SinkFilter is the Cloud Logging advanced log filter for VM instance
	// creation audit events. Used when creating the per-trigger logging sink.
	SinkFilter = `` /* 222-byte string literal not displayed */
)
View Source
const AddressTypeExternal = "EXTERNAL"
View Source
const ImageStateNoChange = "NO_CHANGE"

ImageStateNoChange is the sentinel used by the Update Image deprecation-state select to mean "leave the current deprecation state untouched". A select option must not use an empty string value (the frontend's Radix-based select throws on empty item values), so this explicit sentinel is used instead.

View Source
const ResourceTypeInstance = "instance"
View Source
const ResourceTypeStaticIP = "staticIP"

ResourceTypeStaticIP lists regional EXTERNAL reserved IP addresses (static IPs). Unlike ResourceTypeAddress, which the Create VM component uses and keys by the IP literal, this type keys each option by its selfLink so the Delete and Manage components can derive the region and address name without a separate lookup.

Variables

This section is empty.

Functions

func ApplyAdvancedScheduling

func ApplyAdvancedScheduling(s *compute.Scheduling, config AdvancedConfig)

func BuildAdditionalDisks

func BuildAdditionalDisks(project, zone string, disks []AdditionalDisk) []*compute.AttachedDisk

func BuildBootDisk

func BuildBootDisk(project, zone string, config BootDiskConfig) *compute.AttachedDisk

func BuildConfidentialInstanceConfig

func BuildConfidentialInstanceConfig(config SecurityConfig) *compute.ConfidentialInstanceConfig

func BuildGuestAccelerators

func BuildGuestAccelerators(config AdvancedConfig) []*compute.AcceleratorConfig

func BuildInstanceFromConfig

func BuildInstanceFromConfig(project, zone, region string, config CreateVMConfig) (*compute.Instance, error)

func BuildInstanceMetadata

func BuildInstanceMetadata(config ManagementConfig) *compute.Metadata

func BuildInstanceResourcePolicies

func BuildInstanceResourcePolicies(config AdvancedConfig) []string

func BuildInstanceTags

func BuildInstanceTags(networkTags string, firewallTags []string) []string

func BuildLabels

func BuildLabels(config AdvancedConfig) map[string]string

func BuildLocalSSDDisks

func BuildLocalSSDDisks(project, zone string, count int) []*compute.AttachedDisk

func BuildNetworkInterfaces

func BuildNetworkInterfaces(project, region string, config NetworkingConfig) []*compute.NetworkInterface

func BuildNodeAffinities

func BuildNodeAffinities(config AdvancedConfig) []*compute.SchedulingNodeAffinity

func BuildScheduling

func BuildScheduling(config ManagementConfig) *compute.Scheduling

func BuildShieldedInstanceConfig

func BuildShieldedInstanceConfig(config SecurityConfig) *compute.ShieldedInstanceConfig

func CreateFirewallRule

func CreateFirewallRule(ctx context.Context, c Client, project, network string, rule CreateFirewallRuleEntry) error

CreateFirewallRule creates a single firewall rule in the project. If the rule already exists (409), it is treated as success.

func CreateVMAndWait

func CreateVMAndWait(ctx context.Context, client Client, config CreateVMConfig) (map[string]any, error)

func DeriveFamily

func DeriveFamily(machineType string) string

func EnsureFirewallRules

func EnsureFirewallRules(ctx context.Context, c Client, project, network string, rules []CreateFirewallRuleEntry) ([]string, error)

EnsureFirewallRules creates each rule and returns the list of target tags to apply to the instance.

func FormatMachineTypeSummary

func FormatMachineTypeSummary(mt *MachineType) string

func GetAddress added in v0.25.0

func GetAddress(ctx context.Context, client Client, project, region, name string) ([]byte, error)

GetAddress reads a single regional address resource.

func GetImage added in v0.25.0

func GetImage(ctx context.Context, client Client, project, name string) ([]byte, error)

GetImage reads a global image by name.

func GetInstance

func GetInstance(ctx context.Context, client Client, project, zone, name string) ([]byte, error)

func ImagePayloadFromGetResponse added in v0.25.0

func ImagePayloadFromGetResponse(body []byte) (map[string]any, error)

ImagePayloadFromGetResponse converts an images.get response body into the flat payload emitted by the image components.

func InsertInstance

func InsertInstance(ctx context.Context, client Client, project, zone string, instance *compute.Instance) ([]byte, error)

func InstancePayloadFromGetResponse

func InstancePayloadFromGetResponse(body []byte, zone string) (map[string]any, error)

func ListAddressResources

func ListAddressResources(ctx context.Context, c Client, project, region string) ([]core.IntegrationResource, error)

func ListCustomImageResources

func ListCustomImageResources(ctx context.Context, c Client, project string) ([]core.IntegrationResource, error)

func ListDiskResources

func ListDiskResources(ctx context.Context, c Client, project, zone string) ([]core.IntegrationResource, error)

func ListDiskTypeResources

func ListDiskTypeResources(ctx context.Context, c Client, project, zone string, bootDiskOnly bool) ([]core.IntegrationResource, error)

func ListFirewallResources

func ListFirewallResources(ctx context.Context, c Client, project string) ([]core.IntegrationResource, error)

func ListForwardingRuleResources added in v0.26.0

func ListForwardingRuleResources(ctx context.Context, c Client, project string) ([]core.IntegrationResource, error)

ListForwardingRuleResources lists regional EXTERNAL forwarding rules across all regions, keyed by selfLink. These are the entry points of passthrough Network Load Balancers, so the Delete component targets one of them.

func ListImageStorageLocationResources added in v0.25.0

func ListImageStorageLocationResources(ctx context.Context, c Client) ([]core.IntegrationResource, error)

ListImageStorageLocationResources lists the Cloud Storage locations an image can be stored in: the multi-regions (us, eu, asia) followed by every region in the project. The value used by the images API is the bare location name.

func ListInstanceGroupResources added in v0.26.0

func ListInstanceGroupResources(ctx context.Context, c Client, project string) ([]core.IntegrationResource, error)

ListInstanceGroupResources lists every instance group in the project across all zones, keyed by selfLink so the backend service can reference it directly.

func ListInstanceResources added in v0.22.0

func ListInstanceResources(ctx context.Context, c Client, project string) ([]core.IntegrationResource, error)

func ListMachineFamilyResources

func ListMachineFamilyResources(ctx context.Context, c Client, zone string) ([]core.IntegrationResource, error)

func ListMachineTypeResources

func ListMachineTypeResources(ctx context.Context, c Client, zone, machineFamily string) ([]core.IntegrationResource, error)

func ListMachineTypeResourcesForInstance added in v0.24.0

func ListMachineTypeResourcesForInstance(ctx context.Context, c Client, instanceValue string) ([]core.IntegrationResource, error)

ListMachineTypeResourcesForInstance lists every machine type available in the zone of the given instance. instanceValue is the instance path (zones/<zone>/instances/<name>) or a selfLink, from which the zone is parsed.

func ListNetworkResources

func ListNetworkResources(ctx context.Context, c Client, project string) ([]core.IntegrationResource, error)

func ListPublicImageResources

func ListPublicImageResources(ctx context.Context, c Client, project string) ([]core.IntegrationResource, error)

func ListRegionResources

func ListRegionResources(ctx context.Context, c Client) ([]core.IntegrationResource, error)

func ListSnapshotResources

func ListSnapshotResources(ctx context.Context, c Client, project string) ([]core.IntegrationResource, error)

func ListSnapshotScheduleResources

func ListSnapshotScheduleResources(ctx context.Context, c Client, project, region string) ([]core.IntegrationResource, error)

func ListStaticIPResources added in v0.25.0

func ListStaticIPResources(ctx context.Context, c Client, project, instance string) ([]core.IntegrationResource, error)

ListStaticIPResources lists every EXTERNAL reserved IP in the project across all regions using the aggregatedList endpoint, keyed by selfLink so callers can derive the region and name. Aggregating across regions lets the dropdown behave like the VM Instance picker — no region selector required. Internal addresses are skipped because static IPs attached to VMs are always external.

func ListSubnetworkResources

func ListSubnetworkResources(ctx context.Context, c Client, project, region string) ([]core.IntegrationResource, error)

func ListZoneResources

func ListZoneResources(ctx context.Context, c Client, region string) ([]core.IntegrationResource, error)

func NormalizeOAuthScopes

func NormalizeOAuthScopes(scopes []string) []string

func ParseNetworkTags

func ParseNetworkTags(s string) []string

func ResolveInternalIPAddress

func ResolveInternalIPAddress(ctx context.Context, c Client, project, region, value string) (string, error)

ResolveInternalIPAddress returns a literal IP for use as networkIP. If value is a literal IP (no slash), it is returned as-is. If value is a full URL or resource path to a reserved address, it is fetched and the address field (literal IP) is returned. Compute Engine networkInterfaces.networkIP accepts only literal IPs.

func SetClientFactory

func SetClientFactory(fn func(ctx core.ExecutionContext) (Client, error))

func WaitForGlobalOperation added in v0.25.0

func WaitForGlobalOperation(ctx context.Context, client Client, project, operationName string) error

WaitForGlobalOperation polls a global (project-scoped) operation until it is DONE, mirroring WaitForZoneOperation for global resources like images.

func WaitForRegionOperation added in v0.25.0

func WaitForRegionOperation(ctx context.Context, client Client, project, region, operationName string) error

WaitForRegionOperation polls a regional operation until it reaches DONE, mirroring WaitForZoneOperation for regional resources such as addresses.

func WaitForZoneOperation

func WaitForZoneOperation(ctx context.Context, client Client, project, zone, operationName string) error

Types

type AdditionalDisk

type AdditionalDisk struct {
	Name       string
	SizeGb     int64
	DiskType   string
	SourceDisk string
	AutoDelete bool
}

type AdditionalDiskEntry

type AdditionalDiskEntry struct {
	Mode         string `mapstructure:"mode"`
	Name         string `mapstructure:"name"`
	SizeGb       int64  `mapstructure:"sizeGb"`
	DiskType     string `mapstructure:"diskType"`
	ExistingDisk string `mapstructure:"existingDisk"`
	AutoDelete   bool   `mapstructure:"autoDelete"`
}

type Address

type Address struct {
	Name        string `json:"name"`
	Address     string `json:"address"`
	Region      string `json:"region"`
	SelfLink    string `json:"selfLink"`
	Status      string `json:"status"`
	AddressType string `json:"addressType"`
}

func ListAddresses

func ListAddresses(ctx context.Context, c Client, project, region string) ([]Address, error)

type AdvancedConfig

type AdvancedConfig struct {
	GuestAccelerators      []GuestAcceleratorEntry `mapstructure:"guestAccelerators"`
	NodeAffinities         []NodeAffinityEntry     `mapstructure:"nodeAffinities"`
	ResourcePolicies       []string                `mapstructure:"resourcePolicies"`
	MinNodeCpus            int64                   `mapstructure:"minNodeCpus"`
	Labels                 []LabelEntry            `mapstructure:"labels"`
	EnableDisplayDevice    bool                    `mapstructure:"enableDisplayDevice"`
	EnableSerialPortAccess bool                    `mapstructure:"enableSerialPortAccess"`
}

type BootDiskConfig

type BootDiskConfig struct {
	Name              string
	DiskType          string
	SizeGb            int64
	SourceImage       string
	SourceSnapshot    string
	SourceDisk        string
	SnapshotSchedule  string
	AutoDelete        bool
	DiskEncryptionKey string
}

type Client

type Client interface {
	Get(ctx context.Context, path string) ([]byte, error)
	Post(ctx context.Context, path string, body any) ([]byte, error)
	Delete(ctx context.Context, path string) ([]byte, error)
	GetURL(ctx context.Context, fullURL string) ([]byte, error)
	ProjectID() string
}

type CreateFirewallRuleEntry

type CreateFirewallRuleEntry struct {
	Name         string `mapstructure:"name"`
	Allowed      string `mapstructure:"allowed"`
	SourceRanges string `mapstructure:"sourceRanges"`
	TargetTag    string `mapstructure:"targetTag"`
}

type CreateImage added in v0.25.0

type CreateImage struct{}

func (*CreateImage) Cancel added in v0.25.0

func (c *CreateImage) Cancel(ctx core.ExecutionContext) error

func (*CreateImage) Cleanup added in v0.25.0

func (c *CreateImage) Cleanup(ctx core.SetupContext) error

func (*CreateImage) Color added in v0.25.0

func (c *CreateImage) Color() string

func (*CreateImage) Configuration added in v0.25.0

func (c *CreateImage) Configuration() []configuration.Field

func (*CreateImage) Description added in v0.25.0

func (c *CreateImage) Description() string

func (*CreateImage) Documentation added in v0.25.0

func (c *CreateImage) Documentation() string

func (*CreateImage) ExampleOutput added in v0.25.0

func (c *CreateImage) ExampleOutput() map[string]any

func (*CreateImage) Execute added in v0.25.0

func (c *CreateImage) Execute(ctx core.ExecutionContext) error

func (*CreateImage) HandleHook added in v0.25.0

func (c *CreateImage) HandleHook(ctx core.ActionHookContext) error

func (*CreateImage) HandleWebhook added in v0.25.0

func (*CreateImage) Hooks added in v0.25.0

func (c *CreateImage) Hooks() []core.Hook

func (*CreateImage) Icon added in v0.25.0

func (c *CreateImage) Icon() string

func (*CreateImage) Label added in v0.25.0

func (c *CreateImage) Label() string

func (*CreateImage) Name added in v0.25.0

func (c *CreateImage) Name() string

func (*CreateImage) OutputChannels added in v0.25.0

func (c *CreateImage) OutputChannels(configuration any) []core.OutputChannel

func (*CreateImage) ProcessQueueItem added in v0.25.0

func (c *CreateImage) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*CreateImage) Setup added in v0.25.0

func (c *CreateImage) Setup(ctx core.SetupContext) error

type CreateImageSpec added in v0.25.0

type CreateImageSpec struct {
	Name             string       `mapstructure:"name"`
	SourceType       string       `mapstructure:"sourceType"`
	Region           string       `mapstructure:"region"`
	Zone             string       `mapstructure:"zone"`
	SourceDisk       string       `mapstructure:"sourceDisk"`
	SourceSnapshot   string       `mapstructure:"sourceSnapshot"`
	SourceImage      string       `mapstructure:"sourceImage"`
	Family           string       `mapstructure:"family"`
	Description      string       `mapstructure:"description"`
	StorageLocations string       `mapstructure:"storageLocations"`
	ForceCreate      bool         `mapstructure:"forceCreate"`
	Labels           []LabelEntry `mapstructure:"labels"`
}

type CreateLoadBalancer added in v0.26.0

type CreateLoadBalancer struct{}

func (*CreateLoadBalancer) Cancel added in v0.26.0

func (*CreateLoadBalancer) Cleanup added in v0.26.0

func (c *CreateLoadBalancer) Cleanup(ctx core.SetupContext) error

func (*CreateLoadBalancer) Color added in v0.26.0

func (c *CreateLoadBalancer) Color() string

func (*CreateLoadBalancer) Configuration added in v0.26.0

func (c *CreateLoadBalancer) Configuration() []configuration.Field

func (*CreateLoadBalancer) Description added in v0.26.0

func (c *CreateLoadBalancer) Description() string

func (*CreateLoadBalancer) Documentation added in v0.26.0

func (c *CreateLoadBalancer) Documentation() string

func (*CreateLoadBalancer) ExampleOutput added in v0.26.0

func (c *CreateLoadBalancer) ExampleOutput() map[string]any

func (*CreateLoadBalancer) Execute added in v0.26.0

func (*CreateLoadBalancer) HandleHook added in v0.26.0

func (c *CreateLoadBalancer) HandleHook(ctx core.ActionHookContext) error

func (*CreateLoadBalancer) HandleWebhook added in v0.26.0

func (*CreateLoadBalancer) Hooks added in v0.26.0

func (c *CreateLoadBalancer) Hooks() []core.Hook

func (*CreateLoadBalancer) Icon added in v0.26.0

func (c *CreateLoadBalancer) Icon() string

func (*CreateLoadBalancer) Label added in v0.26.0

func (c *CreateLoadBalancer) Label() string

func (*CreateLoadBalancer) Name added in v0.26.0

func (c *CreateLoadBalancer) Name() string

func (*CreateLoadBalancer) OutputChannels added in v0.26.0

func (c *CreateLoadBalancer) OutputChannels(configuration any) []core.OutputChannel

func (*CreateLoadBalancer) ProcessQueueItem added in v0.26.0

func (c *CreateLoadBalancer) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*CreateLoadBalancer) Setup added in v0.26.0

func (c *CreateLoadBalancer) Setup(ctx core.SetupContext) error

type CreateLoadBalancerSpec added in v0.26.0

type CreateLoadBalancerSpec struct {
	Name                string   `mapstructure:"name"`
	Region              string   `mapstructure:"region"`
	Protocol            string   `mapstructure:"protocol"`
	Ports               []string `mapstructure:"ports"`
	InstanceGroup       string   `mapstructure:"instanceGroup"`
	HealthCheckProtocol string   `mapstructure:"healthCheckProtocol"`
	HealthCheckPort     int      `mapstructure:"healthCheckPort"`
	IPAddress           string   `mapstructure:"ipAddress"`
}

type CreateStaticIP added in v0.25.0

type CreateStaticIP struct{}

func (*CreateStaticIP) Cancel added in v0.25.0

func (c *CreateStaticIP) Cancel(ctx core.ExecutionContext) error

func (*CreateStaticIP) Cleanup added in v0.25.0

func (c *CreateStaticIP) Cleanup(ctx core.SetupContext) error

func (*CreateStaticIP) Color added in v0.25.0

func (c *CreateStaticIP) Color() string

func (*CreateStaticIP) Configuration added in v0.25.0

func (c *CreateStaticIP) Configuration() []configuration.Field

func (*CreateStaticIP) Description added in v0.25.0

func (c *CreateStaticIP) Description() string

func (*CreateStaticIP) Documentation added in v0.25.0

func (c *CreateStaticIP) Documentation() string

func (*CreateStaticIP) ExampleOutput added in v0.25.0

func (c *CreateStaticIP) ExampleOutput() map[string]any

func (*CreateStaticIP) Execute added in v0.25.0

func (c *CreateStaticIP) Execute(ctx core.ExecutionContext) error

func (*CreateStaticIP) HandleHook added in v0.25.0

func (c *CreateStaticIP) HandleHook(ctx core.ActionHookContext) error

func (*CreateStaticIP) HandleWebhook added in v0.25.0

func (*CreateStaticIP) Hooks added in v0.25.0

func (c *CreateStaticIP) Hooks() []core.Hook

func (*CreateStaticIP) Icon added in v0.25.0

func (c *CreateStaticIP) Icon() string

func (*CreateStaticIP) Label added in v0.25.0

func (c *CreateStaticIP) Label() string

func (*CreateStaticIP) Name added in v0.25.0

func (c *CreateStaticIP) Name() string

func (*CreateStaticIP) OutputChannels added in v0.25.0

func (c *CreateStaticIP) OutputChannels(configuration any) []core.OutputChannel

func (*CreateStaticIP) ProcessQueueItem added in v0.25.0

func (c *CreateStaticIP) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*CreateStaticIP) Setup added in v0.25.0

func (c *CreateStaticIP) Setup(ctx core.SetupContext) error

type CreateStaticIPSpec added in v0.25.0

type CreateStaticIPSpec struct {
	Name        string `mapstructure:"name"`
	Region      string `mapstructure:"region"`
	NetworkTier string `mapstructure:"networkTier"`
	Description string `mapstructure:"description"`
}

type CreateVM

type CreateVM struct{}

func (*CreateVM) Cancel

func (c *CreateVM) Cancel(ctx core.ExecutionContext) error

func (*CreateVM) Cleanup

func (c *CreateVM) Cleanup(ctx core.SetupContext) error

func (*CreateVM) Color

func (c *CreateVM) Color() string

func (*CreateVM) Configuration

func (c *CreateVM) Configuration() []configuration.Field

func (*CreateVM) Description

func (c *CreateVM) Description() string

func (*CreateVM) Documentation

func (c *CreateVM) Documentation() string

func (*CreateVM) ExampleOutput

func (c *CreateVM) ExampleOutput() map[string]any

func (*CreateVM) Execute

func (c *CreateVM) Execute(ctx core.ExecutionContext) error

func (*CreateVM) HandleHook added in v0.18.0

func (c *CreateVM) HandleHook(ctx core.ActionHookContext) error

func (*CreateVM) HandleWebhook

func (*CreateVM) Hooks added in v0.18.0

func (c *CreateVM) Hooks() []core.Hook

func (*CreateVM) Icon

func (c *CreateVM) Icon() string

func (*CreateVM) Label

func (c *CreateVM) Label() string

func (*CreateVM) Name

func (c *CreateVM) Name() string

func (*CreateVM) OutputChannels

func (c *CreateVM) OutputChannels(configuration any) []core.OutputChannel

func (*CreateVM) ProcessQueueItem

func (c *CreateVM) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*CreateVM) Setup

func (c *CreateVM) Setup(ctx core.SetupContext) error

type CreateVMConfig

type CreateVMConfig struct {
	InstanceName           string                  `mapstructure:"instanceName"`
	Region                 string                  `mapstructure:"region"`
	Zone                   string                  `mapstructure:"zone"`
	MachineFamily          string                  `mapstructure:"machineFamily"`
	MachineType            string                  `mapstructure:"machineType"`
	ProvisioningModel      string                  `mapstructure:"provisioningModel"`
	AutomaticRestart       *bool                   `mapstructure:"automaticRestart"`
	OnHostMaintenance      string                  `mapstructure:"onHostMaintenance"`
	MetadataItems          []MetadataKeyValue      `mapstructure:"metadataItems"`
	StartupScript          string                  `mapstructure:"startupScript"`
	ShutdownScript         string                  `mapstructure:"shutdownScript"`
	MaintenancePolicy      string                  `mapstructure:"maintenancePolicy"`
	Labels                 []LabelEntry            `mapstructure:"labels"`
	GuestAccelerators      []GuestAcceleratorEntry `mapstructure:"guestAccelerators"`
	MinNodeCpus            int64                   `mapstructure:"minNodeCpus"`
	NodeAffinities         []NodeAffinityEntry     `mapstructure:"nodeAffinities"`
	ResourcePolicies       []string                `mapstructure:"resourcePolicies"`
	EnableDisplayDevice    bool                    `mapstructure:"enableDisplayDevice"`
	EnableSerialPortAccess bool                    `mapstructure:"enableSerialPortAccess"`
	SecurityConfig         `mapstructure:",squash"`
	IdentityConfig         `mapstructure:",squash"`
	NetworkingConfig       `mapstructure:",squash"`
	OSAndStorageConfig     `mapstructure:",squash"`
}

type DeleteImage added in v0.25.0

type DeleteImage struct{}

func (*DeleteImage) Cancel added in v0.25.0

func (d *DeleteImage) Cancel(ctx core.ExecutionContext) error

func (*DeleteImage) Cleanup added in v0.25.0

func (d *DeleteImage) Cleanup(ctx core.SetupContext) error

func (*DeleteImage) Color added in v0.25.0

func (d *DeleteImage) Color() string

func (*DeleteImage) Configuration added in v0.25.0

func (d *DeleteImage) Configuration() []configuration.Field

func (*DeleteImage) Description added in v0.25.0

func (d *DeleteImage) Description() string

func (*DeleteImage) Documentation added in v0.25.0

func (d *DeleteImage) Documentation() string

func (*DeleteImage) ExampleOutput added in v0.25.0

func (d *DeleteImage) ExampleOutput() map[string]any

func (*DeleteImage) Execute added in v0.25.0

func (d *DeleteImage) Execute(ctx core.ExecutionContext) error

func (*DeleteImage) HandleHook added in v0.25.0

func (d *DeleteImage) HandleHook(ctx core.ActionHookContext) error

func (*DeleteImage) HandleWebhook added in v0.25.0

func (*DeleteImage) Hooks added in v0.25.0

func (d *DeleteImage) Hooks() []core.Hook

func (*DeleteImage) Icon added in v0.25.0

func (d *DeleteImage) Icon() string

func (*DeleteImage) Label added in v0.25.0

func (d *DeleteImage) Label() string

func (*DeleteImage) Name added in v0.25.0

func (d *DeleteImage) Name() string

func (*DeleteImage) OutputChannels added in v0.25.0

func (d *DeleteImage) OutputChannels(configuration any) []core.OutputChannel

func (*DeleteImage) ProcessQueueItem added in v0.25.0

func (d *DeleteImage) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*DeleteImage) Setup added in v0.25.0

func (d *DeleteImage) Setup(ctx core.SetupContext) error

type DeleteImageSpec added in v0.25.0

type DeleteImageSpec struct {
	Image string `mapstructure:"image"`
}

type DeleteLoadBalancer added in v0.26.0

type DeleteLoadBalancer struct{}

func (*DeleteLoadBalancer) Cancel added in v0.26.0

func (*DeleteLoadBalancer) Cleanup added in v0.26.0

func (d *DeleteLoadBalancer) Cleanup(ctx core.SetupContext) error

func (*DeleteLoadBalancer) Color added in v0.26.0

func (d *DeleteLoadBalancer) Color() string

func (*DeleteLoadBalancer) Configuration added in v0.26.0

func (d *DeleteLoadBalancer) Configuration() []configuration.Field

func (*DeleteLoadBalancer) Description added in v0.26.0

func (d *DeleteLoadBalancer) Description() string

func (*DeleteLoadBalancer) Documentation added in v0.26.0

func (d *DeleteLoadBalancer) Documentation() string

func (*DeleteLoadBalancer) ExampleOutput added in v0.26.0

func (d *DeleteLoadBalancer) ExampleOutput() map[string]any

func (*DeleteLoadBalancer) Execute added in v0.26.0

func (*DeleteLoadBalancer) HandleHook added in v0.26.0

func (d *DeleteLoadBalancer) HandleHook(ctx core.ActionHookContext) error

func (*DeleteLoadBalancer) HandleWebhook added in v0.26.0

func (*DeleteLoadBalancer) Hooks added in v0.26.0

func (d *DeleteLoadBalancer) Hooks() []core.Hook

func (*DeleteLoadBalancer) Icon added in v0.26.0

func (d *DeleteLoadBalancer) Icon() string

func (*DeleteLoadBalancer) Label added in v0.26.0

func (d *DeleteLoadBalancer) Label() string

func (*DeleteLoadBalancer) Name added in v0.26.0

func (d *DeleteLoadBalancer) Name() string

func (*DeleteLoadBalancer) OutputChannels added in v0.26.0

func (d *DeleteLoadBalancer) OutputChannels(configuration any) []core.OutputChannel

func (*DeleteLoadBalancer) ProcessQueueItem added in v0.26.0

func (d *DeleteLoadBalancer) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*DeleteLoadBalancer) Setup added in v0.26.0

func (d *DeleteLoadBalancer) Setup(ctx core.SetupContext) error

type DeleteLoadBalancerSpec added in v0.26.0

type DeleteLoadBalancerSpec struct {
	LoadBalancer string `mapstructure:"loadBalancer"`
}

type DeleteStaticIP added in v0.25.0

type DeleteStaticIP struct{}

func (*DeleteStaticIP) Cancel added in v0.25.0

func (d *DeleteStaticIP) Cancel(ctx core.ExecutionContext) error

func (*DeleteStaticIP) Cleanup added in v0.25.0

func (d *DeleteStaticIP) Cleanup(ctx core.SetupContext) error

func (*DeleteStaticIP) Color added in v0.25.0

func (d *DeleteStaticIP) Color() string

func (*DeleteStaticIP) Configuration added in v0.25.0

func (d *DeleteStaticIP) Configuration() []configuration.Field

func (*DeleteStaticIP) Description added in v0.25.0

func (d *DeleteStaticIP) Description() string

func (*DeleteStaticIP) Documentation added in v0.25.0

func (d *DeleteStaticIP) Documentation() string

func (*DeleteStaticIP) ExampleOutput added in v0.25.0

func (d *DeleteStaticIP) ExampleOutput() map[string]any

func (*DeleteStaticIP) Execute added in v0.25.0

func (d *DeleteStaticIP) Execute(ctx core.ExecutionContext) error

func (*DeleteStaticIP) HandleHook added in v0.25.0

func (d *DeleteStaticIP) HandleHook(ctx core.ActionHookContext) error

func (*DeleteStaticIP) HandleWebhook added in v0.25.0

func (*DeleteStaticIP) Hooks added in v0.25.0

func (d *DeleteStaticIP) Hooks() []core.Hook

func (*DeleteStaticIP) Icon added in v0.25.0

func (d *DeleteStaticIP) Icon() string

func (*DeleteStaticIP) Label added in v0.25.0

func (d *DeleteStaticIP) Label() string

func (*DeleteStaticIP) Name added in v0.25.0

func (d *DeleteStaticIP) Name() string

func (*DeleteStaticIP) OutputChannels added in v0.25.0

func (d *DeleteStaticIP) OutputChannels(configuration any) []core.OutputChannel

func (*DeleteStaticIP) ProcessQueueItem added in v0.25.0

func (d *DeleteStaticIP) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*DeleteStaticIP) Setup added in v0.25.0

func (d *DeleteStaticIP) Setup(ctx core.SetupContext) error

type DeleteStaticIPSpec added in v0.25.0

type DeleteStaticIPSpec struct {
	Address string `mapstructure:"address"`
}

type DeleteVMInstance added in v0.22.0

type DeleteVMInstance struct{}

func (*DeleteVMInstance) Cancel added in v0.22.0

func (*DeleteVMInstance) Cleanup added in v0.22.0

func (d *DeleteVMInstance) Cleanup(ctx core.SetupContext) error

func (*DeleteVMInstance) Color added in v0.22.0

func (d *DeleteVMInstance) Color() string

func (*DeleteVMInstance) Configuration added in v0.22.0

func (d *DeleteVMInstance) Configuration() []configuration.Field

func (*DeleteVMInstance) Description added in v0.22.0

func (d *DeleteVMInstance) Description() string

func (*DeleteVMInstance) Documentation added in v0.22.0

func (d *DeleteVMInstance) Documentation() string

func (*DeleteVMInstance) ExampleOutput added in v0.22.0

func (d *DeleteVMInstance) ExampleOutput() map[string]any

func (*DeleteVMInstance) Execute added in v0.22.0

func (d *DeleteVMInstance) Execute(ctx core.ExecutionContext) error

func (*DeleteVMInstance) HandleHook added in v0.22.0

func (d *DeleteVMInstance) HandleHook(ctx core.ActionHookContext) error

func (*DeleteVMInstance) HandleWebhook added in v0.22.0

func (*DeleteVMInstance) Hooks added in v0.22.0

func (d *DeleteVMInstance) Hooks() []core.Hook

func (*DeleteVMInstance) Icon added in v0.22.0

func (d *DeleteVMInstance) Icon() string

func (*DeleteVMInstance) Label added in v0.22.0

func (d *DeleteVMInstance) Label() string

func (*DeleteVMInstance) Name added in v0.22.0

func (d *DeleteVMInstance) Name() string

func (*DeleteVMInstance) OutputChannels added in v0.22.0

func (d *DeleteVMInstance) OutputChannels(configuration any) []core.OutputChannel

func (*DeleteVMInstance) ProcessQueueItem added in v0.22.0

func (d *DeleteVMInstance) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*DeleteVMInstance) Setup added in v0.22.0

func (d *DeleteVMInstance) Setup(ctx core.SetupContext) error

type DeleteVMInstanceSpec added in v0.22.0

type DeleteVMInstanceSpec struct {
	Instance string `mapstructure:"instance"`
}

type Disk

type Disk struct {
	Name string `json:"name"`
}

func ListDisks

func ListDisks(ctx context.Context, c Client, project, zone string) ([]Disk, error)

type DiskType

type DiskType struct {
	Name        string `json:"name"`
	Description string `json:"description"`
}

func ListDiskTypes

func ListDiskTypes(ctx context.Context, c Client, project, zone string) ([]DiskType, error)

type Firewall

type Firewall struct {
	Name     string `json:"name"`
	SelfLink string `json:"selfLink"`
	Network  string `json:"network,omitempty"`
}

func ListFirewalls

func ListFirewalls(ctx context.Context, c Client, project string) ([]Firewall, error)

type GetVMInstance added in v0.25.0

type GetVMInstance struct{}

func (*GetVMInstance) Cancel added in v0.25.0

func (g *GetVMInstance) Cancel(ctx core.ExecutionContext) error

func (*GetVMInstance) Cleanup added in v0.25.0

func (g *GetVMInstance) Cleanup(ctx core.SetupContext) error

func (*GetVMInstance) Color added in v0.25.0

func (g *GetVMInstance) Color() string

func (*GetVMInstance) Configuration added in v0.25.0

func (g *GetVMInstance) Configuration() []configuration.Field

func (*GetVMInstance) Description added in v0.25.0

func (g *GetVMInstance) Description() string

func (*GetVMInstance) Documentation added in v0.25.0

func (g *GetVMInstance) Documentation() string

func (*GetVMInstance) ExampleOutput added in v0.25.0

func (g *GetVMInstance) ExampleOutput() map[string]any

func (*GetVMInstance) Execute added in v0.25.0

func (g *GetVMInstance) Execute(ctx core.ExecutionContext) error

func (*GetVMInstance) HandleHook added in v0.25.0

func (g *GetVMInstance) HandleHook(ctx core.ActionHookContext) error

func (*GetVMInstance) HandleWebhook added in v0.25.0

func (*GetVMInstance) Hooks added in v0.25.0

func (g *GetVMInstance) Hooks() []core.Hook

func (*GetVMInstance) Icon added in v0.25.0

func (g *GetVMInstance) Icon() string

func (*GetVMInstance) Label added in v0.25.0

func (g *GetVMInstance) Label() string

func (*GetVMInstance) Name added in v0.25.0

func (g *GetVMInstance) Name() string

func (*GetVMInstance) OutputChannels added in v0.25.0

func (g *GetVMInstance) OutputChannels(configuration any) []core.OutputChannel

func (*GetVMInstance) ProcessQueueItem added in v0.25.0

func (g *GetVMInstance) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*GetVMInstance) Setup added in v0.25.0

func (g *GetVMInstance) Setup(ctx core.SetupContext) error

type GetVMInstanceMetrics added in v0.24.0

type GetVMInstanceMetrics struct{}

func (*GetVMInstanceMetrics) Cancel added in v0.24.0

func (*GetVMInstanceMetrics) Cleanup added in v0.24.0

func (g *GetVMInstanceMetrics) Cleanup(ctx core.SetupContext) error

func (*GetVMInstanceMetrics) Color added in v0.24.0

func (g *GetVMInstanceMetrics) Color() string

func (*GetVMInstanceMetrics) Configuration added in v0.24.0

func (g *GetVMInstanceMetrics) Configuration() []configuration.Field

func (*GetVMInstanceMetrics) Description added in v0.24.0

func (g *GetVMInstanceMetrics) Description() string

func (*GetVMInstanceMetrics) Documentation added in v0.24.0

func (g *GetVMInstanceMetrics) Documentation() string

func (*GetVMInstanceMetrics) ExampleOutput added in v0.24.0

func (g *GetVMInstanceMetrics) ExampleOutput() map[string]any

func (*GetVMInstanceMetrics) Execute added in v0.24.0

func (*GetVMInstanceMetrics) HandleHook added in v0.24.0

func (g *GetVMInstanceMetrics) HandleHook(ctx core.ActionHookContext) error

func (*GetVMInstanceMetrics) HandleWebhook added in v0.24.0

func (*GetVMInstanceMetrics) Hooks added in v0.24.0

func (g *GetVMInstanceMetrics) Hooks() []core.Hook

func (*GetVMInstanceMetrics) Icon added in v0.24.0

func (g *GetVMInstanceMetrics) Icon() string

func (*GetVMInstanceMetrics) Label added in v0.24.0

func (g *GetVMInstanceMetrics) Label() string

func (*GetVMInstanceMetrics) Name added in v0.24.0

func (g *GetVMInstanceMetrics) Name() string

func (*GetVMInstanceMetrics) OutputChannels added in v0.24.0

func (g *GetVMInstanceMetrics) OutputChannels(configuration any) []core.OutputChannel

func (*GetVMInstanceMetrics) ProcessQueueItem added in v0.24.0

func (g *GetVMInstanceMetrics) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*GetVMInstanceMetrics) Setup added in v0.24.0

type GetVMInstanceMetricsSpec added in v0.24.0

type GetVMInstanceMetricsSpec struct {
	Instance       string `mapstructure:"instance"`
	LookbackPeriod string `mapstructure:"lookbackPeriod"`
}

type GetVMInstanceSpec added in v0.25.0

type GetVMInstanceSpec struct {
	Instance string `mapstructure:"instance"`
}

type GuestAcceleratorEntry

type GuestAcceleratorEntry struct {
	AcceleratorType  string `mapstructure:"acceleratorType"`
	AcceleratorCount int64  `mapstructure:"acceleratorCount"`
}

type IdentityConfig

type IdentityConfig struct {
	ServiceAccount      string   `mapstructure:"serviceAccount"`
	OAuthScopes         []string `mapstructure:"oauthScopes"`
	BlockProjectSSHKeys bool     `mapstructure:"blockProjectSSHKeys"`
	EnableOSLogin       bool     `mapstructure:"enableOSLogin"`
}

type Image

type Image struct {
	Name        string `json:"name"`
	Family      string `json:"family"`
	Description string `json:"description"`
	SelfLink    string `json:"selfLink"`
}

func GetImageFromFamily

func GetImageFromFamily(ctx context.Context, c Client, project, family string) (*Image, error)

func ListCustomImages

func ListCustomImages(ctx context.Context, c Client, project string) ([]Image, error)

func ListPublicImages

func ListPublicImages(ctx context.Context, c Client, project string) ([]Image, error)

type ImageNodeMetadata added in v0.25.0

type ImageNodeMetadata struct {
	ImageName string `json:"imageName" mapstructure:"imageName"`
}

ImageNodeMetadata is persisted on the node so the collapsed UI can show the targeted image name.

type Instance added in v0.22.0

type Instance struct {
	Name     string `json:"name"`
	Status   string `json:"status"`
	Zone     string `json:"zone"`
	SelfLink string `json:"selfLink"`
}

func ListInstances added in v0.22.0

func ListInstances(ctx context.Context, c Client, project string) ([]Instance, error)

ListInstances returns every VM instance in the project across all zones using the aggregatedList endpoint, so callers don't need to know which zone the instance lives in.

type LabelEntry

type LabelEntry struct {
	Key   string `mapstructure:"key"`
	Value string `mapstructure:"value"`
}

type MachineFamily

type MachineFamily struct {
	Family string `json:"family"`
}

func ListMachineFamilies

func ListMachineFamilies(ctx context.Context, c Client, zone string) ([]MachineFamily, error)

type MachineType

type MachineType struct {
	Name        string `json:"name"`
	GuestCPUs   int    `json:"guestCpus"`
	MemoryMB    int    `json:"memoryMb"`
	Description string `json:"description"`
	SharedCPU   bool   `json:"isSharedCpu"`
	Family      string `json:"family,omitempty"`
}

func GetMachineType

func GetMachineType(ctx context.Context, c Client, zone, machineType string) (*MachineType, error)

func ListMachineTypes

func ListMachineTypes(ctx context.Context, c Client, zone string) ([]MachineType, error)

type ManageStaticIP added in v0.25.0

type ManageStaticIP struct{}

func (*ManageStaticIP) Cancel added in v0.25.0

func (m *ManageStaticIP) Cancel(ctx core.ExecutionContext) error

func (*ManageStaticIP) Cleanup added in v0.25.0

func (m *ManageStaticIP) Cleanup(ctx core.SetupContext) error

func (*ManageStaticIP) Color added in v0.25.0

func (m *ManageStaticIP) Color() string

func (*ManageStaticIP) Configuration added in v0.25.0

func (m *ManageStaticIP) Configuration() []configuration.Field

func (*ManageStaticIP) Description added in v0.25.0

func (m *ManageStaticIP) Description() string

func (*ManageStaticIP) Documentation added in v0.25.0

func (m *ManageStaticIP) Documentation() string

func (*ManageStaticIP) ExampleOutput added in v0.25.0

func (m *ManageStaticIP) ExampleOutput() map[string]any

func (*ManageStaticIP) Execute added in v0.25.0

func (m *ManageStaticIP) Execute(ctx core.ExecutionContext) error

func (*ManageStaticIP) HandleHook added in v0.25.0

func (m *ManageStaticIP) HandleHook(ctx core.ActionHookContext) error

func (*ManageStaticIP) HandleWebhook added in v0.25.0

func (*ManageStaticIP) Hooks added in v0.25.0

func (m *ManageStaticIP) Hooks() []core.Hook

func (*ManageStaticIP) Icon added in v0.25.0

func (m *ManageStaticIP) Icon() string

func (*ManageStaticIP) Label added in v0.25.0

func (m *ManageStaticIP) Label() string

func (*ManageStaticIP) Name added in v0.25.0

func (m *ManageStaticIP) Name() string

func (*ManageStaticIP) OutputChannels added in v0.25.0

func (m *ManageStaticIP) OutputChannels(configuration any) []core.OutputChannel

func (*ManageStaticIP) ProcessQueueItem added in v0.25.0

func (m *ManageStaticIP) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*ManageStaticIP) Setup added in v0.25.0

func (m *ManageStaticIP) Setup(ctx core.SetupContext) error

type ManageStaticIPSpec added in v0.25.0

type ManageStaticIPSpec struct {
	Action           string `mapstructure:"action"`
	Instance         string `mapstructure:"instance"`
	Address          string `mapstructure:"address"`
	NetworkInterface string `mapstructure:"networkInterface"`
}

type ManageVMInstancePower added in v0.24.0

type ManageVMInstancePower struct{}

func (*ManageVMInstancePower) Cancel added in v0.24.0

func (*ManageVMInstancePower) Cleanup added in v0.24.0

func (m *ManageVMInstancePower) Cleanup(ctx core.SetupContext) error

func (*ManageVMInstancePower) Color added in v0.24.0

func (m *ManageVMInstancePower) Color() string

func (*ManageVMInstancePower) Configuration added in v0.24.0

func (m *ManageVMInstancePower) Configuration() []configuration.Field

func (*ManageVMInstancePower) Description added in v0.24.0

func (m *ManageVMInstancePower) Description() string

func (*ManageVMInstancePower) Documentation added in v0.24.0

func (m *ManageVMInstancePower) Documentation() string

func (*ManageVMInstancePower) ExampleOutput added in v0.24.0

func (m *ManageVMInstancePower) ExampleOutput() map[string]any

func (*ManageVMInstancePower) Execute added in v0.24.0

func (*ManageVMInstancePower) HandleHook added in v0.24.0

func (*ManageVMInstancePower) HandleWebhook added in v0.24.0

func (*ManageVMInstancePower) Hooks added in v0.24.0

func (m *ManageVMInstancePower) Hooks() []core.Hook

func (*ManageVMInstancePower) Icon added in v0.24.0

func (m *ManageVMInstancePower) Icon() string

func (*ManageVMInstancePower) Label added in v0.24.0

func (m *ManageVMInstancePower) Label() string

func (*ManageVMInstancePower) Name added in v0.24.0

func (m *ManageVMInstancePower) Name() string

func (*ManageVMInstancePower) OutputChannels added in v0.24.0

func (m *ManageVMInstancePower) OutputChannels(configuration any) []core.OutputChannel

func (*ManageVMInstancePower) ProcessQueueItem added in v0.24.0

func (m *ManageVMInstancePower) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*ManageVMInstancePower) Setup added in v0.24.0

type ManageVMInstancePowerSpec added in v0.24.0

type ManageVMInstancePowerSpec struct {
	Instance  string `mapstructure:"instance"`
	Operation string `mapstructure:"operation"`
}

type ManagementConfig

type ManagementConfig struct {
	MetadataItems     []MetadataKeyValue `mapstructure:"metadataItems"`
	StartupScript     string             `mapstructure:"startupScript"`
	ShutdownScript    string             `mapstructure:"shutdownScript"`
	AutomaticRestart  *bool              `mapstructure:"automaticRestart"`
	OnHostMaintenance string             `mapstructure:"onHostMaintenance"`
	MaintenancePolicy string             `mapstructure:"maintenancePolicy"`
}

type MetadataKeyValue

type MetadataKeyValue struct {
	Key   string `mapstructure:"key"`
	Value string `mapstructure:"value"`
}

type Network

type Network struct {
	Name     string `json:"name"`
	SelfLink string `json:"selfLink"`
}

func ListNetworks

func ListNetworks(ctx context.Context, c Client, project string) ([]Network, error)

type NetworkingConfig

type NetworkingConfig struct {
	Network             string                    `mapstructure:"network"`
	Subnetwork          string                    `mapstructure:"subnetwork"`
	NicType             string                    `mapstructure:"nicType"`
	InternalIPType      string                    `mapstructure:"internalIPType"`
	InternalIPAddress   string                    `mapstructure:"internalIPAddress"`
	ExternalIPType      string                    `mapstructure:"externalIPType"`
	ExternalIPAddress   string                    `mapstructure:"externalIPAddress"`
	NetworkTags         string                    `mapstructure:"networkTags"`
	StackType           string                    `mapstructure:"stackType"`
	CreateFirewallRules []CreateFirewallRuleEntry `mapstructure:"createFirewallRules"`
}

type NodeAffinityEntry

type NodeAffinityEntry struct {
	Key      string   `mapstructure:"key"`
	Operator string   `mapstructure:"operator"`
	Values   []string `mapstructure:"values"`
}

type OSAndStorageConfig

type OSAndStorageConfig struct {
	BootDiskSourceType       string                `mapstructure:"bootDiskSourceType"`
	BootDiskOS               string                `mapstructure:"bootDiskOS"`
	BootDiskPublicImage      string                `mapstructure:"bootDiskPublicImage"`
	BootDiskCustomImage      string                `mapstructure:"bootDiskCustomImage"`
	BootDiskSnapshot         string                `mapstructure:"bootDiskSnapshot"`
	BootDiskExistingDisk     string                `mapstructure:"bootDiskExistingDisk"`
	BootDiskType             string                `mapstructure:"bootDiskType"`
	BootDiskSizeGb           int64                 `mapstructure:"bootDiskSizeGb"`
	BootDiskEncryptionKey    string                `mapstructure:"bootDiskEncryptionKey"`
	BootDiskSnapshotSchedule string                `mapstructure:"bootDiskSnapshotSchedule"`
	BootDiskAutoDelete       bool                  `mapstructure:"bootDiskAutoDelete"`
	LocalSSDCount            int64                 `mapstructure:"localSSDCount"`
	AdditionalDisks          []AdditionalDiskEntry `mapstructure:"additionalDisks"`
}

type OnVMInstance

type OnVMInstance struct{}

func (*OnVMInstance) Cleanup

func (t *OnVMInstance) Cleanup(ctx core.TriggerContext) error

func (*OnVMInstance) Color

func (t *OnVMInstance) Color() string

func (*OnVMInstance) Configuration

func (t *OnVMInstance) Configuration() []configuration.Field

func (*OnVMInstance) Description

func (t *OnVMInstance) Description() string

func (*OnVMInstance) Documentation

func (t *OnVMInstance) Documentation() string

func (*OnVMInstance) ExampleData

func (t *OnVMInstance) ExampleData() map[string]any

func (*OnVMInstance) HandleHook added in v0.18.0

func (t *OnVMInstance) HandleHook(ctx core.TriggerHookContext) (map[string]any, error)

func (*OnVMInstance) HandleWebhook

func (*OnVMInstance) Hooks added in v0.18.0

func (t *OnVMInstance) Hooks() []core.Hook

func (*OnVMInstance) Icon

func (t *OnVMInstance) Icon() string

func (*OnVMInstance) Label

func (t *OnVMInstance) Label() string

func (*OnVMInstance) Name

func (t *OnVMInstance) Name() string

func (*OnVMInstance) OnIntegrationMessage

func (t *OnVMInstance) OnIntegrationMessage(ctx core.IntegrationMessageContext) error

func (*OnVMInstance) Setup

func (t *OnVMInstance) Setup(ctx core.TriggerContext) error

type OnVMInstanceConfiguration

type OnVMInstanceConfiguration struct{}

type OnVMInstanceMetadata

type OnVMInstanceMetadata struct {
	SubscriptionID string `json:"subscriptionId" mapstructure:"subscriptionId"`
	SinkID         string `json:"sinkId" mapstructure:"sinkId"`
}

type ProvisioningModel

type ProvisioningModel string
const (
	ProvisioningStandard ProvisioningModel = "STANDARD"
	ProvisioningSpot     ProvisioningModel = "SPOT"
)

type Region

type Region struct {
	Name        string   `json:"name"`
	Description string   `json:"description"`
	Status      string   `json:"status"`
	Zones       []string `json:"zones"`
}

func ListRegions

func ListRegions(ctx context.Context, c Client) ([]Region, error)

type ResourcePolicy

type ResourcePolicy struct {
	Name string `json:"name"`
}

func ListSnapshotSchedules

func ListSnapshotSchedules(ctx context.Context, c Client, project, region string) ([]ResourcePolicy, error)

type SecurityConfig

type SecurityConfig struct {
	ShieldedVM                          bool   `mapstructure:"shieldedVM"`
	ShieldedVMEnableSecureBoot          bool   `mapstructure:"shieldedVMEnableSecureBoot"`
	ShieldedVMEnableVtpm                bool   `mapstructure:"shieldedVMEnableVtpm"`
	ShieldedVMEnableIntegrityMonitoring bool   `mapstructure:"shieldedVMEnableIntegrityMonitoring"`
	ConfidentialVM                      bool   `mapstructure:"confidentialVM"`
	ConfidentialVMType                  string `mapstructure:"confidentialVMType"`
}

type Snapshot

type Snapshot struct {
	Name string `json:"name"`
}

func ListSnapshots

func ListSnapshots(ctx context.Context, c Client, project string) ([]Snapshot, error)

type Subnetwork

type Subnetwork struct {
	Name     string `json:"name"`
	Region   string `json:"region"`
	SelfLink string `json:"selfLink"`
}

func ListSubnetworks

func ListSubnetworks(ctx context.Context, c Client, project, region string) ([]Subnetwork, error)

type UpdateImage added in v0.25.0

type UpdateImage struct{}

func (*UpdateImage) Cancel added in v0.25.0

func (u *UpdateImage) Cancel(ctx core.ExecutionContext) error

func (*UpdateImage) Cleanup added in v0.25.0

func (u *UpdateImage) Cleanup(ctx core.SetupContext) error

func (*UpdateImage) Color added in v0.25.0

func (u *UpdateImage) Color() string

func (*UpdateImage) Configuration added in v0.25.0

func (u *UpdateImage) Configuration() []configuration.Field

func (*UpdateImage) Description added in v0.25.0

func (u *UpdateImage) Description() string

func (*UpdateImage) Documentation added in v0.25.0

func (u *UpdateImage) Documentation() string

func (*UpdateImage) ExampleOutput added in v0.25.0

func (u *UpdateImage) ExampleOutput() map[string]any

func (*UpdateImage) Execute added in v0.25.0

func (u *UpdateImage) Execute(ctx core.ExecutionContext) error

func (*UpdateImage) HandleHook added in v0.25.0

func (u *UpdateImage) HandleHook(ctx core.ActionHookContext) error

func (*UpdateImage) HandleWebhook added in v0.25.0

func (*UpdateImage) Hooks added in v0.25.0

func (u *UpdateImage) Hooks() []core.Hook

func (*UpdateImage) Icon added in v0.25.0

func (u *UpdateImage) Icon() string

func (*UpdateImage) Label added in v0.25.0

func (u *UpdateImage) Label() string

func (*UpdateImage) Name added in v0.25.0

func (u *UpdateImage) Name() string

func (*UpdateImage) OutputChannels added in v0.25.0

func (u *UpdateImage) OutputChannels(configuration any) []core.OutputChannel

func (*UpdateImage) ProcessQueueItem added in v0.25.0

func (u *UpdateImage) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*UpdateImage) Setup added in v0.25.0

func (u *UpdateImage) Setup(ctx core.SetupContext) error

type UpdateImageSpec added in v0.25.0

type UpdateImageSpec struct {
	Image            string       `mapstructure:"image"`
	DeprecationState string       `mapstructure:"deprecationState"`
	Replacement      string       `mapstructure:"replacement"`
	Labels           []LabelEntry `mapstructure:"labels"`
}

type UpdateVMInstanceType added in v0.24.0

type UpdateVMInstanceType struct{}

func (*UpdateVMInstanceType) Cancel added in v0.24.0

func (*UpdateVMInstanceType) Cleanup added in v0.24.0

func (u *UpdateVMInstanceType) Cleanup(ctx core.SetupContext) error

func (*UpdateVMInstanceType) Color added in v0.24.0

func (u *UpdateVMInstanceType) Color() string

func (*UpdateVMInstanceType) Configuration added in v0.24.0

func (u *UpdateVMInstanceType) Configuration() []configuration.Field

func (*UpdateVMInstanceType) Description added in v0.24.0

func (u *UpdateVMInstanceType) Description() string

func (*UpdateVMInstanceType) Documentation added in v0.24.0

func (u *UpdateVMInstanceType) Documentation() string

func (*UpdateVMInstanceType) ExampleOutput added in v0.24.0

func (u *UpdateVMInstanceType) ExampleOutput() map[string]any

func (*UpdateVMInstanceType) Execute added in v0.24.0

func (*UpdateVMInstanceType) HandleHook added in v0.24.0

func (u *UpdateVMInstanceType) HandleHook(ctx core.ActionHookContext) error

func (*UpdateVMInstanceType) HandleWebhook added in v0.24.0

func (*UpdateVMInstanceType) Hooks added in v0.24.0

func (u *UpdateVMInstanceType) Hooks() []core.Hook

func (*UpdateVMInstanceType) Icon added in v0.24.0

func (u *UpdateVMInstanceType) Icon() string

func (*UpdateVMInstanceType) Label added in v0.24.0

func (u *UpdateVMInstanceType) Label() string

func (*UpdateVMInstanceType) Name added in v0.24.0

func (u *UpdateVMInstanceType) Name() string

func (*UpdateVMInstanceType) OutputChannels added in v0.24.0

func (u *UpdateVMInstanceType) OutputChannels(configuration any) []core.OutputChannel

func (*UpdateVMInstanceType) ProcessQueueItem added in v0.24.0

func (u *UpdateVMInstanceType) ProcessQueueItem(ctx core.ProcessQueueContext) (*uuid.UUID, error)

func (*UpdateVMInstanceType) Setup added in v0.24.0

type UpdateVMInstanceTypeSpec added in v0.24.0

type UpdateVMInstanceTypeSpec struct {
	Instance           string `mapstructure:"instance"`
	MachineType        string `mapstructure:"machineType"`
	RestartAfterUpdate *bool  `mapstructure:"restartAfterUpdate"`
}

type VMInstanceNodeMetadata added in v0.22.0

type VMInstanceNodeMetadata struct {
	InstanceName string `json:"instanceName" mapstructure:"instanceName"`
	Zone         string `json:"zone" mapstructure:"zone"`
}

type Zone

type Zone struct {
	Name   string `json:"name"`
	Status string `json:"status"`
	Region string `json:"region"`
}

func ListZones

func ListZones(ctx context.Context, c Client, region string) ([]Zone, error)

Jump to

Keyboard shortcuts

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