v2

package
v0.102.3 Latest Latest
Warning

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

Go to latest
Published: Jan 15, 2024 License: Apache-2.0 Imports: 19 Imported by: 0

Documentation

Overview

Package v2 is the new Exoscale client API binding. Reference: https://openapi-v2.exoscale.com/

Index

Constants

This section is empty.

Variables

View Source
var ErrClientConfig = errors.New("client configuration error")

ErrClientConfig represents a client configuration error.

View Source
var UserAgent = fmt.Sprintf("egoscale/%s (%s; %s/%s)",
	version.Version,
	runtime.Version(),
	runtime.GOOS,
	runtime.GOARCH)

UserAgent is the "User-Agent" HTTP request header added to outgoing HTTP requests.

Functions

func IsValidUUID added in v0.100.3

func IsValidUUID(s string) bool

Types

type APIKey added in v0.102.0

type APIKey struct {
	Key    *string `req-for:"delete"`
	Name   *string `req-for:"create"`
	RoleID *string `req-for:"create"`
}

APIKey represents an IAM API Key resource.

type AntiAffinityGroup added in v0.44.0

type AntiAffinityGroup struct {
	Description *string
	ID          *string `req-for:"delete"`
	InstanceIDs *[]string
	Name        *string `req-for:"create"`
}

AntiAffinityGroup represents an Anti-Affinity Group.

type AttachInstanceToPrivateNetworkOpt added in v0.77.0

type AttachInstanceToPrivateNetworkOpt func(*oapi.AttachInstanceToPrivateNetworkJSONRequestBody)

AttachInstanceToPrivateNetworkOpt represents an AttachInstanceToPrivateNetwork operation option.

func AttachInstanceToPrivateNetworkWithIPAddress added in v0.77.0

func AttachInstanceToPrivateNetworkWithIPAddress(v net.IP) AttachInstanceToPrivateNetworkOpt

AttachInstanceToPrivateNetworkWithIPAddress sets the Private Network lease IP address to request for the Compute instance.

type ByCreatedAt added in v0.94.0

type ByCreatedAt struct{ Templates }

func (ByCreatedAt) Less added in v0.94.0

func (s ByCreatedAt) Less(i, j int) bool

type ByName added in v0.94.0

type ByName struct{ Templates }

func (ByName) Less added in v0.94.0

func (s ByName) Less(i, j int) bool

type Client

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

Client represents an Exoscale API client.

func NewClient

func NewClient(apiKey, apiSecret string, opts ...ClientOpt) (*Client, error)

NewClient returns a new Exoscale API client, or an error if one couldn't be initialized. Default HTTP client is go-retryablehttp with static retry configuration. To change retry configuration, build new HTTP client and pass it using ClientOptWithHTTPClient.

func (*Client) AddExternalSourceToSecurityGroup added in v0.73.0

func (c *Client) AddExternalSourceToSecurityGroup(
	ctx context.Context,
	zone string,
	securityGroup *SecurityGroup,
	cidr string,
) error

AddExternalSourceToSecurityGroup adds a new external source to a Security Group. This operation is idempotent.

func (*Client) AttachInstanceToElasticIP added in v0.69.0

func (c *Client) AttachInstanceToElasticIP(
	ctx context.Context,
	zone string,
	instance *Instance,
	elasticIP *ElasticIP,
) error

AttachInstanceToElasticIP attaches a Compute instance to the specified Elastic IP.

func (*Client) AttachInstanceToPrivateNetwork added in v0.69.0

func (c *Client) AttachInstanceToPrivateNetwork(
	ctx context.Context,
	zone string,
	instance *Instance,
	privateNetwork *PrivateNetwork,
	opts ...AttachInstanceToPrivateNetworkOpt,
) error

AttachInstanceToPrivateNetwork attaches a Compute instance to the specified Private Network.

func (*Client) AttachInstanceToSecurityGroup added in v0.69.0

func (c *Client) AttachInstanceToSecurityGroup(
	ctx context.Context,
	zone string,
	instance *Instance,
	securityGroup *SecurityGroup,
) error

AttachInstanceToSecurityGroup attaches a Compute instance to the specified Security Group.

func (*Client) CopyTemplate added in v0.80.0

func (c *Client) CopyTemplate(ctx context.Context, zone string, template *Template, dstZone string) (*Template, error)

CopyTemplate copies a Template to a different Exoscale zone.

func (*Client) CreateAPIKey added in v0.102.0

func (c *Client) CreateAPIKey(
	ctx context.Context,
	zone string,
	apiKey *APIKey,
) (key *APIKey, secret string, err error)

CreateAPIKey creates a IAM API Key.

func (*Client) CreateAntiAffinityGroup added in v0.44.0

func (c *Client) CreateAntiAffinityGroup(
	ctx context.Context,
	zone string,
	antiAffinityGroup *AntiAffinityGroup,
) (*AntiAffinityGroup, error)

CreateAntiAffinityGroup creates an Anti-Affinity Group.

func (*Client) CreateDNSDomain added in v0.89.0

func (c *Client) CreateDNSDomain(
	ctx context.Context,
	zone string,
	domain *DNSDomain,
) (*DNSDomain, error)

CreateDNSDomain adds a new DNS domain.

func (*Client) CreateDNSDomainRecord added in v0.89.0

func (c *Client) CreateDNSDomainRecord(
	ctx context.Context,
	zone string,
	domainID string,
	record *DNSDomainRecord,
) (*DNSDomainRecord, error)

CreateDNSDomainRecord adds a new DNS record for domain.

func (*Client) CreateElasticIP added in v0.45.0

func (c *Client) CreateElasticIP(ctx context.Context, zone string, elasticIP *ElasticIP) (*ElasticIP, error)

CreateElasticIP creates an Elastic IP.

func (*Client) CreateIAMAccessKey added in v0.82.0

func (c *Client) CreateIAMAccessKey(
	ctx context.Context,
	zone string,
	name string,
	opts ...CreateIAMAccessKeyOpt,
) (*IAMAccessKey, error)

CreateIAMAccessKey creates a new IAM access key.

func (*Client) CreateIAMRole added in v0.102.0

func (c *Client) CreateIAMRole(
	ctx context.Context,
	zone string,
	role *IAMRole,
) (*IAMRole, error)

CreateIAMRole creates a IAM Role.

func (*Client) CreateInstance added in v0.48.0

func (c *Client) CreateInstance(ctx context.Context, zone string, instance *Instance) (*Instance, error)

CreateInstance creates a Compute instance.

func (*Client) CreateInstancePool added in v0.44.0

func (c *Client) CreateInstancePool(
	ctx context.Context,
	zone string,
	instancePool *InstancePool,
) (*InstancePool, error)

CreateInstancePool creates an Instance Pool.

func (*Client) CreateInstanceSnapshot added in v0.69.0

func (c *Client) CreateInstanceSnapshot(ctx context.Context, zone string, instance *Instance) (*Snapshot, error)

CreateInstanceSnapshot creates a Snapshot of a Compute instance storage volume.

func (*Client) CreateNetworkLoadBalancer

func (c *Client) CreateNetworkLoadBalancer(
	ctx context.Context,
	zone string,
	nlb *NetworkLoadBalancer,
) (*NetworkLoadBalancer, error)

CreateNetworkLoadBalancer creates a Network Load Balancer.

func (*Client) CreateNetworkLoadBalancerService added in v0.69.0

func (c *Client) CreateNetworkLoadBalancerService(
	ctx context.Context,
	zone string,
	nlb *NetworkLoadBalancer,
	service *NetworkLoadBalancerService,
) (*NetworkLoadBalancerService, error)

CreateNetworkLoadBalancerService creates a Network Load Balancer service.

func (*Client) CreatePrivateNetwork added in v0.44.0

func (c *Client) CreatePrivateNetwork(
	ctx context.Context,
	zone string,
	privateNetwork *PrivateNetwork,
) (*PrivateNetwork, error)

CreatePrivateNetwork creates a Private Network.

func (*Client) CreateSKSCluster

func (c *Client) CreateSKSCluster(
	ctx context.Context,
	zone string,
	cluster *SKSCluster,
	opts ...CreateSKSClusterOpt,
) (*SKSCluster, error)

CreateSKSCluster creates an SKS cluster.

func (*Client) CreateSKSNodepool added in v0.69.0

func (c *Client) CreateSKSNodepool(
	ctx context.Context,
	zone string,
	cluster *SKSCluster,
	nodepool *SKSNodepool,
) (*SKSNodepool, error)

CreateSKSNodepool create an SKS Nodepool.

func (*Client) CreateSecurityGroup added in v0.44.0

func (c *Client) CreateSecurityGroup(
	ctx context.Context,
	zone string,
	securityGroup *SecurityGroup,
) (*SecurityGroup, error)

CreateSecurityGroup creates a Security Group.

func (*Client) CreateSecurityGroupRule added in v0.69.0

func (c *Client) CreateSecurityGroupRule(
	ctx context.Context,
	zone string,
	securityGroup *SecurityGroup,
	rule *SecurityGroupRule,
) (*SecurityGroupRule, error)

CreateSecurityGroupRule creates a Security Group rule.

func (*Client) DeleteAPIKey added in v0.102.0

func (c *Client) DeleteAPIKey(ctx context.Context, zone string, apiKey *APIKey) error

DeleteAPIKey deletes IAM API Key.

func (*Client) DeleteAntiAffinityGroup added in v0.44.0

func (c *Client) DeleteAntiAffinityGroup(
	ctx context.Context,
	zone string,
	antiAffinityGroup *AntiAffinityGroup,
) error

DeleteAntiAffinityGroup deletes an Anti-Affinity Group.

func (*Client) DeleteDNSDomain added in v0.89.0

func (c *Client) DeleteDNSDomain(ctx context.Context, zone string, domain *DNSDomain) error

DeleteDNSDomain deletes a DNS domain.

func (*Client) DeleteDNSDomainRecord added in v0.89.0

func (c *Client) DeleteDNSDomainRecord(ctx context.Context, zone, domainID string, record *DNSDomainRecord) error

DeleteDNSDomainRecord deletes a DNS domain record.

func (*Client) DeleteDatabaseService added in v0.57.0

func (c *Client) DeleteDatabaseService(ctx context.Context, zone string, databaseService *DatabaseService) error

DeleteDatabaseService deletes a Database Service.

func (*Client) DeleteElasticIP added in v0.45.0

func (c *Client) DeleteElasticIP(ctx context.Context, zone string, elasticIP *ElasticIP) error

DeleteElasticIP deletes an Elastic IP.

func (*Client) DeleteElasticIPReverseDNS added in v0.92.0

func (c *Client) DeleteElasticIPReverseDNS(ctx context.Context, zone string, id string) error

DeleteElasticIPReverseDNS deletes a Reverse DNS record of a Elastic IP.

func (*Client) DeleteIAMRole added in v0.102.0

func (c *Client) DeleteIAMRole(ctx context.Context, zone string, role *IAMRole) error

DeleteIAMRole deletes IAM Role.

func (*Client) DeleteInstance added in v0.48.0

func (c *Client) DeleteInstance(ctx context.Context, zone string, instance *Instance) error

DeleteInstance deletes a Compute instance.

func (*Client) DeleteInstancePool added in v0.44.0

func (c *Client) DeleteInstancePool(ctx context.Context, zone string, instancePool *InstancePool) error

DeleteInstancePool deletes an Instance Pool.

func (*Client) DeleteInstanceReverseDNS added in v0.92.0

func (c *Client) DeleteInstanceReverseDNS(ctx context.Context, zone string, id string) error

DeleteInstanceReverseDNS deletes a Reverse DNS record of a Compute Instance.

func (*Client) DeleteNetworkLoadBalancer

func (c *Client) DeleteNetworkLoadBalancer(ctx context.Context, zone string, nlb *NetworkLoadBalancer) error

DeleteNetworkLoadBalancer deletes a Network Load Balancer.

func (*Client) DeleteNetworkLoadBalancerService added in v0.69.0

func (c *Client) DeleteNetworkLoadBalancerService(
	ctx context.Context,
	zone string,
	nlb *NetworkLoadBalancer,
	service *NetworkLoadBalancerService,
) error

DeleteNetworkLoadBalancerService deletes a Network Load Balancer service.

func (*Client) DeletePrivateNetwork added in v0.44.0

func (c *Client) DeletePrivateNetwork(ctx context.Context, zone string, privateNetwork *PrivateNetwork) error

DeletePrivateNetwork deletes a Private Network.

func (*Client) DeleteSKSCluster

func (c *Client) DeleteSKSCluster(ctx context.Context, zone string, cluster *SKSCluster) error

DeleteSKSCluster deletes an SKS cluster.

func (*Client) DeleteSKSNodepool added in v0.69.0

func (c *Client) DeleteSKSNodepool(ctx context.Context, zone string, cluster *SKSCluster, nodepool *SKSNodepool) error

DeleteSKSNodepool deletes an SKS Nodepool.

func (*Client) DeleteSSHKey added in v0.69.0

func (c *Client) DeleteSSHKey(ctx context.Context, zone string, sshKey *SSHKey) error

DeleteSSHKey deletes an SSH key.

func (*Client) DeleteSecurityGroup added in v0.44.0

func (c *Client) DeleteSecurityGroup(ctx context.Context, zone string, securityGroup *SecurityGroup) error

DeleteSecurityGroup deletes a Security Group.

func (*Client) DeleteSecurityGroupRule added in v0.69.0

func (c *Client) DeleteSecurityGroupRule(
	ctx context.Context,
	zone string,
	securityGroup *SecurityGroup,
	rule *SecurityGroupRule,
) error

DeleteSecurityGroupRule deletes a Security Group rule.

func (*Client) DeleteSnapshot added in v0.48.0

func (c *Client) DeleteSnapshot(ctx context.Context, zone string, snapshot *Snapshot) error

DeleteSnapshot deletes a Snapshot.

func (*Client) DeleteTemplate added in v0.48.0

func (c *Client) DeleteTemplate(ctx context.Context, zone string, template *Template) error

DeleteTemplate deletes a Template.

func (*Client) DetachInstanceFromElasticIP added in v0.69.0

func (c *Client) DetachInstanceFromElasticIP(
	ctx context.Context,
	zone string,
	instance *Instance,
	elasticIP *ElasticIP,
) error

DetachInstanceFromElasticIP detaches a Compute instance from the specified Elastic IP.

func (*Client) DetachInstanceFromPrivateNetwork added in v0.69.0

func (c *Client) DetachInstanceFromPrivateNetwork(
	ctx context.Context,
	zone string,
	instance *Instance,
	privateNetwork *PrivateNetwork,
) error

DetachInstanceFromPrivateNetwork detaches a Compute instance from the specified Private Network.

func (*Client) DetachInstanceFromSecurityGroup added in v0.69.0

func (c *Client) DetachInstanceFromSecurityGroup(
	ctx context.Context,
	zone string,
	instance *Instance,
	securityGroup *SecurityGroup,
) error

DetachInstanceFromSecurityGroup detaches a Compute instance from the specified Security Group.

func (*Client) EvictInstancePoolMembers added in v0.69.0

func (c *Client) EvictInstancePoolMembers(
	ctx context.Context,
	zone string,
	instancePool *InstancePool,
	members []string,
) error

EvictInstancePoolMembers evicts the specified members (identified by their Compute instance ID) from the Instance Pool corresponding to the specified ID.

func (*Client) EvictSKSNodepoolMembers added in v0.69.0

func (c *Client) EvictSKSNodepoolMembers(
	ctx context.Context,
	zone string,
	cluster *SKSCluster,
	nodepool *SKSNodepool,
	members []string,
) error

EvictSKSNodepoolMembers evicts the specified members (identified by their Compute instance ID) from the SKS cluster Nodepool.

func (*Client) ExportSnapshot added in v0.69.0

func (c *Client) ExportSnapshot(ctx context.Context, zone string, snapshot *Snapshot) (*SnapshotExport, error)

ExportSnapshot exports a Snapshot and returns the exported Snapshot information.

func (*Client) FindAntiAffinityGroup added in v0.52.0

func (c *Client) FindAntiAffinityGroup(ctx context.Context, zone, x string) (*AntiAffinityGroup, error)

FindAntiAffinityGroup attempts to find an Anti-Affinity Group by name or ID.

func (*Client) FindDatabaseService added in v0.91.0

func (c *Client) FindDatabaseService(ctx context.Context, zone, name string) (*DatabaseService, error)

FindDatabaseService attempts to find a Database service by name

func (*Client) FindDeployTarget added in v0.52.0

func (c *Client) FindDeployTarget(ctx context.Context, zone, x string) (*DeployTarget, error)

FindDeployTarget attempts to find a Deploy Target by name or ID.

func (*Client) FindElasticIP added in v0.52.0

func (c *Client) FindElasticIP(ctx context.Context, zone, x string) (*ElasticIP, error)

FindElasticIP attempts to find an Elastic IP by IP address or ID.

func (*Client) FindInstance added in v0.52.0

func (c *Client) FindInstance(ctx context.Context, zone, x string) (*Instance, error)

FindInstance attempts to find a Compute instance by name or ID. In case the identifier is a name and multiple resources match, an ErrTooManyFound error is returned.

func (*Client) FindInstancePool added in v0.52.0

func (c *Client) FindInstancePool(ctx context.Context, zone, x string) (*InstancePool, error)

FindInstancePool attempts to find an Instance Pool by name or ID.

func (*Client) FindInstanceType added in v0.53.0

func (c *Client) FindInstanceType(ctx context.Context, zone, x string) (*InstanceType, error)

FindInstanceType attempts to find an Instance type by family+size or ID. To search by family+size, the expected format for v is "[FAMILY.]SIZE" (e.g. "large", "gpu.medium"), with family defaulting to "standard" if not specified.

func (*Client) FindNetworkLoadBalancer added in v0.52.0

func (c *Client) FindNetworkLoadBalancer(ctx context.Context, zone, x string) (*NetworkLoadBalancer, error)

FindNetworkLoadBalancer attempts to find a Network Load Balancer by name or ID.

func (*Client) FindPrivateNetwork added in v0.52.0

func (c *Client) FindPrivateNetwork(ctx context.Context, zone, x string) (*PrivateNetwork, error)

FindPrivateNetwork attempts to find a Private Network by name or ID. In case the identifier is a name and multiple resources match, an ErrTooManyFound error is returned.

func (*Client) FindSKSCluster added in v0.52.0

func (c *Client) FindSKSCluster(ctx context.Context, zone, x string) (*SKSCluster, error)

FindSKSCluster attempts to find an SKS cluster by name or ID.

func (*Client) FindSecurityGroup added in v0.52.0

func (c *Client) FindSecurityGroup(ctx context.Context, zone, x string) (*SecurityGroup, error)

FindSecurityGroup attempts to find a Security Group by name or ID.

func (*Client) FindSecurityGroups added in v0.98.1

func (c *Client) FindSecurityGroups(ctx context.Context, zone string, params *oapi.ListSecurityGroupsParams) ([]*SecurityGroup, error)

FindSecurityGroups returns the list of existing Security Groups. The `params` allows specifying standard filters.

func (*Client) FindTemplate added in v0.95.0

func (c *Client) FindTemplate(ctx context.Context, zone, x string, visibilty string) (*Template, error)

FindTemplate attempts to find a template by name or ID. In case the identifier is a name and multiple resources match, the newest template is returned.

func (*Client) GetAPIKey added in v0.102.0

func (c *Client) GetAPIKey(ctx context.Context, zone, key string) (*APIKey, error)

GetAPIKey returns the IAM API Key.

func (*Client) GetAntiAffinityGroup added in v0.44.0

func (c *Client) GetAntiAffinityGroup(ctx context.Context, zone, id string) (*AntiAffinityGroup, error)

GetAntiAffinityGroup returns the Anti-Affinity Group corresponding to the specified ID.

func (*Client) GetDNSDomain added in v0.89.0

func (c *Client) GetDNSDomain(ctx context.Context, zone, id string) (*DNSDomain, error)

GetDNSDomain returns DNS domain details.

func (*Client) GetDNSDomainRecord added in v0.89.0

func (c *Client) GetDNSDomainRecord(ctx context.Context, zone, domainID, recordID string) (*DNSDomainRecord, error)

GetDNSDomainRecord returns a single DNS domain record.

func (*Client) GetDNSDomainZoneFile added in v0.89.0

func (c *Client) GetDNSDomainZoneFile(ctx context.Context, zone, id string) ([]byte, error)

GetDNSDomainZoneFile returns zone file of a DNS domain.

func (*Client) GetDatabaseCACertificate added in v0.69.0

func (c *Client) GetDatabaseCACertificate(ctx context.Context, zone string) (string, error)

GetDatabaseCACertificate returns the CA certificate required to access Database Services using a TLS connection.

func (*Client) GetDatabaseMigrationStatus added in v0.86.0

func (c *Client) GetDatabaseMigrationStatus(ctx context.Context, zone string, name string) (*DatabaseMigrationStatus, error)

func (*Client) GetDatabaseServiceType added in v0.57.0

func (c *Client) GetDatabaseServiceType(ctx context.Context, zone, name string) (*DatabaseServiceType, error)

GetDatabaseServiceType returns the Database Service type corresponding to the specified name.

func (*Client) GetDeployTarget added in v0.48.0

func (c *Client) GetDeployTarget(ctx context.Context, zone, id string) (*DeployTarget, error)

GetDeployTarget returns the Deploy Target corresponding to the specified ID.

func (*Client) GetElasticIP added in v0.45.0

func (c *Client) GetElasticIP(ctx context.Context, zone, id string) (*ElasticIP, error)

GetElasticIP returns the Elastic IP corresponding to the specified ID.

func (*Client) GetElasticIPReverseDNS added in v0.92.0

func (c *Client) GetElasticIPReverseDNS(ctx context.Context, zone, id string) (string, error)

GetElasticIPReverseDNS returns the Reverse DNS record corresponding to the specified Elastic IP ID.

func (*Client) GetIAMAccessKey added in v0.82.0

func (c *Client) GetIAMAccessKey(ctx context.Context, zone, key string) (*IAMAccessKey, error)

GetIAMAccessKey returns the IAM access key corresponding to the specified key.

func (*Client) GetIAMOrgPolicy added in v0.102.0

func (c *Client) GetIAMOrgPolicy(ctx context.Context, zone string) (*IAMPolicy, error)

GetIAMOrgPolicy returns the IAM Organization policy.

func (*Client) GetIAMRole added in v0.102.0

func (c *Client) GetIAMRole(ctx context.Context, zone, id string) (*IAMRole, error)

GetIAMRole returns the IAM Role.

func (*Client) GetInstance added in v0.48.0

func (c *Client) GetInstance(ctx context.Context, zone, id string) (*Instance, error)

GetInstance returns the Instance corresponding to the specified ID.

func (*Client) GetInstancePool added in v0.44.0

func (c *Client) GetInstancePool(ctx context.Context, zone, id string) (*InstancePool, error)

GetInstancePool returns the Instance Pool corresponding to the specified ID.

func (*Client) GetInstanceReverseDNS added in v0.92.0

func (c *Client) GetInstanceReverseDNS(ctx context.Context, zone, id string) (string, error)

GetInstanceReverseDNS returns the Reverse DNS record corresponding to the specified Instance ID.

func (*Client) GetInstanceType added in v0.51.0

func (c *Client) GetInstanceType(ctx context.Context, zone, id string) (*InstanceType, error)

GetInstanceType returns the Instance type corresponding to the specified ID.

func (*Client) GetNetworkLoadBalancer

func (c *Client) GetNetworkLoadBalancer(ctx context.Context, zone, id string) (*NetworkLoadBalancer, error)

GetNetworkLoadBalancer returns the Network Load Balancer corresponding to the specified ID.

func (*Client) GetPrivateNetwork added in v0.44.0

func (c *Client) GetPrivateNetwork(ctx context.Context, zone, id string) (*PrivateNetwork, error)

GetPrivateNetwork returns the Private Network corresponding to the specified ID.

func (*Client) GetQuota added in v0.69.0

func (c *Client) GetQuota(ctx context.Context, zone, resource string) (*Quota, error)

GetQuota returns the current Exoscale organization quota for the specified resource.

func (*Client) GetSKSCluster

func (c *Client) GetSKSCluster(ctx context.Context, zone, id string) (*SKSCluster, error)

GetSKSCluster returns the SKS cluster corresponding to the specified ID.

func (*Client) GetSKSClusterAuthorityCert added in v0.69.0

func (c *Client) GetSKSClusterAuthorityCert(
	ctx context.Context,
	zone string,
	cluster *SKSCluster,
	authority string,
) (string, error)

GetSKSClusterAuthorityCert returns the SKS cluster base64-encoded certificate content for the specified authority.

func (*Client) GetSKSClusterKubeconfig added in v0.69.0

func (c *Client) GetSKSClusterKubeconfig(
	ctx context.Context,
	zone string,
	cluster *SKSCluster,
	user string,
	groups []string,
	d time.Duration,
) (string, error)

GetSKSClusterKubeconfig returns a base64-encoded kubeconfig content for the specified user name, optionally associated to specified groups for a duration d (default API-set TTL applies if not specified). Fore more information: https://kubernetes.io/docs/concepts/configuration/organize-cluster-access-kubeconfig/

func (*Client) GetSSHKey added in v0.69.0

func (c *Client) GetSSHKey(ctx context.Context, zone, name string) (*SSHKey, error)

GetSSHKey returns the SSH key corresponding to the specified name.

func (*Client) GetSecurityGroup added in v0.44.0

func (c *Client) GetSecurityGroup(ctx context.Context, zone, id string) (*SecurityGroup, error)

GetSecurityGroup returns the Security Group corresponding to the specified ID.

func (*Client) GetSnapshot added in v0.48.0

func (c *Client) GetSnapshot(ctx context.Context, zone, id string) (*Snapshot, error)

GetSnapshot returns the Snapshot corresponding to the specified ID.

func (*Client) GetTemplate added in v0.48.0

func (c *Client) GetTemplate(ctx context.Context, zone, id string) (*Template, error)

GetTemplate returns the Template corresponding to the specified ID.

func (*Client) GetTemplateByName added in v0.94.0

func (c *Client) GetTemplateByName(ctx context.Context, zone string, templateName string, visibility string) (*Template, error)

GetTemplateByName returns the newest Template corresponding to the specified Name.

func (*Client) ListAPIKeys added in v0.102.0

func (c *Client) ListAPIKeys(ctx context.Context, zone string) ([]*APIKey, error)

ListAPIKeys returns the list of existing IAM API Keys.

func (*Client) ListAntiAffinityGroups added in v0.44.0

func (c *Client) ListAntiAffinityGroups(ctx context.Context, zone string) ([]*AntiAffinityGroup, error)

ListAntiAffinityGroups returns the list of existing Anti-Affinity Groups.

func (*Client) ListDNSDomainRecords added in v0.89.0

func (c *Client) ListDNSDomainRecords(ctx context.Context, zone, id string) ([]DNSDomainRecord, error)

ListDNSDomainRecords returns the list of records for DNS domain.

func (*Client) ListDNSDomains added in v0.89.0

func (c *Client) ListDNSDomains(ctx context.Context, zone string) ([]DNSDomain, error)

ListDNSDomains returns the list of DNS domains.

func (*Client) ListDatabaseServiceTypes added in v0.57.0

func (c *Client) ListDatabaseServiceTypes(ctx context.Context, zone string) ([]*DatabaseServiceType, error)

ListDatabaseServiceTypes returns the list of existing Database Service types.

func (*Client) ListDatabaseServices added in v0.57.0

func (c *Client) ListDatabaseServices(ctx context.Context, zone string) ([]*DatabaseService, error)

ListDatabaseServices returns the list of Database Services.

func (*Client) ListDeployTargets added in v0.48.0

func (c *Client) ListDeployTargets(ctx context.Context, zone string) ([]*DeployTarget, error)

ListDeployTargets returns the list of existing Deploy Targets.

func (*Client) ListElasticIPs added in v0.45.0

func (c *Client) ListElasticIPs(ctx context.Context, zone string) ([]*ElasticIP, error)

ListElasticIPs returns the list of existing Elastic IPs.

func (*Client) ListIAMAccessKeyOperations added in v0.82.0

func (c *Client) ListIAMAccessKeyOperations(ctx context.Context, zone string) ([]*IAMAccessKeyOperation, error)

ListIAMAccessKeyOperations returns the list of all available API operations supported by IAM access keys.

func (*Client) ListIAMAccessKeys added in v0.82.0

func (c *Client) ListIAMAccessKeys(ctx context.Context, zone string) ([]*IAMAccessKey, error)

ListIAMAccessKeys returns the list of existing IAM access keys.

func (*Client) ListIAMRoles added in v0.102.0

func (c *Client) ListIAMRoles(ctx context.Context, zone string) ([]*IAMRole, error)

ListIAMRoles returns the list of existing IAM Roles.

func (*Client) ListInstancePools added in v0.44.0

func (c *Client) ListInstancePools(ctx context.Context, zone string) ([]*InstancePool, error)

ListInstancePools returns the list of existing Instance Pools.

func (*Client) ListInstanceTypes added in v0.51.0

func (c *Client) ListInstanceTypes(ctx context.Context, zone string) ([]*InstanceType, error)

ListInstanceTypes returns the list of existing Instance types.

func (*Client) ListInstances added in v0.48.0

func (c *Client) ListInstances(ctx context.Context, zone string, opts ...ListInstancesOpt) ([]*Instance, error)

ListInstances returns the list of existing Compute instances.

func (*Client) ListMyIAMAccessKeyOperations added in v0.82.0

func (c *Client) ListMyIAMAccessKeyOperations(ctx context.Context, zone string) ([]*IAMAccessKeyOperation, error)

ListMyIAMAccessKeyOperations returns the list of operations the current API access key performing the request is restricted to.

func (*Client) ListNetworkLoadBalancers

func (c *Client) ListNetworkLoadBalancers(ctx context.Context, zone string) ([]*NetworkLoadBalancer, error)

ListNetworkLoadBalancers returns the list of existing Network Load Balancers in the specified zone.

func (*Client) ListPrivateNetworks added in v0.44.0

func (c *Client) ListPrivateNetworks(ctx context.Context, zone string) ([]*PrivateNetwork, error)

ListPrivateNetworks returns the list of existing Private Networks.

func (*Client) ListQuotas added in v0.69.0

func (c *Client) ListQuotas(ctx context.Context, zone string) ([]*Quota, error)

ListQuotas returns the list of Exoscale organization quotas.

func (*Client) ListSKSClusterDeprecatedResources added in v0.85.0

func (c *Client) ListSKSClusterDeprecatedResources(
	ctx context.Context,
	zone string,
	cluster *SKSCluster,
) ([]*SKSClusterDeprecatedResource, error)

func (*Client) ListSKSClusterVersions

func (c *Client) ListSKSClusterVersions(ctx context.Context, opts ...ListSKSClusterVersionsOpt) ([]string, error)

ListSKSClusterVersions returns the list of Kubernetes versions supported during SKS cluster creation.

func (*Client) ListSKSClusters

func (c *Client) ListSKSClusters(ctx context.Context, zone string) ([]*SKSCluster, error)

ListSKSClusters returns the list of existing SKS clusters.

func (*Client) ListSSHKeys added in v0.69.0

func (c *Client) ListSSHKeys(ctx context.Context, zone string) ([]*SSHKey, error)

ListSSHKeys returns the list of existing SSH keys.

func (*Client) ListSecurityGroups added in v0.44.0

func (c *Client) ListSecurityGroups(ctx context.Context, zone string) ([]*SecurityGroup, error)

ListSecurityGroups returns the list of existing Security Groups.

func (*Client) ListSnapshots added in v0.48.0

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

ListSnapshots returns the list of existing Snapshots.

func (*Client) ListTemplates added in v0.48.0

func (c *Client) ListTemplates(ctx context.Context, zone string, opts ...ListTemplatesOpt) ([]*Template, error)

ListTemplates returns the list of existing Templates.

func (*Client) ListZones

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

ListZones returns the list of Exoscale zones.

func (*Client) RebootInstance added in v0.69.0

func (c *Client) RebootInstance(ctx context.Context, zone string, instance *Instance) error

RebootInstance reboots a Compute instance.

func (*Client) RegisterSSHKey added in v0.69.0

func (c *Client) RegisterSSHKey(ctx context.Context, zone, name, publicKey string) (*SSHKey, error)

RegisterSSHKey registers a new SSH key.

func (*Client) RegisterTemplate added in v0.63.0

func (c *Client) RegisterTemplate(ctx context.Context, zone string, template *Template) (*Template, error)

RegisterTemplate registers a new Template.

func (*Client) RemoveExternalSourceFromSecurityGroup added in v0.73.0

func (c *Client) RemoveExternalSourceFromSecurityGroup(
	ctx context.Context,
	zone string,
	securityGroup *SecurityGroup,
	cidr string,
) error

RemoveExternalSourceFromSecurityGroup removes an external source from a Security Group. This operation is idempotent.

func (*Client) ResetInstance added in v0.69.0

func (c *Client) ResetInstance(ctx context.Context, zone string, instance *Instance, opts ...ResetInstanceOpt) error

ResetInstance resets a Compute instance to a base template state (the instance's current template if not specified).

func (*Client) ResizeInstanceDisk added in v0.69.0

func (c *Client) ResizeInstanceDisk(ctx context.Context, zone string, instance *Instance, size int64) error

ResizeInstanceDisk resizes a Compute instance's disk to a larger size.

func (*Client) RevealInstancePassword added in v0.99.0

func (c *Client) RevealInstancePassword(ctx context.Context, zone string, instance *Instance) (string, error)

RevealInstancePassword retrieves a recently started instance's root password if possible.

func (*Client) RevertInstanceToSnapshot added in v0.69.0

func (c *Client) RevertInstanceToSnapshot(
	ctx context.Context,
	zone string,
	instance *Instance,
	snapshot *Snapshot,
) error

RevertInstanceToSnapshot reverts a Compute instance storage volume to the specified Snapshot.

func (*Client) RevokeIAMAccessKey added in v0.82.0

func (c *Client) RevokeIAMAccessKey(ctx context.Context, zone string, iamAccessKey *IAMAccessKey) error

RevokeIAMAccessKey revokes an IAM access key.

func (*Client) RotateSKSClusterCCMCredentials added in v0.69.0

func (c *Client) RotateSKSClusterCCMCredentials(ctx context.Context, zone string, cluster *SKSCluster) error

RotateSKSClusterCCMCredentials rotates the Exoscale IAM credentials managed by the SKS control plane for the Kubernetes Exoscale Cloud Controller Manager.

func (*Client) ScaleInstance added in v0.69.0

func (c *Client) ScaleInstance(ctx context.Context, zone string, instance *Instance, instanceType *InstanceType) error

ScaleInstance scales a Compute instance type.

func (*Client) ScaleInstancePool added in v0.69.0

func (c *Client) ScaleInstancePool(ctx context.Context, zone string, instancePool *InstancePool, size int64) error

ScaleInstancePool scales an Instance Pool.

func (*Client) ScaleSKSNodepool added in v0.69.0

func (c *Client) ScaleSKSNodepool(
	ctx context.Context,
	zone string,
	cluster *SKSCluster,
	nodepool *SKSNodepool,
	size int64,
) error

ScaleSKSNodepool scales the SKS cluster Nodepool to the specified number of Kubernetes Nodes.

func (*Client) SetHTTPClient added in v0.47.0

func (c *Client) SetHTTPClient(client *http.Client)

SetHTTPClient overrides the current HTTP client. As we don't return error, any error during intialization of client will make SetHTTPClient NOOP.

func (*Client) SetTimeout added in v0.47.0

func (c *Client) SetTimeout(v time.Duration)

SetTimeout overrides the current client timeout value.

func (*Client) SetTrace added in v0.47.0

func (c *Client) SetTrace(enabled bool)

SetTrace enables or disables HTTP request/response tracing.

func (*Client) StartInstance added in v0.69.0

func (c *Client) StartInstance(ctx context.Context, zone string, instance *Instance, opts ...StartInstanceOpt) error

StartInstance starts a Compute instance.

func (*Client) StopInstance added in v0.69.0

func (c *Client) StopInstance(ctx context.Context, zone string, instance *Instance) error

StopInstance stops a Compute instance.

func (*Client) StopMysqlDatabaseMigration added in v0.97.0

func (c *Client) StopMysqlDatabaseMigration(ctx context.Context, zone string, name string) error

StopMysqlDatabaseMigration stops running Database migration.

func (*Client) StopPgDatabaseMigration added in v0.97.0

func (c *Client) StopPgDatabaseMigration(ctx context.Context, zone string, name string) error

StopPgDatabaseMigration stops running Database migration.

func (*Client) StopRedisDatabaseMigration added in v0.97.0

func (c *Client) StopRedisDatabaseMigration(ctx context.Context, zone string, name string) error

StopRedisDatabaseMigration stops running Database migration.

func (*Client) UpdateDNSDomainRecord added in v0.89.0

func (c *Client) UpdateDNSDomainRecord(ctx context.Context, zone, domainID string, record *DNSDomainRecord) error

UpdateDNSDomainRecord updates existing DNS domain record.

func (*Client) UpdateElasticIP added in v0.45.0

func (c *Client) UpdateElasticIP(ctx context.Context, zone string, elasticIP *ElasticIP) error

UpdateElasticIP updates an Elastic IP.

func (*Client) UpdateElasticIPReverseDNS added in v0.92.0

func (c *Client) UpdateElasticIPReverseDNS(ctx context.Context, zone, id, domain string) error

UpdateElasticIPReverseDNS updates a Reverse DNS record for a ElasticIP.

func (*Client) UpdateIAMOrgPolicy added in v0.102.0

func (c *Client) UpdateIAMOrgPolicy(ctx context.Context, zone string, policy *IAMPolicy) error

UpdateIAMOrgPolicy updates existing IAM Organization policy.

func (*Client) UpdateIAMRole added in v0.102.0

func (c *Client) UpdateIAMRole(ctx context.Context, zone string, role *IAMRole) error

UpdateIAMRole updates existing IAM Role.

func (*Client) UpdateIAMRolePolicy added in v0.102.0

func (c *Client) UpdateIAMRolePolicy(ctx context.Context, zone string, role *IAMRole) error

UpdateIAMRolePolicy updates existing IAM Role policy.

func (*Client) UpdateInstance added in v0.48.0

func (c *Client) UpdateInstance(ctx context.Context, zone string, instance *Instance) error

UpdateInstance updates a Compute instance.

func (*Client) UpdateInstancePool added in v0.44.0

func (c *Client) UpdateInstancePool(ctx context.Context, zone string, instancePool *InstancePool) error

UpdateInstancePool updates an Instance Pool.

func (*Client) UpdateInstanceReverseDNS added in v0.92.0

func (c *Client) UpdateInstanceReverseDNS(ctx context.Context, zone, id, domain string) error

UpdateInstanceReverseDNS updates a Reverse DNS record for a Compute Instance.

func (*Client) UpdateNetworkLoadBalancer

func (c *Client) UpdateNetworkLoadBalancer(ctx context.Context, zone string, nlb *NetworkLoadBalancer) error

UpdateNetworkLoadBalancer updates a Network Load Balancer.

func (*Client) UpdateNetworkLoadBalancerService added in v0.69.0

func (c *Client) UpdateNetworkLoadBalancerService(
	ctx context.Context,
	zone string,
	nlb *NetworkLoadBalancer,
	service *NetworkLoadBalancerService,
) error

UpdateNetworkLoadBalancerService updates a Network Load Balancer service.

func (*Client) UpdatePrivateNetwork added in v0.44.0

func (c *Client) UpdatePrivateNetwork(ctx context.Context, zone string, privateNetwork *PrivateNetwork) error

UpdatePrivateNetwork updates a Private Network.

func (*Client) UpdatePrivateNetworkInstanceIPAddress added in v0.69.0

func (c *Client) UpdatePrivateNetworkInstanceIPAddress(
	ctx context.Context,
	zone string,
	instance *Instance,
	privateNetwork *PrivateNetwork,
	ip net.IP,
) error

UpdatePrivateNetworkInstanceIPAddress updates the IP address of a Compute instance attached to a managed Private Network.

func (*Client) UpdateSKSCluster

func (c *Client) UpdateSKSCluster(ctx context.Context, zone string, cluster *SKSCluster) error

UpdateSKSCluster updates an SKS cluster.

func (*Client) UpdateSKSNodepool added in v0.69.0

func (c *Client) UpdateSKSNodepool(
	ctx context.Context,
	zone string,
	cluster *SKSCluster,
	nodepool *SKSNodepool,
) error

UpdateSKSNodepool updates an SKS Nodepool.

func (*Client) UpdateTemplate added in v0.80.0

func (c *Client) UpdateTemplate(ctx context.Context, zone string, template *Template) error

UpdateTemplate updates a Template.

func (*Client) UpgradeSKSCluster

func (c *Client) UpgradeSKSCluster(ctx context.Context, zone string, cluster *SKSCluster, version string) error

UpgradeSKSCluster upgrades an SKS cluster to the requested Kubernetes version.

func (*Client) UpgradeSKSClusterServiceLevel added in v0.71.0

func (c *Client) UpgradeSKSClusterServiceLevel(ctx context.Context, zone string, cluster *SKSCluster) error

UpgradeSKSClusterServiceLevel upgrades an SKS cluster to service level "pro".

func (*Client) WaitInstancePoolConverged added in v0.88.0

func (c *Client) WaitInstancePoolConverged(ctx context.Context, zone string, instancePoolID string) error

type ClientOpt

type ClientOpt func(*Client) error

ClientOpt represents a function setting Exoscale API client option.

func ClientOptCond added in v0.44.0

func ClientOptCond(fc func() bool, opt ClientOpt) ClientOpt

ClientOptCond returns the specified ClientOpt if the fc function bool result evaluates to true, otherwise returns a no-op ClientOpt.

func ClientOptWithAPIEndpoint

func ClientOptWithAPIEndpoint(v string) ClientOpt

ClientOptWithAPIEndpoint returns a ClientOpt overriding the default Exoscale API endpoint.

func ClientOptWithHTTPClient

func ClientOptWithHTTPClient(v *http.Client) ClientOpt

ClientOptWithHTTPClient returns a ClientOpt overriding the default http.Client. Note: the Exoscale API client will chain additional middleware (http.RoundTripper) on the HTTP client internally, which can alter the HTTP requests and responses. If you don't want any other middleware than the ones currently set to your HTTP client, you should duplicate it and pass a copy instead.

func ClientOptWithPollInterval added in v0.52.0

func ClientOptWithPollInterval(v time.Duration) ClientOpt

ClientOptWithPollInterval returns a ClientOpt overriding the default client async operation polling interval.

func ClientOptWithTimeout

func ClientOptWithTimeout(v time.Duration) ClientOpt

ClientOptWithTimeout returns a ClientOpt overriding the default client timeout.

func ClientOptWithTrace added in v0.44.0

func ClientOptWithTrace() ClientOpt

ClientOptWithTrace returns a ClientOpt enabling HTTP request/response tracing.

type CreateIAMAccessKeyOpt added in v0.82.0

type CreateIAMAccessKeyOpt func(*oapi.CreateAccessKeyJSONRequestBody)

CreateIAMAccessKeyOpt represents a CreateIAMAccessKey operation option.

func CreateIAMAccessKeyWithOperations added in v0.82.0

func CreateIAMAccessKeyWithOperations(v []string) CreateIAMAccessKeyOpt

CreateIAMAccessKeyWithOperations sets a restricted list of API operations to the IAM access key.

func CreateIAMAccessKeyWithResources added in v0.83.0

func CreateIAMAccessKeyWithResources(v []IAMAccessKeyResource) CreateIAMAccessKeyOpt

CreateIAMAccessKeyWithResources sets a restricted list of API resources to the IAM access key.

func CreateIAMAccessKeyWithTags added in v0.82.0

func CreateIAMAccessKeyWithTags(v []string) CreateIAMAccessKeyOpt

CreateIAMAccessKeyWithTags sets a restricted list of API operation tags to the IAM access key.

type CreateSKSClusterOpt added in v0.82.0

type CreateSKSClusterOpt func(body *oapi.CreateSksClusterJSONRequestBody) error

CreateSKSClusterOpt represents a CreateSKSCluster operation option.

func CreateSKSClusterWithOIDC added in v0.82.0

func CreateSKSClusterWithOIDC(v *SKSClusterOIDCConfig) CreateSKSClusterOpt

CreateSKSClusterWithOIDC sets the OpenID Connect configuration to provide to the Kubernetes API Server.

type DNSDomain added in v0.89.0

type DNSDomain struct {
	CreatedAt   *time.Time
	ID          *string `req-for:"delete"`
	UnicodeName *string `req-for:"create"`
}

DNSDomain represents a DNS domain.

type DNSDomainRecord added in v0.89.0

type DNSDomainRecord struct {
	Content   *string `req-for:"create"`
	CreatedAt *time.Time
	ID        *string `req-for:"delete,update"`
	Name      *string `req-for:"create"`
	Priority  *int64
	TTL       *int64
	Type      *string `req-for:"create"`
	UpdatedAt *time.Time
}

DNSDomainRecord represents a DNS record.

type DatabaseBackupConfig added in v0.57.0

type DatabaseBackupConfig struct {
	FrequentIntervalMinutes    *int64
	FrequentOldestAgeMinutes   *int64
	InfrequentIntervalMinutes  *int64
	InfrequentOldestAgeMinutes *int64
	Interval                   *int64
	MaxCount                   *int64
	RecoveryMode               *string
}

DatabaseBackupConfig represents a Database Backup configuration.

type DatabaseMigrationRedisMasterLinkStatus added in v0.86.0

type DatabaseMigrationRedisMasterLinkStatus string
const (
	MasterLinkStatusDown DatabaseMigrationRedisMasterLinkStatus = "down"

	MasterLinkStatusUp DatabaseMigrationRedisMasterLinkStatus = "up"
)

Defines values for MasterLinkStatus.

type DatabaseMigrationStatus added in v0.86.0

type DatabaseMigrationStatus struct {
	// Migration status per database
	Details []DatabaseMigrationStatusDetails

	// Error message in case that migration has failed
	Error *string

	// Redis only: how many seconds since last I/O with redis master
	MasterLastIOSecondsAgo *int64
	MasterLinkStatus       *DatabaseMigrationRedisMasterLinkStatus

	// Migration method. Empty in case of multiple methods or error
	Method *string

	// Migration status
	Status *string
}

type DatabaseMigrationStatusDetails added in v0.86.0

type DatabaseMigrationStatusDetails struct {
	// Migrated db name (PG) or number (Redis)
	DBName *string

	// Error message in case that migration has failed
	Error *string

	// Migration method
	Method *string
	Status *DatabaseMigrationStatusDetailsStatus
}

type DatabaseMigrationStatusDetailsStatus added in v0.86.0

type DatabaseMigrationStatusDetailsStatus string
const (
	DatabaseMigrationStatusDone    DatabaseMigrationStatusDetailsStatus = "done"
	DatabaseMigrationStatusFailed  DatabaseMigrationStatusDetailsStatus = "failed"
	DatabaseMigrationStatusRunning DatabaseMigrationStatusDetailsStatus = "running"
	DatabaseMigrationStatusSyncing DatabaseMigrationStatusDetailsStatus = "syncing"
)

type DatabasePlan added in v0.57.0

type DatabasePlan struct {
	Authorized       *bool
	BackupConfig     *DatabaseBackupConfig
	DiskSpace        *int64
	MaxMemoryPercent *int64
	Name             *string
	Nodes            *int64
	NodeCPUs         *int64
	NodeMemory       *int64
}

DatabasePlan represents a Database Plan.

type DatabaseService added in v0.57.0

type DatabaseService struct {
	CreatedAt             *time.Time
	DiskSize              *int64
	Name                  *string `req-for:"delete"`
	Nodes                 *int64
	NodeCPUs              *int64
	NodeMemory            *int64
	Notifications         []*DatabaseServiceNotification
	Plan                  *string
	State                 *string
	TerminationProtection *bool
	Type                  *string
	UpdatedAt             *time.Time
	Zone                  *string
}

DatabaseService represents a Database Service.

type DatabaseServiceComponent added in v0.70.0

type DatabaseServiceComponent struct {
	Name *string
	Info map[string]interface{}
}

DatabaseServiceComponent represents a Database Service component.

type DatabaseServiceNotification added in v0.78.0

type DatabaseServiceNotification struct {
	Level   string
	Message string
	Type    string
}

DatabaseServiceNotification represents a Database Service notification.

type DatabaseServiceType added in v0.57.0

type DatabaseServiceType struct {
	AvailableVersions *[]string
	DefaultVersion    *string
	Description       *string
	Name              *string
	Plans             []*DatabasePlan
}

DatabaseServiceType represents a Database Service type.

type DeployTarget added in v0.48.0

type DeployTarget struct {
	Description *string
	ID          *string
	Name        *string
	Type        *string
	Zone        *string
}

DeployTarget represents a Deploy Target.

type ElasticIP added in v0.45.0

type ElasticIP struct {
	Description   *string
	Healthcheck   *ElasticIPHealthcheck
	ID            *string `req-for:"update,delete"`
	IPAddress     *net.IP
	Labels        *map[string]string
	Zone          *string
	CIDR          *string
	AddressFamily *string
}

ElasticIP represents an Elastic IP.

type ElasticIPHealthcheck added in v0.45.0

type ElasticIPHealthcheck struct {
	Interval      *time.Duration
	Mode          *string `req-for:"create,update"`
	Port          *uint16 `req-for:"create,update"`
	StrikesFail   *int64
	StrikesOK     *int64
	TLSSNI        *string
	TLSSkipVerify *bool
	Timeout       *time.Duration
	URI           *string
}

ElasticIPHealthcheck represents an Elastic IP healthcheck.

type IAMAccessKey added in v0.82.0

type IAMAccessKey struct {
	Key        *string `req-for:"delete"`
	Name       *string
	Operations *[]string
	Resources  *[]IAMAccessKeyResource
	Secret     *string
	Tags       *[]string
	Type       *string
	Version    *string
}

IAMAccessKey represents an IAM access key.

type IAMAccessKeyOperation added in v0.82.0

type IAMAccessKeyOperation struct {
	Name string
	Tags []string
}

IAMAccessKeyOperation represents an API operation supported by an IAM access key.

type IAMAccessKeyResource added in v0.83.0

type IAMAccessKeyResource struct {
	Domain       string
	ResourceName string
	ResourceType string
}

IAMAccessKeyResource represents an API resource accessible to an IAM access key.

type IAMPolicy added in v0.102.0

type IAMPolicy struct {
	DefaultServiceStrategy string
	Services               map[string]IAMPolicyService
}

IAMPolicy represents an IAM policy resource.

type IAMPolicyService added in v0.102.0

type IAMPolicyService struct {
	Type  *string
	Rules []IAMPolicyServiceRule
}

IAMPolicyService represents a service of IAM policy.

type IAMPolicyServiceRule added in v0.102.0

type IAMPolicyServiceRule struct {
	Action     *string
	Expression *string
	Resources  []string
}

IamPolicyServiceRule represents service rule of IAM policy.

type IAMRole added in v0.102.0

type IAMRole struct {
	ID          *string `req-for:"delete,update"`
	Description *string
	Editable    *bool
	Labels      map[string]string
	Name        *string `req-for:"create"`
	Permissions []string
	Policy      *IAMPolicy
}

IAMRole represents an IAM Role resource.

type Instance added in v0.48.0

type Instance struct {
	AntiAffinityGroupIDs *[]string
	CreatedAt            *time.Time
	DeployTargetID       *string
	DiskSize             *int64 `req-for:"create"`
	ElasticIPIDs         *[]string
	ID                   *string `req-for:"update,delete"`
	IPv6Address          *net.IP
	IPv6Enabled          *bool
	InstanceTypeID       *string `req-for:"create"`
	Labels               *map[string]string
	Manager              *InstanceManager
	Name                 *string `req-for:"create"`
	PrivateNetworkIDs    *[]string
	PublicIPAddress      *net.IP
	PublicIPAssignment   *string
	SSHKey               *string
	SecurityGroupIDs     *[]string
	SnapshotIDs          *[]string
	State                *string
	TemplateID           *string `req-for:"create"`
	UserData             *string
	Zone                 *string
}

Instance represents a Compute instance.

type InstanceManager added in v0.50.0

type InstanceManager struct {
	ID   string
	Type string
}

InstanceManager represents a Compute instance manager.

type InstancePool added in v0.44.0

type InstancePool struct {
	AntiAffinityGroupIDs *[]string
	DeployTargetID       *string
	Description          *string
	DiskSize             *int64 `req-for:"create"`
	ElasticIPIDs         *[]string
	ID                   *string `req-for:"update,delete"`
	IPv6Enabled          *bool
	InstanceIDs          *[]string
	InstancePrefix       *string
	InstanceTypeID       *string `req-for:"create"`
	Labels               *map[string]string
	Manager              *InstancePoolManager
	Name                 *string `req-for:"create"`
	PrivateNetworkIDs    *[]string
	SSHKey               *string
	SecurityGroupIDs     *[]string
	Size                 *int64 `req-for:"create"`
	State                *string
	TemplateID           *string `req-for:"create"`
	UserData             *string
	Zone                 *string
}

InstancePool represents an Instance Pool.

type InstancePoolManager added in v0.64.0

type InstancePoolManager struct {
	ID   string
	Type string
}

InstancePoolManager represents an Instance Pool manager.

type InstanceType added in v0.51.0

type InstanceType struct {
	Authorized *bool
	CPUs       *int64
	Family     *string
	GPUs       *int64
	ID         *string
	Memory     *int64
	Size       *string
}

InstanceType represents a Compute instance type.

type ListInstancesOpt added in v0.82.0

type ListInstancesOpt func(params *oapi.ListInstancesParams)

ListInstancesOpt represents a ListInstances operation option.

func ListInstancesByIpAddress added in v0.98.0

func ListInstancesByIpAddress(v string) ListInstancesOpt

ListInstancesByIpAddress sets a Compute instances listing filter based on an IP Address.

func ListInstancesByManagerID added in v0.82.0

func ListInstancesByManagerID(v string) ListInstancesOpt

ListInstancesByManagerID sets a Compute instances listing filter based on a manager ID.

func ListInstancesByManagerType added in v0.82.0

func ListInstancesByManagerType(v string) ListInstancesOpt

ListInstancesByManagerType sets a Compute instances listing filter based on a manager type.

type ListSKSClusterVersionsOpt added in v0.79.0

type ListSKSClusterVersionsOpt func(params *oapi.ListSksClusterVersionsParams)

ListSKSClusterVersionsOpt represents a ListSKSClusterVersions operation option.

func ListSKSClusterVersionsWithDeprecated added in v0.79.0

func ListSKSClusterVersionsWithDeprecated(v bool) ListSKSClusterVersionsOpt

ListSKSClusterVersionsWithDeprecated includes deprecated results when listing SKS Cluster versions nolint:gocritic

type ListTemplatesOpt added in v0.77.0

type ListTemplatesOpt func(params *oapi.ListTemplatesParams)

ListTemplatesOpt represents an ListTemplates operation option.

func ListTemplatesWithFamily added in v0.77.0

func ListTemplatesWithFamily(v string) ListTemplatesOpt

ListTemplatesWithFamily sets a family filter to list Templates with.

func ListTemplatesWithVisibility added in v0.77.0

func ListTemplatesWithVisibility(v string) ListTemplatesOpt

ListTemplatesWithVisibility sets a visibility filter to list Templates with (default: "public").

type NetworkLoadBalancer

type NetworkLoadBalancer struct {
	CreatedAt   *time.Time
	Description *string
	ID          *string `req-for:"update,delete"`
	IPAddress   *net.IP
	Labels      *map[string]string
	Name        *string `req-for:"create"`
	Services    []*NetworkLoadBalancerService
	State       *string
	Zone        *string
}

NetworkLoadBalancer represents a Network Load Balancer.

type NetworkLoadBalancerServerStatus

type NetworkLoadBalancerServerStatus struct {
	InstanceIP *net.IP
	Status     *string
}

NetworkLoadBalancerServerStatus represents a Network Load Balancer service target server status.

type NetworkLoadBalancerService

type NetworkLoadBalancerService struct {
	Description       *string
	Healthcheck       *NetworkLoadBalancerServiceHealthcheck `req-for:"create"`
	HealthcheckStatus []*NetworkLoadBalancerServerStatus
	ID                *string `req-for:"update,delete"`
	InstancePoolID    *string `req-for:"create"`
	Name              *string `req-for:"create"`
	Port              *uint16 `req-for:"create"`
	Protocol          *string `req-for:"create"`
	State             *string
	Strategy          *string `req-for:"create"`
	TargetPort        *uint16 `req-for:"create"`
}

NetworkLoadBalancerService represents a Network Load Balancer service.

type NetworkLoadBalancerServiceHealthcheck

type NetworkLoadBalancerServiceHealthcheck struct {
	Interval *time.Duration `req-for:"create,update"`
	Mode     *string        `req-for:"create,update"`
	Port     *uint16        `req-for:"create,update"`
	Retries  *int64
	TLSSNI   *string
	Timeout  *time.Duration
	URI      *string
}

NetworkLoadBalancerServiceHealthcheck represents a Network Load Balancer service healthcheck.

type PrivateNetwork added in v0.44.0

type PrivateNetwork struct {
	Description *string
	EndIP       *net.IP
	ID          *string `req-for:"update,delete"`
	Labels      *map[string]string
	Name        *string `req-for:"create"`
	Netmask     *net.IP
	StartIP     *net.IP
	Leases      []*PrivateNetworkLease
	Zone        *string
}

PrivateNetwork represents a Private Network.

type PrivateNetworkLease added in v0.62.0

type PrivateNetworkLease struct {
	InstanceID *string
	IPAddress  *net.IP
}

PrivateNetworkLease represents a managed Private Network lease.

type Quota added in v0.69.0

type Quota struct {
	Resource *string
	Usage    *int64
	Limit    *int64
}

Quota represents an Exoscale organization quota.

type ResetInstanceOpt added in v0.77.0

type ResetInstanceOpt func(*oapi.ResetInstanceJSONRequestBody)

ResetInstanceOpt represents a ResetInstance operation option.

func ResetInstanceWithDiskSize added in v0.77.0

func ResetInstanceWithDiskSize(v int64) ResetInstanceOpt

ResetInstanceWithDiskSize sets a new disk size to set the Compute instance.

func ResetInstanceWithTemplate added in v0.77.0

func ResetInstanceWithTemplate(v *Template) ResetInstanceOpt

ResetInstanceWithTemplate sets a template to reset the Compute instance to.

type SKSCluster

type SKSCluster struct {
	AddOns       *[]string
	AutoUpgrade  *bool
	CNI          *string
	CreatedAt    *time.Time
	Description  *string
	Endpoint     *string
	ID           *string `req-for:"update,delete"`
	Labels       *map[string]string
	Name         *string `req-for:"create"`
	Nodepools    []*SKSNodepool
	ServiceLevel *string `req-for:"create"`
	State        *string
	Version      *string `req-for:"create"`
	Zone         *string
}

SKSCluster represents an SKS cluster.

type SKSClusterDeprecatedResource added in v0.85.0

type SKSClusterDeprecatedResource struct {
	Group          *string
	RemovedRelease *string
	Resource       *string
	SubResource    *string
	Version        *string
	RawProperties  map[string]string
}

SKSClusterDeprecatedResource represents an resources deployed in a cluster that will be removed in a future release of Kubernetes.

type SKSClusterOIDCConfig added in v0.82.0

type SKSClusterOIDCConfig struct {
	ClientID       *string `req-for:"create"`
	GroupsClaim    *string
	GroupsPrefix   *string
	IssuerURL      *string `req-for:"create"`
	RequiredClaim  *map[string]string
	UsernameClaim  *string
	UsernamePrefix *string
}

SKSClusterOIDCConfig represents an SKS cluster OpenID Connect configuration.

type SKSNodepool

type SKSNodepool struct {
	AddOns               *[]string
	AntiAffinityGroupIDs *[]string
	CreatedAt            *time.Time
	DeployTargetID       *string
	Description          *string
	DiskSize             *int64  `req-for:"create"`
	ID                   *string `req-for:"update,delete"`
	InstancePoolID       *string
	InstancePrefix       *string
	InstanceTypeID       *string `req-for:"create"`
	Labels               *map[string]string
	Name                 *string `req-for:"create"`
	PrivateNetworkIDs    *[]string
	SecurityGroupIDs     *[]string
	Size                 *int64 `req-for:"create"`
	State                *string
	Taints               *map[string]*SKSNodepoolTaint
	TemplateID           *string
	Version              *string
}

SKSNodepool represents an SKS Nodepool.

type SKSNodepoolTaint added in v0.76.0

type SKSNodepoolTaint struct {
	Effect string
	Value  string
}

SKSNodepoolTaint represents an SKS Nodepool Kubernetes Node taint.

type SSHKey added in v0.69.0

type SSHKey struct {
	Fingerprint *string
	Name        *string `req-for:"delete"`
}

SSHKey represents an SSH key.

type SecurityGroup added in v0.44.0

type SecurityGroup struct {
	Description     *string
	ID              *string `req-for:"update,delete"`
	Name            *string `req-for:"create"`
	ExternalSources *[]string
	Rules           []*SecurityGroupRule
}

SecurityGroup represents a Security Group.

type SecurityGroupRule added in v0.44.0

type SecurityGroupRule struct {
	Description       *string
	EndPort           *uint16
	FlowDirection     *string `req-for:"create"`
	ICMPCode          *int64
	ICMPType          *int64
	ID                *string `req-for:"delete"`
	Network           *net.IPNet
	Protocol          *string `req-for:"create"`
	SecurityGroupID   *string
	SecurityGroupName *string
	Visibility        *string
	StartPort         *uint16
}

SecurityGroupRule represents a Security Group rule.

type Snapshot added in v0.48.0

type Snapshot struct {
	CreatedAt  *time.Time
	ID         *string `req-for:"update,delete"`
	InstanceID *string
	Name       *string
	Size       *int64
	State      *string
	Zone       *string
}

Snapshot represents a Snapshot.

type SnapshotExport added in v0.48.0

type SnapshotExport struct {
	MD5sum       *string
	PresignedURL *string
}

SnapshotExport represents exported Snapshot information.

type StartInstanceOpt added in v0.75.0

type StartInstanceOpt func(*oapi.StartInstanceJSONRequestBody)

StartInstanceOpt represents a StartInstance operation option.

func StartInstanceWithRescueProfile added in v0.75.0

func StartInstanceWithRescueProfile(v string) StartInstanceOpt

StartInstanceWithRescueProfile sets the rescue profile to start a Compute instance with.

type Template added in v0.48.0

type Template struct {
	BootMode        *string
	Build           *string
	Checksum        *string `req-for:"create"`
	CreatedAt       *time.Time
	DefaultUser     *string
	Description     *string
	Family          *string
	ID              *string `req-for:"update,delete"`
	Maintainer      *string
	Name            *string `req-for:"create"`
	PasswordEnabled *bool   `req-for:"create"`
	SSHKeyEnabled   *bool   `req-for:"create"`
	Size            *int64
	URL             *string `req-for:"create"`
	Version         *string
	Visibility      *string
	Zone            *string
}

Template represents a Compute instance template.

type Templates added in v0.94.0

type Templates []*Template

Implement sort.Interface for []*Template by CreatedAt or by Nane

func (Templates) Len added in v0.94.0

func (s Templates) Len() int

func (Templates) Swap added in v0.94.0

func (s Templates) Swap(i, j int)

Directories

Path Synopsis
Package api implements low-level primitives for interacting with the Exoscale API.
Package api implements low-level primitives for interacting with the Exoscale API.
Package oapi provides primitives to interact with the openapi HTTP API.
Package oapi provides primitives to interact with the openapi HTTP API.

Jump to

Keyboard shortcuts

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