Documentation ¶
Overview ¶
Package brightbox is for interacting with the Brightbox Cloud API
Brightbox Cloud is a UK-based infrastructure-as-a-service provider. More details available at https://www.brightbox.com
The Brightbox Cloud API documentation is available at https://api.gb1.brightbox.com/1.0/
Index ¶
- Constants
- type Account
- type ApiClient
- type ApiClientOptions
- type ApiError
- type Client
- func (c *Client) Account(identifier string) (*Account, error)
- func (c *Client) Accounts() ([]Account, error)
- func (c *Client) ActivateConsoleForServer(identifier string) (*Server, error)
- func (c *Client) AddListenersToLoadBalancer(loadBalancerID string, listeners []LoadBalancerListener) (*LoadBalancer, error)
- func (c *Client) AddNodesToLoadBalancer(loadBalancerID string, nodes []LoadBalancerNode) (*LoadBalancer, error)
- func (c *Client) AddServersToServerGroup(identifier string, serverIds []string) (*ServerGroup, error)
- func (c *Client) ApiClient(identifier string) (*ApiClient, error)
- func (c *Client) ApiClients() ([]ApiClient, error)
- func (c *Client) ApplyFirewallPolicy(policyId string, serverGroupId string) (*FirewallPolicy, error)
- func (c *Client) CloudIP(identifier string) (*CloudIP, error)
- func (c *Client) CloudIPs() ([]CloudIP, error)
- func (c *Client) Collaboration(identifier string) (*Collaboration, error)
- func (c *Client) Collaborations() ([]Collaboration, error)
- func (c *Client) ConfigMap(identifier string) (*ConfigMap, error)
- func (c *Client) ConfigMaps() ([]ConfigMap, error)
- func (c *Client) CreateApiClient(options *ApiClientOptions) (*ApiClient, error)
- func (c *Client) CreateCloudIP(newCloudIP *CloudIPOptions) (*CloudIP, error)
- func (c *Client) CreateConfigMap(newConfigMap *ConfigMapOptions) (*ConfigMap, error)
- func (c *Client) CreateDatabaseServer(options *DatabaseServerOptions) (*DatabaseServer, error)
- func (c *Client) CreateFirewallPolicy(policyOptions *FirewallPolicyOptions) (*FirewallPolicy, error)
- func (c *Client) CreateFirewallRule(ruleOptions *FirewallRuleOptions) (*FirewallRule, error)
- func (c *Client) CreateLoadBalancer(newLB *LoadBalancerOptions) (*LoadBalancer, error)
- func (c *Client) CreateServer(newServer *ServerOptions) (*Server, error)
- func (c *Client) CreateServerGroup(newServerGroup *ServerGroupOptions) (*ServerGroup, error)
- func (c *Client) DatabaseServer(identifier string) (*DatabaseServer, error)
- func (c *Client) DatabaseServerType(identifier string) (*DatabaseServerType, error)
- func (c *Client) DatabaseServerTypes() ([]DatabaseServerType, error)
- func (c *Client) DatabaseServers() ([]DatabaseServer, error)
- func (c *Client) DatabaseSnapshot(identifier string) (*DatabaseSnapshot, error)
- func (c *Client) DatabaseSnapshots() ([]DatabaseSnapshot, error)
- func (c *Client) DestroyApiClient(identifier string) error
- func (c *Client) DestroyCloudIP(identifier string) error
- func (c *Client) DestroyConfigMap(identifier string) error
- func (c *Client) DestroyDatabaseServer(identifier string) error
- func (c *Client) DestroyDatabaseSnapshot(identifier string) error
- func (c *Client) DestroyFirewallPolicy(identifier string) error
- func (c *Client) DestroyFirewallRule(identifier string) error
- func (c *Client) DestroyImage(identifier string) error
- func (c *Client) DestroyLoadBalancer(identifier string) error
- func (c *Client) DestroyServer(identifier string) error
- func (c *Client) DestroyServerGroup(identifier string) error
- func (c *Client) FirewallPolicies() ([]FirewallPolicy, error)
- func (c *Client) FirewallPolicy(identifier string) (*FirewallPolicy, error)
- func (c *Client) FirewallRule(identifier string) (*FirewallRule, error)
- func (c *Client) Image(identifier string) (*Image, error)
- func (c *Client) Images() ([]Image, error)
- func (c *Client) LoadBalancer(identifier string) (*LoadBalancer, error)
- func (c *Client) LoadBalancers() ([]LoadBalancer, error)
- func (c *Client) LockResource(resource interface{}) error
- func (c *Client) LockServer(identifier string) error
- func (c *Client) MakeApiRequest(method string, path string, reqBody interface{}, resBody interface{}) (*http.Response, error)
- func (c *Client) MapCloudIP(identifier string, destination string) error
- func (c *Client) MapCloudIPtoServer(identifier string, serverid string) error
- func (c *Client) MoveServersToServerGroup(src string, dst string, serverIds []string) (*ServerGroup, error)
- func (c *Client) NewRequest(method, urlStr string, body interface{}) (*http.Request, error)
- func (c *Client) RebootServer(identifier string) error
- func (c *Client) RemoveFirewallPolicy(policyId string, serverGroupId string) (*FirewallPolicy, error)
- func (c *Client) RemoveListenersFromLoadBalancer(loadBalancerID string, listeners []LoadBalancerListener) (*LoadBalancer, error)
- func (c *Client) RemoveNodesFromLoadBalancer(loadBalancerID string, nodes []LoadBalancerNode) (*LoadBalancer, error)
- func (c *Client) RemoveServersFromServerGroup(identifier string, serverIds []string) (*ServerGroup, error)
- func (c *Client) ResetPasswordForDatabaseServer(identifier string) (*DatabaseServer, error)
- func (c *Client) ResetSecretForApiClient(identifier string) (*ApiClient, error)
- func (c *Client) ResetServer(identifier string) error
- func (c *Client) Server(identifier string) (*Server, error)
- func (c *Client) ServerGroup(identifier string) (*ServerGroup, error)
- func (c *Client) ServerGroups() ([]ServerGroup, error)
- func (c *Client) ServerType(identifier string) (*ServerType, error)
- func (c *Client) ServerTypeByHandle(handle string) (*ServerType, error)
- func (c *Client) ServerTypes() ([]ServerType, error)
- func (c *Client) Servers() ([]Server, error)
- func (c *Client) ShutdownServer(identifier string) error
- func (c *Client) SnapshotDatabaseServer(identifier string) (*DatabaseSnapshot, error)
- func (c *Client) SnapshotServer(identifier string) (*Image, error)
- func (c *Client) StartServer(identifier string) error
- func (c *Client) StopServer(identifier string) error
- func (c *Client) UnLockResource(resource interface{}) error
- func (c *Client) UnMapCloudIP(identifier string) error
- func (c *Client) UnlockServer(identifier string) error
- func (c *Client) UpdateApiClient(options *ApiClientOptions) (*ApiClient, error)
- func (c *Client) UpdateCloudIP(updateCloudIP *CloudIPOptions) (*CloudIP, error)
- func (c *Client) UpdateConfigMap(updateConfigMap *ConfigMapOptions) (*ConfigMap, error)
- func (c *Client) UpdateDatabaseServer(options *DatabaseServerOptions) (*DatabaseServer, error)
- func (c *Client) UpdateFirewallPolicy(policyOptions *FirewallPolicyOptions) (*FirewallPolicy, error)
- func (c *Client) UpdateFirewallRule(ruleOptions *FirewallRuleOptions) (*FirewallRule, error)
- func (c *Client) UpdateLoadBalancer(newLB *LoadBalancerOptions) (*LoadBalancer, error)
- func (c *Client) UpdateServer(updateServer *ServerOptions) (*Server, error)
- func (c *Client) UpdateServerGroup(updateServerGroup *ServerGroupOptions) (*ServerGroup, error)
- func (c *Client) Zone(identifier string) (*Zone, error)
- func (c *Client) ZoneByHandle(handle string) (*Zone, error)
- func (c *Client) Zones() ([]Zone, error)
- type CloudIP
- type CloudIPOptions
- type Collaboration
- type ConfigMap
- type ConfigMapOptions
- type DatabaseServer
- type DatabaseServerOptions
- type DatabaseServerType
- type DatabaseSnapshot
- type FirewallPolicy
- type FirewallPolicyOptions
- type FirewallRule
- type FirewallRuleOptions
- type Image
- type LoadBalancer
- type LoadBalancerAcme
- type LoadBalancerAcmeCertificate
- type LoadBalancerAcmeDomain
- type LoadBalancerCertificate
- type LoadBalancerHealthcheck
- type LoadBalancerListener
- type LoadBalancerNode
- type LoadBalancerOptions
- type PortTranslator
- type Server
- type ServerConsole
- type ServerGroup
- type ServerGroupOptions
- type ServerInterface
- type ServerOptions
- type ServerType
- type User
- type Zone
Constants ¶
const ( // DefaultRegionApiURL is the default API URL for the region. Use with NewClient. DefaultRegionApiURL = "https://api.gb1.brightbox.com/" // DefaultOrbitAuthURL is the default Auth URL for Orbit. DefaultOrbitAuthURL = "https://orbit.brightbox.com/v1/" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Account ¶
type Account struct { Id string Name string Status string Address1 string `json:"address_1"` Address2 string `json:"address_2"` City string County string Postcode string CountryCode string `json:"country_code"` CountryName string `json:"country_name"` VatRegistrationNumber string `json:"vat_registration_number"` TelephoneNumber string `json:"telephone_number"` TelephoneVerified bool `json:"telephone_verified"` VerifiedTelephone string `json:"verified_telephone"` VerifiedAt *time.Time `json:"verified_at"` VerifiedIp string `json:"verified_ip"` ValidCreditCard bool `json:"valid_credit_card"` CreatedAt *time.Time `json:"created_at"` RamLimit int `json:"ram_limit"` RamUsed int `json:"ram_used"` DbsRamLimit int `json:"dbs_ram_limit"` DbsRamUsed int `json:"dbs_ram_used"` CloudIpsLimit int `json:"cloud_ips_limit"` CloudIpsUsed int `json:"cloud_ips_used"` LoadBalancersLimit int `json:"load_balancers_limit"` LoadBalancersUsed int `json:"load_balancers_used"` LibraryFtpHost string `json:"library_ftp_host"` LibraryFtpUser string `json:"library_ftp_user"` LibraryFtpPassword string `json:"library_ftp_password"` Owner User Users []User }
Account represents a Brightbox Cloud Account https://api.gb1.brightbox.com/1.0/#account
type ApiClient ¶
type ApiClient struct { Id string Name string Description string Secret string PermissionsGroup string `json:"permissions_group"` RevokedAt *time.Time `json:"revoked_at"` Account Account }
ApiClient represents an API client. https://api.gb1.brightbox.com/1.0/#api_client
type ApiClientOptions ¶
type ApiClientOptions struct { Id string `json:"-"` Name *string `json:"name,omitempty"` Description *string `json:"description,omitempty"` PermissionsGroup *string `json:"permissions_group,omitempty"` }
ApiClientOptions is used in conjunction with CreateApiClient and UpdateApiClient to create and update api clients
type ApiError ¶
type ApiError struct { // StatusCode will hold the HTTP status code from the request that errored StatusCode int // Status will hold the HTTP status line from the request that errored Status string // AuthError will hold any available OAuth "error" field contents. See // https://api.gb1.brightbox.com/1.0/#errors AuthError string `json:"error"` // AuthErrorDescription will hold any available OAuth "error_description" // field contents. See https://api.gb1.brightbox.com/1.0/#errors AuthErrorDescription string `json:"error_description"` // ErrorName will hold any available Brightbox API "error_name" field // contents. See https://api.gb1.brightbox.com/1.0/#request_errors ErrorName string `json:"error_name"` // Errors will hold any available Brightbox API "errors" field contents. See // https://api.gb1.brightbox.com/1.0/#request_errors Errors []string `json:"errors"` // ParseError will hold any errors from the JSON parser whilst parsing an // API response ParseError *error // RequestUrl will hold the full URL used to make the request that errored, // if available RequestUrl *url.URL // ResponseBody will hold the raw respose body of the request that errored, // if available ResponseBody []byte }
ApiError can be returned when an API request fails. It provides any error messages provided by the API, along with other details about the response.
type Client ¶
type Client struct { BaseURL *url.URL UserAgent string // The identifier of the account to use by default with this Client. AccountId string // contains filtered or unexported fields }
Client represents a connection to the Brightbox API. You should use NewClient to allocate and configure Clients. Authentication is handled externally by a http.Client with the appropriate Transport, such as those provided by https://github.com/golang/oauth2/
func NewClient ¶
NewClient allocates and configures a Client for interacting with the API.
apiURL should be an url of the form https://api.region.brightbox.com, e.g: https://api.gb1.brightbox.com. You can use the default defined in this package instead, i.e. brightbox.DefaultRegionApiURL
accountId should be the identifier of the default account to be used with this Client. Clients authenticated with Brightbox ApiClient credentials are only ever associated with one single Account, so you can leave this empty for those. Client's authenticated with Brightbox User credentials can have access to multiple accounts, so this parameter should be provided.
httpClient should be a http.Client with a transport that will handle the OAuth token authentication, such as those provided by https://github.com/golang/oauth2/
func (*Client) Accounts ¶
Accounts retrieves a list of all accounts associated with the client.
API Clients are only ever associated with one single account. User clients can have multiple accounts, through collaborations.
func (*Client) ActivateConsoleForServer ¶
ActivateConsoleForServer issues a request to enable the graphical console for an existing server. The temporarily allocated ConsoleUrl, ConsoleToken and ConsoleTokenExpires data are returned within an instance of Server.
func (*Client) AddListenersToLoadBalancer ¶
func (c *Client) AddListenersToLoadBalancer(loadBalancerID string, listeners []LoadBalancerListener) (*LoadBalancer, error)
AddListenersToLoadBalancer adds listeners to an existing load balancer.
func (*Client) AddNodesToLoadBalancer ¶
func (c *Client) AddNodesToLoadBalancer(loadBalancerID string, nodes []LoadBalancerNode) (*LoadBalancer, error)
AddNodesToLoadBalancer adds nodes to an existing load balancer.
func (*Client) AddServersToServerGroup ¶
func (c *Client) AddServersToServerGroup(identifier string, serverIds []string) (*ServerGroup, error)
AddServersToServerGroup adds servers to an existing server group.
The identifier parameter specifies the destination group.
The serverIds paramater specifies the identifiers of the servers you want to add.
func (*Client) ApiClients ¶
ApiClients retrieves a list of all API clients
func (*Client) ApplyFirewallPolicy ¶
func (c *Client) ApplyFirewallPolicy(policyId string, serverGroupId string) (*FirewallPolicy, error)
ApplyFirewallPolicy issues a request to apply the given firewall policy to the given server group.
func (*Client) Collaboration ¶
func (c *Client) Collaboration(identifier string) (*Collaboration, error)
Collaboration retrieves a detailed view of one of the current user's collaborations
func (*Client) Collaborations ¶
func (c *Client) Collaborations() ([]Collaboration, error)
Collaborations retrieves a list of all the current user's collaborations
func (*Client) ConfigMaps ¶
ConfigMaps retrieves a list of all config maps
func (*Client) CreateApiClient ¶
func (c *Client) CreateApiClient(options *ApiClientOptions) (*ApiClient, error)
CreateApiClient creates a new API client.
It takes a ApiClientOptions struct for specifying name and other attributes. Not all attributes can be specified at create time (such as Id, which is allocated for you)
func (*Client) CreateCloudIP ¶
func (c *Client) CreateCloudIP(newCloudIP *CloudIPOptions) (*CloudIP, error)
CreateCloudIP creates a new Cloud IP.
It takes a CloudIPOptions struct for specifying name and other attributes. Not all attributes can be specified at create time (such as Id, which is allocated for you)
func (*Client) CreateConfigMap ¶
func (c *Client) CreateConfigMap(newConfigMap *ConfigMapOptions) (*ConfigMap, error)
CreateConfigMap creates a new config map
It takes an instance of ConfigMapOptions. Not all attributes can be specified at create time (such as Id, which is allocated for you).
func (*Client) CreateDatabaseServer ¶
func (c *Client) CreateDatabaseServer(options *DatabaseServerOptions) (*DatabaseServer, error)
CreateDatabaseServer creates a new database server.
It takes a DatabaseServerOptions struct for specifying name and other attributes. Not all attributes can be specified at create time (such as Id, which is allocated for you)
func (*Client) CreateFirewallPolicy ¶
func (c *Client) CreateFirewallPolicy(policyOptions *FirewallPolicyOptions) (*FirewallPolicy, error)
CreateFirewallPolicy creates a new firewall policy.
It takes a FirewallPolicyOptions struct for specifying name and other attributes. Not all attributes can be specified at create time (such as Id, which is allocated for you)
func (*Client) CreateFirewallRule ¶
func (c *Client) CreateFirewallRule(ruleOptions *FirewallRuleOptions) (*FirewallRule, error)
CreateFirewallRule creates a new firewall rule.
It takes a FirewallRuleOptions struct for specifying name and other attributes. Not all attributes can be specified at create time (such as Id, which is allocated for you)
func (*Client) CreateLoadBalancer ¶
func (c *Client) CreateLoadBalancer(newLB *LoadBalancerOptions) (*LoadBalancer, error)
CreateLoadBalancer creates a new load balancer.
It takes a LoadBalancerOptions struct for specifying name and other attributes. Not all attributes can be specified at create time (such as Id, which is allocated for you)
func (*Client) CreateServer ¶
func (c *Client) CreateServer(newServer *ServerOptions) (*Server, error)
CreateServer creates a new server.
It takes a ServerOptions struct which requires, at minimum, a valid Image identifier. Not all attributes can be specified at create time (such as Id, which is allocated for you)
func (*Client) CreateServerGroup ¶
func (c *Client) CreateServerGroup(newServerGroup *ServerGroupOptions) (*ServerGroup, error)
CreateServerGroup creates a new server group
It takes an instance of ServerGroupOptions. Not all attributes can be specified at create time (such as Id, which is allocated for you).
func (*Client) DatabaseServer ¶
func (c *Client) DatabaseServer(identifier string) (*DatabaseServer, error)
DatabaseServer retrieves a detailed view of one database server
func (*Client) DatabaseServerType ¶
func (c *Client) DatabaseServerType(identifier string) (*DatabaseServerType, error)
func (*Client) DatabaseServerTypes ¶
func (c *Client) DatabaseServerTypes() ([]DatabaseServerType, error)
func (*Client) DatabaseServers ¶
func (c *Client) DatabaseServers() ([]DatabaseServer, error)
DatabaseServers retrieves a list of all database servers
func (*Client) DatabaseSnapshot ¶
func (c *Client) DatabaseSnapshot(identifier string) (*DatabaseSnapshot, error)
DatabaseSnapshot retrieves a detailed view of one database snapshot
func (*Client) DatabaseSnapshots ¶
func (c *Client) DatabaseSnapshots() ([]DatabaseSnapshot, error)
DatabaseSnapshots retrieves a list of all database snapshot
func (*Client) DestroyApiClient ¶
DestroyApiClient issues a request to deletes an existing api client
func (*Client) DestroyCloudIP ¶
DestroyCloudIP issues a request to destroy the cloud ip
func (*Client) DestroyConfigMap ¶
DestroyConfigMap destroys an existing config map
func (*Client) DestroyDatabaseServer ¶
DestroyDatabaseServer issues a request to deletes an existing database server
func (*Client) DestroyDatabaseSnapshot ¶
DestroyDatabaseSnapshot issues a request to destroy the database snapshot
func (*Client) DestroyFirewallPolicy ¶
DestroyFirewallPolicy issues a request to destroy the firewall policy
func (*Client) DestroyFirewallRule ¶
DestroyFirewallRule destroys an existing firewall rule
func (*Client) DestroyImage ¶
DestroyImage issues a request to destroy the image
func (*Client) DestroyLoadBalancer ¶
DestroyLoadBalancer issues a request to destroy the load balancer
func (*Client) DestroyServer ¶
DestroyServer issues a request to destroy the server
func (*Client) DestroyServerGroup ¶
DestroyServerGroup destroys an existing server group
func (*Client) FirewallPolicies ¶
func (c *Client) FirewallPolicies() ([]FirewallPolicy, error)
FirewallPolicies retrieves a list of all firewall policies
func (*Client) FirewallPolicy ¶
func (c *Client) FirewallPolicy(identifier string) (*FirewallPolicy, error)
FirewallPolicy retrieves a detailed view of one firewall policy
func (*Client) FirewallRule ¶
func (c *Client) FirewallRule(identifier string) (*FirewallRule, error)
FirewallRule retrieves a detailed view of one firewall rule
func (*Client) LoadBalancer ¶
func (c *Client) LoadBalancer(identifier string) (*LoadBalancer, error)
LoadBalancer retrieves a detailed view of one load balancer
func (*Client) LoadBalancers ¶
func (c *Client) LoadBalancers() ([]LoadBalancer, error)
LoadBalancers retrieves a list of all load balancers
func (*Client) LockResource ¶
LockResource locks a resource against destroy requests. Support brightbox.Server, brightbox.Image, brightbox.DatabaseServer and brightbox.LoadBalancer
func (*Client) LockServer ¶
LockServer locks an existing server, preventing it's destruction without first unlocking. Deprecated, use LockResource instead.
func (*Client) MakeApiRequest ¶
func (c *Client) MakeApiRequest(method string, path string, reqBody interface{}, resBody interface{}) (*http.Response, error)
MakeApiRequest makes a http request to the API, JSON encoding any given data and decoding any JSON reponse.
method should be the desired http method, e.g: "GET", "POST", "PUT" etc.
urlStr should be the url path, relative to the api url e.g: "/1.0/servers"
if reqBody is non-nil, it will be Marshaled to JSON and set as the request body.
Optionally, the response body will be Unmarshaled from JSON into whatever resBody is a pointer to. Leave nil to skip.
If the response is non-2xx, MakeApiRequest will try to parse the error message and return an ApiError struct.
func (*Client) MapCloudIP ¶
MapCloudIP issues a request to map the cloud ip to the destination. The destination can be an identifier of any resource capable of receiving a Cloud IP, such as a server interface, a load balancer, or a cloud sql instace.
To map a Cloud IP to a server, first lookup the server to get it's interface identifier (or use the MapCloudIPtoServer convenience method)
func (*Client) MapCloudIPtoServer ¶
MapCloudIPtoServer is a convenience method to map a Cloud IP to a server. First looks up the server to get the network interface id. Uses the first interface found.
func (*Client) MoveServersToServerGroup ¶
func (c *Client) MoveServersToServerGroup(src string, dst string, serverIds []string) (*ServerGroup, error)
MoveServersToServerGroup atomically moves servers from one group to another.
The src parameter specifies the group to which the servers currently belong ¶
The dst parameter specifies the group to which you want to move the servers.
The serverIds parameter specifies the identifiers of the servers you want to move.
func (*Client) NewRequest ¶
NewRequest allocates and configures a http.Request ready to make an API call.
method should be the desired http method, e.g: "GET", "POST", "PUT" etc.
urlStr should be the url path, relative to the api url e.g: "/1.0/servers"
if body is non-nil, it will be Marshaled to JSON and set as the request body
func (*Client) RebootServer ¶
RebootServer issues a request to reboot ("ctrl+alt+delete") an existing server
func (*Client) RemoveFirewallPolicy ¶
func (c *Client) RemoveFirewallPolicy(policyId string, serverGroupId string) (*FirewallPolicy, error)
RemoveFirewallPolicy issues a request to remove the given firewall policy from the given server group.
func (*Client) RemoveListenersFromLoadBalancer ¶
func (c *Client) RemoveListenersFromLoadBalancer(loadBalancerID string, listeners []LoadBalancerListener) (*LoadBalancer, error)
RemoveListenersFromLoadBalancer removes listeners to an existing load balancer.
func (*Client) RemoveNodesFromLoadBalancer ¶
func (c *Client) RemoveNodesFromLoadBalancer(loadBalancerID string, nodes []LoadBalancerNode) (*LoadBalancer, error)
RemoveNodesFromLoadBalancer removes nodes from an existing load balancer.
func (*Client) RemoveServersFromServerGroup ¶
func (c *Client) RemoveServersFromServerGroup(identifier string, serverIds []string) (*ServerGroup, error)
RemoveServersFromServerGroup removes servers from an existing server group.
The identifier parameter specifies the group.
The serverIds parameter specifies the identifiers of the servers you want to remove.
func (*Client) ResetPasswordForDatabaseServer ¶
func (c *Client) ResetPasswordForDatabaseServer(identifier string) (*DatabaseServer, error)
ResetPasswordForDatabaseServer requests a snapshot of an existing database server.
func (*Client) ResetSecretForApiClient ¶
ResetSecretForApiClient requests a snapshot of an existing api client
func (*Client) ResetServer ¶
ResetServer issues a request to reset ("power cycle") an existing server
func (*Client) ServerGroup ¶
func (c *Client) ServerGroup(identifier string) (*ServerGroup, error)
ServerGroup retrieves a detailed view on one server group
func (*Client) ServerGroups ¶
func (c *Client) ServerGroups() ([]ServerGroup, error)
ServerGroups retrieves a list of all server groups
func (*Client) ServerType ¶
func (c *Client) ServerType(identifier string) (*ServerType, error)
func (*Client) ServerTypeByHandle ¶
func (c *Client) ServerTypeByHandle(handle string) (*ServerType, error)
func (*Client) ServerTypes ¶
func (c *Client) ServerTypes() ([]ServerType, error)
func (*Client) ShutdownServer ¶
ShutdownServer issues a request to shut down ("tap the power button") an existing server
func (*Client) SnapshotDatabaseServer ¶
func (c *Client) SnapshotDatabaseServer(identifier string) (*DatabaseSnapshot, error)
SnapshotDatabaseServer requests a snapshot of an existing database server.
func (*Client) SnapshotServer ¶
SnapshotServer issues a request to snapshot the disk of an existing server. The snapshot is allocated an Image Id which is returned within an instance of Image.
func (*Client) StartServer ¶
StartServer issues a request to start ("power on") an existing server
func (*Client) StopServer ¶
StopServer issues a request to stop ("power off") an existing server
func (*Client) UnLockResource ¶
UnLockResource unlocks a resource, renabling destroy requests
func (*Client) UnMapCloudIP ¶
UnMapCloudIP issues a request to unmap the cloud ip.
func (*Client) UnlockServer ¶
UnlockServer unlocks a previously locked existing server, allowing destruction again. Deprecated, use UnLockResource instead.
func (*Client) UpdateApiClient ¶
func (c *Client) UpdateApiClient(options *ApiClientOptions) (*ApiClient, error)
UpdateApiClient updates an existing api client.
It takes a ApiClientOptions struct for specifying Id, name and other attributes. Not all attributes can be specified at update time.
func (*Client) UpdateCloudIP ¶
func (c *Client) UpdateCloudIP(updateCloudIP *CloudIPOptions) (*CloudIP, error)
UpdateCloudIP updates an existing cloud ip's attributes. Not all attributes can be changed after creation time (such as Id, which is allocated for you).
Specify the cloud ip you want to update using the CloudIPOptions Id field
func (*Client) UpdateConfigMap ¶
func (c *Client) UpdateConfigMap(updateConfigMap *ConfigMapOptions) (*ConfigMap, error)
UpdateConfigMap updates an existing config maps's attributes. Not all attributes can be changed (such as Id).
Specify the config map you want to update using the ConfigMapOptions Id field.
func (*Client) UpdateDatabaseServer ¶
func (c *Client) UpdateDatabaseServer(options *DatabaseServerOptions) (*DatabaseServer, error)
UpdateDatabaseServer updates an existing database server.
It takes a DatabaseServerOptions struct for specifying Id, name and other attributes. Not all attributes can be specified at update time.
func (*Client) UpdateFirewallPolicy ¶
func (c *Client) UpdateFirewallPolicy(policyOptions *FirewallPolicyOptions) (*FirewallPolicy, error)
UpdateFirewallPolicy updates an existing firewall policy.
It takes a FirewallPolicyOptions struct for specifying name and other attributes. Not all attributes can be update(such as server_group which is instead changed with ApplyFirewallPolicy).
Specify the policy you want to update using the Id field
func (*Client) UpdateFirewallRule ¶
func (c *Client) UpdateFirewallRule(ruleOptions *FirewallRuleOptions) (*FirewallRule, error)
UpdateFirewallRule updates an existing firewall rule.
It takes a FirewallRuleOptions struct for specifying the attributes. Not all attributes can be updated (such as firewall_policy)
func (*Client) UpdateLoadBalancer ¶
func (c *Client) UpdateLoadBalancer(newLB *LoadBalancerOptions) (*LoadBalancer, error)
UpdateLoadBalancer updates an existing load balancer.
It takes a LoadBalancerOptions struct for specifying name and other attributes. Provide the identifier using the Id attribute.
func (*Client) UpdateServer ¶
func (c *Client) UpdateServer(updateServer *ServerOptions) (*Server, error)
UpdateServer updates an existing server's attributes. Not all attributes can be changed after creation time (such as Image, ServerType and Zone).
Specify the server you want to update using the ServerOptions Id field
func (*Client) UpdateServerGroup ¶
func (c *Client) UpdateServerGroup(updateServerGroup *ServerGroupOptions) (*ServerGroup, error)
UpdateServerGroup updates an existing server groups's attributes. Not all attributes can be changed (such as Id).
Specify the server group you want to update using the ServerGroupOptions Id field.
To change group memberships, use AddServersToServerGroup, RemoveServersFromServerGroup and MoveServersToServerGroup.
type CloudIP ¶
type CloudIP struct { Id string Name string PublicIP string `json:"public_ip"` PublicIPv4 string `json:"public_ipv4"` PublicIPv6 string `json:"public_ipv6"` Status string ReverseDns string `json:"reverse_dns"` PortTranslators []PortTranslator `json:"port_translators"` Account Account Fqdn string Interface *ServerInterface Server *Server ServerGroup *ServerGroup `json:"server_group"` LoadBalancer *LoadBalancer `json:"load_balancer"` DatabaseServer *DatabaseServer `json:"database_server"` }
CloudIP represents a Cloud IP https://api.gb1.brightbox.com/1.0/#cloud_ip
type CloudIPOptions ¶
type CloudIPOptions struct { Id string `json:"-"` ReverseDns *string `json:"reverse_dns,omitempty"` Name *string `json:"name,omitempty"` PortTranslators []PortTranslator `json:"port_translators,omitempty"` }
CloudIPOptions is used in conjunction with CreateCloudIP and UpdateCloudIP to create and update cloud IPs.
type Collaboration ¶
type Collaboration struct { Id string Email string Role string RoleLabel string `json:"role_label"` Status string CreatedAt *time.Time `json:"created_at"` StartedAt *time.Time `json:"started_at"` FinishedAt *time.Time `json:"finished_at"` Account Account User User Inviter User }
Collaboration represents a User's links to it's Accounts https://api.gb1.brightbox.com/1.0/#user
type ConfigMap ¶
type ConfigMap struct { Id string `json:"id"` Name string `json:"name"` Data map[string]interface{} `json:"data"` }
ConfigMap represents a config map https://api.gb1.brightbox.com/1.0/#config_maps
type ConfigMapOptions ¶
type ConfigMapOptions struct { Id string `json:"-"` Name *string `json:"name,omitempty"` Data *map[string]interface{} `json:"data,omitempty"` }
ConfigMapOptions is used in combination with CreateConfigMap and UpdateConfigMap to create and update config maps
type DatabaseServer ¶
type DatabaseServer struct { Id string Name string Description string Status string Account Account DatabaseEngine string `json:"database_engine"` DatabaseVersion string `json:"database_version"` AdminUsername string `json:"admin_username"` AdminPassword string `json:"admin_password"` CreatedAt *time.Time `json:"created_at"` UpdatedAt *time.Time `json:"updated_at"` DeletedAt *time.Time `json:"deleted_at"` SnapshotsScheduleNextAt *time.Time `json:"snapshots_schedule_next_at"` AllowAccess []string `json:"allow_access"` MaintenanceWeekday int `json:"maintenance_weekday"` MaintenanceHour int `json:"maintenance_hour"` SnapshotsSchedule string `json:"snapshots_schedule"` CloudIPs []CloudIP `json:"cloud_ips"` DatabaseServerType DatabaseServerType `json:"database_server_type"` Locked bool Zone Zone }
DatabaseServer represents a database server. https://api.gb1.brightbox.com/1.0/#database_server
type DatabaseServerOptions ¶
type DatabaseServerOptions struct { Id string `json:"-"` Name *string `json:"name,omitempty"` Description *string `json:"description,omitempty"` Engine string `json:"engine,omitempty"` Version string `json:"version,omitempty"` AllowAccess []string `json:"allow_access,omitempty"` Snapshot string `json:"snapshot,omitempty"` Zone string `json:"zone,omitempty"` DatabaseType string `json:"database_type,omitempty"` MaintenanceWeekday *int `json:"maintenance_weekday,omitempty"` MaintenanceHour *int `json:"maintenance_hour,omitempty"` SnapshotsSchedule *string `json:"snapshots_schedule,omitempty"` }
DatabaseServerOptions is used in conjunction with CreateDatabaseServer and UpdateDatabaseServer to create and update database servers.
type DatabaseServerType ¶
type DatabaseServerType struct { Id string Name string Description string DiskSize int `json:"disk_size"` RAM int }
DatabaseDatabaseServerType represents a database server type https://api.gb1.brightbox.com/1.0/#database_type
type DatabaseSnapshot ¶
type DatabaseSnapshot struct { Id string Name string Description string Status string Account Account DatabaseEngine string `json:"database_engine"` DatabaseVersion string `json:"database_version"` Size int CreatedAt *time.Time `json:"created_at"` UpdatedAt *time.Time `json:"updated_at"` DeletedAt *time.Time `json:"deleted_at"` Locked bool }
DatabaseSnapshot represents a snapshot of a database server. https://api.gb1.brightbox.com/1.0/#database_snapshot
type FirewallPolicy ¶
type FirewallPolicy struct { Id string Name string Default bool CreatedAt time.Time `json:"created_at"` Description string ServerGroup *ServerGroup `json:"server_group"` Rules []FirewallRule `json:"rules"` }
FirewallPolicy represents a firewall policy. https://api.gb1.brightbox.com/1.0/#firewall_policy
type FirewallPolicyOptions ¶
type FirewallPolicyOptions struct { Id string `json:"-"` Name *string `json:"name,omitempty"` Description *string `json:"description,omitempty"` ServerGroup *string `json:"server_group,omitempty"` }
FirewallPolicyOptions is used in conjunction with CreateFirewallPolicy and UpdateFirewallPolicy to create and update firewall policies.
type FirewallRule ¶
type FirewallRule struct { Id string Source string `json:"source"` SourcePort string `json:"source_port"` Destination string `json:"destination"` DestinationPort string `json:"destination_port"` Protocol string `json:"protocol"` IcmpTypeName string `json:"icmp_type_name"` CreatedAt time.Time `json:"created_at"` Description string `json:"description"` FirewallPolicy FirewallPolicy `json:"firewall_policy"` }
FirewallRule represents a firewall rule. https://api.gb1.brightbox.com/1.0/#firewall_rule
type FirewallRuleOptions ¶
type FirewallRuleOptions struct { Id string `json:"-"` FirewallPolicy string `json:"firewall_policy,omitempty"` Protocol *string `json:"protocol,omitempty"` Source *string `json:"source,omitempty"` SourcePort *string `json:"source_port,omitempty"` Destination *string `json:"destination,omitempty"` DestinationPort *string `json:"destination_port,omitempty"` IcmpTypeName *string `json:"icmp_type_name,omitempty"` Description *string `json:"description,omitempty"` }
FirewallRuleOptions is used in conjunction with CreateFirewallRule and UpdateFirewallRule to create and update firewall rules.
type Image ¶
type Image struct { Id string Name string Username string Status string Locked bool Description string Source string Arch string CreatedAt time.Time `json:"created_at"` Official bool Public bool Owner string SourceType string `json:"source_type"` VirtualSize int `json:"virtual_size"` DiskSize int `json:"disk_size"` CompatibilityMode bool `json:"compatibility_mode"` AncestorId string `json:"ancestor_id"` LicenceName string `json:"licence_name"` }
Image represents a Machine Image https://api.gb1.brightbox.com/1.0/#image
type LoadBalancer ¶
type LoadBalancer struct { Id string Name string Status string CreatedAt *time.Time `json:"created_at"` DeletedAt *time.Time `json:"deleted_at"` Locked bool HttpsRedirect bool `json:"https_redirect"` SslMinimumVersion string `json:"ssl_minimum_version"` Account Account Nodes []Server CloudIPs []CloudIP `json:"cloud_ips"` Policy string BufferSize int `json:"buffer_size"` Listeners []LoadBalancerListener Healthcheck LoadBalancerHealthcheck Certificate *LoadBalancerCertificate Acme *LoadBalancerAcme }
LoadBalancer represents a Load Balancer https://api.gb1.brightbox.com/1.0/#load_balancer
type LoadBalancerAcme ¶
type LoadBalancerAcme struct { Certificate *LoadBalancerAcmeCertificate `json:"certificate"` Domains []LoadBalancerAcmeDomain `json:"domains"` }
LoadBalancerAcme represents an ACME object on a LoadBalancer
type LoadBalancerAcmeCertificate ¶
type LoadBalancerAcmeCertificate struct { Fingerprint string `json:"fingerprint"` ExpiresAt time.Time `json:"expires_at"` IssuedAt time.Time `json:"issued_at"` }
LoadBalancerAcmeCertificate represents an ACME issued certificate on a LoadBalancer
type LoadBalancerAcmeDomain ¶
type LoadBalancerAcmeDomain struct { Identifier string `json:"identifier"` Status string `json:"status"` LastMessage string `json:"last_message"` }
LoadBalancerAcmeDomain represents a domain for which ACME support has been requested
type LoadBalancerCertificate ¶
type LoadBalancerCertificate struct { ExpiresAt time.Time `json:"expires_at"` ValidFrom time.Time `json:"valid_from"` SslV3 bool `json:"sslv3"` Issuer string `json:"issuer"` Subject string `json:"subject"` }
LoadBalancerCertificate represents a certificate on a LoadBalancer
type LoadBalancerHealthcheck ¶
type LoadBalancerHealthcheck struct { Type string `json:"type"` Port int `json:"port"` Request string `json:"request,omitempty"` Interval int `json:"interval,omitempty"` Timeout int `json:"timeout,omitempty"` ThresholdUp int `json:"threshold_up,omitempty"` ThresholdDown int `json:"threshold_down,omitempty"` }
LoadBalancerHealthcheck represents a health check on a LoadBalancer
type LoadBalancerListener ¶
type LoadBalancerListener struct { Protocol string `json:"protocol,omitempty"` In int `json:"in,omitempty"` Out int `json:"out,omitempty"` Timeout int `json:"timeout,omitempty"` ProxyProtocol string `json:"proxy_protocol,omitempty"` }
LoadBalancerListener represents a listener on a LoadBalancer
type LoadBalancerNode ¶
type LoadBalancerNode struct {
Node string `json:"node"`
}
LoadBalancerNode is used in conjunction with LoadBalancerOptions, AddNodesToLoadBalancer, RemoveNodesFromLoadBalancer to specify a list of servers to use as load balancer nodes. The Node parameter should be a server identifier.
type LoadBalancerOptions ¶
type LoadBalancerOptions struct { Id string `json:"-"` Name *string `json:"name,omitempty"` Nodes []LoadBalancerNode `json:"nodes,omitempty"` Policy *string `json:"policy,omitempty"` BufferSize *int `json:"buffer_size,omitempty"` Listeners []LoadBalancerListener `json:"listeners,omitempty"` Healthcheck *LoadBalancerHealthcheck `json:"healthcheck,omitempty"` Domains *[]string `json:"domains,omitempty"` CertificatePem *string `json:"certificate_pem,omitempty"` CertificatePrivateKey *string `json:"certificate_private_key,omitempty"` SslMinimumVersion *string `json:"ssl_minimum_version,omitempty"` SslV3 *bool `json:"sslv3,omitempty"` HttpsRedirect *bool `json:"https_redirect,omitempty"` }
LoadBalancerOptions is used in conjunction with CreateLoadBalancer and UpdateLoadBalancer to create and update load balancers
type PortTranslator ¶
type PortTranslator struct { Incoming int `json:"incoming"` Outgoing int `json:"outgoing"` Protocol string `json:"protocol"` }
PortTranslator represents a port translator on a Cloud IP
type Server ¶
type Server struct { Id string Name string Status string Locked bool Hostname string Fqdn string CreatedAt *time.Time `json:"created_at"` // DeletedAt is nil if the server has not yet been deleted DeletedAt *time.Time `json:"deleted_at"` StartedAt *time.Time `json:"started_at"` UserData string `json:"user_data"` CompatibilityMode bool `json:"compatibility_mode"` DiskEncrypted bool `json:"disk_encrypted"` ServerConsole Account Account Image Image ServerType ServerType `json:"server_type"` Zone Zone Snapshots []Image CloudIPs []CloudIP `json:"cloud_ips"` Interfaces []ServerInterface ServerGroups []ServerGroup `json:"server_groups"` }
Server represents a Cloud Server https://api.gb1.brightbox.com/1.0/#server
func (*Server) FullConsoleUrl ¶
FullConsoleUrl returns the console url for the server with the token in the query string. Server needs a ConsoleUrl and ConsoleToken, retrieved using ActivateConsoleForServer
type ServerConsole ¶
type ServerConsole struct { ConsoleToken string `json:"console_token"` ConsoleUrl string `json:"console_url"` ConsoleTokenExpires *time.Time `json:"console_token_expires"` }
ServerConsole is embedded into Server and contains the fields used in reponse to an ActivateConsoleForServer request.
type ServerGroup ¶
type ServerGroup struct { Id string Name string CreatedAt *time.Time `json:"created_at"` Description string Default bool Fqdn string Account Account `json:"account"` Servers []Server FirewallPolicy *FirewallPolicy `json:"firewall_policy"` }
ServerGroup represents a server group https://api.gb1.brightbox.com/1.0/#server_group
type ServerGroupOptions ¶
type ServerGroupOptions struct { Id string `json:"-"` Name *string `json:"name,omitempty"` Description *string `json:"description,omitempty"` }
ServerGroupOptions is used in combination with CreateServerGroup and UpdateServerGroup to create and update server groups
type ServerInterface ¶
type ServerInterface struct { Id string MacAddress string `json:"mac_address"` IPv4Address string `json:"ipv4_address"` IPv6Address string `json:"ipv6_address"` }
ServerInterface represent a server's network interface(s)
type ServerOptions ¶
type ServerOptions struct { Id string `json:"-"` Image string `json:"image,omitempty"` Name *string `json:"name,omitempty"` ServerType string `json:"server_type,omitempty"` Zone string `json:"zone,omitempty"` UserData *string `json:"user_data,omitempty"` ServerGroups []string `json:"server_groups,omitempty"` CompatibilityMode *bool `json:"compatibility_mode,omitempty"` DiskEncrypted *bool `json:"disk_encrypted,omitempty"` }
ServerOptions is used in conjunction with CreateServer and UpdateServer to create and update servers.
type ServerType ¶
type User ¶
type User struct { Id string Name string EmailAddress string `json:"email_address"` EmailVerified bool `json:"email_verified"` SshKey string `json:"ssh_key"` MessagingPref bool `json:"messaging_pref"` Accounts []*Account DefaultAccount *Account `json:"default_account"` }
User represents a Brightbox User https://api.gb1.brightbox.com/1.0/#user
Source Files ¶
- accounts.go
- api_clients.go
- brightbox.go
- cloud_ips.go
- collaborations.go
- config_maps.go
- database_server_types.go
- database_servers.go
- database_snapshot.go
- firewall_policies.go
- firewall_rules.go
- images.go
- load_balancers.go
- resource_locking.go
- server_groups.go
- server_types.go
- servers.go
- users.go
- zones.go