compute

package
v1.13.0 Latest Latest
Warning

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

Go to latest
Published: Oct 14, 2020 License: MIT Imports: 16 Imported by: 28

Documentation

Overview

Package compute contains the client for Dimension Data's cloud compute API.

Index

Constants

View Source
const (
	// AssetTypeServer is an asset type representing a server.
	AssetTypeServer = "SERVER"

	// AssetTypeNetworkDomain is an asset type representing a network domain.
	AssetTypeNetworkDomain = "NETWORK_DOMAIN"

	// AssetTypeVLAN is an asset type representing a virtual LAN (VLAN).
	AssetTypeVLAN = "VLAN"

	// AssetTypePublicIPBlock is an asset type representing a public IP block.
	AssetTypePublicIPBlock = "PUBLIC_IP_BLOCK"

	// AssetTypeCustomerImage is an asset type of customer image
	AssetTypeCustomerImage = "CUSTOMER_IMAGE"

	// AssetTypeCustomerImage is an asset type of account
	AssetTypeAccount = "ACCOUNT"

	// AssetTypeUser is an asset type representing a user.
	AssetTypeUser = "PUBLIC_IP_BLOCK"
)
View Source
const (
	// BackupServicePlanEssentials represents the basic service plan for Cloud Backup
	BackupServicePlanEssentials = "Essentials"

	// BackupServicePlanAdvanced represents the advanced service plan for Cloud Backup
	BackupServicePlanAdvanced = "Advanced"

	// BackupServicePlanEnterprise represents the enterprise service plan for Cloud Backup
	BackupServicePlanEnterprise = "Enterprise"

	// BackupClientStatusOffline indicates that a backup client is not currently contactable by Cloud Backup.
	BackupClientStatusOffline = "Offline"

	// BackupClientStatusUnregistered indicates that a backup client has never registered with Cloud Backup.
	BackupClientStatusUnregistered = "Unregistered"

	// BackupClientStatusUnconfigured indicates that a backup client has not been configured by Cloud Backup.
	BackupClientStatusUnconfigured = "Unconfigured"

	// BackupClientStatusActive indicates that a backup client is currently contactable by Cloud Backup and is ready to service requests.
	BackupClientStatusActive = "Active"
)
View Source
const (
	// ResourceStatusNormal indicates that a resource is active.
	ResourceStatusNormal = "NORMAL"

	// ResourceStatusPendingAdd indicates that an add operation is pending for the resource.
	ResourceStatusPendingAdd = "PENDING_ADD"

	// ResourceStatusPendingChange indicates that a change operation is pending for the resource.
	ResourceStatusPendingChange = "PENDING_CHANGE"

	// ResourceStatusPendingDelete indicates that a delete operation is pending for the resource.
	ResourceStatusPendingDelete = "PENDING_DELETE"

	// ResourceStatusDeleted is a pseudo-status indicates that a resource has been deleted.
	ResourceStatusDeleted = ""
)
View Source
const (
	// NetworkAdapterTypeE1000 represents the E1000 network adapter type.
	NetworkAdapterTypeE1000 = "E1000"

	// NetworkAdapterTypeVMXNET3 represents the VMXNET3 network adapter type.
	NetworkAdapterTypeVMXNET3 = "VMXNET3"

	// NetworkAdapterTypeE1000E represents the E1000e network adapter type.
	NetworkAdapterTypeE1000E = "E1000E"

	// NetworkAdapterTypeEnhancedVMXNET2 represents the VMXNET2/Enhanced network adapter type.
	NetworkAdapterTypeEnhancedVMXNET2 = "ENHANCED_VMXNET2"

	// NetworkAdapterTypeFlexiblePCNET32 represents the PCNET32/Flexible network adapter type.
	NetworkAdapterTypeFlexiblePCNET32 = "FLEXIBLE_PCNET32"
)
View Source
const (
	// StorageControllerAdapterTypeBusLogicParallel represents the BusLogic Parallel storage controller adapter type.
	StorageControllerAdapterTypeBusLogicParallel = "BUSLOGIC_PARALLEL"

	// StorageControllerAdapterTypeLSILogicParallel represents the LSI Logic Parallel storage controller adapter type.
	StorageControllerAdapterTypeLSILogicParallel = "LSI_LOGIC_PARALLEL"

	// StorageControllerAdapterTypeLSILogicSAS represents the LSI Logic SAS storage controller adapter type.
	StorageControllerAdapterTypeLSILogicSAS = "LSI_LOGIC_SAS"

	// StorageControllerAdapterTypeEnhancedVMWareParavirtual represents the VMWare Paravirtual storage controller adapter type.
	StorageControllerAdapterTypeEnhancedVMWareParavirtual = "VMWARE_PARAVIRTUAL"
)
View Source
const (
	// ServerDiskSpeedEconomy represents the economy speed for server disks.
	ServerDiskSpeedEconomy = "ECONOMY"

	// ServerDiskSpeedStandard represents the standard speed for server disks.
	ServerDiskSpeedStandard = "STANDARD"

	// ServerDiskSpeedHighPerformance represents the high-performance speed for server disks.
	ServerDiskSpeedHighPerformance = "HIGHPERFORMANCE"

	// Provisioned IOPS
	ServerDiskSpeedProvisionedIops = "PROVISIONEDIOPS"
)
View Source
const (
	// FirewallRuleActionAccept indicates a firewall rule that, if it matches, will accept the packet and stop processing further rules.
	FirewallRuleActionAccept = "ACCEPT_DECISIVELY"

	// FirewallRuleActionDrop indicates a firewale rule that, if it matches, will drop the packet.
	FirewallRuleActionDrop = "DROP"

	// FirewallRuleIPVersion4 indicates a firewall rule that targets IPv4
	FirewallRuleIPVersion4 = "IPv4"

	// FirewallRuleIPVersion6 indicates a firewale rule that targets IPv6
	FirewallRuleIPVersion6 = "IPv6"

	// FirewallRuleProtocolIP indicates a firewall rule that targets the Internet Protocol (IP)
	FirewallRuleProtocolIP = "IP"

	// FirewallRuleProtocolTCP indicates a firewall rule that targets the Transmission Control Protocol (TCP)
	FirewallRuleProtocolTCP = "TCP"

	// FirewallRuleProtocolICMP indicates a firewall rule that targets the Internet Control Message Protocol (ICMP)
	FirewallRuleProtocolICMP = "ICMP"

	// FirewallRuleMatchAny indicates a firewall rule value that matches any other value in the same scope.
	FirewallRuleMatchAny = "ANY"
)
View Source
const (
	// ResultSuccess is a v1 API result indicating that an operation completed successfully.
	ResultSuccess = "SUCCESS"

	// ResultCodeSuccess is a v1 API result code indicating that an operation completed successfully.
	ResultCodeSuccess = "REASON_0"

	// ResultCodeResourceBusy is a v1 API result code indicating that an operation cannot be performed on a resource because the resource is busy.
	ResultCodeResourceBusy = "REASON_392"

	// ResultCodeServerNotFound is a v1 API result code indicating that an operation cannot be performed on a server because the server could not be found.
	ResultCodeServerNotFound = "REASON_395"

	// Backup service is not enabled for organisation
	ResultCodeBackupNotEnabledForOrg = "REASON_540"

	// Backup service is not enabled for org at the datacenter where server  resides.
	ResultCodeBackupNotEnabledForOrgInDatacenter = "REASON_541"

	// ResultCodeBackupNotEnabledForServer is a v1 API result code indicating that an operation cannot be performed on a server because backup is not enabled for that server.
	ResultCodeBackupNotEnabledForServer = "REASON_543"

	// ResultCodeBackupEnablementInProgressForServer is a v1 API result code indicating that an operation cannot be performed on a server because backup is in the process of being enabled for that server.
	ResultCodeBackupEnablementInProgressForServer = "REASON_544"

	// ResultCodeBackupClientNotFound is a v1 API result code indicating that an operation cannot be performed on a backup client because the backup client does not exist (or was never actually installed on the target server).
	ResultCodeBackupClientNotFound = "REASON_545"

	// ResultCodeBackupJobInProgress is a v1 API result code indicating that an operation cannot be performed on a server because one or more backup jobs are in progress for that server.
	ResultCodeBackupJobInProgress = "REASON_547"

	// ResultCodeServerHasBackupAgents is a v1 API result code indicating that an operation cannot be performed on a server because the server still has one or more backup agents assigned to it.
	ResultCodeServerHasBackupAgents = "REASON_548"

	// ResultCodeBackupEnabledForServer is a v1 API result code indicating that an operation cannot be performed on a server because backup is enabled for that server.
	ResultCodeBackupEnabledForServer = "REASON_550"

	// ResultCodeExceedsLimit is a v1 API result code indicating that an operation cannot be performed on a resource because a resource limit was exceeded.
	ResultCodeExceedsLimit = "REASON_751"
)
View Source
const (
	// ResponseCodeOK is a v2 API response code indicating that an operation completed successfully.
	ResponseCodeOK = "OK"

	// ResponseCodeInProgress is a v2 API response code indicating that an operation is in progress.
	ResponseCodeInProgress = "IN_PROGRESS"

	// ResponseCodeResourceNotFound is a v2 API response code indicating that an operation failed because a target resource was not found.
	ResponseCodeResourceNotFound = "RESOURCE_NOT_FOUND"

	// ResponseCodeAuthorizationFailure is a v2 API response code indicating that an operation failed because the caller was not authorised to perform that operation (e.g. target resource belongs to another organisation).
	ResponseCodeAuthorizationFailure = "AUTHORIZATION_FAILURE"

	// ResponseCodeInvalidInputData is a v2 API response code indicating that an operation failed due to invalid input data.
	ResponseCodeInvalidInputData = "INVALID_INPUT_DATA"

	// ResponseCodeResourceNameNotUnique is a v2 API response code indicating that an operation failed due to the use of a name that duplicates an existing name.
	ResponseCodeResourceNameNotUnique = "NAME_NOT_UNIQUE"

	// ResponseCodeIPAddressNotUnique is a v2 API response code indicating that an operation failed due to the use of an IP address that duplicates an existing IP address.
	ResponseCodeIPAddressNotUnique = "IP_ADDRESS_NOT_UNIQUE"

	// ResponseCodeIPAddressOutOfRange is a v2 API response code indicating that an operation failed due to the use of an IP address lies outside the supported range (e.g. outside of the target subnet).
	ResponseCodeIPAddressOutOfRange = "IP_ADDRESS_OUT_OF_RANGE"

	// ResponseCodeNoIPAddressAvailable is a v2 API response code indicating that there are no remaining unreserved IPv4 addresses in the target subnet.
	ResponseCodeNoIPAddressAvailable = "NO_IP_ADDRESS_AVAILABLE"

	// ResponseCodeResourceHasDependency is a v2 API response code indicating that an operation cannot be performed on a resource because of a resource that depends on it.
	ResponseCodeResourceHasDependency = "HAS_DEPENDENCY"

	// ResponseCodeResourceBusy is a v2 API response code indicating that an operation cannot be performed on a resource because the resource is busy.
	ResponseCodeResourceBusy = "RESOURCE_BUSY"

	// ResponseCodeResourceLocked is a v2 API response code indicating that an operation cannot be performed on a resource because the resource is locked.
	ResponseCodeResourceLocked = "RESOURCE_LOCKED"

	// ResponseCodeExceedsLimit is a v2 API response code indicating that an operation failed because a resource limit was exceeded.
	ResponseCodeExceedsLimit = "EXCEEDS_LIMIT"

	// ResponseCodeOutOfResources is a v2 API response code indicating that an operation failed because some type of resource (e.g. free IPv4 addresses) has been exhausted.
	ResponseCodeOutOfResources = "OUT_OF_RESOURCES"

	// ResponseCodeOperationNotSupported is a v2 API response code indicating that an operation is not supported.
	ResponseCodeOperationNotSupported = "OPERATION_NOT_SUPPORTED"

	// ResponseCodeInfrastructureInMaintenance is a v2 API response code indicating that an operation failed due to maintenance being performed on the supporting infrastructure.
	ResponseCodeInfrastructureInMaintenance = "INFRASTRUCTURE_IN_MAINTENANCE"

	// ResponseCodeUnexpectedError is a v2 API response code indicating that the CloudControl API encountered an unexpected error.
	ResponseCodeUnexpectedError = "UNEXPECTED_ERROR"
)
View Source
const (
	// FirewallRuleIPVersion4 indicates a firewall rule that targets IPv4
	IPVersion4 = "IPv4"

	// FirewallRuleIPVersion6 indicates a firewale rule that targets IPv6
	IPVersion6 = "IPv6"
)
View Source
const (
	// VIPNodeStatusEnabled represents a VIP node that is currently enabled.
	VIPNodeStatusEnabled = "ENABLED"

	// VIPNodeStatusDisabled represents a VIP node that is currently disabled.
	VIPNodeStatusDisabled = "DISABLED"

	// VIPNodeStatusForcedOffline represents a VIP node that has been forced offline.
	VIPNodeStatusForcedOffline = "FORCED_OFFLINE"
)
View Source
const (
	// ServiceDownActionNone indicates no action will be taken when a pool service is down.
	ServiceDownActionNone = "NONE"

	// ServiceDownActionDrop indicates that a pool service will be dropped when it is down.
	ServiceDownActionDrop = "DROP"

	// ServiceDownActionReselect indicates that a pool service will be reselected when it is down.
	ServiceDownActionReselect = "RESELECT"

	// LoadBalanceMethodRoundRobin indicates that requests will be directed to pool nodes in round-robin fashion.
	LoadBalanceMethodRoundRobin = "ROUND_ROBIN"

	// LoadBalanceMethodLeastConnectionsNode indicates that requests will be directed to the pool node that has the smallest number of active connections at the moment of connection.
	// All connections to the node are considered.
	LoadBalanceMethodLeastConnectionsNode = "LEAST_CONNECTIONS_NODE"

	// LoadBalanceMethodLeastConnectionsMember indicates that requests will be directed to the pool node that has the smallest number of active connections at the moment of connection.
	// Only connections to the node as a member of the current pool are considered.
	LoadBalanceMethodLeastConnectionsMember = "LEAST_CONNECTIONS_MEMBER"

	// LoadBalanceMethodObservedNode indicates that requests will be directed to the pool node that has the smallest number of active connections over time.
	// All connections to the node are considered.
	LoadBalanceMethodObservedNode = "OBSERVED_NODE"

	// LoadBalanceMethodObservedMember indicates that requests will be directed to the pool node that has the smallest number of active connections over time.
	// Only connections to the node as a member of the current pool are considered.
	LoadBalanceMethodObservedMember = "OBSERVED_MEMBER"

	// LoadBalanceMethodPredictiveNode indicates that requests will be directed to the pool node that is predicted to have the smallest number of active connections.
	// All connections to the pool are considered.
	LoadBalanceMethodPredictiveNode = "PREDICTIVE_NODE"

	// LoadBalanceMethodPredictiveMember indicates that requests will be directed to the pool node that is predicted to have the smallest number of active connections over time.
	// Only connections to the pool as a member of the current pool are considered.
	LoadBalanceMethodPredictiveMember = "PREDICTIVE_MEMBER"
)
View Source
const (
	// VirtualListenerTypeStandard represents a standard virtual listener.
	VirtualListenerTypeStandard = "STANDARD"

	// VirtualListenerTypePerformanceLayer4 represents a high-performance (layer 4) virtual listener.
	VirtualListenerTypePerformanceLayer4 = "PERFORMANCE_LAYER_4"
)

Virtual listener types

View Source
const (
	// Any protocol (as supported by a standard virtual listener).
	VirtualListenerStandardProtocolAny = "ANY"

	// Transmission Control Protocol (as supported by a standard virtual listener).
	VirtualListenerStandardProtocolTCP = "TCP"

	// Uniform Datagram Protocol (as supported by a standard virtual listener).
	VirtualListenerStandardProtocolUDP = "UDP"

	// Hypertext Transfer Protocol (as supported by a standard virtual listener).
	VirtualListenerStandardProtocolHTTP = "HTTP"

	// File Transfer Protocol (as supported by a standard virtual listener).
	VirtualListenerStandardProtocolFTP = "FTP"

	// Simple Mail Transfer Protocol (as supported by a standard virtual listener).
	VirtualListenerStandardProtocolSMTP = "SMTP"
)

Protocols supported by a standard virtual listener

View Source
const (
	// Any protocol (as supported by a high-performance layer 4 virtual listener).
	VirtualListenerPerformanceLayer4ProtocolAny = "ANY"

	// Transmission Control Protocol (as supported by a high-performance layer 4 virtual listener).
	VirtualListenerPerformanceLayer4ProtocolTCP = "TCP"

	// Uniform Datagram Protocol (as supported by a high-performance layer 4 virtual listener).
	VirtualListenerPerformanceLayer4ProtocolUDP = "UDP"

	// Hypertext Transfer Protocol (as supported by a high-performance layer 4 virtual listener).
	VirtualListenerPerformanceLayer4ProtocolHTTP = "HTTP"
)

Protocols supported by a high-performance (layer 4) virtual listener

View Source
const (
	// Source port preservation is enabled.
	SourcePortPreservationEnabled = "PRESERVE"

	// Source port preservation is enabled (strict mode).
	SourcePortPreservationEnabledStrict = "PRESERVE_STRICT"

	// Source port preservation is disabled.
	SourcePortPreservationDisabled = "CHANGE"
)

Options for source-port preservation on a virtual listener.

Variables

This section is empty.

Functions

func GetResourceDescription

func GetResourceDescription(resourceType ResourceType) (string, error)

GetResourceDescription retrieves a textual description of the specified resource type.

func ImageTypeName

func ImageTypeName(imageType ImageType) string

ImageTypeName gets the name of the specified image type.

func IsAPIError

func IsAPIError(err error, responseCode string) bool

IsAPIError determines whether the specified error represents a CloudControl API error.

func IsAPIErrorCode

func IsAPIErrorCode(err error, responseCode string) bool

IsAPIErrorCode determines whether the specified error represents a CloudControl API error with the specified response code.

func IsExceedsLimitError

func IsExceedsLimitError(err error) bool

IsExceedsLimitError determines whether the specified error represents a EXCEEDS_LIMIT response (or its v1 equivalent, REASON_751) from CloudControl.

func IsNoIPAddressAvailableError

func IsNoIPAddressAvailableError(err error) bool

IsNoIPAddressAvailableError determines whether the specified error represents a NO_IP_ADDRESS_AVAILABLE response from CloudControl.

func IsOperationCancelledError

func IsOperationCancelledError(err error) bool

IsOperationCancelledError determines if an error is an OperationCancelledError.

func IsResourceBusyError

func IsResourceBusyError(err error) bool

IsResourceBusyError determines whether the specified error represents a RESOURCE_BUSY response (or its v1 equivalent, REASON_392) from CloudControl.

func IsResourceNotFoundError

func IsResourceNotFoundError(err error) bool

IsResourceNotFoundError determines whether the specified error represents a RESOURCE_NOT_FOUND response from CloudControl.

Types

type APIError

type APIError struct {
	Message  string
	Response APIResponse
}

APIError is an error representing an error response from an API.

func (*APIError) Error

func (apiError *APIError) Error() string

Error returns the error message associated with the APIError.

type APIResponse

type APIResponse interface {
	// GetMessage gets the message associated with the API response.
	GetMessage() string

	// GetResponseCode gets the response code associated with the API response.
	GetResponseCode() string

	// GetRequestID returns the request correlation ID.
	GetRequestID() string

	// GetAPIVersion gets the version of the API that returned the response.
	GetAPIVersion() string
}

APIResponse represents the response to an API call.

type APIResponseAdditionalInformationV1

type APIResponseAdditionalInformationV1 struct {
	Name  string `xml:"name,attr"`
	Value string `xml:"value"`
}

APIResponseAdditionalInformationV1 represents additional information in a V1 API response (in the form of a name / value pair).

type APIResponseV1

type APIResponseV1 struct {
	// The XML name for the "APIResponseV1" data contract
	XMLName xml.Name `xml:"Status"`

	// The operation for which status is being reported.
	Operation string `xml:"operation"`

	// The operation result.
	Result string `xml:"result"`

	// A brief message describing the operation result.
	Message string `xml:"resultDetail"`

	// The operation result code
	ResultCode string `xml:"resultCode"`

	// Additional information (if any).
	AdditionalInformation []APIResponseAdditionalInformationV1 `xml:"additionalInformation"`
}

APIResponseV1 represents a response from the CloudControl v1 API for an asynchronous operation.

func (*APIResponseV1) GetAPIVersion

func (response *APIResponseV1) GetAPIVersion() string

GetAPIVersion gets the response code associated with the API response.

func (*APIResponseV1) GetAdditionalInformation

func (response *APIResponseV1) GetAdditionalInformation(name string) *string

GetAdditionalInformation retrieves additional information (if available) by name from the API response.

Returns nil if no matching additional information is found with the specified name.

func (*APIResponseV1) GetMessage

func (response *APIResponseV1) GetMessage() string

GetMessage gets the message associated with the API response.

func (*APIResponseV1) GetRequestID

func (response *APIResponseV1) GetRequestID() string

GetRequestID gets the request correlation ID.

func (*APIResponseV1) GetResponseCode

func (response *APIResponseV1) GetResponseCode() string

GetResponseCode gets the response code associated with the API response.

func (*APIResponseV1) ToError

func (response *APIResponseV1) ToError(errorMessageOrFormat string, formatArgs ...interface{}) error

ToError creates an error representing the API response.

type APIResponseV2

type APIResponseV2 struct {
	// The operation that was performed.
	Operation string `json:"operation"`

	// The API response code.
	ResponseCode string `json:"responseCode"`

	// The API status message (if any).
	Message string `json:"message"`

	// Informational messages (if any) relating to request fields.
	FieldMessages []FieldMessage `json:"info"`

	// Warning messages (if any) relating to request fields.
	FieldWarnings []FieldMessage `json:"warning"`

	// Error messages (if any) relating to request fields.
	FieldErrors []FieldMessage `json:"error"`

	// The request ID (correlation identifier).
	RequestID string `json:"requestId"`
}

APIResponseV2 represents the basic response most commonly received when making v2 API calls.

func (*APIResponseV2) GetAPIVersion

func (response *APIResponseV2) GetAPIVersion() string

GetAPIVersion gets the response code associated with the API response.

func (*APIResponseV2) GetFieldError

func (response *APIResponseV2) GetFieldError(fieldName string) *string

GetFieldError retrieves the value of the specified field error message (if any). Returns nil if the no field error message with the specified name is present in the API response.

func (*APIResponseV2) GetFieldMessage

func (response *APIResponseV2) GetFieldMessage(fieldName string) *string

GetFieldMessage retrieves the value of the specified field message (if any). Returns nil if the no field message with the specified name is present in the API response.

func (*APIResponseV2) GetFieldWarning

func (response *APIResponseV2) GetFieldWarning(fieldName string) *string

GetFieldWarning retrieves the value of the specified field warning message (if any). Returns nil if the no field warning message with the specified name is present in the API response.

func (*APIResponseV2) GetMessage

func (response *APIResponseV2) GetMessage() string

GetMessage gets the message associated with the API response.

func (*APIResponseV2) GetRequestID

func (response *APIResponseV2) GetRequestID() string

GetRequestID gets the request correlation ID.

func (*APIResponseV2) GetResponseCode

func (response *APIResponseV2) GetResponseCode() string

GetResponseCode gets the response code associated with the API response.

func (*APIResponseV2) ToError

func (response *APIResponseV2) ToError(errorMessageOrFormat string, formatArgs ...interface{}) error

ToError creates an error representing the API response.

type Account

type Account struct {
	// The XML name for the "Account" data contract
	XMLName xml.Name `xml:"Account"`

	// The compute API user name.
	UserName string `xml:"userName"`

	// The user's full name.
	FullName string `xml:"fullName"`

	// The user's first name.
	FirstName string `xml:"firstName"`

	// The user's last name.
	LastName string `xml:"lastName"`

	// The user's email address.
	EmailAddress string `xml:"emailAddress"`

	// The user's department.
	Department string `xml:"department"`

	// The Id of the user's organisation.
	OrganizationID string `xml:"orgId"`

	// The user's assigned roles.
	AssignedRoles []Role `xml:"roles>role"`
}

Account represents the details for a compute account.

type AttachedVlanGateway

type AttachedVlanGateway struct {
	// Gateway addressing. Valid input either 'HIGH' or 'LOW'
	GatewayAddressing string `json:"gatewayAddressing"`
}

type BackupClientAlerting

type BackupClientAlerting struct {
	// The XML name for the BackupClientAlerting structure
	XMLName xml.Name // Always a child element, so we'll accept element name from containing element's declaration

	// When should the alert be triggered?
	//
	// Must be one of "ON_FAILURE", "ON_SUCCESS", "ON_SUCCESS_OR_FAILURE".
	Trigger string `xml:"trigger,attr"`

	// Email addresses for alert notifications.
	EmailAddresses []string `xml:"http://oec.api.opsource.net/schemas/backup emailAddress"`
}

BackupClientAlerting represents the alerting configuration for a backup client.

type BackupClientDetail

type BackupClientDetail struct {
	// The XML name for the BackupClientDetail structure
	XMLName xml.Name // Always a child element, so we'll accept element name from containing element's declaration

	// The client Id.
	ID string `xml:"id,attr"`

	// The client type (e.g. "FA.Linux").
	Type string `xml:"type,attr"`

	// Does the backup client operate at the file-system level?
	IsFileSystem bool `xml:"isFileSystem,attr"`

	// The backup client's status (e.g. "Unregistered", etc).
	Status string `xml:"status,attr"`

	// A description of the backup client.
	Description string `xml:"http://oec.api.opsource.net/schemas/backup description"`

	// The name of the storage policy to use.
	StoragePolicyName string `xml:"http://oec.api.opsource.net/schemas/backup storagePolicyName"`

	// The name of the schedule policy to use.
	SchedulePolicyName string `xml:"http://oec.api.opsource.net/schemas/backup schedulePolicyName"`

	// The client alerting configuration (if any).
	Alerting *BackupClientAlerting `xml:"http://oec.api.opsource.net/schemas/backup alerting,omitempty"`

	// The server's total backup size (in GB).
	TotalBackupSizeGb int `xml:"http://oec.api.opsource.net/schemas/backup totalBackupSizeGb"`

	// The client download URL.
	DownloadURL string `xml:"http://oec.api.opsource.net/schemas/backup downloadUrl"`
}

BackupClientDetail represents the detail for a specific backup client on a server.

type BackupClientType

type BackupClientType struct {
	// The XML name for the BackupClientType structure
	XMLName xml.Name // Always a child element, so we'll accept element name from containing element's declaration

	Type         string `xml:"type,attr"`
	IsFileSystem bool   `xml:"isFileSystem,attr"`
	Description  string `xml:"description,attr"`
}

BackupClientType represents a types of backup client enabled for a server.

type BackupClientTypes

type BackupClientTypes struct {
	// The XML name for the BackupClientTypes structure
	XMLName xml.Name `xml:"http://oec.api.opsource.net/schemas/backup BackupClientTypes"`

	// Types of backup client enabled for the server.
	Items []BackupClientType `xml:"http://oec.api.opsource.net/schemas/backup backupClientType"`
}

BackupClientTypes represents the types of backup client enabled for a server.

type BackupSchedulePolicies

type BackupSchedulePolicies struct {
	// The XML name for the BackupClientType structure
	XMLName xml.Name `xml:"http://oec.api.opsource.net/schemas/backup BackupSchedulePolicies"`

	// The schedule policies.
	Items []BackupSchedulePolicy `xml:"http://oec.api.opsource.net/schemas/backup schedulePolicy"`
}

BackupSchedulePolicies represents a list of backup schedule policies.

type BackupSchedulePolicy

type BackupSchedulePolicy struct {
	// The XML name for the BackupSchedulePolicy structure
	XMLName xml.Name // Always a child element, so we'll accept element name from containing element's declaration

	// The policy name.
	Name string `xml:"name,attr"`

	// The policy description.
	Description string `xml:"description,attr"`
}

BackupSchedulePolicy represents a Cloud Backup schedule policy.

type BackupStoragePolicies

type BackupStoragePolicies struct {
	// The XML name for the BackupClientType structure
	XMLName xml.Name `xml:"http://oec.api.opsource.net/schemas/backup BackupStoragePolicies"`

	// The storage policies.
	Items []BackupStoragePolicy `xml:"http://oec.api.opsource.net/schemas/backup storagePolicy"`
}

BackupStoragePolicies represents a list of backup storage policies.

type BackupStoragePolicy

type BackupStoragePolicy struct {
	// The XML name for the BackupStoragePolicy structure
	XMLName xml.Name // Always a child element, so we'll accept element name from containing element's declaration

	// The policy name.
	Name string `xml:"name,attr"`

	// The policy's backup retention period (in days).
	RetentionPeriodInDays int `xml:"retentionPeriodInDays,attr"`

	// The secondary location where backups are stored.
	SecondaryLocation string `xml:"secondaryLocation,attr"`
}

BackupStoragePolicy represents a Cloud Backup storage policy.

type Client

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

Client is the client for Dimension Data's cloud compute API.

func NewClient

func NewClient(region string, username string, password string) *Client

NewClient creates a new cloud compute API client. region is the cloud compute region identifier.

func NewClientWithBaseAddress

func NewClientWithBaseAddress(baseAddress string, username string, password string) *Client

NewClientWithBaseAddress creates a new cloud compute API client using a custom end-point base address. baseAddress is the base URL of the CloudControl API end-point.

func (*Client) AddAddress

func (client *Client) AddAddress(addresslistId string,
	begin string, end string, network string, prefixSize int) (address *IPAddressListEntry, err error)

func (*Client) AddDiskToSCSIController

func (client *Client) AddDiskToSCSIController(controllerID string, scsiUnitID int, sizeGB int, speed string, iops int) (diskID string, err error)

AddDiskToSCSIController adds a disk to an existing SCSI controller.

func (*Client) AddDiskToServer

func (client *Client) AddDiskToServer(serverID string, scsiBusNumber *int, scsiUnitID *int, sizeGB int, speed string, iops int) (diskID string, err error)

AddDiskToServer adds a disk to an existing server.

func (*Client) AddNATRule

func (client *Client) AddNATRule(networkDomainID string, internalIPAddress string, externalIPAddress *string) (natRuleID string, err error)

AddNATRule creates a new NAT rule to forward traffic from the specified external IPv4 address to the specified internal IPv4 address. If externalIPAddress is not specified, an unallocated IPv4 address will be used (if available).

This operation is synchronous.

func (*Client) AddNicToServer

func (client *Client) AddNicToServer(serverID string, ipv4Address string, vlanID string) (nicID string, err error)

AddNicToServer adds a network adapter to a server

func (*Client) AddNicWithTypeToServer

func (client *Client) AddNicWithTypeToServer(serverID string, ipv4Address string, vlanID string, adapterType string) (nicID string, err error)

AddNicWithTypeToServer adds a network adapter of a specific type to a server

func (*Client) AddPublicIPBlock

func (client *Client) AddPublicIPBlock(networkDomainID string) (blockID string, err error)

AddPublicIPBlock adds a new block of public IPv4 addresses to the specified network domain.

func (*Client) AddSCSIControllerToServer

func (client *Client) AddSCSIControllerToServer(serverID string, adapterType string, busNumber int) error

AddSCSIControllerToServer adds a SCSI controller to a server.

func (*Client) AddServerBackupClient

func (client *Client) AddServerBackupClient(serverID string, clientType string, schedulePolicyName string, storagePolicyName string, alerting *BackupClientAlerting) (clientID string, clientDownloadURL string, err error)

AddServerBackupClient adds a backup client to a server.

func (*Client) AddVIPPoolMember

func (client *Client) AddVIPPoolMember(poolID string, nodeID string, status string, port *int) (poolMemberID string, err error)

AddVIPPoolMember adds a VIP node as a member of a VIP pool. State must be one of VIPNodeStatusEnabled, VIPNodeStatusDisabled, or VIPNodeStatusDisabled Returns the member ID (uniquely identifies this combination of node, pool, and port).

func (*Client) ApplyAssetTags

func (client *Client) ApplyAssetTags(assetID string, assetType string, tags ...Tag) (response *APIResponseV2, err error)

ApplyAssetTags applies the specified tags to an asset.

func (*Client) Cancel

func (client *Client) Cancel()

Cancel cancels all pending WaitForXXX or HTTP request operations.

func (*Client) CancelBackupClientJobs

func (client *Client) CancelBackupClientJobs(serverID string, clientID string) error

CancelBackupClientJobs cancels all running jobs (if any) for a backup client.

func (*Client) ChangeNetworkAdapterType

func (client *Client) ChangeNetworkAdapterType(networkAdapterID string, networkAdapterType string) (err error)

ChangeNetworkAdapterType changes the type of a server's network adapter.

func (*Client) ChangeServerBackupServicePlan

func (client *Client) ChangeServerBackupServicePlan(serverID string, servicePlan string) error

ChangeServerBackupServicePlan changes a server's Cloud Backup service plan

func (*Client) ChangeServerDiskIops

func (client *Client) ChangeServerDiskIops(diskID string, iops int) (apiResponse *APIResponseV2, err error)

Change Disk IOPS

func (*Client) ChangeServerDiskSpeed

func (client *Client) ChangeServerDiskSpeed(serverID string, diskID string, newSpeed string, iops *int) (apiResponse *APIResponseV2, err error)

ChangeServerDiskSpeed requests changing of a server disk's speed.

func (*Client) CheckAddressExists

func (client *Client) CheckAddressExists(addresslistId string,
	begin string, network string) (exists bool)

func (*Client) CloneServer

func (client *Client) CloneServer(serverID string, imageName string, imageDescription string, preventGuestOSCustomisation bool) (imageID string, err error)

CloneServer clones a server to create a customer image.

func (*Client) ConfigureRetry

func (client *Client) ConfigureRetry(maxRetryCount int, retryDelay time.Duration)

ConfigureRetry configures the client's retry facility. Set maxRetryCount to 0 (the default) to disable retry.

func (*Client) CreateFirewallRule

func (client *Client) CreateFirewallRule(configuration FirewallRuleConfiguration) (firewallRuleID string, err error)

CreateFirewallRule creates a new firewall rule.

func (*Client) CreateIPAddressList

func (client *Client) CreateIPAddressList(name string, description string, ipVersion string, networkDomainID string, addresses []IPAddressListEntry, childListIDs []string) (addressListID string, err error)

CreateIPAddressList creates a new IP address list. Returns the Id of the new IP address list.

This operation is synchronous.

func (*Client) CreatePortList

func (client *Client) CreatePortList(name string, description string, networkDomainID string, ports []PortListEntry, childListIDs []string) (portListID string, err error)

CreatePortList creates a new port list. Returns the Id of the new port list.

This operation is synchronous.

func (*Client) CreateSSLOffloadProfile

func (client *Client) CreateSSLOffloadProfile(networkDomainID string, name string, description string, ciphers *string, sslDomainCertificateID string, sslCertificateChainID string) (offloadProfileID string, err error)

CreateSSLOffloadProfile creates an SSL-offload profile in a network domain.

func (*Client) CreateServerAntiAffinityRule

func (client *Client) CreateServerAntiAffinityRule(server1Id string, server2Id string) (ruleID string, err error)

CreateServerAntiAffinityRule creates an anti-affinity rule for the 2 specified servers. server1Id is the Id of the first server. server2Id is the Id of the second server.

Returns the Id of the new anti-affinity rule.

func (*Client) CreateStaticRoute

func (client *Client) CreateStaticRoute(networkDomainId string, name string, description string, ipVersion string,
	destinationNetworkAddress string, destinationPrefixSize int, nextHopAddress string) (staticRouteID string, err error)

Create enterprise static route

func (*Client) CreateTagKey

func (client *Client) CreateTagKey(name string, description string, isValueRequired bool, displayOnReports bool) (tagKeyID string, err error)

CreateTagKey creates a new tag key.

func (*Client) CreateVIPNode

func (client *Client) CreateVIPNode(nodeConfiguration NewVIPNodeConfiguration) (nodeID string, err error)

CreateVIPNode creates a new VIP node. Returns the Id of the new node.

func (*Client) CreateVIPPool

func (client *Client) CreateVIPPool(poolConfiguration NewVIPPoolConfiguration) (poolID string, err error)

CreateVIPPool creates a new VIP pool. Returns the Id of the new pool.

func (*Client) CreateVirtualListener

func (client *Client) CreateVirtualListener(listenerConfiguration NewVirtualListenerConfiguration) (nodeID string, err error)

CreateVirtualListener creates a new VIP node. Returns the Id of the new node.

func (*Client) DeleteAddress

func (client *Client) DeleteAddress(addresslistId string,
	ipAddress string) (addressList *IPAddressList, err error)

Note: ipAddress can represent begin or network

func (*Client) DeleteFirewallRule

func (client *Client) DeleteFirewallRule(id string) error

DeleteFirewallRule deletes the specified FirewallRule rule.

func (*Client) DeleteIPAddressList

func (client *Client) DeleteIPAddressList(id string) (err error)

DeleteIPAddressList deletes an existing IP address list. Returns an error if the operation was not successful.

This operation is synchronous.

func (*Client) DeleteNATRule

func (client *Client) DeleteNATRule(id string) error

DeleteNATRule deletes the specified NAT rule. This operation is synchronous.

func (*Client) DeleteNetworkDomain

func (client *Client) DeleteNetworkDomain(id string) (err error)

DeleteNetworkDomain deletes an existing network domain. Returns an error if the operation was not successful.

func (*Client) DeletePortList

func (client *Client) DeletePortList(id string) (err error)

DeletePortList deletes an existing port list. Returns an error if the operation was not successful.

This operation is synchronous.

func (*Client) DeleteSSLCertificateChain

func (client *Client) DeleteSSLCertificateChain(id string) (err error)

DeleteSSLCertificateChain deletes an existing SSL certificate chain.

Returns an error if the operation was not successful.

func (*Client) DeleteSSLDomainCertificate

func (client *Client) DeleteSSLDomainCertificate(id string) (err error)

DeleteSSLDomainCertificate deletes an existing SSL domain certificate.

Returns an error if the operation was not successful.

func (*Client) DeleteSSLOffloadProfile

func (client *Client) DeleteSSLOffloadProfile(id string) (err error)

DeleteSSLOffloadProfile deletes an existing SSL-offload profile.

Returns an error if the operation was not successful.

func (*Client) DeleteServer

func (client *Client) DeleteServer(id string) (err error)

DeleteServer deletes an existing Server. Returns an error if the operation was not successful.

func (*Client) DeleteServerAntiAffinityRule

func (client *Client) DeleteServerAntiAffinityRule(ruleID string, networkDomainID string) error

DeleteServerAntiAffinityRule deletes the specified server anti-affinity rule.

func (*Client) DeleteStaticRoute

func (client *Client) DeleteStaticRoute(id string) (err error)

Delete static route

func (*Client) DeleteTagKey

func (client *Client) DeleteTagKey(id string) error

DeleteTagKey deletes the specified TagKey rule.

func (*Client) DeleteVIPNode

func (client *Client) DeleteVIPNode(id string) (err error)

DeleteVIPNode deletes an existing VIP node. Returns an error if the operation was not successful.

func (*Client) DeleteVIPPool

func (client *Client) DeleteVIPPool(id string) (err error)

DeleteVIPPool deletes an existing VIP pool. Returns an error if the operation was not successful.

func (*Client) DeleteVLAN

func (client *Client) DeleteVLAN(id string) (err error)

DeleteVLAN deletes an existing VLAN. Returns an error if the operation was not successful.

func (*Client) DeleteVirtualListener

func (client *Client) DeleteVirtualListener(id string) (err error)

DeleteVirtualListener deletes an existing virtual listener. Returns an error if the operation was not successful.

func (*Client) DeployNetworkDomain

func (client *Client) DeployNetworkDomain(name string, description string, plan string, datacenter string) (networkDomainID string, err error)

DeployNetworkDomain deploys a new network domain. Returns the Id of the new network domain.

func (*Client) DeployServer

func (client *Client) DeployServer(serverConfiguration ServerDeploymentConfiguration) (serverID string, err error)

DeployServer deploys a new virtual machine.

func (*Client) DeployUncustomizedServer

func (client *Client) DeployUncustomizedServer(serverConfiguration UncustomizedServerDeploymentConfiguration) (serverID string, err error)

DeployUncustomizedServer deploys a new virtual machine.

func (*Client) DeployVLAN

func (client *Client) DeployVLAN(networkDomainID string, name string, description string, ipv4BaseAddress string,
	ipv4PrefixSize int, attachedVlanGatewayAddressing string, detachedVlanIpv4GatewayAddress string) (vlanID string, err error)

DeployVLAN deploys a new VLAN into a network domain.

func (*Client) DisableExtendedLogging

func (client *Client) DisableExtendedLogging()

DisableExtendedLogging disables logging of HTTP requests and responses.

func (*Client) DisableServerBackup

func (client *Client) DisableServerBackup(serverID string) error

DisableServerBackup disables Cloud Backup for a server

func (*Client) EditFirewallRule

func (client *Client) EditFirewallRule(id string, enabled bool) error

EditFirewallRule updates the configuration for a firewall rule (enable / disable). This operation is synchronous.

func (*Client) EditIPAddressList

func (client *Client) EditIPAddressList(edit EditIPAddressList) error

EditIPAddressList updates the configuration for a IP address list.

Note that this operation is not additive; it *replaces* the configuration for the IP address list. You can IPAddressList.BuildEditRequest() to create an EditIPAddressList request that copies the current state of the IPAddressList (and then apply customisations).

This operation is synchronous.

func (*Client) EditNetworkDomain

func (client *Client) EditNetworkDomain(id string, name *string, description *string, plan *string) (err error)

EditNetworkDomain updates an existing network domain. Pass an empty string for any field to retain its existing value. Returns an error if the operation was not successful.

func (*Client) EditPortList

func (client *Client) EditPortList(id string, edit EditPortList) error

EditPortList updates the configuration for a port list.

Note that this operation is not additive; it *replaces* the configuration for the port list. You can PortList.BuildEditRequest() to create an EditPortList request that copies the current state of the PortList (and then apply customisations).

This operation is synchronous.

func (*Client) EditSSLOffloadProfile

func (client *Client) EditSSLOffloadProfile(sslOffloadProfile SSLOffloadProfile) error

EditSSLOffloadProfile updates an existing SSL-offload profile.

func (*Client) EditServerMetadata

func (client *Client) EditServerMetadata(serverID string, name *string, description *string) error

EditServerMetadata modifies a server's name and / or description.

Pass nil for values you don't want to modify.

func (*Client) EditVIPNode

func (client *Client) EditVIPNode(id string, nodeConfiguration EditVIPNodeConfiguration) error

EditVIPNode updates an existing VIP node.

func (*Client) EditVIPPool

func (client *Client) EditVIPPool(id string, poolConfiguration EditVIPPoolConfiguration) error

EditVIPPool updates an existing VIP pool.

func (*Client) EditVIPPoolMember

func (client *Client) EditVIPPoolMember(id string, status string) error

EditVIPPoolMember updates the status of an existing VIP pool member. status can be VIPNodeStatusEnabled, VIPNodeStatusDisabled, or VIPNodeStatusForcedOffline

func (*Client) EditVLAN

func (client *Client) EditVLAN(id string, name *string, description *string) (err error)

EditVLAN updates an existing VLAN. Pass an empty string for any field to retain its existing value. Returns an error if the operation was not successful.

func (*Client) EditVirtualListener

func (client *Client) EditVirtualListener(id string, listenerConfiguration EditVirtualListenerConfiguration) error

EditVirtualListener updates an existing virtual listener.

func (*Client) EnableExtendedLogging

func (client *Client) EnableExtendedLogging()

EnableExtendedLogging enables logging of HTTP requests and responses.

func (*Client) EnableServerBackup

func (client *Client) EnableServerBackup(serverID string, servicePlan string) error

EnableServerBackup enables Cloud Backup for a server

func (*Client) ExpandDisk

func (client *Client) ExpandDisk(diskID string, newSizeGB int) (response *APIResponseV2, err error)

ExpandDisk requests expanding of a server / SCSI controller's disk.

func (*Client) ExportCustomerImage

func (client *Client) ExportCustomerImage(imageID string, ovfPackagePrefix string) (exportID string, err error)

ExportCustomerImage exports the specified customer image to an OVF package.

The OVF package can then be downloaded via FTPS.

The image's status will be ResourceStatusPendingChange while the export is in progress, then ResourceStatusNormal once the export is complete.

func (*Client) FindCustomerImage

func (client *Client) FindCustomerImage(name string, dataCenterID string) (image *CustomerImage, err error)

FindCustomerImage finds a customer image by name in a given data centre.

func (*Client) FindOSImage

func (client *Client) FindOSImage(name string, dataCenterID string) (image *OSImage, err error)

FindOSImage finds an OS image by name in a given data centre.

func (*Client) GetAccount

func (client *Client) GetAccount() (*Account, error)

GetAccount retrieves the current user's account information

func (*Client) GetAddressOk

func (client *Client) GetAddressOk(addresslistId string,
	begin string, network string) (address *IPAddressListEntry, exists bool)

func (*Client) GetAssetTags

func (client *Client) GetAssetTags(assetID string, assetType string, paging *Paging) (tags *TagDetails, err error)

GetAssetTags gets all tags applied to the specified asset.

Note that due to a bug in the CloudControl API, when you go past the last page if results, you'll receive an UNEXPECTED_ERROR response code.

func (*Client) GetAssetTagsByType

func (client *Client) GetAssetTagsByType(assetType string, datacenterID string, paging *Paging) (tags *TagDetails, err error)

GetAssetTagsByType gets all tags applied to assets of the specified type.

datacenterID is optional (pass an empty string for tags from all datacenters).

Note that due to a bug in the CloudControl API, when you go past the last page if results, you'll receive an UNEXPECTED_ERROR response code.

func (*Client) GetAvailablePublicIPAddresses

func (client *Client) GetAvailablePublicIPAddresses(networkDomainID string) (availableIPs map[string]string, err error)

GetAvailablePublicIPAddresses retrieves all public IPv4 addresses in the specified network domain that are available for use.

Returns a map of IP block IDs, keyed by public IP address.

func (*Client) GetCustomerImage

func (client *Client) GetCustomerImage(id string) (image *CustomerImage, err error)

GetCustomerImage retrieves a specific customer image by Id.

func (*Client) GetDatacenter

func (client *Client) GetDatacenter(id string) (datacenter *Datacenter, err error)

GetDatacenter retrieves the datacenter with the specified Id. id is the Id of the datacenter to retrieve. Returns nil if no datacenter is found with the specified Id.

func (*Client) GetFirewallRule

func (client *Client) GetFirewallRule(id string) (rule *FirewallRule, err error)

GetFirewallRule retrieves the Firewall rule with the specified Id. Returns nil if no Firewall rule is found with the specified Id.

func (*Client) GetIPAddressList

func (client *Client) GetIPAddressList(id string) (addressList *IPAddressList, err error)

GetIPAddressList retrieves the IP address list with the specified Id. id is the Id of the IP address list to retrieve. Returns nil if no addressList is found with the specified Id.

func (*Client) GetIPAddressListByName

func (client *Client) GetIPAddressListByName(name string, networkDomainID string) (addressList *IPAddressList, err error)

GetIPAddressList retrieves the IP address list by name. Name is the name of the IP address list to retrieve. Returns nil if no addressList is found with the specified name.

func (*Client) GetNATRule

func (client *Client) GetNATRule(id string) (rule *NATRule, err error)

GetNATRule retrieves the NAT rule with the specified Id. Returns nil if no NAT rule is found with the specified Id.

func (*Client) GetNetworkDomain

func (client *Client) GetNetworkDomain(id string) (domain *NetworkDomain, err error)

GetNetworkDomain retrieves the network domain with the specified Id. id is the Id of the network domain to retrieve. Returns nil if no network domain is found with the specified Id.

func (*Client) GetNetworkDomainByName

func (client *Client) GetNetworkDomainByName(name string, dataCenterID string) (domain *NetworkDomain, err error)

GetNetworkDomainByName retrieves the network domain (if any) with the specified name in the specified data centre.

func (*Client) GetOSImage

func (client *Client) GetOSImage(id string) (image *OSImage, err error)

GetOSImage retrieves a specific OS image by Id.

func (*Client) GetPortList

func (client *Client) GetPortList(id string) (portList *PortList, err error)

GetPortList retrieves the port list with the specified Id. id is the Id of the port list to retrieve. Returns nil if no portList is found with the specified Id.

func (*Client) GetPublicIPBlock

func (client *Client) GetPublicIPBlock(id string) (block *PublicIPBlock, err error)

GetPublicIPBlock retrieves the public IPv4 address block with the specified Id. Returns nil if no IPv4 address block is found with the specified Id.

func (*Client) GetResource

func (client *Client) GetResource(id string, resourceType ResourceType) (Resource, error)

GetResource retrieves a compute resource of the specified type by Id. id is the resource Id. resourceType is the resource type (e.g. ResourceTypeNetworkDomain, ResourceTypeVLAN, etc).

func (*Client) GetSSLCertificateChain

func (client *Client) GetSSLCertificateChain(id string) (pool *SSLCertificateChain, err error)

GetSSLCertificateChain retrieves the SSL certificate chain with the specified Id.

Returns nil if no SSL certificate chain is found with the specified Id.

func (*Client) GetSSLDomainCertificate

func (client *Client) GetSSLDomainCertificate(id string) (pool *SSLDomainCertificate, err error)

GetSSLDomainCertificate retrieves the SSL domain certificate with the specified Id. Returns nil if no SSL domain certificate is found with the specified Id.

func (*Client) GetSSLOffloadProfile

func (client *Client) GetSSLOffloadProfile(id string) (pool *SSLOffloadProfile, err error)

GetSSLOffloadProfile retrieves the SSL-offload profile with the specified Id.

Returns nil if no SSL-offload profile is found with the specified Id.

func (*Client) GetServer

func (client *Client) GetServer(id string) (server *Server, err error)

GetServer retrieves the server with the specified Id. id is the Id of the server to retrieve. Returns nil if no server is found with the specified Id.

func (*Client) GetServerAntiAffinityRule

func (client *Client) GetServerAntiAffinityRule(ruleID string, networkDomainID string) (rule *ServerAntiAffinityRule, err error)

GetServerAntiAffinityRule retrieves the specified server anti-affinity rule (in the specified network domain).

func (*Client) GetServerBackupClientTypes

func (client *Client) GetServerBackupClientTypes(serverID string) (*BackupClientTypes, error)

GetServerBackupClientTypes retrieves a list of a server's configured Cloud Backup clients.

func (*Client) GetServerBackupDetails

func (client *Client) GetServerBackupDetails(serverID string) (*ServerBackupDetails, error)

GetServerBackupDetails retrieves detailed information about a server's Cloud Backup status

func (*Client) GetServerBackupSchedulePolicies

func (client *Client) GetServerBackupSchedulePolicies(serverID string) (*BackupSchedulePolicies, error)

GetServerBackupSchedulePolicies retrieves a list of a server's configured Cloud Backup schedule policies.

func (*Client) GetServerBackupStoragePolicies

func (client *Client) GetServerBackupStoragePolicies(serverID string) (*BackupStoragePolicies, error)

GetServerBackupStoragePolicies retrieves a list of a server's configured Cloud Backup storage policies.

func (*Client) GetStaticRoute

func (client *Client) GetStaticRoute(id string) (staticRoute *StaticRoute, err error)

Get static route by ID

func (*Client) GetStaticRouteByAddress

func (client *Client) GetStaticRouteByAddress(paging *Paging, networkDomainId string, destinationNetworkAddress string,
	destinationPrefixSize int) (systemStaticRoute *StaticRoute, err error)

Get static route by address

func (*Client) GetStaticRouteByName

func (client *Client) GetStaticRouteByName(name string, domainId string) (staticRoute *StaticRoute, err error)

List static route of a network domain by Name

func (*Client) GetTagKey

func (client *Client) GetTagKey(id string) (tagKey *TagKey, err error)

GetTagKey retrieves the tag key with the specified Id. Returns nil if no tag key is found with the specified Id.

func (*Client) GetVIPNode

func (client *Client) GetVIPNode(id string) (node *VIPNode, err error)

GetVIPNode retrieves the VIP node with the specified Id. Returns nil if no VIP node is found with the specified Id.

func (*Client) GetVIPPool

func (client *Client) GetVIPPool(id string) (pool *VIPPool, err error)

GetVIPPool retrieves the VIP pool with the specified Id. Returns nil if no VIP pool is found with the specified Id.

func (*Client) GetVIPPoolMember

func (client *Client) GetVIPPoolMember(id string) (member *VIPPoolMember, err error)

GetVIPPoolMember retrieves the VIP pool member with the specified Id. Returns nil if no VIP pool member is found with the specified Id.

func (*Client) GetVLAN

func (client *Client) GetVLAN(id string) (vlan *VLAN, err error)

GetVLAN retrieves the VLAN with the specified Id. id is the Id of the VLAN to retrieve. Returns nil if no VLAN is found with the specified Id.

func (*Client) GetVLANByName

func (client *Client) GetVLANByName(name string, networkDomainID string) (*VLAN, error)

GetVLANByName retrieves the VLAN (if any) with the specified name in the specified network domain.

func (*Client) GetVirtualListener

func (client *Client) GetVirtualListener(id string) (listener *VirtualListener, err error)

GetVirtualListener retrieves the virtual listener with the specified Id. Returns nil if no virtual listener is found with the specified Id.

func (*Client) ImportCustomerImage

func (client *Client) ImportCustomerImage(imageName string, imageDescription string, preventGuestOSCustomization bool, ovfPackagePrefix string, datacenterID string) (importID string, err error)

ImportCustomerImage imports the specified customer image from an OVF package.

The OVF package can be uploaded via FTPS (call GetDatacenter to determine the FTPS end-point for the target datacenter).

The image's status will be ResourceStatusPendingAdd while the import is in progress, then ResourceStatusNormal once the export is complete.

func (*Client) ImportSSLCertificateChain

func (client *Client) ImportSSLCertificateChain(networkDomainID string, name string, description string, certificateChain string) (certificateChainID string, err error)

ImportSSLCertificateChain imports an SSL certificate chain into a network domain.

func (*Client) ImportSSLDomainCertificate

func (client *Client) ImportSSLDomainCertificate(networkDomainID string, name string, description string, certificate string, key string) (certificateID string, err error)

ImportSSLDomainCertificate imports an SSL domain certificate into a network domain.

func (*Client) IsExtendedLoggingEnabled

func (client *Client) IsExtendedLoggingEnabled() bool

IsExtendedLoggingEnabled determines if logging of HTTP requests and responses is enabled.

func (*Client) ListCustomerImagesInDatacenter

func (client *Client) ListCustomerImagesInDatacenter(dataCenterID string, paging *Paging) (images *CustomerImages, err error)

ListCustomerImagesInDatacenter lists all customer images in a given data centre.

func (*Client) ListDatacenters

func (client *Client) ListDatacenters(paging *Paging) (datacenters *Datacenters, err error)

ListDatacenters retrieves a list of all datacenters. TODO: Support filtering and sorting.

func (*Client) ListDefaultHealthMonitors

func (client *Client) ListDefaultHealthMonitors(networkDomainID string, paging *Paging) (healthMonitors *HealthMonitors, err error)

ListDefaultHealthMonitors retrieves a list of all default load-balancing health monitors in the specified network domain.

func (*Client) ListDefaultIRules

func (client *Client) ListDefaultIRules(networkDomainID string, paging *Paging) (irules *IRules, err error)

ListDefaultIRules retrieves a list of all default load-balancing iRules in the specified network domain.

func (*Client) ListDefaultPersistenceProfiles

func (client *Client) ListDefaultPersistenceProfiles(networkDomainID string, paging *Paging) (persistenceProfiles *PersistenceProfiles, err error)

ListDefaultPersistenceProfiles retrieves a list of all default load-balancing persistence profiles in the specified network domain.

func (*Client) ListFirewallRules

func (client *Client) ListFirewallRules(networkDomainID string, paging *Paging) (rules *FirewallRules, err error)

ListFirewallRules lists all firewall rules that apply to the specified network domain.

func (*Client) ListIPAddressLists

func (client *Client) ListIPAddressLists(networkDomainID string) (addressLists *IPAddressLists, err error)

ListIPAddressLists retrieves all IP address lists associated with the specified network domain.

func (*Client) ListNATRules

func (client *Client) ListNATRules(networkDomainID string, paging *Paging) (rules *NATRules, err error)

ListNATRules retrieves all NAT rules defined for the specified network domain.

func (*Client) ListNetworkDomains

func (client *Client) ListNetworkDomains(paging *Paging) (domains *NetworkDomains, err error)

ListNetworkDomains retrieves a list of all network domains. TODO: Support filtering and sorting.

func (*Client) ListOSImagesInDatacenter

func (client *Client) ListOSImagesInDatacenter(dataCenterID string, paging *Paging) (images *OSImages, err error)

ListOSImagesInDatacenter lists all OS images in a given data centre.

func (*Client) ListPortLists

func (client *Client) ListPortLists(networkDomainID string) (portLists *PortLists, err error)

ListPortLists retrieves all port lists associated with the specified network domain.

func (*Client) ListPublicIPBlocks

func (client *Client) ListPublicIPBlocks(networkDomainID string, paging *Paging) (blocks *PublicIPBlocks, err error)

ListPublicIPBlocks retrieves all blocks of public IPv4 addresses that have been allocated to the specified network domain.

func (*Client) ListReservedIPv6AddressesInVLAN

func (client *Client) ListReservedIPv6AddressesInVLAN(vlanID string) (reservedIPAddresses *ReservedIPv6Addresses, err error)

ListReservedIPv6AddressesInVLAN retrieves all IPv6 addresses reserved in the specified VLAN.

func (*Client) ListReservedPrivateIPv4AddressesInVLAN

func (client *Client) ListReservedPrivateIPv4AddressesInVLAN(vlanID string) (reservedIPAddresses *ReservedIPv4Addresses, err error)

ListReservedPrivateIPv4AddressesInVLAN retrieves all private IPv4 addresses reserved in the specified VLAN.

func (*Client) ListReservedPublicIPAddresses

func (client *Client) ListReservedPublicIPAddresses(networkDomainID string, paging *Paging) (reservedPublicIPs *ReservedPublicIPs, err error)

ListReservedPublicIPAddresses retrieves all public IPv4 addresses in the specified network domain that have been reserved.

func (*Client) ListSSLCertificateChainsInNetworkDomain

func (client *Client) ListSSLCertificateChainsInNetworkDomain(networkDomainID string, paging *Paging) (pools *SSLCertificateChains, err error)

ListSSLCertificateChainsInNetworkDomain retrieves a list of all SSL certificate chains in the specified network domain.

func (*Client) ListSSLDomainCertificatesInNetworkDomain

func (client *Client) ListSSLDomainCertificatesInNetworkDomain(networkDomainID string, paging *Paging) (pools *SSLDomainCertificates, err error)

ListSSLDomainCertificatesInNetworkDomain retrieves a list of all SSL domain certificates in the specified network domain.

func (*Client) ListSSLOffloadProfilesInNetworkDomain

func (client *Client) ListSSLOffloadProfilesInNetworkDomain(networkDomainID string, paging *Paging) (pools *SSLOffloadProfiles, err error)

ListSSLOffloadProfilesInNetworkDomain retrieves a list of all SSL-offload profiles in the specified network domain.

func (*Client) ListServerAntiAffinityRules

func (client *Client) ListServerAntiAffinityRules(networkDomainID string, paging *Paging) (rules *ServerAntiAffinityRules, err error)

ListServerAntiAffinityRules lists the server anti-affinity rules in a network domain.

func (*Client) ListServersInNetworkDomain

func (client *Client) ListServersInNetworkDomain(networkDomainID string, paging *Paging) (servers Servers, err error)

ListServersInNetworkDomain retrieves a page of servers in the specified network domain.

func (*Client) ListStaticRoute

func (client *Client) ListStaticRoute(paging *Paging) (staticRoutes *StaticRoutes, err error)

List static route of a network domain

func (*Client) ListStaticRouteSystem

func (client *Client) ListStaticRouteSystem(paging *Paging, networkDomainId string) (staticRoutes *StaticRoutes, err error)

List static route of a network domain

func (*Client) ListTagKeys

func (client *Client) ListTagKeys(paging *Paging) (tagKeys *TagKeys, err error)

ListTagKeys lists all tag keys that apply to the specified network domain.

func (*Client) ListVIPNodesInNetworkDomain

func (client *Client) ListVIPNodesInNetworkDomain(networkDomainID string, paging *Paging) (nodes *VIPNodes, err error)

ListVIPNodesInNetworkDomain retrieves a list of all VIP nodes in the specified network domain.

func (*Client) ListVIPPoolMembers

func (client *Client) ListVIPPoolMembers(poolID string, paging *Paging) (members *VIPPoolMembers, err error)

ListVIPPoolMembers retrieves a list of all members of the specified VIP pool.

func (*Client) ListVIPPoolMembershipsInNetworkDomain

func (client *Client) ListVIPPoolMembershipsInNetworkDomain(networkDomainID string, paging *Paging) (members *VIPPoolMembers, err error)

ListVIPPoolMembershipsInNetworkDomain retrieves a list of all VIP pool memberships of the specified network domain.

func (*Client) ListVIPPoolsInNetworkDomain

func (client *Client) ListVIPPoolsInNetworkDomain(networkDomainID string, paging *Paging) (pools *VIPPools, err error)

ListVIPPoolsInNetworkDomain retrieves a list of all VIP pools in the specified network domain.

func (*Client) ListVLANs

func (client *Client) ListVLANs(networkDomainID string, paging *Paging) (vlans *VLANs, err error)

ListVLANs retrieves a list of all VLANs in the specified network domain. TODO: Support filtering and sorting.

func (*Client) ListVirtualListenersInNetworkDomain

func (client *Client) ListVirtualListenersInNetworkDomain(networkDomainID string, paging *Paging) (listeners *VirtualListeners, err error)

ListVirtualListenersInNetworkDomain retrieves a list of all virtual listeners in the specified network domain.

func (*Client) ModifyServerBackupClient

func (client *Client) ModifyServerBackupClient(serverID string, clientID string, schedulePolicyName string, storagePolicyName string, alerting *BackupClientAlerting) (clientDownloadURL string, err error)

ModifyServerBackupClient modifies one of a server's existing backup clients.

func (*Client) NotifyServerIPAddressChange

func (client *Client) NotifyServerIPAddressChange(networkAdapterID string, newIPv4Address *string, newIPv6Address *string) error

NotifyServerIPAddressChange notifies the system that the IP address for a server's network adapter has changed. serverNetworkAdapterID is the Id of the server's network adapter. Must specify at least one of newIPv4Address / newIPv6Address.

func (*Client) PowerOffServer

func (client *Client) PowerOffServer(id string) error

PowerOffServer requests that the specified server be powered off (hard shut-down).

func (*Client) ReconfigureServer

func (client *Client) ReconfigureServer(serverID string, memoryGB *int, cpuCount *int, cpuCoresPerSocket *int, cpuSpeed *string) error

ReconfigureServer updates the configuration for a server. serverID is the Id of the server.

func (*Client) RemoveAssetTags

func (client *Client) RemoveAssetTags(assetID string, assetType string, tagNames ...string) (response *APIResponseV2, err error)

RemoveAssetTags removes the specified tags from an asset.

func (*Client) RemoveDisk

func (client *Client) RemoveDisk(diskID string) error

RemoveDisk removes an existing disk from a server or SCSI controller.

func (*Client) RemoveDiskFromServer

func (client *Client) RemoveDiskFromServer(diskID string) error

RemoveDiskFromServer removes an existing disk from a server.

func (*Client) RemoveNicFromServer

func (client *Client) RemoveNicFromServer(networkAdapterID string) (err error)

RemoveNicFromServer removes the Nic from the server

func (*Client) RemovePublicIPBlock

func (client *Client) RemovePublicIPBlock(id string) error

RemovePublicIPBlock removes the specified block of public IPv4 addresses from its network domain. This operation is synchronous.

func (*Client) RemoveSCSIControllerFromServer

func (client *Client) RemoveSCSIControllerFromServer(controllerID string) error

RemoveSCSIControllerFromServer removes an existing SCSI controller from a server.

func (*Client) RemoveServerBackupClient

func (client *Client) RemoveServerBackupClient(serverID string, clientID string) error

RemoveServerBackupClient removes a backup client from a server.

func (*Client) RemoveVIPPoolMember

func (client *Client) RemoveVIPPoolMember(id string) error

RemoveVIPPoolMember removes a VIP pool member.

func (*Client) ReserveIPv6Address

func (client *Client) ReserveIPv6Address(vlanID string, ipAddress string, description string) error

ReserveIPv6Address creates a reservation for an IPv6 address on a VLAN.

func (*Client) ReservePrivateIPv4Address

func (client *Client) ReservePrivateIPv4Address(vlanID string, ipAddress string, description string) error

ReservePrivateIPv4Address creates a reservation for a private IPv4 address on a VLAN.

func (*Client) Reset

func (client *Client) Reset()

Reset clears all cached data from the Client and resets cancellation (if required).

func (*Client) ResizeServerDisk

func (client *Client) ResizeServerDisk(serverID string, diskID string, newSizeGB int) (response *APIResponseV1, err error)

ResizeServerDisk requests resizing of a server disk.

func (*Client) RestoreStaticRoute

func (client *Client) RestoreStaticRoute(networkDomainId string) (err error)

Restores the Static Routes of a Network Domain (networkDomainId) belonging to the organization identified by {org-id} to the system default (also referred to as baseline) configuration applied when the Network Domain was first deployed

func (*Client) ShutdownServer

func (client *Client) ShutdownServer(id string) error

ShutdownServer requests that the specified server be shut down (gracefully, if possible).

func (*Client) StartServer

func (client *Client) StartServer(id string) error

StartServer requests that the specified server be started.

func (*Client) UnreserveIPv6Address

func (client *Client) UnreserveIPv6Address(vlanID string, ipAddress string, description string) error

UnreserveIPv6Address removes the reservation (if any) for an IPv6 address on a VLAN.

func (*Client) UnreservePrivateIPv4Address

func (client *Client) UnreservePrivateIPv4Address(vlanID string, ipAddress string, description string) error

UnreservePrivateIPv4Address removes the reservation (if any) for a private IPv4 address on a VLAN.

func (*Client) WaitForAdd

func (client *Client) WaitForAdd(resourceType ResourceType, id string, actionDescription string, timeout time.Duration) (resource Resource, err error)

WaitForAdd waits for a resource's pending add operation to complete.

func (*Client) WaitForChange

func (client *Client) WaitForChange(resourceType ResourceType, id string, actionDescription string, timeout time.Duration) (resource Resource, err error)

WaitForChange waits for a resource's pending change operation to complete.

func (*Client) WaitForDelete

func (client *Client) WaitForDelete(resourceType ResourceType, id string, timeout time.Duration) error

WaitForDelete waits for a resource's pending deletion to complete.

func (*Client) WaitForDeploy

func (client *Client) WaitForDeploy(resourceType ResourceType, id string, timeout time.Duration) (resource Resource, err error)

WaitForDeploy waits for a resource's pending deployment operation to complete.

func (*Client) WaitForEdit

func (client *Client) WaitForEdit(resourceType ResourceType, id string, timeout time.Duration) (resource Resource, err error)

WaitForEdit waits for a resource's pending edit operation to complete.

func (*Client) WaitForNestedDeleteChange

func (client *Client) WaitForNestedDeleteChange(resourceType ResourceType, id string, actionDescription string, timeout time.Duration) (resource Resource, err error)

WaitForNestedDeleteChange waits for a resource's pending change operation (actually the delete of a nested resource) to complete.

func (*Client) WaitForServerBackupStatus

func (client *Client) WaitForServerBackupStatus(serverID string, actionDescription string, targetStatus string, timeout time.Duration) (server *Server, err error)

WaitForServerBackupStatus waits for a server to have the specified backup status.

func (*Client) WaitForServerClone

func (client *Client) WaitForServerClone(customerImageID string, timeout time.Duration) (resource Resource, err error)

WaitForServerClone waits for a server's pending clone operation to complete.

Pass the customer image Id, not the server Id.

type CreateStaticRoute

type CreateStaticRoute struct {
	// UUID of a Network Domain belonging to {org-id} within which the Static Route is to be created.
	NetworkDomainId string `json:"networkDomainId"`

	// Must be between 1 and 75 characters in length.
	//Cannot start with a number, a period ('.'), 'CCSYSTEM.' or 'CCDEFAULT.'.
	Name string `json:"name"`

	// Maximum length: 255 characters.
	Description string `json:"description"`

	// One of IPV4 or IPV6
	IpVersion string `json:"ipVersion"`

	// Either a valid IPv4 address in dot-decimal notation or an IPv6 address in compressed or extended format.
	// In conjunction with the destinationPrefixSize this must represent a CIDR boundary.
	DestinationNetworkAddress string `json:"destinationNetworkAddress"`

	// Integer prefix defining the size of the network.
	// In conjunction with the destinationPrefixSize this must represent a CIDR boundary.
	DestinationPrefixSize int `json:"destinationPrefixSize"`

	// Gateway address in the form of an INET gateway, CPNC gateway or an address on an Attached VLAN in the same Network Domain.
	NextHopAddress string `json:"nextHopAddress"`
}

Request body for creating a Static Route

type CustomerImage

type CustomerImage struct {
	ID              string                        `json:"id"`
	Name            string                        `json:"name"`
	Description     string                        `json:"description"`
	DataCenterID    string                        `json:"datacenterId"`
	Guest           ImageGuestInformation         `json:"guest"`
	CPU             VirtualMachineCPU             `json:"cpu"`
	MemoryGB        int                           `json:"memoryGb"`
	SCSIControllers VirtualMachineSCSIControllers `json:"scsiControllers"`
	CreateTime      string                        `json:"createTime"`
	State           string                        `json:"state"`
}

CustomerImage represents a custom virtual machine image.

func (*CustomerImage) ApplyTo

func (image *CustomerImage) ApplyTo(config *ServerDeploymentConfiguration)

ApplyTo applies the CustomerImage to the specified ServerDeploymentConfiguration.

func (*CustomerImage) ApplyToUncustomized

func (image *CustomerImage) ApplyToUncustomized(config *UncustomizedServerDeploymentConfiguration)

ApplyToUncustomized applies the CustomerImage to the specified UncustomizedServerDeploymentConfiguration.

func (*CustomerImage) GetDatacenterID

func (image *CustomerImage) GetDatacenterID() string

GetDatacenterID retrieves Id of the datacenter where the image is located.

func (*CustomerImage) GetID

func (image *CustomerImage) GetID() string

GetID retrieves the image ID.

func (*CustomerImage) GetName

func (image *CustomerImage) GetName() string

GetName retrieves the image name.

func (*CustomerImage) GetOS

func (image *CustomerImage) GetOS() OperatingSystem

GetOS retrieves information about the image's operating system.

func (*CustomerImage) GetResourceType

func (image *CustomerImage) GetResourceType() ResourceType

GetResourceType retrieves the resource type.

func (*CustomerImage) GetState

func (image *CustomerImage) GetState() string

GetState retrieves the resource's current state (e.g. ResourceStatusNormal, etc).

func (*CustomerImage) GetType

func (image *CustomerImage) GetType() ImageType

GetType determines the image type.

func (*CustomerImage) IsDeleted

func (image *CustomerImage) IsDeleted() bool

IsDeleted determines whether the resource been deleted (i.e. the underlying struct is nil)?

func (*CustomerImage) RequiresCustomization

func (image *CustomerImage) RequiresCustomization() bool

RequiresCustomization determines whether the image requires guest OS customisation during deployment.

func (*CustomerImage) ToEntityReference

func (image *CustomerImage) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the CustomerImage.

type CustomerImages

type CustomerImages struct {
	// The current page of network domains.
	Images []CustomerImage `json:"customerImage"`

	// The current page number.
	PageNumber int `json:"pageNumber"`

	// The number of customer images in the current page of results.
	PageCount int `json:"pageCount"`

	// The total number of customer images that match the requested filter criteria (if any).
	TotalCount int `json:"totalCount"`

	// The maximum number of customer images per page.
	PageSize int `json:"pageSize"`
}

CustomerImages represents a page of CustomerImage results.

type Datacenter

type Datacenter struct {
	// The datacenter Id.
	ID string `json:"id"`

	// The datacenter type (for display purposes only).
	Type string `json:"type"`

	// The datacenter display name.
	DisplayName string `json:"displayName"`

	// The name of the city the datacenter is located in.
	City string `json:"city"`

	// The name of the state the datacenter is located in.
	State string `json:"state"`

	// The name of the country the datacenter is located in.
	Country string `json:"country"`

	// The URL of the datacenter's administrative SSL VPN.
	VPNURL string `json:"vpnUrl"`

	// The name of the FTPS host used to upload / download OVF packages to / from the datacenter.
	FTPSHost string `json:"ftpsHost"`

	// The datacenter's network configuration.
	Networking DatacenterNetworking `json:"networking"`
}

Datacenter represents an MCP datacenter.

type DatacenterNetworking

type DatacenterNetworking struct {
	// The networking infrastructure type of the data center for programmatic use.
	//
	// "1" means MCP 1.0
	// "2" means MCP 2.0
	Type string `json:"type"`

	// Indicates whether the networking infrastructure is under maintenance.
	MaintenanceStatus string `json:"maintenanceStatus"`
}

DatacenterNetworking represents the networking configuration for an MCP datacenter.

type Datacenters

type Datacenters struct {
	// The current page of datacenters.
	Items []Datacenter `json:"datacenter"`

	PagedResult
}

Datacenters represents the response to a "List Datacenters" API call.

type DeleteVLAN

type DeleteVLAN struct {
	// The VLAN Id.
	ID string `json:"id"`
}

DeleteVLAN represents a request to delete a compute VLAN.

type DeployAttachedVLAN

type DeployAttachedVLAN struct {
	// The Id of the network domain in which the VLAN will be deployed.
	VLANID string `json:"networkDomainId"`

	// The VLAN name.
	Name string `json:"name"`

	// The VLAN description.
	Description string `json:"description"`

	// The private IPv4 base address for the VLAN.
	IPv4BaseAddress string `json:"privateIpv4NetworkAddress"`

	// The private IPv4 prefix size (i.e. netmask) for the VLAN.
	IPv4PrefixSize int `json:"privateIpv4PrefixSize"`

	// Attached Vlan
	AttachedVlan AttachedVlanGateway `json:"attachedVlan"`
}

DeployVLAN represents the request body when deploying a cloud compute VLAN.

type DeployDetachedVLAN

type DeployDetachedVLAN struct {
	// The Id of the network domain in which the VLAN will be deployed.
	VLANID string `json:"networkDomainId"`

	// The VLAN name.
	Name string `json:"name"`

	// The VLAN description.
	Description string `json:"description"`

	// The private IPv4 base address for the VLAN.
	IPv4BaseAddress string `json:"privateIpv4NetworkAddress"`

	// The private IPv4 prefix size (i.e. netmask) for the VLAN.
	IPv4PrefixSize int `json:"privateIpv4PrefixSize"`

	// Attached Vlan
	DetachedVlan DetachedVlanGateway `json:"detachedVlan"`
}

DeployVLAN represents the request body when deploying a cloud compute VLAN.

type DetachedVlanGateway

type DetachedVlanGateway struct {
	// The system will use this IP address as the IPv4 gateway when the Deploy Server API is used referencing a NIC to the VLAN.
	Ipv4GatewayAddress string `json:"ipv4GatewayAddress"`
}

type EditIPAddressList

type EditIPAddressList struct {
	ID           string               `json:"id"`
	Description  string               `json:"description"`
	Addresses    []IPAddressListEntry `json:"ipAddress"`
	ChildListIDs []string             `json:"childIpAddressListId"`
}

EditIPAddressList represents the request body for editing an IP address list.

type EditPortList

type EditPortList struct {
	ID           string          `json:"id"`
	Description  string          `json:"description"`
	Ports        []PortListEntry `json:"port"`
	ChildListIDs []string        `json:"childPortListId"`
}

EditPortList represents the request body for editing a port list.

type EditVIPNodeConfiguration

type EditVIPNodeConfiguration struct {
	// The VIP node Id.
	ID string `json:"id"`

	// The VIP node description.
	Description *string `json:"description,omitempty"`

	// The node status (VIPNodeStatusEnabled, VIPNodeStatusDisabled, or VIPNodeStatusForcedOffline).
	Status *string `json:"status,omitempty"`

	// The Id of the node's associated health monitor (if any).
	HealthMonitorID *string `json:"healthMonitorId,omitempty"`

	// The node's connection limit (must be greater than 0).
	ConnectionLimit *int `json:"connectionLimit,omitempty"`

	// The node's connection rate limit (must be greater than 0).
	ConnectionRateLimit *int `json:"connectionRateLimit,omitempty"`
}

EditVIPNodeConfiguration represents the request body when editing a VIP node.

type EditVIPPoolConfiguration

type EditVIPPoolConfiguration struct {
	// The VIP pool Id.
	ID string `json:"id"`

	// The VIP pool description.
	Description *string `json:"description,omitempty"`

	// The load-balancing method used for pools in the pool.
	LoadBalanceMethod *string `json:"loadBalanceMethod"`

	// The Id of the pool's associated health monitors (if any).
	// Up to 2 health monitors can be specified per pool.
	HealthMonitorIDs *[]string `json:"healthMonitorId,omitempty"`

	// The action performed when a pool in the pool is down.
	ServiceDownAction *string `json:"serviceDownAction"`

	// The time, in seconds, over which the the pool will ramp new pools up to their full request rate.
	SlowRampTime *int `json:"slowRampTime"`
}

EditVIPPoolConfiguration represents the request body when editing a VIP pool.

type EditVLAN

type EditVLAN struct {
	// The ID of the VLAN to edit.
	ID string `json:"id"`

	// The VLAN name (optional).
	Name *string `json:"name,omitempty"`

	// The VLAN description (optional).
	Description *string `json:"description,omitempty"`
}

EditVLAN represents the request body when editing a cloud compute VLAN.

type EditVirtualListenerConfiguration

type EditVirtualListenerConfiguration struct {
	ID                     string    `json:"id"`
	Description            *string   `json:"description,omitempty"`
	Enabled                *bool     `json:"enabled,omitempty"`
	ConnectionLimit        *int      `json:"connectionLimit,omitempty"`
	ConnectionRateLimit    *int      `json:"connectionRateLimit,omitempty"`
	SourcePortPreservation *string   `json:"sourcePortPreservation,omitempty"`
	PoolID                 *string   `json:"poolId,omitempty"`
	PersistenceProfileID   *string   `json:"persistenceProfileId,omitempty"`
	SSLOffloadProfileID    *string   `json:"sslOffloadProfileId,omitempty"`
	IRuleIDs               *[]string `json:"iruleId,omitempty"`
	OptimizationProfile    *string   `json:"optimizationProfile,omitempty"`
}

EditVirtualListenerConfiguration represents the configuration for editing a virtual listener.

type Entity

type Entity interface {
	// GetID retrieves the entity's ID.
	GetID() string
}

Entity represents a Cloud Control entity.

type EntityReference

type EntityReference struct {
	// The entity Id.
	ID string `json:"id"`
	// The entity name.
	Name string `json:"name,omitempty"`
}

EntityReference is used to group an entity Id and name together for serialisation / deserialisation purposes.

type FieldMessage

type FieldMessage struct {
	// The field name.
	FieldName string `json:"name"`

	// The field message.
	Message string `json:"value"`
}

FieldMessage represents a field name together with an associated message.

type FirewallRule

type FirewallRule struct {
	ID              string            `json:"id"`
	Name            string            `json:"name"`
	Action          string            `json:"action"`
	IPVersion       string            `json:"ipVersion"`
	Protocol        string            `json:"protocol"`
	Source          FirewallRuleScope `json:"source"`
	Destination     FirewallRuleScope `json:"destination"`
	Enabled         bool              `json:"enabled"`
	State           string            `json:"state"`
	NetworkDomainID string            `json:"networkDomainId"`
	DataCenterID    string            `json:"datacenterId"`
	RuleType        string            `json:"ruleType"`
}

FirewallRule represents a firewall rule.

func (*FirewallRule) GetID

func (rule *FirewallRule) GetID() string

GetID returns the firewall rule's Id.

func (*FirewallRule) GetName

func (rule *FirewallRule) GetName() string

GetName returns the firewall rule's name.

func (*FirewallRule) GetResourceType

func (rule *FirewallRule) GetResourceType() ResourceType

GetResourceType returns the firewall rule's resource type.

func (*FirewallRule) GetState

func (rule *FirewallRule) GetState() string

GetState returns the firewall rule's current state.

func (*FirewallRule) IsDeleted

func (rule *FirewallRule) IsDeleted() bool

IsDeleted determines whether the firewall rule has been deleted (is nil).

func (*FirewallRule) ToEntityReference

func (rule *FirewallRule) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the CustomerImage.

type FirewallRuleConfiguration

type FirewallRuleConfiguration struct {
	Name            string                `json:"name"`
	Action          string                `json:"action"`
	Enabled         bool                  `json:"enabled"`
	Placement       FirewallRulePlacement `json:"placement"`
	IPVersion       string                `json:"ipVersion"`
	Protocol        string                `json:"protocol"`
	Source          FirewallRuleScope     `json:"source"`
	Destination     FirewallRuleScope     `json:"destination"`
	NetworkDomainID string                `json:"networkDomainId"`
}

FirewallRuleConfiguration represents the configuration for a new firewall rule.

func (*FirewallRuleConfiguration) Accept

func (configuration *FirewallRuleConfiguration) Accept() *FirewallRuleConfiguration

Accept sets the firewall rule action to FirewallRuleActionAccept.

func (*FirewallRuleConfiguration) Disable

func (configuration *FirewallRuleConfiguration) Disable() *FirewallRuleConfiguration

Disable disables the firewall rule.

func (*FirewallRuleConfiguration) Drop

Drop sets the firewall rule action to FirewallRuleActionDrop.

func (*FirewallRuleConfiguration) Enable

func (configuration *FirewallRuleConfiguration) Enable() *FirewallRuleConfiguration

Enable enables the firewall rule.

func (*FirewallRuleConfiguration) ICMP

ICMP sets the firewall rule's target protocol to ICMP.

func (*FirewallRuleConfiguration) IP

IP sets the firewall rule's target protocol to IP.

func (*FirewallRuleConfiguration) IPv4

IPv4 sets the firewall rule's target IP version to IPv4.

func (*FirewallRuleConfiguration) IPv6

IPv6 sets the firewall rule's target IP version to IPv6.

func (*FirewallRuleConfiguration) MatchAnyDestinationAddress

func (configuration *FirewallRuleConfiguration) MatchAnyDestinationAddress() *FirewallRuleConfiguration

MatchAnyDestinationAddress modifies the configuration so that the firewall rule will match any destination IP address.

func (*FirewallRuleConfiguration) MatchAnyDestinationPort

func (configuration *FirewallRuleConfiguration) MatchAnyDestinationPort() *FirewallRuleConfiguration

MatchAnyDestinationPort modifies the configuration so that the firewall rule will match any destination port.

func (*FirewallRuleConfiguration) MatchAnySourceAddress

func (configuration *FirewallRuleConfiguration) MatchAnySourceAddress() *FirewallRuleConfiguration

MatchAnySourceAddress modifies the configuration so that the firewall rule will match source IP address.

func (*FirewallRuleConfiguration) MatchAnySourcePort

func (configuration *FirewallRuleConfiguration) MatchAnySourcePort() *FirewallRuleConfiguration

MatchAnySourcePort modifies the configuration so that the firewall rule will match any source port.

func (*FirewallRuleConfiguration) MatchDestinationAddress

func (configuration *FirewallRuleConfiguration) MatchDestinationAddress(address string) *FirewallRuleConfiguration

MatchDestinationAddress modifies the configuration so that the firewall rule will match a specific destination IP address.

func (*FirewallRuleConfiguration) MatchDestinationAddressList

func (configuration *FirewallRuleConfiguration) MatchDestinationAddressList(addressListID string) *FirewallRuleConfiguration

MatchDestinationAddressList modifies the configuration so that the firewall rule will match a specific destination IP address list (and, optionally, port).

func (*FirewallRuleConfiguration) MatchDestinationNetwork

func (configuration *FirewallRuleConfiguration) MatchDestinationNetwork(baseAddress string, prefixSize int) *FirewallRuleConfiguration

MatchDestinationNetwork modifies the configuration so that the firewall rule will match any destination IP address on the specified network.

func (*FirewallRuleConfiguration) MatchDestinationPort

func (configuration *FirewallRuleConfiguration) MatchDestinationPort(port int) *FirewallRuleConfiguration

MatchDestinationPort modifies the configuration so that the firewall rule will match a specific destination port.

func (*FirewallRuleConfiguration) MatchDestinationPortList

func (configuration *FirewallRuleConfiguration) MatchDestinationPortList(portListID string) *FirewallRuleConfiguration

MatchDestinationPortList modifies the configuration so that the firewall rule will match any destination port appearing on the specified port list (or its children).

func (*FirewallRuleConfiguration) MatchDestinationPortRange

func (configuration *FirewallRuleConfiguration) MatchDestinationPortRange(beginPort int, endPort int) *FirewallRuleConfiguration

MatchDestinationPortRange modifies the configuration so that the firewall rule will match any destination port in the specified range.

func (*FirewallRuleConfiguration) MatchSourceAddress

func (configuration *FirewallRuleConfiguration) MatchSourceAddress(address string) *FirewallRuleConfiguration

MatchSourceAddress modifies the configuration so that the firewall rule will match a specific source IP address.

func (*FirewallRuleConfiguration) MatchSourceAddressList

func (configuration *FirewallRuleConfiguration) MatchSourceAddressList(addressListID string) *FirewallRuleConfiguration

MatchSourceAddressList modifies the configuration so that the firewall rule will match a specific source IP address list.

func (*FirewallRuleConfiguration) MatchSourceNetwork

func (configuration *FirewallRuleConfiguration) MatchSourceNetwork(baseAddress string, prefixSize int) *FirewallRuleConfiguration

MatchSourceNetwork modifies the configuration so that the firewall rule will match any source IP address on the specified network.

func (*FirewallRuleConfiguration) MatchSourcePort

func (configuration *FirewallRuleConfiguration) MatchSourcePort(port int) *FirewallRuleConfiguration

MatchSourcePort modifies the configuration so that the firewall rule will match a specific source port.

func (*FirewallRuleConfiguration) MatchSourcePortList

func (configuration *FirewallRuleConfiguration) MatchSourcePortList(portListID string) *FirewallRuleConfiguration

MatchSourcePortList modifies the configuration so that the firewall rule will match any source port appearing on the specified port list (or its children).

func (*FirewallRuleConfiguration) MatchSourcePortRange

func (configuration *FirewallRuleConfiguration) MatchSourcePortRange(beginPort int, endPort int) *FirewallRuleConfiguration

MatchSourcePortRange modifies the configuration so that the firewall rule will match any source port in the specified range.

func (*FirewallRuleConfiguration) PlaceAfter

func (configuration *FirewallRuleConfiguration) PlaceAfter(afterRuleName string) *FirewallRuleConfiguration

PlaceAfter modifies the configuration so that the firewall rule will be placed after the specified rule.

func (*FirewallRuleConfiguration) PlaceBefore

func (configuration *FirewallRuleConfiguration) PlaceBefore(beforeRuleName string) *FirewallRuleConfiguration

PlaceBefore modifies the configuration so that the firewall rule will be placed before the specified rule.

func (*FirewallRuleConfiguration) PlaceFirst

func (configuration *FirewallRuleConfiguration) PlaceFirst() *FirewallRuleConfiguration

PlaceFirst modifies the configuration so that the firewall rule will be placed in the first available position.

func (*FirewallRuleConfiguration) TCP

TCP sets the firewall rule's target protocol to TCP.

func (*FirewallRuleConfiguration) ToFirewallRule

func (configuration *FirewallRuleConfiguration) ToFirewallRule() FirewallRule

ToFirewallRule converts the FirewallRuleConfiguration to a FirewallRule (for use in test scenarios).

type FirewallRuleIPAddress

type FirewallRuleIPAddress struct {
	Address    string `json:"address"`
	PrefixSize *int   `json:"prefixSize,omitempty"`
}

FirewallRuleIPAddress represents represents an IP address for firewall configuration.

type FirewallRulePlacement

type FirewallRulePlacement struct {
	Position           string  `json:"position"`
	RelativeToRuleName *string `json:"relativeToRule,omitempty"`
}

FirewallRulePlacement describes the placement for a firewall rule.

type FirewallRulePort

type FirewallRulePort struct {
	Begin int  `json:"begin"`
	End   *int `json:"end"`
}

FirewallRulePort represents a firewall port configuration.

type FirewallRuleScope

type FirewallRuleScope struct {
	IPAddress     *FirewallRuleIPAddress `json:"ip,omitempty"`
	AddressList   *EntityReference       `json:"ipAddressList,omitempty"`
	AddressListID *string                `json:"ipAddressListId,omitempty"`
	Port          *FirewallRulePort      `json:"port,omitempty"`
	PortListID    *string                `json:"portListId,omitempty"`
}

FirewallRuleScope represents a scope (IP and / or port) for firewall configuration (source or destination).

func (FirewallRuleScope) Diff

func (scope FirewallRuleScope) Diff(other FirewallRuleScope) (differences []string)

Diff captures the differences (if any) between a FirewallRuleScope and another FirewallRuleScope.

func (*FirewallRuleScope) IsScopeAddressList

func (scope *FirewallRuleScope) IsScopeAddressList() bool

IsScopeAddressList determines whether the firewall rule scope matches an IP address list.

func (*FirewallRuleScope) IsScopeAny

func (scope *FirewallRuleScope) IsScopeAny() bool

IsScopeAny determines whether the firewall rule scope matches anything (i.e. the rule is unscoped).

func (*FirewallRuleScope) IsScopeHost

func (scope *FirewallRuleScope) IsScopeHost() bool

IsScopeHost determines whether the firewall rule scope matches a host.

func (*FirewallRuleScope) IsScopeNetwork

func (scope *FirewallRuleScope) IsScopeNetwork() bool

IsScopeNetwork determines whether the firewall rule scope matches a network.

func (*FirewallRuleScope) IsScopePort

func (scope *FirewallRuleScope) IsScopePort() bool

IsScopePort determines whether the firewall rule scope matches a single port.

func (*FirewallRuleScope) IsScopePortList

func (scope *FirewallRuleScope) IsScopePortList() bool

IsScopePortList determines whether the firewall rule scope matches a port list.

func (*FirewallRuleScope) IsScopePortRange

func (scope *FirewallRuleScope) IsScopePortRange() bool

IsScopePortRange determines whether the firewall rule scope matches a port range.

type FirewallRules

type FirewallRules struct {
	Rules []FirewallRule `json:"firewallRule"`

	PagedResult
}

FirewallRules represents a page of FirewallRule results.

type HealthMonitor

type HealthMonitor struct {
	ID               string `json:"id"`
	Name             string `json:"name"`
	IsNodeCompatible bool   `json:"nodeCompatible"`
	IsPoolCompatible bool   `json:"poolCompatible"`
}

HealthMonitor represents a load-balancer persistence (stickiness) profile.

type HealthMonitors

type HealthMonitors struct {
	Items []HealthMonitor `json:"defaultHealthMonitor"`

	PagedResult
}

HealthMonitors represents a page of HealthMonitor results.

type IPAddressList

type IPAddressList struct {
	ID          string               `json:"id"`
	Name        string               `json:"name"`
	Description string               `json:"description"`
	IPVersion   string               `json:"ipVersion"`
	State       string               `json:"state"`
	CreateTime  string               `json:"createTime"`
	Addresses   []IPAddressListEntry `json:"ipAddress"`
	ChildLists  []EntityReference    `json:"childIpAddressList"`
}

IPAddressList represents an IP address list.

func (*IPAddressList) BuildEditRequest

func (addressList *IPAddressList) BuildEditRequest() EditIPAddressList

BuildEditRequest creates an EditIPAddressList using the existing addresses and child list references in the IP address list.

type IPAddressListEntry

type IPAddressListEntry struct {
	Begin      string  `json:"begin"`
	End        *string `json:"end,omitempty"`
	PrefixSize *int    `json:"prefixSize,omitempty"`
}

IPAddressListEntry represents an entry in an IP address list.

type IPAddressLists

type IPAddressLists struct {
	AddressLists []IPAddressList `json:"ipAddressList"`

	PagedResult
}

IPAddressLists represents a page of IPAddressList results.

type IPRange

type IPRange interface {
	// Convert the IPvX range to a display string.
	ToDisplayString() string
}

IPRange represents an IPvX range.

type IPv4Range

type IPv4Range struct {
	// The network base address.
	BaseAddress string `json:"address"`
	// The network prefix size.
	PrefixSize int `json:"prefixSize"`
}

IPv4Range represents an IPv4 network (base address and prefix size)

func (IPv4Range) ToDisplayString

func (network IPv4Range) ToDisplayString() string

ToDisplayString converts the IPv4 range to a display string.

type IPv6Range

type IPv6Range struct {
	// The network base address.
	BaseAddress string `json:"address"`
	// The network prefix size.
	PrefixSize int `json:"prefixSize"`
}

IPv6Range represents an IPv6 network (base address and prefix size)

func (IPv6Range) ToDisplayString

func (network IPv6Range) ToDisplayString() string

ToDisplayString converts the IPv6 range to a display string.

type IRule

type IRule struct {
	ID                      string `json:"id"`
	Name                    string `json:"name"`
	VirtualListenerType     string `json:"virtualListenerType"`
	VirtualListenerProtocol string `json:"virtualListenerProtocol"`
}

IRule represents a load-balancer iRule.

func (*IRule) GetID

func (iRule *IRule) GetID() string

GetID retrieves the iRule's ID.

func (*IRule) GetName

func (iRule *IRule) GetName() string

GetName retrieves the iRule's name.

func (*IRule) ToEntityReference

func (iRule *IRule) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the IRule.

type IRules

type IRules struct {
	Items []IRule `json:"defaultIRule"`

	PagedResult
}

IRules represents a page of IRule results.

type Image

type Image interface {
	Resource

	// GetType determines the image type.
	GetType() ImageType

	// GetDatacenterID retrieves Id of the datacenter where the image is located.
	GetDatacenterID() string

	// GetOS retrieves information about the image's operating system.
	GetOS() OperatingSystem

	// RequiresCustomization determines whether the image requires guest OS customisation during deployment.
	RequiresCustomization() bool

	// ApplyTo applies the Image to the specified ServerDeploymentConfiguration.
	ApplyTo(config *ServerDeploymentConfiguration)

	// ApplyToUncustomized applies the Image to the specified UncustomizedServerDeploymentConfiguration.
	ApplyToUncustomized(config *UncustomizedServerDeploymentConfiguration)
}

Image represents an image used to create servers.

type ImageGuestInformation

type ImageGuestInformation struct {
	OperatingSystem OperatingSystem `json:"operatingSystem"`
	OSCustomization bool            `json:"osCustomization"`
}

ImageGuestInformation represents guest-related information about a virtual machine image.

type ImageType

type ImageType int

ImageType represents a type of Image.

const (
	// ImageTypeUnknown represents an unknown image type.
	ImageTypeUnknown ImageType = iota

	// ImageTypeOS represents an OS (built-in) image.
	ImageTypeOS

	// ImageTypeCustomer represents a customer image.
	ImageTypeCustomer
)

type NATRule

type NATRule struct {
	ID                string `json:"id"`
	NetworkDomainID   string `json:"networkDomainId"`
	InternalIPAddress string `json:"internalIp"`
	ExternalIPAddress string `json:"externalIp"`
	CreateTime        string `json:"createTime"`
	State             string `json:"state"`
	DataCenterID      string `json:"datacenterId"`
}

NATRule represents a Network Address Translation (NAT) rule. NAT rules are used to forward IPv4 traffic from a public IP address to a server's private IP address.

type NATRules

type NATRules struct {
	Rules []NATRule `json:"natRule"`

	PagedResult
}

NATRules represents a page of NATRule results.

type NamedEntity

type NamedEntity interface {
	Entity

	// GetName retrieves the entity's name.
	GetName() string

	// ToEntityReference creates an EntityReference representing the entity.
	ToEntityReference() EntityReference
}

NamedEntity represents a named Cloud Control entity.

type NetworkDomain

type NetworkDomain struct {
	// The network domain Id.
	ID string `json:"id"`

	// The network domain name.
	Name string `json:"name"`

	// The network domain description.
	Description string `json:"description"`

	// The network domain type.
	Type string `json:"type"`

	// The network domain's NAT IPv4 address.
	NatIPv4Address string `json:"snatIpv4Address"`

	// The network domain's outside transit IPv4 subnet.
	OutsideTransitVLANIPv4Subnet IPv4Range `json:"outsideTransitVlanIpv4Subnet"`

	// The network domain's creation timestamp.
	CreateTime string `json:"createTime"`

	// The network domain's current state.
	State string `json:"state"`

	// The network domain's current progress (if any).
	Progress string `json:"progress"`

	// The Id of the data centre in which the network domain is located.
	DatacenterID string `json:"datacenterId"`
}

NetworkDomain represents a compute network domain.

func (*NetworkDomain) GetID

func (domain *NetworkDomain) GetID() string

GetID returns the network domain's Id.

func (*NetworkDomain) GetName

func (domain *NetworkDomain) GetName() string

GetName returns the network domain's name.

func (*NetworkDomain) GetResourceType

func (domain *NetworkDomain) GetResourceType() ResourceType

GetResourceType returns the network domain's resource type.

func (*NetworkDomain) GetState

func (domain *NetworkDomain) GetState() string

GetState returns the network domain's current state.

func (*NetworkDomain) IsDeleted

func (domain *NetworkDomain) IsDeleted() bool

IsDeleted determines whether the network domain has been deleted (is nil).

func (*NetworkDomain) ToEntityReference

func (domain *NetworkDomain) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the NetworkDomain.

type NetworkDomains

type NetworkDomains struct {
	// The current page of network domains.
	Domains []NetworkDomain `json:"networkDomain"`

	PagedResult
}

NetworkDomains represents the response to a "List Network Domains" API call.

type NewVIPNodeConfiguration

type NewVIPNodeConfiguration struct {
	// The VIP node name.
	Name string `json:"name"`

	// The VIP node description.
	Description string `json:"description"`

	// The node's IPv4 address (either IPv4 or IPv6 address must be specified).
	IPv4Address string `json:"ipv4Address,omitempty"`

	// The node's IPv6 address (either IPv4 or IPv6 address must be specified).
	IPv6Address string `json:"ipv6Address,omitempty"`

	// The node status (VIPNodeStatusEnabled, VIPNodeStatusDisabled, or VIPNodeStatusForcedOffline).
	Status string `json:"status"`

	// The Id of the node's associated health monitor (if any).
	HealthMonitorID string `json:"healthMonitorId,omitempty"`

	// The node's connection limit (must be greater than 0).
	ConnectionLimit int `json:"connectionLimit"`

	// The node's connection rate limit (must be greater than 0).
	ConnectionRateLimit int `json:"connectionRateLimit"`

	// The Id of the network domain where the node is located.
	NetworkDomainID string `json:"networkDomainId"`
}

NewVIPNodeConfiguration represents the configuration for a new VIP node.

type NewVIPPoolConfiguration

type NewVIPPoolConfiguration struct {
	// The VIP pool name.
	Name string `json:"name"`

	// The VIP pool description.
	Description string `json:"description"`

	// The load-balancing method used for pools in the pool.
	LoadBalanceMethod string `json:"loadBalanceMethod"`

	// The Id of the pool's associated health monitors (if any).
	// Up to 2 health monitors can be specified per pool.
	HealthMonitorIDs []string `json:"healthMonitorId,omitempty"`

	// The action performed when a pool in the pool is down.
	ServiceDownAction string `json:"serviceDownAction"`

	// The time, in seconds, over which the the pool will ramp new pools up to their full request rate.
	SlowRampTime int `json:"slowRampTime"`

	// The Id of the network domain where the pool is located.
	NetworkDomainID string `json:"networkDomainId"`

	// The Id of the data centre where the pool is located.
	DatacenterID string `json:"datacenterId,omitempty"`
}

NewVIPPoolConfiguration represents the configuration for a new VIP pool.

type NewVirtualListenerConfiguration

type NewVirtualListenerConfiguration struct {
	Name                         string   `json:"name"`
	Description                  string   `json:"description"`
	Type                         string   `json:"type"`
	Protocol                     string   `json:"protocol"`
	ListenerIPAddress            *string  `json:"listenerIpAddress,omitempty"`
	Port                         int      `json:"port,omitempty"`
	Enabled                      bool     `json:"enabled"`
	ConnectionLimit              int      `json:"connectionLimit"`
	ConnectionRateLimit          int      `json:"connectionRateLimit"`
	SourcePortPreservation       string   `json:"sourcePortPreservation"`
	PoolID                       *string  `json:"poolId,omitempty"`
	ClientClonePoolID            *string  `json:"clientClonePoolId,omitempty"`
	PersistenceProfileID         *string  `json:"persistenceProfileId,omitempty"`
	FallbackPersistenceProfileID *string  `json:"fallbackPersistenceProfileId,omitempty"`
	SSLOffloadProfileID          *string  `json:"sslOffloadProfileId,omitempty"`
	IRuleIDs                     []string `json:"iruleId"`
	OptimizationProfile          *string  `json:"optimizationProfile,omitempty"`
	NetworkDomainID              string   `json:"networkDomainId"`
}

NewVirtualListenerConfiguration represents the configuration for a new virtual listener.

type OSImage

type OSImage struct {
	ID              string                        `json:"id"`
	Name            string                        `json:"name"`
	Description     string                        `json:"description"`
	DataCenterID    string                        `json:"datacenterId"`
	Guest           ImageGuestInformation         `json:"guest"`
	CPU             VirtualMachineCPU             `json:"cpu"`
	MemoryGB        int                           `json:"memoryGb"`
	SCSIControllers VirtualMachineSCSIControllers `json:"scsiController"`
	State           string                        `json:"state"`
	CreateTime      string                        `json:"createTime"`
	OSImageKey      string                        `json:"osImageKey"`
}

OSImage represents a DD-provided virtual machine image.

func (*OSImage) ApplyTo

func (image *OSImage) ApplyTo(config *ServerDeploymentConfiguration)

ApplyTo applies the OSImage to the specified ServerDeploymentConfiguration.

func (*OSImage) ApplyToUncustomized

func (image *OSImage) ApplyToUncustomized(config *UncustomizedServerDeploymentConfiguration)

ApplyToUncustomized applies the OSImage to the specified UncustomizedServerDeploymentConfiguration.

func (*OSImage) GetDatacenterID

func (image *OSImage) GetDatacenterID() string

GetDatacenterID retrieves Id of the datacenter where the image is located.

func (*OSImage) GetID

func (image *OSImage) GetID() string

GetID retrieves the image ID.

func (*OSImage) GetName

func (image *OSImage) GetName() string

GetName retrieves the image name.

func (*OSImage) GetOS

func (image *OSImage) GetOS() OperatingSystem

GetOS retrieves information about the image's operating system.

func (*OSImage) GetResourceType

func (image *OSImage) GetResourceType() ResourceType

GetResourceType retrieves the resource type.

func (*OSImage) GetState

func (image *OSImage) GetState() string

GetState retrieves the resource's current state (e.g. ResourceStatusNormal, etc).

func (*OSImage) GetType

func (image *OSImage) GetType() ImageType

GetType determines the image type.

func (*OSImage) IsDeleted

func (image *OSImage) IsDeleted() bool

IsDeleted determines whether the resource been deleted (i.e. the underlying struct is nil)?

func (*OSImage) RequiresCustomization

func (image *OSImage) RequiresCustomization() bool

RequiresCustomization determines whether the image requires guest OS customisation during deployment.

func (*OSImage) ToEntityReference

func (image *OSImage) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the OSImage.

type OSImages

type OSImages struct {
	// The current page of network domains.
	Images []OSImage `json:"osImage"`

	// The current page number.
	PageNumber int `json:"pageNumber"`

	// The number of OS images in the current page of results.
	PageCount int `json:"pageCount"`

	// The total number of OS images that match the requested filter criteria (if any).
	TotalCount int `json:"totalCount"`

	// The maximum number of OS images per page.
	PageSize int `json:"pageSize"`
}

OSImages represents a page of OSImage results.

type OperatingSystem

type OperatingSystem struct {
	// The operating system Id.
	ID string `json:"id"`

	// The operating system type.
	Family string `json:"family"`

	// The operating system display-name.
	DisplayName string `json:"displayName"`
}

OperatingSystem represents a well-known operating system for virtual machines.

type OperationCancelledError

type OperationCancelledError struct {
	OperationDescription string
}

OperationCancelledError is the error returned when an operation cancelled.

func (OperationCancelledError) Error

func (err OperationCancelledError) Error() string

Get a string representation of the error.

type PagedResult

type PagedResult struct {
	// The current page number.
	PageNumber int `json:"pageNumber"`

	// The number of items in the current page of results.
	PageCount int `json:"pageCount"`

	// The total number of results that match the requested filter criteria (if any).
	TotalCount int `json:"totalCount"`

	// The maximum number of results per page.
	PageSize int `json:"pageSize"`
}

PagedResult represents the common fields for all paged results from the compute API.

func (*PagedResult) IsEmpty

func (page *PagedResult) IsEmpty() bool

IsEmpty determines whether the page contains no results.

func (*PagedResult) IsLastPage

func (page *PagedResult) IsLastPage() bool

IsLastPage determines whether the page represents the last page of results.

func (*PagedResult) NextPage

func (page *PagedResult) NextPage() *Paging

NextPage creates a Paging for the next page of results.

type Paging

type Paging struct {
	PageNumber int
	PageSize   int
}

Paging contains the paging configuration for a compute API operation.

func DefaultPaging

func DefaultPaging() *Paging

DefaultPaging creates Paging with default settings (page 1, 50 records per page).

func (*Paging) EnsurePaging

func (paging *Paging) EnsurePaging() *Paging

EnsurePaging always returns a paging configuration (if the supplied Paging is nil, it returns the default configuration).

func (*Paging) First

func (paging *Paging) First()

First configures the Paging for the first page of results.

func (*Paging) Next

func (paging *Paging) Next()

Next configures the Paging for the next page of results.

type PersistenceProfile

type PersistenceProfile struct {
	ID                      string `json:"id"`
	Name                    string `json:"name"`
	IsFallbackCompatible    bool   `json:"fallbackCompatible"`
	VirtualListenerType     string `json:"virtualListenerType"`
	VirtualListenerProtocol string `json:"virtualListenerProtocol"`
}

PersistenceProfile represents a load-balancer persistence (stickiness) profile.

func (*PersistenceProfile) GetID

func (profile *PersistenceProfile) GetID() string

GetID retrieves the persistence profile's ID.

func (*PersistenceProfile) GetName

func (profile *PersistenceProfile) GetName() string

GetName retrieves the persistence profile's name.

func (*PersistenceProfile) ToEntityReference

func (profile *PersistenceProfile) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the PersistenceProfile.

type PersistenceProfiles

type PersistenceProfiles struct {
	Items []PersistenceProfile `json:"defaultPersistenceProfile"`

	PagedResult
}

PersistenceProfiles represents a page of PersistenceProfile results.

type PortList

type PortList struct {
	ID          string            `json:"id"`
	Name        string            `json:"name"`
	Description string            `json:"description"`
	Ports       []PortListEntry   `json:"port"`
	ChildLists  []EntityReference `json:"childPortList"`
	State       string            `json:"state"`
	CreateTime  string            `json:"createTime"`
}

PortList represents a port list.

func (*PortList) BuildEditRequest

func (portList *PortList) BuildEditRequest() EditPortList

BuildEditRequest creates an EditPortList using the existing ports and child list references in the port list.

type PortListEntry

type PortListEntry struct {
	Begin int  `json:"begin"`
	End   *int `json:"end,omitempty"`
}

PortListEntry represents an entry in a port list.

type PortLists

type PortLists struct {
	PortLists []PortList `json:"portList"`

	PagedResult
}

PortLists represents a page of PortList results.

type PublicIPBlock

type PublicIPBlock struct {
	ID              string `json:"id"`
	NetworkDomainID string `json:"networkDomainId"`
	DataCenterID    string `json:"datacenterId"`
	BaseIP          string `json:"baseIp"`
	Size            int    `json:"size"`
	CreateTime      string `json:"createTime"`
	State           string `json:"state"`
}

PublicIPBlock represents an allocated block of public IPv4 addresses.

func (*PublicIPBlock) GetID

func (block *PublicIPBlock) GetID() string

GetID returns the public IPv4 address block's Id.

func (*PublicIPBlock) GetName

func (block *PublicIPBlock) GetName() string

GetName returns the public IPv4 address block's name.

func (*PublicIPBlock) GetResourceType

func (block *PublicIPBlock) GetResourceType() ResourceType

GetResourceType returns the public IP block's resource type.

func (*PublicIPBlock) GetState

func (block *PublicIPBlock) GetState() string

GetState returns the network block's current state.

func (*PublicIPBlock) IsDeleted

func (block *PublicIPBlock) IsDeleted() bool

IsDeleted determines whether the public IPv4 address block has been deleted (is nil).

func (*PublicIPBlock) ToEntityReference

func (block *PublicIPBlock) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the CustomerImage.

type PublicIPBlocks

type PublicIPBlocks struct {
	Blocks []PublicIPBlock `json:"publicIpBlock"`

	PagedResult
}

PublicIPBlocks represents a page of PublicIPBlock results.

type ReservedIPAddress

type ReservedIPAddress struct {
	IPAddress   string `json:"ipAddress"`
	VLANID      string `json:"vlanId"`
	Description string `json:"description"`
}

Request body when reserving an IP address.

type ReservedIPv4Addresses

type ReservedIPv4Addresses struct {
	PagedResult

	Items []ReservedIPAddress `json:"ipv4"`
}

ReservedIPv4Addresses represents a page of ReservedIPAddress results for reserved IPv4 addresses.

type ReservedIPv6Addresses

type ReservedIPv6Addresses struct {
	PagedResult

	Items []ReservedIPAddress `json:"reservedIpv6Address"`
}

ReservedIPv6Addresses represents a page of ReservedIPAddress results for reserved IPv6 addresses.

type ReservedPublicIP

type ReservedPublicIP struct {
	IPBlockID       string `json:"ipBlockId"`
	DataCenterID    string `json:"datacenterId"`
	NetworkDomainID string `json:"networkDomainId"`
	Address         string `json:"value"`
}

ReservedPublicIP represents a public IPv4 address reserved for NAT or a VIP.

type ReservedPublicIPs

type ReservedPublicIPs struct {
	IPs []ReservedPublicIP `json:"ip"`

	PagedResult
}

ReservedPublicIPs represents a page of ReservedPublicIP results.

type Resource

type Resource interface {
	NamedEntity

	// The resource type.
	GetResourceType() ResourceType

	// The resource's current state (e.g. ResourceStatusNormal, etc).
	GetState() string

	// Has the resource been deleted (i.e. the underlying struct is nil)?
	IsDeleted() bool
}

Resource represents a compute resource.

type ResourceType

type ResourceType int

ResourceType represents a well-known DD compute resource type.

const (
	// ResourceTypeNetworkDomain represents a network domain.
	ResourceTypeNetworkDomain ResourceType = iota

	// ResourceTypeVLAN represents a VLAN.
	ResourceTypeVLAN

	// ResourceTypeServer represents a virtual machine.
	ResourceTypeServer

	// ResourceTypeServerAntiAffinityRule represents a server anti-affinity rule.
	ResourceTypeServerAntiAffinityRule

	// ResourceTypeNetworkAdapter represents a network adapter in a virtual machine.
	// Note that when calling methods such as WaitForChange, the Id must be of the form 'serverId/networkAdapterId'.
	ResourceTypeNetworkAdapter

	// ResourceTypePublicIPBlock represents a block of public IP addresses.
	ResourceTypePublicIPBlock

	// ResourceTypeFirewallRule represents a firewall rule.
	ResourceTypeFirewallRule

	// ResourceTypeVIPNode represents a VIP node.
	ResourceTypeVIPNode

	// ResourceTypeVIPPool represents a VIP pool.
	ResourceTypeVIPPool

	// ResourceTypeVirtualListener represents a virtual listener.
	ResourceTypeVirtualListener

	// ResourceTypeOSImage represents an OS image.
	ResourceTypeOSImage

	// ResourceTypeCustomerImage represents a customer image.
	ResourceTypeCustomerImage

	// ResourceTypeSSLDomainCertificate represents an SSL certificate for a domain name.
	ResourceTypeSSLDomainCertificate

	// ResourceTypeSSLCertificateChain represents an SSL certificate chain
	ResourceTypeSSLCertificateChain

	// ResourceTypeSSLOffloadProfile represents an SSL-offload profile
	ResourceTypeSSLOffloadProfile

	// ResourceStaticRoutes represents network domain static routes
	ResourceTypeStaticRoutes
)

type Role

type Role struct {
	// The XML name for the "Role" data contract
	XMLName xml.Name `xml:"role"`

	// The role name.
	Name string `xml:"name"`
}

Role represents a role assigned to a compute account.

type SSLCertificateChain

type SSLCertificateChain struct {
	ID              string `json:"id"`
	Name            string `json:"name"`
	Description     string `json:"description"`
	State           string `json:"state"`
	DatacenterID    string `json:"datacenterId"`
	NetworkDomainID string `json:"networkDomainId"`
}

SSLCertificateChain represents an SSL certificate applicable to a domain name.

func (*SSLCertificateChain) GetID

func (certificateChain *SSLCertificateChain) GetID() string

GetID returns the certificate chain's Id.

func (*SSLCertificateChain) GetName

func (certificateChain *SSLCertificateChain) GetName() string

GetName returns the certificate chain's name.

func (*SSLCertificateChain) GetResourceType

func (certificateChain *SSLCertificateChain) GetResourceType() ResourceType

GetResourceType returns the certificate chain's resource type.

func (*SSLCertificateChain) GetState

func (certificateChain *SSLCertificateChain) GetState() string

GetState returns the certificate chain's current state.

func (*SSLCertificateChain) IsDeleted

func (certificateChain *SSLCertificateChain) IsDeleted() bool

IsDeleted determines whether the certificate chain has been deleted (is nil).

func (*SSLCertificateChain) ToEntityReference

func (certificateChain *SSLCertificateChain) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the certificate chain.

type SSLCertificateChains

type SSLCertificateChains struct {
	Items []SSLCertificateChain `json:"sslCertificateChain"`

	PagedResult
}

SSLCertificateChains represents a page of SSLCertificateChain results.

type SSLDomainCertificate

type SSLDomainCertificate struct {
	ID              string `json:"id"`
	Name            string `json:"name"`
	Description     string `json:"description"`
	State           string `json:"state"`
	DatacenterID    string `json:"datacenterId"`
	NetworkDomainID string `json:"networkDomainId"`
}

SSLDomainCertificate represents an SSL certificate applicable to a domain name.

func (*SSLDomainCertificate) GetID

func (domainCertificate *SSLDomainCertificate) GetID() string

GetID returns the domain certificate's Id.

func (*SSLDomainCertificate) GetName

func (domainCertificate *SSLDomainCertificate) GetName() string

GetName returns the domain certificate's name.

func (*SSLDomainCertificate) GetResourceType

func (domainCertificate *SSLDomainCertificate) GetResourceType() ResourceType

GetResourceType returns the domain certificate's resource type.

func (*SSLDomainCertificate) GetState

func (domainCertificate *SSLDomainCertificate) GetState() string

GetState returns the domain certificate's current state.

func (*SSLDomainCertificate) IsDeleted

func (domainCertificate *SSLDomainCertificate) IsDeleted() bool

IsDeleted determines whether the domain certificate has been deleted (is nil).

func (*SSLDomainCertificate) ToEntityReference

func (domainCertificate *SSLDomainCertificate) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the domain certificate.

type SSLDomainCertificates

type SSLDomainCertificates struct {
	Items []SSLDomainCertificate `json:"sslDomainCertificate"`

	PagedResult
}

SSLDomainCertificates represents a page of SSLDomainCertificate results.

type SSLOffloadProfile

type SSLOffloadProfile struct {
	ID                   string          `json:"id"`
	Name                 string          `json:"name"`
	Description          string          `json:"description"`
	SSLDomainCertificate EntityReference `json:"sslDomainCertificate"`
	SSLCertificateChain  EntityReference `json:"sslCertificateChain"`
	Ciphers              string          `json:"ciphers"`
	State                string          `json:"state"`
	DatacenterID         string          `json:"datacenterId"`
	NetworkDomainID      string          `json:"networkDomainId"`
}

SSLOffloadProfile represents an SSL-offload profile.

func (*SSLOffloadProfile) GetID

func (offloadProfile *SSLOffloadProfile) GetID() string

GetID returns the offload profile's Id.

func (*SSLOffloadProfile) GetName

func (offloadProfile *SSLOffloadProfile) GetName() string

GetName returns the offload profile's name.

func (*SSLOffloadProfile) GetResourceType

func (offloadProfile *SSLOffloadProfile) GetResourceType() ResourceType

GetResourceType returns the offload profile's resource type.

func (*SSLOffloadProfile) GetState

func (offloadProfile *SSLOffloadProfile) GetState() string

GetState returns the offload profile's current state.

func (*SSLOffloadProfile) IsDeleted

func (offloadProfile *SSLOffloadProfile) IsDeleted() bool

IsDeleted determines whether the offload profile has been deleted (is nil).

func (*SSLOffloadProfile) ToEntityReference

func (offloadProfile *SSLOffloadProfile) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the offload profile.

type SSLOffloadProfiles

type SSLOffloadProfiles struct {
	Items []SSLOffloadProfile `json:"sslOffloadProfile"`

	PagedResult
}

SSLOffloadProfiles represents a page of SSLOffloadProfile results.

type Server

type Server struct {
	ID              string                        `json:"id"`
	Name            string                        `json:"name"`
	Description     string                        `json:"description"`
	OperatingSystem OperatingSystem               `json:"operatingSystem"`
	CPU             VirtualMachineCPU             `json:"cpu"`
	MemoryGB        int                           `json:"memoryGb"`
	SCSIControllers VirtualMachineSCSIControllers `json:"scsiController"`
	Network         VirtualMachineNetwork         `json:"networkInfo"`
	Backup          *ServerBackup                 `json:"backup,omitempty"`
	SourceImageID   string                        `json:"sourceImageId"`
	State           string                        `json:"state"`
	Deployed        bool                          `json:"deployed"`
	Started         bool                          `json:"started"`
}

Server represents a virtual machine.

func (*Server) GetID

func (server *Server) GetID() string

GetID returns the server's Id.

func (*Server) GetName

func (server *Server) GetName() string

GetName returns the server's name.

func (*Server) GetResourceType

func (server *Server) GetResourceType() ResourceType

GetResourceType returns the network domain's resource type.

func (*Server) GetState

func (server *Server) GetState() string

GetState returns the server's current state.

func (*Server) IsDeleted

func (server *Server) IsDeleted() bool

IsDeleted determines whether the server has been deleted (is nil).

func (*Server) ToEntityReference

func (server *Server) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the Server.

type ServerAntiAffinityRule

type ServerAntiAffinityRule struct {
	// The anti-affinity rule Id.
	ID string `json:"id"`

	// The 2 servers that the rule relates to.
	//
	// Only ever contains exactly 2 servers.
	//
	// This is only declared as an array because that's what the CloudControl API returns.
	Servers []ServerSummary `json:"serverSummary"`

	// The network domain's current state.
	State string `json:"state"`

	// The network domain's creation timestamp.
	CreateTime string `json:"created"`

	// The Id of the data centre in which the network domain is located.
	DatacenterID string `json:"datacenterId"`
}

ServerAntiAffinityRule represents an anti-affinity rule between 2 servers.

func (*ServerAntiAffinityRule) GetID

func (rule *ServerAntiAffinityRule) GetID() string

GetID returns the server anti-affinity rule's Id.

func (*ServerAntiAffinityRule) GetName

func (rule *ServerAntiAffinityRule) GetName() string

GetName returns the server anti-affinity rule's name.

func (*ServerAntiAffinityRule) GetResourceType

func (rule *ServerAntiAffinityRule) GetResourceType() ResourceType

GetResourceType returns the server anti-affinity rule's resource type.

func (*ServerAntiAffinityRule) GetState

func (rule *ServerAntiAffinityRule) GetState() string

GetState returns the server anti-affinity rule's current state.

func (*ServerAntiAffinityRule) IsDeleted

func (rule *ServerAntiAffinityRule) IsDeleted() bool

IsDeleted determines whether the server anti-affinity rule has been deleted (is nil).

func (*ServerAntiAffinityRule) ToEntityReference

func (rule *ServerAntiAffinityRule) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the CustomerImage.

type ServerAntiAffinityRules

type ServerAntiAffinityRules struct {
	Items []ServerAntiAffinityRule `json:"antiAffinityRule"`

	PagedResult
}

ServerAntiAffinityRules represents a page of ServerAntiAffinityRule results.

type ServerBackup

type ServerBackup struct {
	ServicePlan string `json:"servicePlan"`
	State       string `json:"state"`
}

ServerBackup represents the backup configuration for a server.

type ServerBackupDetails

type ServerBackupDetails struct {
	// The XML name for the BackupClientDetail structure
	XMLName xml.Name `xml:"http://oec.api.opsource.net/schemas/backup BackupDetails"`

	// The server's associated asset Id.
	AssetID string `xml:"assetId,attr"`

	// The server's associated backup service plan.
	ServicePlan string `xml:"servicePlan,attr"`

	// The server state.
	State string `xml:"state,attr"`

	// Detailed information about the server's backup clients.
	Clients []BackupClientDetail `xml:"http://oec.api.opsource.net/schemas/backup backupClient"`
}

ServerBackupDetails represents detailed backup information for a server.

func (*ServerBackupDetails) GetClientByID

func (backupDetails *ServerBackupDetails) GetClientByID(id string) *BackupClientDetail

GetClientByID retrieves the BackupClientDetail (if any) with the specified Id.

type ServerDeploymentConfiguration

type ServerDeploymentConfiguration struct {
	Name                  string                        `json:"name"`
	Description           string                        `json:"description"`
	ImageID               string                        `json:"imageId"`
	AdministratorPassword string                        `json:"administratorPassword,omitempty"`
	CPU                   VirtualMachineCPU             `json:"cpu"`
	MemoryGB              int                           `json:"memoryGb,omitempty"`
	SCSIControllers       VirtualMachineSCSIControllers `json:"scsiController"`
	Network               VirtualMachineNetwork         `json:"networkInfo"`
	PrimaryDNS            string                        `json:"primaryDns,omitempty"`
	SecondaryDNS          string                        `json:"secondaryDns,omitempty"`
	Start                 bool                          `json:"start"`
}

ServerDeploymentConfiguration represents the configuration for deploying a virtual machine.

type ServerSummary

type ServerSummary struct {
	ID          string `json:"id"`
	Name        string `json:"name"`
	Description string `json:"description"`
}

ServerSummary respresents summary information for a server.

func (*ServerSummary) ToEntityReference

func (serverSummary *ServerSummary) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the ServerSummary.

type Servers

type Servers struct {
	Items []Server `json:"server"`

	PagedResult
}

Servers represents a page of Server results.

type StaticRoute

type StaticRoute struct {
	// UUID of a Network Domain belonging to {org-id} within which the Static Route is to be created.
	NetworkDomainId string `json:"networkDomainId"`

	// Must be between 1 and 75 characters in length.
	//Cannot start with a number, a period ('.'), 'CCSYSTEM.' or 'CCDEFAULT.'.
	Name string `json:"name"`

	// Maximum length: 255 characters.
	Description string `json:"description"`

	// Type
	Type string `json:"type"`

	// One of IPV4 or IPV6
	IpVersion string `json:"ipVersion"`

	// Either a valid IPv4 address in dot-decimal notation or an IPv6 address in compressed or extended format.
	// In conjunction with the destinationPrefixSize this must represent a CIDR boundary.
	DestinationNetworkAddress string `json:"destinationNetworkAddress"`

	// Integer prefix defining the size of the network.
	// In conjunction with the destinationPrefixSize this must represent a CIDR boundary.
	DestinationPrefixSize int `json:"destinationPrefixSize"`

	// Gateway address in the form of an INET gateway, CPNC gateway or an address on an Attached VLAN in the same Network Domain.
	NextHopAddress string `json:"nextHopAddress"`

	// State
	State string `json:"state"`

	// The date/time that the Static Route was created in CloudControl
	CreateTime string `json:"createTime"`

	// Static Route ID
	ID string `json:"id"`

	// Data Center
	DataCenter string `json:"datacenterId"`
}

StaticRoute reporesents client static route on a network domain in an MCP2 data center.

func (*StaticRoute) GetID

func (staticRoute *StaticRoute) GetID() string

Get ID

func (*StaticRoute) GetName

func (staticRoute *StaticRoute) GetName() string

Get name

func (*StaticRoute) GetResourceType

func (staticRoute *StaticRoute) GetResourceType() ResourceType

GetResourceType returns the static route resource type.

func (*StaticRoute) GetState

func (staticRoute *StaticRoute) GetState() string

GetState returns the Static Routes current state.

func (*StaticRoute) IsDeleted

func (staticRoute *StaticRoute) IsDeleted() bool

IsDeleted determines whether the network domain has been deleted (is nil).

func (*StaticRoute) ToEntityReference

func (staticRoute *StaticRoute) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the VLAN.

type StaticRoutes

type StaticRoutes struct {
	// The current page of network domains.
	Routes []StaticRoute `json:"staticRoute"`

	PagedResult
}

type Tag

type Tag struct {
	Name  string `json:"tagKeyName"`
	Value string `json:"value"`
}

Tag represents a tag applied to an asset.

type TagDetail

type TagDetail struct {
	AssetType        string `json:"assetType"`
	AssetID          string `json:"assetId"`
	AssetName        string `json:"assetName"`
	DataCenterID     string `json:"datacenterId"`
	TagKeyID         string `json:"tagKeyId"`
	Name             string `json:"tagKeyName"`
	Value            string `json:"value"`
	IsValueRequired  bool   `json:"valueRequired"`
	DisplayOnReports bool   `json:"displayOnReport"`
}

TagDetail represents detailed information about a tag applied to an asset.

func (*TagDetail) ToTag

func (tagDetail *TagDetail) ToTag() Tag

ToTag converts the TagDetail to a Tag.

type TagDetails

type TagDetails struct {
	Items []TagDetail `json:"tag"`

	PagedResult
}

TagDetails represents a page of TagDetail results.

type TagKey

type TagKey struct {
	ID string `json:"id"`
	// contains filtered or unexported fields
}

TagKey represents a key for asset tags.

type TagKeys

type TagKeys struct {
	Items []TagKey `json:"tagKey"`

	PagedResult
}

TagKeys represents a page of TagKey results.

type UncustomizedServerDeploymentConfiguration

type UncustomizedServerDeploymentConfiguration struct {
	Name        string                `json:"name"`
	Description string                `json:"description"`
	ImageID     string                `json:"imageId"`
	CPU         VirtualMachineCPU     `json:"cpu"`
	MemoryGB    int                   `json:"memoryGb,omitempty"`
	Disks       VirtualMachineDisks   `json:"disk"`
	Network     VirtualMachineNetwork `json:"networkInfo"`
	Start       bool                  `json:"start"`
}

UncustomizedServerDeploymentConfiguration represents the configuration for deploying a virtual machine without guest OS customisation.

type VIPNode

type VIPNode struct {
	// The node Id.
	ID string `json:"id"`

	// The node name.
	Name string `json:"name"`

	// The node description.
	Description string `json:"description"`

	// VIPNode's IPv4 address (either IPv4 or IPv6 address must be specified).
	IPv4Address string `json:"ipv4Address,omitempty"`

	// VIPNode's IPv6 address (either IPv4 or IPv6 address must be specified).
	IPv6Address string `json:"ipv6Address,omitempty"`

	// The node status (VIPNodeStatusEnabled, VIPNodeStatusDisabled, or VIPNodeStatusForcedOffline).
	Status string `json:"status"`

	// The Id of the node's associated health monitor (if any).
	HealthMonitor VIPNodeHealthMonitor `json:"healthMonitor,omitempty"`

	// The node's connection limit (must be greater than 0).
	ConnectionLimit int `json:"connectionLimit"`

	// The node's connection rate limit (must be greater than 0).
	ConnectionRateLimit int `json:"connectionRateLimit"`

	// The Id of the network domain where the node is located.
	NetworkDomainID string `json:"networkDomainId"`

	// The Id of the data centre where the node is located.
	DataCenterID string `json:"datacenterId"`

	// The node's creation timestamp.
	CreateTime string `json:"createTime"`

	// The node's current state.
	State string `json:"state"`

	// The node's current progress (if any).
	Progress string `json:"progress"`
}

VIPNode represents a VIP node.

func (*VIPNode) GetID

func (node *VIPNode) GetID() string

GetID returns the node's Id.

func (*VIPNode) GetName

func (node *VIPNode) GetName() string

GetName returns the node's name.

func (*VIPNode) GetResourceType

func (node *VIPNode) GetResourceType() ResourceType

GetResourceType returns the node's resource type.

func (*VIPNode) GetState

func (node *VIPNode) GetState() string

GetState returns the node's current state.

func (*VIPNode) IsDeleted

func (node *VIPNode) IsDeleted() bool

IsDeleted determines whether the node has been deleted (is nil).

func (*VIPNode) ToEntityReference

func (node *VIPNode) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the VIPNode.

type VIPNodeHealthMonitor

type VIPNodeHealthMonitor struct {
	ID   string `json:"id"`
	Name string `json:"name"`
}

VIPNodeHealthMonitor represents a health Monitor to a VIP node.

type VIPNodeReference

type VIPNodeReference struct {
	EntityReference

	IPAddress string `json:"ipAddress"`
	Status    string `json:"status"`
}

VIPNodeReference represents a reference to a VIP node.

type VIPNodes

type VIPNodes struct {
	// The current page of node results.
	Items []VIPNode `json:"node"`

	PagedResult
}

VIPNodes represents a page of VIPNode results.

type VIPPool

type VIPPool struct {
	ID                string            `json:"id"`
	Name              string            `json:"name"`
	Description       string            `json:"description"`
	LoadBalanceMethod string            `json:"loadBalanceMethod"`
	HealthMonitors    []EntityReference `json:"healthMonitor"`
	ServiceDownAction string            `json:"serviceDownAction"`
	SlowRampTime      int               `json:"slowRampTime"`
	State             string            `json:"state"`
	NetworkDomainID   string            `json:"networkDomainID"`
	DataCenterID      string            `json:"datacenterId"`
	CreateTime        string            `json:"createTime"`
}

VIPPool represents a VIP pool.

func (*VIPPool) GetID

func (pool *VIPPool) GetID() string

GetID returns the pool's Id.

func (*VIPPool) GetName

func (pool *VIPPool) GetName() string

GetName returns the pool's name.

func (*VIPPool) GetResourceType

func (pool *VIPPool) GetResourceType() ResourceType

GetResourceType returns the pool's resource type.

func (*VIPPool) GetState

func (pool *VIPPool) GetState() string

GetState returns the pool's current state.

func (*VIPPool) IsDeleted

func (pool *VIPPool) IsDeleted() bool

IsDeleted determines whether the pool has been deleted (is nil).

func (*VIPPool) ToEntityReference

func (pool *VIPPool) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the VIPNode.

type VIPPoolMember

type VIPPoolMember struct {
	ID              string           `json:"id"`
	Pool            EntityReference  `json:"pool"`
	Node            VIPNodeReference `json:"node"`
	Port            *int             `json:"port,omitempty"`
	Status          string           `json:"status"`
	State           string           `json:"state"`
	NetworkDomainID string           `json:"networkDomainId"`
	DatacenterID    string           `json:"datacenterId"`
	CreateTime      string           `json:"createTime"`
}

VIPPoolMember represents a combination of node and port as a member of a VIP pool.

type VIPPoolMembers

type VIPPoolMembers struct {
	Items []VIPPoolMember `json:"poolMember"`

	PagedResult
}

VIPPoolMembers represents a page of VIPPoolMember results.

type VIPPools

type VIPPools struct {
	Items []VIPPool

	PagedResult
}

VIPPools represents a page of VIPPool results.

type VLAN

type VLAN struct {
	// The VLAN Id.
	ID string `json:"id"`

	// The VLAN name.
	Name string `json:"name"`

	// The VLAN description.
	Description string `json:"description"`

	// The network domain in which the VLAN is deployed associated.
	NetworkDomain EntityReference `json:"networkDomain"`

	// The VLAN's associated IPv4 network range.
	IPv4Range IPv4Range `json:"privateIpv4Range"`

	// The VLAN's IPv4 gateway address.
	IPv4GatewayAddress string `json:"ipv4GatewayAddress"`

	// The VLAN's associated IPv6 network range.
	IPv6Range IPv6Range `json:"ipv6Range"`

	// The VLAN's IPv6 gateway address.
	IPv6GatewayAddress string `json:"ipv6GatewayAddress"`

	// The date / time that the VLAN was first created.
	CreateTime string `json:"createTime"`

	// The VLAN's current state.
	State string `json:"state"`

	// The ID of the data center in which the VLAN and its containing network domain are deployed.
	DataCenterID string `json:"datacenterId"`

	// Gateway addressing
	GatewayAddressing string `json:"gatewayAddressing"`
}

VLAN represents a compute VLAN.

func (*VLAN) GetID

func (vlan *VLAN) GetID() string

GetID returns the VLAN's Id.

func (*VLAN) GetName

func (vlan *VLAN) GetName() string

GetName returns the VLAN's name.

func (*VLAN) GetResourceType

func (vlan *VLAN) GetResourceType() ResourceType

GetResourceType returns the network domain's resource type.

func (*VLAN) GetState

func (vlan *VLAN) GetState() string

GetState returns the VLAN's current state.

func (*VLAN) IsDeleted

func (vlan *VLAN) IsDeleted() bool

IsDeleted determines whether the VLAN has been deleted (is nil).

func (*VLAN) ToEntityReference

func (vlan *VLAN) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the VLAN.

type VLANs

type VLANs struct {
	// The current page of network domains.
	VLANs []VLAN `json:"vlan"`

	PagedResult
}

VLANs represents the response to a "List VLANs" API call.

type VirtualListener

type VirtualListener struct {
	ID                         string                    `json:"id"`
	Name                       string                    `json:"name"`
	Description                string                    `json:"description"`
	Type                       string                    `json:"type"`
	Protocol                   string                    `json:"protocol"`
	ListenerIPAddress          string                    `json:"listenerIpAddress"`
	Port                       int                       `json:"port"`
	Enabled                    bool                      `json:"enabled"`
	ConnectionLimit            int                       `json:"connectionLimit"`
	ConnectionRateLimit        int                       `json:"connectionRateLimit"`
	SourcePortPreservation     string                    `json:"sourcePortPreservation"`
	Pool                       VirtualListenerVIPPoolRef `json:"pool"`
	ClientClonePool            VirtualListenerVIPPoolRef `json:"ClientClonePool"`
	PersistenceProfile         EntityReference           `json:"persistenceProfile"`
	FallbackPersistenceProfile EntityReference           `json:"fallbackPersistenceProfile"`
	SSLOffloadProfile          EntityReference           `json:"sslOffloadProfile"`
	OptimizationProfile        string                    `json:"optimizationProfile"`
	IRules                     []EntityReference         `json:"irule"`
	State                      string                    `json:"state"`
	CreateTime                 string                    `json:"createTime"`
	NetworkDomainID            string                    `json:"networkDomainId"`
	DataCenterID               string                    `json:"datacenterId"`
}

VirtualListener represents a virtual listener.

func (*VirtualListener) GetID

func (virtualListener *VirtualListener) GetID() string

GetID returns the virtual listener's Id.

func (*VirtualListener) GetName

func (virtualListener *VirtualListener) GetName() string

GetName returns the virtual listener's name.

func (*VirtualListener) GetResourceType

func (virtualListener *VirtualListener) GetResourceType() ResourceType

GetResourceType returns the virtual listener's resource type.

func (*VirtualListener) GetState

func (virtualListener *VirtualListener) GetState() string

GetState returns the virtual listener's current state.

func (*VirtualListener) IsDeleted

func (virtualListener *VirtualListener) IsDeleted() bool

IsDeleted determines whether the virtual listener has been deleted (is nil).

func (*VirtualListener) ToEntityReference

func (virtualListener *VirtualListener) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the CustomerImage.

type VirtualListenerVIPPoolRef

type VirtualListenerVIPPoolRef struct {
	LoadBalanceMethod string            `json:"loadBalanceMethod"`
	ServiceDownAction string            `json:"serviceDownAction"`
	HealthMonitors    []EntityReference `json:"healthMonitor"`

	EntityReference
}

VirtualListenerVIPPoolRef represents a VirtualListener's reference to a VIP pool

type VirtualListeners

type VirtualListeners struct {
	Items []VirtualListener `json:"virtualListener"`

	PagedResult
}

VirtualListeners represents a page of VirtualListener results.

type VirtualMachineCPU

type VirtualMachineCPU struct {
	Count          int    `json:"count,omitempty"`
	Speed          string `json:"speed,omitempty"`
	CoresPerSocket int    `json:"coresPerSocket,omitempty"`
}

VirtualMachineCPU represents the CPU configuration for a virtual machine.

type VirtualMachineDisk

type VirtualMachineDisk struct {
	ID         string `json:"id,omitempty"`
	SCSIUnitID int    `json:"scsiId"`
	SizeGB     int    `json:"sizeGb"`
	Speed      string `json:"speed"`
	Iops       int    `json:"iops,omitempty"`
	State      string `json:"state,omitempty"`
}

VirtualMachineDisk represents the configuration for disk in a virtual machine.

type VirtualMachineDisks

type VirtualMachineDisks []VirtualMachineDisk

VirtualMachineDisks is an array of VirtualMachineDisk that adds convenience methods.

func (VirtualMachineDisks) GetByID

func (disks VirtualMachineDisks) GetByID(id string) *VirtualMachineDisk

GetByID retrieves the disk (if any) with the specified Id.

func (VirtualMachineDisks) GetByUnitID

func (disks VirtualMachineDisks) GetByUnitID(unitID int) *VirtualMachineDisk

GetByUnitID retrieves the disk (if any) with the specified SCSI unit Id.

type VirtualMachineNetwork

type VirtualMachineNetwork struct {
	NetworkDomainID           string                         `json:"networkDomainId,omitempty"`
	PrimaryAdapter            VirtualMachineNetworkAdapter   `json:"primaryNic"`
	AdditionalNetworkAdapters []VirtualMachineNetworkAdapter `json:"additionalNic"`
}

VirtualMachineNetwork represents the networking configuration for a virtual machine.

type VirtualMachineNetworkAdapter

type VirtualMachineNetworkAdapter struct {
	ID                 *string `json:"id,omitempty"`
	MACAddress         *string `json:"macAddress,omitempty"` // CloudControl v2.4 and higher
	VLANID             *string `json:"vlanId,omitempty"`
	VLANName           *string `json:"vlanName,omitempty"`
	PrivateIPv4Address *string `json:"privateIpv4,omitempty"`
	PrivateIPv6Address *string `json:"ipv6,omitempty"`
	AdapterType        *string `json:"networkAdapter,omitempty"`
	AdapterKey         *int    `json:"key,omitempty"` // CloudControl v2.4 and higher
	State              *string `json:"state,omitempty"`
}

VirtualMachineNetworkAdapter represents the configuration for a virtual machine's network adapter. If deploying a new VM, exactly one of VLANID / PrivateIPv4Address must be specified.

AdapterType (if specified) must be either E1000 or VMXNET3.

func (*VirtualMachineNetworkAdapter) GetID

func (networkAdapter *VirtualMachineNetworkAdapter) GetID() string

GetID returns the network adapter's Id.

func (*VirtualMachineNetworkAdapter) GetName

func (networkAdapter *VirtualMachineNetworkAdapter) GetName() string

GetName returns the network adapter's name (actually Id, since adapters don't have names).

func (*VirtualMachineNetworkAdapter) GetResourceType

func (networkAdapter *VirtualMachineNetworkAdapter) GetResourceType() ResourceType

GetResourceType returns the network domain's resource type.

func (*VirtualMachineNetworkAdapter) GetState

func (networkAdapter *VirtualMachineNetworkAdapter) GetState() string

GetState returns the network adapter's current state.

func (*VirtualMachineNetworkAdapter) IsDeleted

func (networkAdapter *VirtualMachineNetworkAdapter) IsDeleted() bool

IsDeleted determines whether the network adapter has been deleted (is nil).

func (*VirtualMachineNetworkAdapter) ToEntityReference

func (networkAdapter *VirtualMachineNetworkAdapter) ToEntityReference() EntityReference

ToEntityReference creates an EntityReference representing the CustomerImage.

type VirtualMachineSCSIController

type VirtualMachineSCSIController struct {
	ID          string              `json:"id,omitempty"`
	BusNumber   int                 `json:"busNumber"`
	Key         int                 `json:"key"`
	AdapterType string              `json:"adapterType"`
	Disks       VirtualMachineDisks `json:"disk"`
	State       string              `json:"state,omitempty"`
}

VirtualMachineSCSIController represents the configuration for a SCSI controller in a virtual machine.

func (*VirtualMachineSCSIController) GetDiskByUnitID

func (controller *VirtualMachineSCSIController) GetDiskByUnitID(unitID int) *VirtualMachineDisk

GetDiskByUnitID retrieves the VirtualMachineDisk (if any) attached to the VirtualMachineSCSIController that matches the specified SCSI logical unit ID.

type VirtualMachineSCSIControllers

type VirtualMachineSCSIControllers []VirtualMachineSCSIController

VirtualMachineSCSIControllers is an array of VirtualMachineSCSIController that adds various convenience methods.

func (VirtualMachineSCSIControllers) GetByBusNumber

func (controllers VirtualMachineSCSIControllers) GetByBusNumber(busNumber int) *VirtualMachineSCSIController

GetByBusNumber retrieves the VirtualMachineSCSIController that matches the specified SCSI bus number.

func (VirtualMachineSCSIControllers) GetByID

func (controllers VirtualMachineSCSIControllers) GetByID(controllerID string) *VirtualMachineSCSIController

GetByID retrieves the VirtualMachineSCSIController that matches the specified CloudControl identifier.

func (VirtualMachineSCSIControllers) GetDiskBySCSIPath

func (controllers VirtualMachineSCSIControllers) GetDiskBySCSIPath(busNumber int, unitID int) *VirtualMachineDisk

GetDiskBySCSIPath retrieves the VirtualMachineDisk (if any) attached to a VirtualMachineSCSIController that matches the specified SCSI device path (bus number and unit ID).

func (VirtualMachineSCSIControllers) GetDiskCount

func (controllers VirtualMachineSCSIControllers) GetDiskCount() (count int)

GetDiskCount determines the number of VirtualMachineDisk entries contained in the VirtualMachineSCSIControllers.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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