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

resources

package
v0.0.5 Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2026 License: MIT Imports: 11 Imported by: 0

Documentation

Overview

Package resources contains one file per STACKIT resource type that stackit-nuke knows how to discover and delete. Each file registers a libnuke registration during init() and exposes a Lister that returns resources observed in the supplied project + region.

The Lister bodies are placeholders — they return an empty slice so the framework wires up correctly end-to-end. Filling them in with real STACKIT SDK calls is the per-resource implementation work.

Index

Constants

View Source
const ComputeKeypairResource = "ComputeKeypair"
View Source
const ComputeServerResource = "ComputeServer"
View Source
const ComputeSnapshotResource = "ComputeSnapshot"
View Source
const ComputeVolumeResource = "ComputeVolume"
View Source
const DNSZoneResource = "DNSZone"
View Source
const FloatingIPResource = "FloatingIP"
View Source
const LoadBalancerResource = "LoadBalancer"
View Source
const MongoDBFlexInstanceResource = "MongoDBFlexInstance"
View Source
const NetworkInterfaceResource = "NetworkInterface"
View Source
const NetworkResource = "Network"
View Source
const ObjectStorageBucketResource = "ObjectStorageBucket"
View Source
const ObjectStorageObjectResource = "ObjectStorageObject"
View Source
const OpenSearchInstanceResource = "OpenSearchInstance"
View Source
const PostgresFlexInstanceResource = "PostgresFlexInstance"
View Source
const RabbitMQInstanceResource = "RabbitMQInstance"
View Source
const RedisInstanceResource = "RedisInstance"
View Source
const RouterResource = "Router"
View Source
const SKEClusterResource = "SKECluster"
View Source
const SecurityGroupResource = "SecurityGroup"
View Source
const SubnetResource = "Subnet"

Variables

This section is empty.

Functions

func PropsFromStruct

func PropsFromStruct(v any) types.Properties

PropsFromStruct is a small helper so resource Properties() bodies stay one-liners.

Types

type BaseResource

type BaseResource struct {
	OrganizationID string `property:"OrganizationID"`
	ProjectID      string `property:"ProjectID"`
	Region         string `property:"Region"`
}

BaseResource embeds the project + region context every STACKIT resource shares. Use struct embedding with `property:",inline"` so the fields participate in libnuke's filter/property system.

type ComputeKeypair

type ComputeKeypair struct {
	*BaseResource `property:",inline"`
	Name          string
}

func (*ComputeKeypair) Properties

func (r *ComputeKeypair) Properties() types.Properties

func (*ComputeKeypair) Remove

func (r *ComputeKeypair) Remove(_ context.Context) error

func (*ComputeKeypair) String

func (r *ComputeKeypair) String() string

type ComputeKeypairLister

type ComputeKeypairLister struct{}

func (*ComputeKeypairLister) List

type ComputeServer

type ComputeServer struct {
	*BaseResource `property:",inline"`

	ID               string
	Name             string
	AvailabilityZone string
	CreatedAt        *time.Time
	Labels           map[string]string
	// contains filtered or unexported fields
}

ComputeServer is a STACKIT IaaS server (a.k.a. virtual machine).

API: github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api

Endpoints used:

  • GET /v2/projects/{projectId}/regions/{region}/servers
  • DELETE /v2/projects/{projectId}/regions/{region}/servers/{serverId}

func (*ComputeServer) Properties

func (r *ComputeServer) Properties() types.Properties

func (*ComputeServer) Remove

func (r *ComputeServer) Remove(ctx context.Context) error

func (*ComputeServer) String

func (r *ComputeServer) String() string

type ComputeServerLister

type ComputeServerLister struct{}

func (*ComputeServerLister) List

type ComputeSnapshot

type ComputeSnapshot struct {
	*BaseResource `property:",inline"`
	ID            string
	Name          string
}

func (*ComputeSnapshot) Properties

func (r *ComputeSnapshot) Properties() types.Properties

func (*ComputeSnapshot) Remove

func (r *ComputeSnapshot) Remove(_ context.Context) error

func (*ComputeSnapshot) String

func (r *ComputeSnapshot) String() string

type ComputeSnapshotLister

type ComputeSnapshotLister struct{}

func (*ComputeSnapshotLister) List

type ComputeVolume

type ComputeVolume struct {
	*BaseResource `property:",inline"`

	ID               string
	Name             string
	AvailabilityZone string
	SizeGB           int64
	Bootable         bool
	Status           string
	ServerID         string
	CreatedAt        *time.Time
	Labels           map[string]string
	// contains filtered or unexported fields
}

ComputeVolume is a STACKIT IaaS block volume.

API: github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api

Endpoints used:

  • GET /v2/projects/{projectId}/regions/{region}/volumes
  • DELETE /v2/projects/{projectId}/regions/{region}/volumes/{volumeId}

func (*ComputeVolume) Properties

func (r *ComputeVolume) Properties() types.Properties

func (*ComputeVolume) Remove

func (r *ComputeVolume) Remove(ctx context.Context) error

func (*ComputeVolume) String

func (r *ComputeVolume) String() string

type ComputeVolumeLister

type ComputeVolumeLister struct{}

func (*ComputeVolumeLister) List

type DNSZone

type DNSZone struct {
	*BaseResource `property:",inline"`
	ID            string
	Name          string
}

func (*DNSZone) Properties

func (r *DNSZone) Properties() types.Properties

func (*DNSZone) Remove

func (r *DNSZone) Remove(_ context.Context) error

func (*DNSZone) String

func (r *DNSZone) String() string

type DNSZoneLister

type DNSZoneLister struct{}

func (*DNSZoneLister) List

func (l *DNSZoneLister) List(_ context.Context, _ any) ([]resource.Resource, error)

type FloatingIP

type FloatingIP struct {
	*BaseResource `property:",inline"`
	ID            string
	IP            string
}

func (*FloatingIP) Properties

func (r *FloatingIP) Properties() types.Properties

func (*FloatingIP) Remove

func (r *FloatingIP) Remove(_ context.Context) error

func (*FloatingIP) String

func (r *FloatingIP) String() string

type FloatingIPLister

type FloatingIPLister struct{}

func (*FloatingIPLister) List

type LoadBalancer

type LoadBalancer struct {
	*BaseResource `property:",inline"`
	Name          string
}

func (*LoadBalancer) Properties

func (r *LoadBalancer) Properties() types.Properties

func (*LoadBalancer) Remove

func (r *LoadBalancer) Remove(_ context.Context) error

func (*LoadBalancer) String

func (r *LoadBalancer) String() string

type LoadBalancerLister

type LoadBalancerLister struct{}

func (*LoadBalancerLister) List

type MongoDBFlexInstance

type MongoDBFlexInstance struct {
	*BaseResource `property:",inline"`
	ID            string
	Name          string
}

func (*MongoDBFlexInstance) Properties

func (r *MongoDBFlexInstance) Properties() types.Properties

func (*MongoDBFlexInstance) Remove

func (*MongoDBFlexInstance) String

func (r *MongoDBFlexInstance) String() string

type MongoDBFlexInstanceLister

type MongoDBFlexInstanceLister struct{}

func (*MongoDBFlexInstanceLister) List

type Network

type Network struct {
	*BaseResource `property:",inline"`

	ID        string
	Name      string
	Routed    bool
	Status    string
	CreatedAt *time.Time
	Labels    map[string]string
	// contains filtered or unexported fields
}

Network is a STACKIT IaaS network.

API: github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api

Endpoints used:

  • GET /v2/projects/{projectId}/regions/{region}/networks
  • DELETE /v2/projects/{projectId}/regions/{region}/networks/{networkId}

func (*Network) Properties

func (r *Network) Properties() types.Properties

func (*Network) Remove

func (r *Network) Remove(ctx context.Context) error

func (*Network) String

func (r *Network) String() string

type NetworkInterface added in v0.0.2

type NetworkInterface struct {
	*BaseResource `property:",inline"`

	ID        string
	Name      string
	NetworkID string
	Device    string
	IPv4      string
	MAC       string
	Status    string
	Labels    map[string]string
	// contains filtered or unexported fields
}

NetworkInterface is a STACKIT IaaS NIC. NICs live under a Network, so the API path includes both networkId and nicId.

API: github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api

Endpoints used:

  • GET /v2/projects/{projectId}/regions/{region}/networks/{networkId}/nics
  • DELETE /v2/projects/{projectId}/regions/{region}/networks/{networkId}/nics/{nicId}

func (*NetworkInterface) Properties added in v0.0.2

func (r *NetworkInterface) Properties() types.Properties

func (*NetworkInterface) Remove added in v0.0.2

func (r *NetworkInterface) Remove(ctx context.Context) error

func (*NetworkInterface) String added in v0.0.2

func (r *NetworkInterface) String() string

type NetworkInterfaceLister added in v0.0.2

type NetworkInterfaceLister struct{}

func (*NetworkInterfaceLister) List added in v0.0.2

type NetworkLister

type NetworkLister struct{}

func (*NetworkLister) List

func (l *NetworkLister) List(ctx context.Context, o any) ([]resource.Resource, error)

type ObjectStorageBucket

type ObjectStorageBucket struct {
	*BaseResource `property:",inline"`
	Name          string
}

func (*ObjectStorageBucket) Properties

func (r *ObjectStorageBucket) Properties() types.Properties

func (*ObjectStorageBucket) Remove

func (*ObjectStorageBucket) String

func (r *ObjectStorageBucket) String() string

type ObjectStorageBucketLister

type ObjectStorageBucketLister struct{}

func (*ObjectStorageBucketLister) List

type ObjectStorageObject

type ObjectStorageObject struct {
	*BaseResource `property:",inline"`
	Bucket        string
	Key           string
}

func (*ObjectStorageObject) Properties

func (r *ObjectStorageObject) Properties() types.Properties

func (*ObjectStorageObject) Remove

func (*ObjectStorageObject) String

func (r *ObjectStorageObject) String() string

type ObjectStorageObjectLister

type ObjectStorageObjectLister struct{}

func (*ObjectStorageObjectLister) List

type OpenSearchInstance

type OpenSearchInstance struct {
	*BaseResource `property:",inline"`
	ID            string
	Name          string
}

func (*OpenSearchInstance) Properties

func (r *OpenSearchInstance) Properties() types.Properties

func (*OpenSearchInstance) Remove

func (r *OpenSearchInstance) Remove(_ context.Context) error

func (*OpenSearchInstance) String

func (r *OpenSearchInstance) String() string

type OpenSearchInstanceLister

type OpenSearchInstanceLister struct{}

func (*OpenSearchInstanceLister) List

type PostgresFlexInstance

type PostgresFlexInstance struct {
	*BaseResource `property:",inline"`

	ID     string
	Name   string
	Status string
	// contains filtered or unexported fields
}

PostgresFlexInstance is a STACKIT PostgreSQL Flex instance.

API: github.com/stackitcloud/stackit-sdk-go/services/postgresflex/v2api

Endpoints used:

  • GET /v2/projects/{projectId}/regions/{region}/instances
  • GET /v2/projects/{projectId}/regions/{region}/instances/{instanceId}
  • DELETE /v2/projects/{projectId}/regions/{region}/instances/{instanceId}
  • DELETE /v2/projects/{projectId}/regions/{region}/instances/{instanceId}/force

Deleting an instance is a soft delete: it stays listed with status "Deleted" during the retention window, so libnuke would wait on it forever (Remove is only invoked once per item per run). Remove therefore soft-deletes, polls until the instance reaches "Deleted", then force-deletes to purge it within the same run.

func (*PostgresFlexInstance) Properties

func (r *PostgresFlexInstance) Properties() types.Properties

func (*PostgresFlexInstance) Remove

func (r *PostgresFlexInstance) Remove(ctx context.Context) error

func (*PostgresFlexInstance) String

func (r *PostgresFlexInstance) String() string

type PostgresFlexInstanceLister

type PostgresFlexInstanceLister struct{}

func (*PostgresFlexInstanceLister) List

type RabbitMQInstance

type RabbitMQInstance struct {
	*BaseResource `property:",inline"`
	ID            string
	Name          string
}

func (*RabbitMQInstance) Properties

func (r *RabbitMQInstance) Properties() types.Properties

func (*RabbitMQInstance) Remove

func (r *RabbitMQInstance) Remove(_ context.Context) error

func (*RabbitMQInstance) String

func (r *RabbitMQInstance) String() string

type RabbitMQInstanceLister

type RabbitMQInstanceLister struct{}

func (*RabbitMQInstanceLister) List

type RedisInstance

type RedisInstance struct {
	*BaseResource `property:",inline"`
	ID            string
	Name          string
}

func (*RedisInstance) Properties

func (r *RedisInstance) Properties() types.Properties

func (*RedisInstance) Remove

func (r *RedisInstance) Remove(_ context.Context) error

func (*RedisInstance) String

func (r *RedisInstance) String() string

type RedisInstanceLister

type RedisInstanceLister struct{}

func (*RedisInstanceLister) List

type Router

type Router struct {
	*BaseResource `property:",inline"`
	ID            string
	Name          string
}

func (*Router) Properties

func (r *Router) Properties() types.Properties

func (*Router) Remove

func (r *Router) Remove(_ context.Context) error

func (*Router) String

func (r *Router) String() string

type RouterLister

type RouterLister struct{}

func (*RouterLister) List

func (l *RouterLister) List(_ context.Context, _ any) ([]resource.Resource, error)

type SKECluster

type SKECluster struct {
	*BaseResource `property:",inline"`
	Name          string
}

func (*SKECluster) Properties

func (r *SKECluster) Properties() types.Properties

func (*SKECluster) Remove

func (r *SKECluster) Remove(_ context.Context) error

func (*SKECluster) String

func (r *SKECluster) String() string

type SKEClusterLister

type SKEClusterLister struct{}

func (*SKEClusterLister) List

type SecurityGroup

type SecurityGroup struct {
	*BaseResource `property:",inline"`

	ID          string
	Name        string
	Description string
	Stateful    bool
	CreatedAt   *time.Time
	Labels      map[string]string
	// contains filtered or unexported fields
}

SecurityGroup is a STACKIT IaaS security group.

Note: STACKIT auto-creates a "default" SG per project. It is generally protected and will fail to delete; filter it out in config via `filters.SecurityGroup: [{property: Name, value: default}]`.

API: github.com/stackitcloud/stackit-sdk-go/services/iaas/v2api

Endpoints used:

  • GET /v2/projects/{projectId}/regions/{region}/security-groups
  • DELETE /v2/projects/{projectId}/regions/{region}/security-groups/{securityGroupId}

func (*SecurityGroup) Properties

func (r *SecurityGroup) Properties() types.Properties

func (*SecurityGroup) Remove

func (r *SecurityGroup) Remove(ctx context.Context) error

func (*SecurityGroup) String

func (r *SecurityGroup) String() string

type SecurityGroupLister

type SecurityGroupLister struct{}

func (*SecurityGroupLister) List

type Subnet

type Subnet struct {
	*BaseResource `property:",inline"`
	ID            string
	Name          string
	NetworkID     string
}

func (*Subnet) Properties

func (r *Subnet) Properties() types.Properties

func (*Subnet) Remove

func (r *Subnet) Remove(_ context.Context) error

func (*Subnet) String

func (r *Subnet) String() string

type SubnetLister

type SubnetLister struct{}

func (*SubnetLister) List

func (l *SubnetLister) List(_ context.Context, _ any) ([]resource.Resource, error)

Jump to

Keyboard shortcuts

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