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