schema

package
v1.2.3 Latest Latest
Warning

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

Go to latest
Published: Jun 15, 2025 License: MIT Imports: 7 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ErrNoSuchKey

type ErrNoSuchKey struct {
	Name string
}

ErrNoSuchKey means no such key exists in metadata.

func (*ErrNoSuchKey) Error

func (e *ErrNoSuchKey) Error() string

Error returns the value of the metadata key

type OptionBlock

type OptionBlock map[string]string

OptionBlock is a single option on which operation is possible

func (OptionBlock) GetMetadata

func (o OptionBlock) GetMetadata(key string) (string, bool)

GetMetadata returns the value for a key if it exists.

func (*OptionBlock) UnmarshalYAML

func (ob *OptionBlock) UnmarshalYAML(unmarshal func(interface{}) error) error

type Options

type Options []OptionBlock

Options contains configuration options for a provider

func (Options) GetServiceNames

func (o Options) GetServiceNames() []string

GetServiceNames returns the services from the options

type Provider

type Provider interface {
	// Name returns the name of the provider
	Name() string
	// ID returns the name of the provider id
	ID() string
	// Resources returns the provider for an resource deployment source.
	Resources(ctx context.Context) (*Resources, error)
	// Services returns the services provided by the Provider.
	// If no services set, it will return all the supported services.
	Services() []string
}

Provider is an interface implemented by any cloud service provider.

It provides the bare minimum of methods to allow complete overview of user data.

type Resource

type Resource struct {
	// Public specifies whether the asset is public facing or private
	Public bool `json:"public"`
	// Provider is the name of provider for instance
	Provider string `json:"provider"`
	// Service is the name of the service under the provider
	Service string `json:"service,omitempty"`
	// ID is the id name of the resource provider
	ID string `json:"id,omitempty"`
	// PublicIPv4 is the public ipv4 address of the instance.
	PublicIPv4 string `json:"public_ipv4,omitempty"`
	// PublicIPv6 is the public ipv6 address of the instance.
	PublicIPv6 string `json:"public_ipv6,omitempty"`
	// PrivateIpv4 is the private ipv4 address of the instance
	PrivateIpv4 string `json:"private_ipv4,omitempty"`
	// PrivateIpv6 is the private ipv6 address of the instance
	PrivateIpv6 string `json:"private_ipv6,omitempty"`
	// DNSName is the DNS name of the resource
	DNSName string `json:"dns_name,omitempty"`
}

Resource is a cloud resource belonging to the organization

type ResourceDeduplicator

type ResourceDeduplicator struct {
	// contains filtered or unexported fields
}

ResourceDeduplicator provides thread-safe deduplication for resources

func NewResourceDeduplicator

func NewResourceDeduplicator() *ResourceDeduplicator

NewResourceDeduplicator creates a new resource deduplicator

func (*ResourceDeduplicator) Add

func (d *ResourceDeduplicator) Add(value string) bool

Add adds a value to the deduplicator if it doesn't exist Returns true if the value was added (was unique)

func (*ResourceDeduplicator) Contains

func (d *ResourceDeduplicator) Contains(value string) bool

Contains checks if a value exists in the deduplicator

func (*ResourceDeduplicator) ProcessResource

func (d *ResourceDeduplicator) ProcessResource(resource *Resource) bool

ProcessResource adds a resource's values to deduplication and returns if any were new

type Resources

type Resources struct {
	Items []*Resource
	// contains filtered or unexported fields
}

Resources is a container of multiple resource returned from providers

func NewResources

func NewResources() *Resources

NewResources creates a new resources structure

func (*Resources) Append

func (r *Resources) Append(resource *Resource)

Append appends a single resource to the resource list

func (*Resources) Merge

func (r *Resources) Merge(resources *Resources)

Merge merges a list of resources into the main list

type ServiceMap

type ServiceMap map[string]struct{}

func (ServiceMap) Has

func (s ServiceMap) Has(service string) bool

func (ServiceMap) Keys

func (s ServiceMap) Keys() []string

type VerifiableProvider

type VerifiableProvider interface {
	Provider
	// Verify checks if the provider is valid
	Verify(ctx context.Context) error
}

VerifiableProvider is a Provider that can be verified with additional optional verification mechanism.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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