metalcloud

package module
v1.0.8 Latest Latest
Warning

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

Go to latest
Published: Jan 31, 2020 License: Apache-2.0 Imports: 14 Imported by: 4

README

Metal Cloud Go SDK

GoDoc Build Status

This SDK allows control of the Bigstep Metal Cloud from Go.

GoDoc documentation available here

Getting started

package main
import "github.com/bigstepinc/metal-cloud-sdk-go"
import "os"
import "log"

func main(){
  user := os.Getenv("METALCLOUD_USER")
  apiKey := os.Getenv("METALCLOUD_API_KEY")
  endpoint := os.Getenv("METALCLOUD_ENDPOINT")

  if(user=="" || apiKey=="" || endpoint==""){
    log.Fatal("METALCLOUD_USER, METALCLOUD_API_KEY, METALCLOUD_ENDPOINT environment variables must be set")
  }

  client, err := metalcloud.GetMetalcloudClient(user, apiKey, endpoint)
  if err != nil {
    log.Fatal("Error initiating client: %s", err)
  }

  infras,err :=client.Infrastructures()
  if err != nil {
    log.Fatal("Error retrieving a list of infrastructures: %s", err)
  }

  for _,infra := range *infras{
    log.Printf("%s(%d)",infra.InfrastructureLabel, infra.InfrastructureID)
  }
}

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

func DefaultEndpoint

func DefaultEndpoint() string

DefaultEndpoint returns the default Bigstep Metalcloud endpoint

Types

type AnsibleBundle added in v1.0.8

type AnsibleBundle struct {
	AnsibleBundleArchiveFilename       string `json:"ansible_bundle_archive_filename,omitempty"`
	AnsibleBundleArchiveContentsBase64 string `json:"ansible_bundle_archive_contents_base64,omitempty"`
}

AnsibleBundle contains an Ansible project as a single archive file, usually .zip

type Client

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

Client sruct defines a metalcloud client

func GetMetalcloudClient

func GetMetalcloudClient(user string, apiKey string, endpoint string, loggingEnabled bool) (*Client, error)

GetMetalcloudClient returns a metal cloud client

func (*Client) DriveArrayCreate

func (c *Client) DriveArrayCreate(infrastructureID int, driveArray DriveArray) (*DriveArray, error)

DriveArrayCreate creates a drive array. Requires deploy.

func (*Client) DriveArrayCreateByLabel added in v1.0.2

func (c *Client) DriveArrayCreateByLabel(infrastructureLabel string, driveArray DriveArray) (*DriveArray, error)

DriveArrayCreateByLabel creates a drive array. Requires deploy.

func (*Client) DriveArrayDelete

func (c *Client) DriveArrayDelete(driveArrayID int) error

DriveArrayDelete deletes a Drive Array with specified id

func (*Client) DriveArrayDeleteByLabel added in v1.0.2

func (c *Client) DriveArrayDeleteByLabel(driveArrayLabel string) error

DriveArrayDeleteByLabel deletes a Drive Array with specified id

func (*Client) DriveArrayEdit

func (c *Client) DriveArrayEdit(driveArrayID int, driveArrayOperation DriveArrayOperation) (*DriveArray, error)

DriveArrayEdit alters a deployed drive array. Requires deploy.

func (*Client) DriveArrayEditByLabel added in v1.0.2

func (c *Client) DriveArrayEditByLabel(driveArrayLabel string, driveArrayOperation DriveArrayOperation) (*DriveArray, error)

DriveArrayEditByLabel alters a deployed drive array. Requires deploy.

func (*Client) DriveArrayGet

func (c *Client) DriveArrayGet(driveArrayID int) (*DriveArray, error)

DriveArrayGet retrieves a DriveArray object with specified ids

func (*Client) DriveArrayGetByLabel added in v1.0.2

func (c *Client) DriveArrayGetByLabel(driveArrayLabel string) (*DriveArray, error)

DriveArrayGetByLabel retrieves a DriveArray object with specified ids

func (*Client) DriveArrays

func (c *Client) DriveArrays(infrastructureID int) (*map[string]DriveArray, error)

DriveArrays retrieves the list of drives arrays of an infrastructure

func (*Client) DriveArraysByLabel added in v1.0.2

func (c *Client) DriveArraysByLabel(infrastructureLabel string) (*map[string]DriveArray, error)

DriveArraysByLabel retrieves the list of drives arrays of an infrastructure

func (*Client) GetEndpoint

func (c *Client) GetEndpoint() string

GetEndpoint returns the endpoint configured for this connection

func (*Client) GetUserEmail

func (c *Client) GetUserEmail() string

GetUserEmail returns the user configured for this connection

func (*Client) InfrastructureCreate

func (c *Client) InfrastructureCreate(infrastructure Infrastructure) (*Infrastructure, error)

InfrastructureCreate creates an infrastructure

func (*Client) InfrastructureDelete

func (c *Client) InfrastructureDelete(infrastructureID int) error

InfrastructureDelete deletes an infrastructure and all associated elements. Requires deploy

func (*Client) InfrastructureDeleteByLabel added in v1.0.2

func (c *Client) InfrastructureDeleteByLabel(infrastructureLabel string) error

InfrastructureDeleteByLabel deletes an infrastructure and all associated elements. Requires deploy

func (*Client) InfrastructureDeploy

func (c *Client) InfrastructureDeploy(infrastructureID int, shutdownOptions ShutdownOptions, allowDataLoss bool, skipAnsible bool) error

InfrastructureDeploy initiates a deploy operation that will apply all registered changes for the respective infrastructure

func (*Client) InfrastructureDeployByLabel added in v1.0.2

func (c *Client) InfrastructureDeployByLabel(infrastructureLabel string, shutdownOptions ShutdownOptions, allowDataLoss bool, skipAnsible bool) error

InfrastructureDeployByLabel initiates a deploy operation that will apply all registered changes for the respective infrastructure

func (*Client) InfrastructureEdit

func (c *Client) InfrastructureEdit(infrastructureID int, infrastructureOperation InfrastructureOperation) (*Infrastructure, error)

InfrastructureEdit alters an infrastructure

func (*Client) InfrastructureEditByLabel added in v1.0.2

func (c *Client) InfrastructureEditByLabel(infrastructureLabel string, infrastructureOperation InfrastructureOperation) (*Infrastructure, error)

InfrastructureEditByLabel alters an infrastructure

func (*Client) InfrastructureGet

func (c *Client) InfrastructureGet(infrastructureID int) (*Infrastructure, error)

InfrastructureGet returns a specific infrastructure by id

func (*Client) InfrastructureGetByLabel added in v1.0.2

func (c *Client) InfrastructureGetByLabel(infrastructureLabel string) (*Infrastructure, error)

InfrastructureGetByLabel returns a specific infrastructure by id

func (*Client) InfrastructureOperationCancel

func (c *Client) InfrastructureOperationCancel(infrastructureID int) error

InfrastructureOperationCancel reverts (undos) alterations done before deploy

func (*Client) InfrastructureOperationCancelByLabel added in v1.0.2

func (c *Client) InfrastructureOperationCancelByLabel(infrastructureLabel string) error

InfrastructureOperationCancelByLabel reverts (undos) alterations done before deploy

func (*Client) InfrastructureUserLimits

func (c *Client) InfrastructureUserLimits(infrastructureID int) (*map[string]interface{}, error)

InfrastructureUserLimits returns user metadata

func (*Client) InfrastructureUserLimitsByLabel added in v1.0.2

func (c *Client) InfrastructureUserLimitsByLabel(infrastructureLabel string) (*map[string]interface{}, error)

InfrastructureUserLimitsByLabel returns user metadata

func (*Client) Infrastructures

func (c *Client) Infrastructures() (*map[string]Infrastructure, error)

Infrastructures returns a list of infrastructures

func (*Client) InstanceArrayCreate

func (c *Client) InstanceArrayCreate(infrastructureID int, instanceArray InstanceArray) (*InstanceArray, error)

InstanceArrayCreate creates an instance array (colletion of identical instances). Requires Deploy.

func (*Client) InstanceArrayCreateByLabel added in v1.0.2

func (c *Client) InstanceArrayCreateByLabel(infrastructureLabel string, instanceArray InstanceArray) (*InstanceArray, error)

InstanceArrayCreateByLabel creates an instance array (colletion of identical instances). Requires Deploy.

func (*Client) InstanceArrayDelete

func (c *Client) InstanceArrayDelete(instanceArrayID int) error

InstanceArrayDelete deletes an instance array. Requires deploy.

func (*Client) InstanceArrayDeleteByLabel added in v1.0.2

func (c *Client) InstanceArrayDeleteByLabel(instanceArrayLabel string) error

InstanceArrayDeleteByLabel deletes an instance array. Requires deploy.

func (*Client) InstanceArrayEdit

func (c *Client) InstanceArrayEdit(instanceArrayID int, instanceArrayOperation InstanceArrayOperation, bSwapExistingInstancesHardware *bool, bKeepDetachingDrives *bool, objServerTypeMatches *[]ServerType, arrInstancesToBeDeleted *[]int) (*InstanceArray, error)

InstanceArrayEdit alterns a deployed instance array. Requires deploy.

func (*Client) InstanceArrayEditByLabel added in v1.0.2

func (c *Client) InstanceArrayEditByLabel(instanceArrayLabel string, instanceArrayOperation InstanceArrayOperation, bSwapExistingInstancesHardware *bool, bKeepDetachingDrives *bool, objServerTypeMatches *[]ServerType, arrInstancesToBeDeleted *[]int) (*InstanceArray, error)

InstanceArrayEditByLabel alterns a deployed instance array. Requires deploy.

func (*Client) InstanceArrayGet

func (c *Client) InstanceArrayGet(instanceArrayID int) (*InstanceArray, error)

InstanceArrayGet returns an InstanceArray with specified id

func (*Client) InstanceArrayGetByLabel added in v1.0.2

func (c *Client) InstanceArrayGetByLabel(instanceArrayLabel string) (*InstanceArray, error)

InstanceArrayGetByLabel returns an InstanceArray with specified id

func (*Client) InstanceArrayInstances added in v1.0.3

func (c *Client) InstanceArrayInstances(instanceArrayID int) (*map[string]Instance, error)

InstanceArrayInstances retrieves a list of all the Instance objects associated with a specified InstanceArray.

func (*Client) InstanceArrayInstancesByLabel added in v1.0.3

func (c *Client) InstanceArrayInstancesByLabel(instanceArrayLabel string) (*map[string]Instance, error)

InstanceArrayInstancesByLabel retrieves a list of all the Instance objects associated with a specified InstanceArray.

func (*Client) InstanceArrayInterfaceAttachNetwork

func (c *Client) InstanceArrayInterfaceAttachNetwork(instanceArrayID int, instanceArrayInterfaceIndex int, networkID int) (*InstanceArray, error)

InstanceArrayInterfaceAttachNetwork attaches an InstanceArrayInterface to a Network

func (*Client) InstanceArrayInterfaceDetach

func (c *Client) InstanceArrayInterfaceDetach(instanceArrayID int, instanceArrayInterfaceIndex int) (*InstanceArray, error)

InstanceArrayInterfaceDetach detaches an InstanceArrayInterface from any Network element that is attached to.

func (*Client) InstanceArrays

func (c *Client) InstanceArrays(infrastructureID int) (*map[string]InstanceArray, error)

InstanceArrays returns list of instance arrays of specified infrastructure

func (*Client) InstanceArraysByLabel added in v1.0.2

func (c *Client) InstanceArraysByLabel(infrastructureLabel string) (*map[string]InstanceArray, error)

InstanceArraysByLabel returns list of instance arrays of specified infrastructure

func (*Client) InstanceGet added in v1.0.3

func (c *Client) InstanceGet(instanceID int) (*Instance, error)

InstanceGet returns a specific instance by id

func (*Client) InstanceGetByLabel added in v1.0.3

func (c *Client) InstanceGetByLabel(instanceLabel string) (*Instance, error)

InstanceGetByLabel returns a specific instance by id

func (*Client) NetworkCreate

func (c *Client) NetworkCreate(infrastructureID int, network Network) (*Network, error)

NetworkCreate creates a network

func (*Client) NetworkCreateByLabel added in v1.0.2

func (c *Client) NetworkCreateByLabel(infrastructureLabel string, network Network) (*Network, error)

NetworkCreateByLabel creates a network

func (*Client) NetworkDelete

func (c *Client) NetworkDelete(networkID int) error

NetworkDelete deletes a network.

func (*Client) NetworkDeleteByLabel added in v1.0.2

func (c *Client) NetworkDeleteByLabel(networkLabel string) error

NetworkDeleteByLabel deletes a network.

func (*Client) NetworkEdit

func (c *Client) NetworkEdit(networkID int, networkOperation NetworkOperation) (*Network, error)

NetworkEdit applies a change to an existing network

func (*Client) NetworkEditByLabel added in v1.0.2

func (c *Client) NetworkEditByLabel(networkLabel string, networkOperation NetworkOperation) (*Network, error)

NetworkEditByLabel applies a change to an existing network

func (*Client) NetworkGet

func (c *Client) NetworkGet(networkID int) (*Network, error)

NetworkGet retrieves a network object

func (*Client) NetworkGetByLabel added in v1.0.2

func (c *Client) NetworkGetByLabel(networkLabel string) (*Network, error)

NetworkGetByLabel retrieves a network object

func (*Client) NetworkJoin

func (c *Client) NetworkJoin(networkID int, networkToBeDeletedID int) error

NetworkJoin merges two specified Network objects.

func (*Client) NetworkJoinByLabel added in v1.0.2

func (c *Client) NetworkJoinByLabel(networkLabel string, networkToBeDeletedID int) error

NetworkJoinByLabel merges two specified Network objects.

func (*Client) Networks

func (c *Client) Networks(infrastructureID int) (*map[string]Network, error)

Networks returns a list of all network objects of an infrastructure

func (*Client) NetworksByLabel added in v1.0.2

func (c *Client) NetworksByLabel(infrastructureLabel string) (*map[string]Network, error)

NetworksByLabel returns a list of all network objects of an infrastructure

func (*Client) OSAssetCreate added in v1.0.4

func (c *Client) OSAssetCreate(osAsset OSAsset) (*OSAsset, error)

OSAssetCreate creates a osAsset object

func (*Client) OSAssetDelete added in v1.0.4

func (c *Client) OSAssetDelete(osAssetID int) error

OSAssetDelete permanently destroys a OSAsset.

func (*Client) OSAssetGet added in v1.0.4

func (c *Client) OSAssetGet(osAssetID int) (*OSAsset, error)

OSAssetGet returns a OSAsset specified by nOSAssetID. The OSAsset's protected value is never returned.

func (*Client) OSAssetUpdate added in v1.0.4

func (c *Client) OSAssetUpdate(osAssetID int, osAsset OSAsset) (*OSAsset, error)

OSAssetUpdate updates a osAsset

func (*Client) OSAssets added in v1.0.4

func (c *Client) OSAssets() (*map[string]OSAsset, error)

OSAssets retrieves a list of all the OSAsset objects which a specified User is allowed to see through ownership or delegation. The OSAsset objects never return the actual protected OSAsset value.

func (*Client) OSTemplateAddOSAsset added in v1.0.4

func (c *Client) OSTemplateAddOSAsset(osTemplateID int, osAssetID int, path string) error

OSTemplateAddOSAsset returns the OSAssets assigned to an OSTemplate.

func (*Client) OSTemplateCreate added in v1.0.4

func (c *Client) OSTemplateCreate(osTemplate OSTemplate) (*OSTemplate, error)

OSTemplateCreate creates a osTemplate object

func (*Client) OSTemplateDelete added in v1.0.4

func (c *Client) OSTemplateDelete(osTemplateID int) error

OSTemplateDelete permanently destroys a OSTemplate.

func (*Client) OSTemplateGet added in v1.0.4

func (c *Client) OSTemplateGet(osTemplateID int, decryptPasswd bool) (*OSTemplate, error)

OSTemplateGet returns a OSTemplate specified by nOSTemplateID. The OSTemplate's protected value is never returned.

func (*Client) OSTemplateOSAssets added in v1.0.4

func (c *Client) OSTemplateOSAssets(osTemplateID int) (*map[string]OSTemplate, error)

OSTemplateOSAssets returns the OSAssets assigned to an OSTemplate.

func (*Client) OSTemplateUpdate added in v1.0.4

func (c *Client) OSTemplateUpdate(osTemplateID int, osTemplate OSTemplate) (*OSTemplate, error)

OSTemplateUpdate updates a osTemplate

func (*Client) OSTemplates added in v1.0.4

func (c *Client) OSTemplates() (*map[string]OSTemplate, error)

OSTemplates retrieves a list of all the OSTemplate objects which a specified User is allowed to see through ownership or delegation. The OSTemplate objects never return the actual protected OSTemplate value.

func (*Client) SecretCreate added in v1.0.4

func (c *Client) SecretCreate(secret Secret) (*Secret, error)

SecretCreate creates a secret

func (*Client) SecretDelete added in v1.0.4

func (c *Client) SecretDelete(secretID int) error

SecretDelete Permanently destroys a Secret.

func (*Client) SecretGet added in v1.0.4

func (c *Client) SecretGet(secretID int) (*Secret, error)

SecretGet returns a Secret specified by nSecretID. The secret's protected value is never returned.

func (*Client) SecretUpdate added in v1.0.4

func (c *Client) SecretUpdate(secretID int, secret Secret) (*Secret, error)

SecretUpdate This function allows updating the secret_usage, secret_label and secret_base64 of a Secret

func (*Client) Secrets added in v1.0.4

func (c *Client) Secrets(usage string) (*map[string]Secret, error)

Secrets retrieves a list of all the Secret objects which a specified User is allowed to see through ownership or delegation. The secret objects never return the actual protected secret value.

func (*Client) ServerGet added in v1.0.4

func (c *Client) ServerGet(serverID int, decryptPasswd bool) (*Server, error)

ServerGet returns a server's details

func (*Client) ServerTypeDatacenter

func (c *Client) ServerTypeDatacenter(datacenterName string) (*[]int, error)

ServerTypeDatacenter retrieves all the server type IDs for servers found in a specified Datacenter

func (*Client) ServerTypeGet

func (c *Client) ServerTypeGet(serverTypeID int) (*ServerType, error)

ServerTypeGet retrieves a server type by id

func (*Client) ServerTypeGetByLabel added in v1.0.2

func (c *Client) ServerTypeGetByLabel(serverTypeLabel string) (*ServerType, error)

ServerTypeGetByLabel retrieves a server type by id

func (*Client) ServerTypes

func (c *Client) ServerTypes(datacenterName string, bOnlyAvailable bool) (*map[int]ServerType, error)

ServerTypes retrieves all ServerType objects from the database.

func (*Client) ServerTypesMatchHardwareConfiguration

func (c *Client) ServerTypesMatchHardwareConfiguration(datacenterName string, hardwareConfiguration HardwareConfiguration) (*map[int]ServerType, error)

ServerTypesMatchHardwareConfiguration Retrieves a list of server types that match the provided hardware configuration. The function does not check for availability, only compatibility, so physical servers associated with the returned server types might be unavailable.

func (*Client) ServerTypesMatches

func (c *Client) ServerTypesMatches(infrastructureID int, hardwareConfiguration HardwareConfiguration, instanceArrayID *int, bAllowServerSwap bool) (*map[string]ServerType, error)

ServerTypesMatches matches available servers with a certain Instance's configuration, using the properties specified in the objHardwareConfiguration object, and returns the number of compatible servers for each server_type_id.

func (*Client) ServerTypesMatchesByLabel added in v1.0.2

func (c *Client) ServerTypesMatchesByLabel(infrastructureLabel string, hardwareConfiguration HardwareConfiguration, instanceArrayID *int, bAllowServerSwap bool) (*map[string]ServerType, error)

ServerTypesMatchesByLabel matches available servers with a certain Instance's configuration, using the properties specified in the objHardwareConfiguration object, and returns the number of compatible servers for each server_type_id.

func (*Client) ServersSearch added in v1.0.4

func (c *Client) ServersSearch(filter string) (*[]ServerSearchResult, error)

ServersSearch searches for servers matching certain filter

func (*Client) StageDefinitionCreate added in v1.0.8

func (c *Client) StageDefinitionCreate(stageDefinition StageDefinition) (*StageDefinition, error)

StageDefinitionCreate creates a stageDefinition

func (*Client) StageDefinitionDelete added in v1.0.8

func (c *Client) StageDefinitionDelete(stageDefinitionID int) error

StageDefinitionDelete Permanently destroys a StageDefinition.

func (*Client) StageDefinitionGet added in v1.0.8

func (c *Client) StageDefinitionGet(stageDefinitionID int) (*StageDefinition, error)

StageDefinitionGet returns a StageDefinition specified by nStageDefinitionID. The stageDefinition's protected value is never returned.

func (*Client) StageDefinitionUpdate added in v1.0.8

func (c *Client) StageDefinitionUpdate(stageDefinitionID int, stageDefinition StageDefinition) (*StageDefinition, error)

StageDefinitionUpdate This function allows updating the stageDefinition_usage, stageDefinition_label and stageDefinition_base64 of a StageDefinition

func (*Client) StageDefinitions added in v1.0.8

func (c *Client) StageDefinitions() (*map[string]StageDefinition, error)

StageDefinitions retrieves a list of all the StageDefinition objects which a specified User is allowed to see through ownership or delegation. The stageDefinition objects never return the actual protected stageDefinition value.

func (*Client) UserEmailToUserID added in v1.0.4

func (c *Client) UserEmailToUserID(userEmail string) (*int, error)

UserEmailToUserID returns the user id of an user given an email

func (*Client) UserGet added in v1.0.4

func (c *Client) UserGet(userID int) (*User, error)

UserGet describes returns user account specifications.

func (*Client) UserGetByEmail added in v1.0.4

func (c *Client) UserGetByEmail(userLabel string) (*User, error)

UserGetByEmail describes returns user account specifications.

func (*Client) VariableCreate added in v1.0.4

func (c *Client) VariableCreate(variable Variable) (*Variable, error)

VariableCreate creates a variable object

func (*Client) VariableDelete added in v1.0.4

func (c *Client) VariableDelete(variableID int) error

VariableDelete permanently destroys a Variable.

func (*Client) VariableGet added in v1.0.4

func (c *Client) VariableGet(variableID int) (*Variable, error)

VariableGet returns a Variable specified by nVariableID. The Variable's protected value is never returned.

func (*Client) VariableUpdate added in v1.0.4

func (c *Client) VariableUpdate(variableID int, variable Variable) (*Variable, error)

VariableUpdate updates a variable

func (*Client) Variables added in v1.0.4

func (c *Client) Variables(usage string) (*map[string]Variable, error)

Variables retrieves a list of all the Variable objects which a specified User is allowed to see through ownership or delegation. The Variable objects never return the actual protected Variable value.

func (*Client) VolumeTemplateGet

func (c *Client) VolumeTemplateGet(volumeTemplateID int) (*VolumeTemplate, error)

VolumeTemplateGet returns the specified volume template

func (*Client) VolumeTemplateGetByLabel added in v1.0.2

func (c *Client) VolumeTemplateGetByLabel(volumeTemplateLabel string) (*VolumeTemplate, error)

VolumeTemplateGetByLabel returns the specified volume template

func (*Client) VolumeTemplates

func (c *Client) VolumeTemplates() (*map[string]VolumeTemplate, error)

VolumeTemplates retrives the list of available templates

type DriveArray

type DriveArray struct {
	DriveArrayID                      int    `json:"drive_array_id,omitempty"`
	DriveArrayLabel                   string `json:"drive_array_label,omitempty"`
	VolumeTemplateID                  int    `json:"volume_template_id,omitempty"`
	DriveArrayStorageType             string `json:"drive_array_storage_type,omitempty"`
	DriveSizeMBytesDefault            int    `json:"drive_size_mbytes_default,omitempty"`
	InstanceArrayID                   int    `json:"instance_array_id,omitempty"`
	InfrastructureID                  int    `json:"infrastructure_id,omitempty"`
	DriveArrayServiceStatus           string `json:"drive_array_service_status,omitempty"`
	DriveArrayCount                   int    `json:"drive_array_count,omitempty"`
	DriveArrayExpandWithInstanceArray bool   `json:"drive_array_expand_with_instance_array,omitempty"`

	DriveArrayOperation *DriveArrayOperation `json:"drive_array_operation,omitempty"`
}

DriveArray represents a collection of identical drives

type DriveArrayOperation

type DriveArrayOperation struct {
	DriveArrayID                      int    `json:"drive_array_id,omitempty"`
	DriveArrayLabel                   string `json:"drive_array_label,omitempty"`
	VolumeTemplateID                  int    `json:"volume_template_id,omitempty"`
	DriveArrayStorageType             string `json:"drive_array_storage_type,omitempty"`
	DriveSizeMBytesDefault            int    `json:"drive_size_mbytes_default,omitempty"`
	InstanceArrayID                   int    `json:"instance_array_id,omitempty"`
	InfrastructureID                  int    `json:"infrastructure_id,omitempty"`
	DriveArrayCount                   int    `json:"drive_array_count,omitempty"`
	DriveArrayExpandWithInstanceArray bool   `json:"drive_array_expand_with_instance_array,omitempty"`

	DriveArrayDeployType   string `json:"drive_array_deploy_type,omitempty"`
	DriveArrayDeployStatus string `json:"drive_array_deploy_status,omitempty"`
	DriveArrayChangeID     int    `json:"drive_array_change_id,omitempty"`
}

DriveArrayOperation defines changes to be applied to a DriveArray

type FirewallRule

type FirewallRule struct {
	FirewallRuleDescription                    string `json:"firewall_rule_description,omitempty"`
	FirewallRulePortRangeStart                 int    `json:"firewall_rule_port_range_start,omitempty"`
	FirewallRulePortRangeEnd                   int    `json:"firewall_rule_port_range_end,omitempty"`
	FirewallRuleSourceIPAddressRangeStart      string `json:"firewall_rule_source_ip_address_range_start,omitempty"`
	FirewallRuleSourceIPAddressRangeEnd        string `json:"firewall_rule_source_ip_address_range_end,omitempty"`
	FirewallRuleDestinationIPAddressRangeStart string `json:"firewall_rule_destination_ip_address_range_start,omitempty"`
	FirewallRuleDestinationIPAddressRangeEnd   string `json:"firewall_rule_destination_ip_address_range_end,omitempty"`
	FirewallRuleProtocol                       string `json:"firewall_rule_protocol,omitempty"`
	FirewallRuleIPAddressType                  string `json:"firewall_rule_ip_address_type,omitempty"`
	FirewallRuleEnabled                        bool   `json:"firewall_rule_enabled,omitempty"`
}

FirewallRule describes a firewall rule that is to be applied on all instances of an array

type HTTPRequest added in v1.0.8

type HTTPRequest struct {
	URL     string              `json:"url,omitempty"`
	Options WebFetchAAPIOptions `json:"options,omitempty"`
}

HTTPRequest represents an HTTP request definition compatible with the standard Web Fetch API.

type HardwareConfiguration

type HardwareConfiguration struct {
	InstanceArrayRAMGbytes          int      `json:"instance_array_ram_gbytes,omitempty"`
	InstanceArrayProcessorCount     int      `json:"instance_array_processor_count,omitempty"`
	InstanceArrayProcessorCoreMHZ   int      `json:"instance_array_processor_core_mhz,omitempty"`
	InstanceArrayProcessorCoreCount int      `json:"instance_array_processor_core_count,omitempty"`
	InstanceArrayDiskCount          int      `json:"instance_array_disk_count,omitempty"`
	InstanceArrayDiskSizeMBytes     int      `json:"instance_array_disk_size_mbytes,omitempty"`
	InstanceArrayTotalMhz           int      `json:"instance_array_total_mhz,omitempty"`
	InstanceArrayDiskTypes          []string `json:"instance_array_disk_types,omitempty"`
	InstanceArrayInstanceCount      int      `json:"instance_array_instance_count,omitempty"`
}

HardwareConfiguration holds the desired hardware configuration when trying to find available servers for provisioning.

type IDRAC added in v1.0.3

type IDRAC struct {
	ControlPanelURL string `json:"control_panel_url,omitempty"`
	Username        string `json:"username,omitempty"`
	InitialPassword string `json:"initial_password,omitempty"`
}

IDRAC control panel credentials.

type ILO added in v1.0.3

type ILO struct {
	ControlPanelURL string `json:"control_panel_url,omitempty"`
	Username        string `json:"username,omitempty"`
	InitialPassword string `json:"initial_password,omitempty"`
}

ILO control panel credentials

type IP added in v1.0.3

type IP struct {
	IPID                       int         `json:"ip_id,omitempty"`
	IPType                     string      `json:"ip_type,omitempty"`
	IPHumanReadable            string      `json:"ip_human_readable,omitempty"`
	IPHex                      string      `json:"ip_hex,omitempty"`
	IPLeaseExpires             string      `json:"ip_lease_expires,omitempty"`
	IPOperation                IPOperation `json:"ip_operation,omitempty"`
	SubnetID                   int         `json:"subnet_id,omitempty"`
	SubnetDestination          string      `json:"subnet_destination,omitempty"`
	SubnetGatewayHumanReadable string      `json:"subnet_gateway_human_readable,omitempty"`
	SubnetNetmaskHumanReadable string      `json:"subnet_netmask_human_readable,omitempty"`
	InstanceInterfaceID        int         `json:"instance_interface_id,omitempty"`
	IPChangeID                 int         `json:"ip_change_id,omitempty"`
}

IP object contains information regarding an IP address.

type IPMI added in v1.0.3

type IPMI struct {
	IPAddress       string `json:"ip_address,omitempty"`
	Version         string `json:"version,omitempty"`
	Username        string `json:"username,omitempty"`
	InitialPassword string `json:"initial_password,omitempty"`
}

IPMI credentials.

type IPOperation added in v1.0.3

type IPOperation struct {
	InstanceInterfaceID int    `json:"instance_interface_id,omitempty"`
	IPDeployStatus      string `json:"ip_deploy_status,omitempty"`
	IPDeployType        string `json:"ip_deploy_type,omitempty"`
	IPID                int    `json:"ip_id,omitempty"`
	IPType              string `json:"ip_type,omitempty"`
	IPHumanReadable     string `json:"ip_human_readable,omitempty"`
	IPHex               string `json:"ip_hex,omitempty"`
	IPLabel             string `json:"ip_label,omitempty"`
	IPSubdomain         string `json:"ip_subdomain,omitempty"`
	IPLeaseExpires      string `json:"ip_lease_expires,omitempty"`
	IPUpdatedTimestamp  string `json:"ip_updated_timestamp,omitempty"`
	SubnetID            int    `json:"subnet_id,omitempty"`
	IPChangeID          int    `json:"ip_change_id,omitempty"`
}

IPOperation contains information regarding the changes that are to be made to a product. Edit and deploy functions have to be called in order to apply the changes. The operation type and status are unique to each operation object.

type ISCSI added in v1.0.3

type ISCSI struct {
	TargetIQN        string `json:"target_iqn,omitempty"`
	StorageIPAddress string `json:"storage_ip_address,omitempty"`
	StoragePort      int    `json:"storage_port,omitempty"`
	LunID            int    `json:"lun_id,omitempty"`
}

ISCSI provides target IQN, IP address, port number and the LUN ID.

type ISCSIInitiator added in v1.0.3

type ISCSIInitiator struct {
	Username           string `json:"username,omitempty"`
	Password           string `json:"password,omitempty"`
	InitiatorIQN       string `json:"initiator_iqn,omitempty"`
	Gateway            string `json:"gateway,omitempty"`
	Netmask            string `json:"netmask,omitempty"`
	InitiatorIPAddress string `json:"initiator_ip_address,omitempty"`
}

ISCSIInitiator provides initiator IQN, username and password and other iSCSI connection details.

type Infrastructure

type Infrastructure struct {
	InfrastructureID               int                     `json:"infrastructure_id,omitempty"`
	InfrastructureLabel            string                  `json:"infrastructure_label"`
	DatacenterName                 string                  `json:"datacenter_name"`
	InfrastructureSubdomain        string                  `json:"infrastructure_subdomain,omitempty"`
	UserIDowner                    int                     `json:"user_id_owner,omitempty"`
	UserEmailOwner                 string                  `json:"user_email_owner,omitempty"`
	InfrastructureTouchUnixtime    string                  `json:"infrastructure_touch_unixtime,omitempty"`
	InfrastructureServiceStatus    string                  `json:"infrastructure_service_status,omitempty"`
	InfrastructureCreatedTimestamp string                  `json:"infrastructure_created_timestamp,omitempty"`
	InfrastructureUpdatedTimestamp string                  `json:"infrastructure_updated_timestamp,omitempty"`
	InfrastructureChangeID         int                     `json:"infrastructure_change_id,omitempty"`
	InfrastructureDeployID         int                     `json:"infrastructure_deploy_id,omitempty"`
	InfrastructureDesignIsLocked   bool                    `json:"infrastructure_design_is_locked,omitempty"`
	InfrastructureOperation        InfrastructureOperation `json:"infrastructure_operation,omitempty"`
}

Infrastructure - the main infrastructure object

type InfrastructureOperation

type InfrastructureOperation struct {
	InfrastructureID               int    `json:"infrastructure_id,omitempty"`
	InfrastructureLabel            string `json:"infrastructure_label"`
	DatacenterName                 string `json:"datacenter_name"`
	InfrastructureDeployStatus     string `json:"infrastructure_deploy_status,omitempty"`
	InfrastructureDeployType       string `json:"infrastructure_deploy_type,omitempty"`
	InfrastructureSubdomain        string `json:"infrastructure_subdomain,omitempty"`
	UserIDOwner                    int    `json:"user_id_owner,omitempty"`
	InfrastructureUpdatedTimestamp string `json:"infrastructure_updated_timestamp,omitempty"`
	InfrastructureChangeID         int    `json:"infrastructure_change_id,omitempty"`
	InfrastructureDeployID         int    `json:"infrastructure_deploy_id,omitempty"`
}

InfrastructureOperation - object with alternations to be applied

type Instance added in v1.0.3

type Instance struct {
	InstanceID                 int                 `json:"instance_id,omitempty"`
	InstanceLabel              string              `json:"instance_label,omitempty"`
	InstanceSubdomain          string              `json:"instance_subdomain,omitempty"`
	InstanceSubdomainPermanent string              `json:"instance_subdomain_permanent,omitempty"`
	InstanceArrayID            int                 `json:"instance_array_id,omitempty"`
	ServerID                   int                 `json:"server_id,omitempty"`
	ServerTypeID               int                 `json:"server_type_id,omitempty"`
	InstanceServiceStatus      string              `json:"instance_service_status,omitempty"`
	InstanceCredentials        InstanceCredentials `json:"instance_credentials,omitempty"`
	InstanceOperation          InstanceOperation   `json:"instance_operation,omitempty"`
	InstanceInterfaces         []InstanceInterface `json:"instance_interfaces,omitempty"`
	InstanceCreatedTimestamp   string              `json:"instance_created_timestamp,omitempty"`
	InstanceUpdatedTimestamp   string              `json:"instance_updated_timestamp,omitempty"`
	DriveIDBootable            int                 `json:"drive_id_bootable,omitempty"`
	InstanceChangeID           int                 `json:"instance_change_id,omitempty"`
	TemplateIDOrigin           int                 `json:"template_id_origin,omitempty"`
}

Instance object describes an instance

type InstanceArray

type InstanceArray struct {
	InstanceArrayID                 int                      `json:"instance_array_id,omitempty"`
	InstanceArrayLabel              string                   `json:"instance_array_label,omitempty"`
	InstanceArraySubdomain          string                   `json:"instance_array_subdomain,omitempty"`
	InstanceArrayBootMethod         string                   `json:"instance_array_boot_method,omitempty"`
	InstanceArrayInstanceCount      int                      `json:"instance_array_instance_count,omitempty"`
	InstanceArrayRAMGbytes          int                      `json:"instance_array_ram_gbytes,omitempty"`
	InstanceArrayProcessorCount     int                      `json:"instance_array_processor_count,omitempty"`
	InstanceArrayProcessorCoreMHZ   int                      `json:"instance_array_processor_core_mhz,omitempty"`
	InstanceArrayProcessorCoreCount int                      `json:"instance_array_processor_core_count,omitempty"`
	InstanceArrayDiskCount          int                      `json:"instance_array_disk_count,omitempty"`
	InstanceArrayDiskSizeMBytes     int                      `json:"instance_array_disk_size_mbytes,omitempty"`
	InstanceArrayDiskTypes          []string                 `json:"instance_array_disk_types,omitempty"`
	InfrastructureID                int                      `json:"infrastructure_id,omitempty"`
	InstanceArrayServiceStatus      string                   `json:"instance_array_service_status,omitempty"`
	InstanceArrayInterfaces         []InstanceArrayInterface `json:"instance_array_interfaces,omitempty"`
	ClusterID                       int                      `json:"cluster_id,omitempty"`
	ClusterRoleGroup                string                   `json:"cluster_role_group,omitempty"`
	InstanceArrayFirewallManaged    bool                     `json:"instance_array_firewall_managed,omitempty"`
	InstanceArrayFirewallRules      []FirewallRule           `json:"instance_array_firewall_rules,omitempty"`
	VolumeTemplateID                int                      `json:"volume_template_id,omitempty"`
	InstanceArrayOperation          *InstanceArrayOperation  `json:"instance_array_operation,omitempty"`
}

InstanceArray object describes a collection of identical instances

type InstanceArrayInterface

type InstanceArrayInterface struct {
	InstanceArrayInterfaceLabel            string                           `json:"instance_array_interface_label,omitempty"`
	InstanceArrayInterfaceSubdomain        string                           `json:"instance_array_interface_subdomain,omitempty"`
	InstanceArrayInterfaceID               int                              `json:"instance_array_interface_id,omitempty"`
	InstanceArrayID                        int                              `json:"instance_array_id,omitempty"`
	NetworkID                              int                              `json:"network_id,omitempty"`
	InstanceArrayInterfaceLAGGIndexes      []interface{}                    `json:"instance_array_interface_lagg_indexes,omitempty"`
	InstanceArrayInterfaceIndex            int                              `json:"instance_array_interface_index,omitempty"`
	InstanceArrayInterfaceServiceStatus    string                           `json:"instance_array_interface_service_status,omitempty"`
	InstanceArrayInterfaceCreatedTimestamp string                           `json:"instance_array_interface_created_timestamp,omitempty"`
	InstanceArrayInterfaceUpdatedTimestamp string                           `json:"instance_array_interface_updated_timestamp,omitempty"`
	InstanceArrayInterfaceOperation        *InstanceArrayInterfaceOperation `json:"instance_array_interface_operation,omitempty"`
}

InstanceArrayInterface describes a network interface of the array. It's properties will be applied to all InstanceInterfaces of the array's instances.

type InstanceArrayInterfaceOperation

type InstanceArrayInterfaceOperation struct {
	InstanceArrayInterfaceLabel            string        `json:"instance_array_interface_label,omitempty"`
	InstanceArrayInterfaceSubdomain        string        `json:"instance_array_interface_subdomain,omitempty"`
	InstanceArrayInterfaceID               int           `json:"instance_array_interface_id,omitempty"`
	InstanceArrayID                        int           `json:"instance_array_id,omitempty"`
	NetworkID                              int           `json:"network_id,omitempty"`
	InstanceArrayInterfaceLAGGIndexes      []interface{} `json:"instance_array_interface_lagg_indexes,omitempty"`
	InstanceArrayInterfaceIndex            int           `json:"instance_array_interface_index,omitempty"`
	InstanceArrayInterfaceServiceStatus    string        `json:"instance_array_interface_service_status,omitempty"`
	InstanceArrayInterfaceCreatedTimestamp string        `json:"instance_array_interface_created_timestamp,omitempty"`
	InstanceArrayInterfaceUpdatedTimestamp string        `json:"instance_array_interface_updated_timestamp,omitempty"`
	InstanceArrayInterfaceChangeID         int           `json:"instance_array_interface_change_id,omitempty"`
}

InstanceArrayInterfaceOperation describes changes to a network array interface

type InstanceArrayOperation

type InstanceArrayOperation struct {
	InstanceArrayID                 int                               `json:"instance_array_id,omitempty"`
	InstanceArrayLabel              string                            `json:"instance_array_label,omitempty"`
	InstanceArraySubdomain          string                            `json:"instance_array_subdomain,omitempty"`
	InstanceArrayBootMethod         string                            `json:"instance_array_boot_method,omitempty"`
	InstanceArrayInstanceCount      int                               `json:"instance_array_instance_count,omitempty"`
	InstanceArrayRAMGbytes          int                               `json:"instance_array_ram_gbytes,omitempty"`
	InstanceArrayProcessorCount     int                               `json:"instance_array_processor_count,omitempty"`
	InstanceArrayProcessorCoreMHZ   int                               `json:"instance_array_processor_core_mhz,omitempty"`
	InstanceArrayProcessorCoreCount int                               `json:"instance_array_processor_core_count,omitempty"`
	InstanceArrayDiskCount          int                               `json:"instance_array_disk_count,omitempty"`
	InstanceArrayDiskSizeMBytes     int                               `json:"instance_array_disk_size_mbytes,omitempty"`
	InstanceArrayDiskTypes          []string                          `json:"instance_array_disk_types,omitempty"`
	InstanceArrayServiceStatus      string                            `json:"instance_array_service_status,omitempty"`
	InstanceArrayInterfaces         []InstanceArrayInterfaceOperation `json:"instance_array_interfaces,omitempty"`
	ClusterID                       int                               `json:"cluster_id,omitempty"`
	ClusterRoleGroup                string                            `json:"cluster_role_group,omitempty"`
	InstanceArrayFirewallManaged    bool                              `json:"instance_array_firewall_managed,omitempty"`
	InstanceArrayFirewallRules      []FirewallRule                    `json:"instance_array_firewall_rules,omitempty"`
	VolumeTemplateID                int                               `json:"volume_template_id,omitempty"`
	InstanceArrayDeployType         string                            `json:"instance_array_deploy_type,omitempty"`
	InstanceArrayDeployStatus       string                            `json:"instance_array_deploy_status,omitempty"`
	InstanceArrayChangeID           int                               `json:"instance_array_change_id,omitempty"`
}

InstanceArrayOperation object describes the changes that will be applied to an instance array

type InstanceCredentials added in v1.0.3

type InstanceCredentials struct {
	SSH                *SSH            `json:"ssh,omitempty"`
	RDP                *RDP            `json:"rdp,omitempty"`
	IPMI               *IPMI           `json:"ipmi,omitempty"`
	ILO                *ILO            `json:"ilo,omitempty"`
	IDRAC              *IDRAC          `json:"idrac,omitempty"`
	ISCSI              *ISCSIInitiator `json:"iscsi,omitempty"`
	RemoteConsole      *RemoteConsole  `json:"remote_console,omitempty"`
	SharedDrives       []ISCSI         `json:"shared_drives,omitempty"`
	IPAddressesPublic  []IP            `json:"ip_addresses_public,omitempty"`
	IPAddressesPrivate []IP            `json:"ip_addresses_private,omitempty"`
}

InstanceCredentials contains information needed to connect to the server via IPMI, iLO etc.

type InstanceInterface added in v1.0.3

type InstanceInterface struct {
	InstanceInterfaceLabel         string                     `json:"instance_interface_label,omitempty"`
	InstanceInterfaceSubdomain     string                     `json:"instance_interface_subdomain,omitempty"`
	InstanceInterfaceID            int                        `json:"instance_interface_id,omitempty"`
	InstanceID                     int                        `json:"instance_id,omitempty"`
	NetworkID                      int                        `json:"network_id,omitempty"`
	InstanceInterfaceLaggIndexes   []int                      `json:"instance_interface_lagg_indexes,omitempty"`
	InstanceInterfaceIndex         int                        `json:"instance_interface_index,omitempty"`
	InstanceInterfaceCapacityMbps  int                        `json:"instance_interface_capacity_mbps,omitempty"`
	InstanceInterfaceServiceStatus string                     `json:"instance_interface_service_status,omitempty"`
	ServerInterface                ServerInterface            `json:"server_interface,omitempty"`
	InstanceInterfaceOperation     InstanceInterfaceOperation `json:"instance_interface_operation,omitempty"`
	InstanceInterfaceIPs           []IP                       `json:"instance_interface_ips,omitempty"`
	InstanceInterfaceChangeID      int                        `json:"instance_interface_change_id,omitempty"`
}

InstanceInterface objects are created automatically when instances are created. Subnets are added on networks and then IP addresses are associated automatically or manually through the API to instance interfaces.

type InstanceInterfaceOperation added in v1.0.3

type InstanceInterfaceOperation struct {
	InstanceInterfaceLabel        string `json:"instance_interface_label,omitempty"`
	InstanceInterfaceSubdomain    string `json:"instance_interface_subdomain,omitempty"`
	InstanceInterfaceDeployStatus string `json:"instance_interface_deploy_status,omitempty"`
	InstanceInterfaceDeployType   string `json:"instance_interface_deploy_type,omitempty"`
	InstanceInterfaceID           int    `json:"instance_interface_id,omitempty"`
	InstanceID                    int    `json:"instance_id,omitempty"`
	NetworkID                     int    `json:"network_id,omitempty"`
	InstanceInterfaceLaggIndexes  []int  `json:"instance_interface_lagg_indexes,omitempty"`
	InstanceInterfaceIndex        int    `json:"instance_interface_index,omitempty"`
	InstanceInterfaceCapacityMbps int    `json:"instance_interface_capacity_mbps,omitempty"`
	InstanceInterfaceChangeID     int    `json:"instance_interface_change_id,omitempty"`
}

InstanceInterfaceOperation objects are created automatically when instances are created. Subnets are added on networks and then IP addresses are associated automatically or manually through the API to instance interfaces.

type InstanceOperation added in v1.0.3

type InstanceOperation struct {
	InstanceID                 int    `json:"instance_id,omitempty"`
	InstanceDeployType         string `json:"instance_deploy_type,omitempty"`
	InstanceDeployStatus       string `json:"instance_deploy_status,omitempty"`
	InstanceLabel              string `json:"instance_label,omitempty"`
	InstanceSubdomain          string `json:"instance_subdomain,omitempty"`
	InstanceSubdomainPermanent string `json:"instance_subdomain_permanent,omitempty"`
	InstanceArrayID            int    `json:"instance_array_id,omitempty"`
	ServerID                   int    `json:"server_id,omitempty"`
	ServerTypeID               int    `json:"server_type_id,omitempty"`
	InstanceChangeID           int    `json:"instance_change_id,omitempty"`
	TemplateIDOrigin           int    `json:"template_id_origin,omitempty"`
}

InstanceOperation contains information regarding the changes that are to be made to a product. Edit and deploy functions have to be called in order to apply the changes. The operation type and status are unique to each operation object.

type Network

type Network struct {
	NetworkID                 int               `json:"network_id,omitempty"`
	NetworkLabel              string            `json:"network_label,omitempty"`
	NetworkSubdomain          string            `json:"network_subdomain,omitempty"`
	NetworkType               string            `json:"network_type,omitempty"`
	InfrastructureID          int               `json:"infrastructure_id,omitempty"`
	NetworkCreatedTimestamp   string            `json:"network_created_timestamp,omitempty"`
	NetworkUpdatedTimestamp   string            `json:"network_updated_timestamp,omitempty"`
	NetworkLANAutoAllocateIPs bool              `json:"network_lan_autoallocate_ips,omitempty"`
	NetworkOperation          *NetworkOperation `json:"network_operation,omitempty"`
}

Network object describes an high level connection construct

type NetworkOperation

type NetworkOperation struct {
	NetworkID                 int    `json:"network_id,omitempty"`
	NetworkLabel              string `json:"network_label,omitempty"`
	NetworkSubdomain          string `json:"network_subdomain,omitempty"`
	NetworkType               string `json:"network_type,omitempty"`
	InfrastructureID          int    `json:"infrastructure_id,omitempty"`
	NetworkLANAutoAllocateIPs bool   `json:"network_lan_autoallocate_ips,omitempty"`
	NetworkDeployType         string `json:"network_deploy_type,omitempty"`
	NetworkChangeID           int    `json:"network_change_id,omitempty"`
}

NetworkOperation object describes the change(s) required to be applied to a Network

type OSAsset added in v1.0.4

type OSAsset struct {
	OSAssetID                int    `json:"os_asset_id,omitempty"`
	UserIDOwner              int    `json:"user_id_owner,omitempty"`
	UserIDAuthenticated      int    `json:"user_id_authenticated,omitempty"`
	OSAssetISPublic          bool   `json:"os_asset_is_public,omitempty"`
	OSAssetFileName          string `json:"os_asset_filename,omitempty"`
	OSAssetFileSizeBytes     int    `json:"os_asset_file_size_bytes,omitempty"`
	OSAssetFileMime          string `json:"os_asset_file_mime,omitempty"`
	OSAssetContentsBase64    string `json:"os_asset_contents_base64,omitempty"`
	OSAssetContentsSHA256Hex string `json:"os_asset_contents_sha256_hex,omitempty"`
	OSAssetUsage             string `json:"os_asset_usage,omitempty"`
	OSAssetSourceURL         string `json:"os_asset_source_url,omitempty"`
	OSAssetCreatedTimestamp  string `json:"os_asset_created_timestamp,omitempty"`
	OSAssetUpdatedTimestamp  string `json:"os_asset_updated_timestamp,omitempty"`
}

OSAsset struct defines a server type

type OSTemplate added in v1.0.4

type OSTemplate struct {
	VolumeTemplateID                   int                    `json:"volume_template_id,omitempty"`
	VolumeTemplateLabel                string                 `json:"volume_template_label,omitempty"`
	VolumeTemplateDisplayName          string                 `json:"volume_template_display_name,omitempty"`
	VolumeTemplateSizeMBytes           int                    `json:"volume_template_size_mbytes,omitempty"`
	VolumeTemplateLocalDiskSupported   bool                   `json:"volume_template_local_disk_supported,omitempty"`
	VolumeTemplateIsOSTemplate         bool                   `json:"volume_template_is_os_template,omitempty"`
	VolumeTemplateBootMethodsSupported string                 `json:"volume_template_boot_methods_supported,omitempty"`
	VolumeTemplateBootType             string                 `json:"volume_template_boot_type,omitempty"`
	VolumeTemplateDescription          string                 `json:"volume_template_description,omitempty"`
	VolumeTemplateCreatedTimestamp     string                 `json:"volume_template_created_timestamp,omitempty"`
	VolumeTemplateUpdatedTimestamp     string                 `json:"volume_template_updated_timestamp,omitempty"`
	UserID                             int                    `json:"user_id,omitempty"`
	VolumeTemplateOperatingSystem      *OperatingSystem       `json:"volume_template_operating_system,omitempty"`
	VolumeTemplateRepoURL              string                 `json:"volume_template_repo_url,omitempty"`
	VolumeTemplateDeprecationStatus    string                 `json:"volume_template_deprecation_status,omitempty"`
	OSTemplateCredentials              *OSTemplateCredentials `json:"os_template_credentials,omitempty"`
	VolumeTemplateTags                 []string               `json:"volume_template_tags,omitempty"`
	OSTemplateArchitecture             string                 `json:"os_template_architecture,omitempty"`
	OSAssetIDBootloaderLocalInstall    int                    `json:"os_asset_id_bootloader_local_install,omitempty"`
	OSAssetIDBootloaderOSBoot          int                    `json:"os_asset_id_bootloader_os_boot,omitempty"`
}

OSTemplate A template can be created based on a drive and it has the same characteristics and holds the same information as the parent drive.

type OSTemplateCredentials added in v1.0.4

type OSTemplateCredentials struct {
	InitialUser               string `json:"initial_user,omitempty"`
	InitialPasswordEncrypted  string `json:"initial_password_encrypted,omitempty"`
	InitialPassword           string `json:"initial_password,omitempty"`
	InitialSSHPort            int    `json:"initial_ssh_port,omitempty"`
	ChangePasswordAfterDeploy bool   `json:"change_password_after_deploy,omitempty"`
}

OSTemplateCredentials holds information needed to connect to an OS installed by an OSTemplate.

type OperatingSystem

type OperatingSystem struct {
	OperatingSystemType         string `json:"operating_system_type,omitempty"`
	OperatingSystemVersion      string `json:"operating_system_version,omitempty"`
	OperatingSystemArchitecture string `json:"operating_system_architecture,omitempty"`
}

OperatingSystem describes an OS

type RDP added in v1.0.3

type RDP struct {
	Port            int    `json:"port,omitempty"`
	Username        string `json:"username,omitempty"`
	InitialPassword string `json:"initial_password,omitempty"`
}

RDP credentials for the installed OS.

type RemoteConsole added in v1.0.3

type RemoteConsole struct {
	RemoteProtocol        string `json:"remote_protocol,omitempty"`
	TunnelPathURL         string `json:"tunnel_path_url,omitempty"`
	RemoteControlPanelURL string `json:"remote_control_panel_url,omitempty"`
}

RemoteConsole provides credentials needed to connect to the server via the HTML interface

type SSH added in v1.0.3

type SSH struct {
	Port            int     `json:"port,omitempty"`
	Username        string  `json:"username,omitempty"`
	InitialPassword string  `json:"initial_password,omitempty"`
	InitialSSHKeys  *SSHKey `json:"initial_ssh_keys,omitempty"`
}

SSH credentials for the installed OS.

type SSHKey added in v1.0.3

type SSHKey struct {
	UserSSHKeyID               int    `json:"user_ssh_key_id,omitempty"`
	UserID                     int    `json:"user_id,omitempty"`
	UserSSHKey                 string `json:"user_ssh_key,omitempty"`
	UserSSHKeyCreatedTimeStamp string `json:"user_ssh_key_created_timestamp,omitempty"`
	UserSSHKeyStatus           string `json:"user_ssh_key_status,omitempty"`
}

SSHKey represents an SSH key added by a user

type SearchResultForServers added in v1.0.4

type SearchResultForServers struct {
	DurationMilliseconds int                  `json:"duration_millisecnds,omitempty"`
	Rows                 []ServerSearchResult `json:"rows,omitempty"`
	RowsOrder            [][]string           `json:"rows_order,omitempty"`
	RowsTotal            int                  `json:"rows_total,omitempty"`
}

SearchResultForServers describes a serach result

type Secret added in v1.0.4

type Secret struct {
	SecretID               int    `json:"secret_id,omitempty"`
	UserIDOwner            int    `json:"user_id_owner,omitempty"`
	UserIDAuthenticated    int    `json:"user_id_authenticated,omitempty"`
	SecretName             string `json:"secret_name,omitempty"`
	SecretUsage            string `json:"secret_usage,omitempty"`
	SecretBase64           string `json:"secret_base64,omitempty"`
	SecretCreatedTimestamp string `json:"secret_created_timestamp,omitempty"`
	SecretUpdatedTimestamp string `json:"secret_updated_timestamp,omitempty"`
}

Secret struct defines a server type

type Server added in v1.0.4

type Server struct {
	ServerID                       int               `json:"server_id,omitempty"`
	ServerUUID                     string            `json:"server_uuid,omitempty"`
	ServerNetworkTotalCapacityMbps int               `json:"server_network_total_capacity_mbps,omitempty"`
	ServerPowerStatus              string            `json:"server_power_status,omitempty"`
	ServerProcessorCoreCount       int               `json:"server_processor_core_count,omitempty"`
	ServerProcessorCoreMhz         int               `json:"server_processor_core_mhz,omitempty"`
	ServerProcessorCount           int               `json:"server_processor_count,omitempty"`
	ServerRAMGbytes                int               `json:"server_ram_gbytes,omitempty"`
	ServerDiskCount                int               `json:"server_disk_count,omitempty"`
	ServerDiskSizeMbytes           int               `json:"server_disk_size_mbytes,omitempty"`
	ServerDiskType                 string            `json:"server_disk_type,omitempty"`
	ServerProcessorName            string            `json:"server_processor_name,omitempty"`
	ServerProductName              string            `json:"server_product_name,omitempty"`
	ServerTypeID                   int               `json:"server_type_id,omitempty"`
	ServerInterfaces               []ServerInterface `json:"server_interfaces,omitempty"`
	ServerDisks                    []ServerDisk      `json:"server_disks,omitempty"`
	ServerTags                     []string          `json:"server_tags,omitempty"`
	ServerIPMIHost                 string            `json:"server_ipmi_host,omitempty"`
	ServerIPMInternalUsername      string            `json:"server_ipmi_internal_username,omitempty"`
	ServerIPMInternalPassword      string            `json:"server_ipmi_internal_password,omitempty"`
	ServerStatus                   string            `json:"server_status,omitempty"`
	ServerSerialNumber             string            `json:"server_serial_number,omitempty"`
	ServerVendor                   string            `json:"server_vendor,omitempty"`
	ServerVendorSKUID              string            `json:"server_vendor_sku_id,omitempty"`
	ServerComments                 string            `json:"server_comments,omitempty"`
	DatacenterName                 string            `json:"datacenter_name,omitempty"`
}

Server represents a server in a datacenter.

type ServerDisk added in v1.0.4

type ServerDisk struct {
	ServerDiskType   string `json:"server_disk_type,omitempty"`
	ServerDiskSizeGB string `json:"server_disk_size_gb,omitempty"`
}

ServerDisk describes a disk

type ServerInterface added in v1.0.3

type ServerInterface struct {
	ServerInterfaceMACAddress string `json:"server_interface_mac_address,omitempty"`
}

ServerInterface contains server connectivity information.

type ServerSearchResult added in v1.0.4

type ServerSearchResult struct {
	ServerID                           int               `json:"server_id,omitempty"`
	ServerUUID                         string            `json:"server_uuid,omitempty"`
	ServerNetworkTotalCapacityMbps     int               `json:"server_network_total_capacity_mbps,omitempty"`
	ServerPowerStatus                  string            `json:"server_power_status,omitempty"`
	ServerProcessorCoreCount           int               `json:"server_processor_core_count,omitempty"`
	ServerProcessorCoreMhz             int               `json:"server_processor_core_mhz,omitempty"`
	ServerProcessorCount               int               `json:"server_processor_count,omitempty"`
	ServerRAMGbytes                    int               `json:"server_ram_gbytes,omitempty"`
	ServerDiskCount                    int               `json:"server_disk_count,omitempty"`
	ServerDiskSizeMbytes               int               `json:"server_disk_size_mbytes,omitempty"`
	ServerDiskType                     string            `json:"server_disk_type,omitempty"`
	ServerProcessorName                string            `json:"server_processor_name,omitempty"`
	ServerProductName                  string            `json:"server_product_name,omitempty"`
	ServerTypeID                       int               `json:"server_type_id,omitempty"`
	ServerTypeName                     string            `json:"server_type_name,omitempty"`
	ServerTypeBootType                 string            `json:"server_type_boot_type,omitempty"`
	ServerInterfaces                   []ServerInterface `json:"server_interfaces,omitempty"`
	ServerDisks                        []ServerDisk      `json:"server_disks,omitempty"`
	ServerTags                         []string          `json:"server_tags,omitempty"`
	ServerIPMIHost                     string            `json:"server_ipmi_host,omitempty"`
	ServerIPMInternalUsername          string            `json:"server_ipmi_internal_username,omitempty"`
	ServerIPMInternalPasswordEncrypted string            `json:"server_ipmi_internal_password_encrypted,omitempty"`
	ServerStatus                       string            `json:"server_status,omitempty"`
	ServerSerialNumber                 string            `json:"server_serial_number,omitempty"`
	ServerVendor                       string            `json:"server_vendor,omitempty"`
	ServerVendorSKUID                  string            `json:"server_vendor_sku_id,omitempty"`
	ServerComments                     string            `json:"server_comments,omitempty"`
	InstanceLabel                      string            `json:"instance_label,omitempty"`
	InstanceID                         int               `json:"instance_id,omitempty"`
	InstanceArrayID                    int               `json:"instance_array_id,omitempty"`
	InfrastructureID                   int               `json:"infrastructure_id,omitempty"`
	DatacenterName                     string            `json:"datacenter_name,omitempty"`
}

ServerSearchResult represents a server in a datacenter.

type ServerType

type ServerType struct {
	ServerTypeID                   int    `json:"server_type_id,omitempty"`
	ServerNetworkTotalCapacityMBps int    `json:"server_network_total_capacity_mbps,omitempty"`
	ServerTypeName                 string `json:"server_type_name,omitempty"`
	ServerTypeDisplayName          string `json:"server_type_display_name,omitempty"`
	ServerTypeLabel                string `json:"server_type_label,omitempty"`
	ServerProcessorCoreCount       int    `json:"server_processor_core_count,omitempty"`
	ServerProcessorCoreMHz         int    `json:"server_processor_core_mhz,omitempty"`
	ServerProcessorCount           int    `json:"server_processor_count,omitempty"`
	ServerRAMGbytes                int    `json:"server_ram_gbytes,omitempty"`
	ServerDiskCount                int    `json:"server_disk_count,omitempty"`
	ServerDiskType                 string `json:"server_disk_type,omitempty"`
	ServerDiskSizeMBytes           int    `json:"server_disk_size_mbytes,omitempty"`
	ServerProcessorNamesJSON       string `json:"server_processor_names_json,omitempty"`
	ServerProcessorName            string `json:"server_processor_name,omitempty"`
	ServerClass                    string `json:"server_class,omitempty"`
	ServerTypeIsExperimental       bool   `json:"server_type_is_experimental,omitempty"`
	ServerCount                    int    `json:"server_count,omitempty"`
}

ServerType struct defines a server type

type ShutdownOptions

type ShutdownOptions struct {
	HardShutdownAfterTimeout   bool `json:"hard_shutdown_after_timeout"`
	AttemptSoftShutdown        bool `json:"attempt_soft_shutdown"`
	SoftShutdownTimeoutSeconds int  `json:"soft_shutdown_timeout_seconds"`
}

ShutdownOptions controls how the deploy engine handles running instances

type StageDefinition added in v1.0.8

type StageDefinition struct {
	StageDefinitionID                     int         `json:"stage_definition_id,omitempty"`
	UserIDOwner                           int         `json:"user_id_owner,omitempty"`
	UserIDAuthenticated                   int         `json:"user_id_authenticated,omitempty"`
	StageDefinitionLabel                  string      `json:"stage_definition_label,omitempty"`
	IconAssetDataURI                      string      `json:"icon_asset_data_uri,omitempty"`
	StageDefinitionTitle                  string      `json:"stage_definition_title,omitempty"`
	StageDefinitionDescription            string      `json:"stage_definition_description,omitempty"`
	StageDefinitionType                   string      `json:"stage_definition_type,omitempty"`
	StageDefinitionVariablesNamesRequired []string    `json:"stage_definition_variable_names_required,omitempty"`
	StageDefinition                       interface{} `json:"stage_definition,omitempty"`
	StageDefinitionCreatedTimestamp       string      `json:"stage_definition_created_timestamp,omitempty"`
	StageDefinitionUpdatedTimestamp       string      `json:"stage_definition_updated_timestamp,omitempty"`
}

StageDefinition contains a JavaScript file, HTTP request url and options, an AnsibleBundle or an API call template.

func (*StageDefinition) UnmarshalJSON added in v1.0.8

func (s *StageDefinition) UnmarshalJSON(b []byte) error

UnmarshalJSON custom json marshaling

type User added in v1.0.4

type User struct {
	UserID          int    `json:"user_id,omitempty"`
	UserDisplayName string `json:"user_display_name,omitempty"`
	UserEmail       string `json:"user_email,omitempty"`
}

User describes user account specifications.

type Variable added in v1.0.4

type Variable struct {
	VariableID               int    `json:"variable_id,omitempty"`
	UserIDOwner              int    `json:"user_id_owner,omitempty"`
	UserIDAuthenticated      int    `json:"user_id_authenticated,omitempty"`
	VariableName             string `json:"variable_name,omitempty"`
	VariableUsage            string `json:"variable_usage,omitempty"`
	VariableJSON             string `json:"variable_json,omitempty"`
	VariableCreatedTimestamp string `json:"variable_created_timestamp,omitempty"`
	VariableUpdatedTimestamp string `json:"variable_updated_timestamp,omitempty"`
}

Variable struct defines a Variable type

type VolumeTemplate

type VolumeTemplate struct {
	VolumeTemplateID                   int             `json:"volume_template_id,omitempty"`
	VolumeTemplateLabel                string          `json:"volume_template_label,omitempty"`
	VolumeTemplateSizeMBytes           int             `json:"volume_template_size_mbytes,omitempty"`
	VolumeTemplateDisplayName          string          `json:"volume_template_display_name,omitempty"`
	VolumeTemplateDescription          string          `json:"volume_template_description,omitempty"`
	VolumeTemplateLocalDiskSupported   bool            `json:"volume_template_local_supported,omitempty"`
	VolumeTemplateBootMethodsSupported string          `json:"volume_template_boot_methods_supported,omitempty"`
	VolumeTemplateDeprecationStatus    string          `json:"volume_template_deprecation_status,omitempty"`
	VolumeTemplateRepoURL              string          `json:"volume_template_repo_url,omitempty"`
	VolumeTemplateOperatingSystem      OperatingSystem `json:"volume_template_operating_system,omitempty"`
}

VolumeTemplate describes an OS template

type WebFetchAAPIOptions added in v1.0.8

type WebFetchAAPIOptions struct {
	Method           string                    `json:"method,omitempty"`
	Redirect         string                    `json:"redirect,omitempty"`
	Follow           int                       `json:"follow,omitempty"`
	Compress         bool                      `json:"compress,omitempty"`
	Timeout          int                       `json:"timeout,omitempty"`
	Size             int                       `json:"size,omitempty"`
	Headers          WebFetchAPIRequestHeaders `json:"headers,omitempty"`
	Body             string                    `json:"body,omitempty"`
	BodyBufferBase64 string                    `json:"bodyBufferBase64,omitempty"`
}

WebFetchAAPIOptions represents node-fetch options which is follows the Web API Fetch specification. See https://github.com/node-fetch/node-fetch

type WebFetchAPIRequestHeaders added in v1.0.8

type WebFetchAPIRequestHeaders struct {
	Accept             string `json:"Accept,omitempty"`
	UserAgent          string `json:"User-Agent,omitempty"`
	ContentType        string `json:"Content-Type,omitempty"`
	Cookie             string `json:"Cookie,omitempty"`
	Authorization      string `json:"Authorization,omitempty"`
	ProxyAuthorization string `json:"Proxy-Authorization,omitempty"`
	ContentMD5         string `json:"Content-MD5,omitempty"`
}

WebFetchAPIRequestHeaders HTTP request headers. null means undefined (the default for most) so the header will not be included with the request.

Directories

Path Synopsis

Jump to

Keyboard shortcuts

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