Documentation
¶
Index ¶
- Constants
- Variables
- func GetVirtualServerProductCode(serverClass string, country string) string
- type ApiError
- type Client
- type ConfirmedOrder
- type CreatedOrder
- type Credential
- type Device
- type FirewallPolicy
- type Install
- type LogFunc
- type Nic
- type Order
- type OrderContract
- type ProductDetails
- type Storage
- type Transaction
- type TransactionFilter
- type TransactionStartupCloudInit
- type TransactionStartupData
Constants ¶
View Source
const ( ServerClassBudget = "BUDGET" ServerClassPerformance = "PERFORMANCE" ServerClassStorage = "STORAGE" ServerClassTraffic = "TRAFFIC" StorageTypeMagnetic = "MAGNETIC" StorageTypeSSD = "SSD" FirewallPolicyDirectionAny = "ANY" FirewallPolicyDirectionInbound = "INBOUND" FirewallPolicyDirectionOutbound = "OUTBOUND" FirewallPolicyTypeAllow = "ALLOW" FirewallPolicyTypeDeny = "DENY" FirewallPolicyTypeDisabled = "DISABLED" FirewallPolicyTypeReject = "REJECT" )
View Source
const ( TransactionObjectTypeDevice = "DEVICE" TransactionStatusCommenced = "COMMENCED" TransactionStatusCompleted = "COMPLETED" TransactionStatusPending = "PENDING" TransactionTypeCancel = "CANCEL" TransactionTypeCloseVNC = "CLOSEVNC" TransactionTypeForceShutdown = "FORCESHUTDOWN" TransactionTypeOpenVNC = "OPENVNC" // data parameter contains public IP that allows VNC TransactionTypeRefreshConfig = "REFRESHCONFIG" TransactionTypeSafeShutdown = "SAFESHUTDOWN" TransactionTypeShutdown = "SHUTDOWN" TransactionTypeStartup = "STARTUP" )
Variables ¶
View Source
var ( ServerClasses = []string{ ServerClassBudget, ServerClassPerformance, ServerClassStorage, ServerClassTraffic, } StorageTypes = []string{ StorageTypeMagnetic, StorageTypeSSD, } FirewallPolicyDirections = []string{ FirewallPolicyDirectionAny, FirewallPolicyDirectionInbound, FirewallPolicyDirectionOutbound, } FirewallPolicyTypes = []string{ FirewallPolicyTypeAllow, FirewallPolicyTypeDeny, FirewallPolicyTypeDisabled, FirewallPolicyTypeReject, } )
Functions ¶
Types ¶
type Client ¶
type Client interface {
OrderConfirm(ctx context.Context, orderId string) (*ConfirmedOrder, error)
OrderCreate(ctx context.Context, productCode string, customerId string, productDetails ProductDetails) (*CreatedOrder, error)
OrderGet(ctx context.Context, orderId string) (*Order, error)
OrderContractGet(ctx context.Context, contractId string) (*OrderContract, error)
DeviceGet(ctx context.Context, deviceId int) (*Device, error)
DeviceUpdateFirewall(ctx context.Context, deviceId int, policies []FirewallPolicy) error
TransactionCreate(ctx context.Context, transactionType string, objectType string, objectId string, confirm bool) (*Transaction, error)
TransactionDeviceStartup(ctx context.Context, deviceId string, data TransactionStartupData) (*Transaction, error)
TransactionGet(ctx context.Context, transactionId string) (*Transaction, error)
TransactionGetAll(ctx context.Context, filter TransactionFilter) ([]Transaction, int, error)
SetDebugLog(logFunc LogFunc)
}
type ConfirmedOrder ¶
type ConfirmedOrder struct {
ContractIds []string
}
type CreatedOrder ¶
type Credential ¶
type Device ¶
type Device struct {
DeviceId int `json:"deviceId"`
Name string `json:"name"`
CustomerId int `json:"customerId"`
PrimaryIP string `json:"primaryIP"`
Status string `json:"status"`
DataCenterId int `json:"dcid"`
FirewallPolicies []FirewallPolicy `json:"firewallPolicies"`
StdName string `json:"stdName"`
DateCreated int64 `json:"dateCreated"`
DateModified int64 `json:"dateModified"`
TrafficCurrent string `json:"trafficCurrent"`
TrafficEstimated float64 `json:"trafficEstimated"`
TrafficMB int64 `json:"trafficMB"`
DCName string `json:"dcName"`
Extra map[string]interface{} `json:"extra"`
}
type FirewallPolicy ¶
type FirewallPolicy struct {
ID int `json:"id"`
Direction string `json:"direction"`
Policy string `json:"policy"`
Order int `json:"order"`
Comment string `json:"comment,omitempty"`
IpAddressFrom string `json:"ipAddressFrom,omitempty"`
IpAddressTo string `json:"ipAddressTo,omitempty"`
Protocol string `json:"protocol,omitempty"`
PortFrom string `json:"portFrom,omitempty"`
PortTo string `json:"portTo,omitempty"`
DeviceId int `json:"deviceId"`
OldDeviceID string `json:"deviceID,omitempty"` //needed b/c of quirks with case-sensitivity in the GO json parser https://github.com/golang/go/issues/14750
}
type OrderContract ¶
type ProductDetails ¶
type ProductDetails struct {
Hostname string `json:"hostname,omitempty"`
DataCenterId string `json:"dcId,omitempty"`
Credentials []Credential `json:"credentials"`
Install Install `json:"install"`
CpuCount int `json:"cpu"`
Storage []Storage `json:"storage,omitempty"`
MemoryGB int `json:"memoryGB"`
TrafficGB int `json:"trafficGB,omitempty"`
FirewallPolicies []FirewallPolicy `json:"firewallPolicies,omitempty"`
Nics []Nic `json:"nics,omitempty"`
HostGroupID *int `json:"hostGroupId,omitempty"`
Location string `json:"location,omitempty"`
Timezone string `json:"timezone,omitempty"`
}
type Transaction ¶
type TransactionFilter ¶
type TransactionFilter struct {
ObjectType string `json:"objType"`
ObjectId []string `json:"objId,omitempty"`
Type []string `json:"method,omitempty"`
Status []string `json:"status,omitempty"`
CustomerId []string `json:"customerId,omitempty"`
ResultStart int `json:"resStart,omitempty"`
ResultWindow int `json:"resWindow,omitempty"`
}
type TransactionStartupData ¶
type TransactionStartupData struct {
DeployMediaImageAccessKey string `json:"deployMediaImageAccessKey,omitempty"`
DeployMediaImageAccessSecret string `json:"deployMediaImageAccessSecret,omitempty"`
DeployMediaImageBucket string `json:"deployMediaImageBucket,omitempty"`
DeployMediaImageId string `json:"deployMediaImageId,omitempty"`
DeployMediaImagePath string `json:"deployMediaImagePath,omitempty"`
CloudInit TransactionStartupCloudInit `json:"cloudInit"`
}
Click to show internal directories.
Click to hide internal directories.