@@ -6,26 +6,28 @@ import (
66
77// NodeBalancerConfig objects allow a NodeBalancer to accept traffic on a new port
88type NodeBalancerConfig struct {
9- ID int `json:"id"`
10- Port int `json:"port"`
11- Protocol ConfigProtocol `json:"protocol"`
12- ProxyProtocol ConfigProxyProtocol `json:"proxy_protocol"`
13- Algorithm ConfigAlgorithm `json:"algorithm"`
14- Stickiness ConfigStickiness `json:"stickiness"`
15- Check ConfigCheck `json:"check"`
16- CheckInterval int `json:"check_interval"`
17- CheckAttempts int `json:"check_attempts"`
18- CheckPath string `json:"check_path"`
19- CheckBody string `json:"check_body"`
20- CheckPassive bool `json:"check_passive"`
21- CheckTimeout int `json:"check_timeout"`
22- CipherSuite ConfigCipher `json:"cipher_suite"`
23- NodeBalancerID int `json:"nodebalancer_id"`
24- SSLCommonName string `json:"ssl_commonname"`
25- SSLFingerprint string `json:"ssl_fingerprint"`
26- SSLCert string `json:"ssl_cert"`
27- SSLKey string `json:"ssl_key"`
28- NodesStatus * NodeBalancerNodeStatus `json:"nodes_status"`
9+ ID int `json:"id"`
10+ Port int `json:"port"`
11+ Protocol ConfigProtocol `json:"protocol"`
12+ ProxyProtocol ConfigProxyProtocol `json:"proxy_protocol"`
13+ Algorithm ConfigAlgorithm `json:"algorithm"`
14+ Stickiness ConfigStickiness `json:"stickiness"`
15+ Check ConfigCheck `json:"check"`
16+ CheckInterval int `json:"check_interval"`
17+ CheckAttempts int `json:"check_attempts"`
18+ CheckPath string `json:"check_path"`
19+ CheckBody string `json:"check_body"`
20+ CheckPassive bool `json:"check_passive"`
21+ CheckTimeout int `json:"check_timeout"`
22+ UDPCheckPort int `json:"udp_check_port"`
23+ UDPSessionTimeout int `json:"udp_session_timeout"`
24+ CipherSuite ConfigCipher `json:"cipher_suite"`
25+ NodeBalancerID int `json:"nodebalancer_id"`
26+ SSLCommonName string `json:"ssl_commonname"`
27+ SSLFingerprint string `json:"ssl_fingerprint"`
28+ SSLCert string `json:"ssl_cert"`
29+ SSLKey string `json:"ssl_key"`
30+ NodesStatus * NodeBalancerNodeStatus `json:"nodes_status"`
2931}
3032
3133// ConfigAlgorithm constants start with Algorithm and include Linode API NodeBalancer Config Algorithms
@@ -36,6 +38,7 @@ const (
3638 AlgorithmRoundRobin ConfigAlgorithm = "roundrobin"
3739 AlgorithmLeastConn ConfigAlgorithm = "leastconn"
3840 AlgorithmSource ConfigAlgorithm = "source"
41+ AlgorithmRingHash ConfigAlgorithm = "ring_hash"
3942)
4043
4144// ConfigStickiness constants start with Stickiness and include Linode API NodeBalancer Config Stickiness
@@ -44,8 +47,10 @@ type ConfigStickiness string
4447// ConfigStickiness constants reflect the node stickiness method for a NodeBalancer Config
4548const (
4649 StickinessNone ConfigStickiness = "none"
50+ StickinessSession ConfigStickiness = "session"
4751 StickinessTable ConfigStickiness = "table"
4852 StickinessHTTPCookie ConfigStickiness = "http_cookie"
53+ StickinessSourceIP ConfigStickiness = "source_ip"
4954)
5055
5156// ConfigCheck constants start with Check and include Linode API NodeBalancer Config Check methods
@@ -67,12 +72,13 @@ const (
6772 ProtocolHTTP ConfigProtocol = "http"
6873 ProtocolHTTPS ConfigProtocol = "https"
6974 ProtocolTCP ConfigProtocol = "tcp"
75+ ProtocolUDP ConfigProtocol = "udp"
7076)
7177
7278// ConfigProxyProtocol constants start with ProxyProtocol and include Linode API NodeBalancer Config proxy protocol versions
7379type ConfigProxyProtocol string
7480
75- // ConfigProxyProtocol constatns reflect the proxy protocol version used by a NodeBalancer Config
81+ // ConfigProxyProtocol constants reflect the proxy protocol version used by a NodeBalancer Config
7682const (
7783 ProxyProtocolNone ConfigProxyProtocol = "none"
7884 ProxyProtocolV1 ConfigProxyProtocol = "v1"
@@ -108,6 +114,7 @@ type NodeBalancerConfigCreateOptions struct {
108114 CheckBody string `json:"check_body,omitempty"`
109115 CheckPassive * bool `json:"check_passive,omitempty"`
110116 CheckTimeout int `json:"check_timeout,omitempty"`
117+ UDPCheckPort * int `json:"udp_check_port,omitempty"`
111118 CipherSuite ConfigCipher `json:"cipher_suite,omitempty"`
112119 SSLCert string `json:"ssl_cert,omitempty"`
113120 SSLKey string `json:"ssl_key,omitempty"`
@@ -128,6 +135,7 @@ type NodeBalancerConfigRebuildOptions struct {
128135 CheckBody string `json:"check_body,omitempty"`
129136 CheckPassive * bool `json:"check_passive,omitempty"`
130137 CheckTimeout int `json:"check_timeout,omitempty"`
138+ UDPCheckPort * int `json:"udp_check_port,omitempty"`
131139 CipherSuite ConfigCipher `json:"cipher_suite,omitempty"`
132140 SSLCert string `json:"ssl_cert,omitempty"`
133141 SSLKey string `json:"ssl_key,omitempty"`
@@ -160,6 +168,7 @@ func (i NodeBalancerConfig) GetCreateOptions() NodeBalancerConfigCreateOptions {
160168 CheckPath : i .CheckPath ,
161169 CheckBody : i .CheckBody ,
162170 CheckPassive : copyBool (& i .CheckPassive ),
171+ UDPCheckPort : & i .UDPCheckPort ,
163172 CipherSuite : i .CipherSuite ,
164173 SSLCert : i .SSLCert ,
165174 SSLKey : i .SSLKey ,
@@ -181,6 +190,7 @@ func (i NodeBalancerConfig) GetUpdateOptions() NodeBalancerConfigUpdateOptions {
181190 CheckBody : i .CheckBody ,
182191 CheckPassive : copyBool (& i .CheckPassive ),
183192 CheckTimeout : i .CheckTimeout ,
193+ UDPCheckPort : copyInt (& i .UDPCheckPort ),
184194 CipherSuite : i .CipherSuite ,
185195 SSLCert : i .SSLCert ,
186196 SSLKey : i .SSLKey ,
@@ -202,6 +212,7 @@ func (i NodeBalancerConfig) GetRebuildOptions() NodeBalancerConfigRebuildOptions
202212 CheckPath : i .CheckPath ,
203213 CheckBody : i .CheckBody ,
204214 CheckPassive : copyBool (& i .CheckPassive ),
215+ UDPCheckPort : copyInt (& i .UDPCheckPort ),
205216 CipherSuite : i .CipherSuite ,
206217 SSLCert : i .SSLCert ,
207218 SSLKey : i .SSLKey ,
0 commit comments