load_balancer.go raw
1 package network
2
3 import (
4 "net"
5
6 "github.com/liquidweb/liquidweb-go/types"
7 )
8
9 // LoadBalancerNodeParams is the resource representing a load balancer node.
10 type LoadBalancerNodeParams struct {
11 Domain string `json:"domain,omitempty"`
12 IP net.IP `json:"ip,omitempty"`
13 UniqID string `json:"uniq_id,omitempty"`
14 }
15
16 // LoadBalancerNode is the resource representing a load balancer node.
17 type LoadBalancerNode struct {
18 Domain string `json:"domain,omitempty"`
19 IP net.IP `json:"ip,omitempty"`
20 UniqID string `json:"uniq_id,omitempty"`
21 }
22
23 // LoadBalancerServiceParams is the set of parameters used when adding services to a load balancer.
24 type LoadBalancerServiceParams struct {
25 UniqID string `json:"uniq_id,omitempty"`
26 SrcPort int `json:"src_port,omitempty"`
27 DestPort int `json:"dest_port,omitempty"`
28 }
29
30 // LoadBalancerService is the resource representing a load balancer service.
31 type LoadBalancerService struct {
32 UniqID string `json:"uniq_id,omitempty"`
33 SrcPort types.FlexInt `json:"src_port,omitempty"`
34 DestPort types.FlexInt `json:"dest_port,omitempty"`
35 Protocol string `json:"protocol,omitempty"`
36 }
37
38 // LoadBalancerParams is the set of parameters used when creating or updating a load balancer.
39 type LoadBalancerParams struct {
40 UniqID string `json:"uniq_id,omitempty"`
41 Name string `json:"name,omitempty"`
42 Nodes []string `json:"nodes,omitempty"`
43 Region int `json:"region,omitempty"`
44 Services []LoadBalancerServiceParams `json:"services,omitempty"`
45 SessionPersistence bool `json:"session_persistence,omitempty"`
46 SSLCert string `json:"ssl_cert,omitempty"`
47 SSLIncludes bool `json:"ssl_includes,omitempty"`
48 SSLInt string `json:"ssl_int,omitempty"`
49 SSLKey string `json:"ssl_key,omitempty"`
50 SSLTermination bool `json:"ssl_termination,omitempty"`
51 Strategy string `json:"strategy,omitempty"`
52 }
53
54 // LoadBalancer is the resource representing a load balancer.
55 type LoadBalancer struct {
56 Name string `json:"name,omitempty"`
57 Nodes []LoadBalancerNode `json:"nodes,omitempty"`
58 RegionID types.FlexInt `json:"region_id,omitempty"`
59 Services []LoadBalancerService `json:"services,omitempty"`
60 SessionPersistence types.NumericalBoolean `json:"session_persistence,omitempty"`
61 SSLIncludes types.NumericalBoolean `json:"ssl_includes,omitempty"`
62 SSLTermination types.NumericalBoolean `json:"ssl_termination,omitempty"`
63 Strategy string `json:"ip,omitempty"`
64 UniqID string `json:"uniq_id,omitempty"`
65 VIP types.IPAddr `json:"vip,omitempty"`
66 }
67
68 // LoadBalancerDeletion represents the API result when deleting a load balancer.
69 type LoadBalancerDeletion struct {
70 Destroyed string `json:"destroyed"`
71 }
72