From 333fbb54616a8d138d53e7e92ed3404dcacb5c41 Mon Sep 17 00:00:00 2001 From: Aditya Saha Date: Tue, 4 Jun 2024 16:27:37 -0400 Subject: [PATCH] Add support for lb internal network type (#697) * Add support for lb internal network type * Constant out network types --- load_balancers.go | 9 ++++++++- load_balancers_test.go | 5 ++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/load_balancers.go b/load_balancers.go index 39679053..703aa842 100644 --- a/load_balancers.go +++ b/load_balancers.go @@ -13,11 +13,15 @@ const ( loadBalancersBasePath = "/v2/load_balancers" ) -// Load Balancer types. const ( + // Load Balancer types LoadBalancerTypeGlobal = "GLOBAL" LoadBalancerTypeRegional = "REGIONAL" LoadBalancerTypeRegionalNetwork = "REGIONAL_NETWORK" + + // Load Balancer network types + LoadBalancerNetworkTypeExternal = "EXTERNAL" + LoadBalancerNetworkTypeInternal = "INTERNAL" ) // LoadBalancersService is an interface for managing load balancers with the DigitalOcean API. @@ -68,6 +72,7 @@ type LoadBalancer struct { Domains []*LBDomain `json:"domains,omitempty"` GLBSettings *GLBSettings `json:"glb_settings,omitempty"` TargetLoadBalancerIDs []string `json:"target_load_balancer_ids,omitempty"` + Network string `json:"network,omitempty"` } // String creates a human-readable description of a LoadBalancer. @@ -101,6 +106,7 @@ func (l LoadBalancer) AsRequest() *LoadBalancerRequest { ProjectID: l.ProjectID, HTTPIdleTimeoutSeconds: l.HTTPIdleTimeoutSeconds, TargetLoadBalancerIDs: append([]string(nil), l.TargetLoadBalancerIDs...), + Network: l.Network, } if l.DisableLetsEncryptDNSRecords != nil { @@ -238,6 +244,7 @@ type LoadBalancerRequest struct { Domains []*LBDomain `json:"domains,omitempty"` GLBSettings *GLBSettings `json:"glb_settings,omitempty"` TargetLoadBalancerIDs []string `json:"target_load_balancer_ids,omitempty"` + Network string `json:"network,omitempty"` } // String creates a human-readable description of a LoadBalancerRequest. diff --git a/load_balancers_test.go b/load_balancers_test.go index 9a2799d2..9b6aa0f0 100644 --- a/load_balancers_test.go +++ b/load_balancers_test.go @@ -221,7 +221,8 @@ var lbCreateJSONResponse = ` "target_load_balancer_ids": [ "8268a81c-fcf5-423e-a337-bbfe95817f24", "8268a81c-fcf6-423e-a337-bbfe95817f24" - ] + ], + "network": "INTERNAL" } } ` @@ -551,6 +552,7 @@ func TestLoadBalancers_Create(t *testing.T) { FailoverThreshold: 10, }, TargetLoadBalancerIDs: []string{"8268a81c-fcf5-423e-a337-bbfe95817f24", "8268a81c-fcf6-423e-a337-bbfe95817f24"}, + Network: LoadBalancerNetworkTypeInternal, } path := "/v2/load_balancers" @@ -638,6 +640,7 @@ func TestLoadBalancers_Create(t *testing.T) { FailoverThreshold: 10, }, TargetLoadBalancerIDs: []string{"8268a81c-fcf5-423e-a337-bbfe95817f24", "8268a81c-fcf6-423e-a337-bbfe95817f24"}, + Network: LoadBalancerNetworkTypeInternal, } disableLetsEncryptDNSRecords := true