load_balancer_client.go raw
1 package network
2
3 import (
4 liquidweb "github.com/liquidweb/liquidweb-go"
5 )
6
7 // LoadBalancerBackend describes the interface for interactions with the API.
8 type LoadBalancerBackend interface {
9 Create(LoadBalancerParams) (*LoadBalancer, error)
10 Details(string) (*LoadBalancer, error)
11 Update(LoadBalancerParams) (*LoadBalancer, error)
12 Delete(string) (*LoadBalancerDeletion, error)
13 }
14
15 // LoadBalancerClient is the backend implementation for interacting with the API.
16 type LoadBalancerClient struct {
17 Backend liquidweb.Backend
18 }
19
20 // Create creates a new load balancer.
21 func (c *LoadBalancerClient) Create(params LoadBalancerParams) (*LoadBalancer, error) {
22 var result LoadBalancer
23 err := c.Backend.CallIntoInterface("v1/Network/LoadBalancer/create", params, &result)
24 if err != nil {
25 return nil, err
26 }
27
28 return &result, nil
29 }
30
31 // Details returns details about a load balancer.
32 func (c *LoadBalancerClient) Details(uniqID string) (*LoadBalancer, error) {
33 var result LoadBalancer
34 params := LoadBalancerParams{UniqID: uniqID}
35
36 err := c.Backend.CallIntoInterface("v1/Network/LoadBalancer/details", params, &result)
37 if err != nil {
38 return nil, err
39 }
40
41 return &result, nil
42 }
43
44 // Update will update a load balancer.
45 func (c *LoadBalancerClient) Update(params LoadBalancerParams) (*LoadBalancer, error) {
46 var result LoadBalancer
47 err := c.Backend.CallIntoInterface("v1/Network/LoadBalancer/update", params, &result)
48 if err != nil {
49 return nil, err
50 }
51 return &result, nil
52 }
53
54 // Delete will delete a load balancer.
55 func (c *LoadBalancerClient) Delete(uniqID string) (*LoadBalancerDeletion, error) {
56 var result LoadBalancerDeletion
57 params := LoadBalancerParams{UniqID: uniqID}
58
59 err := c.Backend.CallIntoInterface("v1/Network/LoadBalancer/delete", params, &result)
60 if err != nil {
61 return nil, err
62 }
63 return &result, nil
64 }
65