Documentation
¶
Index ¶
- func PublicIP(instance *Instance) (string, error)
- type Client
- func (c *Client) CreateInstance(ctx context.Context, opts CreateInstanceOptions) error
- func (c *Client) DeleteInstance(ctx context.Context, name string) error
- func (c *Client) GetInstanceByName(ctx context.Context, name string) (*Instance, error)
- func (c *Client) GetInstanceStatus(ctx context.Context, name string) (InstanceStatus, error)
- func (c *Client) Init(ctx context.Context) error
- func (c *Client) StartInstance(ctx context.Context, name string) error
- func (c *Client) StopInstance(ctx context.Context, name string) error
- type CreateInstanceOptions
- type CreateInstanceRequest
- type CreateSSHKeyRequest
- type Flavor
- type FlavorCapability
- type IP
- type Image
- type Instance
- type InstanceStatus
- type SSHKey
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type Client ¶
type Client struct {
// contains filtered or unexported fields
}
Client is an OVHCloud API client.
func NewClient ¶
func NewClient(auth *options.Authentication) (*Client, error)
NewClient creates a new Client.
func (*Client) CreateInstance ¶
func (c *Client) CreateInstance(ctx context.Context, opts CreateInstanceOptions) error
CreateInstance creates the instance using provided options.
func (*Client) DeleteInstance ¶
func (*Client) GetInstanceByName ¶
GetInstanceByName retrieves an instance by name.
func (*Client) GetInstanceStatus ¶
func (*Client) StartInstance ¶
type CreateInstanceOptions ¶
CreateInstanceOptions holds all parameters to create an instance.
type CreateInstanceRequest ¶
type CreateInstanceRequest struct {
FlavorID string `json:"flavorId"`
ImageID string `json:"imageId"`
MonthlyBilling bool `json:"monthlyBilling"`
Name string `json:"name"`
Region string `json:"region"`
SSHKeyID string `json:"sshKeyId"`
UserData string `json:"userData"`
}
CreateInstanceRequest is the payload to create an instance.
type CreateSSHKeyRequest ¶
CreateSSHKeyRequest is the payload to create an ssh key.
type Flavor ¶
type Flavor struct {
ID string `json:"id"`
Name string `json:"name"`
Region string `json:"region"`
RAM int `json:"ram"`
Disk int `json:"disk"`
Vcpus int `json:"vcpus"`
Type string `json:"type"`
OsType string `json:"osType"`
// InboundBandwidth is the max capacity of inbound traffic in Mbit/s.
InboundBandwidth int `json:"inboundBandwidth"`
// OutboundBandwidth is the max capacity of outbound traffic in Mbit/s.
OutboundBandwidth int `json:"outboundBandwidth"`
Available bool `json:"available"`
Capabilities []FlavorCapability `json:"capabilities"`
// Quota is the number instance you can spawn with your actual quota.
Quota int `json:"quota"`
}
Flavor holds compute flavor properties.
type FlavorCapability ¶
type FlavorCapability struct {
// Name of the capability
// Allowed: failoverip, resize, snapshot, volume.
Name string `json:"name"`
Enabled bool `json:"enabled"`
}
FlavorCapability holds capability for a flavor.
type IP ¶
type IP struct {
IP string `json:"ip"`
Type string `json:"type"`
Version int `json:"version"`
NetworkID string `json:"networkId"`
GatewayIP string `json:"gatewayIp"`
}
IP holds ip address properties.
type Image ¶
type Image struct {
ID string `json:"id"`
Name string `json:"name"`
Region string `json:"region"`
Visibility string `json:"visibility"`
Type string `json:"type"`
MinDisk int `json:"minDisk"`
MinRAM int `json:"minRam"`
Size float64 `json:"size"`
CreationDate time.Time `json:"creationDate"`
Status string `json:"status"`
// User is the user to connect with.
User string `json:"user"`
FlavorType string `json:"flavorType"`
Tags []string `json:"tags"`
PlanCode string `json:"planCode"`
}
Image holds compute image properties.
type Instance ¶
type Instance struct {
ID string `json:"id"`
Name string `json:"name"`
IPAddresses []IP `json:"ipAddresses"`
FlavorID string `json:"flavorId"`
ImageID string `json:"imageId"`
SSHKeyID string `json:"sshKeyId"`
Created time.Time `json:"created"`
Region string `json:"region"`
Status InstanceStatus `json:"status"`
OperationIds []string `json:"operationIds"`
}
Instance holds compute instance properties.
type InstanceStatus ¶
type InstanceStatus string
InstanceStatus defines all possibles instance status reported by API.
const ( InstanceActive InstanceStatus = "ACTIVE" InstanceBuild InstanceStatus = "BUILD" InstanceBuilding InstanceStatus = "BUILDING" InstanceDeleted InstanceStatus = "DELETED" InstanceDeleting InstanceStatus = "DELETING" InstanceError InstanceStatus = "ERROR" InstanceHardReboot InstanceStatus = "HARD_REBOOT" InstanceMigrating InstanceStatus = "MIGRATING" InstancePassword InstanceStatus = "PASSWORD" InstancePasued InstanceStatus = "PAUSED" InstanceReboot InstanceStatus = "REBOOT" InstanceRebuild InstanceStatus = "REBUILD" InstanceRescue InstanceStatus = "RESCUE" InstanceRescued InstanceStatus = "RESCUED" InstanceRescuing InstanceStatus = "RESCUING" InstanceResize InstanceStatus = "RESIZE" InstanceResized InstanceStatus = "RESIZED" InstanceResuming InstanceStatus = "RESUMING" InstanceRevertResize InstanceStatus = "REVERT_RESIZE" InstanceShelved InstanceStatus = "SHELVED" InstanceShelvedOffLoaded InstanceStatus = "SHELVED_OFFLOADED" InstanceSelving InstanceStatus = "SHELVING" InstanceShutOff InstanceStatus = "SHUTOFF" InstanceSnapshotting InstanceStatus = "SNAPSHOTTING" InstanceSoftDeleted InstanceStatus = "SOFT_DELETED" InstanceStopped InstanceStatus = "STOPPED" InstanceSuspended InstanceStatus = "SUSPENDED" InstanceUnknown InstanceStatus = "UNKNOWN" InstanceUnrescuing InstanceStatus = "UNRESCUING" InstanceUnshelving InstanceStatus = "UNSHELVING" InstanceVerifyResize InstanceStatus = "VERIFY_RESIZE" )
Click to show internal directories.
Click to hide internal directories.